HarmonyOS 设置偏好语言后,resourceManager.getStringByNameSync获取字符串没有根据语言转换

通过i18n.System.setAppPreferredLanguage()设置应用的偏好语言(英语)后,moduleContext.resourceManager.getStringByNameSync()动态获取字符串还是跟手机系统语言(中文)。

HarmonyOS
2024-08-14 15:49:39
浏览
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
put_get

使用的CreateModuleContext。context不会跟随系统变化,需要重新创建,这个是规格。

分享
微博
QQ
微信
回复
2024-08-14 21:11:33
wx63994592d0431

需要重新创建context ,并更改这个context 获取到的 resourceManager 的 configuration 中的语言
为你设置 的新语言,最后拿到更新后的 resourceManager 去获取字符串

let res = $r("app.string.xxxx")
let resManager = getContext().createModuleContext("main").resourceManager
let conf = resManager.getOverrideConfiguration()
let abbr = LangUtils.currentLangAbbr
conf.locale = abbr
let overrideResource = resManager.getOverrideResourceManager(conf)
return overrideResource.getStringSync(res)
分享
微博
QQ
微信
回复
8天前
相关问题
HarmonyOS 瀑布流布局获取字符串高度
60浏览 • 1回复 待解决
HarmonyOS 日期时间与字符串转换
39浏览 • 1回复 待解决
转换整个字符串字符为小写
350浏览 • 1回复 待解决
HarmonyOS将对象转换字符串的方法
589浏览 • 1回复 待解决
转换整个字符串字符为大写
469浏览 • 1回复 待解决
如何将文件转换字符串
418浏览 • 1回复 待解决
eTS中如何进行时间与字符串转换
4223浏览 • 1回复 待解决
检查字符串是否以给定的字符串开头
535浏览 • 1回复 待解决
如何将字符串转换为浮点数。
416浏览 • 1回复 待解决
HarmonyOS 字符串显示异常
462浏览 • 1回复 待解决
HarmonyOS字符串替换问题
870浏览 • 1回复 待解决
json字符串与自定义class结构的转换
2128浏览 • 1回复 待解决