on 05-16-2019 11:36 AM
Dear Experts,
we developed a custom SAPUI5-App with one main view and two fragments. We have three i18n-files for different languages.
If I test the i18n translations in my local WebIDE everything is fine. But after we deployed the app in our Fiori launchpad an error occured while loading the i18n files.
If I open the app in the launchpad the main view is loading the correct i18n files and the labels are translated. But if I open the fragments, F12 says that it cannot load the i18n files. When I was analyzing the Network requests I noticed, that the main view is calling the correct path of the i18n file but the fragments are calling another path wich is wrong and after that there is a 404 error (not found).
I tried many things:
Nothing works. And again: It works in my local test environment.
Inside the launchpad the main view is calling the correct path: https://XXX/sap/bc/ui5_ui5/sap/zindivsel_nmf/~A511A000B4A95D2839F3719D216182DE~5/i18n/i18n_it.proper...
Inside the launchpad the fragments are calling the wrong path: https://XXX/sap/bc/ui5_ui5/ui2/ushell/shells/abap/i18n/i18n_it.properties
Did somebody know why this happens and how can I fix it?
Regards,
Tim
Dear Experts,
thanks a lot for your ideas and help. I solved the problem now.
In my case the solution was that I have to put the "addDependent" statement not inside my "createViewSettingsDialog" method rather then in my button event method if I`m clicking the filter / sort button.
So finally it was only one line of code to solve the problem 🙂
Here also my Code for all who have the same issue:
// Create the Dialog
createViewSettingsDialog: function(sDialogFragmentName) {
var oDialog = this._mViewSettingsDialogs[sDialogFragmentName];
if (!oDialog) {
oDialog = sap.ui.xmlfragment(sDialogFragmentName, this);
this._mViewSettingsDialogs[sDialogFragmentName] = oDialog;
}
return oDialog;
},
// Button-Event for Sort
handleSortButtonPressed: function() {
this.getView().addDependent(this.createViewSettingsDialog("zindivsel_nmf.view.SortDialog"));
this.createViewSettingsDialog("zindivsel_nmf.view.SortDialog").open();
},
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
<Module Path> is the id in your manifest.json. not that url
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Tim, Can you try to use below path?
var rootPath = jQuery.sap.getModulePath("<Module Path>");
var i18nModel = new sap.ui.model.resource.ResourceModel({
bundleUrl : [rootPath, '<i18n Path>'].join("/")
});
this.setModel(i18nModel, "i18n");
Regards,
Karthik Arjun
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
jun.wu5 The i18n models are already defined in my manifest.json (see here i18n-manifest.png)
karthikarjun Thanks a lot for your code snippet. I was putting it with my custom path in my coding:
var rootPath = jQuery.sap.getModulePath("/sap/bc/ui5_ui5/sap/zindivsel_nmf");
var i18nModel_it = new sap.ui.model.resource.ResourceModel({
bundleUrl: [rootPath, 'i18n/i18n_it.properties'].join("/")
});
this.setModel(i18nModel_it, "i18n_it");
After that, the following (wrong) path is used in the launchpad (only the second part that is given trough the coding would be right):
https://XXX/sap/bc/ui5_ui5/ui2/ushell/resources/~20190213161400~/sap/bc/ui5_ui5/sap/zindivsel_nmf/i18n/i18n_it.properties
Is it possible to overwrite the first part "sap/bc/ui5_ui5/ui2/ushell/resources/~20190213161400~/" with my second part?
Thanks for your help!
Regards,
Tim
Can you please show the code where you are appending the fragment. You might be able to use the answer from this. https://stackoverflow.com/questions/25636637/localizationi18n-in-sapui5-for-fragment-xml-file-in-not...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jakob,
thanks for your answer. I attached my coding to this answer as a screenshot including the structure of my app to give you a better understanding of what I`m doing.
Explanation to the screenshots:
FYI: Maybe there is something obsolet in my coding because I tried many things in case of my issue 😉
Is there anything wrong with that coding? If yes, I`m wondering why it works in my local test environment.
If I have a look at the coding of your recommended link: I think there is nothing new compared to my coding. What do you think?
Thanks for your help!
Regards,
Tim
2-create-basic-fragment-container.png
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.