HarmonyOS鸿蒙Next中如何让App的文字实现国际化,可以让用户自主选择语言,比如德语、韩语、越南语等

HarmonyOS鸿蒙Next中如何让App的文字实现国际化,可以让用户自主选择语言,比如德语、韩语、越南语等

2 回复

【背景知识】

  • @ohos.i18n 国际化−I18n:该模块提供系统相关的或者增强的国际化能力,包括区域管理、电话号码处理、日历等。

设置应用的偏好语言: static setAppPreferredLanguage(language:string): void

【解决方案】

根据上述思路,以“通过点击按钮,自主切换中英文”进行说明:

  1. 在资源文件中添加中/英文的value值

默认语言(base文件)以及中文语言(zh_CN文件)写的是中文,英文语言(en_US文件)写的是英文。因此在偏好语言为英文时,显示en_US文件的内容;偏好语言为中文时,显示zh_CN文件的内容;偏好语言为其他语言时,显示base文件的内容。

  1. 点击按钮切换语言
  • 进入页面后,显示的语言将跟随系统偏好语言进行设置。
  • 设置语言状态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类设置系统语言,并重启应用以应用新语言设置。

回到顶部