当前位置:   article > 正文

【快应用】多语言适配案例_如何搞多语言适配 脚本

如何搞多语言适配 脚本

 【关键词】

多语言,$t

【问题背景】

快应用平台的能力会覆盖多个国家地区,平台支持多语言的能力后,可以让一个快应同时支持多个语言版本的切换,开发者无需开发多个不同语言的源码项目,避免给项目维护带来困难。使用系统默认的语言,开发者配置多语言的方式非常简单,只需要定义资源与引用资源两个步骤即可

【实现方案】

多语言的实现主要分为两步:

1、资源文件的定义,即资源文件的创建

资源文件用于存放多个语言的业务信息定义,快应用平台使用JSON文件保存资源定义。

在项目源码src目录下定义i18n文件夹,内部放置每个语言地区下的资源定义文件即可。多个资源文件会按一定顺序进行匹配,例如:对于zh-CN,则按zh-CN -> zh -> zh-* -> defaults的顺序匹配,其中zh-*匹配到多个,则按字母升序区分大小写排序。

如下图所示:

zh-CN.json

cke_10022.png

en-US.json

cke_12257.png

2、 多语言的引用方式

2.1、Ux页面中使用;

可以template中使用$t("hello.text")方式直接使用json文件中配置的,也可以通过{{ $t("hello.content", { txt: data }) }}使用变量data的方式去使用。

  1. <template>
  2. <!-- Only one root node is allowed in template. -->
  3. <div class="container">
  4. <text class="title">{{ $t("hello.text") }}</text>
  5. <text>{{ $t("hello.content", { txt: data }) }}</text>
  6. </div>
  7. </template>
  8. <style>
  9. .container {
  10. flex-direction: column;
  11. justify-content: center;
  12. align-items: center;
  13. }
  14. .title {
  15. font-size: 100px;
  16. }
  17. </style>
  18. <script>
  19. import configuration from '@system.configuration'
  20. module.exports = {
  21. data: {
  22. componentData: {},
  23. data: ""
  24. },
  25. onShow(options) {
  26. console.log(this.$t("hello.text"));
  27. const locale = configuration.getLocale()
  28. console.log(locale.language)
  29. if (locale.language === "zh") {
  30. this.data = "欢迎使用多语言示例"
  31. } else if (locale.language === "en") {
  32. this.data = "welcome to use Multilingual demo"
  33. }
  34. },
  35. }
  36. </script>

截图:

cke_4086.png

2.2、Manifest文件中配置,用法是${xxx.xxx}形式,下面展示了在manifest文件中应用名称和页面标题的多语言配置,对应的配置可以看上图的json文件。

  1. {
  2. "package": "com.huawei.language",
  3. "name": "${message.appName}",
  4. "versionName": "1.0.0",
  5. "versionCode": 1,
  6. "icon": "/Common/logo.png",
  7. "minPlatformVersion": 1100,
  8. "features": [],
  9. "config": {},
  10. "router": {
  11. "entry": "Hello",
  12. "pages": {
  13. "Hello": {
  14. "component": "hello"
  15. }
  16. }
  17. },
  18. "display": {
  19. "pages": {
  20. "Hello": {
  21. "titleBarText": "${hello.helloTitlebar}"
  22. }
  23. }
  24. }
  25. }

截图:

cke_7995.png

 欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号