如何在Django应用中安装翻译".po"文件?
我几天前完成了为Django-LFS(闪电快店)创建一个翻译文件,翻译成我的母语(葡萄牙语,巴西)。现在文件已经做好了,我需要安装一下在Transifex上下载的“.po”文件。
我下载了这个文件,但现在要安装它,我就是搞不清楚该怎么做。我试着把文件放到'lfs-installer'文件夹里,使用“bin/django compilemessages -a”命令,也试过把文件放在不同的文件夹里,但就是无法让我的LFS使用这个翻译文件……
有没有人知道怎么让翻译包在LFS上工作?还是说我做错了什么?
谢谢
3 个回答
我用以下设置让它工作起来了:
import os
DIRNAME = os.path.dirname(__file__)
USE_I18N = True
USE_L10N = True
LANGUAGE_CODE = 'pt-br'
LANGUAGES = (
('pt-br', u"Português"),
)
LOCALE_PATHS = [
DIRNAME + '/locale',
]
然后在settings.py文件夹旁边创建一个locale
文件夹,并按照Django的官方说明进行操作。你想要的django.po
文件的路径是:locale/pt_BR/LC_MESSAGES/django.po
。完成后,使用compilemessages
工具并重启服务器。
这样应该就能正常工作了。
小提示:django-lfs使用locale
模块来处理货币显示,但这个模块有个小bug,会把货币格式显示成1234,00 R$
,而不是R$ 1234,00
。如果你遇到这个问题,可以在你的settings.py
文件中加入以下内容:
# Fix for LC_MONETARY bug: http://www.sourceware.org/bugzilla/show_bug.cgi?id=1294
import locale
locale._override_localeconv.update({'p_cs_precedes': 1, 'n_cs_precedes': 1})
祝你好运。
如果你还没有一个叫做 Locale 的文件夹,先创建一个。然后在你的 settings.py 文件里,你需要告诉它去哪里找这个 locale 的路径。大概是这样的:
LOCALE_PATHS{
C:/sdalfjasd/dfalsdjkf/locale
}
另外,确保你的中间件里有 locale 的相关设置……
现在我给你指了个方向,你应该能找到相关的语法和具体内容了。
一旦这些都设置好了,你可以运行 makemessage -a
命令,这个命令会在你的 locale 文件夹里创建一个新的文件夹,里面会包含你输入的 -a。然后你可以去这个文件夹里查看,里面应该会有一个 .po 文件(可能没有)。如果没有,就把你自己创建的 .po 文件放进去。
接着在你的 CMD 里找到你的项目,运行 compilemessages -a
。这个命令会把你的 .po 文件编译成 .mo 文件,这些文件是翻译工作所必需的。
希望我没有跑题太远……
把你的 .po 文件放在这个路径下:
<your_django_project>/conf/locale/pt_BR/LC_MESSAGES/
然后运行这个命令:
django-admin makemessages -a