多言語対応プログラムの実際2
--ルビ
ルビがめんどくさかった。1文字ずつ表示していくときに、どう表示させるのがよいかという話になって、結局画像と割り切って下の文字にあわせて表示することに、表示途中は文字が途中で切れてたりするけど、「きにしない」で解決
2013-05-06 22:40:14あー、ルビも面倒ですよね。対象の単語に対してどこまで開くか、みたいな感じにして、ルビが収まらないときはその対象の頭からルビを並べていって、みたいな実装したことあります
2013-05-06 22:56:44--UIの文字レイアウト
多言語対応するゲームだと、UIの文字レイアウトが怖い。日本語や英語はまだ単語短いけど、ドイツ語が入るだけで、UIの文字レイアウトどうするのか本気で頭抱えたりする。ヘルプ表示なんかは、ついつい横長スクロールのテロップ表示に逃げたりしたくなる。
2013-05-06 22:24:43@sinpen たしかにドイツ語と日本語の文字のレイアウトはハマりますね。ドイツのパッケージを日本語化する仕事の時に、一列に入力欄二個並べることできないんですか?みたいな事言われたことあります。
2013-05-06 22:29:23--改行
けど、メッセージウィンドウとかあるゲームだと、テロップ表示じゃなく改行せざるを得ない。できることなら、改行は、その文章リソースを用意する時点で「ここで改行する」と指定して欲しい。読みやすさを考えると、手間はかかるけどそれが一番良い、とは思う。
2013-05-06 22:27:51--禁則処理
もー、そうなると仕方が無いから、禁則処理をプログラムで書くわけなんだけど。日本語でも面倒だよね。自動改行によって行頭に「。」が来ないようにする、とか。でも「名前を変えられる」システムにすると、禁則処理書かないわけにはなかなかいかない。ぐぬぬ、と思いつつ書くわけだ。
2013-05-06 22:33:22@sinpen 禁則処理をMSXで書いたときは死ねました。ある程度行くと「もういっそのこと、濁点が行頭に来てもいいよね…」とか考えたくなります。
2013-05-06 22:43:04--禁則処理 その2
日本語は自分の中の常識としてわかるけど、英語やドイツ語でも同じように「!」「?」「;」「:」などを行頭に表示しちゃだめなだけでなく、基本的には「単語も2行にわけちゃいけない」。改行できるのは単語間のスペースだけだったりして、日本語の自動改行処理とは全然違う
2013-05-06 22:38:21@sinpen LaTeX のフォーマッティングを思い出します。行ごとに文字間の幅を調整して、でこぼこにならないようにがんばりますね、あれ。
2013-05-06 22:41:14@masaru0714 「綺麗な文字表示」は永遠の課題かもしれませんねー。最近はフォントメーカーさんが無茶苦茶頑張ってくれてますけど
2013-05-06 23:01:46--種類による表現の変更
手に入れるアイテムの種類によっても、表現を変える必要があったりもする。日本語は「**を手に入れた」でいいのに、それが装備なのか、アイテムなのか、お金なのか、魔法みたいなスキルなのかで、英語やフランス語は言い回し変えたりする。勘弁・・
2013-05-06 22:45:57