如何在 Django 中使用翻译?

How to use translations in Django?

我正在学习有关翻译的 Django 教程,但是我无法让它工作。我可能遗漏了一些简单到他们懒得写的东西,但我看不出是什么。

我的 settings.py 有以下声明:

LANGUAGE_CODE = 'en-us'
USE_I18N = True
_ = lambda s: s
LANGUAGES = (
  ('en', 'English'),
  ('fr', 'French'),
)
LOCALE_PATHS= (
                os.path.join( SITE_ROOT, 'locale').replace('\','/'),
               )

我的观点是这样的:

from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext as __
#...
 def translation_test(request):
        output = __("Yes")
        return HttpResponse(output)

我的 ProjectRoot/locale/fr/LC_MESSAGES/django.po 文件有这个:

msgid "Yes"
msgstr "Oui"

所以我希望我的视图生成 "Oui",但是,它生成 "Yes"。我在这里错过了什么?

P.S. 我也试过使用模板文件,因为我也需要这个:

my_template.html :

{% extends "base_site.html" %}
{% load i18n %}
<a>{% trans "Yes" %}</a>

同样,没有翻译。我应该怎么做才能完成这项工作?

提前致谢。

法语应该是查看翻译值的活动语言。

检查 https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#how-django-discovers-language-preference 以了解 django 如何确定活动语言。

您可以通过设置 LANGUAGE_CODE = 'fr'

来测试翻译,看看您的翻译配置是否有问题