From 8cfe4471731a0d6d959d3515c67b60717cb764cc Mon Sep 17 00:00:00 2001 From: creeper-0910 <56744841+creeper-0910@users.noreply.github.com> Date: Sun, 18 Sep 2022 19:35:09 +0900 Subject: [PATCH] test-add ja selector --- assets/i18n/en.json | 221 +++++++++--------- assets/i18n/ja.json | 152 ++++++++++++ lib/main.dart | 4 + lib/ui/views/settings/settings_view.dart | 5 + lib/ui/views/settings/settings_viewmodel.dart | 9 + 5 files changed, 280 insertions(+), 111 deletions(-) create mode 100644 assets/i18n/ja.json diff --git a/assets/i18n/en.json b/assets/i18n/en.json index 904358e..9fd376f 100644 --- a/assets/i18n/en.json +++ b/assets/i18n/en.json @@ -1,152 +1,151 @@ { "okButton": "OK", - "cancelButton": "キャンセル", - "enabledLabel": "有効", - "disabledLabel": "無効", - "yesLabel": "はい", - "noLabel": "いいえ", + "cancelButton": "Cancel", + "enabledLabel": "Enabled", + "disabledLabel": "Disabled", + "yesLabel": "Yes", + "noLabel": "No", "navigationView": { - "dashboardTab": "ダッシュボード", - "patcherTab": "パッチの適用", - "settingsTab": "設定" + "dashboardTab": "Dashboard", + "patcherTab": "Patcher", + "settingsTab": "Settings" }, "homeView": { - "widgetTitle": "ダッシュボード", - "updatesSubtitle": "アップデート", - "patchedSubtitle": "パッチ適用済のアプリケーション", - "updatesAvailable": "利用可能な更新", - "noUpdates": "更新はありません", - "noInstallations": "パッチ適用済のアプリケーションはインストールされていません", - "installed": "インストール済", - "updateDialogTitle": "アップデート", - "updateDialogText": "ReVanced Managerをダウンロードして更新しますか?", - "notificationTitle": "ReVanced Managerを更新しました!", - "notificationText": "タップしてアプリを起動", - "downloadingMessage": "アップデートをダウンロード中!", - "installingMessage": "アップデートをインストール中...しばらくお待ち下さい", - "errorDownloadMessage": "アップデートをダウンロード出来ませんでした。", - "errorInstallMessage": "アップデートをインストール出来ませんでした。", - "noConnection": "ネットワーク接続がありません" + "widgetTitle": "Dashboard", + "updatesSubtitle": "Updates", + "patchedSubtitle": "Patched Applications", + "updatesAvailable": "Updates Available", + "noUpdates": "No updates available", + "noInstallations": "No patched applications installed", + "installed": "Installed", + "updateDialogTitle": "Update", + "updateDialogText": "Are you sure you want to download and update Manager?", + "notificationTitle": "ReVanced Manager was updated!", + "notificationText": "Tap to open the app", + "downloadingMessage": "Downloading update!", + "installingMessage": "Installing update... Hang on!", + "errorDownloadMessage": "Unable to download update!", + "errorInstallMessage": "Unable to install update!", + "noConnection": "No internet connection" }, "applicationItem": { - "patchButton": "適用", - "infoButton": "情報", - "changelogLabel": "更新履歴" + "patchButton": "Patch", + "infoButton": "Info", + "changelogLabel": "Changelog" }, "latestCommitCard": { - "loadingLabel": "読み込み中", - "timeagoLabel": "{time} 前", + "loadingLabel": "Loading", + "timeagoLabel": "{time} ago", "patcherLabel": "Patcher: ", "managerLabel": "Manager: ", - "updateButton": "Managerを更新" + "updateButton": "Update Manager" }, "patcherView": { "widgetTitle": "Patcher", - "patchButton": "適用", - "patchDialogTitle": "警告", - "patchDialogText": "リソースパッチとAPKの分割インストールが検出されました、パッチ適用時にエラーが発生する可能性があります。\n分割されたベースAPKにパッチを適用しますか?" + "patchButton": "Patch", + "patchDialogTitle": "Warning", + "patchDialogText": "You have selected a resource patch and a split APK installation was detected so patching errors can occur.\nAre you sure you want to proceed with patching a split base APK?" }, "appSelectorCard": { - "widgetTitle": "アプリケーションを選択", - "widgetTitleSelected": "アプリケーション選択済", - "widgetSubtitle": "アプリケーションが選択されていません。", - "noAppsLabel": "アプリケーションが見つかりませんでした。", - "currentVersion": "現在", - "recommendedVersion": "推奨", + "widgetTitle": "Select application", + "widgetTitleSelected": "Selected application", + "widgetSubtitle": "No application selected.", + "noAppsLabel": "No applications found.", + "currentVersion": "Current", + "recommendedVersion": "Recommended", "anyVersion": "any" }, "patchSelectorCard": { - "widgetTitle": "パッチの選択", - "widgetTitleSelected": "パッチ選択済", - "widgetSubtitle": "最初にアプリケーションを選択してください。", - "widgetEmptySubtitle": "パッチが選択されていません。" + "widgetTitle": "Select patches", + "widgetTitleSelected": "Selected patches", + "widgetSubtitle": "Select an application first.", + "widgetEmptySubtitle": "No patches selected." }, "socialMediaCard": { - "widgetTitle": "ソーシャルメディア", - "widgetSubtitle": "私たちはオンラインです!" + "widgetTitle": "Social Media", + "widgetSubtitle": "We are online!" }, "appSelectorView": { - "searchBarHint": "アプリケーションの選択", - "storageButton": "ストレージ", - "errorMessage": "選択したアプリケーションは使用できません。" + "searchBarHint": "Search applications", + "storageButton": "Storage", + "errorMessage": "Unable to use selected application." }, "patchesSelectorView": { - "searchBarHint": "パッチの検索", - "doneButton": "完了", - "noPatchesFound": "選択したアプリのパッチは見つかりませんでした。" + "searchBarHint": "Search patches", + "doneButton": "Done", + "noPatchesFound": "No patches found for the selected app." }, "patchItem": { - "unsupportedWarningButton": "サポートされていないバージョン", - "unsupportedDialogTitle": "警告", - "unsupportedDialogText": "このパッチは、適用時にエラーが発生する場合があります。\n\nアプリバージョン: {packageVersion}\n現在サポートされているバージョン:\n{supportedVersions}" + "unsupportedWarningButton": "Unsupported version", + "unsupportedDialogTitle": "Warning", + "unsupportedDialogText": "Selecting this patch may result in patching errors.\n\nApp version: {packageVersion}\nCurrent supported versions:\n{supportedVersions}" }, "installerView": { - "widgetTitle": "インストーラー", - "installButton": "インストール", - "installRootButton": "rootとしてインストール", - "openButton": "開く", - "shareButton": "ファイルを共有する", - "notificationTitle": "ReVanced Managerはパッチを適用しています", - "notificationText": "タップするとインストーラーに戻ります", - "shareApkMenuOption": "APKを共有", - "shareLogMenuOption": "logを共有" + "widgetTitle": "Installer", + "installButton": "Install", + "installRootButton": "Install as Root", + "openButton": "Open", + "shareButton": "Share file", + "notificationTitle": "ReVanced Manager is patching", + "notificationText": "Tap to return to the installer", + "shareApkMenuOption": "Share APK", + "shareLogMenuOption": "Share log" }, "settingsView": { - "widgetTitle": "設定", - "appearanceSectionTitle": "外観", + "widgetTitle": "Settings", + "appearanceSectionTitle": "Appearance", "patcherSectionTitle": "Patcher", - "teamSectionTitle": "チーム", - "infoSectionTitle": "情報", - "darkThemeLabel": "ダークモード", - "darkThemeHint": "ダークサイドへようこそ", + "teamSectionTitle": "Team", + "infoSectionTitle": "Info", + "darkThemeLabel": "Dark Mode", + "darkThemeHint": "Welcome to the Dark Side", "dynamicThemeLabel": "Material You", - "dynamicThemeHint": "よりデバイスに近い体験が楽しめます", - "languageLabel": "言語", + "dynamicThemeHint": "Enjoy an experience closer to your device", + "languageLabel": "Language", "englishOption": "English", "frenchOption": "French", - "JapaneseOption": "日本語", - "sourcesLabel": "ソース", - "sourcesLabelHint": "カスタムソースの設定", - "orgPatchesLabel" : "パッチ提供元", - "sourcesPatchesLabel" : "パッチのソース", - "orgIntegrationsLabel": "Integrationsの提供元", - "sourcesIntegrationsLabel": "Integrationsのソース", - "sourcesResetDialogTitle": "リセット", - "sourcesResetDialogText": "カスタム ソースをデフォルト値にリセットしてもよろしいですか?", - "contributorsLabel": "貢献者", - "contributorsHint": "ReVancedへの貢献者一覧", - "logsLabel": "ログ", - "logsHint": "デバイスのデバッグログを共有", - "aboutLabel": "詳細", - "snackbarMessage": "クリップボードにコピーしました" + "sourcesLabel": "Sources", + "sourcesLabelHint": "Configure your custom sources", + "orgPatchesLabel" : "Patches Org", + "sourcesPatchesLabel" : "Patches Source", + "orgIntegrationsLabel": "Integrations Org", + "sourcesIntegrationsLabel": "Integrations Source", + "sourcesResetDialogTitle": "Reset", + "sourcesResetDialogText": "Are you sure you want to reset custom sources to their default values?", + "contributorsLabel": "Contributors", + "contributorsHint": "A list of contributors of ReVanced", + "logsLabel": "Logs", + "logsHint": "Share device debug logs", + "aboutLabel": "About", + "snackbarMessage": "Copied to clipboard" }, "appInfoView": { - "widgetTitle": "アプリ情報", - "openButton": "開く", - "uninstallButton": "アンインストール", - "patchButton": "適用", - "unpatchButton": "パッチ解除", - "uninstallDialogTitle": "アンインストール", - "uninstallDialogText": "選択したアプリケーションをアンインストールしますか?", - "unpatchDialogTitle": "パッチ解除", - "unpatchDialogText": "選択したアプリケーションに適用されているパッチを解除しますか?", - "rootDialogTitle": "エラー", - "rootDialogText": "アプリは端末がルート化された状態でインストールされましたが、現在はルート化が解除されているようです。\n再度、ルート化してから実行してください。", - "packageNameLabel": "パッケージ名", - "installTypeLabel": "インストールタイプ", - "rootTypeLabel": "ルート", - "nonRootTypeLabel": "非ルート", - "patchedDateLabel": "パッチ適用日", - "patchedDateHint": "{date} の {time}", - "appliedPatchesLabel": "適用済のパッチ", - "appliedPatchesHint": "{quantity} 個の適用済パッチ" + "widgetTitle": "App Info", + "openButton": "Open", + "uninstallButton": "Uninstall", + "patchButton": "Patch", + "unpatchButton": "Unpatch", + "uninstallDialogTitle": "Uninstall", + "uninstallDialogText": "Are you sure you want to uninstall this app?", + "unpatchDialogTitle": "Unpatch", + "unpatchDialogText": "Are you sure you want to unpatch this app?", + "rootDialogTitle": "Error", + "rootDialogText": "App was installed with root mode enabled but currently root mode is disabled.\nPlease enable root mode first.", + "packageNameLabel": "Package Name", + "installTypeLabel": "Installation Type", + "rootTypeLabel": "Root", + "nonRootTypeLabel": "Non-root", + "patchedDateLabel": "Patched Date", + "patchedDateHint": "{date} at {time}", + "appliedPatchesLabel": "Applied Patches", + "appliedPatchesHint": "{quantity} applied patches" }, "contributorsView": { - "widgetTitle": "貢献者", - "patcherContributors": "Patcherの貢献者", - "patchesContributors": "パッチの貢献者", - "integrationsContributors": "Integrationsの貢献者", - "cliContributors": "CLIの貢献者", - "managerContributors": "Managerの貢献者" + "widgetTitle": "Contributors", + "patcherContributors": "Patcher Contributors", + "patchesContributors": "Patches Contributors", + "integrationsContributors": "Integrations Contributors", + "cliContributors": "CLI Contributors", + "managerContributors": "Manager Contributors" } } diff --git a/assets/i18n/ja.json b/assets/i18n/ja.json new file mode 100644 index 0000000..904358e --- /dev/null +++ b/assets/i18n/ja.json @@ -0,0 +1,152 @@ +{ + "okButton": "OK", + "cancelButton": "キャンセル", + "enabledLabel": "有効", + "disabledLabel": "無効", + "yesLabel": "はい", + "noLabel": "いいえ", + "navigationView": { + "dashboardTab": "ダッシュボード", + "patcherTab": "パッチの適用", + "settingsTab": "設定" + }, + "homeView": { + "widgetTitle": "ダッシュボード", + "updatesSubtitle": "アップデート", + "patchedSubtitle": "パッチ適用済のアプリケーション", + "updatesAvailable": "利用可能な更新", + "noUpdates": "更新はありません", + "noInstallations": "パッチ適用済のアプリケーションはインストールされていません", + "installed": "インストール済", + "updateDialogTitle": "アップデート", + "updateDialogText": "ReVanced Managerをダウンロードして更新しますか?", + "notificationTitle": "ReVanced Managerを更新しました!", + "notificationText": "タップしてアプリを起動", + "downloadingMessage": "アップデートをダウンロード中!", + "installingMessage": "アップデートをインストール中...しばらくお待ち下さい", + "errorDownloadMessage": "アップデートをダウンロード出来ませんでした。", + "errorInstallMessage": "アップデートをインストール出来ませんでした。", + "noConnection": "ネットワーク接続がありません" + }, + "applicationItem": { + "patchButton": "適用", + "infoButton": "情報", + "changelogLabel": "更新履歴" + }, + "latestCommitCard": { + "loadingLabel": "読み込み中", + "timeagoLabel": "{time} 前", + "patcherLabel": "Patcher: ", + "managerLabel": "Manager: ", + "updateButton": "Managerを更新" + }, + "patcherView": { + "widgetTitle": "Patcher", + "patchButton": "適用", + "patchDialogTitle": "警告", + "patchDialogText": "リソースパッチとAPKの分割インストールが検出されました、パッチ適用時にエラーが発生する可能性があります。\n分割されたベースAPKにパッチを適用しますか?" + }, + "appSelectorCard": { + "widgetTitle": "アプリケーションを選択", + "widgetTitleSelected": "アプリケーション選択済", + "widgetSubtitle": "アプリケーションが選択されていません。", + "noAppsLabel": "アプリケーションが見つかりませんでした。", + "currentVersion": "現在", + "recommendedVersion": "推奨", + "anyVersion": "any" + }, + "patchSelectorCard": { + "widgetTitle": "パッチの選択", + "widgetTitleSelected": "パッチ選択済", + "widgetSubtitle": "最初にアプリケーションを選択してください。", + "widgetEmptySubtitle": "パッチが選択されていません。" + }, + "socialMediaCard": { + "widgetTitle": "ソーシャルメディア", + "widgetSubtitle": "私たちはオンラインです!" + }, + "appSelectorView": { + "searchBarHint": "アプリケーションの選択", + "storageButton": "ストレージ", + "errorMessage": "選択したアプリケーションは使用できません。" + }, + "patchesSelectorView": { + "searchBarHint": "パッチの検索", + "doneButton": "完了", + "noPatchesFound": "選択したアプリのパッチは見つかりませんでした。" + }, + "patchItem": { + "unsupportedWarningButton": "サポートされていないバージョン", + "unsupportedDialogTitle": "警告", + "unsupportedDialogText": "このパッチは、適用時にエラーが発生する場合があります。\n\nアプリバージョン: {packageVersion}\n現在サポートされているバージョン:\n{supportedVersions}" + }, + "installerView": { + "widgetTitle": "インストーラー", + "installButton": "インストール", + "installRootButton": "rootとしてインストール", + "openButton": "開く", + "shareButton": "ファイルを共有する", + "notificationTitle": "ReVanced Managerはパッチを適用しています", + "notificationText": "タップするとインストーラーに戻ります", + "shareApkMenuOption": "APKを共有", + "shareLogMenuOption": "logを共有" + }, + "settingsView": { + "widgetTitle": "設定", + "appearanceSectionTitle": "外観", + "patcherSectionTitle": "Patcher", + "teamSectionTitle": "チーム", + "infoSectionTitle": "情報", + "darkThemeLabel": "ダークモード", + "darkThemeHint": "ダークサイドへようこそ", + "dynamicThemeLabel": "Material You", + "dynamicThemeHint": "よりデバイスに近い体験が楽しめます", + "languageLabel": "言語", + "englishOption": "English", + "frenchOption": "French", + "JapaneseOption": "日本語", + "sourcesLabel": "ソース", + "sourcesLabelHint": "カスタムソースの設定", + "orgPatchesLabel" : "パッチ提供元", + "sourcesPatchesLabel" : "パッチのソース", + "orgIntegrationsLabel": "Integrationsの提供元", + "sourcesIntegrationsLabel": "Integrationsのソース", + "sourcesResetDialogTitle": "リセット", + "sourcesResetDialogText": "カスタム ソースをデフォルト値にリセットしてもよろしいですか?", + "contributorsLabel": "貢献者", + "contributorsHint": "ReVancedへの貢献者一覧", + "logsLabel": "ログ", + "logsHint": "デバイスのデバッグログを共有", + "aboutLabel": "詳細", + "snackbarMessage": "クリップボードにコピーしました" + }, + "appInfoView": { + "widgetTitle": "アプリ情報", + "openButton": "開く", + "uninstallButton": "アンインストール", + "patchButton": "適用", + "unpatchButton": "パッチ解除", + "uninstallDialogTitle": "アンインストール", + "uninstallDialogText": "選択したアプリケーションをアンインストールしますか?", + "unpatchDialogTitle": "パッチ解除", + "unpatchDialogText": "選択したアプリケーションに適用されているパッチを解除しますか?", + "rootDialogTitle": "エラー", + "rootDialogText": "アプリは端末がルート化された状態でインストールされましたが、現在はルート化が解除されているようです。\n再度、ルート化してから実行してください。", + "packageNameLabel": "パッケージ名", + "installTypeLabel": "インストールタイプ", + "rootTypeLabel": "ルート", + "nonRootTypeLabel": "非ルート", + "patchedDateLabel": "パッチ適用日", + "patchedDateHint": "{date} の {time}", + "appliedPatchesLabel": "適用済のパッチ", + "appliedPatchesHint": "{quantity} 個の適用済パッチ" + }, + "contributorsView": { + "widgetTitle": "貢献者", + "patcherContributors": "Patcherの貢献者", + "patchesContributors": "パッチの貢献者", + "integrationsContributors": "Integrationsの貢献者", + "cliContributors": "CLIの貢献者", + "managerContributors": "Managerの貢献者" + } +} diff --git a/lib/main.dart b/lib/main.dart index 3fcf32b..718cd32 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -35,6 +35,10 @@ class MyApp extends StatelessWidget { fallbackFile: 'en', basePath: 'assets/i18n', ), + translationLoader: FileTranslationLoader( + fallbackFile: 'ja', + basePath: 'assets/i18n', + ), ), GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate diff --git a/lib/ui/views/settings/settings_view.dart b/lib/ui/views/settings/settings_view.dart index d29fec0..f757612 100644 --- a/lib/ui/views/settings/settings_view.dart +++ b/lib/ui/views/settings/settings_view.dart @@ -90,6 +90,11 @@ class SettingsView extends StatelessWidget { subtitle: 'English', onTap: () => model.showLanguagesDialog(context), ), + SettingsTileDialog( + title: 'settingsView.languageLabel', + subtitle: 'Japanese', + onTap: () => model.showLanguagesDialog(context), + ), const Divider(thickness: 1.0), SettingsSection( title: 'settingsView.patcherSectionTitle', diff --git a/lib/ui/views/settings/settings_viewmodel.dart b/lib/ui/views/settings/settings_viewmodel.dart index 6d3e26b..d53a71c 100644 --- a/lib/ui/views/settings/settings_viewmodel.dart +++ b/lib/ui/views/settings/settings_viewmodel.dart @@ -103,6 +103,15 @@ class SettingsViewModel extends BaseViewModel { Navigator.of(context).pop(); }, ), + RadioListTile( + title: I18nText('settingsView.JapaneseOption'), + value: 'ja', + groupValue: 'ja', + onChanged: (value) { + updateLanguage(context, value); + Navigator.of(context).pop(); + }, + ), ], ), );