TShock 本地化(i18n)系统
TShock 支持使用 GetText.NET 实现多语言功能,通过基于 TShock 使用情况的 CI 自动构建和推送更新的 .po 文件(lang 文件的源文件)。
要使用本地化字符串而不是标准字符串,请使用 GetString()
。例如,使用 GetString("Invalid command!")
而不是 "Invalid command!"
。
已添加了一个测试语言文件,将有限数量的短语转换为 Toki Pona(一种名为“好”的语言)。要使用此功能,您可以设置一个名为 TSHOCK_LANGUAGE
的环境变量,将其设置为 tok
。例如,TSHOCK_LANGUAGE=tok dotnet run --project TShockLauncher
。然后,运行 die
命令。
自动的 .po 到 .mo 编译仅在您安装了 msgfmt(Git Bash 的一部分,或 Gettext 本身的一部分)时才会生效。如果没有安装此工具,在调试模式下运行时将无法编译 i18n 文件夹中的 .mo 文件。如果出现此问题,您可以从 GitHub 下载最新的构建产物,提取选择的 .mo 文件,并将其放入 i18n 文件夹中。
i18n 系统的基础是由 Janet Blackquill(@pontaoski)创建的。为了感谢她的工作,已向 KDE 项目捐赠了一小笔款项。
要帮助本地化/国际化 TShock,您可以通过 Crowdin 贡献更改。Crowdin 的更改会通过 GitHub 上的 @cardinal-system 自动合并,通过拉取请求自动合并。当前活动的语言项目包括:中文(简体)、俄语、俄语(乌克兰)、西班牙语、日语、土耳其语、德语、法语、法语(魁北克)和 Toki Pona。如果您想要添加语言项目,请在 TShock Discord 服务器中通知相关人员。