zoukankan      html  css  js  c++  java
  • 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的大体流程。

  • 相关阅读:
    rabbitmq channel参数详解
    java中反射知识点总结
    SpringBoot的ApplicationRunner
    ServletContextInitializer添加 servlet filter listener
    如何在Job中获取 IOC applicationcontext
    QRCode.js:使用 JavaScript 生成微信二维码
    SpringBoot整合Quartz
    java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet解决
    javascript简介
    mysql索引
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7230032.html
Copyright © 2011-2022 走看看