2015-07-14 5 views
17

Sto cercando di utilizzare "I18n.transliterate per" normalizzare "del testo con caratteri accentati in modo da poterlo analizzare e confrontarlo con lingue diverse.I18n :: InvalidLocale:: it non è un locale valido

Tuttavia, quando si utilizza questo metodo il seguente errore si apre su

I18n::InvalidLocale: :en is not a valid locale 
    from /home/xxx/.rvm/gems/ruby-2.1.5/gems/i18n-0.7.0/lib/i18n.rb:284:in `enforce_available_locales!' 
    from /home/xxx/.rvm/gems/ruby-2.1.5/gems/i18n-0.7.0/lib/i18n.rb:235:in `transliterate' 
    from (irb):2 
    from /home/xxx/.rvm/rubies/ruby-2.1.5/bin/irb:11:in `<main>' 

Ho fatto delle ricerche di questo problema e ho trovato solo soluzioni relative alla configurazione rotaie. Sto solo usando questo in un file di Ruby, niente relativo a Rails, quindi ... Cosa posso fare?

risposta

35

Mi sembra di avere un problema simile che ho risolto controllando il codice sorgente associato all'errore.

ho scoperto che devo impostare in modo esplicito le variabili locali in questo modo:

I18n.config.available_locales = :en 

Non sono sicuro se questo è l'approccio corretto, vedo anche che la seguente ottiene lo stesso effetto ed è probabile più robusto.

+0

Questo dovrebbe essere contrassegnato come la risposta –

+0

Dove? quale file? –

+0

@ArnoldRoa qualsiasi file nella cartella 'config/initializers', puoi usare' text_resources.rb' – bigsolom