我正在开发一个项目,需要自动确定用户创建内容所使用的语言。目前我们使用Locale.getDefault().getLanguage(),但这可能不是正确的选择。例如,我在意大利写意大利文内容,但我的手机默认语言环境是en_US。因此,我想也许可以从SIM卡所属国家来确定语言(当设备没有时则回退到用户语言环境),但是从国家到语言之间并没有一对一的关系。例如,美国有en_US和es_US两种语言环境。您有什么建议吗?我应该询问用户当前内容的语言环境吗?
你需要用户语言的原因是什么?
我也将我的语言环境设置为en_US,因为我更喜欢用英语来显示菜单等内容。(在我的母语中翻译菜单和设置等内容感觉很吃力。)
如果你在使用语言时不使用Locale.getDefault().getLanguage()
,那么你的用户很可能会感到恼怒(我知道我会)。但话说回来,如果你真的想要使用本地语言,我建议你通过一些启发式方法来确定国家代码:
然后使用一个硬编码的查找表,将国家代码映射为官方语言代码之一。有一些开放数据库提供了这些信息,例如以下资源: