Use xgettext-maven-plugin para extrair strings do código-fonte que precisam ser traduzidas. O plug-in Maven extrai strings para um arquivo XLIFF que você envia para tradução. As cadeias de caracteres são extraídas dos seguintes locais:
Configure como a ferramenta xgettext-maven-plugin extrai strings para o seu projeto.
/filter { }
/parsers {
/vaultxml { }
/javascript { }
/regexp {
/files {
/java { }
/jsp { }
/extjstemplate { }
}
}
}
/potentials { }
Seção | Descrição |
---|---|
/filter | Identifica os arquivos analisados. |
/parsers/vaultxml | Configura a análise dos arquivos do Vault. Identifica os nós JCR que contêm strings externalizadas e dicas de localização. Também identifica nós JCR a ignorar. |
/parsers/javascript | Identifica as funções JavaScript que externalizam strings. Não é necessário alterar esta seção. |
/parsers/regexp | Configura a análise de arquivos de modelo Java, JSP e ExtJS. Não é necessário alterar esta seção. |
/potenciais | A fórmula para detectar strings a serem internacionalizadas. |
A seção /filter do arquivo i18n.any identifica os arquivos que a ferramenta xgettext-maven-plugin analisa. Adicione várias regras de inclusão e exclusão que identificam os arquivos que são analisados e ignorados, respectivamente. Você deve incluir todos os arquivos e, em seguida, excluir os arquivos que não deseja analisar. Normalmente, você exclui tipos de arquivos que não contribuem para a interface do usuário ou arquivos que definem a interface do usuário, mas não estão sendo traduzidos. As regras de inclusão e exclusão têm o seguinte formato:
{ /include "pattern" }
{ /exclude "pattern" }
A parte padrão de uma regra é usada para corresponder aos nomes dos arquivos a serem incluídos ou excluídos. O prefixo do padrão indica se você está correspondendo a um nó JCR (sua representação no Vault) ou ao sistema de arquivos.
Prefixo | Efeito |
---|---|
/ | Indica um caminho JCR. Portanto, este prefixo corresponde a arquivos abaixo do diretório jcr_root. |
* | Indica um arquivo regular no sistema de arquivos. |
nenhuma | Nenhum prefixo ou padrão que comece com uma pasta ou nome de arquivo indica um arquivo regular no sistema de arquivos. |
Quando usado dentro de um padrão, o caractere / indica um subdiretório e o caractere * corresponde a todos. A tabela a seguir lista várias regras de exemplo.
Exemplo de regra | Efeito |
---|---|
{ /include "*" } |
Incluir todos os arquivos. |
{ /exclude "*.pdf" } |
Excluir todos os arquivos PDF. |
{ /exclude "*/pom.xml" } |
Excluir arquivos POM. |
{ /exclude "/content/*" }
{ /include "/content/catalogs/geometrixx/templatepages" }
{ /include "/content/catalogs/geometrixx/templatepages/*" } |
Exclua todos os arquivos abaixo do nó /content. Inclua o nó /content/catalogs/geometrixx/templatepages. Incluir todos os nós filhos de /content/catalogs/geometrixx/templatepages. |
sem 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=.
Com POM: adicione isso ao 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>
o comando:
mvn xgettext:extract
raw.xliff
: cadeias de caracteres extraídas
warn.log
: avisos (se houver), se CQ.I18n.getMessage()
A API é usada incorretamente. Eles sempre precisam de uma correção e, em seguida, uma reexecução.
parserwarn.log
: avisos do analisador (se houver), por exemplo, problemas do analisador js
potentials.xliff
: candidatos "em potencial" que não são extraídos, mas podem ser strings legíveis por humanos que precisam de tradução (podem ser ignoradas e ainda produzem uma grande quantidade de falsos positivos)
strings.xliff
: arquivo xliff nivelado, a ser importado para o ALF
backrefs.txt
: permite a pesquisa rápida de locais de código-fonte para uma determinada string