django国际化和翻译问题

Odi*_*aeb 13 django translation internationalization

我有django翻译的问题.

问题1 - 我更新了django.po文件中的字符串,但更改没有出现在网页上.

问题2 - 我用django-admin.py makemessages -l et创建了我自己的语言环境文件,将翻译字符串添加到文件中,但它们也没有出现在页面上.

我不认为这是设置问题,因为django.po文件的翻译确实出现在网站上,它只是更改和我自己生成的文件中没有出现的翻译.

编辑:我的settings.py包含:

gettext = lambda s: s
LANGUAGE_CODE = 'et'

LANGUAGES = (
             ('et', gettext('Estonian')),
             )
Run Code Online (Sandbox Code Playgroud)

我自己的语言环境文件在

/path/to/project/locale/et/LC_MESSAGES/
Run Code Online (Sandbox Code Playgroud)

和文件是

django.mo和django.po

我在问题1中提到的文件是django own et transaltion,我改变了.

Fer*_*her 26

好吧,我刚才得到了同样的错误.我解决了它在我的django.po文件中删除翻译字符串上的"#,fuzzy"标记.如果获得此标记,似乎不提供翻译文本,因此请确保翻译文本然后删除此行.

以下是po文件中翻译文本而非服务器的示例:

     #: course/models.py:13
     #, fuzzy
     msgid "code"
     msgstr "código"
Run Code Online (Sandbox Code Playgroud)

所以,只需删除标志并保留如下:

     #: course/models.py:13
     msgid "code"
     msgstr "código"
Run Code Online (Sandbox Code Playgroud)

我希望这对你有用.祝好运!

参考:http://share-experiences.com/blog/what-fuzzy-means-python-django-gettext/

PD:我知道你几个月前就遇到过这个问题了,但我留下这个回答是因为如果你解决了这个问题我们就没听过.

  • 因为那些"fuzzies":)我也拉了一些头发:) (4认同)

jmu*_*jmu 12

有没有出现相同/类似的翻译问题.设置LOCALE_PATHS修复了问题:

# settings.py
USE_I18N = True
USE_L10N = True

LOCALE_PATHS = (
  '/path/to/djangoapp/locale',
)
Run Code Online (Sandbox Code Playgroud)

  • 更好的是我会推荐`os.path.join(BASE_DIR,'locale'),`.**不要**使用相对路径,因为虽然它们在dev中工作,但它们可能无法正常工作,具体取决于服务器等.我很难学到这一点. (2认同)

Tom*_*gli 7

翻译文件(PO)只在内存中加载一次,Django不会更改PO文件.要加载新的翻译文件,您需要重新启动Django(例如,停止/启动runserver,Apache或NGINX).