Android 國際化,Android國際化
由於公司的項目是投放 google play store , 所以要做國際化。國際化遇到的兩個大問題
一:字串國際化
解決這個問題很簡單,在res目錄下放不同國家的value檔案夾,在相應檔案夾裡的 strings.xml 檔案放對應的語言即可。比如
二:配置樣式國際化
中國人的閱讀習慣是從左往右閱讀、阿拉伯國家的閱讀習慣是從右往左讀。所以同一個布局在不同的語言環境下,顯示的樣式是不一樣的。比如:
預設情況下的布局
阿拉伯語言情況下的布局
例子中的布局很簡單,左邊是一個文本,文本的後面有一張圖片。
可以看到在阿拉伯語言環境下的頁面配置,文本跑到了螢幕的右側,而圖片卻不見了。(前面已經說過阿拉伯國家的閱讀習慣是從右往左的)
解決方案:
- 方案一:建立多個layout 檔案夾,從新布局
- 方案二:Android 4.2系統之後,Google在Android中引入了RTL布局
對於方案一,這個方法比較老了,而且幾乎要把所有的布局重寫一遍,所以推薦使用第二種方法。在Android 4.2系統之後,Google在Android中引入了RTL布局,更好了支援了由右到左文字布局的顯示,為了更好的相容RTL布局,google推薦使用MarginStart和MarginEnd來替代MarginLeft和MarginRight,這樣應用可以在正常的螢幕和由右到左顯示文字的螢幕上都保持一致的使用者體驗。
主要的屬性有
android:layout_marginStart android:layout_marginEnd android:paddingStart android:paddingEnd android:layout_toStartOf android:layout_toEndOf
用RTL寫的布局為:
注意:
在使用的時候RTL布局的時候,AndroidManifest.xml 中添加RTL的支援
<application android:name="com.yiba.sharewe.application.APP" android:allowBackup="true" android:hardwareAccelerated="false" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme">