Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:未找到使用自定义区域设置文件夹的域的翻译文件_Python_Gettext - Fatal编程技术网

Python:未找到使用自定义区域设置文件夹的域的翻译文件

Python:未找到使用自定义区域设置文件夹的域的翻译文件,python,gettext,Python,Gettext,我的结构如下: / |- main.py |- brainz | |- __init__.py | |- Brainz.py |- datas |- locale |- en_US |- LC_MESSAGES |- brainz.mo |- brainz.po 在my\uuuu init\uuuuu.py中有以下几行: import loca

我的结构如下:

/
|- main.py
|- brainz
|    |- __init__.py
|    |- Brainz.py
|- datas
     |- locale
          |- en_US
               |- LC_MESSAGES
                    |- brainz.mo
                    |- brainz.po
在my
\uuuu init\uuuuu.py
中有以下几行:

import locale
import gettext
import os

current_locale, encoding = locale.getdefaultlocale()

locale_path = '../datas/locale/' + current_locale + '/LC_MESSAGES/'

language = gettext.translation ( 'brainz', locale_path )
language.install()
但当我尝试运行我的程序时,我遇到了以下错误:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    from brainz.Brainz import *
  File "/home/damien/BrainZ/brainz/__init__.py", line 11, in <module>
    language = gettext.translation ( 'brainz', locale_path )
  File "/usr/lib/python2.6/gettext.py", line 484, in translation
    raise IOError(ENOENT, 'No translation file found for domain', domain)
IOError: [Errno 2] No translation file found for domain: 'brainz'
回溯(最近一次呼叫最后一次):
文件“main.py”,第3行,在
从brainz.brainz导入*
文件“/home/damien/BrainZ/BrainZ/_init__.py”,第11行,在
language=gettext.translation('brainz',locale\u路径)
文件“/usr/lib/python2.6/gettext.py”,第484行,翻译
raise IOError(eNONT,“未找到域的翻译文件”,域)
IOError:[Errno 2]未找到域“brainz”的翻译文件
我不知道
gettext.translation
需要哪个路径,因为我给出了
.mo
文件的完整路径

有人能解释一下我要怎样才能正确加载翻译文件吗

谢谢


Damien

我认为您的
\uu init\uuuuuuuuuuuuuupy
应该是这样的:

import locale
import gettext
import os

current_locale, encoding = locale.getdefaultlocale()

locale_path = 'datas/locale/'
language = gettext.translation ('brainz', locale_path, [current_locale] )
language.install()

尝试将locale\u path设置为完整路径,例如:locale\u path=“/home/xxx/”@john misoskian它也不起作用。。。域参数(gettext.translation的第一个参数)设置为“brainz”。我想这是对文件名(brainz.mo)的引用。它是?