首页 > 其他分享 >【快应用】多语言适配案例

【快应用】多语言适配案例

时间:2023-05-30 14:57:42浏览次数:27  
标签:文件 zh 语言 locale 适配 案例 data hello

 【关键词】

多语言,$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的方式去使用。

<template>

  <!-- Only one root node is allowed in template. -->

  <div class="container">

    <text class="title">{{ $t("hello.text") }}</text>

    <text>{{ $t("hello.content", { txt: data }) }}</text>

  </div>

</template>

 

<style>

  .container {

    flex-direction: column;

    justify-content: center;

    align-items: center;

  }

 

  .title {

    font-size: 100px;

  }

</style>

 

<script>

  import configuration from '@system.configuration'

  module.exports = {

    data: {

      componentData: {},

      data: ""

    },

    onShow(options) {

      console.log(this.$t("hello.text"));

      const locale = configuration.getLocale()

      console.log(locale.language)

      if (locale.language === "zh") {

        this.data = "欢迎使用多语言示例"

      } else if (locale.language === "en") {

        this.data = "welcome to use Multilingual demo"

      }

    },

  }

</script>

截图:

cke_4086.png

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

{

  "package": "com.huawei.language",

  "name": "${message.appName}",

  "versionName": "1.0.0",

  "versionCode": 1,

  "icon": "/Common/logo.png",

  "minPlatformVersion": 1100,

  "features": [],

  "config": {},

  "router": {

    "entry": "Hello",

    "pages": {

      "Hello": {

        "component": "hello"

      }

    }

  },

  "display": {

    "pages": {

      "Hello": {

        "titleBarText": "${hello.helloTitlebar}"

      }

    }

  }

}

截图:

cke_7995.png

 

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

标签:文件,zh,语言,locale,适配,案例,data,hello
From: https://www.cnblogs.com/developer-huawei/p/17443207.html

相关文章

  • 【2023 · CANN训练营第一季】初识新一代开发者套件Atlas 200I DK A2之模型适配工具
    初识新一代开发者套件Atlas200IDKA2之模型适配工具模型适配工具是一款集成数据集管理、模型训练、模型打包为一体的开发者工具套件。通过此工具,可以降低开发者在模型开发过程中对AI专业知识、深度学习框架的学习成本,极大降低开发的难度、复杂度。1.功能介绍工具预置了4个典型模......
  • 设置系统默认语言
    修改文档: device/mediateksample/k65v1_64_bsp/device.mk通常情况下,设置系统默认值,通常在对应项目的device.mk文件下修改系统默认属性即可 ......
  • C语言-考试错题
    C语言基本数据类型--整形,字符型,实行(浮点型) 指针:存放地址值的变量或常量,或者答地址。 &取运算对象的地址。 *取指针变量所指的内容break语句的作用,终止循环语句,在多重循环中,只能退出靠近多重循环的那个语句21.在函数中默认存储类型说明符的变量应该是____c____存储类型。 A......
  • C语言考研简答题汇总
    简述C语言程序的开发步骤及各步的作用编辑,编辑源程序。一般会得到一个扩展名为.c的文件编译,生成二进制的目标代码,即机器代码,由众多个0和1组成的机器指令链接,链接程序,其结果是生成可执行文件运行,程序运行,其结果可能是达到了目的或者出错。简述动态存储变量和静态存储变量的特点静态......
  • C语言的规则总结
    c语言对标识符的命名具有以下的规则,其主要有以下三条:1.标识符必须以大小写英文字母或者下划线作为首字母。2.标识符中只能包含大小写英文字母、数字、下划线,不允许出现如“!、@、#、¥、%、^、&、*、(、)、/、?等其他标点,而且C语言中的标识符不能使用任何中文字符,包括汉字、中文标点。......
  • go语言math包及标准输入
    数值处理取整fmt.Println(1/2,3/2,5/2)fmt.Println(-1/2,-3/2,-5/2)fmt.Println("~~~~~~~~~~~~~~~~~~~~~~~~~~~")fmt.Println(math.Ceil(2.01),math.Ceil(2.5),math.Ceil(2.8))fmt.Println(math.Ceil(-2.01),math.Ceil(-2.5),math.Ceil(-2.8))fmt.Printl......
  • c语言学习day2(定义变量)
    1.常量const是constant的缩写表示常量 浮点数   double 当输入输出整数时使用%d当输入输出浮点型数时使用%lf数据类型 ......
  • net-core Action返回IAsyncEnumerable的案例
    [HttpGet("asyncsale")]publicasyncIAsyncEnumerable<Product>GetOnSaleProductsAsync(){varproducts=_repository.GetProductsAsync();awaitforeach(varproductinproducts){if(product.IsOnSale){......
  • Go语言学习之路
    【阶段1Go语言基础】Day01变量、字符串、运算符Day02Go语言流程控制、数组、切片、切片原理、map、Day03函数基础、错误处理、包管理Day04常用内置包Day05结构体Day06文件I/O操作Day07接口Day08并发编程Day09网络编程Day10webrpc爬虫模板语法【阶段2Go......
  • Falcon猎鹰:史上最强开源大语言模型
    号称“史上最强的开源大语言模型”出现了。它叫Falcon(猎鹰),参数400亿,在1万亿高质量token上进行了训练。最终性能超越650亿的LLaMA,以及MPT、Redpajama等现有所有开源模型。一举登顶HuggingFaceOpenLLM全球榜单:除了以上成绩,Falcon还可以只用到GPT-375%的训练预算,性能就显著......