发布网友 发布时间:2022-05-05 10:15
共3个回答
懂视网 时间:2022-05-11 01:17
# -*- coding: utf-8 -*- #!/usr/bin/env python ''' 1.run "python pygettext.py", will generate file messages.pot 2.open messages.pot. charset=gb2313; Content-Transfer-Encoding:utf8 3.save messages.pot as lang.po, then change its name to 'messages.po', now we have 'lang.po' and 'messages.po' 4.create path in your python project: ./locale/cn/LC_MESSAGES/ and ./locale/en/LC_MESSAGES/ 5.write code as follow 6.change lang.po. add: msgid "Hello world" msgstr "世界你好" 7.run "python msgfmt.py lang.po", will generate lang.mo. copy it to ./locale/cn/LC_MESSAGES 8.run "python msgfmt.py messages.po", will generate messages.mo. copy it to ./locale/en/LC_MESSAGES, chang its name to lang.mo ''' import gettext gettext.install('lang', './locale', unicode=False) gettext.translation('lang', './locale', languages=['en']).install(True) #gettext.translation('lang', './locale', languages=['cn']).install(True) print _("Hello world")
热心网友 时间:2022-05-10 22:25
你的问题对于相同的msg_id是无法解决的。只能尽量包含更多的内容,让它们不同,好在不同的内容中体现不同的内容。i18n不是机器翻译,无法实现你说的语境功能。而且绝大多数情况下很少出现你说的问题。热心网友 时间:2022-05-10 23:43
这种情况属于少数,但是确实存在。我以前参加的一个C++项目本来实现了一个类似Python的文本对照翻译方案,后来发现有的文本在不同地方需要翻译成不同的中文,只好又重新实现了一套多语言系统。我们也考虑过修改成有区别的文字,但是讨论后认为由于实现的*而扭曲设计不可取。一些已经约定俗成的用语也不是能随便修改的。