【问题标题】:Best way to automatically determinate user language自动确定用户语言的最佳方法
【发布时间】:2015-05-06 14:24:01
【问题描述】:

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

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

所以我认为也许我可以从 SIM 国家/地区确定它(并在设备没有时回退到用户区域设置),但是从国家/地区到语言之间没有一对一的关系。例如,美国有 en_US 和 es_US。

你有什么建议吗?我应该询问用户他们当前内容的语言环境吗?

【问题讨论】:

  • 如果您的手机是 en_US,我猜您希望所有应用都拥有 en_US 内容
  • 老实说,如果您希望您的应用程序被不同国家的人使用,那么询问 Locale 是最好的选择。如果你有一个住在美国的韩国人从中国买了一部手机,你如何确定应该设置什么语言环境?

标签: java android locale


【解决方案1】:

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

我也将语言环境设置为 en_US,我之所以这样做是因为我更喜欢使用英语菜单等。 (菜单和设置等的翻译在我的母语中感觉很紧张。)

如果您使用 Locale.getDefault().getLanguage() 以外的任何内容来表示您使用该语言的目的,您的用户可能会感到恼火(我知道我会)。

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

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

并使用从国家代码到官方语言代码(之一)的硬编码查找表。有包含此信息的开放数据库,例如,请参阅以下资源:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2010-10-01
    相关资源
    最近更新 更多