RetroArch 本地化实操:41 种语言把界面变成母语
RetroArch 本地化实操41 种语言把界面变成母语【免费下载链接】RetroArchCross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.项目地址: https://gitcode.com/GitHub_Trending/re/RetroArchRetroArch 内置 51 个静态语言包支持在菜单里一键切换界面语言。读完本文你能掌握菜单配置与 retroarch.cfg 两种改法并理解 msg_hash 翻译表背后的加载机制。 它是怎么跑起来的RetroArch 的本地化走的是「编译期打包 运行期选择」的路线。所有语言的文本在 intl/ 目录下以msg_hash_语言代码.h的形式存在例如简体中文对应 intl/msg_hash_chs.h。文件头注释写明这些文件由 intl/json2h.py 从 Crowdin 翻译工程生成——翻译者改的是 JSON脚本把它压成一张「消息哈希 → 字符串」的查找表随二进制一起编译进程序。运行时的分工是这样的retroarch.cfg (language chs) │ ▼ 配置加载 ──► msg_hash 语言索引RETRO_LANGUAGE_CHINESE_SIMPLIFIED 12 │ ▼ 菜单/日志/对话框 ──按 hash 查表──► intl/msg_hash_chs.h 中的字符串打个比方这就像一本多语种的酒店房卡说明手册。手册翻译表在印刷时就已经全部印好前台RetroArch只需要根据你登记的语言language 配置翻到对应那一页而不会现场翻译。所以切换语言是即时生效的也意味着新文本必须先经过编译才能进手册。 动手前先看清你手里有什么语言代码表intl/目录实际包含 51 个语言文件摘取常用项语言代码文件简体中文chsintl/msg_hash_chs.h繁体中文chtintl/msg_hash_cht.h英文美国usintl/msg_hash_us.h英文enintl/msg_hash_en.h日文jaintl/msg_hash_ja.h法文frintl/msg_hash_fr.h德文deintl/msg_hash_de.h西班牙文esintl/msg_hash_es.h俄文ruintl/msg_hash_ru.h韩文kointl/msg_hash_ko.h配置文件路径平台retroarch.cfg 位置Windows%APPDATA%\RetroArch\retroarch.cfgLinux~/.config/retroarch/retroarch.cfgmacOS~/Library/Application Support/RetroArch/retroarch.cfg关键配置项配置项作用language界面语言代码如language chs菜单入口Settings设置→ User Interface用户界面→ Language语言另外一提首次启动时 RetroArch 会尝试读取系统区域设置如 Windows 的 LCID 映射表见 frontend/drivers/platform_win32.c自动推断语言所以很多用户开机就是中文不需要手动设置。✍️ 动手改新手场景用菜单切换目标不改任何文件把界面切成简体中文。操作启动 RetroArch进入主菜单选中Settings进入后找到User Interface→Language在列表中选择Chinese (Simplified)回车确认。RGUI 主题的主菜单Settings 入口清晰可见验证选择后菜单文字立即刷新为中文无需重启。打开%APPDATA%\RetroArch\retroarch.cfgLinux 为~/.config/retroarch/retroarch.cfg能看到language chs已被写入——菜单操作最终落地的就是这个配置项。进阶场景直接改配置文件目标在无图形界面的环境SSH、无头设备下预先指定语言。操作用文本编辑器打开retroarch.cfg新增或修改一行language chs验证启动 RetroArch主菜单即为中文用grep ^language确认文件中只存在一条language配置。如果之前设过别的语言旧值会被新值覆盖以最后一次写入为准。️ 不同主题下的呈现语言设置对全部菜单主题全局生效同一份翻译表驱动不同渲染器。四个主题的实机效果对比主题特点中文显示要点RGUI轻量复古风字体缩放后仍清晰适合低性能设备XMB类 PlayStation 3 横排列表长中文标签可横向滚动Ozone现代双栏布局侧栏与内容区均跟随语言GLUI网格卡片式卡片标题随语言换行Ozone 主题主菜单侧栏与卡片均按所选语言渲染XMB 主题的横向列表布局GLUI 主题网格卡片布局⚠️ 踩过的坑现象原因解法切换后部分文本仍是英文该语言翻译表未覆盖这条消息到 Crowdin 的 RetroArch 项目补译或用 Online Updater 更新到含新翻译的版本中文显示为方块或乱码当前字体不含 CJK 字形在设置中更换支持中文的字体文件RetroArch 的字体驱动gfx/font_driver.c对RETRO_LANGUAGE_CHINESE_SIMPLIFIED有专门处理改了 cfg 却不生效菜单退出时又把内存中的旧语言写回文件先退出程序再改文件或改完后不要再用菜单覆盖同一项找不到某语言选项该语言文件未随当前发行版编译确认二进制版本较新intl/ 目录是 51 个语言表的来源 想走得更远贡献翻译intl/README.md 描述了完整工作流——在 Crowdin 平台认领语言、翻译msg_hash_us.json中的红色条目维护者通过crowdin_sync.py拉回 JSON再经 intl/json2h.py 生成新的msg_hash_code.h。翻译文件有硬性规范不能含#else、不能用多行字符串拼接、键名不能带小写字母。新增语言流程是 Crowdin 添加语言 → 同步翻译 → 在菜单语言列表中注册新条目具体步骤见 README 的Add New Languages一节。理解打包格式msg_hash_chs.h里的字符串以八进制转义存成纯 ASCII 数组就是为了保证在任何编译器代码页下 UTF-8 字节都不失真——读一遍文件头注释就能明白。语言不是附加功能而是 RetroArch 触达全球玩家的入口。当菜单说你的母语时配置、排错、给主机刷固件这些进阶操作才真正开始变得顺手。【免费下载链接】RetroArchCross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.项目地址: https://gitcode.com/GitHub_Trending/re/RetroArch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考