Internationalized more strings

Added ZH to supported language codes
Increment version
This commit is contained in:
Imran Remtulla
2022-12-15 11:09:03 -05:00
parent a8f0d784a2
commit 14ae43de92
5 changed files with 50 additions and 16 deletions

View File

@@ -171,6 +171,15 @@
"trackOnly": "Track-Only", "trackOnly": "Track-Only",
"errorWithHttpStatusCode": "Error {}", "errorWithHttpStatusCode": "Error {}",
"versionCorrectionDisabled": "Version correction disabled (plugin doesn't seem to work)", "versionCorrectionDisabled": "Version correction disabled (plugin doesn't seem to work)",
"unknown": "Unknown",
"none": "None",
"never": "Never",
"latestVersionX": "Latest Version: {}",
"installedVersionX": "Installed Version: {}",
"lastUpdateCheckX": "Last Update Check: {}",
"remove": "Remove",
"removeAppQuestion": "Remove App?",
"yesMarkUpdated": "'Yes, Mark as Updated",
"tooManyRequestsTryAgainInMinutes": { "tooManyRequestsTryAgainInMinutes": {
"one": "Too many requests (rate limited) - try again in {} minute", "one": "Too many requests (rate limited) - try again in {} minute",
"other": "Too many requests (rate limited) - try again in {} minutes" "other": "Too many requests (rate limited) - try again in {} minutes"

View File

@@ -42,6 +42,7 @@
"trackOnlyAppDescription": "The App will be tracked for updates, but Obtainium will not be able to download or install it.", "trackOnlyAppDescription": "The App will be tracked for updates, but Obtainium will not be able to download or install it.",
"cancelled": "已取消", "cancelled": "已取消",
"appAlreadyAdded": "此应用程序已被添加", "appAlreadyAdded": "此应用程序已被添加",
"alreadyUpToDateQuestion": "App Already up to Date?",
"addApp": "添加应用", "addApp": "添加应用",
"appSourceURL": "应用来源 URL", "appSourceURL": "应用来源 URL",
"error": "错误", "error": "错误",
@@ -169,6 +170,16 @@
"pleaseAllowInstallPerm": "请允许 Obtainium 安装应用程序", "pleaseAllowInstallPerm": "请允许 Obtainium 安装应用程序",
"trackOnly": "仅追踪", "trackOnly": "仅追踪",
"errorWithHttpStatusCode": "错误 {}", "errorWithHttpStatusCode": "错误 {}",
"versionCorrectionDisabled": "Version correction disabled (plugin doesn't seem to work)",
"unknown": "Unknown",
"none": "None",
"never": "Never",
"latestVersionX": "Latest Version: {}",
"installedVersionX": "Installed Version: {}",
"lastUpdateCheckX": "Last Update Check: {}",
"remove": "Remove",
"removeAppQuestion": "Remove App?",
"yesMarkUpdated": "'Yes, Mark as Updated",
"tooManyRequestsTryAgainInMinutes": { "tooManyRequestsTryAgainInMinutes": {
"one": "请求过多 (API 限制) - 在 {} 分钟后重试", "one": "请求过多 (API 限制) - 在 {} 分钟后重试",
"other": "请求过多 (API 限制) - 在 {} 分钟后重试" "other": "请求过多 (API 限制) - 在 {} 分钟后重试"

View File

@@ -21,13 +21,13 @@ import 'package:easy_localization/src/easy_localization_controller.dart';
// ignore: implementation_imports // ignore: implementation_imports
import 'package:easy_localization/src/localization.dart'; import 'package:easy_localization/src/localization.dart';
const String currentVersion = '0.8.10'; const String currentVersion = '0.8.11';
const String currentReleaseTag = const String currentReleaseTag =
'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES 'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
const int bgUpdateCheckAlarmId = 666; const int bgUpdateCheckAlarmId = 666;
const supportedLocales = [Locale('en')]; const supportedLocales = [Locale('en'), Locale('zh')];
const fallbackLocale = Locale('en'); const fallbackLocale = Locale('en');
const localeDir = 'assets/translations'; const localeDir = 'assets/translations';

View File

@@ -76,7 +76,7 @@ class _AppPageState extends State<AppPage> {
style: Theme.of(context).textTheme.displayLarge, style: Theme.of(context).textTheme.displayLarge,
), ),
Text( Text(
'By ${app?.app.author ?? 'Unknown'}', tr('byX', args: [app?.app.author ?? tr('unknown')]),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: Theme.of(context).textTheme.headlineMedium, style: Theme.of(context).textTheme.headlineMedium,
), ),
@@ -102,12 +102,17 @@ class _AppPageState extends State<AppPage> {
height: 32, height: 32,
), ),
Text( Text(
'Latest Version: ${app?.app.latestVersion ?? 'Unknown'}', tr('latestVersionX',
args: [app?.app.latestVersion ?? tr('unknown')]),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: Theme.of(context).textTheme.bodyLarge, style: Theme.of(context).textTheme.bodyLarge,
), ),
Text( Text(
'Installed Version: ${app?.app.installedVersion ?? 'None'}${app?.app.trackOnly == true ? ' (Estimate)\n\nApp is Track-Only' : ''}', '${tr('installedVersionX', args: [
app?.app.installedVersion ?? tr('none')
])}${app?.app.trackOnly == true ? ' ${tr('estimateInBrackets')}\n\n${tr('xIsTrackOnly', args: [
tr('app')
])}' : ''}',
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: Theme.of(context).textTheme.bodyLarge, style: Theme.of(context).textTheme.bodyLarge,
), ),
@@ -115,7 +120,11 @@ class _AppPageState extends State<AppPage> {
height: 32, height: 32,
), ),
Text( Text(
'Last Update Check: ${app?.app.lastUpdateCheck == null ? 'Never' : '\n${app?.app.lastUpdateCheck?.toLocal()}'}', tr('lastUpdateCheckX', args: [
app?.app.lastUpdateCheck == null
? tr('never')
: '\n${app?.app.lastUpdateCheck?.toLocal()}'
]),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: const TextStyle( style: const TextStyle(
fontStyle: FontStyle.italic, fontSize: 12), fontStyle: FontStyle.italic, fontSize: 12),
@@ -166,7 +175,7 @@ class _AppPageState extends State<AppPage> {
Navigator.of(context) Navigator.of(context)
.pop(); .pop();
}, },
child: const Text('No')), child: Text(tr('no'))),
TextButton( TextButton(
onPressed: () { onPressed: () {
HapticFeedback HapticFeedback
@@ -183,8 +192,8 @@ class _AppPageState extends State<AppPage> {
Navigator.of(context) Navigator.of(context)
.pop(); .pop();
}, },
child: const Text( child: Text(
'Yes, Mark as Updated')) tr('yesMarkUpdated')))
], ],
); );
}); });
@@ -267,9 +276,14 @@ class _AppPageState extends State<AppPage> {
context: context, context: context,
builder: (BuildContext ctx) { builder: (BuildContext ctx) {
return AlertDialog( return AlertDialog(
title: const Text('Remove App?'), title: Text(tr('removeAppQuestion')),
content: Text( content: Text(tr(
'This will remove \'${app?.installedInfo?.name ?? app?.app.name}\' from Obtainium.${app?.app.installedVersion != null ? '\n\nNote that while Obtainium will no longer track its updates, the App will remain installed.' : ''}'), 'xWillBeRemovedButRemainInstalled',
args: [
app?.installedInfo?.name ??
app?.app.name ??
tr('app')
])),
actions: [ actions: [
TextButton( TextButton(
onPressed: () { onPressed: () {
@@ -283,12 +297,12 @@ class _AppPageState extends State<AppPage> {
count++ >= 2); count++ >= 2);
}); });
}, },
child: const Text('Remove')), child: Text(tr('remove'))),
TextButton( TextButton(
onPressed: () { onPressed: () {
Navigator.of(context).pop(); Navigator.of(context).pop();
}, },
child: const Text('Cancel')) child: Text(tr('cancel')))
], ],
); );
}); });
@@ -298,7 +312,7 @@ class _AppPageState extends State<AppPage> {
Theme.of(context).colorScheme.error, Theme.of(context).colorScheme.error,
surfaceTintColor: surfaceTintColor:
Theme.of(context).colorScheme.error), Theme.of(context).colorScheme.error),
child: const Text('Remove'), child: Text(tr('remove')),
), ),
])), ])),
if (app?.downloadProgress != null) if (app?.downloadProgress != null)

View File

@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 0.8.10+74 # When changing this, update the tag in main() accordingly version: 0.8.11+75 # When changing this, update the tag in main() accordingly
environment: environment:
sdk: '>=2.18.2 <3.0.0' sdk: '>=2.18.2 <3.0.0'