📝 Updated about screen
This commit is contained in:
parent
9dd6cffe0c
commit
46919dec31
@ -686,8 +686,9 @@
|
|||||||
"aboutScreenDeveloperSectionTitle": "Developer",
|
"aboutScreenDeveloperSectionTitle": "Developer",
|
||||||
"aboutScreenContactUsTitle": "Contact Us",
|
"aboutScreenContactUsTitle": "Contact Us",
|
||||||
"aboutScreenLicenseTitle": "License",
|
"aboutScreenLicenseTitle": "License",
|
||||||
"aboutScreenLicenseContent": "All copyright reserved © {} Solsynth\nOpen-sourced under license GNU AGPL v3.0",
|
"aboutScreenLicenseContent": "GNU Affero General Public License v3.0",
|
||||||
"aboutScreenCopyright": "© {} {}. All rights reserved.",
|
"aboutScreenCopyright": "All rights reserved © Solsynth {}",
|
||||||
|
"aboutScreenMadeWith": "Made with ❤︎️ by Solar Network Team",
|
||||||
"aboutScreenFailedToLoadPackageInfo": "Failed to load package info: {error}",
|
"aboutScreenFailedToLoadPackageInfo": "Failed to load package info: {error}",
|
||||||
"copiedToClipboard": "Copied to clipboard",
|
"copiedToClipboard": "Copied to clipboard",
|
||||||
"copyToClipboardTooltip": "Copy to clipboard",
|
"copyToClipboardTooltip": "Copy to clipboard",
|
||||||
|
@ -512,5 +512,33 @@
|
|||||||
"orderId": "订单 ID",
|
"orderId": "订单 ID",
|
||||||
"enterOrderId": "输入您的订单 ID",
|
"enterOrderId": "输入您的订单 ID",
|
||||||
"restore": "恢复",
|
"restore": "恢复",
|
||||||
"keyboardShortcuts": "键盘快捷键"
|
"keyboardShortcuts": "键盘快捷键",
|
||||||
|
"about": "关于",
|
||||||
|
"membershipCancel": "取消会员订阅",
|
||||||
|
"membershipCancelConfirm": "您确定要取消您的会员订阅?",
|
||||||
|
"membershipCancelHint": "您确定要取消您的会员订阅吗?您将不会再被收费。您的会员资格将在当前计费周期结束前保持有效。并且您在当前订阅结束之前无法重新订阅。",
|
||||||
|
"membershipCancelSuccess": "您的会员订阅已成功取消。",
|
||||||
|
"aboutScreenTitle": "关于",
|
||||||
|
"aboutScreenVersionInfo": "版本 {} ({})",
|
||||||
|
"aboutScreenAppInfoSectionTitle": "应用信息",
|
||||||
|
"aboutScreenPackageNameLabel": "包名",
|
||||||
|
"aboutScreenVersionLabel": "版本",
|
||||||
|
"aboutScreenBuildNumberLabel": "构建编号",
|
||||||
|
"aboutScreenLinksSectionTitle": "链接",
|
||||||
|
"aboutScreenPrivacyPolicyTitle": "隐私政策",
|
||||||
|
"aboutScreenTermsOfServiceTitle": "服务条款",
|
||||||
|
"aboutScreenOpenSourceLicensesTitle": "开源许可证",
|
||||||
|
"aboutScreenDeveloperSectionTitle": "开发者",
|
||||||
|
"aboutScreenContactUsTitle": "联系我们",
|
||||||
|
"aboutScreenLicenseTitle": "许可证",
|
||||||
|
"aboutScreenLicenseContent": "GNU Affero General Public License v3.0",
|
||||||
|
"aboutScreenCopyright": "版权所有 © Solsynth {}",
|
||||||
|
"aboutScreenMadeWith": "由 Solar Network Team 用 ❤︎️ 制作",
|
||||||
|
"aboutScreenFailedToLoadPackageInfo": "加载包信息失败:{error}",
|
||||||
|
"copiedToClipboard": "已复制到剪贴板",
|
||||||
|
"copyToClipboardTooltip": "复制到剪贴板",
|
||||||
|
"postForwardingTo": "转发给",
|
||||||
|
"postReplyingTo": "回复给",
|
||||||
|
"postEditing": "您正在编辑现有帖子",
|
||||||
|
"postArticle": "文章"
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:device_info_plus/device_info_plus.dart';
|
import 'package:device_info_plus/device_info_plus.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:gap/gap.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:island/pods/network.dart';
|
import 'package:island/pods/network.dart';
|
||||||
import 'package:island/services/notify.dart';
|
import 'package:island/services/notify.dart';
|
||||||
@ -137,19 +138,19 @@ class _AboutScreenState extends ConsumerState<AboutScreen> {
|
|||||||
children: [
|
children: [
|
||||||
_buildInfoItem(
|
_buildInfoItem(
|
||||||
context,
|
context,
|
||||||
icon: Icons.info_outline,
|
icon: Symbols.info,
|
||||||
label: 'aboutScreenPackageNameLabel'.tr(),
|
label: 'aboutScreenPackageNameLabel'.tr(),
|
||||||
value: _packageInfo.packageName,
|
value: _packageInfo.packageName,
|
||||||
),
|
),
|
||||||
_buildInfoItem(
|
_buildInfoItem(
|
||||||
context,
|
context,
|
||||||
icon: Icons.update,
|
icon: Symbols.update,
|
||||||
label: 'aboutScreenVersionLabel'.tr(),
|
label: 'aboutScreenVersionLabel'.tr(),
|
||||||
value: _packageInfo.version,
|
value: _packageInfo.version,
|
||||||
),
|
),
|
||||||
_buildInfoItem(
|
_buildInfoItem(
|
||||||
context,
|
context,
|
||||||
icon: Icons.build,
|
icon: Symbols.build,
|
||||||
label: 'aboutScreenBuildNumberLabel'.tr(),
|
label: 'aboutScreenBuildNumberLabel'.tr(),
|
||||||
value: _packageInfo.buildNumber,
|
value: _packageInfo.buildNumber,
|
||||||
),
|
),
|
||||||
@ -206,7 +207,7 @@ class _AboutScreenState extends ConsumerState<AboutScreen> {
|
|||||||
children: [
|
children: [
|
||||||
_buildListTile(
|
_buildListTile(
|
||||||
context,
|
context,
|
||||||
icon: Icons.privacy_tip_outlined,
|
icon: Symbols.privacy_tip,
|
||||||
title: 'aboutScreenPrivacyPolicyTitle'.tr(),
|
title: 'aboutScreenPrivacyPolicyTitle'.tr(),
|
||||||
onTap:
|
onTap:
|
||||||
() => _launchURL(
|
() => _launchURL(
|
||||||
@ -215,7 +216,7 @@ class _AboutScreenState extends ConsumerState<AboutScreen> {
|
|||||||
),
|
),
|
||||||
_buildListTile(
|
_buildListTile(
|
||||||
context,
|
context,
|
||||||
icon: Icons.description_outlined,
|
icon: Symbols.description,
|
||||||
title: 'aboutScreenTermsOfServiceTitle'.tr(),
|
title: 'aboutScreenTermsOfServiceTitle'.tr(),
|
||||||
onTap:
|
onTap:
|
||||||
() => _launchURL(
|
() => _launchURL(
|
||||||
@ -224,7 +225,7 @@ class _AboutScreenState extends ConsumerState<AboutScreen> {
|
|||||||
),
|
),
|
||||||
_buildListTile(
|
_buildListTile(
|
||||||
context,
|
context,
|
||||||
icon: Icons.code,
|
icon: Symbols.code,
|
||||||
title: 'aboutScreenOpenSourceLicensesTitle'.tr(),
|
title: 'aboutScreenOpenSourceLicensesTitle'.tr(),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
showLicensePage(
|
showLicensePage(
|
||||||
@ -247,14 +248,14 @@ class _AboutScreenState extends ConsumerState<AboutScreen> {
|
|||||||
children: [
|
children: [
|
||||||
_buildListTile(
|
_buildListTile(
|
||||||
context,
|
context,
|
||||||
icon: Icons.email_outlined,
|
icon: Symbols.email,
|
||||||
title: 'aboutScreenContactUsTitle'.tr(),
|
title: 'aboutScreenContactUsTitle'.tr(),
|
||||||
subtitle: 'lily@solsynth.dev',
|
subtitle: 'lily@solsynth.dev',
|
||||||
onTap: () => _launchURL('mailto:lily@solsynth.dev'),
|
onTap: () => _launchURL('mailto:lily@solsynth.dev'),
|
||||||
),
|
),
|
||||||
_buildListTile(
|
_buildListTile(
|
||||||
context,
|
context,
|
||||||
icon: Icons.copyright,
|
icon: Symbols.copyright,
|
||||||
title: 'aboutScreenLicenseTitle'.tr(),
|
title: 'aboutScreenLicenseTitle'.tr(),
|
||||||
subtitle: 'aboutScreenLicenseContent'.tr(
|
subtitle: 'aboutScreenLicenseContent'.tr(
|
||||||
args: [DateTime.now().year.toString()],
|
args: [DateTime.now().year.toString()],
|
||||||
@ -272,14 +273,25 @@ class _AboutScreenState extends ConsumerState<AboutScreen> {
|
|||||||
// Copyright
|
// Copyright
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.all(16.0),
|
padding: const EdgeInsets.all(16.0),
|
||||||
child: Text(
|
child: Column(
|
||||||
'aboutScreenCopyright'.tr(
|
children: [
|
||||||
args: [DateTime.now().year.toString(), "Solsynth"],
|
Text(
|
||||||
),
|
'aboutScreenCopyright'.tr(
|
||||||
style: theme.textTheme.bodySmall,
|
args: [DateTime.now().year.toString()],
|
||||||
textAlign: TextAlign.center,
|
),
|
||||||
|
style: theme.textTheme.bodySmall,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
|
const Gap(1),
|
||||||
|
Text(
|
||||||
|
'aboutScreenMadeWith'.tr(),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
).fontSize(10).opacity(0.8),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
Gap(MediaQuery.of(context).padding.bottom + 16),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -341,7 +353,7 @@ class _AboutScreenState extends ConsumerState<AboutScreen> {
|
|||||||
),
|
),
|
||||||
if (value.startsWith('http') || value.contains('@') || copyable)
|
if (value.startsWith('http') || value.contains('@') || copyable)
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.copy, size: 16),
|
icon: const Icon(Symbols.content_copy, size: 16),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Clipboard.setData(ClipboardData(text: value));
|
Clipboard.setData(ClipboardData(text: value));
|
||||||
ScaffoldMessenger.of(context).showSnackBar(
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
@ -373,7 +385,7 @@ class _AboutScreenState extends ConsumerState<AboutScreen> {
|
|||||||
subtitle: subtitle != null ? Text(subtitle) : null,
|
subtitle: subtitle != null ? Text(subtitle) : null,
|
||||||
isThreeLine: multipleLines,
|
isThreeLine: multipleLines,
|
||||||
trailing: const Icon(
|
trailing: const Icon(
|
||||||
Icons.chevron_right,
|
Symbols.chevron_right,
|
||||||
).padding(top: multipleLines ? 8 : 0),
|
).padding(top: multipleLines ? 8 : 0),
|
||||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
|
||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user