From 513897406d9d52d31a9a25468a1963cc4aed1ef3 Mon Sep 17 00:00:00 2001 From: Glavo Date: Sat, 11 Sep 2021 14:39:55 +0800 Subject: [PATCH] Use GitHub Action to check for missing translations (#1019) * Use GitHub Action to check for missing translations * fix: missing translations * fix: Traditional Chinese in I18N_zh_CN * fix: I18N_zh --- .github/workflows/check-translations.yml | 21 ++++++++++ .../resources/assets/lang/I18N.properties | 13 +++++++ .../resources/assets/lang/I18N_zh.properties | 39 ++++++++++++++++++- .../assets/lang/I18N_zh_CN.properties | 2 +- build.gradle | 33 ++++++++++++++++ 5 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/check-translations.yml diff --git a/.github/workflows/check-translations.yml b/.github/workflows/check-translations.yml new file mode 100644 index 000000000..39dee5d19 --- /dev/null +++ b/.github/workflows/check-translations.yml @@ -0,0 +1,21 @@ +name: Check Translations + +on: [push, pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Checkout submodules + run: git submodule update --init --recursive + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + distribution: 'zulu' + java-version: '11' + java-package: jdk+fx + - name: Check style test + run: ./gradlew checkTranslations diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index 6acb59e2d..da36053ad 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -29,6 +29,7 @@ about.legal=Legal Acknowledgement about.thanks_to=Thanks to about.thanks_to.bangbang93.statement=BMCLAPI about.thanks_to.contributors=All contributors who participated in this project via issues, pull requests, etc. +about.thanks_to.contributors.statement=Thanks to the open source community for supporting the Hello Minecraft! Launcher about.thanks_to.gamerteam.statement=Default background image about.thanks_to.mcbbs=MCBBS about.thanks_to.mcbbs.statement=Provide MCBBS download source @@ -121,6 +122,7 @@ button.refresh=Refresh button.remove=Remove button.remove.confirm=Are you sure you want to delete? You cannot roll back this operation! button.save=Save +button.save_as=Save As button.yes=Yes color.recent=Recommended @@ -237,6 +239,8 @@ curse.sort.total_downloads=Total Downloads download=Download download.code.404=File not found on the remote server: %s +download.curseforge.customization=Light and shadow, and game customization +download.existing=The file cannot be saved because it already exists. You can choose 'Save As' to save the file elsewhere. download.external_link=Open Download Site download.failed=Failed to download %1$s, response code: %2$d download.failed.empty=No candidates. Click here to return. @@ -293,6 +297,9 @@ folder.resourcepacks=Resource packs folder.saves=Saves folder.screenshots=Screenshots +game=Game +game.version=Game version + help=Help help.doc=Documentations help.detail=For manufacturers of datapacks, modpacks, etc. @@ -572,6 +579,9 @@ repositories.chooser.title=Do you want to download JavaFX? resourcepack=Resource Pack +search=Search +search.sort=Sort + selector.choose=Choose selector.choose_file=Select a file selector.custom=Custom @@ -588,12 +598,14 @@ settings.advanced.java_permanent_generation_space=PermGen Space/MB settings.advanced.java_permanent_generation_space.prompt=Metaspace on Java 8 and above, MB settings.advanced.jvm=Java Virtual Machine Settings settings.advanced.jvm_args=Java VM Arguments (overriding defaults) +settings.advanced.jvm_args.prompt=Fill in here to override the default settings settings.advanced.launcher_visibility.close=Close the launcher when the game launched. settings.advanced.launcher_visibility.hide=Hide the launcher when the game launched. settings.advanced.launcher_visibility.hide_and_reopen=Hide the launcher and re-open when game closes. settings.advanced.launcher_visibility.keep=Keep the launcher visible. settings.advanced.launcher_visible=Launcher Visibility settings.advanced.minecraft_arguments=Minecraft Arguments +settings.advanced.minecraft_arguments.prompt=Default settings.advanced.natives_directory=Local Library Path (LWJGL) settings.advanced.natives_directory.choose=Choose Local Library Path settings.advanced.natives_directory.default=Standerd (.minecraft/versions//natives/) @@ -634,6 +646,7 @@ settings.launcher=Settings settings.launcher.appearance=Appearance settings.launcher.common_path.tooltip=This app will cache all downloads here. settings.launcher.debug=Debug +settings.launcher.download=Download settings.launcher.download.threads=Threads settings.launcher.download.threads.auto=Auto Determined settings.launcher.download.threads.hint=Too large concurrency may cause system to freeze. Download speed may be affected by ICP and destination server. diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index d68c9d5a3..f34a9f681 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -17,11 +17,22 @@ # # Contributors: pan93412 +about=關於 about.copyright=著作權 about.copyright.statement=著作權所有 (c) 2021 huangyuhui。 about.author=作者 about.author.statement=huanghongxun (hmcl@huangyuhui.net) +about.legal=法律聲明 about.thanks_to=鳴謝 +about.thanks_to.bangbang93.statement=提供 BMCLAPI 下載源,請贊助支持 BMCLAPI! +about.thanks_to.contributors=所有通過 Issues、Pull Requests 等管道參與本項目的貢獻者 +about.thanks_to.contributors.statement=沒有開源社區的支持,Hello Minecraft! Launcher 無法走到今天 +about.thanks_to.gamerteam.statement=提供默認背景圖 +about.thanks_to.mcbbs=MCBBS 我的世界中文論壇 +about.thanks_to.mcbbs.statement=提供 MCBBS 下載源 +about.thanks_to.users=HMCL 用戶群成員 +about.thanks_to.users.statement=感謝用戶群成員贊助充電、積極催更、迴響問題、出謀劃策 +about.thanks_to.yushijinhun.statement=authlib-injector 相关支持 about.thanks_to.statement=bangbang93 (BMCLAPI, https://bmclapi2.bangbang93.com/)\ngamerteam (預設背景圖)\n所有透過 Issues、Pull Requests 等方式參與本項目的貢獻者 about.dependency=相依元件 # 由於篇幅限制,僅列出第一作者 @@ -114,6 +125,7 @@ button.refresh=重新整理 button.remove=刪除 button.remove.confirm=您確認要刪除嗎?該操作無法撤銷! button.save=儲存 +button.save_as=另存為 button.yes=是 color.recent=建議 @@ -230,12 +242,18 @@ curse.sort.total_downloads=下載量 download=下載 download.code.404=遠端伺服器沒有需要下載的檔案: %s +download.curseforge.customization=光影與遊戲定制 +download.existing=檔案已存在,無法保存。你可以選擇另存為將檔案保存至其他地方。 +download.external_link=打開下載網站 download.failed=下載失敗: %1$s,錯誤碼:%2$d download.failed.empty=沒有能安裝的版本,按一下此處返回。 download.failed.refresh=載入版本列表失敗,按一下此處重試。 download.provider.mcbbs=我的世界中文論壇 (MCBBS, https://www.mcbbs.net/) download.provider.bmclapi=BMCLAPI (bangbang93,https://bmclapi2.bangbang93.com/) download.provider.mojang=官方伺服器 (OptiFine 自動安裝的下載來源是 BMCLAPI) +download.provider.official=儘量使用官方源(最新,但可能加載慢) +download.provider.balanced=選擇加載速度快的下載源(平衡,但可能不是最新) +download.provider.mirror=儘量使用鏡像源(加載快,但可能不是最新) download.javafx=正在下載 JavaFX 運行時組件 extension.bat=Windows 指令碼 @@ -259,6 +277,7 @@ feedback.add.login=你需要先登錄/註冊 HMCL 回饋帳號並獲得回饋權 feedback.add.permission=你需要獲得回饋權限才能添加回饋。 feedback.author=發布者 feedback.content=正文 +feedback.failed=載入失敗 feedback.like=贊成 feedback.login=登錄 HMCL 帳號 feedback.response=回復 @@ -281,6 +300,9 @@ folder.resourcepacks=資源包資料夾 folder.saves=遊戲存檔資料夾 folder.screenshots=截圖資料夾 +game=遊戲 +game.version=遊戲版本 + help=說明 help.doc=Hello Minecraft! Launcher 說明文件 help.detail=可查閱資料包、整合包製作指南等內容。 @@ -303,7 +325,9 @@ install.failed.optifine_conflict=暫不支援 OptiFine 與 Forge 同時安裝在 install.failed.version_mismatch=該軟體需要的遊戲版本為 %s,但實際的遊戲版本為 %s。 install.installer.change_version=%s,該版本與當前遊戲不相容,您需要點擊此處更換版本或刪除 install.installer.choose=選擇 %s 版本 +install.installer.depend=需要先安裝 %s install.installer.fabric=Fabric +install.installer.fabric-api=Fabric API install.installer.forge=Forge install.installer.game=Minecraft install.installer.incompatible=與 %s 不相容 @@ -338,6 +362,7 @@ launch.advice.java8_51_1_13=低於 1.8.0_51 的 Java 版本可能會導致 Minec launch.advice.java9=低於 (包含) 1.13 的有安裝 Mod 的 Minecraft 版本不支援 Java 9 或更高版本,請使用 Java 8。 launch.advice.newer_java=偵測到您未使用 Java 8 及更新版本,Java 8 能使遊戲更順暢而且 Minecraft 1.12 及更新版本和很多 Mod 強制需要 Java 8 版本。 launch.advice.not_enough_space=您設定的記憶體大小過大,由於超過了系統記憶體大小 %dMB,所以可能影響遊戲體驗或無法啟動遊戲。是否繼續啟動? +launch.advice.require_newer_java_version=Minecraft %1$s 僅能運行在 Java %2$s 或更高版本上,是否下載? launch.advice.too_large_memory_for_32bit=您設定的記憶體大小過大,由於可能超過了 32 位元 Java 的記憶體分配限制,所以可能無法啟動遊戲,請將記憶體調至低於 1024MB 的值。是否繼續啟動? launch.failed=啟動失敗 launch.failed.cannot_create_jvm=偵測到無法建立 Java 虛擬機,可能是 Java 參數有問題。可以在設定中開啟無參數模式啟動。 @@ -398,6 +423,7 @@ modpack.choose.remote.detail=需要提供整合包的下載連結 modpack.choose.remote.tooltip=要下載的整合包的連結 modpack.desc=描述你要製作的整合包,比如整合包注意事項和更新記錄,支援 Markdown(圖片請上傳至網路)。 modpack.description=整合包描述 +modpack.download=下載整合包 modpack.enter_name=給遊戲取個你喜歡的名稱 modpack.export=匯出整合包 modpack.export.as=請選擇整合包類型。若你無法決定,請選擇 HMCL 類型。 @@ -422,6 +448,10 @@ modpack.invalid=無效的整合包升級檔案,可能是下載時出現問題 modpack.mismatched_type=整合包類型不符,目前遊戲是 %s 整合包,但是提供的整合包更新檔案是 %s 整合包。 modpack.name=整合包名稱 modpack.not_a_valid_name=整合包名稱無效 +modpack.origin=來源 +modpack.origin.url=官方網站 +modpack.origin.mcbbs=MCBBS +modpack.origin.mcbbs.prompt=貼子 id modpack.scan=解析整合包 modpack.task.install=匯入整合包 modpack.task.install.error=無法識別該整合包,目前僅支援匯入 Curse、MultiMC、HMCL 整合包。 @@ -433,6 +463,8 @@ modpack.type.curse.error=無法完成 Curse 整合包的下載,請多次重試 modpack.type.curse.not_found=部分必需檔案已經從網路中被刪除並且再也無法下載,請嘗試該整合包的最新版本或者安裝其他整合包。 modpack.type.hmcl=HMCL modpack.type.hmcl.export=可以被 Hello Minecraft! Launcher (HMCL) 匯入 +modpack.type.mcbbs=我的世界中文論壇整合包標準 +modpack.type.mcbbs.export=可以被 Hello Minecraft! Launcher (HMCL) 和 MultiMC 匯入 modpack.type.multimc=MultiMC modpack.type.multimc.export=可以被 Hello Minecraft! Launcher (HMCL) 和 MultiMC 匯入 modpack.type.server=伺服器自動更新整合包 @@ -448,6 +480,7 @@ modpack.wizard.step.2.title=選中你想加到整合包中的檔案或資料夾 modpack.wizard.step.3=整合包類型 modpack.wizard.step.3.title=選擇整合包匯出類型 modpack.wizard.step.initialization.exported_version=要匯出的遊戲版本 +modpack.wizard.step.initialization.force_update=強制陞級綜合包至最新版本(需要自建服務器) modpack.wizard.step.initialization.include_launcher=包含啟動器 modpack.wizard.step.initialization.save=選擇要匯出到的遊戲整合包位置 modpack.wizard.step.initialization.warning=在製作整合包前,請您確認您選擇的版本可以正常啟動,\n並保證您的 Minecraft 是正式版而非快照版,\n而且不應將不允許非官方途徑傳播的 Mod 模組、材質包等納入整合包。\n整合包會儲存您目前的下載來源設定 @@ -463,7 +496,9 @@ mods.disable=停用 mods.download=模組下載 mods.download.title=模組下載 - %1s mods.enable=啟用 -mods.mangage=模組管理 +mods.manage=模組管理 +mods.mcmod.page=MC 百科頁面 +mods.mcmod.search=MC 百科蒐索 mods.name=名稱 mods.not_modded=你需要先在自動安裝頁面安裝 Fabric、Forge 或 LiteLoader 才能進行模組管理。 mods.url=官方頁面 @@ -613,6 +648,7 @@ settings.game.working_directory.choose=選擇執行路徑 settings.icon=遊戲圖示 settings.launcher=啟動器設定 +settings.launcher.appearance=外觀 settings.launcher.common_path.tooltip=啟動器將所有遊戲資源及相依元件庫檔案放於此集中管理,如果遊戲資料夾內有現成的將不會使用公共庫檔案 settings.launcher.debug=除錯 settings.launcher.download=下載 @@ -635,6 +671,7 @@ settings.launcher.proxy.authentication=身份驗證 settings.launcher.proxy.disable=使用系統代理 settings.launcher.proxy.host=主機 settings.launcher.proxy.http=HTTP +settings.launcher.proxy.none=不使用代理 settings.launcher.proxy.password=密碼 settings.launcher.proxy.port=連線埠 settings.launcher.proxy.socks=Socks diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index 1a49c36c6..61c2d23cc 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -272,7 +272,7 @@ feedback.add.login=你需要先登录/注册 HMCL 反馈账号并获得反馈权 feedback.add.permission=你需要获得反馈权限才能添加反馈。 feedback.author=发布者 feedback.content=正文 -feedback.failed=載入失敗 +feedback.failed=加载失败 feedback.like=赞成 feedback.login=登录 HMCL 账号 feedback.response=回复 diff --git a/build.gradle b/build.gradle index d2221bed1..444942b18 100644 --- a/build.gradle +++ b/build.gradle @@ -122,4 +122,37 @@ task 'preTouchOpenJFXDependencies' { } } } +} + +task 'checkTranslations' { + group 'verification' + doLast { + var en = new Properties() + var zh = new Properties() + var zh_CN = new Properties() + + file("HMCL/src/main/resources/assets/lang/I18N.properties").withInputStream { en.load(it) } + file("HMCL/src/main/resources/assets/lang/I18N_zh.properties").withInputStream { zh.load(it) } + file("HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties").withInputStream { zh_CN.load(it) } + + boolean success = true + + zh_CN.forEach { k, v -> + if (!en.containsKey(k)) { + project.logger.log(LogLevel.WARN, "I18N.properties missing key '$k'") + success = false + } + } + + zh_CN.forEach { k, v -> + if (!zh.containsKey(k)) { + project.logger.log(LogLevel.WARN, "I18N_zh.properties missing key '$k'") + success = false + } + } + + if (!success) { + throw new GradleException("Part of the translation is missing") + } + } } \ No newline at end of file