Localizzazione e internazionalizzazione con Rails 2.2

17 febbraio 2009

Le applicazioni multiligua devono anche essere in grado di adattarsi al particolare modo rappresentare i dati di reioni dverse, non solo traducendo i messaggi di testo, ma anche cambiando la formattazione delle date o dei numeri decimali.

Se da tempo sono disponibili plugin per il framework Rails che permettono di affrontare il problema dell’internazionalizzazione, la versione 2.2 di Rails espone un set di API che permette la costruzioni di funzionalità dedicate alla localizzazione, incorporando un backend semplificato che espone le funzionalità più comuni.

Con questa strategia Rails raggiunge il duplice scopo di includere nel framework gli strumenti minimi per applicazioni multiligua e di offrire la base per lo sviluppo di soluzioni differenti che sostituiscano quella di base.

Con ogni probabilità questa impostazione sarà adottata con insistenza delle prossime major release di Rails.

In questo articolo esploriamo le funzionalità disponibili nel backend per l’internazionalizzazione di Rails 2.2, chiamato Simple Backend per sottolineare l’intento di offrire un set minimo di funzionalità. Utilizzeremo come esempio l’applicazione creata per l’articolo dedicato ai filtri in Rails, che può essere generata ex novo con i seguenti comandi:

rails int_notes
cd int_notes
ruby script/generate scaffold Note title:string content:text username:string password:string
rake db:migrate

Prime configurazioni

Come prima cosa impostiamo la lingua (e tutto il contesto culturale locale) di default per l’applicazione, modificando il file config/environment.rb. L’istruzione riportata sotto dovrebbe essere già presente nel file di configurazione ma commentata:

...
config.i18n.default_locale = :en
...

Questa istruzione impone all’applicazione di utilizzare il contesto locale identificato dal simbolo en tutte le volte che non è richiesto l’utilizzo di un contesto specifico. La configurazione del contesto locale corrispondente al simbolo en risiede nel file config/locales/en.yml, dove il nome del file corrisponde al simbolo utilizzato per identificare la lingua.

Seguendo questa regola creiamo il file config/locales/it.yml che conterrà la configurazione locale in italiano, identificata dal simbolo it.

Questi file di configurazione sono di tipo Yaml, lo stesso formato utilizzato per la configurazione del database (file config/database.yml), è possibile specificare i file anche come script Ruby con estensione rb ma è meno consueto.

Nei file Yaml le impostazioni sono espresse in modo gerarchico; ad esempio:

en: # simbolo che identifica il locale
  lorem:
    ipsum: "foo"
    dolor: "bar"
  sit: "foobar"

definisce proprietà che rispondono a:

lorem.ipsum con valore foo
lorem.dolor con valore bar
sit con valore foobar
Se vuoi aggiornamenti su Localizzazione e internazionalizzazione con Rails 2.2 inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Localizzazione e internazionalizzazione con Rails 2.2

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy