HarmonyOS 鸿蒙Next APP 开发,如何让 APP 里显示的语言不跟随系统语言?

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next APP 开发,如何让 APP 里显示的语言不跟随系统语言?

目前鸿蒙开发 app 时,自带多语言的设置,但是通过调用$r()返回的语言都是跟随手机的系统语言设置。但是有时候,用户虽然是英文系统,但是在 APP 里还是使用中文界面。这个地方如何切换,还是默认自带的多语言是不支持这样的操作方式呢?

11 回复

楼主您好,$r()可以访问应用资源和系统资源,"$r('app.type.name')"形式访问的是应用资源,若你想在英文环境下显示中文,可以将如下配置中对应资源设置为中文的即可。

cke_2345.png

感谢您的解答。但是咱们Harmony的 APP 就无法让用户自己随意切换 APP 的语言,而不用管系统本身的语言吗?因为使用我们的APP不少是国外的华人或留学生,他们的系统本身是英文的,因为当地的语言都是英文,很多 APP 也都是英文的,但是使用国内的 APP大部分是单独切换到中文使用,同时他们也会介绍当地的人使用,当地人就是用的英文。不知道是否有方案。

你也可以查询系统语言呀,根据系统语言的不同来布局你的应用,资源可以应用自己定义,还有什么疑问吗。 文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/arkts-environment-0000001473537710-V2

i18n.System.setAppPreferredLanguage('zh-Hant'); // api11的方法 设置应用当前的偏好语言为 "繁体中文"
楼主解决了吗,我也是想在APP里面切换自己的语言而不跟随系统设置
可以试试只保留 base 文件夹, 而把其他有关语言的文件夹如 en_US, zh_CN 等文件夹删除

HarmonyOS的社区里有很多技术大牛分享经验,学到了很多有用的知识。

找不到相应的语言文件夹, 默认使用 base 里的资源. 你可以把想国际化的字符串在文件里写上, 不想国际化的部分, 就只在 base 文件夹里有

楼主解决了吗?有没有跟安卓一样app单独设置的?用这个‘你也可以查询系统语言呀,根据系统语言的不同来布局你的应用,资源可以应用自己定义,还有什么疑问吗。'  方案也太麻烦了

在HarmonyOS鸿蒙Next APP开发中,若希望APP内显示的语言不跟随系统语言,可以通过以下方式实现:

  1. 配置资源文件:为不同的语言创建独立的资源文件夹(如values-zhvalues-en等),并在这些文件夹中放置对应语言的字符串资源文件(strings.xml)。这样,APP就可以根据设置加载指定的语言资源。

  2. 设置语言偏好:在APP内部维护一个语言偏好设置,当用户更改语言偏好时,APP读取该设置并动态加载相应的语言资源。这通常需要在APP启动时或在用户更改语言设置时进行资源重新加载。

  3. 覆盖系统语言设置:在APP的初始化过程中,通过编程方式覆盖系统默认的语言设置,强制APP使用指定的语言资源。这可以通过修改Locale对象并应用到当前线程和上下文来实现。

  4. 持久化语言偏好:将用户的语言偏好设置持久化存储(如SharedPreferences、数据库等),以便在APP重启后仍能恢复用户的语言选择。

请注意,实现上述功能时,需确保APP的兼容性和用户体验,避免因为语言切换导致的问题。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部