javaone tokyo lt : internationalization

15
Yet Another Internationalization JavaOne Tokyo 2012, Takayuki Okazaki, @watermint Photo: CC BY 2.0 U.S. Department of Agriculture

Upload: takayuki-okazaki

Post on 27-May-2015

911 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: JavaOne Tokyo LT : Internationalization

Yet Another InternationalizationJavaOne Tokyo 2012, Takayuki Okazaki, @watermint

Photo: CC BY 2.0 U.S. Department of Agriculture

Page 2: JavaOne Tokyo LT : Internationalization

Takayuki Okazaki@watermint

http://developer.gree.net/sp/globalplatform/

Page 3: JavaOne Tokyo LT : Internationalization

Choose your!Internationalization!wisely

Photo: CC BY 2.0 U.S. Department of Agriculture

Page 4: JavaOne Tokyo LT : Internationalization

Is Java Supports Internationalization?

Photo: CC BY 2.0 U.S. Department of Agriculture

Page 5: JavaOne Tokyo LT : Internationalization

•Unicode!

•Resource Bundle!

•Encoding!

•Date/Time

•Locale!

•IDN!

•Number!

•Currency

•Calendar!

•Collation!

•Bidi!

•Timezone!

•etc..Out of the box supportPhoto: CC BY 2.0 U.S. Department of Agriculture

Page 6: JavaOne Tokyo LT : Internationalization

i18n Enhancements in JDK7

Photo: CC BY 2.0 U.S. Department of Agriculture

Page 7: JavaOne Tokyo LT : Internationalization

Localezh-Hans!zh-Hant

az-Arab!az-Cyrl!az-Latn

mn-Cyrl!mn-Mong

ms-Latn!ms-Arab

Page 8: JavaOne Tokyo LT : Internationalization

Locale.Builder

new java.util.Locale.Builder()! .setLanguage("ja")! .setScript("Jpan")! .setRegion("JP").build();!

Page 9: JavaOne Tokyo LT : Internationalization

Missing features

Photo: CC BY 2.0 U.S. Department of Agriculture

Page 10: JavaOne Tokyo LT : Internationalization

telephone number

+81 3-1234-567803-1234-5678

+81312345678

National Format

International

ITU E164

Photo: CC BY 2.0 U.S. Department of Agriculture

Page 11: JavaOne Tokyo LT : Internationalization

International Call

+81 3-1234-5678

03-1234-5678

Page 12: JavaOne Tokyo LT : Internationalization

Italy

+39 06-487991

06-487991

Page 13: JavaOne Tokyo LT : Internationalization

libphonenumber

http://code.google.com/p/libphonenumber/

¨Ì z ([1-9]\d{8,9}|0(?:3\d{9}|7\d{5,7}|8\d{7})\d{7,11}¸(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|2[2-9]\d|[36][1-9]\d|4(?:6[02-8]|[2-578]\d|9[2-59])|5(?:6[1-9]|7[2-8]|[2-589]\d)|7(?:3[4-9]|4[02-9]|[25-9]\d)|8(?:3[2-9]|4[5-9]|5[1-9]|8[03-9]|[2679]\d)|9(?:[679][1-9]|[2-58]\d))\d{6} \d{9} 312345678(?:[79]0\d|80[1-9])\d{7} \d{10} 7012345678D120\d{6}|800\d{7}|0(?:777(?:[01]\d{2}|5\d{3}|8\d{4})|882[1245]\d{4})\d{7,10} 120123456990\d{6} \d{9} 990123456NANA 60\d{7} \d{9} 601234567 (?:037|50)\d{8} \d{10,11} 5012345678 20\d{8} \d{10} 2012345678570\d{6} \d{9} 570123456NANA 11[09] \d{3}110:0(?:37\d{8}|777(?:[01]\d{2}|5\d{3}|8\d{4})|882[1245]\d{4})\d{7,11} 0777012JPQ01000 (\d{3})(\d{3})(\d{3})$1-$2-$3 (?:12|57|99)00$1(\d{3})(\d{3})(\d{4})$1-$2-$38000$1 (\d{3})(\d{4}) $1-$20770$1(\d{3})(\d{2})(\d{3,4})$1-$2-$30770$1z (\d{3})(\d{2})(\d{4})$1-$2-$30880$1(\d{3})(\d{4})(\d{4})$1-$2-$30370$1(\d{2})(\d{4})(\d{4})$1-$2-$3 [2579]0|80[1-9]0$1(\d{4})(\d)(\d{4})$1-$2-$3Z1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])¨1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))√1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))0$1(\d{3})(\d{2})(\d{4})$1-$2-$3 •1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-9]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|z 4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])ú1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-9]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))¸1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-9]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[z 2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7])) 1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-9]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|z‡6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))0$1(\d{2})(\d{3})(\d{4})$1-$2-$3v1|2(?:23|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)ö1|2(?:23|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])£1|2(?:23|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))0$1(\d{3})(\d{2})(\d{4})$1-$2-$3#2(?:9[14-79]|74|[34]7|[56]9)|82|9930$1(\d)(\d{4})(\d{4})$1-$2-$33|4(?:2[09]|7[01])|6[1-9]0$1(\d{2})(\d{3})(\d{4})$1-$2-$3 [2479][1-9]0$1

160K Bytes of!Regular expressions

Page 14: JavaOne Tokyo LT : Internationalization

More!

•Language Detection!

•Proof of Origin!

•Culture!

•Law

•Pictogram!

•Religion!

•Politics!

•etc..

Page 15: JavaOne Tokyo LT : Internationalization