Show Menu
ARGOMENTI×

Estrazione di stringhe per la conversione

Utilizzate xgettext-maven-plugin per estrarre le stringhe dal codice sorgente che devono essere tradotte. Il plugin Maven estrae le stringhe in un file XLIFF che si invia per la traduzione. Le stringhe vengono estratte dalle seguenti posizioni:
  • File sorgente Java
  • File sorgente JavaScript
  • Rappresentazioni XML delle risorse SVN (nodi JCR)

Configurazione dell'estrazione della stringa

Configurate il modo in cui lo strumento xgettext-maven-plugin estrae le stringhe per il progetto.
/filter { }
/parsers {
   /vaultxml { }
   /javascript { }
   /regexp {
      /files {
         /java { }
         /jsp { }
         /extjstemplate { }
      }
   }
}
/potentials { }

Sezione
Descrizione
/filter
Identifica i file analizzati.
/parser/vaultxml
Configura l'analisi dei file Vault. Identifica i nodi JCR che contengono stringhe esternalizzate e suggerimenti per la localizzazione. Identifica anche i nodi JCR da ignorare.
/parser/javascript
Identifica le funzioni JavaScript che esternalizzano le stringhe. Non è necessario modificare questa sezione.
/parser/regexp
Configura l’analisi dei file Java, JSP e ExtJS Template. Non è necessario modificare questa sezione.
/potenziale
Formula per il rilevamento di stringhe da internazionalizzare.

Identificazione dei file da analizzare

La sezione /filter del file i18n.any identifica i file analizzati dallo strumento xgettext-maven-plugin. Aggiungete diverse regole di inclusione ed esclusione che identificano i file analizzati e ignorati, rispettivamente. Includete tutti i file ed escludete quelli che non desiderate analizzare. In genere, si escludono i tipi di file che non contribuiscono all’interfaccia utente o i file che definiscono l’interfaccia utente ma che non vengono convertiti. Le regole di inclusione ed esclusione hanno il formato seguente:
{ /include "pattern" }
{ /exclude "pattern" }

La parte pattern di una regola viene utilizzata per corrispondere ai nomi dei file da includere o escludere. Il prefisso del pattern indica se il nodo JCR (la sua rappresentazione in Vault) o il file system corrisponde.
Prefisso
Effetto
/
Indica un percorso JCR. Pertanto, questo prefisso corrisponde ai file sotto la directory jcr_root.
*
Indica un file regolare nel file system.
nessuno
Nessun prefisso o un pattern che inizia con un nome di cartella o file indica un file regolare nel file system.
Se utilizzato all'interno di un pattern, il carattere / indica una sottodirectory e * il carattere corrisponde a tutti. Nella tabella seguente sono elencate diverse regole di esempio.
Regola di esempio Effetto
{ /include "*" } Includi tutti i file.
{ /exclude "*.pdf" } Escludete tutti i file PDF.
{ /exclude "*/pom.xml" } Escludere i file POM.
{ /exclude "/content/*" } { /include "/content/catalogs/geometrixx/templatepages" } { /include "/content/catalogs/geometrixx/templatepages/*" }
Escludete tutti i file sotto il nodo /content.
Includete il nodo /content/catalog/geometrixx/templatepages.
Includete tutti i nodi secondari di /content/catalog/geometrixx/templatepages.

Estrazione delle stringhe

nessun POM:
mvn -N com.adobe.granite.maven:xgettext-maven-plugin:1.2.2:extract  -Dxgettext.verbose=true -Dxgettext.target=out -Dxgettext.rules=i18n.any -Dxgettext.root=.

Con POM: Aggiungi questo a POM:
<build>
    <plugins>
        <plugin>
            <groupId>com.adobe.granite.maven</groupId>
            <artifactId>xgettext-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
                <rules>i18n.any</rules>
                <root>jcr_root</root>
                <xliff>cq.xliff</xliff>
                <verbose>true</verbose>
            </configuration>
        </plugin>
    </plugins>
</build>

il comando:
mvn xgettext:extract

File di output

  • raw.xliff : stringhe estratte
  • warn.log : eventuali avvertenze, se CQ.I18n.getMessage() l'API viene utilizzata in modo errato. Questi hanno sempre bisogno di una correzione e poi di una nuova esecuzione.
  • parserwarn.log : eventuali avvertenze del parser, ad esempio problemi del parser js
  • potentials.xliff : candidati "potenziali" che non sono estratti, ma potrebbero essere stringhe leggibili dall'uomo che necessitano di traduzione (possono essere ignorati, producono ancora una grande quantità di falsi positivi)
  • strings.xliff : file xliff appiattito, da importare in ALF
  • backrefs.txt : consente la ricerca rapida delle posizioni del codice sorgente per una determinata stringa