Add Localization to Luigi UI5 Micro-Frontend
Enable your micro-frontend to be displayed in multiple languages using the Luigi localization features.
Overview
You will learn
- How to add localization to your UI5 micro-frontend
Prerequisites
Steps
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:JavaScriptsap.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' }); } }); });
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:JSONModalText = Produktdetails Quantity = Anzahl appTitle = ui5 appDescription = DeutschCreate another file called
i18n_en.propertieswith the following content:JSONModalText = Product Details appTitle = ui5 appDescription = English Quantity = Quantity
Edit the
ui5-mf/webapp/index.htmlfile by adding the default language (EN):HTML<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>
This step involves the standard process in UI5 for providing translation.
Edit the β
ui5-mf/webapp/view/Main.view.xmlβfile by marking the translated target text. Replace the<ObjectAttribute>tag with:XML<ObjectAttribute text="{i18n>Quantity}: {orderQuantity}" />
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:
Shellcd react-core-mfand:
Shellnpm startIn another window, navigate to the UI5 micro-frontend and run it:
Shellcd ui5-mfand:
Shellnpm startSee 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.
Resources
Discussion
Share feedback on this tutorial or join the conversation in SAP Community.