当前位置: 技术问答>linux和unix
程序的多国语言问题
来源: 互联网 发布时间:2016-06-07
本文导语: 程序由1个GLADE文件和多个代码文件组成,需要支持多国语言,现在可以很好的实现多国语言, 但是有个问题就是,在这些需要翻译的字符串,必须是唯一的,但是程序比较大,有些相同的英文字符,翻译后是不一样...
程序由1个GLADE文件和多个代码文件组成,需要支持多国语言,现在可以很好的实现多国语言,
但是有个问题就是,在这些需要翻译的字符串,必须是唯一的,但是程序比较大,有些相同的英文字符,翻译后是不一样的。
比如Hospital,我可以翻译成医院,有些地方又需要翻译成医院名称,这个该如何解决
但是有个问题就是,在这些需要翻译的字符串,必须是唯一的,但是程序比较大,有些相同的英文字符,翻译后是不一样的。
比如Hospital,我可以翻译成医院,有些地方又需要翻译成医院名称,这个该如何解决
|
呵呵,你理解错了一个问题,翻译的时候并不是针对你的字符串,而是每个字符串的id。
创建po文件前,可以先用xml编辑器打开glade项目文件,修改字符串的id。比如说,2个不同的“hospital”的msgid分别设为“hospital_1”,“hospital_2”。
然后创建po文件时,就可以编辑:
msgid "hospital_1"
msgstr "医院"
msgid "hospital_2"
msgstr "屠宰场"
创建po文件前,可以先用xml编辑器打开glade项目文件,修改字符串的id。比如说,2个不同的“hospital”的msgid分别设为“hospital_1”,“hospital_2”。
然后创建po文件时,就可以编辑:
msgid "hospital_1"
msgstr "医院"
msgid "hospital_2"
msgstr "屠宰场"
|
对,三楼正解,现在好多开源软件都是这么做的,好处在于清晰,不会重
但是英文环境也需要翻译一遍有点麻烦
en_GB:
msgid "hospital_1"
msgstr "hospital"
msgid "hospital_2"
msgstr "meatworks"
zh_CN:
msgid "hospital_1"
msgstr "医院"
msgid "hospital_2"
msgstr "屠宰场"
但是英文环境也需要翻译一遍有点麻烦
en_GB:
msgid "hospital_1"
msgstr "hospital"
msgid "hospital_2"
msgstr "meatworks"
zh_CN:
msgid "hospital_1"
msgstr "医院"
msgid "hospital_2"
msgstr "屠宰场"
|
gettext
xgettext
|
|
不懂,但网上应该有东西供调用的