尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
HarmonyOS7 资源管理与国际化:多语言适配配置
文章目录前言资源目录结构代码实现在 string.json 里定义文案代码里引用用 $r动态切换语言核心代码图片/布局也能分语言常见坑常见误区小白必踩完整可运行示例多语言适配完整示例代码解析写在最后前言你的 app 想卖到海外或者只是想支持简体/繁体切换就得做国际化i18n。HarmonyOS 的资源管理体系把这件事变得很规范。核心思路一句话别把文字写死在代码里全放进资源文件按语言分目录。这篇文章我把资源配置、多语言切换、以及常见陷阱讲清。资源目录结构HarmonyOS 用resources/下的base默认和带限定词如zh_CN、en_US的目录来区分语言代码实现resources/ ├── base/element/string.json # 默认兜底文案 ├── zh_CN/element/string.json # 简体中文 └── en_US/element/string.json # 英文系统会根据设备语言自动选对应目录。找不到才用base兜底。在 string.json 里定义文案// base/element/string.json{string:[{name:hello,value:Hello},{name:login,value:Login}]}// zh_CN/element/string.json{string:[{name:hello,value:你好},{name:login,value:登录}]}每个文案用name作键不同语言目录里name一致、value不同。代码里引用用 $rText($r(app.string.hello))// 自动按当前语言取对应文案Button($r(app.string.login))$r(app.string.xxx)引用string.json里namexxx的值。不要在代码里写Text(你好)这种字面值否则切换语言它不会变。动态切换语言用户想手动切语言而不依赖系统需要改配置并重启资源上下文核心代码import{i18n}fromkit.LocalizationKitfunctionchangeToEnglish(){i18n.setAppPreferredLanguage(en)// 设为英文// 通常还需重新加载页面或重启 Ability 让资源生效}i18n.setAppPreferredLanguage(en)设置 app 偏好语言。切换后建议引导用户重启 app 或重新加载当前页资源才会刷新。图片/布局也能分语言不止文字连图片、布局都能按语言分目录在zh_CN/media/、en_US/media/放同名不同图引用时一样用$r(app.media.logo)系统自动选。常见坑坑现象解决文案写死在代码切换语言不变一律用$r引用name 拼写不一致取不到报找不到多语言目录 name 必须一致忘了 base 兜底某种语言缺字段崩base 放完整默认文案切换不生效资源没重载切换后重启上下文常见误区小白必踩误区说明文案写死在代码Text(你好)切换语言不变必须一律用$r(app.string.xxx)引用。多语言name不一致不同语言目录里name要对齐否则取不到报找不到。忘了base兜底某种语言缺字段直接崩base 放完整默认文案。切换不重载动态切语言后记得重启上下文让资源刷新。下面这段代码可以直接复制到 DevEco Studio 里运行。建议你边读边敲改一改文末「动手改一改」里的参数亲眼看看效果。完整可运行示例多语言适配用Resource引用字符串切换系统语言自动变。完整示例// 资源引用中文/英文各一份系统语言自动选EntryComponentstruct I18nDemo{build(){Column({space:16}){// $r 会按系统语言取对应资源Text($r(app.string.hello))Text($r(app.string.welcome))}.padding(20)}}配套资源resources/base/element/string.json 与 resources/en_US/element/string.json代码解析{string:[{name:hello,value:你好}]}// 中文{string:[{name:hello,value:Hello}]}// 英文你会看到什么系统切到英文时界面文字自动变成Hello无需改代码——所有文案都走$r(app.string.xxx)资源引用。动手改一改新增zh_TW资源目录体验繁体适配。用$plurals处理「1 条消息 / 3 条消息」复数。用ResourceManager在 JS 逻辑里取字符串不止 UI。写在最后国际化三步走文案进 string.json不写死、按语言分目录、代码用$r引用。图片、布局同理可分目录。再配合i18n动态切换多语言就齐活了。记住一条铁律代码里出现任何用户可见的中文字符串都是国际化的 bug。现在就回去扫一遍你的项目把硬编码文案搬进资源文件。
RELATED

相关推荐

物联网云平台是什么?有什么推荐?

物联网云平台是什么?有什么推荐?

简单来说,物联网云平台就像是物联网体系的“大脑”和“神经中枢”。它向下连接并管理海量的智能终端设备,将设备数据采集、归集到云端;向上则提供标准化的开发工具和接口,赋能各类智能化应用的快速构建。有了它,你无需…

📅 2026/11/10 18:29:59
TLSFOWARD自动化抓包工具

TLSFOWARD自动化抓包工具

证据。把 TLS 与 HTTP 观测结果写进标准化证据包,可以让 HTTPS 问题从模糊描述变成结构化协作:谁发起请求、请求到了哪里、返回了什么、协议层有什么差异、哪些信息已经脱敏。 HTTPS 故障证据包怎么写:基于 TLS 与 HTTP 观测结果的团队协作模…

📅 2026/11/10 18:29:59
MySQL:聚合函数与分组查询实战精讲

MySQL:聚合函数与分组查询实战精讲

1. 为什么需要聚合函数和分组查询?想象你是一家电商公司的数据分析师,老板让你统计最近三个月每个品类的销售总额、平均订单金额和订单数量。如果手动计算,你需要先按品类分类,再逐个求和、求平均——这工作量简直让人崩溃。而MyS…

📅 2026/10/9 10:37:41
MORE NEWS

更多资讯

📰

工地太忙根本没时间复习考试 电力电缆证费用多少能用考前押题过关

工地太忙根本没时间复习考试 电力电缆证费用多少能用考前押题过关 工地太忙根本没时间复习考试,这不是个例,是很多特种作业人员的真实写照。尤其像电力电缆证这类证书,涉及高压、低压、电缆敷设等专业内容,考试难度不小。很多人边打工边备考,时间碎片化…

📰

低学历也能考电力电缆证费用多少?真实经历告诉你怎么操作

低学历也能考电力电缆证费用多少?真实经历告诉你怎么操作 学历不高怕报不上名,这是很多人在报考电力电缆证时的共同烦恼。但事实上,只要符合报考条件,学历并不是唯一门槛。今天就从一个商丘劳务班组负责人的角度,跟大家分享一下电力电缆证的真实经历,告…

📰

漯河高级电工证报名在哪考别再踩坑了

漯河高级电工证报名在哪考别再踩坑了 怕考不过白交培训费?现在就告诉你漯河高级电工证报名在哪考,怎么避坑,怎么稳稳拿证。 你是不是也这样,听说电工证能进工地、能做项目、还能涨工资,结果一打听,发现报名门槛高、流程复杂,还担心交了钱考不过就白搭…

📰

电工证年审换证教程:学历不高怕报不上名?值不值得考?

电工证年审换证教程:学历不高怕报不上名?值不值得考? 你是不是也这样,觉得自己学历不高,怕报不了电工证年审换证?其实不然,电工证年审换证并不看学历,只要你是合法的从业人员,符合岗位要求,就能顺利办理。这篇文章,就是为像你一样的人准备的,不仅…

📰

特种工安许办理怎么准备才能一次通过?全国通用证书怎么考

特种工安许办理怎么准备才能一次通过?全国通用证书怎么考 实操考试心里没底怕挂科,这是很多正在准备【特种工安许办理】的学员最真实的担忧。很多人花了不少钱、时间,结果考试因为一个细节没注意就挂了,特别打击信心。别急,下面的内容是根据多年行业经验…

📰

作业垫电工作业垫山东证全国通用吗?电子证书怎么用?学历不高也能考!

作业垫电工作业垫山东证全国通用吗?电子证书怎么用?学历不高也能考! 你是不是也担心学历不高,报不了电工作业证?别急,我来给你说说作业垫电工作业垫山东证的真相。现在很多人觉得,特种作业证只有高学历的人才能报考,其实不是!只要你符合基本条件,哪…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬