NotoFontでフランス語に対応するときの注意事項
日本語のゲームを出すうえで、NotoSansCJKjpを使う人も多いんではなかろうか。
このフォントには当然アルファベット26文字も含まれるので、英語版を開発する場合にも同じフォントで充分で、差し替える必要はない。
ではフランス語版はどうだろうか?このままNotoSansCJKjp一本で済ませられればラクできるわけだが。
NotoSansCJKjpに含まれないフランス語アルファベット
フランス語アルファベットの構成文字は以下の通り。
ABCDEFGHIJKLMNOPQRSTUVWXYZÉÀÈÙÂÊÎÔÛËÏÜŸÇŒÆ abcdefghijklmnopqrstuvwxyzéàèùâêîôûëïüÿçœæ
そしてNotoSansCJKjpの中には、Ÿ
だけが含まれていない。(小文字のÿ
は含まれている。)
このため、フランス語を完璧にサポートしようとするとNotoSansCJKjpでは不足で、フォントを差し替えるか、別のフォントを使う必要が出てくる。アチャー。
Ÿ
という文字について
ただし、Ÿ
はフランス語でも使われることがかなり珍しい文字で、せいぜい20個程度の単語でしか見られず、しかもそれらは固有名詞なんだそう。
なので、ゲーム内に使う文字を調べてみて、Ÿ
が必要ないということは有りえる。そうなればめでたくNotoSansCJKjpでフランス語版を組むことができるわけだ。(実際MSTでは必要なしと判断した)
とまあ、イマイチ座りの良くない結論になってしまうんだけど、完璧を目指した場合にやるであろうランタイムでのフォント差し替えはとてつもなくめんどいので、これはしゃーなしよな。
余談:NotoSansCJKに含まれる文字
こっから先は余談。
ところでNotoSansCJKに含まれる文字セットってどういうものか?
公式にはこう書いてある
This includes the full coverage of CJK Ideographs with variation support for 4 regions, Kangxi radicals, Japanese Kana, Korean Hangul, and other CJK symbols and letters in the Basic Multilingual Plane of Unicode.
韓国語日本語中国語以外の文字については、「Unicodeの基本多言語面にある文字」と書かれている。が、さきほどのŸ
(U+0178)はというと、まさに基本多言語面に含まれている文字なのである。えー。つまり。基本多言語面にある文字のうち、なんらかの基準で選定した文字セットがNotoSansCJKには採用されている、と。そんなことある?
頭文字として使用しているケースが存在しないからではないかなと…
— あんころむらさめ (@_murasame) March 24, 2019
結局、使いたい文字が含まれているかどうかは実際に確認しとけっつーことですわな!
Ÿ
がハブられる文字セット
さらに余談の余談。
小文字のÿ
が含まれるのに大文字のŸ
がないとか不自然だろ、と思うんだけど、実際にそういう文字セットが存在する。Latin-1
(ISO 8859-1)というラテンアルファベット文字コードがそうだ。MySQLを触ってる人には見おぼえがあるんじゃなかろうか。まあ好きではないだろうけど。
わざわざNotoSansCJKjpの文字セット策定にあたってLatin-1
を参考にしたわけではないとは思うけど、ともかく、文字コードまわりはなかなか複雑怪奇なことが多くてしんどいすなあ。