HarmonyOS鸿蒙Next中如何让App的文字实现国际化,可以让用户自主选择语言,比如德语、韩语、越南语等
HarmonyOS鸿蒙Next中如何让App的文字实现国际化,可以让用户自主选择语言,比如德语、韩语、越南语等
2 回复
【背景知识】
- @ohos.i18n 国际化−I18n:该模块提供系统相关的或者增强的国际化能力,包括区域管理、电话号码处理、日历等。
设置应用的偏好语言: static setAppPreferredLanguage(language:string): void
【解决方案】
根据上述思路,以“通过点击按钮,自主切换中英文”进行说明:
- 在资源文件中添加中/英文的value值
默认语言(base文件)以及中文语言(zh_CN文件)写的是中文,英文语言(en_US文件)写的是英文。因此在偏好语言为英文时,显示en_US文件的内容;偏好语言为中文时,显示zh_CN文件的内容;偏好语言为其他语言时,显示base文件的内容。
- 点击按钮切换语言
- 进入页面后,显示的语言将跟随系统偏好语言进行设置。
- 设置语言状态status,当系统偏好语言为中文时,status设置为-1,英文时,status设置为1。
- 因为本例子中仅有中英两种语言,所以点击按钮后status将切换状态。
代码示例如下:
import I18n from '[@ohos](/user/ohos).i18n';
@Component
@Entry
struct Index {
// 获取当前系统语言。如果为中文,则设置status为-1;如果为英文,则设置status为1
status: number = I18n.System.getSystemLanguage() === "zh-Hans" ? -1 : 1;
build() {
Column() {
// 获取应用偏好语言
Text($r('app.string.module_desc'));
Button($r('app.string.language_button')).onClick(() => {
if (this.status === 1) {
I18n.System.setAppPreferredLanguage('zh-Hans');
} else {
I18n.System.setAppPreferredLanguage('en-Latn-US');
}
this.status = -this.status;
})
}
}
}
更多关于HarmonyOS鸿蒙Next中如何让App的文字实现国际化,可以让用户自主选择语言,比如德语、韩语、越南语等的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中实现App文字国际化,首先在resources
目录下创建不同语言的资源文件,如zh_CN
(中文)、de_DE
(德语)、ko_KR
(韩语)等。然后在代码中使用ResourceManager
加载对应语言的字符串资源。用户选择语言后,通过Configuration
类设置系统语言,并重启应用以应用新语言设置。