当前位置: 首页 > news >正文

SAP UI5 walkthrough step8 Translatable Texts

在这个章节,我们会将一些文本常量独立出一个资源文件

这样的话,可以方便这些文本常量被翻译成任意的语言

这种国际化的操作,我们一般命名为i18n

新建一个文件i18n.properties

webapp/i18n/i18n.properties (New)

showHelloButtonText=Say Hello
helloMsg=Hello {0}

接着我们将这些常量,绑定到Controller.js

controller/App.controller.js

sap.ui.define(["sap/ui/core/mvc/Controller","sap/m/MessageToast","sap/ui/model/json/JSONModel","sap/ui/model/resource/ResourceModel"
], (Controller, MessageToast, JSONModel, ResourceModel) => {"use strict";return Controller.extend("ui5.walkthrough.controller.App", {onInit() {// set data model on viewconst oData = {recipient : {name : "World"}};const oModel = new JSONModel(oData);this.getView().setModel(oModel);// set i18n model on viewconst i18nModel = new ResourceModel({bundleName: "ui5.walkthrough.i18n.i18n"});this.getView().setModel(i18nModel, "i18n");},onShowHello() {// read msg from i18n modelconst oBundle = this.getView().getModel("i18n").getResourceBundle();const sRecipient = this.getView().getModel().getProperty("/recipient/name");const sMsg = oBundle.getText("helloMsg", [sRecipient]);// show messageMessageToast.show(sMsg);}});
});

另外将view.xml中的常量文本替代

webapp/view/App.view.xml

<mvc:ViewcontrollerName="ui5.walkthrough.controller.App"xmlns="sap.m"xmlns:mvc="sap.ui.core.mvc"><Buttontext="{i18n>showHelloButtonText}"press=".onShowHello"/><Inputvalue="{/recipient/name}"description="Hello {/recipient/name}"valueLiveUpdate="true"width="60%"/>
</mvc:View>

Conventions

  • The resource model for internationalization is called the i18n model.

  • The default filename is i18n.properties.

  • Resource bundle keys are written in (lower) camelCase.

  • Resource bundle values can contain parameters like {0}{1}{2}, …

  • Never concatenate strings that are translated, always use placeholders.

  • Use Unicode escape sequences for special characters.

http://www.lryc.cn/news/259265.html

相关文章:

  • RocketMQ-源码架构二
  • Unity_ET框架项目-斗地主_启动运行流程
  • 自动化测试框架 —— pytest框架入门篇
  • String类详解
  • Linux高级管理--安装MySQL数据库系统
  • 团建策划信息展示服务预约小程序效果如何
  • 一个Redis实例最多能存放多少keys
  • K8S(四)—pod详解
  • shiro Filter加载和执行 源码解析
  • IDEA上传jar包到Maven
  • JavaScript——基本语法
  • 一款最近很火的开源低代码平台
  • vue之代理配置devServer(vue.config.js)片段
  • CTD测试流程
  • 面试经典150题(15-19)
  • Linux下的网络服务
  • 制造业对于IT软硬件监控和摄像头故障监控的需求
  • idea一些报错
  • 【Java系列】详解多线程(二)——Thread类及常见方法(上篇)
  • Android Dialog 弹出时,隐藏 navigation bar
  • LeetCode(Hot100)——1:两数之和
  • 【Qt】报错error:undefined reference to `vtable for Consumer‘的解决方法
  • 【linux系统】用户功能与权限详细总结
  • ELK简单介绍二
  • video 标签 各种属性及所有事件监听
  • TS中断言、转换的应用
  • 【代码随想录算法训练营-第四天】【链表】24,19, 面试题 02.07,142
  • 代理设计模式
  • ubuntu安装docker及docker常用命令
  • STM32-TIM定时器输出比较