【SAPUI5】라이브러리의 messagebundle을 어플리케이션으로 사용하는 방법

소개



【SAPUI5】i18n을 라이브러리화한다 의 기사에서는, 라이브러리의 i18n 파일을 다른 앱에 넣는 방법을 소개했습니다. 더 좋은 방법이 있다는 것을 알았으므로 쓰고 싶습니다.

messagebundle이란?



라이브러리 단위로 가지고 있는, 번역 가능한 텍스트의 파일입니다. 쓰기는 i18n과 동일합니다.


messagebundle의 텍스트를 응용 프로그램에서 호출하려면



컨트롤러에서 호출하는 방법



컨트롤러 안에서만 사용하고 싶다면이 방법은 간단합니다.
sap.ui.getCore().getLibraryResourceBundle("ライブラリ名(フルパス)").getText("テキストID")참고 : API 참조
        onSayHello: function () {
            //ライブラリからテキストを取得
            var sText = sap.ui.getCore().getLibraryResourceBundle("demo.library.zdemolibrary").getText("SAY_HELLO");
            MessageBox.alert(sText);
        }

결과


보기에서 호출하는 방법



뷰에서 호출하는 방법은 두 가지입니다.

  • 【SAPUI5】i18n을 라이브러리화한다과 마찬가지로 응용 프로그램 본문의 i18n과 병합합니다
  • 독립 자원 모델 만들기

  • 애플리케이션 본체의 i18n과 병합



    Component.js에서 다음과 같이 씁니다.
                //ライブラリのリソースを取り込み
                var oBundle = sap.ui.getCore().getLibraryResourceBundle("demo.library.zdemolibrary");
                this.getModel("i18n").enhance(oBundle);
    

    뷰는 다음과 같습니다.
    <Text text="{i18n>SAY_HELLO}"/> 
    

    독립적인 리소스 모델 만들기



    manifest.json에 리소스 모델을 추가합니다. 아래에서는 "msg"라는 이름으로 추가합니다.
    이렇게하면 응용 프로그램의 i18n과 라이브러리에서 동일한 텍스트 ID를 사용해도 문제가 없습니다.
            "models": {
                "i18n": {
                    "type": "sap.ui.model.resource.ResourceModel",
                    "settings": {
                        "bundleName": "demo.Train_17_UseLibraryText.i18n.i18n"
                    }
                },
                "meg": {
                    "type": "sap.ui.model.resource.ResourceModel",
                    "settings": {
                        "bundleName": "demo.library.zdemolibrary.messagebundle"
                    }               
                }
    

    뷰는 다음과 같습니다.
    <Text text="{meg>SAY_HELLO}"/>
    

    좋은 웹페이지 즐겨찾기