失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android 修改系统默认语言

android 修改系统默认语言

时间:2024-02-21 21:46:35

相关推荐

android 修改系统默认语言

MTK 6.0

之前做一款桌面广告机项目时,有一个修改默认语言的需求,查找FAQ发现MTK有介绍怎么修改,如下:

默认开机语言设置

如果想把某种语言设置为开机默认语言,只需把这个语言的代码放到(Android L PRODUCT_LOCALES后面第一个即可),(Android KK MTK_PRODUCT_LOCALES的第一个即可)。在源码里搜索PRODUCT_LOCALES,如:

PRODUCT_LOCALES := en_US zh_CN fr_FR it_IT es_ES de_DE nl_NL cs_CZ pl_PL

但是会发现好多个.mk文件下都有PRODUCT_LOCALES,那么我们修改那个文件才会有效呢?

FAQ04326 如何打开语言支持计划中的语言中有提到怎么添加支持的语言,如下:

ANDROID L

MTK_PRODUCT_LOCALED这个宏已经没用了,使用的是alps\device\公司名字\项目名称\项目名字.mk中的PRODUCT_LOCALES请添加语言的时候在PRODUCT_LOCALES中添加。

例如我司自己内部的项目代号aubest52那么添加语言路径是(device\mediatek\aubest52\full_aubest52.mk中的PRODUCT_LOCALES后面添加语言)

但是我并没有在device\mediatek目录下找到,例如我修改的deivce\testdd\testdd6737m_35g_m0\full_testdd6737m_35g_m0.mk下的PRODUCT_LOCALES,为什么是这个full_testdd6737m_35g_m0.mk下的呢?因为我编译的时候选择的是这个,就是lunch命令之后选中的。

问题又来了,PRODUCT_LOCALES后面一连串的语言,系统又是怎么选择第一个作为默认开机语言的呢?

其实在out目录下的system/build.prop文件中可以看到ro.product.locale=en-US,这个属性又在buildinfo.sh文件中定义

echo "ro.product.locale=$PRODUCT_DEFAULT_LOCALE"

关于这个PRODUCT_DEFAULT_LOCALE又在build/core/Makefile下找到

PRODUCT_DEFAULT_LOCALE="$(call get-default-product-locale,$(PRODUCT_LOCALES))" \

继续查找get-default-product-locale

#Accepts a whitespace separated list of product locales such as#(en_US en_AU en_GB...) and returns the first locale in the list with#underscores replaced with hyphens. In the example above, this will#return "en-US".define get-default-product-locale$(strip $(subst _,-, $(firstword $(1))))endef

在这里,可以看到是选择第一个。

系统默认语言是英语,如果你要修改为中文,只需把PRODUCT_LOCALES := en_US zh_CN fr_FR it_IT es_ES de_DE nl_NL cs_CZ pl_PL中zh_CN移到最前就可以了

或者你直接将build.sh中echo "ro.product.locale=zh-CN"改为你需要的语言。

如果觉得《android 修改系统默认语言》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。