Internazionalizzazione di Ruby on Rails Application


I termini "i18n" e "l10n" sono spesso innescata dal mondo della tecnologia e della linguistica, ma che cosa significano?

Beh in ogni caso, "i18n" è l'abbreviazione per la parola l'internazionalizzazione. Il termine prende il nome dal fatto che la parola di internazionalizzazione ha 18 lettere tra la "i" e "n". Analogamente, "l10n" rappresenta la posizione perché ci sono 10 lettere tra la "l" e "n".




Ora che abbiamo queste definizioni fuori strada, è il momento di andare al lavoro, o come mi piace chiamare B6S.

Perché internazionalizzare l'applicazione Rails?

Gli sviluppatori spesso vengono da me e mi chiedono perché dovrei preoccuparmi l'internazionalizzazione delle sue applicazioni web. Beh, la risposta è spesso dire un sonoro "Perché no?" La verità è che è un diavolo di un molto più facile per internazionalizzare un sito fin dall'inizio, quindi sollevare un'applicazione esistente.

Oltre ad essere morto semplice, ci sono molte altre ragioni per voler internazionalizzare il sito. Qui sono solo alcuni:

  1. Raggiungere un pubblico globale. Se si limita il vostro sito solo nella loro lingua madre, si può essere la perdita di milioni di utenti. Anche se si sono appena agli inizi, è importante preparare in anticipo per il mercato globale.
  2. Prendete la vostra copia. Se avete intenzione di internazionalizzare una applicazione Rails, è probabile che si utilizzerà la gemma i18n predefinito e mettere in qualche file YML traduzioni. Oltre a rendere il testo i18n pronto, questo ha il vantaggio di eliminare tutte le copie in un formato che può essere modificato per i non-sviluppatori. Con il testo in YML, lima traduttori/editor non deve avere familiarità con il codice per aggiornare il testo del vostro sito, liberando tempo di sviluppo prezioso.
  3. Migliora le tue prove. Molti sviluppatori, me compreso, ritengono che la localizzazione può rendere la vostra visione più robusto di test automatizzati, come dice questo post del blog. Quando tutto il testo viene tradotto correttamente, è possibile confrontare ciò che è visibile direttamente contro ciò che viene emesso dalla traduzione delle squadre di soccorso, invece di contro prove statiche. Ciò significa che una (valida) facile per aggiornare la copia del vostro sito non causare errori di prova.


Introduzione a i18n

Quindi spero che ormai hanno venduto l'importanza di internazionalizzare la tua Ruby on Rails applicazione. La domanda successiva, però, è da dove cominciare? Fortunatamente, Rails (versione 2.2 e superiori) rende facile includere i18n predefinite i18n gioiello. Ciò significa che l'aggiunta di nuove traduzioni è semplice come modificare il file "config/local/en.yml". Quindi, andare avanti, cominciamo con l'aggiunta di una semplice chiave di questo file:

# Config/local/en.yml in: ciao: "Ciao, come stai?"

Ora, in uno dei suoi punti di vista, semplicemente fare riferimento a questa traduzione invocando l'aiuto traduzione rotaie:

# App/views/home/index.html

È così facile! Secondo lei è possibile ora vedere il testo tradotto in base alla posizione. Ciò significa che per un utente inglese vedrà il messaggio di benvenuto "Hey, come stai?" Non è fantastico ?! Per ulteriori informazioni sulla internazionalizzazione della vostra applicazione, vi consiglio di leggere la guida i18n.

Oltre ai messaggi semplici come questo, si possono trovare le date e interpolare variabili nelle loro traduzioni. Tutto questo è coperto nella guida ho linkato sopra.

i18n scrittura amichevole HTML

Non basta fare affidamento solo sul metodo t Rails e chiamare un giorno. A meno che non si scrive i18n marcatura amichevole, ogni sforzo di globalizzazione e localizzazione possono essere per nulla. Ecco alcuni suggerimenti per la scrittura di alcuni HTML molto banale.

Usare UTF-8

Questo può venire come un gioco da ragazzi per alcune persone, ma mi sento vale la pena ricordare. Al fine di supportare più lingue con sede a Latina solo, dovrebbe sostenere i caratteri UTF-8. Ciò significa che è necessario assicurarsi che l'applicazione è compatibile con l'intero stack - tutta la strada dal database di livello (se si sta utilizzando Rails 4.1 configure uso ActiveRecord 'utf8mb4') per il codice Ruby per il codice. Un livello HTML questo è semplice come dichiarare il seguente nell'intestazione del documento (in HTML5 è l'impostazione predefinita):

Utilizzare l'attributo "lang" Opportunamente

Per aiutare i lettori di schermo, bruchi e altri lettori di pagina meccanica, è importante utilizzare correttamente l'attributo "lang" nei vostri elementi HTML. Ciò significa che è necessario configurare la lingua principale di un documento sulla scheda originale. Ogni volta che si cambia la lingua, è necessario stabilire un attributo "lang" in etichetta appropriata per tale contenuto. Ecco un esempio molto approssimativa di come si può fare in Rails multilingue vista in ERB:

# I18n.default_locale = 'it' per la strada ...

Come potete vedere, l'attributo "lang" consentirà ai consumatori posto non umano per imparare a giocare a diverse parti del tuo sito.

Utilizzare l'etichetta di "dir" per sostenere il testo no-sinistra-a-destra Indicazioni

Se il vostro sito non supporta il testo da sinistra a destra (che noi chiamiamo litri d'ora), assicurarsi di impostare il "dir" attributo nel tag di apertura. Quindi, se una pagina è resa in arabo, per esempio, il tag HTML dovrebbe apparire così:. Questo informa il browser che il linguaggio ha galleggiare destra per default e regola tutti gli altri elementi di conseguenza.

Altre cose da considerare

Stiamo solo grattando la superficie con questi suggerimenti, ci sono una serie di cose da considerare quando internazionalizzare il codice. Per rimanere informati, vi consiglio di leggere articoli sul tema del W3C.

i18n test

Ora che avete il vostro sito web internazionalizzato, si vuole fare in modo che rimanga così. Con questo, voglio dire che si vuole avere le prove per evitare regressioni e garantire che tutte le traduzioni sono registrate. Per cominciare, vi consiglio di leggere questo test i18n posto in Ruby on Rails. Esso copre alcune delle tecniche che possono essere utilizzate per la ricerca per le traduzioni mancanti e verificare che tutto nella vostra applicazione traduce come previsto.

La progettazione di applicazioni di test

Test automatizzati per le traduzioni manca sono solo un inizio, però. E 'qualcosa per assicurarsi che il sito ha le traduzioni mancanti, è un'altra cosa per garantire che tutte le traduzioni della dimensione corretta. Per testare la capacità di risposta del design del vostro sito, mi consiglia di utilizzare la funzione di Google Translate-i18n tasking gemma. Anche se Google API di traduzione non è più libero, è ancora relativamente a buon mercato, e si può avere l'intero sito tradotto (per lo più con successo) in decine di lingue per circa dieci dollari. Poi, una volta che hai una buona dose di traduzione, vi suggerisco di creare un insieme composito di traduzioni - una falsa locale se si vuole, che contiene solo la più lunga in ogni chiavi di linguaggio. In questo modo si può facilmente vedere come l'applicazione gestisce i linguistici scenari peggiori.

Risorse

Ormai dovreste essere a conoscenza delle nozioni di base quando si tratta Rails i18n. Se siete interessati a saperne di più, vi consiglio di controllare alcune delle seguenti risorse:

  • Configurazione Rails i18n infallibile
  • Twitter CLDR
  • Stack Overflow smile

(0)
(0)

Commenti - 0

Non ci sono commenti

Aggiungi un commento

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caratteri rimanenti: 3000
captcha