最近在上線雙語版本(一個包支持中文、英文二種語言)時,遇到一個坑點html
if (ToolUtils.isAndroid()) { if (Application.systemLanguage == SystemLanguage.ChineseSimplified || Application.systemLanguage == SystemLanguage.Chinese || Application.systemLanguage == SystemLanguage.ChineseTraditional) { // 簡體中文 || 繁體中文 使用中文, 其它地區使用英文 setLang("cn"); } else { // Application.systemLanguage == SystemLanguage.English setLang("en"); } } else { setLang("en"); }
上面這段代碼看上面去沒毛病是吧,但是市場的反饋說。爲何 iOS 和 安卓的轉化率差了這麼多。並且北美用戶反饋怎麼默認是中文啊?android
我就意識到,上面這段代碼可能出錯了。iOS 沒出錯,是由於寫死默認就是英文。而後拿出了二個方案:ios
一、在登陸界面,放一個相似輸入法同樣的地球icon() + Language 字樣,點擊後彈出提示,用戶能夠選擇切換語言;ide
二、從新出一個新包;優化
搞完上面這個已是次日的凌晨4點半了,還好。安卓上線後數據基本與 iOS 持平,說明問題已經獲得解決了。ui
今天準備對現有包進行優化,又去查了一個 Application.systemLanguage,結果發現有人說這個有 bug,想起以前加的班,釋然了。當時意識到的問題沒錯,不覺心中萬隻草泥馬在奔騰,Unity!!!spa
光抱怨不行,得想辦法解決。想完全解決問題,只能依賴系統的原生語言,安卓 —— Java、iOS —— Objective-C/Swift 來獲取。3d
iOS,參考下面的連接:http://www.hudongdong.com/ios/556.htmlcode
Android,參考下面的連接:htm
https://likfe.com/2017/05/10/android-sys-language/
官方關於Android 7.0及以上的語言和語言區域的說明 :
https://developer.android.com/guide/topics/resources/multilingual-support?hl=zh-cn