【问题标题】:Localizing Persons name in Android App for different locales在 Android 应用程序中为不同的语言环境本地化人名
【发布时间】:2015-03-01 03:37:49
【问题描述】:
在某些语言环境中,一个人的全名是用姓(姓氏,姓氏)然后名字(个人名字,名字)来写的,而不是更常见的名字,然后是姓氏的顺序。有没有API在 Android 中,它可以根据手机的区域设置为我的应用处理此名称排序。
【问题讨论】:
标签:
android
localization
internationalization
【解决方案1】:
恐怕没有 API。我一直在寻找它一段时间,我所知道的就是 @Shervin 分享的内容。
目前:
您可以尝试自己管理这一切,方法是从用户那里获取头衔、姓名、第二名和姓氏。在英语中,很容易正确排序并将其与空格连接。不幸的是 - not every language use spaces。
研究:
CLDR 是提供任何特定于语言环境的数据的项目(例如在 ICU 中),但名称和姓氏的顺序为 is not there。
可能的解决方案:
大多数解决方案可以总结为:
如果设计一个可以接受人们姓名的表单或数据库
拥有不同的背景,你应该问问自己,你是否
确实需要为名字和姓氏设置单独的字段。
有时您可能会选择单独的字段,因为您希望能够
使用姓名的一部分直接称呼该人,或提及
他们。例如,当 Google+ 提到“理查德的联系人”时。要么
也许是因为您想向他们发送带有他们名字的电子邮件
顶端。请注意,您不仅可能会因名称语法而遇到问题
在这里,但您还必须考虑到围绕
关于形式的世界(不是每个人都为陌生人感到高兴
以他们的名字称呼他们)。 单独询问可能会更好,
例如,在设置个人资料时,该人希望您如何
解决他们。
http://www.w3.org/International/questions/qa-personal-names#fielddesign
因此,您必须选择是否需要分别询问用户的名字和姓氏(应该有助于排序),但即便如此 - 您也需要知道他们的姓名应该如何显示。
大多数情况下,您会看到要求用户提供的表单:名字、姓氏和显示名。检查here(第四个标题)以获得解释。