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

March 11, 2002

[Misc] Linuxビボ〜ろく

まだダメだ。うーむ。いっそのことtDiary-1.3.4に移行しちゃおうかなぁ。でも、それで問題が解決できなかったらホントに何が悪いのかわかんなくなっちゃうよなぁ。むーん。

む?今気づいたんだが、s5.xrea.comのRubyのバージョンが1.6.7に上がってるな(前は1.6.6だったような...)。なんか関係あるのか?

とか言ってるうちに、結局tDiaryをバージョンアップしてみたらうまく行ってしまった。ラッキー(これで良いのか?技術者として(^^;))。

おまけにCSSもちょこちょこいじってみた。

[tDiary] tDiary-1.3.4

いいね〜。これ。オレもなんかプラグイン書きたいなぁ。けど、アイデアがうかばん(T_T)。

[Linux] GTK+ 2.0

試してみたいんだけど、今の環境はそのままでも大丈夫なのかなぁ。つーか、Ruby/GTKが動かなくなったらシャレにならん(^^;)。


March 11, 2004

[Ruby-GNOME2] ORE-0,1,0

Ruby Editor for Gnomeだそうです。Ruby/GTK2とRuby/GtkSourceView(改)を使っています。

Ruby/GtkSourceViewを使うとこういったエディタは簡単にできます。

試してみてはいかがでしょう。

...というものの、実はRuby/GtkSourceViewは長らくメンテナンスされていないので現在のGtkSourceViewの安定版(?)である0.7.1ではコンパイルすらできません。Ruby/GtkSourceView(改)と書いたのは、OREの作者のArchitが独自にその辺を修正していくつかメソッドを追加したモノを使っているからです。

そのArchitからの強いプッシュがあったこともあるのですが、最近、Ruby/GtkSourceViewがあまりにもメンテナンスされていないので、私の方で引き取ることにしました。実際はLaurentがメンテナを立候補してくれたのでLaurentに任せることになりそうです。

そんなわけで、近々、GtkSourceView-0.7.1でコンパイルできるモノをリリースできると思います。

それにしても、ruby-talkで変なところ(開発コード)でケチがついちゃったのは残念。なんでそんな変な名前にしたのかなぁ。


March 11, 2006

[Ruby] Ruby-GetText-Package-1.3.0

リリースしました。今回はみなさんからいろいろなアイデア&バグレポートをいただき、特にRuby on Rails周りで機能向上しました。ぜひ、お試しくださいませ。

目玉1:[RoR] ローカライズド・テンプレートのサポート

例えば、app/views/foo/list.rhtmlというファイルに対し、app/views/foo/list_ja.rhtmlという名前のファイルを用意すると日本語の場合のみそちらを読み込むようになります。しかも、どちらのファイルとも、従来通り、_("")等のGetTextのメソッドを利用することが可能です。

これはつまり、基本的には通常用意されたテンプレートを、ある特定の言語のみ特別なテンプレートを使うことができる、ということになるため、可能な限りテンプレートは1つにしてDRYに開発できるメリットを残せると思います。 Thanks to Yuguiさん。

目玉2:[RoR] ActionMailerのサポート

ActionMailerのテンプレートファイル(.rhtml)にも_("")等のGetTextのメソッドを利用することが可能になりました。扱いはViewのテンプレート(.rhtml)と同じですので、上のローカライズド・テンプレートも使用可能です。

また、日本語の場合のみ、ISO-2022-JPでメール送信するようになりました。

ActiveHeartに含まれるIso2022Mailerを作者のdrawnboyさんのご厚意で取り込まさせて頂きました。ただ、Iso2022MailerではメールのSubjectがUTF-8で変換されてしまい、私のメーラでは文字化けになってしまっていたので、その辺はmoriqさんのActionMailerに関する記事を参考にメールのSubjectもISO-2022-JPで送信するようにしてあります。

#こういう微妙な調整は作者が日本人の特権ですね(^^)。

目玉3:[RoR] ActiveRecord::Column.human_nameのローカライズ

ActiveRecord::Column.human_nameがそのModelクラスから抽出したmsgidを用いて翻訳するようになりました。今まではエラーメッセージ用でしたが、scaffoldで生成したノーマルのテンプレートファイルでも自動的に翻訳される部分が増えたと思います。

#ざんねんながら、scaffold時にすでに文字列としてカラム名が埋め込まれてる部分があって、そこはもうしょうがないんですけどね。

Thanks to: ZnZさん

目玉4:[RoR] @params["lang"]を最優先でチェックするようになりました

例えば、routes.rb等で@params["lang"]をセットすると、その言語が使われるようになりました。

Thanks to: Erkki Eilonenさん

その他、バグ修正として、RoR周りではproductionモードで動作するようにしたのと、メモリリークの修正、あとはLocale::Objectの改善、などなど。盛りだくさんです。

そうそう、RoRのモデルでvalidates_* のmessageをローカライズする場合、_("")の代わりにN_("")を使ってください。そうしないと、productionモードで表示文字が変わらなくなるので注意してください。

class Article < ActiveRecord::Base
 validates_presence_of :title, :message => N_("%{fn} can't be empty")
 set_error_message_title(N_("An error is occured on %{record}"),
                         N_("%{num} errors are occured on %{record}"))
end

本日のツッコミ(全2件) [ツッコミを入れる]

nov [ActionMailer のサポートがうれしいのですが、 multipart なメールを ja な環境で送るとおかし..]

むとう [うぅ。multipartなメールは考えてませんでした(汗)。 よろしければサンプルコードをいただけないでしょうか。..]


March 11, 2009

[Misc] gitとgemってなんか似てる

gem commit -a ってやってエラーが出て、小一時間悩んでしまった、そんな小春日和の一日。

[Rails] Ruby-GetText-Pacakge on Ruby on Rails-2.3.0 RC2

ようやくですが、Ruby-GetText-PackageをRails-2.3.0 RC2への対応が一段落しました。(Rails-2.2.xは捨てでいいよね・・。ダメ?)

基本的には今までの使用方法を踏襲しています。かつ、Rails I18n系のローカライゼーションのフレームワーク・他のバックエンドとも協調でき、Rails I18nや他のバックエンドでローカライズされたプラグインやI18n.tメソッド(+YAMLベースのリソースファイル)等も一緒に使うこともできます(となるのが当面の目標です)。

大きな違いとしては、Ruby-GetText-Packageは5つのライブラリに分割されたことですね。

汎用ライブラリである、locale, gettextと、Rails-2.3.x用のlocale_rails, gettext_activerecord, gettext_rails(activerecord以外)の3種類です。ちょっと面倒くさくなったかもしれませんが、使用者はこれらを好みにより使い分けることもできます。例えば、activerecordをRails以外の目的で使用する場合はlocale, gettext, gettext_activerecordのみをインストールすれば良く、locale_rails, gettext_railsは不要です。

まだ、テストが不完全(ってか無いのもあるし(苦笑))なのとローカライズドビューとActionMailerがまだ手つかずなので今すぐリリースってわけにはいかない(少なくともRuby-GetText-Package-1.93.0とほぼ互換にするつもり)ですが、もし、試してもよい、という方がいらっしゃいましたら、ぜひとも試していただいて不具合・御意見等をお聞かせ願えればと思います。

ということで今の段階での試し方です。githubの流儀に馴染めてないので独自の方法で説明します。
とりあえずgitをインストールして、以下のようにしてください。

$ sudo gem uninstall gettext (古いgettextが入ってると誤動作する可能性があります。)
$ git clone git://github.com/mutoh/locale.git 
$ git clone git://github.com/mutoh/locale_rails.git 
$ git clone git://github.com/mutoh/gettext.git 
$ git clone git://github.com/mutoh/gettext_activerecord.git 
$ git clone git://github.com/mutoh/gettext_rails.git 
$ cd locale
$ rake package
$ sudo gem install pkg/locale-x.x.x.gem  (x.x.xはpkg/配下に存在するバージョンを指定してください)
$ cd ../locale_rails
$ rake package
$ sudo gem install pkg/locale_rails-x.x.x.gem
$ cd ../gettext
$ rake makemo
$ rake package
$ sudo gem install pkg/gettext-x.x.x.gem
$ cd ../gettext_activerecord
$ rake makemo
$ rake package
$ sudo gem install pkg/gettext_activerecord-x.x.x.gem
$ cd ../gettext_rails
$ rake makemo
$ rake package
$ sudo gem install pkg/gettext_rails-x.x.x.gem
(サンプルを試す場合)
$ cd sample
$ rake db:create
$ rake db:schema:load
$ ruby script/server

なお、Ruby-GetText-Package-1.93.0からの変更点ですが(リリースする時にはきちんとドキュメント化しないとだな・・・)、

  1. Rakeファイルがrequire 'gettext/utils'から'gettext_rails/tools'に変わった&GetText.update_pofiles, GetText.create_mofilesの引数が若干変わった。
    ただし'gettext/utils'も後方互換性のため残してあります。
  2. config/environment.rbは呼び出すgemが変わっています。以下のように書いてください。
         :
         :
      config.gem "locale_rails"
      config.gem "gettext_activerecord"
      config.gem "gettext_rails"
    end
    

    ざっと駆け足で説明してみました。不明点があれば聞いてください。ぜひともお試しを~。


追記