前言
随着应用的持续发展,可能面临着出海的需求,因此应用必须支持多种国家的语言以满足人们的需求。
个人认为适配语言分为两种:
- 跟随系统语言
- 语言内切换语言
示例
下面将以跟随系统语言这种方式作为示例介绍。那么既然适配语言,我们就不能以硬编码形式给 Text、TextView
控件赋值,首先在资源文件中 string.xml
创建两个字段。
<resources>
<string name="app_name">SwitchLanguage</string>
<string name="hello_android">你好 安卓</string>
<string name="my_content">这是一段被翻译的文本</string>
</resources>
在 values
目录中新建一个资源文件
添加 Locale
语言环境
语言选择 en
英文代码后,还可以指定特定区域国家,默认是所有英语国家都使用该字符串资源。
创建完成后 values
会多了一个带有 (en)
的 string.xml
文件,现在只需要赋值默认文件的字段,并修改内容为英文即可。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">SwitchLanguage</string>
<string name="hello_android">Hello Android</string>
<string name="my_content">This is a translated text</string>
</resources>
最后一步在UI上应用字符串资源,如果你使用的是 xml
也是一样的,在 TextView
的 text
属性中指向对应的字段就可以 @string/xxx
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(text = stringResource(id = R.string.hello_android))
Spacer(modifier = Modifier.height(16.dp))
Text(text = stringResource(id = R.string.my_content))
}
运行效果