Rails 2.2.2 używać I18n, czy nie ..?

Witam!

Mam małą aplikację do której trzeba dodać kilka języków (docelowo pewnie z 5). Wersje językowe dotyczą tylko interfejsu bez bazy. Moje pytanie: używać I18n (nie miałem z tym do czynienia), czy może zastosować jakiś plugin (np. simple localization )…?

E, nie ma przymusu.
Pobaw sie jednym i drugim, zobacz co Ci bardziej odpowiada :slight_smile:

Hmm… z drugiego (plugin, simple locallization) kiedyś korzystałem, ale skoro teraz jest I18n, to może korzystanie z plugin-ów mija się z celem w moim przypadku …?

E, nie ma przymusu. Pobaw sie jednym i drugim, zobacz co Ci bardziej odpowiada :-)
Właściwie to jest przymus :slight_smile:

W obecnej chwili jedyne sensowne (globalize2?) pluginy są oparte o I18n (chyba, że o czymś nie wiem), więc tak czy siak w jakiejś postaci się będzie wykorzystywać ten moduł.

simple_localization i inne pluginy dla starszych wersji już nie działają, bo tak jak pisałem w innym wątku, to był jeden wielki hack wpinający się gdzie można alias_method_chainem.

Dlatego pytanie powinno raczej brzmieć: czy lepiej jest pracować z czystym I18n, czy z jakąś nakładką w stylu globalize2?

A odpowiedź: zależy od potrzeb :wink:

Dorzucę swoje 2 grosze: simple_localization to okropnie napisany plugin, hackuje klasy Time/Date w sposób który zmienia ich funkcjonalność (np. parse przestaje działać) (przynajmniej kiedyś tak robił, już od dłuższego czasu go nie używam). Polecam trzymać się od tego pluginu z daleka i przyjrzeć się I18n w Rails.

Przyjrzałem się i18n, wszystko ładnie pięknie do momentu kiedy sobie wymyśliłem, że chcę, żeby URL-e wyglądały www.mojadomena.com/pl/../, www.mojadomena.com/en/../ itd.
Przerobiłem http://guides.rubyonrails.org/i18n.html “Setting locale from the URL params” a potem - http://rails-i18n.org/wiki/pages/how-to-encode-the-current-locale-in-the-url

Dodałem do mojej aplikacji, application.rb:

[code]def set_locale
I18n.locale = params[:locale] if params[:locale]
end

def default_url_options(options = nil)
{ :locale => I18n.locale }
end[/code]
w routes.rb dodałem

..., :path_prefix => '/:locale'

Problem pojawia się we View, url_helper, np. edit_thing_path, który generuje url bez ‘pl’, ‘en’

Jak to obejść bez ingerencji w helper-y?
Może Rails 2.3 rozwiązuje ten problem?

Będę wdzięczny za wskazówki :slight_smile: