Anteprima
PartitechSonataExtraBundle fornisce un modo pratico di gestire le traduzioni in Sonata Admin. Questo bundle include due comandi principali: sonata:extra:translation-create-template e sonata:extra:translation-import-template. Questi comandi facilitano la creazione e l'importazione di traduzioni, ottimizzando il processo e integrandosi con un servizio di traduzione esterno.
Ordini
Ordine sonata:extra:translation-create-template
Descrizione
Questo comando prepara il tuo contenuto per la traduzione. Crea una struttura di directory con file contenenti il testo da tradurre.
Uso
bin/console sonata:extra:translation-create-template --site=[SITE_ID] --reference-site=[REFERENCE_SITE_ID] --service="[ADMIN_SERVICE]"
--site: L'ID del sito per il quale devono essere create le traduzioni.--reference-site: L'identificativo del sito di riferimento.--service: Il servizio di amministrazione per il quale sono necessarie delle traduzioni.
uscita
Il comando genera un insieme di directory e file sotto var/cache/translation/YourService/. Per ogni identificativo articolo, troverete file come:
payloadArray.txt: Contiene frasi da tradurre.payloadArray_translated.json: Per memorizzare il contenuto tradotto.- Altri file per gestire il contenuto strutturato come l'HTML.
Ordine sonata:extra:translation-import-template
Descrizione
Questo comando importa il contenuto tradotto nel tuo database, ricostruendo la struttura HTML.
Utilizzo
Dopo aver tradotto il contenuto, esegui:
bin/console sonata:extra:translation-import-template --service="[ADMIN_SERVICE]"
Panoramica del processo
- Disattivare la traduzione automatica: Per prima cosa, assicuratevi che la traduzione automatica sia disattivata.
- Creare un modello di traduzione: usare il comando sonata:extra:translation-create-template per generare file di traduzione.
- Tradurre il contenuto: Invia il contenuto di
payloadArray.txtal servizio di traduzione selezionato o a un traduttore professionista. Compilate il contenuto tradotto in payloadArray_translated.json. - Gestire i contenuti strutturati: per i campi HTML, utilizzare field_content_payload.txt per la traduzione e aggiornare di conseguenza field_content_translation.txt.
- Importare traduzioni: Esegui il comando sonata:extra:translation-import-template per aggiornare i tuoi contenuti con le nuove traduzioni.
Esempio
# Creating translation templates
bin/console sonata:extra:translation-create-template --site=5 --reference-site=2 --service="Partitech\SonataExtra\Admin\ArticleAdmin"
# Importing translated content
bin/console sonata:extra:translation-import-template --service="Partitech\SonataExtra\Admin\ArticleAdmin"
Gestire contenuti strutturati come l'HTML
Quando si tratta traduzioni per campi di testo contenenti contenuti strutturati (ad esempio, HTML), il PartitechSonataExtraBundle fornisce un metodo sofisticato per assicurarsi che la struttura e la formattazione siano preservate. Questo è particolarmente importante per il contenuto che include tag HTML, frammenti di codice, immagini e altri media incorporati.
Comprendere la struttura dei file
Il comando sonata:extra:translation-create-template genera più file per aiutare in questo processo :
field_content_code_blocks.json: Questo file contiene «blocchi di codice» o sezioni del contenuto HTML che non devono essere tradotte. Questo può includere estratti di codice reali, media incorporati o altri elementi non testuali nel tuo contenuto HTML.field_content_payload.txt: Questo file include il testo del tuo contenuto HTML che necessita di traduzione. Prima di creare questo file, il pacchetto estrae gli elementi non traducibili (come quelli in field_content_code_blocks.json) e li sostituisce con dei segnaposto. Questa estrazione garantisce che venga tradotto solo il testo necessario, ottimizzando sia la qualità sia il costo della traduzione.field_content_translation.txt: Dopo aver tradotto il contenuto infield_content_payload.txt, il testo tradotto deve essere inserito in questo file.
Il processo di traduzione
Ecco una panoramica dettagliata di come funziona il processo di traduzione per i contenuti strutturati:
- Estrarre gli elementi non traducibili: Il pacchetto identifica ed estrae le parti del contenuto HTML che non hanno bisogno di essere tradotte (ad esempio, i blocchi di codice, le immagini) e le memorizza in field_content_code_blocks.json. Questi elementi vengono sostituiti da segnaposto nel testo HTML.
- Il contenuto testuale da tradurre, ora privo degli elementi non testuali, è collocato in field_content_payload.txt. Questo testo deve essere sottoposto a traduzione.
- Reinserire il testo tradotto: Una volta tradotto, il nuovo testo viene inserito in field_content_translation.txt.
- Ricostruire il contenuto HTML: Durante il processo di importazione (sonata:extra:translation-import-template), il bundle ricompone il contenuto HTML. Combina il testo tradotto di field_content_translation.txt con gli elementi non traducibili di field_content_code_blocks.json, sostituendo i segnaposto con il loro contenuto originale.
Conclusione
Questa funzionalità semplifica il processo di traduzione in Sonata Admin, integrandosi perfettamente con gli strumenti di traduzione esterni e garantendo una gestione efficace dei contenuti.
Adattare l’esempio alla versione installata
Gli esempi Symfony e Sonata rimangono legati alle versioni indicate nell’articolo. Symfony 4.x e Symfony 6.2 non sono più supportati: per un progetto attuale, utilizzate un ramo mantenuto e la documentazione corrispondente esattamente alle vostre dipendenze.
php bin/console about
composer show symfony/framework-bundle sonata-project/admin-bundle
Prima di riprendere il codice, controllate le firme, i servizi, le rotte e i template interessati. Aggiungete poi un test funzionale che copra le autorizzazioni, il codice HTTP e il risultato visibile.
Riferimento : versioni di Symfony supportate.