沉沙
2018-06-26
来源 :
阅读 1853
评论 0
摘要:在SAP UI5中,使用i18n文件的方式来解析变量,本文讲解了使用i18n的大体流程。希望阅读本篇文章以后大家有所收获,帮助大家对HTML5 SAP UI5的理解更加深入。
<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内容如下:
1. sap.ui.define([
2. "sap/ui/core/mvc/Controller",
3. "sap/m/MessageToast",
4. "sap/ui/model/json/JSONModel",
5. "sap/ui/model/resource/ResourceModel"], function (Controller, MessageToast, JSONModel, ResourceModel) {
6. "use strict";
7. return Controller.extend("sap.ui.demo.wt.controller.App", {
8. onInit : function () {
9. var oData = {
10. recipient : {
11. name : "World"
12. }
13. };
14. var oModel = new JSONModel(oData);
15. this.getView().setModel(oModel);
16. var i18nModel = new ResourceModel({//引入i18n文件内容,另一个model
17. bundleName: "sap.ui.demo.wt.i18n.i18n"//bundleName设定了该model的文件
18. });
19. this.getView().setModel(i18nModel, "i18n");//设定视图的i18nmodel为i18nModel
20. },
21. onShowHello : function () {
22. var oBundle = this.getView().getModel("i18n").getResourceBundle();/获取i18nmodel
23. var sRecipient = this.getView().getModel().getProperty("/recipient/name");
24. var sMsg = oBundle.getText("helloMsg", [sRecipient]);
25. MessageToast.show(sMsg);
26. }
27. });
28. });逻辑没变,但我们注意代码中以下几个部分。要定义引用i18n文件,通过setModel来设定,设定的模型传进第一个参数为i18nModel,表示要设定的是i18n模型,后面传入具体的i18n文件,在上一行中定义了其路径。这些操做都在初始化函数中进行设定。
之后我们新定义了一个onShowHello函数,第一句代码获取了i18n模型。注意最重要的部分,定义了sMsg,setText传入的第一个参数为我们在i18n中定义的helloMsg,其中的{0}就用前面定义的sRecipient所取到的值。最后显示的结果就和我们之前相同了。
同时修改视图部分:
1. <mvc:View
2. controllerName="sap.ui.demo.wt.controller.App"
3. xmlns="sap.m"
4. xmlns:mvc="sap.ui.core.mvc">
5. <Button
6. text="{i18n>showHelloButtonText}"
7. press="onShowHello"/>
8. <Input
9. value="{/recipient/name}"
10. description="Hello {/recipient/name}"
11. valueLiveUpdate="true"//动态更新
12. width="60%"/>
13. </mvc:View>使用之前定义的showHelloButtonText,取出Say Hello的值显示在按钮上。在Input按钮中我们可以看到,其定义的value值,将用户输入的value传入{/recipient/name},并在controller中取到该值。这就是使用i18n的大体流程。
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号