2011-01-14 18 views
5

Me gustaría utilizar diferentes casos del nombre del mes en polaco. Por ejemplo ahora funciona así:Inflexión de los nombres de los meses en Rails I18n

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

pero me gustaría que especifique otro formato de mes:

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

nombres traducidos mes están en mi archivo pl.yml en pl.date.month_names. Y no quiero cambiarlo Puedo agregar pl.date.another_month_names en el otro caso, pero no sé cómo hacer el método I18n.l para usarlo.

Entonces, ¿cómo puedo lograr eso? Otras soluciones (ayudantes, métodos personalizados, etc.) también son bienvenidas.

+0

usted golpea un objeto duro que ha estado rondando localizadores durante mucho tiempo - cómo tratar con los lenguajes más sofisticados que Inglés. Lo que sugirió a continuación como respuesta a su propia pregunta es más una solución alternativa que una solución, pero parece ser el mejor enfoque hasta que las localizaciones obtengan un soporte de inflexión más sofisticado, al menos algo similar a lo que ya tiene la pluralización. – silverdr

Respuesta

5

Como nadie respondió mi pregunta, encontré una solución.

acabo de crear otra traducción, por ejemplo alt_pl.yml y yo añadido mis nombres personalizados mes, entonces:

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

tuve un problema similar con nombres extraños mes en traducción alemana. tuve que configurar los nombres de los meses en mi locale.yml, ahora funciona como se esperaba:

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 
Cuestiones relacionadas