我的团队正在为 Android 和 iOS 构建一个应用程序。应用程序从服务器接收多个通知,以各种形式,如推送通知和 UI 弹出窗口。
为了以正确的语言发送消息,我希望两个平台上的应用程序都以相同的格式向我发送设备语言。
例如,English 可以是en
oreng
甚至English
,但对于两种设备来说必须是相同的。
iOS 和 Android 是否都支持语言名称格式?如果是这样,两个平台对设备语言的要求是什么?
安卓:
Locale.getDefault().getLanguage() ---> en
Locale.getDefault().getISO3Language() ---> eng
Locale.getDefault().getCountry() ---> US
Locale.getDefault().getISO3Country() ---> USA
Locale.getDefault().getDisplayCountry() ---> United States
Locale.getDefault().getDisplayName() ---> English (United States)
iOS
NSString *language = [[NSLocale preferredLanguages] firstObject]; // ---> en
所以你可以用“en”来表示英语。ios 必须有一些可用的东西才能获得完整的语言名称,但我以前没有使用过。
事实证明,iPhone 的 IETF BCP 47 语言代码可以转换为 Android 的 ISO-639-2 代码。
我将接受这两种输入的本机形式,并在服务器端将 iPhone 的 BCP 47 转换为 ISO-639-2。