2017-02-16 17 views
1

GWT에서 런타임 로케일을 구현하려고하는데 작동하지 못했습니다. 그물에는 매우 제한된 문서 만 있습니다. 그래서 GWT에서 런타임 로케일을 구현하는 데 도움을주십시오. 런타임 로케일을 구현하는 데 많은 시간을 소비했기 때문에 누군가가 런타임 로케일을 구현하는 방법에 대한 예제를 제공하면 도움이 될 것입니다. 그래서 누군가가 위대한 것이 될 수있는 예제를 사용하여 그것을 구현하는 방법을 설명한다면.GWT에서 런타임 로케일을 구현하는 방법

런타임 로캘이 필요한 이유는 로케일 문자열 (예 : en_US, es_MX 등)을 기반으로하는 날짜 형식, 월 이름 및 평일 이름을 가져 오려면 로캘 문자열을 로캘 문자열에서 가져 오려고합니다. Java에서 가능합니다. 내 지식으로는 GWT가로드 한 기본 로켈이 아닌 다른 로케일에 대한 정보를 얻을 수 없습니다. 컴파일 시간 오버 헤드와 정적 풋 프린트의 증가로 인해 Compile time Locales를 사용하고 싶지 않습니다. http://www.gwtproject.org/doc/latest/DevGuideI18nLocale.html

감사합니다,

Madhusudhan을 -

이 내가 말하는거야 GWT에서의 Locale을 구현하기위한 문서입니다.

+0

당신은 현지화 된 콘텐츠를 표시하는 상수에게 인터페이스를 사용하는 경우, 단지 달에 추가 이름 및 요일을 해당 .properties 파일에 추가하십시오. 그렇지 않다면 앱을 어떻게 번역하고 있습니까? _only_ 주일 및 월 이름 만 영어로 번역하면서 번역 하시겠습니까? – walen

+0

안녕하세요 Walen, 답장을 보내 주셔서 감사합니다. 런타임 로케일을 구현할 수 없으므로 프로퍼티 파일을 사용할 것입니다. 로그인시 선택한 로케일로 서버에 요청을 보내고 속성 파일에서 날짜 형식, 월 및 평일 이름을 가져옵니다. 각 언어마다 자원 번들 구현이 있습니다. 하지만 우리는 Locale에서 그 정보를 얻으려고 했으므로 속성 파일에 월 및 평일 이름을 하드 코딩하고 싶지 않았습니다. 이제 우리는 속성 파일 만 가지고갑니다. – Madhusudhan

+0

동적으로 만들려면 * all * 로캘을 클라이언트 코드에 포함시켜야합니다. 즉, 모든 사용자가 다른 로케일을 "선택할"수 있기 때문에 불필요한 코드를로드해야하며 대부분의 사용자는 기본 언어를 변경하지 않습니다. –

답변

0

난 당신이 런타임 로케일에 대한 하나의 중요한 일을 놓칠 생각 :

[...] GWT에 대한 로케일가 자동으로 [포함됩니다 컴파일시에서 상속 알고있는 모든 로케일 ... ]

는 예를 들어, 당신은 라틴 아메리카 (es_419)에서 사용으로 스페인어의 모든 번역 한 세트를 가지고, 아직 사용자는 아르헨티나 스페인어 (es_AR)와 같은 국가 별 로케일을 선택할 수 있습니다. DateTimeFormatInfoImpl_es_AR DateTimeFormatInfoImpl_es_419를 확장

참고.

하지만 지정된 로케일에 대한 DateTimeFormatInfo 구현 직접 얻어서 로케일의 날짜 형식을 얻을 수 있도록 트릭이있다 :

DateTimeFormatInfo format = new DateTimeFormatInfoImpl_es_MX(); 
format.dateFormatLong(); // d 'de' MMMM 'de' y 
+0

안녕하세요 아담, 답장을 보내 주셔서 감사합니다. 이 옵션을 사용하면 "DateTimeFormatInfo format = new DateTimeFormatInfoImpl_es_MX();" 그것은 일종의 정적, 만약 내가 다른 형식의 로케일에서 날짜 형식을 가지고 그때 그 클래스를 인스턴스화해야합니다. 나는 그것이 역동적이지 않다는 것을 의미한다. 여기에 필요한 것은 로케일 문자열을 전달하여 Locale 객체를 가져 오는 메소드입니다. 내 응용 프로그램에서 로그인 화면에서 사용자가 선택한 로케일을 기반으로 날짜 형식을 표시해야하므로 로케일을 선택하십시오. – Madhusudhan