Come tradurre le stringhe JavaScript in Rails

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!

LUBAIB CEEJEY
Sr. Ruby on Rails Sviluppatore

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Informazioni sull'autore del post

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


it_ITItalian