日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android develop 国际化

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

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

一、概念

  1.Internationalization(I18N)

    國際化

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

    是L10N的基礎

  2.Localization(L10N)

    本地化

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

二、Strings

  1.永遠不要在任何地方Hard-code字符串

    layouts, xmls, menus, codes

    使用Lint查找所有hardcoded字符串

  2.永遠不要拼接字符串

    錯誤的做法:

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

      <string name=“apps”>個應用</string>

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

    正確的做法:

      <string name=“total_apps”>共計%1$d個應用</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.量詞

    一個應用,兩個應用,三個應用

    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.利用現有API

    不要重復制造輪子

    不如Android系統對語言的支持廣泛

  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會嘗試按照精確度尋找匹配,如果無法找到匹配,則使用默認資源

    對于國際化產品,默認資源建議為英文,中文資源請放在-zh-rCN中

    默認資源必須為全集

  3.資源命名

    Module_Name

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

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

  4.刪除不需要的資源

    在多語言環境下,多出一個資源會導致apk文件體積大幅增加

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

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

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

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

七、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.標出無法翻譯的部分

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

  3.在翻譯團隊提出問題時,請盡快給出反饋

八、Testing

  1.I18N testing

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

    在運行時切換系統語言設定,App需要能夠正確改變語言(configuration change)

  2.L10N testing

    眾測機制(用戶,當地運營團隊,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

?

轉載于:https://www.cnblogs.com/wanjintun/p/5003828.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。