為免自己忘記怎樣為 Rails application set 多語言支援,所以記在這裏
主要參考這裏: http://guides.rubyonrails.org/i18n.html
加進以下的 code
# app/controllers/application_controller.rb
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options={})
logger.debug "default_url_options is passed options: #{options.inspect}\n"
{ :locale => I18n.locale }
end
然後加上這樣類型的 route
# config/routes.rb
scope "(:locale)", :locale => /en|nl/ do
resources :books
match '/:locale' => 'dashboard#index'
end
再加上在 config/locales/ 裏有對應的 yml/rb 檔 (en.yml, zh.yml),各頁面用 t('KEY') 來 load string,便可以用 /en/books, /zh/books 的 link 去各語言版面了。
要注意的是 rails 預設只載入 config/locales/*.yml 如果還想替拆細各語言檔方便管理,如
locales
|- en.yml
|- zh.yml
|-- pages
| |- en.yml
| |- zh.yml
便要做以下的 setting ,這樣 rails 才會轉入其他路徑下的 yml
# config/application.rb
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
覺得自己寫 webapps 的技術完全沒有進步。
每次寫 webapps 時,都覺得自己不斷在重覆同一樣的工作,想過將他們 group 在一起又當成 function 寫,無奈技術和時間不足,不能實行。每次重覆又重覆的寫差不多的 code ,然後自己又 test 到嘔血,真的什麼心情也沒有。
某一次讀到 XDite 的 blog ,認識到 Ruby on Rails (RoR),直到最近下定決心學習,才驚覺自己寫 code 的技術真的落後十年! RoR 實在太方便了!簡單的實行 MVC 和 ORM, unit testing 也能簡單的實行,再加上將不同 libraries 整合,不用自己下載解壓再加入 path,實在方便到不行!有點相逄恨晚。
初學 RoR 推薦看 Ruby on Rails Tutorial: Learn by Example,透過寫一個類似 twitter 的 webapps,帶出 RoR 基礎的 function,還教你 git 和 heroku,更有很多進階的 reference 。看完後要寫一個 webapps 無甚難度了。
現在,我也要寫一個用 RoR 的網站了!
每次寫 webapps 時,都覺得自己不斷在重覆同一樣的工作,想過將他們 group 在一起又當成 function 寫,無奈技術和時間不足,不能實行。每次重覆又重覆的寫差不多的 code ,然後自己又 test 到嘔血,真的什麼心情也沒有。
某一次讀到 XDite 的 blog ,認識到 Ruby on Rails (RoR),直到最近下定決心學習,才驚覺自己寫 code 的技術真的落後十年! RoR 實在太方便了!簡單的實行 MVC 和 ORM, unit testing 也能簡單的實行,再加上將不同 libraries 整合,不用自己下載解壓再加入 path,實在方便到不行!有點相逄恨晚。
初學 RoR 推薦看 Ruby on Rails Tutorial: Learn by Example,透過寫一個類似 twitter 的 webapps,帶出 RoR 基礎的 function,還教你 git 和 heroku,更有很多進階的 reference 。看完後要寫一個 webapps 無甚難度了。
現在,我也要寫一個用 RoR 的網站了!
訂閱:
文章 (Atom)
