2005年5月2日 (月曜日)

05:54:16 # Life なんとなく, for A in /usr/share/locale/ja/LC_MESSAGES/*.mo; do echo $A; msgunfmt $A > ${A##*/}.po; done として,出力をmsgcat *.poでマージしてみる. たまに変な出力もでてくるけど...

/usr/share/locale/ja/LC_MESSAGES/sharutils.mo
msgunfmt: 不正な複数バイトのシーケンス
msgunfmt: 不正な複数バイトのシーケンス
	

そうすると, いままでの翻訳で同じ語を違うように訳していた部分がfuzzyとして出てくる. すでに翻訳したことのある文章は置換する,というような仕組みがひろまっていれば こういう現象はおきないんだろうと思う. translator_creditsや""の訳語くらいは違ってもよいが,その他については 翻訳元の言葉に問題があるか,翻訳に問題があるかの二つなのではないか?

手もとのシステムでは,746のfuzzyが存在した.

すでに翻訳したことのある語を訳した状態でのテンプレートの作成というのは, 既存のツールでてきて,実は簡単なのかもしれない,と気づいた. msgunfmt, msgcat, msgmergeという基本ツールを利用すれば, 新規の翻訳の場合に,すでに翻訳されている言葉の対応は簡単にできるような気がする.

GNOME関連のコードだけはコピペだが翻訳はコピペできていない部分とか, aptからとってきたaptitudeのコードだとかが存在している点に気づく. あとは,doneの訳語が統一されていないこととか.

#, fuzzy
msgid "No error"
msgstr ""
"#-#-#-#-#  bfd.mo.po (bfd 2.11)  #-#-#-#-#\n"
"エラーはありません\n"
"#-#-#-#-#  gnome-vfs-2.0.mo.po (gnome-vfs HEAD)  #-#-#-#-#\n"
"エラーはありません\n"
"#-#-#-#-#  wget.mo.po (wget 1.9-b5)  #-#-#-#-#\n"
"エラーなし"

#, fuzzy
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr ""
"#-#-#-#-#  binutils.mo.po (binutils 2.11)  #-#-#-#-#\n"
"使い方: %s [オプション]... [ファイル]...\n"
"#-#-#-#-#  coreutils.mo.po (GNU textutils 2.0.22)  #-#-#-#-#\n"
"使用法: %s [オプション]... [ファイル]...\n"

#, fuzzy
msgid "directory"
msgstr ""
"#-#-#-#-#  binutils.mo.po (binutils 2.11)  #-#-#-#-#\n"
"ディレクトリ\n"
"#-#-#-#-#  coreutils.mo.po (GNU textutils 2.0.22)  #-#-#-#-#\n"
"ディレクトリ\n"
"#-#-#-#-#  diffutils.mo.po (GNU diffutils 2.7.10)  #-#-#-#-#\n"
"ディレクトリー"
  
#, fuzzy
msgid "Action"
msgstr ""
"#-#-#-#-#  aptitude.mo.po (aptitude 0.2.15.6-1)  #-#-#-#-#\n"
"動作\n"
"#-#-#-#-#  control-center-2.0.mo.po (control-center HEAD)  #-#-#-#-#\n"
"操作\n"
"#-#-#-#-#  gimp20-std-plug-ins.mo.po (gimp gimp-2-2)  #-#-#-#-#\n"
"動作\n"
"#-#-#-#-#  gimp20.mo.po (gimp-2-2)  #-#-#-#-#\n"
"操作\n"
"#-#-#-#-#  gnome-session-2.0.mo.po (gnome-session HEAD)  #-#-#-#-#\n"
"アクション\n"
"#-#-#-#-#  gtk20-properties.mo.po (gtk+-properties HEAD)  #-#-#-#-#\n"
"アクション\n"
"#-#-#-#-#  xchat.mo.po (2.0.2)  #-#-#-#-#\n"
"アクション"

#, fuzzy
msgid "Continue"
msgstr ""
"#-#-#-#-#  aptitude.mo.po (aptitude 0.2.15.6-1)  #-#-#-#-#\n"
"続行\n"
"#-#-#-#-#  gimp20.mo.po (gimp-2-2)  #-#-#-#-#\n"
"次へ\n"
"#-#-#-#-#  gqview.mo.po (gqview 1.4.2)  #-#-#-#-#\n"
"続行\n"
"#-#-#-#-#  libgtop-2.0.mo.po (libgtop HEAD)  #-#-#-#-#\n"
"コンティニュー\n"
"#-#-#-#-#  xine-ui.mo.po (xine 0.99.1-cvs)  #-#-#-#-#\n"
"継続"

#, fuzzy
msgid "Cancel"
msgstr ""
"#-#-#-#-#  aptitude.mo.po (aptitude 0.2.15.6-1)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gaim.mo.po (gaim 1.1.3cvs)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gimp20.mo.po (gimp-2-2)  #-#-#-#-#\n"
"取消\n"
"#-#-#-#-#  gnome-libs.mo.po (gnome-libs 1.2.12)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gnupg.mo.po (gnupg 1.3.92)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gqview.mo.po (gqview 1.4.2)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gtk+.mo.po (gtk+ 1.2.7)  #-#-#-#-#\n"
"取消\n"
"#-#-#-#-#  gtkpod.mo.po (gtkpod 0.40)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  icewm.mo.po (icewm 1.0.6)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  newt.mo.po (newt 0.51.4)  #-#-#-#-#\n"
"取消\n"
"#-#-#-#-#  soundtracker.mo.po (SoundTracker 0.3.10)  #-#-#-#-#\n"
"取消\n"
"#-#-#-#-#  sylpheed.mo.po (sylpheed)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  xchat.mo.po (2.0.2)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  xine-ui.mo.po (xine 0.99.1-cvs)  #-#-#-#-#\n"
"取り消し\n"
"#-#-#-#-#  xitk.mo.po (xine 0.99.1-cvs)  #-#-#-#-#\n"
"取り消し\n"
"#-#-#-#-#  xmms.mo.po (xmms 1.2.8)  #-#-#-#-#\n"
"取消"

#, fuzzy
msgid ""
"I wasn't able to locate a file for the %s package. This might mean you need "
"to manually fix this package. (due to missing arch)"
msgstr ""
"#-#-#-#-#  aptitude.mo.po (aptitude 0.2.15.6-1)  #-#-#-#-#\n"
"%s パッケージが見つかりませんでした。手動でパッケージを補う必要があるかもしれ"
"ません。(または適切なアーキテクチャが見つからない)\n"
"#-#-#-#-#  libapt-pkg3.3.mo.po (apt 0.5.24)  #-#-#-#-#\n"
"パッケージ %s のファイルの位置を特定できません。おそらくこのパッケージを手動"
"で修正する必要があります (存在しないアーキテクチャのため)。"

	

たとえば,msgcat --more-than 5 --add-location *.po とすると,5種類以上で定義されている言葉の一覧が出て来る. "^msgstr"で検索すると,語の種類が出て来るのだが,それを見ると, 125語ある.そのうち"#, fuzzy"になっている(訳語が統一されていない)ものは 70ある.

翻訳データを中央管理できれば, 新しい po ファイルを commit する際に,fuzzy の数が増えるようであれば reject するだとか, そういうチェック機構が実装できそうなのだが,どうだろうか. また,potファイルをあたらしく翻訳する場合は, 既存のテンプレートからがりがりと作成する, 特に多い語に関しては,辞書化してしまう,などの対処が考えられる.

あとは,emacsからmoファイルを辞書として利用できる翻訳ヘルパーアプリの 作成かな.

Junichi Uekawa

$Id: dancer-diary.el,v 1.89 2005/05/12 11:19:14 dancer Exp $