Rails I18n e il passaggio elegante dei messaggi a JavaScript
Il processo di “internazionalizzazione” consiste solitamente nell’estrapolare dall’applicazione tutte le stringhe e gli altri elementi specifici delle impostazioni locali (come i formati di data o di valuta). Il processo di “localizzazione” consiste invece nel fornire traduzioni e formati localizzati per tali elementi.
Come funziona l'I18n in Ruby on Rails
❝I limiti del mio linguaggio sono i limiti del mio mondo.❞ ‒Ludwig Wittgenstein. Con oltre 6.909 lingue distinte nel mondo, la maggior parte delle quali differisce in tanti modi diversi (ad esempio nelle regole di formazione del plurale), è difficile fornire strumenti specifici per l'internazionalizzazione. Tuttavia, per superare le barriere linguistiche, l'API I18n di Rails si concentra su:
- offrire supporto per l'inglese e lingue simili già di serie
- rendendo facile personalizzare e ampliare ogni aspetto per altre lingue
Nell'ambito di questa soluzione, ogni stringa statica nel Struttura Rails – ad esempio, i messaggi di convalida di Active Record, i formati di data e ora – è stato internazionalizzato, quindi localizzazione di un'applicazione Rails significa “sovrascrivere” queste impostazioni predefinite.
1.1 L'architettura generale della biblioteca
Pertanto, la gemma Ruby I18n è suddivisa in due parti:
- L'API pubblica del framework i18n – un modulo Ruby con metodi pubblici che definiscono il funzionamento della libreria
- Un backend predefinito (il cui nome è stato scelto appositamente Semplice (backend) che implementa questi metodi
In qualità di utente, dovresti sempre e solo accedere ai metodi pubblici del modulo I18n, ma è utile conoscere le funzionalità del backend.
Ecco il modo più semplice per implementare l'internazionalizzazione in JavaScript;
a) Utilizzare lo script
<script type=”text/javascript”>
window.I18n =
</script>
b) È possibile aggiungere il codice riportato di seguito in JS file;
I18n[“en-US”][“alpha”][“welcome”];
c) Chiedi aiuto al strumento di supporto per le applicazioni aggiungendo il metodo riportato di seguito;
def traduzioni_attuali
@translations ||= I18n.backend.send(:translations)
@translations[I18n.locale].with_indifferent_access
FINE
d) Il backend deve essere inizializzato, se non lo è già stato.
I18n.backend.send(:init_translations) a meno che I18n.backend.initialized?
#: ora puoi esportare in tutta sicurezza le traduzioni in formato JSON
e) Inserisci il codice seguente nel tuo application.html.erb ;
<script type=”text/javascript”>
window.I18n =
</script>
f) Per evitare di dover conoscere le impostazioni locali correnti in JavaScript.
I18n[“alpha”][“welcome”]; oppure I18n.alpha.welcome;
g) Varie librerie e plugin per l'internazionalizzazione e la localizzazione:
i18next – https://github.com/i18next/i18next
Gem I18n – https://github.com/svenfuchs/i18n
requirejs-i18n – https://requirejs.org/docs/api.html#i18n
A RailsCarma Utilizziamo gli strumenti e le tecniche più all’avanguardia per sviluppare applicazioni uniche. Dai un’occhiata a il nostro portafoglio per capire in che modo stiamo contribuendo a trasformare il panorama del settore del software. Per saperne di più sullo sviluppo con Ruby on Rails, Contattaci subito!