2014-11-21 2 views
0

"완전히"SAPUI5에서 사용되는 언어를 변경하는 방법을 찾고 있습니다.SAPUI5 언어를 변경하는 방법은 무엇입니까?

new sap.m.Switch({ 
    state : false, 
    customTextOn : "EN", 
    customTextOff : "DE", 
    visible : true, 
    change : [ function(oEvent) { 
     var control = oEvent.getSource(); 
     var state = control.getState(); 
     if (state) { 
      i18nModel = new sap.ui.model.resource.ResourceModel({bundleUrl:"i18n/i18n.properties", bundleLocale:"en"}); 
      sap.ui.getCore().setModel(i18nModel, "i18n"); 
     } else { 
      i18nModel = new sap.ui.model.resource.ResourceModel({bundleUrl:"i18n/i18n.properties", bundleLocale:"de"}); 
      sap.ui.getCore().setModel(i18nModel, "i18n"); 
     } 
    }, this ] 
}), 

즉시에 "국제화>"모델 바운드 텍스트를 변경합니다 스위치 버튼을 누르면 : 문제, 작업 예제로하지 보인다 속성 파일을 사용하여 언어를 변경합니다. 문제는 oData 서비스의 메타 데이터 (특히 lables)의 텍스트도 있다는 것입니다.

바인딩 경로는 다음과 같이 수 :

{modelName>/#Entity/Attribute/@sap:label} 

이의 언어는 처음 로그온시에 정의됩니다. 이제 언어 변경 후 메타 데이터 (및 데이터)를 다시로드하는 방법을 찾고 있습니다.

그렇게 할 방법이 있습니까? 아니면 로그 아웃하고 다시 로그인 할 수있는 유일한 방법입니까? 당신은 다시 $metadata?sap-language=de를 통해 독일어에 대한 OData 메타 데이터를 검색 할 ODataModel

var oModel = new sap.ui.model.odata.ODataModel("/your_odata_service", 
        {metadataUrlParams:{"sap-language":"de"}} 
      ); 

이 방법을 REINIT해야 할 수도 있습니다

답변

2

.

그냥 내 마음의 맨 위에 있습니다. 시도해 볼 수 있습니다.

1

감사! smartforms/smartfields가 레이블에 사용하는 언어를 변경하는 문제가있었습니다. 레이블이 metadata.xml 파일에 명시된 언어를 제어 할 수 없었기 때문입니다. Allen 솔루션이 나를 위해 일했습니다! 모델이 정의된다 ("", 이름없는) 원칙 또는 주였다 나는 SAP 웹 IDE를 사용하고 그리고 난이 줄을 추가 manifest.json을 파일을 변경 :

"models": { 
     "i18n": { 
      "type": "sap.ui.model.resource.ResourceModel", 
      "settings": { 
       "bundleName": "mpo.i18n.i18n" 
      } 
     }, 
     "": { 
      "dataSource": "mainService", 
      "settings": { 
       "defaultBindingMode": "TwoWay", 
       "metadataUrlParams": { 
        "sap-documentation": "heading", 
        "sap-language": "en" 
       } 
      }, 

감사 알렌!

관련 문제