• HTML5开发移动web应用——SAP UI5篇(6)


    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">··<span style="white-space:pre">	</span>在SAP UI5中。使用i18n文件的方式来解析变量。对于以后开发不同的语言包,也有相应不同的i18n文件。

    我们先来大体看一下在SAPUI5中。i18n是怎样使用的。</span>

    首先我们建立一个文件,文件名称为i18n.properties。

    在当中编写例如以下内容:

    showHelloButtonText=Say Hello

    helloMsg=Hello {0}

    这里事实上定义了几个变量或者方法的值。要调用他们,我们首先改动controller内容例如以下:

    sap.ui.define([
       "sap/ui/core/mvc/Controller",
       "sap/m/MessageToast",
       "sap/ui/model/json/JSONModel",
       "sap/ui/model/resource/ResourceModel"], function (Controller, MessageToast, JSONModel, ResourceModel) {
       "use strict";
       return Controller.extend("sap.ui.demo.wt.controller.App", {
         onInit : function () {
             var oData = {
                recipient : {
                   name : "World"
                }
             };
             var oModel = new JSONModel(oData);
             this.getView().setModel(oModel);
             var i18nModel = new ResourceModel({//引入i18n文件内容。还有一个model
                bundleName: "sap.ui.demo.wt.i18n.i18n"//bundleName设定了该model的文件
             });
             this.getView().setModel(i18nModel, "i18n");//设定视图的i18nmodel为i18nModel
          },
          onShowHello : function () {
             var oBundle = this.getView().getModel("i18n").getResourceBundle();/获取i18nmodel
             var sRecipient = this.getView().getModel().getProperty("/recipient/name");
             var sMsg = oBundle.getText("helloMsg", [sRecipient]);
             MessageToast.show(sMsg);
          }
       });
    });
    逻辑没变,但我们注意代码中下面几个部分。要定义引用i18n文件,通过setModel来设定。设定的模型传进第一个參数为i18nModel,表示要设定的是i18n模型。后面传入详细的i18n文件,在上一行中定义了其路径。这些操做都在初始化函数中进行设定。

    之后我们新定义了一个onShowHello函数,第一句代码获取了i18n模型。注意最重要的部分,定义了sMsg,setText传入的第一个參数为我们在i18n中定义的helloMsg,当中的{0}就用前面定义的sRecipient所取到的值。最后显示的结果就和我们之前同样了。

    同一时候改动视图部分:

    <mvc:View
       controllerName="sap.ui.demo.wt.controller.App"
       xmlns="sap.m"
       xmlns:mvc="sap.ui.core.mvc">
       <Button
          text="{i18n>showHelloButtonText}"
          press="onShowHello"/>
       <Input
          value="{/recipient/name}"
          description="Hello {/recipient/name}"
          valueLiveUpdate="true"//动态更新
          width="60%"/>
    </mvc:View>
    使用之前定义的showHelloButtonText,取出Say Hello的值显示在button上。

    在Inputbutton中我们能够看到。其定义的value值,将用户输入的value传入{/recipient/name}。并在controller中取到该值。这就是使用i18n的大体流程。

  • 相关阅读:
    MySQL备份与恢复-innobackupex
    MySQL备份与恢复-mysqldump备份与恢复
    font-size对展示的影响
    IE8及以下的数组处理与其它浏览器的不同
    正则表达式处理的基本步骤
    str += "a" + "b" & str = str + "a" + "b"的性能比较
    为非ajax请求绑定回调函数的方法
    ajax操作的链式写法
    各种控制元素显示和隐藏的方法优劣
    跟鸟哥学到的一招
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7230032.html
Copyright © 2020-2023  润新知