从iOS和Android获取相同格式的设备语言

时间:2014-09-02 19:30:50

标签: android ios iso-639-2

我的团队正在构建适用于Android和iOS的应用。应用程序以各种形式(如推送通知和UI弹出窗口)从服务器接收多个通知。

为了使用正确的语言发送消息,我希望两个平台中的应用程序都以相同的格式向我发送设备语言

例如,英语可以是eneng,甚至是English,但两个设备必须相同。

iOS和Android是否支持语言名称格式?如果是这样,两个平台对设备语言的要求是什么?

2 个答案:

答案 0 :(得分:2)

机器人:

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

文档:https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/Articles/ChoosingLocalizations.html

所以你可以使用" en"对于英语。 ios必须有一些东西才能获得完整的语言名称,但之前我还没有使用它。

答案 1 :(得分:1)

事实证明,iPhone's IETF BCP 47 language codes can be converted to Android's ISO-639-2 codes

我将以原生形式接受这两项输入,并在服务器端将iPhone的BCP 47转换为ISO-639-2。