2011-11-22 2 views
2

나는 Sencha-Touch 1.1에서 응용 프로그램을 작성 중이므로 문자열에 현지화를 추가하려고합니다.Sencha-touch 현지화. 상점 또는 전역 JSON 객체 사용

두 가지 방법으로 생각했습니다 (구현되지는 않았습니다).

  1. 각 시간을 변경, 각 언어에 대해 별도의 JSON 파일을 생성합니다 (EN-US.json 등 엘 - GR.json ) 및 데이터를로드 할 프록시저장를 사용 프록시 URL (json 파일 대상). 문제는 나중에 상점에서 데이터를 추출하는 방법을 모른다는 것입니다.

  2. json 파일을 구문 분석하고 객체로 바꾸는 전역 JSON 객체를 만듭니다. 여기에서 문제는 독자/프록시 콤보를 사용하지 않고 JSON 파일을 구문 분석 할 수있는 방법을 찾지 못하는 것입니다.

sencha-touch에서 문자열을 지역화하기위한 최적의 솔루션이 있습니까?

답변

1

일반적인 접근 방식은 모든 문자열을 클래스 수준 속성으로 추출하고 이러한 클래스와 문자열 속성을 무시하는 별도의 로캘 파일을 사용하는 것입니다. 예를 들어

, 나는이 같은 패널이 있다면 :

MyApp.MyPanel = Ext.extend(Ext.Panel, { 

    myPanelContent: 'This is your text to be translated...', 

    initComponent: function(){ 

     Ext.apply(this, { 
      html: this.myPanelContent 
     }); 

     MyApp.MyPanel.superclass.initComponent.call(this) 
    } 

}); 

을 그리고 다음의 라인을 따라 로케일 파일 것 :

Ext.override(MyApp.MyPanel, { 

    myPanelContent: 'This is a translation of my text to another language' 

}); 

을 당신은 다음 올바른 로케일을로드 할 수 있습니다 (보기 자체가로드 된 후) 또는 런타임 중에 동적으로 로케일 파일을로드하십시오 (논리가 각 값을 현재 값으로 갱신해야합니다).

희망이 있으시면 이해 해주세요.

스튜어트

+0

올바른 로케일을로드하는 두 가지 방법을 좀 더 설명 할 수 있습니까? 내 index.html에 추가하면 로케일이 자동으로 변경됩니다. –

+0

예, index.html에 추가하면 포함 된 로켈이 기본값이됩니다. 새