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’

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

          主站蜘蛛池模板: 望谟县| 定陶县| 延庆县| 巢湖市| 大连市| 桃江县| 二手房| 虹口区| 祥云县| 乌鲁木齐县| 枞阳县| 桃江县| 安岳县| 广州市| 福建省| 微山县| 通许县| 泗阳县| 土默特右旗| 集安市| 赞皇县| 曲松县| 金乡县| 耒阳市| 赤峰市| 彭山县| 永济市| 安阳市| 新竹县| 宿松县| 丘北县| 西青区| 罗江县| 塘沽区| 赣榆县| 漯河市| 通城县| 洞口县| 沂源县| 章丘市| 微山县|