修改 Android 系统默认语言版本

根据网上的资料有两种方式,

1、在PRODUCT_LOCALES字段里,将要选择的语言放在第一位,如: PRODUCT_LOCALES := en_US zh_CN 默认语言是英语; 
2、在persist.sys.language 和persist.sys.country 里指定语言,如下: PRODUCT_PROPERTY_OVERRIDES := / 
persist.sys.language=zh / 
persist.sys.country=CN build.prop文件的处理是在system/core/init/property_service.c。 


决定使用 1 实现,这样比较简单, 但是我在工程里面找了2~3天都没找着

PRODUCT_LOCALES

环境变量在什么地方,最后在

build/target/product/sdk.mk 里面找到了这个变量,然后修改里面的

PRODUCT_LOCALES 变量
PRODUCT_LOCALES := /
 en_US /
 zh_CN /
 zh_TW

编译,并烧录文件, 发现系统语言版本还是没变化。再认真查看里面的文件,

发现

# Overrides
PRODUCT_BRAND := generic
PRODUCT_NAME := sdk
PRODUCT_DEVICE := generic


这里的 NAME 和编译的时候设置的 NAME 不一致,猜测估计是没有用到这里的

环境变量。

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=ut6410
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================

现在继续查找

PRODUCT_LOCALES

还是没有找到,实在不行了,我查看

build/target/product/core.mk

发现

PRODUCT_BRAND :=
PRODUCT_NAME :=
PRODUCT_DEVICE :=

咋这几项都没写呢? 灵光一闪,是不是这个和 PRODUCT_NAME  没关系呢??

我试着把

PRODUCT_LOCALES := /
 en_US /
 zh_CN /
 zh_TW

添加到这里,重新编译,烧录发现成功了~!

 

第二部分 多语言定制的方法


1、多语言定制的实现步骤

1)进入build/target/product目录,在languages_full.mk或languages_small.mk文件中,修改PRODUCT_LOCALES的值,来定制语言,比如PRODUCT_LOCALES := en_US zh_CN zh_TW en_GB fr_FR it_IT de_DE es_ES;

2)相同目录下,修改full.mk文件的 
$(call inherit-product, build/target/product/languages_small|full.mk)语句来切换所使用的文件;

3)重新编译即可。

2、设置默认语言的实现步骤 
1)进入build/target/product目录,修改文件core.mk的PRODUCT_PROPERTY_OVERRIDES 值,例如,欲修改为默认中文,则增加 
“\ persist.sys.language=zh \ persist.sys.country=CN”,增加后的语句如PRODUCT_PROPERTY_OVERRIDES := \

ro.config.notification_sound=OnTheHunt.ogg \

ro.config.alarm_alert=Alarm_Classic.ogg \ persist.sys.language=zh \ persist.sys.country=CN 
2)重新编译即可。

3、与多语言定制相关的字段及其所在的文件

PREVIOUS_BUILD_CONFIG out/target/product/dream/previous_build_config.mk

NO_FALLBACK_FONT的定义 device/htc/dream-sapphire/BoardConfigCommon.mk

NO_FALLBACK_FONT的调用 frameworks/base/data/fonts/Android.mk

extra_locales CUSTOM_LOCALES nodpi mdpi hdpi build/core/product_config.mk

PRODUCT_PROPERTY_OVERRIDES build/target/product 
build.prop out/target/product/generic/system

 

转载于:https://www.cnblogs.com/MMLoveMeMM/articles/4106616.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值