2011-01-14 7 views
5

Ich würde gerne andere Fall von Monatsnamen in Polnisch verwenden. Zum Beispiel jetzt funktioniert es wie folgt aus:Monat Namen Flexion in Rails I18n

>> I18n.l Time.now, :format => "%e %B" 
=> "14 styczeń" 

aber ich würde ein anderes Format des Monats angeben möchten:

>> I18n.l Time.now, :format => "%e %Q" 
=> "14 stycznia" 

Übersetzt Monatsnamen sind in meiner pl.yml Datei in pl.date.month_names. Und ich möchte es nicht ändern. Ich kann pl.date.another_month_names in dem anderen Fall hinzufügen, aber ich weiß nicht, wie man I18n.l Methode macht, es zu benutzen.

Also wie kann ich das erreichen? Andere Lösungen (Helfer, benutzerdefinierte Methoden usw.) sind ebenfalls willkommen.

+0

Sie schlagen einen harten Gegenstand, der Lokalisierer für eine lange Zeit gewesen ist frequentieren - wie mit Sprachen anspruchsvoller als Englisch beschäftigen. Was Sie unten als Antwort auf Ihre eigene Frage vorgeschlagen haben, ist eher ein Workaround als eine Lösung, aber es scheint der beste Ansatz zu sein, bis die Lokalisierungen eine ausgefeiltere Flexionsunterstützung erhalten, zumindest etwas, was dem Pluralisierungsprogramm bereits entspricht. – silverdr

Antwort

5

Da niemand meine Frage beantwortet hat, habe ich eine Lösung gefunden.

Ich habe gerade eine andere Übersetzung, zum Beispiel alt_pl.yml und ich meine benutzerdefinierten Monatsnamen hinzugefügt, dann:

>> I18n.l Time.now, :format => "%e %Q", :locale => :alt_pl 
=> "15 stycznia" 
3

i in Deutsch Übersetzung ein ähnliches Problem mit fremden Monatsnamen hatte. Ich hatte die Monatsnamen in meinem locale.yml zu konfigurieren, jetzt ist es wie erwartet funktioniert:

de: 
    defaults: &defaults 
    month_names: 
     [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember] 
    formats: 
     default: "%d. %B %Y" 
     short: "%d.%m.%Y" 
    date: 
    <<: *defaults 
    time: 
    <<: *defaults