HarmonyOS鸿蒙NEXT中如何在page页面里面的功能代码中使用资源进行中英文切换

HarmonyOS鸿蒙NEXT中如何在page页面里面的功能代码中使用资源进行中英文切换

page里面的功能代码区如何调用资源string.json,用于自动识别显示中英文。

3 回复

您好,您的问题可以参考这篇帖子的回复:

https://developer.huawei.com/consumer/cn/forum/topic/0201151853685312394

更多关于HarmonyOS鸿蒙NEXT中如何在page页面里面的功能代码中使用资源进行中英文切换的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS NEXT中实现页面中英文切换,需使用资源引用和国际化能力。首先在resources目录下创建en_USzh_CN子目录,分别放置对应语言的string.json文件。例如:

// zh_CN/string.json
{"welcome": "欢迎"}
// en_US/string.json
{"welcome": "Welcome"}

在page页面代码中通过$r('app.string.xxx')引用资源:

Text($r('app.string.welcome'))

切换语言使用i18n.setSystemLanguage()接口,传入'zh-CN''en-US'参数即可动态更新界面显示。

在HarmonyOS NEXT中,可以通过资源引用的方式实现页面中英文切换。以下是具体实现方法:

  1. 首先在resources目录下创建对应的string资源文件:
  • 中文资源:resources/zh_CN/string.json
  • 英文资源:resources/en_US/string.json
  1. 在string.json中定义键值对,例如:
{
  "hello_world": "你好世界"
}
  1. 在page页面的功能代码中,可以通过以下方式引用资源:
// 获取资源管理器
const resMgr = getContext().resourceManager;

// 获取字符串资源
resMgr.getStringValue('hello_world').then(value => {
  console.log(value); // 将根据系统语言显示对应语言的字符串
});
  1. 如果需要动态切换语言,可以使用:
import { Configuration } from '@ohos.intl';

// 设置应用语言
const configuration: Configuration = {
  language: 'en-US' // 或'zh-CN'
};
Configuration.setSystemConfiguration(configuration);

系统会自动根据当前语言环境加载对应的资源文件,无需手动判断。当语言切换时,界面需要重新加载才能显示新语言的资源。

注意:资源文件的命名和路径必须严格遵循规范,系统才能正确识别和加载。

回到顶部