2010-08-31 4 views
11

Мой config/locales/pl.yml файл (выборка из here):Rails 2.3.5 I18n месяц/именины перевод проблема

pl: 
    date: 
    day_names: [Niedziela, Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota] 
    month_names: [~, Styczeń, Luty, Marzec, Kwiecień, Maj, Czerwiec, Lipiec, Sierpień, Wrzesień, Październik, Listopad, Grudzień] 

В script/console:

I18n.locale = 'pl' 
=> "pl" 

Time.now.strftime("%A, %B") 
=> "Tuesday, August" 

Почему? Или, по-другому, как я могу перевести месячные имена? Я также отмечу, что файл locale определенно читается, так как он включает в себя множество других переводов, которые все работают.

ответ

17

Это зависит от того, какую версию рельсов вы используете. Есть помощник, чтобы перевести это на rails 3.0.0 (я не знаю, из какой версии он был доступен).

В представлении вы можете написать

localize Time.now, :format => '%A, %B' 

в сценарий/консоли (или Рельсы консоли), попробуйте ввести:

controller.localize Time.now, :format => '%A, %B' 

и посмотреть, если он работает. Там также l помощник (строчная L), который является обобщающим для localize:

controller.l Time.now, :format => '%A, %B' 
+0

Спасибо! Все дело в использовании 'localize' вместо помощника' translate'. Btw, в консоли (в Rails 2.3) это должно быть 'helper.localize Time.now,: format =>"% B "', а не 'controller.'. И еще одно дополнение - вы должны иметь записи 'pl, time, formats' в' pl.yml'. –

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