Add Localization to Luigi UI5 Micro-Frontend
- How to add localization to your UI5 micro-frontend
- Step 1
In this step, you will add a function to get the current language from Luigi Client and then update it, so that the language of the UI5 micro-frontend can be changed accordingly.
- Open the
ui5-mf/webapp/controller/Main.controller.jsfile and replace its content with the code below:jsCopysap.ui.define(["luigi/ui5/controller/BaseController"], function (Controller) { "use strict"; return Controller.extend("luigi.ui5.controller.Main", { onInit: function (Controller) { const oModel = new sap.ui.model.json.JSONModel(); oModel.loadData("../model/products.json"); this.getView().setModel(oModel); //This has been added - to update the current language const updateCurrentLanguage = () => { const currentLanguage = LuigiClient.uxManager().getCurrentLocale(); sap.ui.getCore().getConfiguration().setLanguage(currentLanguage); } //This has been added - listener for language changes LuigiClient.addInitListener(updateCurrentLanguage); }, onListItemPress: function (oEvent) { const id = oEvent.getSource().getBindingContext().getProperty("id"); // Getting trasnlated text for the modal text title const title = this.getView().getModel("i18n").getResourceBundle().getText("ModalText"); LuigiClient.linkManager().openAsModal('/home/products/' + id, { title: title, size: 'm' }); } }); });
- Open the
- Step 2
In this step, you will create files with the text that is to be changed within the UI5 micro-frontend.
-
Find the
i18n folder inside webapp. Create a file there calledi18n_de.propertieswith the following content:jsonCopyModalText = Produktdetails Quantity = Anzahl appTitle = ui5 appDescription = Deutsch -
Create another file called
i18n_en.propertieswith the following content:jsonCopyModalText = Product Details appTitle = ui5 appDescription = English Quantity = Quantity
-
- Step 3
- Edit the
ui5-mf/webapp/index.htmlfile by adding the default language (EN):HTMLCopy<script id="sap-ui-bootstrap" src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js" data-sap-ui-theme="sap_fiori_3" data-sap-ui-language='en-US' data-sap-ui-resourceroots='{ "luigi.ui5": "./" }' data-sap-ui-oninit="module:sap/ui/core/ComponentSupport" data-sap-ui-compatVersion="edge" data-sap-ui-async="true" data-sap-ui-frameOptions="allow" data-sap-ui-preload="" ></script>
- Edit the
- Step 4
This step involves the standard process in UI5 for providing translation.
- Edit the
ui5-mf/webapp/view/Main.view.xmlfile by marking the translated target text. Replace the<ObjectAttribute>tag with:XMLCopy<ObjectAttribute text="{i18n>Quantity}: {orderQuantity}" />
- Edit the
- Step 5
Now, your app should be complete and you can run it locally to see if everything works. First, open a terminal/command prompt window and navigate to your project folder.
-
Navigate to the React app and run it:
ShellCopycd react-core-mfand:
ShellCopynpm start -
In another window, navigate to the UI5 micro-frontend and run it:
ShellCopycd ui5-mfand:
ShellCopynpm start -
See your completed app at
http://localhost:3000/. Try changing the language and clicking around. If there are errors, retrace your steps in the tutorial or compare with the finished app on SAP Samples.
-