[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cvs-ml 691] Re: nls for cvs



加藤さんにDMをもらったのですが、公開しても良いと言うことなので
掲載させていただきます。

> 加藤です.
>
> > cvsをgettext対応してみました。
>
> いやすごい...(@_@),前からやってらしゃったのでしょうか?
[cvs-ml 672]で加藤さんの「できたらいいな」リストを見てからです。
うちでcvsを使用するのにもメッセージを日本語化したかったので、
はじめはサーバーを日本語化してもクライアントでEUCを表示できなかったので
どうしようか迷っていたのですが、knjwarpを知ってEUCを変換できるので
サーバーのgettextをはじめました。

>
> > パッチをおきましたので、皆さんのご意見をお伺いしたいです。
> > http://village.infoweb.ne.jp/~hirobumi/cvs/cvs-nls.patch.gz
>
> ちょっとだけ眺めました.
>
> error() cvs_output() cvs_outerr() の仮引数に(呼出先で) _("foo")
> を埋め込む形になっているようですが,直接,server.c::cvs_output()
>  server.c::cvs_outerr() に _("foo") をいれる形にしたらどうでしょう?
> error.c::error() は最終的に server::cvs_output() を読んでいるようなので,
> メッセージ関係は server.c::cvs_output(), server.c::cvs_outerr() だけを相手
に
> すればよいような気がします.
[cvs-ml 668] で加藤さんがをっしゃられているようにcvs_output,cvs_outerrだけを
gettextしたのですが、cvs_outputのほうはほぼ大丈夫なのですが、cvs_outerr
の方は,error.c:error経由ででていてこちらの方はprintf形式の書式のようで
うまくgettextでは拾ってくれませんでした。

> 御本家の方で将来何か機能を増やす度に cvs_output() cvs_outerr() の呼出
> がふえると予想されるので,その方が,対応の手間ができるだけ省けるような
> 気がします.
>
> #御本家に,今後は,_("foo") 付で書いてくれと言えばすむ話かもしれませんが
(^^;;
xgettextを使用して、翻訳対象メッセージを抽出するには_("foo")を使用したほうが
いいようです。
はじめソースをなるべく変更しなくていいのでcvs_output, cvs_outerrをgettext
してみたのですが、makeでメッセージを自動的に抽出するとこまでいけるので
_("foo")を付けたほうが簡単かなーと思いました。
御本家になるべく負担をかけなくするか、翻訳者に負担をかけなくするか、
難しいですね。私はご本家に多少負担していただいて、翻訳者の負担を減らした方が
ロケールが増えると思うのですが。

> では.
>
> P.S.
> DM で出しましたが,本内容は cvs-ml 等で全然公開してもかまいません.
> しばらく返事は遅れがちになりますが,予め御承知おき下さい.
> ---------------------------------------------------------
> 今月の目標:
> 怠けて楽をしよう.
>
> 加藤裕史 E-mail: tumibito@air.linkclub.or.jp
> <URL:http://www.linkclub.or.jp/~tumibito/>
>

実はcvsもそんなに詳しくは無いのでユーザー変数でロケールを変更するのは
問題が無いか不安です。こんなやり方でいいのでしょうか?

# WIN32でのgettextですが、無理やりコンパイルして、
# ロケールデータをsjisに変換したらとりあえず動作しました。
# WIN32でgettextは反則ですかね?

--------------------------------------------------------------------
 Hirobumi Shimada
 Yonezawa, Yamagata
 Japan

 fwbc4782@mb.infoweb.ne.jp