Show Menu
TEMAS×

Extracción de cadenas para traducir

Utilice xgettext-maven-plugin para extraer cadenas del código fuente que necesiten traducir. El complemento Maven extrae cadenas en un archivo XLIFF que envía para su traducción. Las cadenas se extraen de las siguientes ubicaciones:
  • Archivos de origen Java
  • Archivos de origen Javascript
  • Representaciones XML de recursos SVN (nodos JCR)

Configuración de la extracción de cadenas

Configure cómo la herramienta xgettext-maven-plugin extrae cadenas para el proyecto.
/filter { }
/parsers {
   /vaultxml { }
   /javascript { }
   /regexp {
      /files {
         /java { } 
         /jsp { }
         /extjstemplate { }
      }
   }
}
/potentials { }

Sección
Descripción
/filter
Identifica los archivos analizados.
/parsers/vaultxml
Configura el análisis de los archivos Vault. Identifica los nodos JCR que contienen cadenas externalizadas y sugerencias de localización. También identifica los nodos JCR que se deben ignorar.
/parsers/javascript
Identifica las funciones de Javascript que externalizan cadenas. No es necesario cambiar esta sección.
/parsers/regexp
Configura el análisis de los archivos de plantilla Java, JSP y ExtJS. No es necesario cambiar esta sección.
/potenciales
Fórmula para detectar cadenas que se van a internacionalizar.

Identificación de los archivos que analizar

La sección /filter del archivo i18n.any identifica los archivos que analiza la herramienta xgettext-maven-plugin. Agregue varias reglas de inclusión y exclusión que identifican los archivos que se analizan e ignoran, respectivamente. Debe incluir todos los archivos y luego excluir los archivos que no desee analizar. Normalmente, excluye los tipos de archivo que no contribuyen a la interfaz de usuario o los archivos que definen la interfaz de usuario pero que no se están traduciendo. Las reglas de inclusión y exclusión tienen el siguiente formato:
{ /include "pattern" }
{ /exclude "pattern" }

La parte de patrón de una regla se utiliza para coincidir con los nombres de los archivos que se van a incluir o excluir. El prefijo de patrón indica si está haciendo coincidir un nodo JCR (su representación en Vault) o el sistema de archivos.
Prefijo
Efecto
/
Indica una ruta JCR. Por lo tanto, este prefijo coincide con los archivos situados debajo del directorio jcr_root.
*
Indica un archivo normal en el sistema de archivos.
ninguno
Ningún prefijo, o patrón que comience por un nombre de archivo o carpeta, indica un archivo normal en el sistema de archivos.
Cuando se utiliza dentro de un patrón, el carácter / indica un subdirectorio y el * coincide con todos. En la tabla siguiente se enumeran varias reglas de ejemplo.
Regla de ejemplo Efecto
{ /include "*" } Incluir todos los archivos.
{ /exclude "*.pdf" } Excluya todos los archivos PDF.
{ /exclude "*/pom.xml" } Excluir archivos POM.
{ /exclude "/content/*" } { /include "/content/catalogs/geometrixx/templatepages" } { /include "/content/catalogs/geometrixx/templatepages/*" }
Excluya todos los archivos situados debajo del nodo /content.
Incluya el nodo /content/catalogs/geometrixx/templatepages.
Incluya todos los nodos secundarios de /content/catalogs/geometrixx/templatepages.

Extracción de cadenas

sin 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: Agregar esto al 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>

el comando:
mvn xgettext:extract

Archivos de salida

  • raw.xliff :: cadenas extraídas
  • warn.log :: advertencias (si las hay), si CQ.I18n.getMessage() la API se utiliza incorrectamente. Siempre necesitan una corrección y luego una repetición.
  • parserwarn.log :: advertencias del analizador (si las hay), por ejemplo problemas con el analizador de js
  • potentials.xliff :: Los candidatos "potenciales" que no se extraen, pero que pueden ser cadenas legibles por el hombre que necesitan traducción (se puede ignorar, y aun así produce una gran cantidad de falsos positivos)
  • strings.xliff :: archivo xliff acoplado, que se importará en ALF
  • backrefs.txt :: permite una búsqueda rápida de ubicaciones de código fuente para una cadena determinada