Skip to content

[i18n] 国际化与本地化迁移工作规划 #2833

@Chiloven945

Description

@Chiloven945

Scroll down for an English version

目前项目已具备本地化的基础能力,将开始分批次地将现有用户界面和用户可见文本支持 i18n。

这个阶段将确保 zh-CNen-US 可用,对于其他语言的支持将交给后续翻译平台,不作为此规划的要求。

在此欢迎任何人参与对 i18n 的迁移工作。

Checklist

  • PR 1:通用文本、主框架与日期数字格式迁移
  • PR 2:设置页迁移
  • PR 3:启动页、账号与实例选择迁移
  • PR 4:下载与安装流程迁移
  • PR 5:实例管理迁移
  • PR 6:工具、联机与辅助页面迁移
  • PR 7:崩溃、错误与全局用户提示迁移

目标

  • 将项目中用户可见的中文硬编码文本逐步迁移到语言资源文件。
  • 确保 en-USzh-CN 可用,zh-CN 作为兜底语言。
  • 避免迁移影响核心逻辑,日志不在任何 i18n 的迁移计划之内

原则

  1. 只翻译用户可见 UI 与提示。如按钮文本、Tooltip、Hint、用户可见提示、时间日期数字格式等。日志内容、调试信息、内部异常信息、协议字段、key、路径、Minecraft
    版本号、Loader 名称、第三方平台返回的原始内容、资源内容等不应该被迁移。
    日志页面的 UI 可以翻译,例如“复制日志”“打开文件夹”“清空”等按钮;但日志正文、程序输出、游戏输出、异常堆栈不翻译。

  2. zh-CN 与 en-US 必须同步。每个新增 key 都必须同时添加到对应语言文件,不允许只添加中文或只添加英文。

  3. XAML 静态文本优先使用 DynamicResource。适合迁移的属性包括:TextContentTitleToolTipHintTextHeader

    Text="{DynamicResource Setup.UI.Title}"
  4. C# 中用户可见文本使用 Lang.Text,不要直接拼接硬编码中文。

    ModMain.Hint(Lang.Text("Setup.Language.Changed"), ModMain.HintType.Finish, false);
  5. 日期、数字格式只在展示层本地化。用户可见展示可以使用当前语言/地区格式,但业务场景必须继续使用稳定格式,不应受语言影响。

PR 拆分规划

PR 1:通用文本、主框架与日期数字格式迁移

首先迁移可被全局复用的文本和主框架文本,减少后续 PR 中重复定义 key 的情况。同时迁移用户可见的通用日期、时间、数字格式,确保展示层能按照当前语言/地区格式显示。

范围:主窗口标题、主导航、通用按钮、通用状态文本、通用弹窗按钮、搜索框、通用提示控件、主框架中的用户可见文本、用户可见的通用日期格式、时间格式、数字格式

Common.Action.*
Common.State.*
Common.Unit.*
Common.Error.*
Common.Dialog.*
Common.Format.*
Main.Title.*
Main.Navigation.*
Main.Search.*

注意:日期、时间、数字格式仅迁移用户可见的展示层内容。日志、配置、缓存、协议字段、文件名、路径、排序 key、数据存储等需要稳定格式的场景不应受语言影响。


PR 2:设置页迁移

迁移设置页,这是静态 UI 文本最多、最适合优先处理的区域。

范围:启动器设置、启动设置、游戏设置、联机设置、更新设置、杂项设置、关于页面、反馈页面、设置页相关 .xaml.cs 中的用户可见提示

Setup.Left.*
Setup.UI.*
Setup.Launch.*
Setup.GameManage.*
Setup.GameLink.*
Setup.Update.*
Setup.Misc.*
Setup.About.*
Setup.Feedback.*

PR 3:启动页、账号与实例选择迁移

迁移用户启动游戏前最常接触的主流程界面。

范围:启动页、账号相关界面、皮肤相关界面、实例选择界面、启动按钮与启动状态、启动流程中的用户可见提示、启动失败时展示给用户的主要错误信息

Launch.*
Launch.Account.*
Launch.Skin.*
Launch.Instance.*
Launch.Error.*
Select.*
Minecraft.Launch.*

PR 4:下载与安装流程迁移

迁移下载页和安装流程,保证 en-US 用户可以完成版本下载和组件安装。

范围:版本下载页面、组件下载页面、组件详情页面、搜索、筛选、排序、收藏相关 UI、安装流程、下载失败、安装失败等用户可见提示

Download.*
Download.Version.*
Download.Install.*
Download.Comp.*
Download.Comp.Detail.*
Download.Comp.Favorites.*
Minecraft.Download.*

PR 5:实例管理迁移

迁移本地实例管理相关页面,覆盖实例设置、资源管理、导入导出等常用功能。

范围:实例概览、实例设置、实例安装、实例导入、实例导出、资源管理、Mod 管理、存档管理、截图、资源包、光影包等实例相关页面、实例相关用户可见提示

Instance.*
Instance.Setup.*
Instance.Overall.*
Instance.Export.*
Instance.Install.*
Instance.Resource.*
Instance.Mod.*
Instance.Saves.*
Minecraft.Instance.*
Minecraft.Mod.*
Minecraft.Modpack.*

PR 6:工具、联机与辅助页面迁移

迁移工具类页面和辅助页面中的用户可见 UI。

范围:工具页、联机页面、测试页面、速度测试页面、服务器查询页面、日志页面 UI、更新提示 UI、辅助功能页面

Tools.*
Tools.GameLink.*
Tools.Test.*
Speed.*
ServerQuery.*
Update.*
LogPage.*

PR 7:崩溃、错误与全局用户提示迁移

迁移高影响的错误提示和崩溃分析展示,让 en-US 用户能理解主要问题和处理建议。

范围:崩溃分析界面、启动失败提示、配置损坏提示、文件操作失败提示、网络错误提示、全局确认弹窗、全局警告弹窗、用户可见的错误说明和处理建议

Crash.*
Crash.Reason.*
Crash.Suggestion.*
Error.*
Warning.*
Dialog.*
Config.Error.*
SystemDialog.*

规划完成时须实现中英文双语本地化: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

  1. 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.

  2. 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.

  3. 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}"
  4. 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);
  5. 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.

Pinned by LinQingYuu

Metadata

Metadata

Assignees

Labels

🚧 正在处理开发人员正在对该内容进行开发、测试或修复,进展中

Type

No fields configured for 任务.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions