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:
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. |
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/*?lang=it" }
{ /include "/content/catalogs/geometrixx/templatepages?lang=it" }
{ /include "/content/catalogs/geometrixx/templatepages/*?lang=it" } |
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. |
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
raw.xliff
: stringhe estratte
warn.log
: eventuali avvertenze, se l' CQ.I18n.getMessage()
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