Localizzazione Magento2 Javascript


16

Una domanda simile era già stata posta qui: traduzioni di testo javascript Magento 2 , ma Magento ha aggiornato questa tecnica di traduzione nella versione beta.

Come posso aggiungere o aggiornare le traduzioni utilizzate da Javascript?

Ho capito che Magento crea un file chiamato 'js-translation.json' nella cartella statica. Se modifico direttamente questo file, vedo che le mie traduzioni vengono aggiornate. Ma dove viene creato questo file e come posso aggiungere traduzioni in modo che Magento lo aggiunga automaticamente a js-translation.json quando viene generato?

Aggiornare

La risposta corretta a questa domanda non è ancora stata data, nonostante Mage2.PRO mi abbia indicato la giusta direzione, non è la risposta completa. Il mio js-translation.json è ancora vuoto quando viene generato.

Ad esempio, mi piace tradurre il pulsante Aggiungi al carrello. Questo pulsante ha tre stati: Aggiungi al carrello, Aggiungi ... e Aggiunto ... Come posso tradurre queste parole? Un altro esempio, "Non ci sono articoli nel carrello". testo nella minicart. Penso che tutte queste frasi dovrebbero essere tradotte da js-translation.json, ma dove aggiungerle in modo che questo file sia pieno di queste traduzioni?


Non ne sono sicuro al 100%, ma penso che la risposta fornita da mage2.pro sia quella corretta. Se ad esempio questo è presente in uno dei file js $.mage.__('Add To Cart'), verrà automaticamente raccolto dal setup:static-content:deploycomando. L'unico problema è che devi avere nei file delle impostazioni locali una traduzione diversa per il testo. I testi che hanno come traduzione lo stesso testo non vengono aggiunti al file json per non aumentare le dimensioni senza motivo.
Marius

Risposte:


10

Non sono sicuro se lo hai già capito, ma ho pensato di rispondere comunque ..

Immagino che le altre risposte stiano andando nella giusta direzione.

Supponendo che abbiate già installato le traduzioni, in caso contrario:

bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL

Quindi, prima di tutto, svuota la cache (come anche altri hanno suggerito):

rm -rf var/cache var/generation var/page_cache var/view_preprocessed

In secondo luogo, cancella la cartella pub / static:

rm -rf pub/static/*/

Quindi rigeneriamo il contenuto statico: (ho perso il codice lingua nelle altre risposte ..)

bin/magento setup:static-content:deploy nl_NL - Assicurati di aggiungere il langcode

Ora controlla se sono stati creati js-translation.json:

find pub/static/ -name "js-translation.json"

Molto probabilmente otterrai un elenco di js-translation.jsonfile. Controlla questi file ed eliminali se sono vuoti o contengono qualcosa di simile [].


1
Grazie Timon, questa è davvero la strada da percorrere! L'ho capito da solo qualche tempo fa, ma non ho ancora pubblicato la risposta qui. Questa è una grande aggiunta alla domanda.
Silvan,

@Silvan Nella mia installazione il file js-translation.json ha già alcune frasi tradotte nella mia lingua ma ci sono ancora frasi che non vengono tradotte, dovrei aggiungerle manualmente a questo file?
Luis Garcia,

Non lo consiglierei, perché il file js-translation verrà sovrascritto la prossima volta che distribuirai file statici. In tal caso, è necessario aggiungere le frasi manualmente ogni volta che è stata eseguita una distribuzione. Queste frasi sono presenti nel pacchetto linguistico?
Silvan,

1

Prova ad aggiungere traduzioni ai file .csv, quindi assicurati di eseguire i passaggi successivi:

  1. L'archiviazione della cache deve essere svuotata (in pratica var / cache e var / view_preprocessed dovrebbero essere cancellate)
  2. I file statici devono essere ridistribuiti (eliminare tutte le cartelle all'interno di pub / static ed eseguire bin / magento setup: static-content: deploy)

0

Rimuovere tutto il contenuto della cache e delele pub / cartella statica.

Vai alla tua directory principale ed esegui sotto il comando: -

php bin / magento setup: static-content: deploy

Spero che il tuo problema venga risolto.


ArkadiyCh mi ha anche detto di rimuovere la cache e ridistribuire i file statici, purtroppo questo non risolve il mio problema.
Silvan,

0

Ho avuto lo stesso problema come "Impossibile tradurre le frasi in $ .mage .__ ('XXX')" quando la frase in phtml ha funzionato perfettamente. Quindi, la soluzione era ingegnosamente semplice.

$ t (...) e $ .mage analizzano solo i file * .js

Di conseguenza non rientra nel dizionario di traduzione js.

Quindi, quando si esegue il rendering di uno script di sezione in file phtml, è necessario inserire direttamente le frasi già tradotte con i wrapper __('Translated phrase').

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.