`

如何向android的setting语言列表中添加一门语言(

 
阅读更多
如题:
看了下,android2.2系统有越南语的字库,所以支持越南语,但setting中语言列表里没有越南语选项,起初我在LocalePicker.java的onCreate方法的133行做了如下修改:
mLocales = new Loc[finalSize+1];
        for (int i = 0; i < finalSize ; i++) {
            mLocales[i] = preprocess[i];
        }
        Locale temp = new Locale("vi", "VN");//vi是越南语
        mLocales[finalSize] = new Loc(toTitleCase(getDisplayName(temp)), temp);
        Arrays.sort(mLocales);
复制代码
重新编译后,语言列表里有了越南语,但点击后系统语言还是默认的英文,也就是说系统语言没有更改成功,我再看了下/data/property/目录下关于语言和国家的两个属性文件都是修改成功了的,再继续往下跟代码,但没有所获,google了一下,搜到了一篇关于android2.1 架构解析 之语言定制的帖子(http://hi.baidu.com/gigatron/blo ... c8ab20843bd0e24445d,有兴趣的朋友可以看下) ,里面说语言选择列表在external/icu4c/stubdata/Android.mk中配置,我在这里面添加了越南语,最后返回上一级,查看readme.txt,官方已经给出说明,改动后需要将语言配置的txt转成dat,可是在run icu_dat_generator.py  4.2这个命令时 一直报错,到现在还没弄好,希望有涉及过这方面的朋友分享下经验,谢谢!
问题已经解决,解决步骤开始写在回复里,现在直接写到该位置吧:


第一种:修改配置文件
                   位置:build/target/product/languages_full.mk| languages_small.mk,这两个文件里头,有PRODUCT_LOCALES := en_US en_GB fr_FR it_IT es_ES es_US 这样的片段,其实setting中语言选择列表的数据源头就来源于此,既然找到了源头,那只要在之后加上我们想要的语言即可,比如要加越南语 只要在后面加上 “vi_VN”即可,但细心的同学打开这两个文件比较的时候会发现一个问题:
            里面都有PRODUCT_LOCALES :=这样的片段,只是languages_small.mk的语言要比前者少些,聪明,这就是答案,从命名上也可发现一个full一个small,当我们不需要更多的语言时候,那languages_small.mk里面的语言就可以满足,而且语言少,生成的image所占用的空间也会相对小些,没验证过哈,只是根据同目录下full.mk里的注释“Get a list of languages. We use the small list to save space on smaller devices.”推测的。
        好了,接下来,会有一个问题就是在哪个地方去设置full还是small呢?刚提到一个full.mk的文件,这里面有这样的片段:$(call inherit-product, build/target/product/languages_small.mk),后者路径就是我们要设置的地方。好了,改好后,得整个make下,这个得花些时间,好多模块都是重新编译。
第二种:编码方式修改
   Android里一个listview会对应一个数据数组,那我们只需在这个数组里按格式添加我们所需要的数据就行了,我们的目标是com.android.settings.LocalePicker.java,在该文件133行位置做如下修改:
        mLocales = new Loc[finalSize+1];
        for (int i = 0; i < finalSize ; i++) {
            mLocales = preprocess;
        }
        Locale temp = new Locale("vi", "VN");
        mLocales[finalSize] =new Loc(toTitleCase(temp.getDisplayLanguage(temp)), temp);
    这步做完后setting的语言列表里就有了越南语了,但点击越南语后,界面没发现有什么变化,那是因为android系统没有对越南语写响应的国际化资源文件,你可以自己写应用测试
分享到:
评论

相关推荐

    android4.0 Setting设置 源代码

    在Android系统中,Setting应用是用户与系统设置交互的主要界面,涵盖了各种设备配置选项,如Wi-Fi、蓝牙、显示、声音、账户等。本资源提供了Android 4.0(Ice Cream Sandwich,ICS)版本的Setting模块应用层的源代码...

    android setting中快捷开关

    在Android系统中,设置界面(Setting)是用户与设备交互的重要部分,用于管理各种系统功能和应用设置。本文将深入探讨Android设置中的快捷开关及其实现原理。 首先,Android的设置界面通常包含各种开关,如Wi-Fi、...

    Android-自定义组合控件SettingItem

    总结来说,自定义组合控件`SettingItem`在Android开发中具有很高的实用价值。它简化了设置界面的构建过程,让开发者能够专注于业务逻辑,而不是重复编写相同的布局代码。通过深入理解和实践,我们可以进一步提升...

    Android Studio Setting文件

    Android Studio Setting,包含code style,keymap,插件等设置。一键导入,终身受用。

    android4.2.2 setting 库文件

    在Android开发中,库文件扮演着至关重要的角色,它们提供了许多预编译的功能和组件,开发者可以快速集成到自己的应用程序中,而无需从零开始编写代码。本篇将详细解析"android4.2.2 setting 库文件"所包含的重要组件...

    Android6.0 Settings添加以太网选项

    "Android6.0 Settings添加以太网选项"这个主题意味着我们要在Android 6.0(Marshmallow)的设置应用中新增一个以太网连接的选项,使得设备可以通过有线连接进行网络通信。这通常适用于需要更稳定网络连接的场景,...

    Android的一些常用配置setting

    Android的一些常用配置setting,直接导入到android即可。

    AndroidStudio_setting.jar

    AndroidStudio_setting.jar

    android原生setting分析

    在深入探讨Android原生设置(Setting)的分析之前,我们需要先理解Android系统的基本结构。Android是一个基于Linux内核的操作系统,其应用程序主要由Java编写,使用Android SDK进行开发。原生设置应用(Settings)是...

    Setting中添加是否有屏幕锁

    Android Setting中添加是否有屏幕锁

    android P 9.0添加Ethernet功能(settings+framework).zip

    文件列表 res\xml\network_and_internet.xml res\drawable\ic_ethernet_cell.xml res\values\strings.xml res\xml\ethernet_settings.xml res\xml\ethernet_static_ip.xml src\...

    android studio setting文件

    android studio setting文件,黑色的,以及一些快捷方式。自用请谨慎下载

    Android_SystemSetting源码

    在Android操作系统中,SystemSettings是控制设备全局设置的关键组件,它负责管理用户的偏好设置和系统配置。本篇文章将深入探讨Android SystemSetting的源码,解析其背后的实现原理和功能。 一、SystemSetting概述 ...

    【核心】arison-androidstudio-setting.jar

    arison-androidstudio-setting.jar arison-androidstudio-setting.jar studio配置文件。

    Android8.1-Settings-display里添加控制屏幕旋转方向的菜单.zip

    基于Android8.1,在设置-显示下添加一个控制屏幕显示方向的菜单, 包括0°、90°、180°、270°四个方向, 主要是用ListPreference实现菜单显示。 有实现的Java源码。 代码一验证有效。

    android5.0 系统setting选项变为开发者模式

    在Android 5.0(Lollipop)系统中,开发者选项是一种高级设置,通常隐藏起来以避免普通用户误操作。要将“设置”选项变为开发者模式,我们需要了解Android系统的权限管理和设置框架的工作原理。这里我们将详细探讨...

    Android权限列表permission说明

    Android权限列表permission说明,希望可以帮助到大家

Global site tag (gtag.js) - Google Analytics