Zh/Howto:Translate FlightGear
Jump to navigation
Jump to search
FlightGear 支持本地化,即用户界面可以显示为用户母语而非英语。
本页面将帮助您将 FlightGear 翻译为新语言或改进现有翻译。
可翻译内容
模拟器的以下部分可进行翻译:
- 菜单、启动画面、初始提示和使用
--help
命令行选项时显示的文本(FlightGear 2.7.0 及更高版本) - Linux 系统的快捷方式文件(FlightGear 2017.1 及更高版本)
- 手册页(FlightGear 2017.3 及更高版本)
- 内置启动器(FlightGear 2018.3 及更高版本)
翻译流程
- 确定目标语言的 ISO 639-1 双字母代码,可在美国国会图书馆查询。
- 检查翻译目录下是否已存在对应语言的子目录。若不存在,需在开发邮件列表申请创建空翻译文件(建议直接申请而非复制现有翻译,避免残留数据)。
- 使用文本编辑器(如 Notepad++ 或 GEdit)或专用工具(如 Qt Linguist)打开语言子目录中的 .XLF 文件进行翻译。推荐使用结构化工具,可跟踪翻译状态并部分自动化流程。
- 启动 FlightGear 测试翻译效果。默认使用系统区域语言,可通过
--language=语言代码
命令行选项显式指定。 - 通过开发邮件列表或 SourceForge 合并请求提交更新后的 .XLF 文件。
每个语言子目录包含两个 XLF 文件:核心模拟器字符串(启动消息/命令行帮助/提示)和启动器专用。
注意:用户界面可能不完全支持 Unicode(部分特殊/带重音字符可能无法显示)。若发现此类问题,请发送邮件至 flightgear-devel@lists.sourceforge.net。
快捷方式文件翻译
编辑FlightGear的.desktop
文件,翻译 GenericName、Comment 和 Keywords 键值(需添加 GenericName[xx]、Comment[xx] 和 Keywords[xx],其中 xx 为语言代码)。
手册页翻译
- 确定目标语言的 ISO 639-1 双字母代码。
- 检查the man pages directory下是否存在对应语言子目录。若不存在,创建以语言代码命名的目录,并将
man1
和man5
子目录复制至此。 - 编辑 [man/CMakeLists.txt](https://gitlab.com/flightgear/flightgear/blob/master/man/CMakeLists.txt),在
if(NOT WIN32)
代码块中添加add_subdirectory(xx)
(xx 为语言代码)。 - 分别修改
man/xx/man1/CMakeLists.txt
和man/xx/man5/CMakeLists.txt
的最后一行,将安装目录(DESTINATION
)设置为${CMAKE_INSTALL_MANDIR}/xx/man1
和${CMAKE_INSTALL_MANDIR}/xx/man5
。 - 翻译对应语言子目录下的手册页。
使用 Qt Linguist 翻译 XLF 文件
可通过 QT 套件中的 Qt Linguist 翻译 XLIFF 文件。安装 QT 后打开软件,载入 XLF 文件即可开始翻译。界面分为四个主要区域:
- **上下文** - 字符串的分组(由开发者定义),图标显示翻译状态,最终应全部显示绿色对勾
- **字符串列表** - 所选分组的待译字符串
- **源码与表单** - 显示字符串在源代码中的位置信息(可能不完整)
- **源文本区** - 主翻译区域
翻译状态通过图标表示:绿色对勾(完成验证)、黄色问号(已翻译未验证)、灰色问号(未翻译)。若出现感叹号,表示译文与原文格式不符(如标点缺失)。使用工具栏按钮可标记验证状态,最终所有条目应标记为绿色对勾。
参考文档:
- [Qt Linguist 手册](https://doc.qt.io/qt-5/qtlinguist-index.html)
- [译者指南](https://doc.qt.io/qt-5/linguist-translators.html)