1

我正在使用路由翻譯寶石來翻譯我的路線,但我不能以我想要的方式工作。Rails 4和route_translator寶石

所以基本上我安裝了寶石和插入路由到

localized do 
    end 

現在我有這樣

users_en GET /en/users(.:format)        users#index {:locale=>"en"} 
    users_cs GET /cs/users(.:format)        users#index {:locale=>"cs"} 
    users_de GET /de/users(.:format)        users#index {:locale=>"de"} 

在我使用的link_to我HAML意見路線導航到一個新的一頁。英語是我的默認語言,所以我的默認路由是user_path,但是如果我在不同語言的頁面(如/ cs/home)上,所有翻譯都可以工作(t中的文本('要翻譯的單詞'),但鏈接沒有得到翻譯,如果我點擊它,我得到的頁面/用戶,而不是/ CS /用戶

我該如何解決這個問題?

我試圖把語言環境的變量名內「用戶_#{locale} _path」然後提取出來的價值,把我不能得到一個答案,如何做到這一點(現在我只是一個字符串,我的鏈接看起來像/ users_cs_path)

所以,我的問題是: 1.我這樣做是錯誤的嗎? 2.如何在haml中創建一個字符串,如「users _#{locale} path」,然後將其用作變量名稱以得到如下值:「#{users#{locale} _path」}(但是,這是行不通的)。

在我locale.rb我有

# tell the I18n library where to find your translations 
    I18n.load_path += Dir[Rails.root.join('lib', 'locale', '*.{rb,yml}')] 

    # set default locale to something other than :en 
    I18n.default_locale = :en 

在我route_translator.rb

RouteTranslator.config do |config| 
     config.force_locale = true 
     #config.locale_param_key = :locale 
     config.generate_unlocalized_routes = true 
    end 

感謝。

+0

你是說該鏈接有不當,沒有本地化的URL,或有不當的文字呢? – gmile

+0

鏈接中的網址未本地化。我在頁面http:// localhost:3000/cs,關於頁面的鏈接url應該是http:// localhost:3000/cs/about_translation,但是它是http:// localhost:3000/about。因爲我有about_path,但我應該在link_to t('about')中有about_cs_path,about_path –

回答

1

嘗試RouteTranslator.config添加此:

RouteTranslator.config do |config| 
    config.generate_unnamed_unlocalized_routes = true 
end 
+0

非常感謝!!!!這實際上是訣竅。但還有另一個問題。我使用的是3.1.0版本(可用的寶石版本),這個版本沒有config.generate_unnamed_unlocalized_routes。我只需要從github下載這個版本並加入。 –