WEB+DB PRESS Vol.78に「フロントエンドの国際化」について書いた!
先週発売されたWEB+DB PRESS Vol.78のJavaScript連載にて、「フロントエンドの国際化」をテーマに記事を書きました!
内容はこんな感じです。
- 国際化の基本
- フロントエンドにおける国際化
- メッセージリソースの管理
- 数値や日付のフォーマット
- CLDRとICU
- JavaScriptにおける文字コードの罠
- JavaScriptにおけるタイムゾーンの罠
- JavaScript国際化関連ライブラリ
- ECMAScript 6 Internationalization API
前半ではソフトウェアの国際化で使われる基本概念と、最近のフロントエンド領域で国際化を行うときに課題となるポイントを解説しています。
中盤ではいくつかの定番ライブラリを紹介し、最後にIE11やChrome、Firefox Auroraで実装が始まったES6 I18N APIにも触れています。
作ってるサービスが海外展開することになった、または海外展開をにらんで開発を進めたいけどどの辺に気をつければ良い?という人にお役に立てればと思います。
- 作者: WEB+DB PRESS編集部編,栗林健太郎,安詮院康広,山口良平,尾上忠輔,大川高志,坂本寛樹,青木峰郎,増井雄一郎,中島聡,江島健太郎,中島拓,柴田博志,伊藤直也,登尾徳誠,片桐崇,後藤秀宣,佐藤鉄平,近藤宇智朗,長野雅広,奥野幹也,渡邊恵太,A-Listers,家永英治,はまちや2,川添貴生,原田勝信,和島史典,城倉和孝,安達俊雄,Akira,川嶋賢一
- 出版社/メーカー: 技術評論社
- 発売日: 2013/12/21
- メディア: 大型本
- この商品を含むブログ (3件) を見る
オレと国際化
年末なので、こっからポエムです。
自分の最初の「国際化」プロジェクトは2008年ごろ、とある国内向け製品を多言語展開するプロジェクトでした。
まあ文言リソース置き換えるぐらいでしょ、と最初は軽く見ていたのが、当時社内では初めての本格的な国際化プロジェクトだったためノウハウもなく、次々にハマりポイントに遭遇。
- ブラウザフォント指定の魔窟
- font-familyのOSやブラウザごとの解釈
- CJK共通漢字の見え方
- lang属性の扱い
- バックスラッシュが「¥」ではなくバクスラで表示される(ある意味正しいのだが)
- IEはHTMLの文字コードによっても挙動が違う
- Win用フォントが入ってるMacでおかしいとか
- PHP4でタイムゾーン扱えないから自前でタイムゾーンロジック実装
- タイムゾーンデータの更新まで実装するはめに
- Windowsサーバーのロガーの文字コードがシステムロケール固定
- ExcelがUTF-8 BOMなしを扱えない
- IEのContent-Disposition filenameの文字コードがおかしい
- Accept-Language, navigator.(language|systemlanguage|browserLanguage)、どれがなに?
- UI系
- 文言の長さに依存していたUIが崩れる
- 矢印とか記号文字でUI作ってたところ崩れまくり
- 文字入り画像めんどい
- 各種アイコンや祝日の色のニュアンスが地域によって異なる
- 振替休日のルールが地域によって異なる
- 夏時間が45分ずれとかUI破綻するだろ
ざっと思い出しただけでもこんな感じで*1、この時期に文字コードとかCLDRとかタイムゾーンとか、国際化関連の標準や仕組みを一通り調べた思い出があります。
時は流れて2010年、当時社内にいたamachangに誘われて初めて人前で発表をすることになったのがShibuya.js。詳しいこともそんなになかったので、タイムゾーンネタで挑みました。
周りが凄すぎて地味な内容だったのですが、id:t-wadaさんがタイトルで釣られていただいてあったかかったです。
次は @teppeis さんによる「時を超えた JavaScript への道」 え、 Timeless way of JavaScripting? #shibuyajs
— Takuto Wada (@t_wada) 2010, 7月 30
タイトルは釣りです (えー #shibuyajs
— Takuto Wada (@t_wada) 2010, 7月 30
今回のWEB DB PRESSの記事では、このときの発表内容に加えて、その後リリースされたIE10がヒストリカルタイムゾーンに対応してるなどの追加情報も盛り込んでいます。
このShibuya.jsで、ECMAScriptではまともなタイムゾーンの扱い方は議論されてないの?みたいな話をしていたのですが、I18N APIが(まだ完成度は低いけど)ブラウザに載ってくる時代になったということで感慨深いですね。
ということで、それなりに思い入れのある国際化についての記事を2年間やってきた連載の(おそらく)最後の執筆回にを書いたので、よろしければご覧下さいませ。
ある意味、あのときの発表が今回の記事に時を超えてつながっていたわけですね。(別にうまくはない)
*1:この中のいくつかは今回の記事に書きたかったのだけど誌面の都合で泣く泣く削除しました。