自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。
Ruby言語やLinuxのネタが多いです。
March 25, 2006 [おもひで]
■ [Rails] Ruby-GetText-PackageでActionWebServiceのサポート
Ruby-GetText-Package-1.3.0とActionWebServiceを一緒に使うとエラーになるとレポートがありましたので修正しました。ActionWebServiceを使ってる方でかつRuby-GetText-Packageを使おうと考えている方はCVS版を使ってください。
■ その際に(需要があるかどうかは疑問だったのですが)、ActionWebServiceでlangパラメータを指定してあげると、controller側でローカライズができるようにしてみました。
# app/apis/product_api.rb
class ProductApi < ActionWebService::API::Base
api_method :find_product_by_id, :expects => [:lang => :string],
:returns => [{:string => String}]
end
# app/controller/backend_controller.rb
class BackendController < ApplicationController
wsdl_service_name 'Backend'
web_service_api ProductApi
def find_product_by_id(id)
_("foo") + ...
end
end
■ [Rails] config/routes.rbで言語を指定する
こちらはRuby-GetText-Package-1.3.0ですでにサポートしているのですが、以下のようにするとURL内で言語を指定することができます。
ActionController::Routing::Routes.draw do |map| map.connect 'main_ja', :lang=>'ja', :controller=>'blog', :action=>'list' map.connect ':controller/:lang/:action/:id' end
1つめのmap.connectでは、http://yourhost/main_ja とするとblog_controller.rbのlistアクションを呼び出すのですが、その際に@params["lang"]に"ja"が指定されるため、Ruby-GetText-Packageは日本語を強制的に表示し(ようとし)ます。
同様に2つめのmap.connectでは、http://yourhost/blog/ja/list/等とすると日本語を表示し(ようとし)ます。
[ツッコミを入れる]
