从get_current_language获取两个字母的语言代码

时间:2017-10-03 12:49:21

标签: django internationalization

我正在使用Django国际化并使用get_current_language调用来获取当前语言。但是,这是语言代码加区域代码(例如en-gb),而我只需要语言代码(例如en)。

如何才能获得双字母语言代码?

2 个答案:

答案 0 :(得分:1)

您可以简单地拆分破折号。

https://docs.djangoproject.com/en/1.11/topics/i18n/translation/#how-django-discovers-language-preference

  

如果基本语言可用但指定的子语言不可用,则Django使用基本语言。例如,如果用户指定de-at(奥地利德语)但Django只有de可用,则Django使用de。

答案 1 :(得分:1)

这种扩展在@ mccainz的答案上。

我建议您创建自定义模板过滤器,documented here

@register.filter
def country_only(value):
    return value[0:value.find("-")]

用法是:

{{lang|country_only}}