我尝试在我的应用程序中实现i18n模型,但由于某种原因,无论我尝试做什么,模型都保持空白。
我使用WEB IDE,我必须使用由其他人创建的项目。项目的结构不同于标准的SAPUI5应用程序(没有manifest.json,没有webapp文件夹,Component.js看起来不同等。)。
我已经尝试过的是在component.js中声明i18n模型并将其绑定到核心:
var i18nModel = new sap.ui.model.resource.ResourceModel({
bundleName:"generated.app.i18n.i18n"
});
sap.ui.getCore().setModel(i18nModel, "i18n");
在component.js的init()函数中(" generated.app"是命名空间)。
而不是我认为:
<m:Page title="{i18n>title}">
.....
</m:Page>
项目结构如下:
-Project_Name
| --view
| --i18n / i18n.properties
| --....
...
我也尝试在控制器中声明模型,但它也没有工作。
在这两种情况下都会创建模型,但它是空的。
i18n.properties
存在且具有值。
我做错了什么?
谢谢。
答案 0 :(得分:1)
在component.js中的init-function期间尝试:
// always use absolute paths relative to our own component
// (relative paths will fail if running in the Fiori Launchpad)
var sRootPath = jQuery.sap.getModulePath("your_application_name");
// set i18n model
var i18nModel = new sap.ui.model.resource.ResourceModel({
bundleUrl : [
sRootPath, mConfig.resourceBundle
].join("/")
});
this.setModel(i18nModel, "i18n");
答案 1 :(得分:0)
没有任何效果,所以我创建了一个新的标准SAPUI5项目,并从旧项目中移动了代码。 i18n模型现在工作正常。