Integrations

Adobe Experience Manager - AEM (TMS)

Content is machine translated from English by Phrase Language AI.

Available for

  • Enterprise plan

Get in touch with Sales for licensing questions.

Available for

  • Enterprise plan (Legacy)

Get in touch with Sales for licensing questions.

Supported Versions

The Phrase Translation Plugin for Adobe Experience Manager follows the same product support periods as Adobe Experience Manager. See https://helpx.adobe.com/support/programs/eol-matrix.html for information on support periods.

Once an Adobe Experience Manager version reaches end of core support, Phrase no longer maintains the plugin. The installer will be available but no further improvements or fixes will be implemented.

  • Plugin version 2.x supports 6.5.

  • Plugin version 3.x supports AEM as a Cloud Service.

Integration release notes

Phrase Configuration

Configure In-Context Preview

The In-context preview feature offers a real-time preview of original or translated text in both the CAT web editor and CAT desktop editor.

Tables, columns, various graphics, formatting, and fonts are supported. The feature is meant to provide context when translating and is not a perfect representation of the original or completed document; some visual differences are expected. It can also be influenced by enabling/disabling Allow loading of external content in editors option in Access and Security settings.

Phrase requirements:

  • Pass through the enterprise firewall to access the on-premise installation.

  • Authenticate into the authoring environment.

Firewall configuration for on-premise installation:

  • Installation must be accessible from the following IP addresses:

    34.243.87.13, 34.248.197.209, 108.129.22.31, 3.248.158.93

  • Domain name must be able to be resolved externally.

Note

Some HTML tags present a risk and the CAT editor removes them from this HTML when displaying the preview. This is to ensure user's data privacy and security.

Examples of removed tags include FORM, IFRAME, SCRIPT, SVG, VIDEO, EMBED, OBJECT or background-image CSS properties.

Phrase TMS Settings

Pre-requisite: Create an Adobe Experience Manager user with minimum permissions required to view unpublished pages.

Tip

Create a new user called phrase-preview and add the user to the Authors group.

  1. From the Settings Setup_gear.png page, scroll down to the Integrations section.

  2. Click on Connectors.

    The Connectors page opens.

  3. Click New connector.

    The Create connector page opens.

  4. Provide a name for the connection and change the Type to Adobe Experience Manager Live Preview .

  5. Enter the Host.

    Use the host address of the Adobe Experience Manager installation (e.g., https://aem-author.example.org/ or https://author-X-Y.adobeaemcloud.com/).

    The domain name must be resolvable externally (not an intranet domain).

  6. Enter the Username and Password.

  7. To modify links contained in page HTML, provide URL rewrite rule in regexp.

    Example:

    To replace a full locale code with just the language code in https://example.org/en-us/images/sample.jpg, find /([a-z]{2})-[a-z]{2}/ and replace it with /$1/.

    Links in the tags <img src="" data-lazy-src="", <link href="", <script src="", <iframe src="" and links in CSS styles and referenced CSS files (url: ('')) will be rewritten.

  8. Click Save.

    The connector is added to the list on the Connectors page.

Note

Some HTML tags present a risk and the CAT editor removes them from this HTML when displaying the preview. This is to ensure user's data privacy and security.

Examples of removed tags include FORM, IFRAME, SCRIPT, SVG, VIDEO, EMBED, OBJECT or background-image CSS properties.

Configure Translation Workflow

To configure Adobe Experience Manager job processing create a project template configured to your needs:

  • Under Access and Security, activate the Allow loading of external content in Phrase CAT editor option.

If using legacy versions, a service and a submitter portal will need to be created and validated. To validate the configuration, follow these steps:

  1. Open an incomplete Translation Project.

  2. Select Export from the Job tile menu.

  3. Find the .XML file that contains the source text within the downloaded zip file.

  4. In Phrase, navigate to the Submitter portals used for the integration and open the listed URL.

  5. Complete the SP form, upload the .XML file, validate the email and submit.

  6. Verify the new project was created from the project template as configured.

AEM Configuration

Install the Plugin

On-premise AEM

  1. If migrating from 6.2 or 6.3 to 6.4 and above, remove all Legacy Cloud Services configurations from the Classic UI Admin tool (/miscadmin#/etc/cloudservices/memsource-translation)

    All configurations disappear from Legacy Cloud Services > Memsource Translation Plugin for AEM.

  2. In Tools, Deployment, go to Packages.

  3. Uninstall previous version of the plugin, if applicable.

  4. Select Upload package and upload the installation file.

  5. Check Force Upload and submit.

AEM as a Cloud Service

If plugin is already installed, jump to Step 4.

  1. Add local filesystem based maven repository to the AEM cloud service project root pom.xml:

    <repositories>
    ...
      <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${maven.multiModuleProjectDirectory}/repository</url>
      </repository>
    ...
    </repositories>
  2. Add plugin dependency to all/pom.xml:

    <dependency>
      <groupId>com.memsource</groupId>
      <artifactId>aem-memsource-plugin.all</artifactId>
      <version>X.X.X</version>
      <type>zip</type>
    </dependency>
  3. Add embedded block to all/pom.xml -> filevault-package-maven-plugin configuration:

    ...
    <plugin>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>filevault-package-maven-plugin</artifactId>
      <extensions>true</extensions>
      <configuration>
      <group>my_packages</group>
      <embeddeds>
       <embedded>
         <groupId>com.memsource</groupId>
         <artifactId>aem-memsource-plugin.all</artifactId>
         <type>zip</type>
         <target>/apps/aem-memsource-plugin-packages/application/install</target>
       </embedded>
    ...
  4. Add the plugin to the local maven repository. Run the following command from AEM cloud service project root replacing {memsource.plugin.path} placeholder with the path to the plugin (e.g. /tmp/aem-memsource-plugin.all-3.0.1.zip):

    mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile={memsource.plugin.path} -DlocalRepositoryPath=./repository/ -Dpackaging=zip
    
  5. Set the correct plugin version in all/pom.xml (e.g. 3.0.1):

    <dependency>
      <groupId>com.memsource</groupId>
      <artifactId>aem-memsource-plugin.all</artifactId>
      <version>3.0.1</version>
      <type>zip</type>
    </dependency>
    

Configure the Plugin

Two configurations are required:

  • Tell the system that Phrase exists by adding it as a Translation Service Provider specifying how to connect to the TMS.

  • Tell Adobe Experience Manager when and how Phrase is to be used by configuring Translation Integration Configuration.

    Example:

    Use Phrase for high-visibility content, but a machine translation vendor for community content.

Add Phrase as a Translation Service Provider

Follow these steps:

  1. In ToolsGeneral, go to Configuration Browser.

  2. Create a configuration container for each Phrase service (e.g. one configuration for human translation and a separate configuration for machine-only translation).

  3. In Cloud Services, go to Translation Cloud Services.

  4. Expand the conf directory.

  5. Create a new configuration and enter the following information:

    • Hostname: The default URL is https://cloud.memsource.com/web/ but can be different if you or the LSP is using a Custom URL.

    • Username and Password (must be in a PM role with Modify global server settings option enabled in user rights).

    Click Connect.

  6. Select other options and close the configuration.

    • Group all translation jobs in a single Phrase project 

      All translation jobs within one AEM project will be also created within one Phrase project.

      Important

      This option does not work correctly if Set job to completed once pre-translated and Set project to completed once all jobs are completed are enabled at the same time in Phrase project template settings.

    • Set Phrase job status to Delivered after import to AEM 

    • Generate analyses 

      If active, once a translation job is sent, analyses are automatically generated when the files are imported. Analyses are always generated by language, regardless of the project template settings. 

    • Generate quotes 

      If the automatic generation of analyses is activated, quotes can be generated based on these analyses.

If using legacy versions, service and submitter portal information will also be required.

Set up Translation Integration

When using the Phrase Translation Plugin for AEM, all files in the translation jobs are submitted for translation and thus returned from Phrase. Use the project Translation Integration configuration to prevent non-translatable assets or reference materials from being included in the projects.

  1. In Tools, go to Cloud Services, click Translation Cloud Services.

  2. Create a new configuration specifically for translation.

    • Ensure Translate Component Strings and Translate Tags are unchecked.

    • Set Translate page assets to Do not translate.

    • On the Assets Tab, set the Translation Workflow to Do not translate.

  3. If a project still contains non-translatable assets or reference materials, mark and delete them directly in Phrase.

Apply Translation Integration to Sites

Configure default Phrase Translation Provider with different parts of the site taxonomy. Configure the provider at the root node of the site. All descendant pages will inherit the setting. Override the setting at the node that should use different provider configuration (e.g. entire site uses human translation but the community section uses machine translation).

To apply translation integration:

  • On the Advanced Tab, select the newly created configuration as the Cloud Configuration.

When adding content from these pages, only translatable content will be added. If a project is created from the References Panel, it will be automatically set up to use the cloud configuration associated with the root page.

Submit Content for Translation

To submit content (Sites, Assets) for translation, create a translation project in Adobe Experience Manager. Projects can be created manually in the Projects section or use built-in workflows to minimize the effort.

To prepare a project for submission through the built-in workflows, follow these steps:

  1. From the Sites view, navigate to the page, select it, and open the References Panel.

  2. Click Language Copies and expand the Create & Translate section at the bottom of the rail.

  3. Select target languages, optionally uncheck the Select all sub-pages.

  4. Select Create Multi-language Translation Project.

    If there are multiple target languages, a separate project will be created for each language.

  5. Enter project title and click Create.

  6. Navigate to the project in the Projects section and open it.

  7. Click the ellipsis on the first tile to open the Advanced project settings.

    If configured properly, configurations created in the steps above are referenced.

  8. To submit a job, select Start from the job tile menu.

    A new project will be created within a few minutes.

    • Upon import, providers are assigned from the project template and the AEM job item status is set to Committed for translation.

    • Once the job is accepted by a provider, the AEM job item status changes to Translation in progress.

    • AEM job item status changes to Cancelled if the job is deleted or cancelled.

    Tip

    Adobe Experience Manager polls for a job status update on a schedule that is configured in Translation Platform Configuration accessed via Web Console.

    Setting the Scheduler Cron property to run frequently (e.g. 0 0/5 * * * ? * triggers a translation job status refresh every 5 minutes).

    Refreshing the project detail page forces a pull.

  9. In Phrase, translate the project jobs and set their status to Completed. Upon completion, the jobs are imported back into AEM.

  10. If rejected, the first workflow step of the job is set to Emailed, and the remaining workflow steps to New.

  11. Once an AEM job item is accepted, the job status updates to Delivered as configured in the plugin settings.

For more details on creating translation projects using the References Panel, see Adobe documentation.

Miscellaneous

Custom Language Mapping

On-premise AEM

To map Adobe Experience Manager languages to different languages in Phrase (e.g. zh to zh_tw), follow these steps.

The mapping applies to both source and target languages.

  1. Open CRXDE (/crx/de/index.jsp).

  2. Browse to the /apps/memsource-connector/language-mapping/ folder.

  3. Create a new node.

  4. Use Adobe Experience Manager language code as the Name (e.g. zh), keep Type: nt:unstructured.

  5. Add property:

    • Name: memsourceLanguage

    • Type: String

    • Value: language code (e.g. zh_tw)

  6. Click Save All.

Un-mapped language codes are sent as they are.

AEM as a Cloud Service

To add language mapping in AEM Cloud Services, follow these steps:

  1. Create a .content.xml file in the /conf/aem-memsource-plugin/language-mapping/ folder.

  2. Open the created file and copy the following into it:

    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
        jcr:primaryType="sling:Folder"/>
  3. Create a .content.xml file in the /conf/aem-memsource-plugin/language-mapping/zh-cn folder.

  4. Open the created file and copy the following into it:

    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0"
              jcr:primaryType="nt:unstructured"
              memsourceLanguage="zh_cn">
    </jcr:root>
  5. Add the paths created in previous steps to the filter.xml file found at ui.content/src/main/content/META-INF/vault/filter.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <workspaceFilter version="1.0">
    ...
        <filter root="/conf/aem-memsource-plugin" mode="update"/>
        <filter root="/conf/aem-memsource-plugin/language-mapping" mode="update"/>
    </workspaceFilter>

Project IDs

Once a translation job is submitted, the project ID and UID are stored in the /content/projects/project-name/jcr:content/dashboard/gadgets/translationjob as PROPERTY_MEMSOURCE_PROJECT_ID and PROPERTY_MEMSOURCE_PROJECT_UID properties.

Use the IDs for display in the AEM environment or in APIs to extend plugin functionality.

Was this article helpful?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.