Django i18n 查找支持的语言
我正在通过一个用户已经注册的第三方服务来确定用户的语言偏好。这个服务会给我一个地区代码,比如 en_US
。如果我在 settings.LANGUAGES
中没有找到对应的语言代码,Django 有没有什么简单的方法可以帮我找到一个合适的备用选择,比如 en-gb
。
当然,我知道我可以自己做一些字符串比较来处理这个地区代码,只是想知道有没有更方便的解决方案!
1 个回答
5
你可以在这里查看Django用来根据请求判断语言的代码这里。不过,似乎没有一个方便的工具函数可以直接满足你的需求。其实,里面的逻辑很简单——如果子语言不被支持,就把它的后缀去掉,然后再找主语言作为备用。不过,这样做并不能把en-us
转换成en-gb
。
顺便提一下,文件中的to_locale
和to_language
这两个函数可能对你有帮助。