本文主要是介绍python 国际化一词多义翻译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
先举个栗子吧
如:申请
1.作为一个名词,翻译为英文是apply
2.作为一个动词,翻译为因为是application
所以,国际化时候这类多义词就要做特殊处理
发现喜欢贴官网说明 上图:
将多义词以msgctxt在做个标记
msgctxt "apply none"
msgid "申请"
msgstr "apply"
msgctxt "apply verb"
msgid "申请"
msgstr "application"
在python页面上 用法:
{% trans "申请" context "apply none" %}
{% trans "申请" context "apply verb" %}
关于po文件编译时候报错,在这描述下
G:\install\work\python35\Tools\i18n>python msgfmt.py G:\workspace_python\testsit
e1\test1\locale\en_US\LC_MESSAGES\django_en_US_testsite.po
Traceback (most recent call last):File "msgfmt.py", line 236, in <module>main()File "msgfmt.py", line 232, in mainmake(filename, outfile)File "msgfmt.py", line 184, in makel = ast.literal_eval(l)File "G:\install\work\python35\lib\ast.py", line 46, in literal_evalnode_or_string = parse(node_or_string, mode='eval')File "G:\install\work\python35\lib\ast.py", line 35, in parsereturn compile(source, filename, mode, PyCF_ONLY_AST)File "<unknown>", line 1msgctxt "test"
SyntaxError: invalid syntax
gettext翻译模块的问题,后来我到ubuntu中编译
1. 在ubuntu中先安装gettext
sudo apt-get install gettext
安装完成后会新增加相关的一些命令:
另外,在ubuntu想安装gettext,但不知到安装的名称是啥,分享一个不知道安装名称时候用的命令:
apt-cache search gettext
2. 编译
(python-django)vagrant@precise64:/vagrant$ msgcat django_en_US_testsite.po |msgfmt -o testc2.mo -
注意:命令最后面是有‘-’的
再贴个动态图吧
这篇关于python 国际化一词多义翻译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!