17

Perché number_to_currency(33.50, :locale => :fr) visualizza $ 33,50? Dovrebbe essere visualizzato in valuta diversa in base alla locale. Mi aspetterei un risultato di 33,50 €.number_to_currency locale converting

Grazie mille!

+0

Comprendendo che tutti i francesi vivono in Europa? Non è possibile mappare la lingua preferita di qualcuno per la valuta all'interno del proprio gruppo demografico. Ad esempio, immagina qualcuno che si trasferisce in un altro paese. O nel mio caso, è francese canadese. – fbelanger

risposta

18

Per far funzionare questo è necessario disporre di un file locale a config/locales/fr.yml affinché funzioni. Puoi ottenerlo da qui: https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/fr.yml.

L'opzione :locale dichiara solo a Rails quale locale si desidera che sia. Rails non ha tutte le traduzioni per tutte le lingue del progetto e quindi è necessario includere questi file di traduzione da soli.

32

So che è un po 'tardi. Ma volevo solo expalin la risposta di cui sopra. Usarlo come segue:

number_to_currency(aNumber, :locale => :fr) 

Questo utilizza il file config/locales/fr.yml. È possibile formare il proprio formato di valuta e definirlo in config/locales/fr.yml. Il file conterrà quanto segue:

fr: 
    number: 
    currency: 
     format: 
      unit: '€' 
      delimiter: ',' 
      separator: '.' 
      precision: 2 
      format: '%u%n' 

unit è la valuta Simbolo. inoltre è possibile formattare l'intera stringa con lo format:. Ulteriori informazioni su questo Here