我正在构建一个Python应用程序,它使用了一堆翻译过的字符串。包含上述字符串的目录结构如下所示:
/locales
default.pot # reference English strings live here
/es_ES
/LC_MESSAGES
default.po #Spanish strings
/de_DE
/LC_MESSAGES
default.po #German strings
这些default.po
文件是由PHP应用程序生成的,但据我所知,它们符合处理gettext
实现所需的一般标准。
当我尝试使用gettext在Python中使用这些字符串时,会出现以下情况(此示例是从locales
目录中运行的:
>>> import os; os.listdir('.')
['.svn', 'de_DE', 'default.pot', 'eng', 'es_ES', 'fr_FR', 'ja_JP', 'ko_KR', 'pl_PL', 'pt_BR', 'ru_RU']
>>> import os.path
>>> os.path.exists('./es_ES/LC_MESSAGES/default.po')
True
>>> import gettext
>>> ldir = 'es_ES/LC_MESSAGES/'
>>> t = gettext.translation('default',ldir)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/gettext.py", line 469, in translation
IOError: [Errno 2] No translation file found for domain: 'default'
>>>
我不确定我在这里做错了什么(除了对这个库缺乏经验和上下文中“域”的概念)。
我是不是犯了个简单的错误?或者我对这些废话的理解有根本性的缺陷吗?
谢谢!
我对此很生疏,但根据过去的经验和http://docs.python.org/library/gettext,我可以看出这里缺少两件主要的东西:
一个简单的例子:
相关问题 更多 >
编程相关推荐