Rails 4和route_translator gem

时间:2014-01-06 11:40:22

标签: ruby-on-rails ruby-on-rails-4 haml rails-routing rails-i18n

我正在使用路线翻译宝石翻译我的路线,但我无法以我想要的方式工作。

所以基本上我安装了gem并将路由插入到

    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"}

在我的haml视图中,我使用link_to导航到新页面。英语是我的默认语言,所以我的默认路由是user_path,但是如果我在不同语言的页面上,比如/ cs / home,所有翻译工作(t中的文本('word to translate')有效,但是链接不会被翻译,如果我点击它我会进入页面/用户而不是/ cs / users

我该如何解决这个问题?

我尝试将语言环境置于变量“users _#{locale} _path”的名称中,然后将值提取出来,我无法得到如何解决这个问题的答案(现在我只有一个字符串,我的链接看起来像/ users_cs_path)。

所以,我的问题是: 我这样做是错误的吗? 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

感谢。

1 个答案:

答案 0 :(得分:1)

尝试在RouteTranslator.config

中添加此内容
RouteTranslator.config do |config|
  config.generate_unnamed_unlocalized_routes = true
end