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

April 07, 2007 [長年日記]

[Ruby] Ruby-GetText-Package ノルウェー語リソース

ノルウェーの森でおなじみの(?)ノルウェー語のリソースファイルを追加しました。これで1.9をリリース後にすでに4言語目、全部で22言語目です。これで言えることは、海外では少なくとも20人以上の人が使ってくれているということです。広がりを感じますね!

nb



[Linux] Gripで日本語タイトルの曲をうまく切り出し・保存できない

なぜだか、日本語タイトルの曲が全て .wav, .mp3という形になってしまう。こりゃ困った。ということでインターネットを探してみたら、「solarisでMP3(grip)」という記事を見つけた。でこの記事に書いてあるとおりに、Gripの「設定」→「切り出し」の「ファイルの実行書式」を

~/Music/%*A/%*d/%*n.wav

それから、「設定」→「エンコーダ」→「エンコーダ」→「ファイルの書式」を

~/Music/%*A/%*d/%*n.%x

としたら無事に動作した(エンコーダにはlameを使用)。よかった。

でも、なんでだろう。ちょっと前にはできてたと思うんだけどなぁ。うーん。

[Misc] DNS落ちた?

なんだか、しばらくGoogleやYahoo!などの検索サイトにアクセスできなかった。

#一部jpドメインのサイトにはアクセスできたんだけどキャッシュが残っていた可能性もあり。

無事復旧したからよかったけど、一体何があったんだろう。うちのプロバイダ(のDNS)だけ?


April 14, 2007 [長年日記]

[tDiary] リンク元を非表示に

そろそろまじめにレンタルサーバの負荷削減を考えないとCGI停止されちゃうな、ということでまずはリンク元を非表示にしてみた。ちょっとはマシになるか?


April 15, 2007 [長年日記]

[Rails] FunctionalTestとIntegrationTestでローカライズの確認テスト

そろそろまじめにRuby-GetText-Packageのテストケースの1つとしてテスト用Railsアプリを作ってそれのテストを書いていこうと思いたち、Railsのテストケースを勉強し始めてみた(っておぃ(^^;))。

で、お恥ずかしながら多少混乱したので整理しておこうと思う。ローカライズされた文字列もきちんとテストしたかったんだよなぁ、と言う人(プロジェクト)には参考になるかも。

最初にRuby-GetText-Packageがどのようにローカライズする言語を特定するかのおさらい。Ruby-GetText-PackageのCGIバージョンではHTTP_ACCEPT_LANGUAGE、クッキーに保持された"lang"という値、QUERY_STRINGの"lang"というパラメータの値、GetText.locale=で指定した言語、のそれぞれを参照してローカライズする言語を決める(後者の方が優先)。つまり、ローカライズ用のテストではそれらのどれかを明示的に指定してあげる必要がある。

FunctionalTestでは、前述したロケールの値はいずれにせよparams["lang"]にいったん格納されるのでそれを応用する。テストのメソッドだけ抜き出すとこんな感じ。

test/functional/xxxxs_controller_test.rbのテスト例:
  def test_list
    get :list, :lang => "ja"
    puts @response.body  #実際はテストを書く。
  end

IntegrationTestでは、第3引数にHTTPヘッダを利用できるので、よりリアル(?)なテストができる。まぁ、正直、アプリのテストでこの差は意味ないとは思うけど(^^;)。

test/integration/xxx_test.rbのテスト例:
  def test_list
    get "/articles/list", nil, :accept_language => "ja"
    puts @response.body
  end

もちろん、第2引数を使うのであれば、FunctionalTestと同様に:langを使ったテストが可能。

test/integration/xxx_test.rbのテスト例:
  def test_list
    get "/articles/list", :lang => "ja"
    puts @response.body
  end

ちなみに、Functionalか、Integrationのどちらでローカライズのテストをするのか?ってちょっと迷うね。両方ってこともないだろうから、どちらかでやれば良いと思うんだけど・・・。部品のテストでないのであればFunctionalではなくIntegrationで実施するのが良いのではないかと思うんだけど、実際はどうなのかな。

っとまぁ、そんなこんなで書き方もわかったことだし、テストを書き始めるとするか・・・、ってこんな時間かよ、明日にしよう。

#そしてテストはいつになっても書き始まらないのだった。つづく。

あ、そうそう。どのテストでもGetText.locale = "ja"とかしてしまえば強制的に日本語化できちゃうんだけど、それはCGIのルールを全く無視してしまう方法なのでできれば上で述べた方法をお薦めします。


April 30, 2007 [長年日記]

[Ruby] Ruby gettextのデモ

さくさんがRuby-GetTextとRailsを使った動画デモを作ってくださいました。ありがとうございました。みなさんも是非ごらんくださいまし。

#Macってかっこいいですねぇ。

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

さく [ゴメンナサイ削除しました。 将来また作るならニコ動にうpかなぁ。]

むとう [ツッコミが残ってるのに気づきませんでした・・・。すみませんm(__)m。 削除、やむなしですかねー。もちろんどこか..]