Я использую переводчик gm маршрута, чтобы перевести мои маршруты, но я не могу заставить его работать так, как я хочу.Rails 4 и route_translator 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 _ # {locale} _path", а затем извлечь значение вне, поместить я не могу получить ответ о том, как это можно сделать (теперь у меня есть только строка, и моя ссылка выглядит как/users_cs_path).
So , мои вопросы: 1. Я делаю это неправильно? 2. Как я могу создать строку в Haml как «пользователей _ # {локали} путь», а затем использовать его в качестве имени переменной, чтобы получить значение, как: «# {пользователей # {локали} _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
Спасибо.
Вы говорите, что ссылка имеет неправильный, а не локализованный URL, или он имеет неправильный текст в нем? – gmile
URL-адрес ссылки не локализован. Я нахожусь на странице http: // localhost: 3000/cs, а URL-адрес ссылки для страницы должен быть http: // localhost: 3000/cs/about_translation, но это http: // localhost: 3000/about. Потому что у меня есть about_path, но у меня должен быть about_cs_path в link_to t ('about'), about_path –