【问题标题】:Getting the device language from iOS and Android in the same format以相同格式从 iOS 和 Android 获取设备语言
【发布时间】:2014-09-29 16:50:09
【问题描述】:

我的团队正在开发一款适用于 Android 和 iOS 的应用。应用程序从服务器接收多个通知,形式多种多样,例如推送通知和 UI 弹出窗口。

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

例如,英语可以是eneng 甚至English,但对于两种设备来说必须相同。

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

【问题讨论】:

    标签: android ios iso-639-2


    【解决方案1】:

    安卓:

    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 必须有一些东西可以获取完整的语言名称,但我之前没有使用过。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-02
        • 1970-01-01
        相关资源
        最近更新 更多