
ãã¿ã¤ã ã¾ã¼ã³åªãã®æ¸ãã¯ããã¨ã㨠2018å¹´ã« Qiita ã«æ稿ããè¨äºã§ããããå¤§å¹ ãªæ¹è¨ã 2021å¹´ã«ãããªããåæã«ãã¡ãã® Zenn ã«å¼ã£è¶ããã¨ã«ãã¾ããã ãã®æ¹è¨ã§ã¯ Software Design èªã® 2018å¹´ 12æå·ã«ç¹éã®ä¸ç« ã¨ãã¦å¯ç¨¿ããå 容ãåãè¾¼ã¿ã¤ã¤ãå¤æéãããã£ã¦åå°ã§èµ·ãã¤ã¤ããå¤åã«ã¤ã㦠2021å¹´ 6æç¾å¨ã®ç¶æ³ãªã©ã追å ãã¾ããããããªè¿½è¨ããã¦ãããè¨äºå ¨ä½ãé·å¤§ã«ãªã£ã¦ãã¾ã£ãããããã®ãç¥èç·¨ãã¨ããå®è£ ç·¨ãã»ãJava ç·¨ãã«è¨äºãåãã¾ããããç¥èç·¨ãã¯ãå°å ¥ã«ããã第ä¸é¨ã§ãã Qiita ã®ã»ãã¯ãå¼ã£è¶ããæ¨ã¨ãã®å¼ã£è¶ãå ã¸ã®ãªã³ã¯ã ã追è¨ãã¦ããã°ãããã®ã¾ã¾æ®ãã¤ããã§ãã ã¯ããã« ã¿ã¤ã ã¾ã¼ã³ã¨ããæ¦å¿µã®ãã¨ã¯ãã»ã¨ãã©ã®äººãèãããã¨ãããã¨æãã¾ããã½ããã¦ã§ã¢ã»ã¨ã³ã¸ãã¢ã§ãå¤ãã®æ¹ããæå»ãã¿ã¤ã ã¾
追è¨ï¼ãã®è¨äºã¯2020å¹´2æ6æ¥ã«æ稿ããããã®ã§ããç¾å¨ãå®åå¶ã«ã¤ãã¦ã¯ç·©åããã¦ããã¾ãã®ã§ã注æãã ããã ããæ°æ¥ã®ããã ã«ãæ¬åãç¨ãã¦ãå©ç¨ããã ãã¦ããã«ããããããããããªããæ¬åè¦å®éåããçç±ã«ãããã¯ããããããæ¹ã大éçºçãã¾ããã ãããã©ã¤ã¿ã¼ã®çãããå·»ãè¾¼ãã§ã®ãé¨ããã¨ãªã£ã¦ãã¾ã£ãæ¬ä»¶ã§ãããçµè«ããç³ãä¸ããã¨ãããã¯å½ç¤¾ã®ãã¹ã§ãã大å¤ç³ã訳ããã¾ããã ãã§ã«ãããã¯ã¯è§£é¤ããã¦ããã¨æãã¾ãããããã¾ã 使ããªãã¨ããæ¹ãããã£ãããã¾ãããã以ä¸ã®æé ã«æ²¿ã£ã¦ã対å¿ããé¡ããããã¾ãã ããªã¼ãã³ãã¼ã° æ¡ç´ (Momoko Fr...
ããã«ã¡ã¯ï¼ãã¤ãã«ä½ãã§ãUIãã¶ã¤ãã¼ã®ãã¾ãã (@i_magawa)ã§ãã ãã®è¨äºã¯ãGameGraphicDesign AdventCalendar 2019ãã®23æ¥ç®ã®è¨äºã«ãªãã¾ãã èªå·±ç´¹ä» ç¾å¨ã¯ããªã¼ã§UIã®ä»äºãããã¤ã¤ã夫婦ãè²å ã«é¢ãããã³ã¬ãæããããã¦ãã¾ãã以åã¯æ±äº¬ã§ã¹ããã²ã¼ã ã®éçºãã£ã¦ã¾ããã ããããè¨äºãæ¸ãã¦ã¾ãï¼å®£ä¼ï¼â ä½ã®è¨äºæ¸ãã®â¦ï¼ï¼ ã¹ããã²ã¼ã UIã®ãã¼ã«ã©ã¤ãºå¯¾å¿ã«ã¤ãã¦ä»åã¯æ¸ãããã¨æãã¾ãã ããã¤ãæ¡ä»¶é¢ãã£ãæ°ããããããªãã£ããããã®ã§ã¾ã¨ãã¦ã¿ã¾ãããããã¾ã§æ¥æ¬ã£ã½ãã²ã¼ã ãæµ·å¤å¯¾å¿ããã¨ãã®æ³¨æç¹ã§ãï¼ ã¾ãä»ååèã¨ãã¦ããã±ã¢ã³ãã¹ã¿ã¼ãºãã®UIãããè¼ãã¦ãã¾ãã ãã±ã¢ã³ãã¹ã¿ã¼ãºã¯ãªãã¨é©ç°ã®8è¨èªå¯¾å¿â¦ï¼æ®ºãæ°ãï¼ã¡ãªã¿ã«ç§ã¯ä¸åéå¶ã¨é¢ä¿ãªããã ã®ãã¡ã³ã§ãã æµ·å¤å¯¾å¿ã®ç®æ¨ è±èªãã¤ãã£ãã®
ã¢ããªã®å½éåã¯åã«è¡¨ç¤ºãããããã¹ãã®ç¿»è¨³ã«ã¨ã©ã¾ããã®ã§ã¯ããã¾ããã ãã®ã»ãã·ã§ã³ã§ã¯ãéçºè ã¨ã¦ã¼ã¶ã¼ã®åæ¹ã®è¦ç¹ãããæ§ã ãªå°åã§ä½¿ããã iOS ã¢ããªã®éçºãéãã¦å¾ãããå ·ä½çãªäºä¾ãè¸ã¾ããã¢ããªã®å½éåã§å¿ è¦ã¨ãªãæè¡çãªç¥èãé¿ãã¦ã¯éããªãåé¡ã¨ãã®å¯¾çãããã¦ä»å¾ã®ã¢ãâ¦
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? æ¬è¨äºã¯ä¸è¨ã®tweetããå§ã¾ãã¹ã¬ããã«è§¦çºããã@qnighyã@na4zagin3ããã¢ã¤ãã£ã¢ãæåãã¦æ¸ããã i18nåãæå¼·ã®å½ã¯å½å ã«è¤æ°ã®è¨èªãããããã®ãã¡ããã¤ãã¯ä»å½ã§ã使ããã¦ããè¨èªã®æ¹è¨ã§ã1ãã¤ãæåã§ã®ä»£æ¿è¡¨è¨ãå°é£ã§ãæ´å²çã«ISO-2022ãã¼ã¹ã®æåã³ã¼ãã¨Unicodeã¨ç¬èªã¨ã³ã³ã¼ãã£ã³ã°ãæ··å¨ãã¦ãã¦ãããªã¬ããªã©ã®ç¹æ®ãªçµçè¦åããããå³æ¸ãå·¦æ¸ã縦æ¸ããä½µç¨ãã â Masaki Hara (@qnighy) 2018å¹´8æ6æ¥ çããã®ãããã§æå¼·ã®i18nå½å®¶ã建è¨ããã¤ã¤ãããä¸
ãã¾ãèªåã®ãã¼ããã©ãªãªãè±èª/æ¥æ¬èªã©ã¡ãã«ã対å¿ãããã¨æã£ã¦ãã¦ãã©ã®ããã«åãæ¿ããã¹ããããªãµã¼ãã®ããã«ããããªãµã¤ããè¦ã¦åã£ãããã®æã«ããã¯è¯ããããã¯é¿ããã»ããè¯ããããã¨æ°ä»ãããã¨ãããã å½æã使ããã¨ã«ããåé¡ ãã¶ã¤ã³ä¸ã®ã¹ãã¼ã¹ã®ç¯ç´ãããããããã¯ã°ã©ãã£ã«ã«ã«è£å©ãããã¨ããçç±ããããè¨èªåæ¿ã®UIã§å½æãè¦ããããã¨ãããã æ¥æ¬ã«ããã¨ãæ¥æ¬=æ¥æ¬èªãã¨ãå½ã¨è¨èªã対å¿ãã¦ããã®ã§æ°ä»ãã¥ããã®ã ããã©ãä¸çã¯ãããã風ã«ã¯åºæ¥ã¦ããªããä¾ãã°è±èªãæä¾ããéã«ãã©ã®å½æãç¸å¿ããã®ãèãã¦ã¿ãããã¤ã®ãªã¹ï¼ã¢ã¡ãªã«ï¼è±èªã第ä¸è¨èªã¨ããå½ã¯ããã¤ãããã 決ãã¦å½æã¯è¨èªã代表ãããã®ã§ã¯ãªãã®ã ã ã¾ããæä¾ããè¨èªãå¤ããªãã¨ããã¡ããã¡ããã¦è¦ã¥ããã¨ããåé¡ãå«ãã§ããã ãã ããè¨èªã®åãæ¿ãã§ã¯ãªããECãµã¤ããªã©æä¾ããã³ã³ãã³
.properties ãã¡ã¤ã«ããã¼ã«ã©ã¤ãºãã¦ãã¦ããã®ãã¼ã¸ã¸ã®ãªã³ã¯ãããã®ã§ãããã«ããå¯è½æ§ãé«ãã§ãããã®ãã¼ã¸ã¯ãæ£ããè¤æ°å½¢ãã¦ã¼ã¶ã«è¡¨ç¤ºãããããã«ããããã®æååããã¼ã«ã©ã¤ãºããæ¹æ³ã説æããã®ã«å½¹ç«ã¡ã¾ãããã¨ãã°ãã1ãã¼ã¸ãã¨ã2ãã¼ã¸ãã¨ãã£ãæãã§ãã ããããªããæ¡å¼µæ©è½ãªã©ã®ã³ã¼ããè¤æ°å½¢ãèæ ®ãã¦ãã¼ã«ã©ã¤ãºå¯è½ã«ããããªããPluralForm ã使ã£ãéçºã®ç¯ã«é£ãã§ãçµæ§ã§ãããã ã³ã¼ãã®åææååããã¼ã«ã©ã¤ãºããå¿ è¦ãããã§ããããããå°ãªãã¨ãã使ç¨æ¹æ³ãã®ç¯ã¯èªãã§ããã¨è¯ãã§ãããã ãã®ãã¼ã¸ã§ã¯ã説æãããããããããããã« 2 ã¤ã®ç¨èªã使ç¨ãã¦ãã¾ãã è¤æ°è¦å (plural rule): è¨èªã«ã¯ãåèªã修飾ããæ°åã«å¿ãã¦åèªãå¤æ´ããææ³è¦åãããã¾ããè¨èªãéãã°è¦åãç°ãªããã¨ãããã¾ãã è¤æ°å½¢ (plural
ç¶ç·¨ã¨ãã³ã¼ãèªä½ã§ã¯ãªããä½ãããã°ããããæ¸ãã¾ããAmazonã«è¦ãi18n -ãå½éå対å¿ãã¨ã¯ä½ãå¤ããäºã Webãµã¤ããå¤è¨èªåãã æè¿å¤è¨èªåã«é¢ããä»äºããã¦ããé¢ä¿ã§i18n(l10n)ç¨ã®ã©ã¤ãã©ãªãè²ã ã¨è¦ãã®ã§ã i18nã©ã¤ãã©ãªã«ãããã使ãæ¹ãç´¹ä»ãã¾ãã ã¨ã¯è¨ã£ã¦ãã»ã¨ãã©ã®ã©ã¤ãã©ãªã¯åããããªæ¸ãæ¹ãããã®ã§JavaScriptãä¾ã«ãã¾ãã ã©ã¤ãã©ãªä¸è¦§ æ¸ãæ¹ã®ç´¹ä»ã¨ãã¦ä½¿ç¨ãããã®ã¯awasome-javascriptã«ãããã®ã¨ãä»ã«æ°ã«ãªã£ããã®ãé¸ã³ã¾ããã ãã ãããã®è¨äºã®ç®çã¯ãæ¸ãæ¹ããç´¹ä»ãããã®ã§ãã©ã¤ãã©ãªããç´¹ä»ãããã®ã§ã¯ããã¾ããã åããã¨ã¯ç¢ºèªãã¾ãããã©ã®ãããã¾ã¨ãã«åããã¯ãã§ãã¯ãã¦ããªãã®ã§ã注æãã ããã Polyglot Airbnbãå ¬éããã·ã³ãã«ãªã©ã¤ãã©ãª i18next è²ã ãªç°å¢ããã¬
ã¦ã§ããµã¤ãã®è¨èªã»ã¬ã¯ãã¡ãã¥ã¼ãä½ãæãè±èªã§ä¸è¦§ããããã¨ãå¤ãããããã¨åããããããããã®è¨èªåã§ããããã®è¨èªã表示ãããã¨ããããæ¯å½èªã§è¡¨ç¤ºããã¦ããã°çµ¶å¯¾ã«ãããã ããããè¦ã¤ããããã ããã¨ããçå±ã ããã®ãã¨èªä½ã«ã¯ããã¤ãæ¬ ç¹ãèããããããã ããHTMLã¨ãã¦ã¯langå±æ§ã使ãã°ãã¾ããã¼ã¯ã¢ããã§ããã ãããåæã«titleå±æ§ã使ã£ã¦è±èªã§ãã©ãã¼ããã¨å®ç§â¦â¦ã ããããããé¢åããããã¨ã«ãªãã ããããã®è¨èªåã§ããããã®è¨èªã表示ããè¨èªé¸æã¡ãã¥ã¼ã¯æä¸ãã¥ãã(ã¾ãã¯ã¹ãã£ã³ãã¥ãã)ã¨ããåé¡ããããç¹ã«ã¢ã«ãã¡ãããï¼Î±ã®è¨èªåã¯æ··åããããããã½ã¼ãé ãä¸æ確ã«ãªãããããé ã«ãã©ã£ã¦è¦ã¤ããªããã°ãªããªããã©ãã辺ã«ãããããã¢ã¿ãªãã¤ãããã¨ãã§ããªãããã ã ã«ã¼ãè¦ç´ ã®langå±æ§ã§en-USãæå®ããã¦ããã¨ããã <span la
ãã½ã¼ã¹ã³ã¼ã㯠1 è¡ããã 80 æå以å ãã¨ããã³ããããã°ã¯æ¨ªå¹ 72 æå以å ãã¨ããæåæ°ã«é¢ããã«ã¼ã«ã¯ããããããã ã«ã¼ã«ãå¾¹åºããã«ã¯æ©æ¢°çã«å¤å®ããããã¨æã£ã¦ãç°¡åãªã¹ã¯ãªãããæ¸ããã¨ããç¬éãæå¤ã¨ã1 è¡ãããã®æåæ°ããã«ã¦ã³ãããã®ãé£ãããã¨ã«æ°ä»ããã ãã¨ãã°ãããAãã¯ãå ¨è§ 1 æåï¼åè§ 1 æåããªã®ã§åè§ 3 æååã¨ãã¦ã«ã¦ã³ããããã ããããUTF-8 ã®ä¸çã§ã¯ããAãã®æåé·ã¯ 2 ã ãããã¤ãæ°ã¯ 4 (ã=0xE38182ãa=0x41) ã§ããã EUC-JP ã Shift-JIS ã®æ代ãªããåç´ã«ããAã㯠3 ãã¤ããªã®ã§ãåè§ 3 ã¤åãã¨ããåãã£ãã®ã ãã©ã⦠(éã«æåé·ã調ã¹ãã®ãé¢åã ã£ã)ã ã¯ã¦ãã©ããããï¼ãã¨ããã®ããã®è¨äºã§ãããããã¨ã East Asian Width ãè¦ã ããããã¨ã°ã°
å é±çºå£²ãããWEB+DB PRESS Vol.78ã®JavaScripté£è¼ã«ã¦ããããã³ãã¨ã³ãã®å½éåãããã¼ãã«è¨äºãæ¸ãã¾ããï¼ å 容ã¯ãããªæãã§ãã å½éåã®åºæ¬ I18Nã¨L10N ãã±ã¼ã« ã¿ã¤ã ã¾ã¼ã³ ããã³ãã¨ã³ãã«ãããå½éå ã¡ãã»ã¼ã¸ãªã½ã¼ã¹ã®ç®¡ç æ°å¤ãæ¥ä»ã®ãã©ã¼ããã CLDRã¨ICU JavaScriptã«ãããæåã³ã¼ãã®ç½ JavaScriptã«ãããã¿ã¤ã ã¾ã¼ã³ã®ç½ JavaScriptå½éåé¢é£ã©ã¤ãã©ãª i18next Numeral.js Moment.js & Moment Timezone ECMAScript 6 Internationalization API ååã§ã¯ã½ããã¦ã§ã¢ã®å½éåã§ä½¿ãããåºæ¬æ¦å¿µã¨ãæè¿ã®ããã³ãã¨ã³ãé åã§å½éåãè¡ãã¨ãã«èª²é¡ã¨ãªããã¤ã³ãã解説ãã¦ãã¾ãã ä¸ç¤ã§ã¯ããã¤ãã®å®çªã©ã¤ãã©ãªãç´¹ä»ããæ
ãç¥ãã
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}