如何在Django应用中安装翻译".po"文件?

2 投票
3 回答
2249 浏览
提问于 2025-04-17 01:40

我几天前完成了为Django-LFS(闪电快店)创建一个翻译文件,翻译成我的母语(葡萄牙语,巴西)。现在文件已经做好了,我需要安装一下在Transifex上下载的“.po”文件。

我下载了这个文件,但现在要安装它,我就是搞不清楚该怎么做。我试着把文件放到'lfs-installer'文件夹里,使用“bin/django compilemessages -a”命令,也试过把文件放在不同的文件夹里,但就是无法让我的LFS使用这个翻译文件……

有没有人知道怎么让翻译包在LFS上工作?还是说我做错了什么?

谢谢

3 个回答

0

我用以下设置让它工作起来了:

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})

祝你好运。

0

如果你还没有一个叫做 Locale 的文件夹,先创建一个。然后在你的 settings.py 文件里,你需要告诉它去哪里找这个 locale 的路径。大概是这样的:

LOCALE_PATHS{
C:/sdalfjasd/dfalsdjkf/locale
}

另外,确保你的中间件里有 locale 的相关设置……

现在我给你指了个方向,你应该能找到相关的语法和具体内容了。

一旦这些都设置好了,你可以运行 makemessage -a 命令,这个命令会在你的 locale 文件夹里创建一个新的文件夹,里面会包含你输入的 -a。然后你可以去这个文件夹里查看,里面应该会有一个 .po 文件(可能没有)。如果没有,就把你自己创建的 .po 文件放进去。

接着在你的 CMD 里找到你的项目,运行 compilemessages -a。这个命令会把你的 .po 文件编译成 .mo 文件,这些文件是翻译工作所必需的。

希望我没有跑题太远……

1

把你的 .po 文件放在这个路径下:

<your_django_project>/conf/locale/pt_BR/LC_MESSAGES/

然后运行这个命令:

django-admin makemessages -a

撰写回答