Перевод маршрутов в Rails 3.1 без каких-либо драгоценностей - PullRequest
1 голос
/ 29 ноября 2011

В предыдущем проекте Rails 2.3 я использовал гем translate_routes для выполнения перевода маршрутов. Это работало отлично. В моем новом проекте Rails 3.1, опять же, мне нужен перевод маршрута. К сожалению, translate_routes больше не работает, и Рауль, его разработчик, объявил, что больше не будет поддерживать драгоценный камень. Я попытался поработать с одним из форков проекта, который должен быть в порядке на Rails 3.1, но я не мог сделать большую часть этого.

Есть ли способ построить перевод маршрута без драгоценного камня?

Вот пример рабочего маршрута без перевода.

  constraints(:subdomain => 'admin') do
    scope "(:locale)", :locale => /fr|de/ do
           resources :country, :languages
          match '/' => 'home#admin', :as => :admin_home
    end
  end

Как видите, я также хочу иметь маршрут по умолчанию без локали, который используется для моей локали по умолчанию: en.

Кто-нибудь делал это раньше? Спасибо

Ответы [ 2 ]

1 голос
/ 03 июня 2014

Видел ваш пост ранее, но позже обнаружил другое решение.Я хотел перевести маршруты Rails и их действия с ресурсами по умолчанию, но мне не понравилось, как они rails-translate-routes добавили _nl к моим путевым именам по умолчанию.

В итоге я это сделал (также работает в rails4.0), что должно быть хорошим решением, когда вы представляете свое приложение только на 1 или 2 языках.

# config/routes.rb
Testapp::Application.routes.draw do
  # This scope changes resources methods names
  scope(path_names: { new: I18n.t('routename.new'), edit: I18n.t('routename.edit') }) do

    # devise works fine with this technique
    devise_for :users, path: I18n.t('routename.userspath')

    # resource path names can be translated like this
    resources :cars, path: I18n.t('routename.carspath')

    # url prefixes can be translated to
    get "#{I18n.t('routename.carspath')}/export", to: 'cars#export'

  end
end

И

# config/locales/nl.yml
nl:
  routename:
    ## methods
    new: 'nieuw'
    edit: 'aanpassen'
    ## resources, etc.
    userpath: 'gebruikers'
    carspath: 'voertuigen' 

Результат:

  • / voertuigen
    • / voertuigen / nieuw
    • / voertuigen / aanpassen
    • / voertuigen / export

Обновление и уничтожение не являются необходимыми, поскольку они связываются с корнем как последующие действия.Сохрани свою работу;)

1 голос
/ 07 февраля 2012

Возможно, немного поздно для вас, но это может быть полезно для других, попробуйте форк translate_routes:

https://github.com/francesc/rails-translate-routes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...