タグ

i18nに関するYaSuYuKiのブックマーク (4)

  • ぼくたちのかんがえたさいきょうのi18n国家

    記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良

    ぼくたちのかんがえたさいきょうのi18n国家
    YaSuYuKi
    YaSuYuKi 2018/08/07
    ガロンのように、同じ単位でありながら国や用途によって値が異なるものも存在する。さらに、ガロンの上位単位のバレルが何ガロンであるかが国によって異なる。地域と文脈に応じた変換アルゴリズム切替が必要
  • 全角半角混在の文章で 1 行に半角何文字分あるか調べる方法

    「ソースコードは 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 を見よ いろいろとググ

    全角半角混在の文章で 1 行に半角何文字分あるか調べる方法
    YaSuYuKi
    YaSuYuKi 2014/03/14
    「表示上の文字数」にこだわろうとすると本当に悪夢だな/IVSは初めて知った。異体字を扱うためのものか
  • jQueryを使って国際化処理を行う·jquery.localize.js MOONGIFT

    多言語に対応したWebサイトを構築する場合、サーバサイドで対応するのが一般的だった。例えばGetTextを使った国際化処理が有名だ。サーバサイドで処理をできるのは手軽な反面、言語ごとにリソースを消費してしまうのが問題だ。 JavaScriptで国際化を行う 結局のところ、国際化とは見た目の話でしかない。であれば見た目を操作するのに向いたJavaScriptで行わせるというのはあながち間違っていないかもしれない。 今回紹介するオープンソース・ソフトウェアはjquery.localize.js、jQueryを使った国際化ライブラリだ。 jquery.localize.jsはrel="localize[hoge]"といった要素で国際化する際のキーを指定する(この場合hogeがキーになる)。そして別途JSONファイルを用意し、hogeに対応した各国語の文字列を指定する。後は読み込み時にjquery

    jQueryを使って国際化処理を行う·jquery.localize.js MOONGIFT
  • http://www.yotabanana.com/lab/20071025.html

    YaSuYuKi
    YaSuYuKi 2007/10/27
    Ruby gettext on JRuby
  • 1