2016-12-20 1 views
0

J'ai une application Rails 2.2.2 qui utilise I18n v0.6.0.La traduction du nom (I18n) ne semble pas fonctionner

J'ai une config/locales/fichier da.yml avec ce contenu:

--- 
da: 
    date: 
    abbr_day_names: 
    - søn 
    - man 
    - tir 
    - ons 
    - tor 
    - fre 
    - lør 
    abbr_month_names: 
    - 
    - jan 
    - feb 
    - mar 
    - apr 
    - maj 
    - jun 
    - jul 
    - aug 
    - sep 
    - okt 
    - nov 
    - dec 
    day_names: 
    - søndag 
    - mandag 
    - tirsdag 
    - onsdag 
    - torsdag 
    - fredag 
    - lørdag 
    formats: 
     default: "%d.%m.%Y" 
     long: "%e. %B %Y" 
     short: "%e. %b %Y" 
    month_names: 
    - 
    - januar 
    - februar 
    - marts 
    - april 
    - maj 
    - juni 
    - juli 
    - august 
    - september 
    - oktober 
    - november 
    - december 

Donc, je puis entrer dans la console et faire

I18n.locale = "da" 
=> "da" 
60.days.ago.strftime("%a %A %d %b %B %Y") 
=> "Fri Friday 21 Oct October 2016" 

J'attends obtenir

=> "Fre Fredag 21 Okt Oktober 2016" 

Il ne ressemble I18n sait au sujet de la traduction, comme je peux le faire:

I18n.translate("date.day_names") 
=> ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"] 

Mais, cela ne fonctionne pas dans strftime.

Suis-je en train de mal comprendre quelque chose?

Répondre

1

Jetez un oeil à this post.

I18n.localize (some_date,: format => '% a% A% d% b% B% Y')

+0

Ah, oui, cela fonctionne, grâce: 'I18n.localize (60.days.ago,: format => "% a% A% d% b% B% Y") => "fredag ​​21 oct oktober 2016" '. Notre base de code est pleine de strftimes donc je pense que je vais corriger le patch strftime pour appeler I18n.localize. Il semble que strftime titleizes la chaîne résultante aussi. Merci! –