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

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

阅读 406
1 个回答

需要使用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%')
  }
}
logo
HarmonyOS
子站问答
访问
宣传栏