Django i18n:翻译不出现的常见原因

2024-06-17 09:24:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个多语种的Django网站。我创建了一个消息文件,填充并编译了它。我用我想要的语言(希伯来语)检查了网站(在本例中是管理员),大多数短语都应该以希伯来语出现,但有些没有。我检查了源代码,这些短语仍然应该以_('Whatever')的形式出现,也在消息文件中翻译,是的,我记得要做compilemessages

有哪些常见的原因导致翻译不能像这样出现?


Tags: 文件django语言消息源代码网站管理员原因
3条回答

可能翻译的字符串被标记为fuzzy

嗨,只是附上一些我过去不得不做的修复:

  • 重新启动网络服务器!

在设置文件中 -需要USE_I18N = True

  • 中间件模块之间的django.middleware.locale.localemidleware(但只要django根本不关心您的本地特性,就不一定是这样)

  • django.core.context_processors.i18n在模板_context_processors中

当然,我还有其他与翻译有关的问题,但我不记得所有这些。。。希望这能有帮助!

刚被一个击中。我在项目的根目录中有locale/目录,但默认情况下,INSTALLED_APPS目录和默认翻译中有Django looks for translations。所以它没有找到我添加的翻译。但是我的一些字符串在Django附带的默认翻译中(例如“Search”),所以有一些字符串被翻译了,这让我很困惑。

要将我的翻译所在的目录添加到Django将要查找翻译的位置列表中,我必须设置LOCALE_PATHS setting。所以在我的例子中,如果locale/目录和settings.py都在django项目的根目录中,我可以将以下内容放入settings.py

from os import path
LOCALE_PATHS = (
    path.join(path.abspath(path.dirname(__file__)), 'locale'),
)

相关问题 更多 >