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
微信
回复
2024-12-14 21:09:52
相关问题
HarmonyOS语言字符串转换
1283浏览 • 1回复 待解决
HarmonyOS 瀑布流布局获取字符串高度
1095浏览 • 1回复 待解决
HarmonyOS 加密字符串格式转换
1107浏览 • 1回复 待解决
HarmonyOS 日期时间与字符串转换
2632浏览 • 1回复 待解决
HarmonyOS 摘要数据转换16进制字符串
1081浏览 • 1回复 待解决
转换整个字符串字符为小写
1107浏览 • 1回复 待解决
转换整个字符串字符为大写
1214浏览 • 1回复 待解决
如何将文件转换字符串
1466浏览 • 1回复 待解决
HarmonyOS将对象转换字符串的方法
2103浏览 • 1回复 待解决