blog.8-p.info

ソフトウェアの日本語文字が中華フォントに侵食されていて想像以上の危機らしい「違和感すごい」 というのが盛り上がっていた。

「想像以上」は主観的だけど、個人的にはちょっと煽りすぎのように思った。

前提: Han Unification はひっくりかえせない

そもそも、UTF-8 がよく使われるようになって、絵文字もはいった UCS で、Han Unification しなくてもいいのでは、という話はある。

でもこれは後の祭りで、今更ひっくりかえすのは無理だと思うので、ここでは検討しません。

ユーザー側の言語情報を参照すれば、日本語のグリフは選べる

ほとんどの OS には、このユーザーの言語はこれですよ、という情報があって、それでメニューやボタンの文字が日本語になる。日付の表示方法とかも、これを参照する。統合漢字でも日本語のグリフでレンダリングしたい、というのは、8割くらいはこれで解決するはなしだと思う。

ここは最近地味に良くなっていて、POSIX ロケールの時代だとユーザー:言語 = 1:1 だったのが、最近の Android や macOS では複数の言語を優先順位をつけて設定できるようになっている。私はアメリカに住んでいるのもあり、英語を最優先で、次に日本語という順にしていることが多い。

データ側の言語情報を参照するのも、実装されているところはある

データ側の言語情報を見るのはちょっと手間だけど、実装されているところもある。Twitter で日中で話題になっていそうなもの、例えば「習近平」とかで検索すると、日本語の検索結果は日本語のグリフで、中国語の検索結果は中国語のグリフでちゃんと表示される。HTML をみると、Twitter は div にちゃんと lang=zh みたいな言語情報を持たせている。

書籍や音楽だと、本文や歌詞の言語というかたちで、何らかの言語情報がついているかもしれない。これをレンダリングの時までなんとか引き回すというのは、面倒だけど不可能ではないと思う。

ユーザー側に言語情報がなくて、データ側に言語情報がない場合にも、日本語のグリフで表示してほしい

それは理がないですね。これはどの国のグリフを選んでも誰かが不満をもつ負け戦なので、この条件にならないように頑張るのがプログラマの仕事かと思う。

冒頭のまとめを読んでいると、日本の主導権とか、国力とか、そういう話にもっていきたがる人々もいるけれど、これは「UCS というのは言語に関するメタデータとコードポイントでグリフが決まるものなので、言語情報なしでレンダリングするケースを減らしましょうね」という話でしかないと思う。対立構造を持ち込むのはやめましょう。