Qual è il modo corretto per aggiungere traduzioni di nuove stringhe tema-specifici?
-
16-10-2019 - |
Domanda
Stiamo creando un nuovo modello e abbiamo qualche nuovo testo che non sono ancora definiti da nessuna parte.
Se sarebbero stati definiti prima vorremmo aggiungere un po '
"Mage_TheModule::Foo";"Fuh"
alla translate.csv
nel tema.
Che cosa è un buon modo per affrontare con nuove traduzioni?
si eserciteranno essere aggiunto solo per il translate.csv
chiaramente senza un codice di modulo?
O è meglio / richiesto per creare un proprio modulo solo per le traduzioni?
Soluzione
La pratica migliore dipende dalla destinazione d'uso del tema:? E 'un tema che sta per essere distribuito e riutilizzato o è un tema specifico progetto
1. Tema distribuita, destinate ad essere riutilizzate
Evitare di utilizzare translate.csv
a tutti in questo caso. Non appena l'utente finale aggiunge il suo translate.csv
al suo tema bambino, questo avrà la precedenza il vostro (il solito li fallback si applica il meccanismo). Avrebbero bisogno di copiare tutto dal file originale e tenere traccia delle modifiche.
Al contrario, utilizzare un modulo tema. La maggior parte dei temi sono dotati di uno o più moduli che contengono principalmente blocchi tema specifico, ma anche nuove traduzioni. Quindi utilizzare Mage::helper('yourtheme')->__('your string')
per le traduzioni e:
- Sei al sicuro da conflitti con moduli di terze parti
- Gli utenti possono ignorare questa traduzione specifico con
Your_Theme::your string
in loro translate.csv
2. tema specifico del progetto
Per le traduzioni in un tema specifico progetto, translate.csv
è stato inventato, quindi vorrei usarlo.
Si deve sapere che il campo di applicazione del modulo non è direttamente collegato a traduzioni esistenti nei rispettivi file CSV. Così si può utilizzare un ambito traduzione esistente senza l'aggiunta di un nuovo modulo o la modifica di file CSV modulo.
Per esempio, se aggiungo un traduzioni personalizzate, che è utilizzato sulla pagina del prodotto all'interno di un blocco Mage_Catalog
, gli sguardi di traduzione in questo modo:
"Mage_Catalog::New translation","New translation"
Ulteriori informazioni su come trovare la portata di una traduzione specifica qui: Traduzioni e gerarchia di autorità
(o si potrebbe usare la mia TranslationHints estensione)
Altri suggerimenti
Il mio metodo preferito - soprattutto se avete bisogno specifico modulo di traduzioni o si desidera distribuire il modulo - è quello di creare file CSV specifici moduli (definito nel config.xml del modulo) e rilasciarli nelle rispettive directory di traduzione di app/locale
. Il tuo 'tema' sarà capire quale usare a causa di impostazioni di lingua impostazioni internazionali.
Se è tema specifico, non utilizzare il codice del modulo in translate.csv. I Personalmente non come translate.csv a tutti - ma lo preferisco alla traduzione in linea - e .
translate.csv dovrebbe essere per gli utenti finali del prodotto che devono fare aggiustamenti (ad esempio Shopping Bag vs. Carrello) per il vostro tema.
Modifica: due anni più tardi per correggere una vecchia credenza, una volta ho tenuto.
Se sono tema specifico, li si dovrebbe aggiungere al translate.csv
.
Se il vostro sito è solo in inglese, si può anche ignorare la traduzione.
Se il vostro sito è in un'altra lingua ed i testi hanno un significato a seconda di uno o più moduli che si dovrebbe aggiungere quei testi nel file di traduzione di quel modulo specifico. (Ma non modificare i file in inglese).
Di solito prendo il secondo approccio, perché sul prossimo "lifting" del sito non ho duplicare il file translate.csv
del tema.
È inoltre possibile creare un'estensione separata che gestire solo la traduzione del testo, ma se lo fai devi chiamare ogni testo come questo: Mage::helper('myhelper')->__('Some text')
. Questo è ok per uso interno, ma se si vuole riutilizzare i modelli si dovrà migrare l'estensione anche da un progetto ad un altro.
La tua domanda è retorica e vaga al tempo stesso.
Il mio approccio è esattamente come hai descritto nella sua domanda. Se le traduzioni sono specifici non modulo messo "text":"text"
normale nel translate.csv
del vostro tema. Si escluderà dipendenze dei moduli e farà anche il tema ridistribuibile con traduzioni.