[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gettext usage in perl (Re: [debian-devel:12672] Re: nowdebconf Japanized)
佐野@浜松です。
In <20000720065401V.nabetani@xxxxxxxxxxxxxxxxxxxxxxxxxxx>,
on "Thu, 20 Jul 2000 06:54:05 +0900",
with "Re: gettext usage in perl (Re: [debian-devel:12672] Re: nowdebconf Japanized)",
NABETANI Hidenobu <nabetani@xxxxxxxxxxxxxxxxxxxxxxxxxxx> さん wrote:
御苦労さまでした。ちょっと引用の順番を前後します。
> 作業しました。翻訳状況は 50% 程度ですが、最低限必要な部分は
> 翻訳済です。
> チェックをお願いします。それでは、お試しください
頂いた pppconfig.po.gz を gzip -d で展開して
msgfmt pppconfig.po して作成した messages を root で
/usr/share/locale/ja/LC_MESSAGES/pppconfig.mo として
コピーしました。
(もちろん鍋谷さんは当然ご承知でしょうけれど、他の人が確認する
時のために一応手順を書いておいたほうが良いかと思いまして)
> (liblocale-gettext-perl パッケージが必要です)。
これは入ってます。いったん test という名前でプロバイダ設定を
作成、追加したり、その項目を削除したりしてみました。たしかに
日本語が表示されています。なるほど、便利なものですね。
一応 pppconfig には drawbackl/falesafe があるみたいなので、
たぶん liblocale-gettext-perl が存在しない場合には単に
日本語メッセージが無視されて英語のメッセージが表示される
だけ (つまり動作上の不具合などは発生しないはず) と思いますが、
念のために誰か確認してくれると良いですね。
> 残る問題は、
> o msgid に「$variable」なものが埋め込まれていると日本語に変換されない。
gettext("\" Authentication Method for $provider\""), 6,
'"PAP"', gettext("\"Peer Authentication Protocol\""),
'"Chat"', gettext("\"Use \"chat\" for login:/password: authentication\""),
'"CHAP"', gettext("\"Crypto Handshake Auth Protocol\""),
'" "', '" "' );
の最初の gettext("\" Authentication Method for $provider\""),
とかですね。
例えば
/^method/ && do {
# menu of connection methods
my $authmethod = uc($$ispauth);
my $tempbackstring = gettext("\" Authentication Method for \"") . $provider;
@menuvar = (gettext("\"\
Please select the authentication method for this connection. PAP is the \
method most often used in Windows 95, so if your ISP supports the NT or \
Win95 dial up client, try PAP. The method is now set to $authmethod.\""),
$tempbackstring, 6,
'"PAP"', gettext("\"Peer Authentication Protocol\""),
'"Chat"', gettext("\"Use \"chat\" for login:/password: authentication\""),
'"CHAP"', gettext("\"Crypto Handshake Auth Protocol\""),
'" "', '" "' );
last SWITCH;
みたいにして、$variable と gettext message を分離して、
使う時に別の変数で合わせてから持ってくる、という方法は
ありますが、(今やってみたら一応動いた) これだと語順の
変更はできませんね。
> o gettext が Perl に対応してないので、ちょっと面倒・・・
xgettext を C 以外の言語にも対応させようというのは
gettext の TODO として挙げてあるみたいですね。
いったん、前処理用のツールとか作ってしまうことができれば
あとはそれを利用すればいいのでしょうけど。
とりあえず、perl スクリプトでも gettext でメッセージの
変更ができるということが確認できたのは収穫でした。 :)
--
# (わたしのおうちは浜松市、「夜のお菓子」で有名さ。)
<kgh12351@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)