Identificação do conteúdo a ser traduzido

As regras de tradução identificam o conteúdo a ser traduzido para páginas, componentes e ativos que estão incluídos ou excluídos de projetos de tradução. Quando uma página ou ativo está sendo traduzido, AEM extrai esse conteúdo para que ele possa ser enviado ao serviço de tradução.

As páginas e os ativos são representados como nós no repositório JCR. O conteúdo extraído é um ou mais valores de propriedade dos nós. As regras de conversão identificam as propriedades que contêm o conteúdo a ser extraído.

As regras de tradução são expressas em formato XML e armazenadas nesses locais possíveis:

  • /libs/settings/translation/rules/translation_rules.xml
  • /apps/settings/translation/rules/translation_rules.xml
  • /conf/global/settings/translation/rules/translation_rules.xml

O arquivo se aplica a todos os projetos de tradução.

Observação

Após uma atualização para a versão 6.4, é recomendável mover o arquivo de /etc. Consulte Reestruturação comum de repositórios no AEM 6.4 para obter mais detalhes.

As regras incluem as seguintes informações:

  • O caminho do nó ao qual a regra se aplica. A regra também se aplica aos descendentes do nó.
  • Os nomes das propriedades do nó que contêm o conteúdo a ser traduzido. A propriedade pode ser específica para um tipo de recurso específico ou para todos os tipos de recurso.

Por exemplo, você pode criar uma regra que traduza o conteúdo que os autores adicionam a todos os componentes de Texto de base AEM suas páginas. A regra pode identificar o /content nó e a text propriedade do foundation/components/text componente.

Há um console que foi adicionado para configurar as regras de tradução. As definições na interface do usuário preencherão o arquivo para você.

Para obter uma visão geral dos recursos de tradução de conteúdo no AEM, consulte Traduzir conteúdo para sites multilíngues.

Observação

AEM suporta mapeamento de um para um entre tipos de recursos e atributos de referência para conversão de conteúdo referenciado em uma página.

Sintaxe de regra para páginas, componentes e ativos

Uma regra é um node elemento com um ou mais elementos filho property e zero ou mais node elementos filho:

<node path="content path">
          <property name="property name" [translate="false"]/>
          <node resourceType="component path" >
               <property name="property name" [translate="false"]/>
          </node>
</node>

Cada um destes node elementos tem as seguintes características:

  • O path atributo contém o caminho para o nó raiz do ramo ao qual as regras se aplicam.

  • Os property elementos filho identificam as propriedades do nó a serem traduzidas para todos os tipos de recursos:

    • O name atributo contém o nome da propriedade.
    • O translate atributo opcional é igual false se a propriedade não for traduzida. By default the value is true. Esse atributo é útil ao substituir regras anteriores.
  • Os node elementos filho identificam as propriedades do nó a serem traduzidas para tipos de recursos específicos:

    • O resourceType atributo contém o caminho que é resolvido para o componente que implementa o tipo de recurso.
    • Os property elementos filho identificam a propriedade do nó a ser traduzida. Use esse nó da mesma forma que os property elementos filho para regras de nó.

A regra de exemplo a seguir faz com que o conteúdo de todas as text propriedades seja convertido para todas as páginas abaixo do /content nó. A regra é eficaz para qualquer componente que armazene conteúdo em uma text propriedade, como o componente Texto de base e o componente Imagem de base.

<node path="/content">
          <property name="text"/>
</node>

O exemplo a seguir traduz o conteúdo de todas as text propriedades e também outras propriedades do componente de base Imagem. Se outros componentes tiverem propriedades com o mesmo nome, a regra não se aplica a eles.

<node path="/content">
      <property name="text"/>
      <node resourceType="foundation/components/textimage">
         <property name="image/alt"/>
         <property name="image/jcr:description"/>
         <property name="image/jcr:title"/>
      </node>
</node>

Sintaxe de regra para extrair ativos de páginas

Use a seguinte sintaxe de regra para incluir ativos incorporados ou referenciados de componentes:

<assetNode resourceType="path to component" assetReferenceAttribute="property that stores asset"/>

Cada assetNode elemento tem as seguintes características:

  • Um resourceType atributo que é igual ao caminho que é resolvido para o componente.
  • Um assetReferenceAttribute atributo que é igual ao nome da propriedade que armazena o binário do ativo (para ativos incorporados) ou o caminho para o ativo referenciado.

O exemplo a seguir extrai imagens do componente de base Imagem:

<assetNode resourceType="foundation/components/image" assetReferenceAttribute="fileReference"/>

Substituição de regras

O arquivo Translation_rules.xml consiste em um nodelist elemento com vários node elementos filho. AEM lê a lista do nó de cima para baixo. Quando várias regras públicos alvos o mesmo nó, a regra que é menor no arquivo é usada. Por exemplo, as seguintes regras fazem com que todo o conteúdo em text propriedades seja convertido, exceto para a /content/mysite/en ramificação de páginas:

<nodelist>
     <node path="/content”>
           <property name="text" />
     </node>
     <node path=“/content/mysite/en”>
          <property name=“text” translate=“false" />
     </node> 
<nodelist>

Propriedades de filtragem

Você pode filtrar nós que têm uma propriedade específica usando um filter elemento.

Por exemplo, as regras a seguir fazem com que todo o conteúdo em text propriedades seja convertido, exceto os nós que têm a propriedade draft definida como true.

<nodelist>
    <node path="/content”>
     <filter>
   <node containsProperty="draft" propertyValue="true" />
     </filter>
        <property name="text" />
    </node>
<nodelist>

Interface do usuário das regras de tradução

Um console também está disponível para configurar regras de tradução.

Para acessá-lo:

  1. Navegue até Ferramentas e, em seguida, Geral.

    chlimage_1-55

  2. Selecione Configuração ​de tradução.

    chlimage_1-56

Aqui, você pode Adicionar contexto. Isso permite que você adicione um caminho.

chlimage_1-57

Em seguida, é necessário selecionar o contexto e clicar em Editar. Isso abrirá o Editor de regras de tradução.

chlimage_1-58

Há quatro atributos que você pode alterar por meio da interface do usuário: isDeep, inherit, translate e updateDestinationLanguage.

isDeep Esse atributo é aplicável em filtros de nó e é true por padrão. Verifica se o nó (ou seus ancestrais) contém essa propriedade com o valor da propriedade especificado no filtro. Se falso, ele verifica somente no nó atual.

Por exemplo, nós filhos estão sendo adicionados a um trabalho de tradução mesmo quando o nó pai está com a propriedade draftOnly definida como true para sinalizar o conteúdo de rascunho. Aqui isDeep entra em execução e verifica se os nós pais têm a propriedade draftOnly como true e exclui esses nós filhos.

No Editor, você pode marcar/desmarcar Is Deep​na guia Filtros.

chlimage_1-59

Este é um exemplo do xml resultante quando Is Deep está desmarcado na interface do usuário:

 <filter>
    <node containsProperty="draftOnly" isDeep="false" propertyValue="true"/>
</filter>

herdar Isso é aplicável nas propriedades. Por padrão, cada propriedade é herdada, mas se você deseja que alguma propriedade não seja herdada no filho, é possível marcar essa propriedade como falsa para que seja aplicada somente nesse nó específico.

Na interface do usuário, você pode marcar/desmarcar Herdar na guia Propriedades .

chlimage_1-60

tradução O atributo de tradução é usado apenas para especificar se uma propriedade deve ou não ser traduzida.

Na interface do usuário, você pode marcar/desmarcar Traduzir na guia Propriedades .

updateDestinationLanguage Este atributo é utilizado para propriedades que não têm texto mas códigos de idioma, por exemplo jcr:language. O usuário não está traduzindo texto, mas o idioma local da origem para o destino. Essas propriedades não são enviadas para tradução.

Na interface do usuário, você pode marcar/desmarcar Traduzir na guia Propriedades , mas para as propriedades específicas que têm códigos de idioma como valor.

Para ajudar a esclarecer a diferença entre updateDestinationLanguage e translate, veja um exemplo simples de um contexto com apenas duas regras:

chlimage_1-61

O resultado no xml será semelhante a:

<property inherit="true" name="text" translate="true" updateDestinationLanguage="false"/>
<property inherit="true" name="jcr:language" translate="false" updateDestinationLanguage="true"/>

Editar o arquivo de regras manualmente

O arquivo Translation_rules.xml instalado com AEM contém um conjunto padrão de regras de conversão. Você pode editar o arquivo para suportar os requisitos dos projetos de tradução. Por exemplo, você pode adicionar regras para que o conteúdo de seus componentes personalizados seja traduzido.

Se você editar o arquivo Translation_rules.xml, mantenha uma cópia de backup em um pacote de conteúdo. A instalação AEM service packs ou a reinstalação de determinados pacotes AEM pode substituir o arquivo Translation_rules.xml atual pelo original. Para restaurar suas regras nesta situação, você pode instalar o pacote que contém sua cópia de backup.

Observação

Depois de criar o pacote de conteúdo, recrie o pacote sempre que editar o arquivo.

Exemplo de arquivo de regras de tradução

<nodelist>
    <!-- translation rules for Geometrixx Demo site (example) -->
    <node path="/content/geometrixx">
        <!-- list all node properties that should be translated -->
        <property name="jcr:title" /> <!-- translation workflows running on content saved in /content/geometrixx, will extract jcr:title values independent of the component. -->
        <property name="jcr:description" />
        <node resourceType ="foundation/components/image"> <!-- translation workflows running on content saved in /content/geometrixx, will extract alternateText values only for Image component. -->
            <property name="alternateText"/>
        </node>
        <node resourceType ="geometrixx/components/title">
            <property name="richText"/>
            <property name="jcr:title" translate="false"/> <!-- translation workflows running on content saved in /content/geometrixx, will not extract jcr:title for Title component, but instead use richText. -->
        </node>
        <node pathContains="/cq:annotations">
            <property name="text" translate="false"/> <!-- translation workflows running on content saved in /content/geometrixx, will not extract text if part of cq:annotations node. -->
        </node>
    </node>
    <!-- translation rules for Geometrixx Outdoors site (example) -->
    <node path="/content/geometrixx-outdoors">
        <node resourceType ="foundation/components/image">
            <property name="alternateText"/>
            <property name="jcr:title" />
        </node>
        <node resourceType ="geometrixx-outdoors/components/title">
            <property name="richText"/>
        </node>
    </node>
    <!-- translation rules for ASSETS (example) -->
    <node path="/content/dam">
        <!-- configure list of metadata properties here -->
        <property name="dc:title" />
        <property name="dc:description" />
    </node>
    <!-- translation rules for extracting ASSETS from SITES content, configure all components that embed or reference assets -->
    <assetNode resourceType="foundation/components/image" assetReferenceAttribute="fileReference"/>
    <assetNode resourceType="foundation/components/video" assetReferenceAttribute="asset"/>
    <assetNode resourceType="foundation/components/download" assetReferenceAttribute="fileReference"/>
    <assetNode resourceType="foundation/components/mobileimage" assetReferenceAttribute="fileReference"/>
    <assetNode resourceType="wcm/foundation/components/image" assetReferenceAttribute="fileReference"/>
</nodelist>

Nesta página