Come tradurre un sito realizzato con Drupal

Ragazzo spaventato con logo drupal

Con una quota di mercato intorno al 2%, Drupal è un solido concorrente per il quarto posto come CMS (dopo WordPress, Joomla e Squarespace) preferito dai proprietari di siti web. Grazie alla sua natura modulare e alle sue potenti funzionalità, Drupal è spesso utilizzato come framework per sviluppare applicazioni web e siti destinati a ricevere molto traffico. Questo articolo si concentra sulle caratteristiche di base per l’internazionalizzazione e la traduzione di Drupal 8, anche se alla fine del 2020 è stata rilasciata la versione 9.

Il 4º CMS al mondo

Gratuito e open source, Drupal consente di sviluppare e gestire siti web attraverso una solida interfaccia di amministrazione.

Grazie alle decine di migliaia di moduli aggiuntivi e di temi grafici disponibili è possibile creare siti di enormi dimensioni senza alcun intervento sul codice sorgente: i moduli, a volte già impacchettati in distribuzioni pronte all’uso, permettono agli sviluppatori web di estendere le funzionalità del sistema non presenti nell’installazione nativa.

Dalla versione Drupal 8, per esempio, i moduli di internazionalizzazione sono già inclusi nel sistema base. Il sistema è così già pronto per accogliere pagine in lingue diverse, attivare il language switcher, ecc. (se invece il sito si basa sulla versione 7 di Drupal, è bene consultare le informazioni sul modulo “Internationalization (i18n)”). Inoltre i messaggi di sistema e l’interfaccia sono già tradotti dalla community in decine di lingue e si possono aggiungere con pochi clic.

Preventivo di traduzione di un sito Drupal

La buona notizia quindi è che dobbiamo concentrarci solo sui contenuti del sito veri e propri, che devono innanzitutto essere conteggiati per poter preventivare tempi e costi della traduzione.

Prima di iniziare un progetto di localizzazione web con Drupal, è necessario individuare dove si trovano i testi di partenza. Ecco un elenco dei contenuti traducibili più comuni:

  • Messaggi dell’interfaccia e di sistema
  • Contenuto generato dagli utenti
    • Menu, pulsanti e CTA
    • Header e footer
    • Pagine
    • Blog
    • Widget
    • Commenti
    • Metadati
    • Taxonomy
  • Temi
  • Moduli
  • File esterni
    • Immagini
    • PDF
    • Video
  • Codice incorporato

Per stimare il volume di un sito web prima di installare un modulo di localizzazione, si possono usare varie tecniche, anche se nessuna darà un conteggio esatto quanto l’elaborazione di ciascun contenuto attraverso un CAT tool. Tuttavia, almeno per farci una prima idea del carico di lavoro, è possibile:

  • Fare un conteggio delle parole dei documenti di testo sorgente, se il team di copywriting ha salvato i contenuti come file di testo (docx, Google docs, ecc.)
  • Fare un conteggio delle parole di un’esportazione SQL (dump del database in XML), accedendo al database MySQL sottostante attraverso PHPMyAdmin o utilizzando un modulo specifico
  • Esportare i contenuti in formato CSV, usando un apposito modulo, come Entity Export CSV e fare un conteggio di questo file
  • Fare un conteggio delle parole di una copia statica del sito web, scaricando i file HTML con HTTrack Website Copier, che è gratuito e open source, o WebCopy.

Gli eventuali file esterni presenti devono essere conteggiati separatamente e possono seguire il flusso di lavoro standard del fornitore di traduzioni. Di conseguenza non saranno presi in considerazione qui.

Come tradurre i messaggi di sistema e dell’interfaccia di Drupal

Come anticipato, non dobbiamo preoccuparci di tradurre i messaggi di sistema e dell’interfaccia perché vengono aggiunti direttamente quando viene importato il pacchetto della lingua, attingendo alle traduzioni realizzate dalla community.

Quindi, per fare in modo che le voci di base del menu, come “Home”, “Contact”, il contenuto della pagina 404 e gli altri testi simili vengano visualizzati nella nuova lingua, occorre innanzitutto attivare tutti i moduli della sezione Extend → Multilingual e aggiungere la lingua o le lingue di destinazione da Configuration → Regional and language → Languages.

Conferma aggiunta nuova lingua Drupal

A questo punto, per consentire ai visitatori del sito di passare da una lingua all’altra è necessario attivare il blocco Language switcher nella pagina di amministrazione dei blocchi: in Structure → Block layout, scegliere un’area della pagina in cui si vuole che compaia l’elemento, cliccare su Place block, cercare “Language switcher” e salvare. In alternativa ci sono appositi moduli come Dropdown Language, che permette di aggiungere un menu a tendina per scegliere la lingua.

Se vogliamo usare il back-end di Drupal (per l’amministrazione del sito web) nella nostra lingua, tale impostazione dipende dalle preferenze del singolo utente. In Configuration → Regional and language → Languages, cliccare sulla scheda Detection and selection e verificare che l’opzione Account administration pages sia attiva. Dopodiché, nella sezione Language settings del proprio profilo utente, modificare la lingua delle pagine di amministrazione dal menu a tendina Language.

Le traduzioni esistenti possono essere modificate dall’interfaccia utente in Configuration → Regional and language → User interface translation. In alternativa si può esportare le stringhe in formato .pot, tradurle offline e importarle nuovamente nel sito. Attenzione, però: quando vengono aggiunti o modificati elementi di Drupal, i relativi testi verranno tradotti dalla community e rilasciati al pubblico. Se Drupal è impostato in modo che le traduzioni vengano aggiornate automaticamente, le stringhe eventualmente modificate (da voi) verranno sovrascritte con la traduzione predefinita (della community).

Come tradurre temi e moduli di Drupal

Per quanto riguarda i temi, a partire da Drupal 8 è stato introdotto Twig, che sostituisce PHPTemplate come motore predefinito. Questo significa che le funzioni theme_* e i file basati su PHP *.tpl.php sono stati sostituiti da template *.html.twig.

Twig si serve del modulo Internationalization per consentire agli sviluppatori di temi di usare il codice {% trans %}...{% endtrans %} che rende traducibile il testo inserito tra questi tag. Ma se un tema non è stato sviluppato secondo queste specifiche e si trovano stringhe hard-coded che devono essere tradotte, il testo non viene rilevato come traducibile e rimarrà nella lingua originale. La soluzione a questo problema è creare una copia del tema e modificarla manualmente. Dopodiché occorre assegnare il tema modificato alle pagine tradotte utilizzando un modulo aggiuntivo specifico, come Switch Page Theme.

Nel caso dei moduli, se seguono le migliori prassi di internazionalizzazione, dovrebbe essere presente un file in formato Portable Object (.po/.pot) per ciascuna lingua, quindi basterà tradurre questo file, rinominarlo con il codice della lingua di destinazione e aggiungerlo al modulo. Se invece il modulo non segue questa prassi e si rilevano stringhe non traducibili perché sono hard-coded, si hanno due opzioni:

  • contattare lo sviluppatore del modulo e chiedergli di aggiornare il modulo secondo le specifiche corrette
  • creare una copia del modulo, modificare a mano il codice e installarlo come modulo separato, quindi utilizzare il modulo modificato sulle pagine tradotte

Come tradurre i contenuti generati dagli utenti in Drupal

Il processo di traduzione dei contenuti principali, come pagine e articoli, inizia installando il modulo Translation Management Tool (TMGMT) e attivando tutti i moduli presenti in Expand → Translation management. Questo modulo serve sia a esportare e importare i contenuti in formato XLIFF o HTML, sia a collegarsi ai più diffusi strumenti di traduzione come Trados Studio e Memsource. Nel primo caso si procederà con la traduzione offline, vale a dire inviando i file esportati al proprio fornitore di traduzioni, mentre nel secondo la traduzione avverrà online, poiché il sistema di traduzioni recupera i contenuti direttamente da Drupal.

TMGMT

Configurare l’esportazione XLIFF/HTML in Drupal

Vediamo brevemente il primo caso. A seconda del workflow di traduzione, ci sono alcune opzioni da configurare. Nella sezione Translation → Providers il formato di default di esportazione è XLIFF, il campo target è vuoto e i tag HTML sono escaped, il che significa che appariranno come testo traducibile in un CAT tool. Se si sceglie invece il formato HTML, non è disponibile alcuna personalizzazione.

Configurazione XLIFF

Il vostro fornitore di traduzioni vi saprà indicare come scegliere e configurare il formato ed è comunque vivamente consigliato verificare la configurazione e l’intero processo di esportazione-traduzione-importazione con un paio di pagine o post di esempio.

Flusso di lavoro XLIFF tipico

Passiamo ora a illustrare in modo schematico il tipico flusso di lavoro con il formato XLIFF. Per prima cosa bisogna cliccare sulla scheda Sources per creare un lavoro di traduzione prima di poterlo esportare e scaricare:

  1. Selezionare il contenuto da esportare
  2. Selezionare le lingue di origine e di destinazione nella casella Checkout
  3. Cliccare su Request translation
  4. Selezionare File exchange nella casella Configure provider
  5. Selezionare il formato di file XLIFF
  6. Cliccare su Submit to provider

A questo punto il file risultante è pronto da scaricare:

  1. Cliccare sulla scheda Jobs
  2. Cliccare su Manage in corrispondenza del job in questione per aprire la schermata Jobs overview
  3. Scorrere fino alla casella Translation job messages
  4. Cliccare il link per il download

Ora è possibile mandare i file a tradurre e, quando le traduzioni sono pronte, tornare alla schermata Jobs overview e selezionare dal computer i file XLIFF tradotti per caricarli. Dopodiché, si può rivedere e modificare la traduzione prima che venga pubblicata online.

Convalida traduzioni

In questo passaggio sono anche disponibili uno strumento di convalida, per controllare che tutti i campi siano compilati, e una verifica dei tag HTML, per assicurarsi che il formato sia mantenuto. Una funzione utile di questo passaggio è l’anteprima, che permette di controllare come appariranno le pagine tradotte.

Flusso di lavoro con un connettore TMS

In alternativa al flusso di lavoro offline, molte piattaforme di traduzione come Memsource, Smartling e Wordbee offrono un connettore che non richiede il passo intermedio di importazione ed esportazione, ma interagisce direttamente con Drupal e tutto il processo di traduzione avviene online.

In questo caso bisogna creare un provider di traduzione. Ecco la procedura prendendo Memsource come esempio:

  1. Installare il modulo Memsource Translation Plugin for TMGMT
  2. Nella sezione Translation → Providers, cliccare su Add provider e aggiungere nome e descrizione.
  3. Sotto Provider plugin, selezionare Memsource.
  4. Compaiono le impostazioni specifiche di Memsource e il campo Memsource Home URL contiene l’indirizzo https://cloud.memsource.com/web.
  5. Inserire lo username e la password di Memsource e cliccare su Connect
  6. Cliccare su Save

In alcuni casi sarà necessario generare e inserire delle chiavi API, ma la procedura è di solito molto simile. A questo proposito vi rimandiamo alla documentazione di ciascun modulo per configurarli correttamente.

Conclusione

La traduzione di un sito in Drupal può presentare difficoltà tecniche se il sito è particolarmente voluminoso o complesso, o sono state effettuate delle personalizzazioni a livello di codice.

Tutto sommato comunque Drupal è uno dei sistemi per la creazione di siti che si prestano meglio alla localizzazione, soprattutto perché i due moduli principali (Internationalization e TMGMT) sono nativi e, oltre a essere gratuiti come il sistema base, garantiscono una compatibilità al 100%.

Purtroppo però soffre un po’ la sua scarsa diffusione e il fatto che, essendo un progetto open source, lo sviluppo dei moduli a volte viene abbandonato. Quindi è importante valutare e scegliere con una certa lungimiranza il sistema di traduzione online, se si decide di percorrere quella strada, perché ci si vincola a un certo connettore che deve garantire gli aggiornamenti e la compatibilità con versioni future.

Per quanto riguarda invece la traduzione offline, Drupal offre un sistema abbastanza sicuro di esportazione e importazione in formati standard (XLIFF e HTML) che sono compatibili con tutti i sistemi di traduzione in circolazione e può diventare una sorta di backup se il workflow online dovesse diventare impraticabile.

Link utili

Se non è specificato altrimenti, le risorse sono in inglese.

Traduttore tecnico, project manager, mentore e ammiratore dell’ingegno. Socio fondatore di Qabiria.

Leggi anche:

Parla con uno di noi

Spiegaci cosa ti serve con una mail a hola@qabiria.com o attraverso il modulo di contatto. Risposta garantita entro 24 ore, ma di solito molto prima.

Contattaci