Extração de strings para tradução

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 strings são extraídas dos seguintes locais:

  • Arquivos de origem Java
  • Arquivos de origem JavaScript
  • Representações XML de recursos SVN (nós JCR)

Configurando a extração de string

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 que são analisados.
/parsers/vaultxml Configura a análise de arquivos Vault. Identifica os nós JCR que contêm sequências de caracteres externalizadas e dicas de localização. Também identifica nós JCR a serem ignorados.
/parsers/javascript Identifica as funções do Javascript que externalizam strings. Não é necessário alterar esta seção.
/parsers/regexp Configura a análise de arquivos Java, JSP e ExtJS Template. Não é necessário alterar esta seção.
/potenciais A fórmula para detectar strings para internacionalizar.

Como identificar os arquivos a serem analisados

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 arquivos que são analisados e ignorados, respectivamente. Você deve incluir todos os arquivos e excluir os arquivos que não deseja analisar. Normalmente, você exclui tipos de arquivos que não contribuem com a interface do usuário ou que definem a interface do usuário, mas que 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 do padrão de uma regra é usada para corresponder aos nomes dos arquivos a serem incluídos ou excluídos. O prefixo de 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, esse prefixo corresponde arquivos abaixo do diretório jcr_root.
* Indica um arquivo regular no sistema de arquivos.
nenhum Nenhum prefixo ou padrão que começa com um nome de pasta ou arquivo indica um arquivo regular no sistema de arquivos.

Quando usado em um padrão, o caractere / indica um subdiretório e o * corresponde a todos. A tabela a seguir lista várias regras de exemplo.

Exemplo de regra Efeito
{ /include "*" } Inclua todos os arquivos.
{ /exclude "*.pdf" } Exclua todos os arquivos PDF.
{ /exclude "*/pom.xml" } Excluir arquivos POM.
{ /exclude "/content/*?lang=pt-BR" } { /include "/content/catalogs/geometrixx/templatepages?lang=pt-BR" } { /include "/content/catalogs/geometrixx/templatepages/*?lang=pt-BR" }

Exclua todos os arquivos abaixo do nó /content.

Inclua o nó /content/catalogs/geometrixx/templatepages.

Inclua todos os nós filhos de /content/catalogs/geometrixx/templatepages.

Extração das strings

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

Arquivos de saída

  • raw.xliff: strings extraídas

  • warn.log: avisos (se houver), se CQ.I18n.getMessage() a API for usada incorretamente. Eles sempre precisam de uma correção e depois de uma nova execução.

  • parserwarn.log: avisos do analisador (se houver), por exemplo, problemas com o analisador js

  • potentials.xliff: Candidatos "potenciais" que não são extraídos, mas podem ser strings legíveis para humanos que precisam de tradução (podem ser ignorados, ainda produzem uma enorme quantidade de falsos positivos)

  • strings.xliff: arquivo xliff nivelado, a ser importado para ALF

  • backrefs.txt: permite uma pesquisa rápida de locais de código fonte para uma determinada string

Nesta página