如何在 Django 中显示语言名称而不是语言代码?

rob*_*ach 1 python django django-templates

是否有内置的模板标签来显示语言名称而不是语言代码?

例如。我目前得到“en”,但我想要“English”

rob*_*ach 6

i18n 包提供了“get_language_info”标签

{% load i18n %}
{% get_language_info for "en" as lang %}
{{lang.name_local}} ({{lang.code}})
Run Code Online (Sandbox Code Playgroud)

将返回:

English (en)
Run Code Online (Sandbox Code Playgroud)

将上面示例中的“en”替换为您的模板属性

例如。我的自定义配置文件模型的profile.language是默认返回“en”的属性 - 现在我对语言属性有了更漂亮的显示


上面的回答和@art_hq 的评论提供了一个额外的更通用的解决方案,使用profile.language如下:

{% get_language_info for profile.language as lang %} {{ lang.name }}
Run Code Online (Sandbox Code Playgroud)