日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Android develop 国际化

發(fā)布時間:2023/12/10 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android develop 国际化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自別人的一片文章,出處以找不到了,覺得寫得不錯,記錄一下

一、概念

  1.Internationalization(I18N)

    國際化

    使得App在不改的源碼、資源文件的情況下,能夠適應(yīng)各國、各文化、各語言

    是L10N的基礎(chǔ)

  2.Localization(L10N)

    本地化

    為App提供本地化的語言,圖片,媒體資源等

二、Strings

  1.永遠(yuǎn)不要在任何地方Hard-code字符串

    layouts, xmls, menus, codes

    使用Lint查找所有hardcoded字符串

  2.永遠(yuǎn)不要拼接字符串

    錯誤的做法:

      <string name=“total”>共計</string>

      <string name=“apps”>個應(yīng)用</string>

      String result = getString(R.string.total) + Integer.toString(appCount) + getString(R.string.apps)

    正確的做法:

      <string name=“total_apps”>共計%1$d個應(yīng)用</string>

      String result = getString(R.string.total_apps, appCount)

三、Layouts

  1.Flexible layouts

    避免hard code margin, padding, width, height

    多使用minWidth, minHeight, maxWidth, maxHeight等屬性

    需要定義精確尺寸的時候,請注意: 為外語留出足夠的空間(例如中文長度*2,或者英文長度*1.5)

    為特定語言提供定制的Layouts

  2.RTL

    中東語言為主

    Android 4.2+支持 layoutDirection, textDirection, textAlignment, etc

    http://android-developers.blogspot.fr/2013/03/native-rtl-support-in-android-42.html

?

四、Plurals

  1.量詞

    一個應(yīng)用,兩個應(yīng)用,三個應(yīng)用

    One app, two apps, three apps

    中文非常簡單,但是其他語言可能有更多變化

    至少需要定義one, other, 但是也可以定義zero, two, few, many

  2.R.plurals

    使用專用的<plurals></plurals>在資源中定義

    http://developer.android.com/guide/topics/resources/string-resource.html#Plurals

五、Date, time, numbers, currencies

  1.利用現(xiàn)有API

    不要重復(fù)制造輪子

    不如Android系統(tǒng)對語言的支持廣泛

  2.需要深入理解以下類:

    DateUtils, DateFormat, DecimalFormat

六、Resource Management

  1.為不同locale定義不同的resources

    values values-es values-jp values-zh-rCN values-zh-rTW

  2.資源匹配

    MCC, MNC, configuration(landscape, portrait), language, region

    Android會嘗試按照精確度尋找匹配,如果無法找到匹配,則使用默認(rèn)資源

    對于國際化產(chǎn)品,默認(rèn)資源建議為英文,中文資源請放在-zh-rCN中

    默認(rèn)資源必須為全集

  3.資源命名

    Module_Name

      其中Module為縮寫,全部小寫,不超過3個字符

      Name為具體資源的英文名稱,首字母大寫

  4.刪除不需要的資源

    在多語言環(huán)境下,多出一個資源會導(dǎo)致apk文件體積大幅增加

    避免使用 Resources.getIdentifier(可能被compressed)

  5.禁止使用反射等方式獲取資源id

  6.不要使用可被本地化的資源作為索引或進(jìn)行持久化

    例如hashmap的key,或者使用button.text判斷是否是特定button,這些資源可能會在運(yùn)行時改變,導(dǎo)致程序工作異常

七、Help translators

  1.提供string的上下文信息

    <!-- The action for submitting a form. This text is on a button that can fit 30 chars -->

    <string name="login_submit_button">Sign in</string>

  2.標(biāo)出無法翻譯的部分

    <string name="countdown"><xliff:g id="time" example="5 days>%1$s</xliff:g>until holiday</string>

  3.在翻譯團(tuán)隊提出問題時,請盡快給出反饋

八、Testing

  1.I18N testing

    提供中文與英文版本,測試人員測試不同環(huán)境下UI語言是否正確(hardcode) 未來可制作pseudo translation版本,測試I18N

    在運(yùn)行時切換系統(tǒng)語言設(shè)定,App需要能夠正確改變語言(configuration change)

  2.L10N testing

    眾測機(jī)制(用戶,當(dāng)?shù)剡\(yùn)營團(tuán)隊,etc)

九、References

  1.Localizing with Resources

    http://developer.android.com/guide/topics/resources/localization.html

  2.Localization Checklist

    http://developer.android.com/distribute/tools/localization-checklist.html

  3.String resources

    http://developer.android.com/guide/topics/resources/string-resource.html

  4.RTL

    http://android-developers.blogspot.fr/2013/03/native-rtl-support-in-android-42.html

  5.Support Different Languages

    http://developer.android.com/training/basics/supporting-devices/languages.html

?

轉(zhuǎn)載于:https://www.cnblogs.com/wanjintun/p/5003828.html

總結(jié)

以上是生活随笔為你收集整理的Android develop 国际化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。