byterat

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            54 隨筆 :: 0 文章 :: 15 評論 :: 0 Trackbacks

          Ruby on Rails是一個很不錯的web開發框架,不過由于目前其本身對國際化的支持較差,所以需要一些輔助的東西來解決國際化問題。

          我最先使用的是一個叫localization的插件,這個插件的使用說明在Ruby on Rails官方的wiki上面有,這個插件使用比較簡單,不過功能比較弱。

          目前使用的是Ruby-GetText,這個插件功能強大,基于GNU的gettext,詳細的使用說明在 http://manuals.rubyonrails.com/read/chapter/105 上面有寫,我大概提一下要點:

          首先要是Ruby on Rails支持UTF-8,通過將如下代碼添加到environment.rb中:

          $KCODE = ‘u’
          require ‘jcode’

          接著是安裝Ruby-GetText,運行gem install gettext就可以了,如果是Windows平臺就選2,否則選1。接著就是在項目根目錄下面創建po目錄,里面添加你需要Locale的名字作為子目錄,比如en, zh_CN等。需要國際化的字符串都以_(”")來書寫,比如想國際化“編輯”這個標簽,就可以在視圖的rhtml中使用_(”Edit”),這樣在顯示的時候會自動根據Locale來替換成相應的值。

          接著在項目的rakefile里面如下內容:

          desc “Create mo-files for L10n”
          task :makemo do
          ? GetText.create_mofiles(true, “po”, “locale”)
          end

          需要注意的是在上面給出的鏈接的那篇文章里面,還需要添加updatepo這樣一個目標,不過這個目標在我這不起作用,總是出錯,我的辦法是下載那篇文章附帶的代碼: http://www.digitale-wertschoepfung.de/artikel/gettext/using-gettext-with-rails.tgz 。在里面的script目錄下面有一個localize文件,把它拷貝到你的項目的script目錄下面,然后運行ruby ./script/localize {文本域的名字}就可以從controllers, views中更新po數據,用Unicode編輯器(比如UltraEdit)修改各個po文件,然后運行rake makemo就可以了。關于如果修改application.rb及其他controller的代碼,查看給出的鏈接。此時重新啟動server,就可以查看效果了。

          posted on 2006-10-24 09:53 比特鼠 閱讀(1182) 評論(2)  編輯  收藏 所屬分類: Ruby on Rails

          評論

          # re: Ruby on Rails的國際化,本地化問題的解決(轉載) 2006-10-24 10:00 冰川
          恩,不錯啊!  回復  更多評論
            

          # re: Ruby on Rails的國際化,本地化問題的解決(轉載) 2007-05-26 00:34 jialno
          $KCODE = ‘u’
          require ‘jcode’

          我試過還是不行...  回復  更多評論
            

          主站蜘蛛池模板: 郯城县| 安新县| 巴中市| 古田县| 宝应县| 瑞丽市| 嘉善县| 河池市| 新竹县| SHOW| 磴口县| 江都市| 永济市| 曲沃县| 景宁| 绥滨县| 津南区| 白银市| 腾冲县| 青河县| 肇庆市| 大兴区| 德江县| 辉南县| 龙里县| 姜堰市| 礼泉县| 桦川县| 攀枝花市| 长兴县| 稻城县| 任丘市| 平和县| 德阳市| 南投县| 罗城| 甘德县| 元江| 开阳县| 蒲城县| 江川县|