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ファイルを辞書として利用できる翻訳ヘルパーアプリの 作成かな.
$Id: dancer-diary.el,v 1.89 2005/05/12 11:19:14 dancer Exp $