Ruby on rails 4号轨道和路线图
我正在使用路由转换器gem来翻译我的路由,但我无法以我想要的方式来使用它 所以基本上我安装了gem并将路由插入到Ruby on rails 4号轨道和路线图,ruby-on-rails,ruby-on-rails-4,haml,rails-routing,rails-i18n,Ruby On Rails,Ruby On Rails 4,Haml,Rails Routing,Rails I18n,我正在使用路由转换器gem来翻译我的路由,但我无法以我想要的方式来使用它 所以基本上我安装了gem并将路由插入到 localized do end 现在我有了这样的路线 users_en GET /en/users(.:format) users#index {:locale=>"en"} users_cs GET /cs/users(.:format)
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_导航到新页面。英语是我的默认语言,所以我的默认路径是user_path,但是如果我在一个不同语言的页面上,比如/cs/home,那么所有的翻译工作(t(“要翻译的单词”)中的文本工作,但是链接不会被翻译,如果我点击它,我会进入页面/users,而不是/cs/users
我怎样才能解决这个问题
我试图将区域设置放在变量名“users#{locale}\u path”中,然后将值提取出来,但我无法回答如何实现这一点(现在我只有一个字符串,我的链接看起来像/users\u cs\u 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
在我的路线上_translator.rb
RouteTranslator.config do |config|
config.force_locale = true
#config.locale_param_key = :locale
config.generate_unlocalized_routes = true
end
谢谢。尝试在
RouteTranslator.config
中添加此选项:
RouteTranslator.config do |config|
config.generate_unnamed_unlocalized_routes = true
end
你是说该链接有不正确的、未本地化的url,还是其中有不正确的文本?该链接中的url未本地化。我在页面上,关于页面的链接url应该是,但它是。因为我有关于路径,但我应该在到t(“关于”)的链接中有关于路径,关于路径非常感谢!!!!这确实起到了作用。但是还有一个问题。我使用的是3.1.0版本(gem版本可用),而这个版本没有config.generate\u unnamed\u unlocalized\u路由。我只需要从github下载这个版本并添加它。