HarmonyOS 设置应用语言为英文后,resourceManager取到的字符资源还是默认资源,而非对应的英文资源

调用 getContext(this).getApplicationContext().setLanguage(‘en-US’) 设置应用为英文后,再使用getContext(this).resourceManager.getStringSync获取字符资源,获取到的string资源仍为中文的

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

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

参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-context-V5#contextcreatemodulecontext

参考示例如下:

index.ets代码如下

@Entry
@Component
struct Index {
  private message: string = ''

  aboutToAppear() {
    getContext().getApplicationContext().setLanguage('en-US')
    this.message = getContext(this).resourceManager.getStringSync($r('app.string.hello').id)
  }

  build() {
    Column({ space: 20 }) {
      Text($r('app.string.hello'))
        .fontSize(30)

      Text(this.message)
        .fontSize(30)
    }
    .justifyContent(FlexAlign.Center)
    .height('100%')
    .width('100%')
  }
}
分享
微博
QQ
微信
回复
3天前
相关问题
如何通过资源ID拿到对应资源
7028浏览 • 3回复 待解决
如何动态根据资源名获取资源id
8664浏览 • 1回复 已解决
HarmonyOS 资源适配
86浏览 • 1回复 待解决
module资源无法下载。
873浏览 • 1回复 待解决