1

Я использую переводчик 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 

Спасибо.

+0

Вы говорите, что ссылка имеет неправильный, а не локализованный URL, или он имеет неправильный текст в нем? – gmile

+0

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 –

ответ

1

Попробуйте добавить это в RouteTranslator.config:

RouteTranslator.config do |config| 
    config.generate_unnamed_unlocalized_routes = true 
end 
+0

Спасибо большое !!!! Это действительно трюк. Но была и другая проблема. Я использовал версию 3.1.0 (доступна версия gem), и эта версия не имела config.generate_unnamed_unlocalized_routes. Мне просто нужно было скачать версию из github и добавить это. –

Смежные вопросы