国际化相关

将文本定义在string中是一个好习惯,就算没有国际化的需要,作为一个资深强迫症患者,布局文件里给的满屏国际化提示是很不爽的


我们每次创建一个工程,布局文件里默认有一个hello world,他是通过values下的strings定义的,在没有别的语言的values文件夹时,就是来找这个文件夹下的strings文件

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">day7_17International</string>
    <string name="hello_world">Hello world</string>
    
</resources>

这样,不论我们将模拟器设置成什么语言,运行后显示的都是hello world


现在在strings里添加一个中文的香蕉

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">day7_17International</string>
    <string name="hello_world">Hello world</string>
    <string name="fruits">香蕉!</string>
    
</resources>
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/fruits" />

此时变动语言设置,无论什么语言环境,都是按照strings里定义的文本显示

这样写就可以做到开发环境里没有提示国际化的标志了,直接在布局里写入一个text会有提示,多了的话看着很别扭




再进一步,如果现在要把app推向别的国家,不一样的语言环境,当改变了setting里的语言设置,相应的文本改变语言,咋搞呢。这就是国际化了

再建一个相应的values文件夹和strings文件

需要什么语言,就建一个配套的文件夹

常见android多国语言文件夹文件汇总如下:

中文(中国):values-zh-rCN
中文(台湾):values-zh-rTW
中文(香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE


在模拟器里,默认的values是英文的,比如现在我们要建一个中文的环境,让hello world显示为 你好,世界

需要一个values-zh-rCN文件夹和strings.xml

<string name="app_name">day7_17国际化</string>
    <string name="hello_world">你好,世界</string>
    <string name="fruits">香蕉!</string>
顺便把上面的标题也改了下,setting里设置成中文来看下效果


这样就显示的中文了

如果你需要这段文本显示日文、韩文什么的,再去添加相应的文件就好



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值