自动确定用户语言的最佳方法

时间:2015-03-05 09:19:41

标签: java android locale

我正在开发一个项目,我需要自动确定哪个是用于创建内容的用户语言。

我们实际上正在使用Locale.getDefault().getLanguage(),但这不是正确的选择,因为对于istance,我住在意大利,我用意大利语写内容,但我手机上的默认语言环境是en_US。

所以我认为也许我可以从SIM国家确定它(当设备没有时,可以回退到用户Locale)但是从国家到语言没有一对一的关系。对于istance,美国有en_US和es_US。

你有什么建议吗?我应该询问用户当前内容的区域设置吗?

1 个答案:

答案 0 :(得分:6)

您需要用户语言的原因是什么?

我也将我的语言环境设置为en_US,我有这个,因为我更喜欢用英语菜单等。 (菜单和设置等的翻译在我的母语中感到紧张。)

如果您使用Locale.getDefault().getLanguage()之外的其他任何内容,无论您使用何种语言,您的用户都会感到恼火(我知道我会这样做)。

话虽如此,如果你真的想使用当地语言,我建议你根据一些启发法算出国家代码

  • 默认语言区域
  • SIM国家/地区
  • 当前网络国家/地区

并使用从国家/地区代码到(官方语言代码)之一的硬编码查找表。有这些信息的开放数据库,例如参见这些资源:

相关问题