SAP BTP - Luigi SAP UI5 Application에 다국어 기능 추가하기
Main.controller.js를 아래와 같이 수정해준다.
sap.ui.define(["luigi/controller/BaseController"], function (Controller) {
"use strict";
return Controller.extend("luigi.controller.Main", {
onInit: function (Controller) {
const oModel = new sap.ui.model.json.JSONModel();
oModel.loadData("../model/products.json");
this.getView().setModel(oModel);
const updateCurrentLanguage = () => {
const currentLanguage = LuigiClient.uxManager().getCurrentLocale();
sap.ui.getCore().getConfiguration().setLanguage(currentLanguage);
}
LuigiClient.addInitListener(updateCurrentLanguage);
},
onListItemPress: function (oEvent) {
const id = oEvent.getSource().getBindingContext().getProperty("id");
const title = this.getView().getModel("i18n").getResourceBundle().getText("ModalText");
LuigiClient.linkManager().openAsModal('/home/products/' + id, { title: 'Product Detail', size: 'm' });
}
});
});
언어 확장팩 properties를 만들어주고 내용을 아래와 같이 변경해준다.
i18n_de.properties
ModalText = Produktdetails
Quantity = Anzahl
appTitle=luigi
appDescription= Deutsch
i18n_en.properties
ModalText = Product Detail
Quantity = Quantity
appTitle=luigi
appDescription= English
i18n_ko.properties
ModalText = 제품 상세
Quantity = 수량
appTitle=luigi
appDescription= Korea
index.html을 아래와 같이 변경해준다.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Cache-control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta charset="utf-8" />
<title>UI5 Application: luigi</title>
<script src="https://unpkg.com/@luigi-project/client@latest/luigi-client.js"></script>
<script
id="sap-ui-bootstrap"
src="resources/sap-ui-core.js"
data-sap-ui-resourceroots='{
"luigi": "./"
}'
data-sap-ui-theme="sap_horizon"
data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"
data-sap-ui-async="true"
data-sap-ui-compatVersion="edge"
data-sap-ui-frameOptions="allow"
data-sap-ui-preload=""
data-sap-ui-xx-waitForTheme="true"
data-sap-ui-language="en-US"
data-sap-ui-xx-supportedLanguages="en,de,ko"
></script>
</head>
<body class="sapUiBody">
<div data-sap-ui-component data-name="luigi"></div>
</body>
</html>
Main.view.xml 수정
<ObjectAttribute text="{i18n>Quantity}: {orderQuantity}"></ObjectAttribute>
정상 반영 완료