您的位置:首页 > 移动开发 > Android开发

android 4.4.系统 添加一门新的语言

2016-06-15 15:38 567 查看
备注:此例是在4.4系统的基础上添加孟加拉语,具体添加什么语言 其语言代码都各不一样(bn_BD)

1.在external/icu4c/data/locales/底下新增文件 bn_BD.txt内容如下(不过一般这个文件是有的,有的话就不要加了,这步忽略)

bn_BD{

    Version{"2.0.82.45"}

}

2.在external/icu4c 底下mkdir icuBuild 然后cd external/icu4c/icuBuild  执行命令 ../runConfigureICU Linux

3.进入external/icu4c/icuBuild下make -j8

4.把新生成的icu4c/icuBuild/data/out/tmp/icudt51l.dat 复制到 icu4c/stubdata/下面, 替换icudt51l-all.dat

由于icu版本的差异性  这里的icudt51l.dat只供参考  一般是这样的icudt*.dat

5.把icu4c/icuBuild/bin/底下的gencnval  genrb  icupkg  makeconv 复制到 prebuilts/misc/linux-x86_64/icu-51/底下,替换原来的文件

注:prebuilts/misc/linux-x86_64/icu-51这个路径可能平台不一样 路径会改变 

这里可以在prebuilts下搜索gencnval文件找到路径   find ./prebuilts -name gencnval

6.在icu4c/stubdata/下执行./icu_dat_generator.py

如果提示:

$ANDROID_BUILD_TOP not set! Run 'env_setup.sh'.

解决方法:

手动为ANDROID_BUILD_TOP赋值  export ANDROID_BUILD_TOP = 源码的绝对路径

如果提示:

/home/luwl/share/work/rk3126_kk444/prebuilts/misc/linux-x86_64/icu-51/icupkg: error while loading shared libraries: libicutu.so.51: cannot open shared object file: No such file or directory

['/home/luwl/share/work/rk3126_kk444/prebuilts/misc/linux-x86_64/icu-51/icupkg', '/home/luwl/share/work/rk3126_kk444/external/icu4c/stubdata/icudt51l.dat', '-x', '*', '-d', '/home/luwl/share/work/rk3126_kk444/external/icu4c/tmp']

解决方法:

find /usr/ -name libicutu.so.51 -->得到库的位置

export LD_LIBRARY_PATH=/usr/lib64/libicutu.so.51:$LD_LIBRARY_PATH --》把库所在的目录加载到环境变量中

再次执行 ./icu_dat_generator.py

如果提示

------ Processing '/home/luwl/share/work/rk3126_kk444/external/icu4c/stubdata/icu-data-default.txt'...

Generated ICU data: /home/luwl/share/work/rk3126_kk444/external/icu4c/stubdata/icudt51l-default.dat

则成功

7.在framework/base/core/res/res/ 和 package/app/Setting/res/底下添加values-bn-rBD/文件夹

这个语言包文件夹 可以找客户要 或者找RK要 其他平台的代码上有的话  也可以拷贝过来直接用

8,在build/target/product/language-full.mk里添加了的PRODUCT-LOCALES:=bn_BD

9,make -j8 

10, 打包,烧录  即可看到效果

附:

文件icu_dat_generator.py 371行:

source_dat = os.path.basename(glob.glob(os.path.join(stubdata_dir, "icudt*.dat"))[0])

os.path.basename(path)   查询路径中包含的文件名

path =
8a15
os.path.join('/', 'home', 'work', '123.txt')  #使用目录名和文件名构成一个路径字符串

print(os.path.exists(path))    # 查询文件是否存在

print(os.path.getsize(path))   # 查询文件大小

print(os.path.getatime(path))  # 查询文件上一次读取的时间

print(os.path.getmtime(path))  # 查询文件上一次修改的时间

print(os.path.isfile(path))    # 路径是否指向常规文件

print(os.path.isdir(path))     # 路径是否指向目录文件

glob.glob(r'c:\*.txt')

我这里就是获得C盘下的所有txt文件

glob.glob(r'E:\pic\*\*.jpg')

获得指定目录下的所有jpg文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: