自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

November 14, 2009 [長年日記]

[Ruby] locale-2.0.5, locale_rails-2.0.5, gettext-2.1.0, gettext_activerecord-2.1.0, gettext_rails-2.1.0

リリースしました。ものすごく久しぶりになってしまってすみません。

今回以降、locale系とgettext系はリリースタイミング自体がずれていくことになります。一度にリリースするファイルは少ない方が心理的負担が少ないような気がします。

localeの方はバージョンもmicro versionが上がっただけでして、バグフィクス版と言うことになります。

gettextの方は、以下の2点+1点を大きく変更しているため、minor versionをあげました。

(1) 翻訳者向けコメントのサポート

これはもともとGNU gettextにある機能だったのですが、ようやくサポートできました(といっても、私がコード書いたわけではないのですが…(苦笑))

具体的には以下のようにして使います。

-- foo.rb
def foo
  # TRANSLATORS: "file" is xxxxxx.
  # "lang" is ..... 
  _("%{file} %{lang} ...") % {:file => file, :lang => lang}
end

この"TRANSLATORS:"がポイントです。このソースからpoファイルを生成すると以下のようになります。

-- foo.pot
#. "file" is xxxxxx.
#. "lang" is ..... 
#: foo.rb:4
msgid "foo"
msgstr ""

一見して意味がわかりづらいようなメッセージなどに翻訳者向けのコメントを残すと良いでしょう。

(2) ディレクトリ階層の変更

ライブラリとして使うファイルをruntime配下に、rgettext/rmsgmergeなど開発時に使うファイルをtools配下に区別するようにしました。

raccみたいにライブラリ分けちゃおっかなぁ、と一瞬思ったのですがいろいろ辛くなりそうなのでとりあえずやめにしました。

(3) (1)の副産物と言いますか、poファイル化する際のパーサーを書き換えました。一応、互換性は保っていると思いますが、新しいバージョンでは、今まで使っていた単なるArrayではなくて、PoMessageという専用クラスを使っていて、追加のパーサーを書きやすくなったと思います。

本日のツッコミ(全2件) [ツッコミを入れる]
nobody (November 16, 2009 00:32)

そういえばアナウンスのメールに「クロスライセンス」って書いてあったけど、クロスライセンス契約って複数のライセンサーが互いに使用許諾を与える契約のことだよなと思ったのを思い出した。

むとう (November 17, 2009 17:04)

げっ。<br>ホントだ。アホですね。>自分