【发布时间】:2015-04-27 15:19:04
【问题描述】:
我在 settings.py 中有可用的语言
LANGUAGE_CODE = 'en'
LANGUAGES = (
('fr', _('French')),
('en', _('English')),
)
当我在我的模板中循环时,我认为这是 django 通过 {{ lang.1 }} 给我翻译名称的预期行为。但我不想翻译语言名称,所以我更改了我的 settings.py 如下:
LANGUAGES = (
('fr', 'Francais'),
('en', 'English'),
)
我仍然得到翻译的语言名称。你有想法吗? {% get_available_languages as languages %} 模板标签是否会自动翻译列表项?如果是这样,我如何在循环可用语言时使用未翻译的语言名称?
---- 编辑 ---
我检查了django的get_available_languages模板标签的代码。 我想这里是翻译过来的:
class GetAvailableLanguagesNode(Node):
def __init__(self, variable):
self.variable = variable
def render(self, context):
context[self.variable] = [(k, translation.ugettext(v)) for k, v in settings.LANGUAGES]
return ''
也许我必须编写自己的模板标签...
【问题讨论】:
-
你又运行runserver了吗?
-
是的,我再次运行我的服务器...
-
如果我写 ('en', 'test'),例如它可以工作并按预期给出'test'...
-
好像你已经回答了你自己的问题。您应该只编写自己的模板标签,或直接访问 settings.LANGUAGES。
标签: django django-i18n