我的團隊正在爲Android和iOS的應用程序。應用程序以各種形式從服務器接收多個通知,如推送通知和UI彈出窗口。充分利用iOS和Android設備語言相同的格式
爲了以正確的語言發送消息,我希望這兩個平臺上的應用都以相同的格式向我發送設備語言。
例如,英語可以是en
或eng
或甚至English
,但它對於兩個設備必須相同。
是否存在被iOS和Android的支持的語言名稱格式?如果是這樣,那麼在這兩個平臺中對於設備語言的要求是什麼?
我的團隊正在爲Android和iOS的應用程序。應用程序以各種形式從服務器接收多個通知,如推送通知和UI彈出窗口。充分利用iOS和Android設備語言相同的格式
爲了以正確的語言發送消息,我希望這兩個平臺上的應用都以相同的格式向我發送設備語言。
例如,英語可以是en
或eng
或甚至English
,但它對於兩個設備必須相同。
是否存在被iOS和Android的支持的語言名稱格式?如果是這樣,那麼在這兩個平臺中對於設備語言的要求是什麼?
事實證明,iPhone's IETF BCP 47 language codes can be converted to Android's ISO-639-2 codes。
我將在它們的天然形式接受輸入和轉換iPhone的BCP 47到ISO-639-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
所以,你可以用 「en」 表示英語。 必須有一些可用的ios來獲得完整的語言名稱,但我以前沒有使用它。