久保田です。 以前からの懸案でしたが、Debconf は日本語訳されたテンプレートを うまく表示できないことがあります。特に、ja_JP.UTF-8 ロケール では使いものになりません。分析が以下のページにあります。 http://www.debian.or.jp/~kubota/mojibake/debconf そこで、Perl の標準モジュールである Text::Wrap の代替品を実装 し、それを使うようにパッチを書いてみました。 o Debconf の内部処理は現ロケールのエンコーディングと なっています。これは、libi18n-text-iconv パッケージ なしでも動作しなければならないためですが、それに合わせて、 本モジュールも現ロケールのエンコーディングでの動作と なっています。 o 改行文字が複数連続するときは、その改行をすべて意識します。 (ふだんは単に単語の境界としてしか認識しない)。また、 行頭がスペースのときも、その改行を意識するようになって います。(これは拡張ではなく、必要な動作です)。 o マルチバイト文字を認識するようになっています。これは、 文字数やカラム数をきちんと数えるための前提でありますし、 同時に、文字の途中で改行しないということも意味します。 o 文字幅を認識するようになっています。EUC-*, GB-*, Big5* エンコーディングについては2バイト文字は2カラム決め打ち、 UTF-8 については Markus Kuhn の wcwidth() 実装をもとに 結合文字と全角文字に対応させました。 o 日本語と中国語については、スペース以外の場所でも改行を 許すようになっています。これによって、現在行われている ように、テンプレートを和訳するときに改行位置にわざと スペースを入れていくといったことが不要になると同時に、 さまざまなカラム幅のターミナルでも正しく動作するように なるはずです。ただし、禁則処理はしていません。 とりあえず、Dialog と Readline インターフェースの動作を改善 しました。Editor と Gnome については、まだです。 いちおうのテストはしたつもりですが、Text::Wrap の動作は複雑なので、 なにか不具合があるかもしれません。とりあえずはここでテストを してもらって、それから debian-i18n@org または BTS で議論しよう と思っています。 というわけで、動作テストをお願いします。ja_JP.eucJP、ja_JP.UTF-8 ロケールで、Dialog および Readline の各インターフェースを 試してみてください。また、余裕があれば日本語以外でも試して もらえれば幸いです。 --- 久保田智広 Tomohiro KUBOTA <kubota@debian.org> http://www.debian.or.jp/~kubota/
Attachment:
DEBCONF-I18N-6.diff.gz
Description: Binary data