我正在使用子域来确定 Rails 4 网站中的区域设置。我完全按照我想要的方式使用区域设置切换器,但现在我需要翻译路线,并且我不确定继续的最佳方法。
我看过https://github.com/kwi/i18n_routing https://github.com/kwi/i18n_routingi18n 路由 gem 但这不适用于子域,它似乎通过添加 /locale 来更改路径,这不是我需要的。
其他的 gem 似乎在 Rails 4 中已经过时了。
Edit
基本上我希望能够使用相同的视图助手,但更改网址以使用所选子域反映的任何语言。这只是关于路线翻译。
我有可以工作的特定于语言的模板,并且可以生成特定于语言的导航模板,但我真的不想担心更改 erb 路径和 url erb 标签
End edit
来自routes.rb的示例
scope module: 'countries', shallow: true do
get 'south_american', to: 'south_america#index', as: :south_america
scope module: 'south_america' do
get 'south-america-weather', to: 'weather#index', as: :south_america_weather
get 'south-america-gps-maps', to: 'gps#index', as: :south_america_gps
get 'south-america-accommodation', to: 'hotels#index', as: :south_america_hotels
get 'south-america-vacations', to: 'vacations#index', as: :south_america_vacations
get 'south-america-facts', to: 'facts#index', as: :south_america_facts
end
使用 South_america_hotels_path 作为示例将生成一个 url
南美洲住宿
这很棒,但是我该如何翻译它,以便当我在西班牙子域 South_america_hotels_path 上时将生成以下网址
南美洲奥特尔莱斯
UPDATE
另外,这对于 url 而不仅仅是路径如何工作,以便
South_america_hotels_url 将生成
en.some_site/南美洲住宿
当在西班牙子域上时我会得到
es.some_site/南美洲酒店
对于所涉及的不同区域设置等等。
我很高兴使用 yml 文件来翻译 url,或者在 paths.rb 文件中定义其他路由,这两种方法都是一个选项,但我更愿意在 paths.rb 中定义 url,但我无法找到为基于子域的相同 :as path/url 选项提供特定于语言的 url 的方法。
针对之前的回复进行更新和进一步澄清。
更改 url 不是一个选项,它们需要匹配现有的 url。我只需要知道如何从视图助手的角度翻译它们,而不必更改视图助手。