如何在 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'
来测试翻译,看看您的翻译配置是否有问题
我正在学习有关翻译的 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'
来测试翻译,看看您的翻译配置是否有问题