Django i18n 查找支持的语言

8 投票
1 回答
1703 浏览
提问于 2025-04-16 15:03

我正在通过一个用户已经注册的第三方服务来确定用户的语言偏好。这个服务会给我一个地区代码,比如 en_US。如果我在 settings.LANGUAGES 中没有找到对应的语言代码,Django 有没有什么简单的方法可以帮我找到一个合适的备用选择,比如 en-gb

当然,我知道我可以自己做一些字符串比较来处理这个地区代码,只是想知道有没有更方便的解决方案!

1 个回答

5

你可以在这里查看Django用来根据请求判断语言的代码这里。不过,似乎没有一个方便的工具函数可以直接满足你的需求。其实,里面的逻辑很简单——如果子语言不被支持,就把它的后缀去掉,然后再找主语言作为备用。不过,这样做并不能把en-us转换成en-gb

顺便提一下,文件中的to_localeto_language这两个函数可能对你有帮助。

撰写回答