Estrazione di stringhe per la traduzione extracting-strings-for-translating
Utilizza xgettext-maven-plugin per estrarre le stringhe dal codice sorgente che devono essere tradotte. Il plug-in Maven estrae le stringhe in un file XLIFF che invii per la traduzione. Le stringhe vengono estratte dalle seguenti posizioni:
- File Java di origine
- File sorgente JavaScript
- Rappresentazioni XML delle risorse SVN (nodi JCR)
Configurazione dell’estrazione della stringa configuring-string-extraction
Configura 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 { }
Identificazione dei file da analizzare identifying-the-files-to-parse
La sezione /filter del file i18n.any identifica i file analizzati dallo strumento xgettext-maven-plugin. Aggiungi diverse regole di inclusione ed esclusione che identificano i file analizzati e ignorati, rispettivamente. È necessario includere tutti i file e quindi escludere i file che non si desidera analizzare. In genere, vengono esclusi i tipi di file che non contribuiscono all’interfaccia utente o i file che definiscono l’interfaccia utente ma che non vengono tradotti. Le regole di inclusione ed esclusione hanno il seguente formato:
{ /include "pattern" }
{ /exclude "pattern" }
La parte pattern di una regola viene utilizzata per far corrispondere i nomi dei file da includere o escludere. Il prefisso del pattern indica se stai facendo corrispondere un nodo JCR (la sua rappresentazione in Vault) o il file system.
Se utilizzato all’interno di un pattern, il carattere / indica una sottodirectory e il carattere * corrisponde a tutto. Nella tabella seguente sono elencati diversi esempi di regole.
Estrazione delle stringhe extracting-the-strings
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 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 output-files
-
raw.xliff
: stringhe estratte -
warn.log
: avvertenze (se presenti), seCQ.I18n.getMessage()
L’API non viene utilizzata correttamente. Per queste operazioni è sempre necessaria una correzione e quindi una nuova esecuzione. -
parserwarn.log
: avvisi del parser (se presenti), ad esempio problemi del parser js -
potentials.xliff
: candidati "potenziali" che non vengono estratti, ma che potrebbero essere stringhe leggibili dall’uomo che necessitano di traduzione (possono essere ignorati, producono comunque una quantità enorme 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