Android N上语言列表

来源:互联网 发布:云南大学软件学院导师 编辑:程序博客网 时间:2024/06/07 03:03

          Android N上语言列表与N之前有很大变化,进入语言列表,可看到如图1所示,图中上面的框框是系统用户所选择的语言(Android N上用户可以选择好几种语言,排在第一个是系统的语言),下面的框框是一个添加语言的按钮,点击之后可以去添加语言,点击之后会进入一个语言列表供选择添加,所图2所示,这个列表中分成两部分,上面部分"Suggested", 下面部分是"All Languages".出现在"Suggested"中的language点击之后会直接加到用户选择的语言去(放在最末尾),"All Languages"中的点击之后会将讲这种语言的所以国家列出来,选择国家之后会将这种语言加到用户语言列表中去。
                        图1                                                                                       图2  

 
 
[SOLUTION]
1. 点击"Add a Language", 哪些语言会出现在"Suggested"中, 哪些会出现在"All Languages"中?
        出现在"Suggested"中的language需要满足以下两个条件:
        (1)必须是配置文件中配置的语言。如device\mediatek\aubest52\full_aubest52.mk中PRODUCT_LOCALES所配置的语言。
        (2)出现在"Suggested"中的语言的国家要与所插的sim卡所属的国家相同(如有插入sim卡的话)或者与系统语言(用户语言列表中的排第一个的语言)的国家相同。
        其余的系统支持的语言会出现在"All Languages"中。这里系统支持的语言是由/frameworks/base/core/java/com/android/internal/app/LocalePicker.java的getSupportedLocales()函数获取,对应的在/frameworks/base/core/res/res/values/locale_config.xml下. 所以,如果列表中如果不想出现这么多语言,可以去修改locale_config.xml,将不想要的语言都去掉。
        eg. 用户语言列表中从上到下依次为en_US, fa_IR, 插入中国联通sim卡,配置文件中配置的语言为PRODUCT_LOCALES=en_US en_GB es_US zh_CN zh_TW, 那点击“Add a Language”之后"Suggested"中出现的就是es_US, zh_CN(去PRODUCT_LOCALES中去选,es_US国家为US, 与系统语言en_US国家相同,所以入选, zh_CN国家为CN, 与中国联通卡所属国家相同,所以入选, en_US未入选因为已经在用户语言列表). 
 
 
2. 系统语言设置为配置文件中没有配置的语言,resource该如何选择?
        (1)系统的apk不会使用这种语言的resource来显示,它会从用户语言列表中从上往下遍历,从中找到第一个是在配置文件中配置过的语言,如果没有,就使用en.
        (2)三方apk如果有这种语言对应的resource, 则会使用, 如果没有,会从用户语言列表中从上往下遍历,从中找到第一个是在配置文件中配置过的语言,如果没找到,就使用en.
 
3. Android N上resource的选择与N之前有哪些不同?
            请参考下图。

0 0