首先迁移可被全局复用的文本和主框架文本,减少后续 PR 中重复定义 key 的情况。同时迁移用户可见的通用日期、时间、数字格式,确保展示层能按照当前语言/地区格式显示。
规划完成时须实现中英文双语本地化:zh-CN 须完全可用,en-US 须支持主流程。核心界面、常见错误提示以及用户可见的日期数字格式须完成适配,两端 Key 须完全一致并消除中文硬编码。同时,日志、调试信息、底层配置及路径等稳定数据保持不翻译且不受影响。后续新增文本须同步添加双语资源。
English version
The project currently has the basic capabilities required for localization, and we will begin migrating the existing user interface and user-visible text to support i18n in batches.
This phase will ensure that zh-CN and en-US are usable. Support for other languages will be handled through a translation platform later and is not required by this plan.
Everyone is welcome to participate in the i18n migration work.
Checklist
- PR 1: Migrate common text, the main framework, and date/number formats
- PR 2: Migrate the settings pages
- PR 3: Migrate the launch page, accounts, and instance selection
- PR 4: Migrate the download and installation flow
- PR 5: Migrate instance management
- PR 6: Migrate tools, multiplayer/linking, and auxiliary pages
- PR 7: Migrate crashes, errors, and global user-facing prompts
Goals
- Gradually migrate user-visible hardcoded Chinese text in the project to language resource files.
- Ensure that
en-US and zh-CN are usable, with zh-CN serving as the fallback language.
- Avoid affecting core logic during the migration. Logs are not included in any i18n migration plan.
Principles
-
Only translate user-visible UI and prompts, such as button text, tooltips, hints, user-visible prompts, and time/date/number formats. Log content, debug information, internal exception information, protocol fields, keys, paths, Minecraft version numbers, Loader names, raw content returned by third-party platforms, resource content, and similar content should not be migrated.
The UI of the log page can be translated, such as buttons like “Copy Log”, “Open Folder”, and “Clear”; however, log bodies, program output, game output, and exception stack traces should not be translated.
-
zh-CN and en-US must stay in sync. Every new key must be added to the corresponding language files at the same time. Adding only Chinese or only English is not allowed.
-
Static text in XAML should preferably use DynamicResource. Properties suitable for migration include Text, Content, Title, ToolTip, HintText, and Header.
Text="{DynamicResource Setup.UI.Title}"
-
User-visible text in C# should use Lang.Text. Do not directly concatenate hardcoded Chinese text.
ModMain.Hint(Lang.Text("Setup.Language.Changed"), ModMain.HintType.Finish, false);
-
Date and number formats should only be localized at the presentation layer. User-visible displays may use the current language/region format, but business scenarios must continue to use stable formats and should not be affected by the language.
PR Breakdown Plan
PR 1: Migrate common text, the main framework, and date/number formats
First, migrate globally reusable text and main framework text to reduce duplicate key definitions in later PRs. At the same time, migrate common user-visible date, time, and number formats to ensure that presentation-layer content is displayed according to the current language/region format.
Scope: main window titles, main navigation, common buttons, common status text, common dialog buttons, search boxes, common prompt controls, user-visible text in the main framework, user-visible common date formats, time formats, and number formats
Common.Action.*
Common.State.*
Common.Unit.*
Common.Error.*
Common.Dialog.*
Common.Format.*
Main.Title.*
Main.Navigation.*
Main.Search.*
Note: Date, time, and number formats should only be migrated for user-visible presentation-layer content. Scenarios that require stable formats, such as logs, configuration, cache, protocol fields, file names, paths, sorting keys, and data storage, should not be affected by the language.
PR 2: Migrate the settings pages
Migrate the settings pages, which contain the most static UI text and are the most suitable area to handle first.
Scope: launcher settings, launch settings, game settings, multiplayer/linking settings, update settings, miscellaneous settings, about page, feedback page, and user-visible prompts in settings-page-related .xaml.cs files
Setup.Left.*
Setup.UI.*
Setup.Launch.*
Setup.GameManage.*
Setup.GameLink.*
Setup.Update.*
Setup.Misc.*
Setup.About.*
Setup.Feedback.*
PR 3: Migrate the launch page, accounts, and instance selection
Migrate the main workflow screens that users interact with most often before launching the game.
Scope: launch page, account-related screens, skin-related screens, instance selection screen, launch button and launch status, user-visible prompts in the launch flow, and the main error information shown to users when launch fails
Launch.*
Launch.Account.*
Launch.Skin.*
Launch.Instance.*
Launch.Error.*
Select.*
Minecraft.Launch.*
PR 4: Migrate the download and installation flow
Migrate the download pages and installation flow to ensure that en-US users can complete version downloads and component installation.
Scope: version download page, component download page, component detail page, search, filtering, sorting, favorites-related UI, installation flow, and user-visible prompts such as download failures and installation failures
Download.*
Download.Version.*
Download.Install.*
Download.Comp.*
Download.Comp.Detail.*
Download.Comp.Favorites.*
Minecraft.Download.*
PR 5: Migrate instance management
Migrate pages related to local instance management, covering common features such as instance settings, resource management, import, and export.
Scope: instance overview, instance settings, instance installation, instance import, instance export, resource management, Mod management, save management, screenshots, resource packs, shader packs, other instance-related pages, and instance-related user-visible prompts
Instance.*
Instance.Setup.*
Instance.Overall.*
Instance.Export.*
Instance.Install.*
Instance.Resource.*
Instance.Mod.*
Instance.Saves.*
Minecraft.Instance.*
Minecraft.Mod.*
Minecraft.Modpack.*
PR 6: Migrate tools, multiplayer/linking, and auxiliary pages
Migrate user-visible UI in tool pages and auxiliary pages.
Scope: tools page, multiplayer/linking page, test page, speed test page, server query page, log page UI, update prompt UI, and auxiliary feature pages
Tools.*
Tools.GameLink.*
Tools.Test.*
Speed.*
ServerQuery.*
Update.*
LogPage.*
PR 7: Migrate crashes, errors, and global user-facing prompts
Migrate high-impact error prompts and crash analysis displays so that en-US users can understand the main issues and suggested solutions.
Scope: crash analysis screen, launch failure prompts, configuration corruption prompts, file operation failure prompts, network error prompts, global confirmation dialogs, global warning dialogs, and user-visible error descriptions and suggested solutions
Crash.*
Crash.Reason.*
Crash.Suggestion.*
Error.*
Warning.*
Dialog.*
Config.Error.*
SystemDialog.*
When this plan is complete, bilingual localization for Chinese and English must be implemented: zh-CN must be fully usable, and en-US must support the main workflows. Core interfaces, common error prompts, and user-visible date/number formats must be adapted, keys on both sides must be fully consistent, and hardcoded Chinese text must be removed. At the same time, logs, debug information, low-level configuration, paths, and other stable data must remain untranslated and unaffected. Any newly added text must synchronously add bilingual resources.
目前项目已具备本地化的基础能力,将开始分批次地将现有用户界面和用户可见文本支持 i18n。
这个阶段将确保
zh-CN与en-US可用,对于其他语言的支持将交给后续翻译平台,不作为此规划的要求。在此欢迎任何人参与对 i18n 的迁移工作。
Checklist
目标
en-US和zh-CN可用,zh-CN作为兜底语言。原则
只翻译用户可见 UI 与提示。如按钮文本、Tooltip、Hint、用户可见提示、时间日期数字格式等。日志内容、调试信息、内部异常信息、协议字段、key、路径、Minecraft
版本号、Loader 名称、第三方平台返回的原始内容、资源内容等不应该被迁移。
日志页面的 UI 可以翻译,例如“复制日志”“打开文件夹”“清空”等按钮;但日志正文、程序输出、游戏输出、异常堆栈不翻译。
zh-CN 与 en-US 必须同步。每个新增 key 都必须同时添加到对应语言文件,不允许只添加中文或只添加英文。
XAML 静态文本优先使用 DynamicResource。适合迁移的属性包括:
Text、Content、Title、ToolTip、HintText和Header。Text="{DynamicResource Setup.UI.Title}"C# 中用户可见文本使用 Lang.Text,不要直接拼接硬编码中文。
日期、数字格式只在展示层本地化。用户可见展示可以使用当前语言/地区格式,但业务场景必须继续使用稳定格式,不应受语言影响。
PR 拆分规划
PR 1:通用文本、主框架与日期数字格式迁移
首先迁移可被全局复用的文本和主框架文本,减少后续 PR 中重复定义 key 的情况。同时迁移用户可见的通用日期、时间、数字格式,确保展示层能按照当前语言/地区格式显示。
范围:主窗口标题、主导航、通用按钮、通用状态文本、通用弹窗按钮、搜索框、通用提示控件、主框架中的用户可见文本、用户可见的通用日期格式、时间格式、数字格式
注意:日期、时间、数字格式仅迁移用户可见的展示层内容。日志、配置、缓存、协议字段、文件名、路径、排序 key、数据存储等需要稳定格式的场景不应受语言影响。
PR 2:设置页迁移
迁移设置页,这是静态 UI 文本最多、最适合优先处理的区域。
范围:启动器设置、启动设置、游戏设置、联机设置、更新设置、杂项设置、关于页面、反馈页面、设置页相关
.xaml.cs中的用户可见提示PR 3:启动页、账号与实例选择迁移
迁移用户启动游戏前最常接触的主流程界面。
范围:启动页、账号相关界面、皮肤相关界面、实例选择界面、启动按钮与启动状态、启动流程中的用户可见提示、启动失败时展示给用户的主要错误信息
PR 4:下载与安装流程迁移
迁移下载页和安装流程,保证
en-US用户可以完成版本下载和组件安装。范围:版本下载页面、组件下载页面、组件详情页面、搜索、筛选、排序、收藏相关 UI、安装流程、下载失败、安装失败等用户可见提示
PR 5:实例管理迁移
迁移本地实例管理相关页面,覆盖实例设置、资源管理、导入导出等常用功能。
范围:实例概览、实例设置、实例安装、实例导入、实例导出、资源管理、Mod 管理、存档管理、截图、资源包、光影包等实例相关页面、实例相关用户可见提示
PR 6:工具、联机与辅助页面迁移
迁移工具类页面和辅助页面中的用户可见 UI。
范围:工具页、联机页面、测试页面、速度测试页面、服务器查询页面、日志页面 UI、更新提示 UI、辅助功能页面
PR 7:崩溃、错误与全局用户提示迁移
迁移高影响的错误提示和崩溃分析展示,让
en-US用户能理解主要问题和处理建议。范围:崩溃分析界面、启动失败提示、配置损坏提示、文件操作失败提示、网络错误提示、全局确认弹窗、全局警告弹窗、用户可见的错误说明和处理建议
规划完成时须实现中英文双语本地化:zh-CN 须完全可用,en-US 须支持主流程。核心界面、常见错误提示以及用户可见的日期数字格式须完成适配,两端 Key 须完全一致并消除中文硬编码。同时,日志、调试信息、底层配置及路径等稳定数据保持不翻译且不受影响。后续新增文本须同步添加双语资源。
English version
The project currently has the basic capabilities required for localization, and we will begin migrating the existing user interface and user-visible text to support i18n in batches.
This phase will ensure that
zh-CNanden-USare usable. Support for other languages will be handled through a translation platform later and is not required by this plan.Everyone is welcome to participate in the i18n migration work.
Checklist
Goals
en-USandzh-CNare usable, withzh-CNserving as the fallback language.Principles
Only translate user-visible UI and prompts, such as button text, tooltips, hints, user-visible prompts, and time/date/number formats. Log content, debug information, internal exception information, protocol fields, keys, paths, Minecraft version numbers, Loader names, raw content returned by third-party platforms, resource content, and similar content should not be migrated.
The UI of the log page can be translated, such as buttons like “Copy Log”, “Open Folder”, and “Clear”; however, log bodies, program output, game output, and exception stack traces should not be translated.
zh-CNanden-USmust stay in sync. Every new key must be added to the corresponding language files at the same time. Adding only Chinese or only English is not allowed.Static text in XAML should preferably use
DynamicResource. Properties suitable for migration includeText,Content,Title,ToolTip,HintText, andHeader.Text="{DynamicResource Setup.UI.Title}"User-visible text in C# should use
Lang.Text. Do not directly concatenate hardcoded Chinese text.Date and number formats should only be localized at the presentation layer. User-visible displays may use the current language/region format, but business scenarios must continue to use stable formats and should not be affected by the language.
PR Breakdown Plan
PR 1: Migrate common text, the main framework, and date/number formats
First, migrate globally reusable text and main framework text to reduce duplicate key definitions in later PRs. At the same time, migrate common user-visible date, time, and number formats to ensure that presentation-layer content is displayed according to the current language/region format.
Scope: main window titles, main navigation, common buttons, common status text, common dialog buttons, search boxes, common prompt controls, user-visible text in the main framework, user-visible common date formats, time formats, and number formats
Note: Date, time, and number formats should only be migrated for user-visible presentation-layer content. Scenarios that require stable formats, such as logs, configuration, cache, protocol fields, file names, paths, sorting keys, and data storage, should not be affected by the language.
PR 2: Migrate the settings pages
Migrate the settings pages, which contain the most static UI text and are the most suitable area to handle first.
Scope: launcher settings, launch settings, game settings, multiplayer/linking settings, update settings, miscellaneous settings, about page, feedback page, and user-visible prompts in settings-page-related
.xaml.csfilesPR 3: Migrate the launch page, accounts, and instance selection
Migrate the main workflow screens that users interact with most often before launching the game.
Scope: launch page, account-related screens, skin-related screens, instance selection screen, launch button and launch status, user-visible prompts in the launch flow, and the main error information shown to users when launch fails
PR 4: Migrate the download and installation flow
Migrate the download pages and installation flow to ensure that
en-USusers can complete version downloads and component installation.Scope: version download page, component download page, component detail page, search, filtering, sorting, favorites-related UI, installation flow, and user-visible prompts such as download failures and installation failures
PR 5: Migrate instance management
Migrate pages related to local instance management, covering common features such as instance settings, resource management, import, and export.
Scope: instance overview, instance settings, instance installation, instance import, instance export, resource management, Mod management, save management, screenshots, resource packs, shader packs, other instance-related pages, and instance-related user-visible prompts
PR 6: Migrate tools, multiplayer/linking, and auxiliary pages
Migrate user-visible UI in tool pages and auxiliary pages.
Scope: tools page, multiplayer/linking page, test page, speed test page, server query page, log page UI, update prompt UI, and auxiliary feature pages
PR 7: Migrate crashes, errors, and global user-facing prompts
Migrate high-impact error prompts and crash analysis displays so that
en-USusers can understand the main issues and suggested solutions.Scope: crash analysis screen, launch failure prompts, configuration corruption prompts, file operation failure prompts, network error prompts, global confirmation dialogs, global warning dialogs, and user-visible error descriptions and suggested solutions
When this plan is complete, bilingual localization for Chinese and English must be implemented:
zh-CNmust be fully usable, anden-USmust support the main workflows. Core interfaces, common error prompts, and user-visible date/number formats must be adapted, keys on both sides must be fully consistent, and hardcoded Chinese text must be removed. At the same time, logs, debug information, low-level configuration, paths, and other stable data must remain untranslated and unaffected. Any newly added text must synchronously add bilingual resources.本地化指南可以参考 PCEP-1(#1690)。