Ubuntu Strings本身并非专门的国际化工具,但Ubuntu系统借助gettext库等实现多语言支持,其工作方式如下:
- 标记字符串:在源代码中使用gettext函数(如
_("Hello, world!"))标记需翻译的字符串。
- 提取字符串:用xgettext工具从源代码中提取标记的字符串,生成.pot模板文件。
- 创建翻译文件:将.pot文件复制到特定目录,为每种语言创建.po文件,在其中添加对应语言的翻译。
- 编译翻译文件:使用msgfmt工具将.po文件编译成二进制的.mo文件,供程序运行时加载。
- 加载翻译:程序加载相应的.mo文件,根据用户的语言环境显示翻译后的字符串。
此外,Ubuntu还提供l10n - messages等工具提取合并翻译文件,debconf - l10n软件包含应用程序的翻译文件,帮助实现多语言支持。