我正在这样增强我的应用程序中的主要i18n文件:
var i18n = this.getCallbackAPI().getView().getModel('i18n');
i18n.enhance({bundleUrl:"/sap/bc/ui5_ui5/sap/myWorkspace/webapp/app/i18n/i18n.properties"});
bundleUrl中有两个不同的.properties文件:
i18n_de.properties
i18n_en.properties
由于某种原因,即使URL中将语言明确设置为德语,应用程序也只能访问英语文件。
我觉得我缺少一些可以动态使用正确文件的部分。
(在主应用程序中,还有两个.properties文件,并且该应用程序始终使用正确的语言。)
我想念什么?
答案 0 :(得分:0)
尝试将此行添加到您的组件文件中: oModel是应用程序的主要模型
oModel.aUrlParams[0] = "sap-language=" +
sap.ui.getCore().getConfiguration().getLanguage();
答案 1 :(得分:0)
从那里读取文档:https://sapui5.hana.ondemand.com/#/api/sap.ui.model.resource.ResourceModel/methods/enhance
似乎您可以在初始化时将语言环境传递给包
如果您尝试
var i18n = this.getCallbackAPI().getView().getModel('i18n')
i18n.enhance({
bundleUrl:"/sap/bc/ui5_ui5/sap/myWorkspace/webapp/app/i18n/i18n.properties",
bundleLocale:"de"
})
您得到更好的结果吗?如果可以,您可以检查返回的内容是什么
sap.ui.getCore().getConfiguration().getLocale()
答案 2 :(得分:0)
您也可以尝试在资源模型中找到一个URL。专注于: oI18nCustom.getResourceBundle()。oUrlInfo.url 。
var oI18nBase = this.getModel("i18n");
var oI18nCustom = this.getModel("i18nCustom");
oI18nBase.enhance({bundleUrl: oI18nCustom.getResourceBundle().oUrlInfo.url });
在增强应用清单中,您必须指定自定义i18n模型,例如:
"models": {
...
"i18nCustom": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "namespace.path.extensionApp.i18n.i18n"
}
}
...
}