吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 94|回复: 0
上一主题 下一主题
收起左侧

[原创汉化] Rally-Navigator-translate-CN拉力赛路书软件简体中文汉化包

[复制链接]
跳转到指定楼层
楼主
doudou0908 发表于 2026-6-16 12:58 回帖奖励
本帖最后由 doudou0908 于 2026-6-16 13:08 编辑

## Rally Navigator 路书制作软件汉化记录

>未经授权请勿转载。

### 前言

Rally Navigator 是一款专业的拉力赛路书制作软件,支持 Windows/macOS,广泛用于达喀尔拉力赛、FIA 越野赛等赛事的路线规划和路书制作。之前一直没能找到它的汉化版。
本文记录了完整的汉化过程,包括:
1.分析软件的国际化机制
2.提取并翻译 1404 条界面文本
3. 解决硬编码语言列表的问题
### 一、定位突破口
首先确认软件使用的技术栈。安装目录下能看到:

存在 locales/ 目录且有 translation.json,说明软件使用了 Vue + i18next 的国际化方案。每种语言一个文件夹,里面是一个 translation.json

这是 en/translation.json 的结构:

[
    { "id": "Add", "content": "Add" },
    { "id": "Save", "content": "Save" }
]

很标准的 i18n 格式。id 是代码中的 key,content 是显示文本。汉化的本质就是——翻译 content 字段。

二、编写翻译脚本

1404 条文本,不可能手动翻译。写了一个 Python 脚本,核心是一个翻译字典 trans_map

trans_map = {
    "Add": "添加",
    "Save": "保存",
    "CAP Average (Dakar)": "平均 CAP(达喀尔)",
    # ... 共 1418 条映射
}

翻译脚本逻辑非常简单:

for item in data:
    translated = trans_map.get(item["content"], item["content"])  # 找不到则保留原文
    output.append({"id": item["id"], "content": translated})

不过这里有一个坑——不认识的条目会保留英文。所以需要反复运行检查未翻译列表,逐步补全字典。

最终结果:1404 条中翻译了 1358 条(96.7%),保留原文 39 条(主要是品牌名 RallySafe、TerraPirata、文件格式 PDF/CSV/KML 等)。

三、部署汉化

将翻译文件放到 locales/zh-CN/ 下,启动软件。在 System and Menu Language 菜单中——没有中文选项

说明语言列表是硬编码的,不在 JSON 文件中。

四、修改 app.asar

解包 app.asar 查找语言列表。在 Webpack 打包后的 JS 中找到关键代码:

const M = ["en","fr","pt","ar","es","lt","de","el-GR","it","pl","ru","ja"]

果然没有中文。添加 "zh-Hans-CN",同时修复 Chromium locale 映射 "zh-Hans-CN":"zh-CN"

重新打包——又出问题了。一开始用 asarPy(pip 安装的 asar 库)打包,但打包格式和 Electron 官方 @electron/asar 不兼容,生成的 asar 文件损坏。改用官方工具:

npx @electron/asar pack app_temp app.asar

这次打包成功了,JS 补丁也正确应用。但启动软件——语言列表中依然没有中文

五、最终方案——替换立陶宛语

经过分析发现,语言列表不仅出现在一个地方,Webpack 打包时将模块 ID 9bbb 的语言列表也注入了 app.js 的多处位置。还有一个 loadPath: "locales/${lang}/translation.json" 的配置,只加载列表中已有的语言。

替换现有小众语言

立陶宛语(lt)正好是小众语言,把它替换成中文:

# 备份立陶宛语原文
Copy-Item "lt\translation.json" "lt\translation.json.lt.bak"

# 用中文覆盖
Copy-Item "zh-Hans-CN\translation.json" "lt\translation.json" -Force

启动软件 → 选择 Lietuviškai(立陶宛语) → 中文界面出来了

不需要修改 app.asar,不需要重新打包,零风险。

六、最终成果

汉化覆盖面:

类别 示例
菜单栏 文件、编辑、视图、帮助、窗口
拉力赛术语 CAP、航点、路书、行程表、控制点
地形与道路 沙丘、岩石、涉水、柏油路、碎石
对话框 警告、确认、错误消息、保存提示
PDF 导出 路书 PDF、行程表、安全计划
设置项 语言、主题、地图、GPS、键盘快捷键

统计:

  • 总条目:1404 条
  • 已翻译:1358 条(96.7%)
  • 保留原文:39 条(品牌名、格式名)
  • 翻译文件大小:109 KB

七、使用方法

直接下载汉化包

从附件下载 translation.json,放到软件目录 resources/locales/lt/ 覆盖原文件。然后启动软件,在 System and Menu Language 中选择 Lietuviškai

还原方法:

删除 lt/translation.json,将同目录下的 .bak 文件重命名回去。

八、注意事项

  1. 软件更新会覆盖 resources/ 目录,更新后重新部署即可
  2. 选择 Lietuviškai 后界面变中文,但菜单名不会变(这是 Electron 应用内建的硬编码)
  3. 如果有少量术语翻译不准确,可以自行编辑 trans_map.py 后重新生成

如果觉得有用,免费的评分支持一下,谢谢!🙏

Snipaste_2026-06-16_12-54-51.jpg (402.97 KB, 下载次数: 0)

Snipaste_2026-06-16_12-54-51.jpg

Snipaste_2026-06-16_12-54-36.jpg (259.2 KB, 下载次数: 0)

Snipaste_2026-06-16_12-54-36.jpg

translation.rar

19.98 KB, 下载次数: 1, 下载积分: 吾爱币 -2 CB

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-6-19 07:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表