간단하다.
첨부파일 : eclipse, GWT 버전 2.40 i18nProject.zip
1. 상수 or 메세지 생성하기.
첨부파일 : eclipse, GWT 버전 2.40 i18nProject.zip
1. 상수 or 메세지 생성하기.
1. 상수 or 메세지를 정의할 파일을 생성한다.
ex) kr.or.jhpark.client.MessageConst.properties ( package 위치 )
2. MessageConst.properties와 연동할 java 파일 생성한다.
ex) kr.or.jhpark.client.MessageConst.java
3. 상수(Constants) 나 메시지(Messages)를 사용하기 위해서는 국제화 (i18n)을 inherits 해야한다.
ex)Project.gwt.xml 파일에 i18n를 inherits한다.
<inherits name="com.google.gwt.i18n.I18N"/>
4.GWT.create를 이용해서 메세지와 연동한 java interface를 생성한다.
ex) MessageConst mc = GWT.create(MessageConst.class);
window.alert(mc.name());
code로 작성하게되면
1. 번
MessageConst.properites를 생성하고 내용을 입력한다.
name=jhpark
ex) kr.or.jhpark.client.MessageConst.properties ( package 위치 )
2. MessageConst.properties와 연동할 java 파일 생성한다.
ex) kr.or.jhpark.client.MessageConst.java
3. 상수(Constants) 나 메시지(Messages)를 사용하기 위해서는 국제화 (i18n)을 inherits 해야한다.
ex)Project.gwt.xml 파일에 i18n를 inherits한다.
<inherits name="com.google.gwt.i18n.I18N"/>
4.GWT.create를 이용해서 메세지와 연동한 java interface를 생성한다.
ex) MessageConst mc = GWT.create(MessageConst.class);
window.alert(mc.name());
code로 작성하게되면
1. 번
MessageConst.properites를 생성하고 내용을 입력한다.
name=jhpark
2. 번
public interface MessageConst extends com.google.gwt.i18n.client.Messages{
public interface MessageConst extends com.google.gwt.i18n.client.Messages{
String name();
}
3.번 ,4.번은 이미 위에서 정의됨.
3.번 ,4.번은 이미 위에서 정의됨.
2. 국제화
이미 상수 or 메세지 정의를 통해 각각의 메세지를 정의하였다.
그럼 국가 설정 및 각각의 언어에 맞게 메세지를 정의하면 되는것이다.
MessageConst.properties를 국가별로 확장하면 되는것이다.
한국 : MessageConst_ko_KR.properties
미국 : MessageConst_en_US.properties
영어 : MessageConst_en.properties
( package : kr.or.jhpark.clinet 에 위치한다)
ko는 ISO언어코드 , KR은 ISO국가코드이다.
위와 같이 properites가 4개로 존재하게 되면 MessageConst_ko_KR ( or MessageConst_en_US), MessageConst_en.properties, MessageConst.properties 순서로 우선순위를 갖는다.
각각 설정된 언어코드가 어떤 종류가 있는지 GWT에 알려줄 필요가 있다. 그러기 위해서는 모듈에 추가해야한다.
project.gwt.xml의 module 사이에 추가하면 되면
<extend-property name="locale" values="ko_KR" />
그럼 국가 설정 및 각각의 언어에 맞게 메세지를 정의하면 되는것이다.
MessageConst.properties를 국가별로 확장하면 되는것이다.
한국 : MessageConst_ko_KR.properties
미국 : MessageConst_en_US.properties
영어 : MessageConst_en.properties
( package : kr.or.jhpark.clinet 에 위치한다)
ko는 ISO언어코드 , KR은 ISO국가코드이다.
위와 같이 properites가 4개로 존재하게 되면 MessageConst_ko_KR ( or MessageConst_en_US), MessageConst_en.properties, MessageConst.properties 순서로 우선순위를 갖는다.
각각 설정된 언어코드가 어떤 종류가 있는지 GWT에 알려줄 필요가 있다. 그러기 위해서는 모듈에 추가해야한다.
project.gwt.xml의 module 사이에 추가하면 되면
<extend-property name="locale" values="ko_KR" />
<extend-property name="locale" values="en" />
그럼 어떻게 웹브라우저에서 적절한 국가코드를 설정할 것인가? 이에대해서는 HTML문서에 설정해야 한다. 2가지 방법이 있다.
1. HTML 문서에 <head> 태그 사이에 추가한다.
<meta name="gwt:property" content="locale=ko_KR">
2. http:// ~~~ / index.html?locale=ko_KR
그다지 복잡하지 않다.
1. HTML 문서에 <head> 태그 사이에 추가한다.
<meta name="gwt:property" content="locale=ko_KR">
2. http:// ~~~ / index.html?locale=ko_KR
그다지 복잡하지 않다.
여기서 한가지.. 그럼 어떻게 국가코드를 알수 있을까??
출처: http://www.roseindia.net/tutorials/I18N/locales-list.shtml
LocalesList.java
출처: http://www.roseindia.net/tutorials/I18N/locales-list.shtml
LocalesList.java
import java.text.SimpleDateFormat; import java.util.*; public class LocalesList { static public void main(String[] args) { Locale list[] = SimpleDateFormat.getAvailableLocales(); Set set = new TreeSet(); for (int i = 0; i < list.length; i++) { set.add(list[i].getDisplayName() +"\t\t\t:\t"+ list[i].toString()); } Iterator it = set.iterator(); while (it.hasNext()) { System.out.println(it.next() ); } } }결과 :
Albanian (Albania) : sq_AL
Albanian : sq
Arabic (Algeria) : ar_DZ
Arabic (Bahrain) : ar_BH
Arabic (Egypt) : ar_EG
Arabic (Iraq) : ar_IQ
Arabic (Jordan) : ar_JO
Arabic (Kuwait) : ar_KW
Arabic (Lebanon) : ar_LB
Arabic (Libya) : ar_LY
Arabic (Morocco) : ar_MA
Arabic (Oman) : ar_OM
Arabic (Qatar) : ar_QA
Arabic (Saudi Arabia) : ar_SA
Arabic (Sudan) : ar_SD
Arabic (Syria) : ar_SY
Arabic (Tunisia) : ar_TN
Arabic (United Arab Emirates) : ar_AE
Arabic (Yemen) : ar_YE
Arabic : ar
Belarusian (Belarus) : be_BY
Belarusian : be
Bulgarian (Bulgaria) : bg_BG
Bulgarian : bg
Catalan (Spain) : ca_ES
Catalan : ca
Chinese (China) : zh_CN
Chinese (Hong Kong) : zh_HK
Chinese (Singapore) : zh_SG
Chinese (Taiwan) : zh_TW
Chinese : zh
Croatian (Croatia) : hr_HR
Croatian : hr
Czech (Czech Republic) : cs_CZ
Czech : cs
Danish (Denmark) : da_DK
Danish : da
Dutch (Belgium) : nl_BE
Dutch (Netherlands) : nl_NL
Dutch : nl
English (Australia) : en_AU
English (Canada) : en_CA
English (India) : en_IN
English (Ireland) : en_IE
English (Malta) : en_MT
English (New Zealand) : en_NZ
English (Philippines) : en_PH
English (Singapore) : en_SG
English (South Africa) : en_ZA
English (United Kingdom) : en_GB
English (United States) : en_US
English : en
Estonian (Estonia) : et_EE
Estonian : et
Finnish (Finland) : fi_FI
Finnish : fi
French (Belgium) : fr_BE
French (Canada) : fr_CA
French (France) : fr_FR
French (Luxembourg) : fr_LU
French (Switzerland) : fr_CH
French : fr
German (Austria) : de_AT
German (Germany) : de_DE
German (Luxembourg) : de_LU
German (Switzerland) : de_CH
German : de
Greek (Cyprus) : el_CY
Greek (Greece) : el_GR
Greek : el
Hebrew (Israel) : iw_IL
Hebrew : iw
Hindi (India) : hi_IN
Hungarian (Hungary) : hu_HU
Hungarian : hu
Icelandic (Iceland) : is_IS
Icelandic : is
Indonesian (Indonesia) : in_ID
Indonesian : in
Irish (Ireland) : ga_IE
Irish : ga
Italian (Italy) : it_IT
Italian (Switzerland) : it_CH
Italian : it
Japanese (Japan) : ja_JP
Japanese (Japan,JP) : ja_JP_JP
Japanese : ja
Korean (South Korea) : ko_KR
Korean : ko
Latvian (Latvia) : lv_LV
Latvian : lv
Lithuanian (Lithuania) : lt_LT
Lithuanian : lt
Macedonian (Macedonia) : mk_MK
Macedonian : mk
Malay (Malaysia) : ms_MY
Malay : ms
Maltese (Malta) : mt_MT
Maltese : mt
Norwegian (Norway) : no_NO
Norwegian (Norway,Nynorsk) : no_NO_NY
Norwegian : no
Polish (Poland) : pl_PL
Polish : pl
Portuguese (Brazil) : pt_BR
Portuguese (Portugal) : pt_PT
Portuguese : pt
Romanian (Romania) : ro_RO
Romanian : ro
Russian (Russia) : ru_RU
Russian : ru
Serbian (Bosnia and Herzegovina) : sr_BA
Serbian (Montenegro) : sr_ME
Serbian (Serbia and Montenegro) : sr_CS
Serbian (Serbia) : sr_RS
Serbian : sr
Slovak (Slovakia) : sk_SK
Slovak : sk
Slovenian (Slovenia) : sl_SI
Slovenian : sl
Spanish (Argentina) : es_AR
Spanish (Bolivia) : es_BO
Spanish (Chile) : es_CL
Spanish (Colombia) : es_CO
Spanish (Costa Rica) : es_CR
Spanish (Dominican Republic) : es_DO
Spanish (Ecuador) : es_EC
Spanish (El Salvador) : es_SV
Spanish (Guatemala) : es_GT
Spanish (Honduras) : es_HN
Spanish (Mexico) : es_MX
Spanish (Nicaragua) : es_NI
Spanish (Panama) : es_PA
Spanish (Paraguay) : es_PY
Spanish (Peru) : es_PE
Spanish (Puerto Rico) : es_PR
Spanish (Spain) : es_ES
Spanish (United States) : es_US
Spanish (Uruguay) : es_UY
Spanish (Venezuela) : es_VE
Spanish : es
Swedish (Sweden) : sv_SE
Swedish : sv
Thai (Thailand) : th_TH
Thai (Thailand,TH) : th_TH_TH
Thai : th
Turkish (Turkey) : tr_TR
Turkish : tr
Ukrainian (Ukraine) : uk_UA
Ukrainian : uk
Vietnamese (Vietnam) : vi_VN
Vietnamese : vi
'나는개발자다 > GWT' 카테고리의 다른 글
GWT, TinyMCE Editor 연동. (0) | 2012.05.28 |
---|---|
GWT를에서 Drag and Drop (0) | 2012.03.21 |
ClientBundle 사용하자. ( ImageBundle ) (0) | 2012.03.20 |
GWT에서 기본 생성되는 greet 변경하기 (0) | 2012.03.12 |
GWT로 JUnit Test Case 샘플 코드 (0) | 2012.02.24 |