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

news2025/2/2 17:58:05

 【关键词】

多语言,$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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

子串分值--子串分值和 模拟,找规律

子串分值和 n有十万&#xff0c;需要找规律&#xff0c;O(n^2)不满足要求 分析样例&#xff1a; Ababc 01234 长度是n5 索引下标-对应字符 0A贡献 112 a;ab;---22*1 next a 2&#xff1b; pre a -1 1b贡献 112 b;ba;---42*2 next b 3&#xff1b; pre b -1 2a贡献 1113…

2023年测试前景?测试开发工程师养成记,开发企业级测试平台...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试开发&#xff…

IDS 和 IPS 日志监控

什么是IDS/IPS 入侵检测系统 &#xff08;IDS&#xff09; 和入侵防御系统 &#xff08;IPS&#xff09; 是监视组织网络中的流量以检测和防止恶意活动和策略违规的网络组件。 入侵检测系统&#xff08;IDS&#xff09;和入侵防御系统&#xff08;IPS&#xff09;可以说是企业…

C语言学习分享(第八次)------数据的存储

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C语言学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C语言知识   &#x1f51d;&#x1f51d; 数据的存储 1. 前言&#x1f6a9;2…

现代化智慧档案室建设图文推介

1、防火。建立档案库房防火制度&#xff0c;档案库房附近严禁存放易燃、易爆物品&#xff0c;库房内严禁吸烟&#xff0c;并备有灭火器&#xff0c;经常进行检查更换。 主要设备为&#xff1a;烟雾探测器和感温探测器和七氟丙烷灭火系统。 2、防潮。库房内备有温湿度计&#x…

GB28181 对接海康平台,解决音视频卡顿问题

GB28181 对接海康平台,解决音视频卡顿问题 一、概述二、问题分析1、设备对比分析2、抓包对比分析3、验证分析结果三、总结四、讨论一、概述 设备使用GB28181协议对接海康平台时,发现音频和视频存在卡顿现象,不是一直卡顿,有时候卡有时候不卡,但是卡顿的时候音视频一起卡顿…

炫技操作--递归实现翻转链表(java)

递归实现链表的逆序 leetcode 206题。 翻转链表递归解法普通方式实现链表翻转链表专题 leetcode 206题。 翻转链表 leetcode链接用于测试 题目&#xff1a;描述 将一个链表翻转&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 递归解法 解题思路…

chatgpt赋能python:Python中删除的SEO

Python中删除的SEO Python是一个强大的编程语言&#xff0c;它广泛应用于各种领域&#xff0c;包括SEO。在SEO领域中&#xff0c;Python可以用来处理各种数据&#xff0c;包括删除不必要的数据。本文将介绍如何在Python中删除SEO数据。 什么是SEO数据&#xff1f; SEO是搜索…

代码创造的欢乐世界-通用人工智能让儿童熟练应用编程

想要复杂的参考这一篇&#xff0c;使用云平台即可完成&#xff1a; 美美的圣诞树画出来-CoCube- 把圣诞树换成六一儿童节主题的就可以啦。 这一篇是使用chatgpt类应用&#xff0c;给出关键提示词&#xff0c;代码自动生成哦。 神十六发射成功&#xff0c;科技工作者博士学位…

python接口自动化使用requests库发送http请求

目录 前言一、requests库二、HTTP 请求方法三、发送GET请求四、发送POST请求五、获取响应数据六、高级操作 6.1文件下载6.2文件上传6.3SSL证书验证6.4保持会话6.5requests封装总结 前言 今天笔者想和大家来聊聊python接口自动化如何使用requests库发送http请求&#xff0c;废…

【JavaSE】Java基础语法(三十七):Java 中的 String 类(源码级别)

文章目录 1. 构造方法1.1 String()1.2 String(String original)1.3 String(char[] chars)1.4 String(char数组,起始下标,长度)1.5 String(byte数组)1.6 String(byte数组,起始下标,长度)1.7 String(StringBuffer buffer)1.8 String(StringBuilder builder) 2. 普通方法2.1 char …

【Python教学】Python兼职有哪些?给你们分享一下最适合学生党/工作党的Python兼职攻略以及接私活经验

文章目录 前言一、做兼职的优势二、兼职种类三、基本技能要求四、平台和渠道五、案例分析六、做兼职注意事项总结 前言 Python是一种高级编程语言&#xff0c;它具有简单易学、代码可读性高、功能强大等特点&#xff0c;被广泛应用于数据分析、人工智能、Web开发等领域。Pytho…

修改mysql密码与mac中mysql的启动与终止

目录 修改mysql密码 1.进入你的mysql文件下的bin目录下&#xff1a; 2.修改mysql密码 mysql的启动与终止&#xff08;mac&#xff09; 修改mysql密码 1.进入你的mysql文件下的bin目录下&#xff1a; 如果不知道自己电脑上的mysql在哪里的话&#xff0c;输入&#xff1a; …

Redis7实战加面试题-高阶篇(布隆过滤器BloomFilter,缓存预热+缓存雪崩+缓存击穿+缓存穿透)

布隆过滤器BloomFilter 先看看大厂真实需求面试题反馈 1.现有50亿个电话号码&#xff0c;现有10万个电话号码&#xff0c;如何要快速准确的判断这些电话号码是否已经存在? 2.判断是否存在&#xff0c;布隆过滤器了解过吗? 3.安全连接网址&#xff0c;全球数10亿的网址判断 …

Java 多线程共享数据引发的问题

一、多线程并发情况下&#xff0c;线程不安全​​ 1、使用多线程实现银行取钱​​ package theads;/*** ClassName: TestBank* Description: TODO* Author: HLX* date: 2023/5/29 14:53* Version: V1.0*//*** 线程不安全&#xff1a; 取钱* <p>* 逻辑&#xff1a;* 连取…

更改测试用例执行顺序的几种自动化方法

前言 在自动化测试中&#xff0c;自动化测试用例设计原则就是执行过程时不能存在依赖顺序&#xff0c;那么如果测试用例需要按照指定顺序执行&#xff0c;这个时候应该怎么做呢&#xff1f;目前单元测试框架中unittest没有办法改变测试用例的执行顺序&#xff0c;但是另一个单…

一顿操作,我成为了年薪40W+的测试开发,人麻了...

前情提要 我的第一份工作就是拿的8000多&#xff0c;主要以功能测试为主。我用了大概6年的时间&#xff0c;成为了年薪40W的测试开发。回顾我从功能测试到测试开发的成长路径&#xff0c;基本上是伴随着“3次能力飞跃”实现的。 第一家入职的时候是一家小公司 刚开始入行的时…

发改委强化电力需求侧管理,缓解电力系统峰值压力

安科瑞 耿敏花 摘要&#xff1a;近年来全国用电负荷特别是居民用电负荷的快速增长&#xff0c;全国范围内夏季、冬季用电负荷“双峰”特征日益突出&#xff0c;恶劣气候现象多发增加了电力安全供应的压力。具有随机性、波动性、间歇性特征的可再生能源大规模接入电网对电力系统…

WebrtcNode publish 流程

WebrtcNode publish 流程 1. AmqpClient - RpcServer New message received AmqpClient - RpcServer New message received {method: publish,args: [67f9309ce6e645fc8a4bb9cac6406eb2,webrtc,{transportId: 67f9309ce6e645fc8a4bb9cac6406eb2,tracks: [Array],controller: …

Spring注解开发——bean的作用范围与生命周期管理

文章目录 1.bean管理1.1 bean作用范围Scope注解 1.2 bean生命周期PostConstructPreDestroy 2.小结 1.bean管理 1.1 bean作用范围 Scope注解 不写或者添加Scope(“singleton”)表示的是单例 如何配置多例&#xff1f; 在Scope(“prototype”)表示的是多例 1.2 bean生命周…