У меня есть многоязычное приложение в Ruby On Rails 4. За то, что я использую следующие домены:Ссылка на соответствующий путь в других локали (рельсы)
- Шведские: exempel.se
- English: example.com
- Французский: fr.example.com
- Испанский: es.example.com
Я хочу, чтобы иметь возможность сделать ссылку на соответствующий путь в другом correspo noding locale. Например, если я нахожусь по адресу www.exempel.se/denna-bloggpost, я хочу иметь возможность легко ссылаться на (английский/испанский/французский), например. www.example.com/this-here-blog-post и es.example.com/este-posto-de-bloggo (извините, не могу говорить по-испански :)).
Я понимаю, что это делается с link_to 'Spanish', locale => :es
, но это дает мне url www.exempel.se/denna-bloggpost?locale=es
, который не то, что я хочу. Я ожидаю получить доступ es.example.com/esto-posto-de-bloggo
Кажется, что default_url_options
имеет какое-то отношение к этому, но я не могу заставить его работать.
Как это решить?
Редактировать (2017-03-30): Мне также понадобится это решение для hreflang в разделе.
Я использую жемчужину route_translator
.
Я видел несколько решений для этого, но все они включают решения с ?locale=en
или просто для упрощения (например, только для одного контроллера). То, что я надеюсь на это решение, которое будет делать что-то вроде этого:
<% I18n.available_locales.each |locale| do %>
<% I18n.t(this route e.g. /denna-bloggpost) #=> /este-posto-de-bloggo, /this-blog-post, /le-post-du-blog %>
<% end %>
Считаете ли вы решение, где ссылка на 'www.exempel.se/denna-bloggpost локаль = es', но при нажатии этого перенаправляет вас' es.exempel.com/? Denna-bloggpost'? –
Я бы предпочел не подумать об этом, так как это, скорее всего, смутит Google. – Christoffer