Install the Translations Add-on
This section assumes a standard Bloomreach Experience Manager or Bloomreach Experience Manager project using Maven with a root pom and modules CMS and site.
Please decide beforehand:
- The connector: Livewords, Star, FTP, XTM and/or Tester (latter comes in handy for local development).
- The CMS request UI: how do you want translation requests to be made: from the document editor and/or from the advanced search?
- The CMS requests overview dashboard: do you want an overview of the translation requests available in the CMS in a new perspective?
Installation through Essentials
As of Bloomreach Experience Manager v15 and Translations Add-On v6.3.0, the plugin can be installed into your project through Essentials. Two preliminary steps need to be done so that the plugin becomes available for installation:
To the <properties> section of the root pom.xml, add a version property for the add-on. The latest released version is visible in the release notes. Make sure the version is 6.3.0 or higher.
<bloomreach.translations-addon.version>6.3.0</bloomreach.translations-addon.version>
To the <dependencies> section of the essentials pom.xml, add the plugin dependency:
<dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-essentials-plugin</artifactId> <version>${bloomreach.translations-addon.version}</version> </dependency>
Rebuild and restart your project, and access the Essentials app. On the Settings tab, ensure that you Make use of Enterprise features and to enable the Confirm / override settings on a per-feature basis option. Navigate to the Library tab in Essentials, locate the Translations Add-on feature and click Install feature. On the next screen, select the connectors and sub-features that you want to install and enable, and then click Apply. Essentials then applies the steps documented for manual installation below to your project. Rebuild and restart your project again.
Note that the Essentials plugin can only be used for the initial setup. If you want to add more connectors or features at a later stage, this needs to be done manually as explained below.
Manual Installation
Root POM: Version Management, Repositories
Bloomreach Experience Manager 15
To the <properties> section of the root pom.xml, add a version property for the add-on. The latest released version is visible in the release notes.
<bloomreach.translations-addon.version>6.3.0</bloomreach.translations-addon.version>
Bloomreach Experience Manager 14
To the <properties> section of the root pom.xml, add versions for the add-on and for the settings management plugin, when on 5.7.0 or lower. The latest released version is visible in the 5.x release notes.
<bloomreach.translations-addon.version>5.10.0</bloomreach.translations-addon.version> <!-- NOTE: on 5.7.0 and lower, there's a dependency on the Settings Management plugin. Remove this when using Translations Addon 5.8.0 or higher! <forge.settingsmanagement.version>3.1.0</forge.settingsmanagement.version> -->
Maven Repositories
To the <repositories> section, add the Bloomreach Enterprise and Bloomreach Forge repositories if not there already.
<repository> <id>bloomreach-maven2-enterprise</id> <name>Bloomreach Enterprise Maven 2</name> <url>https://maven.bloomreach.com/repository/maven2-enterprise/</url> </repository> <repository> <id>bloomreach-forge</id> <name>Bloomreach Forge Maven 2 Repository</name> <url>https://maven.bloomreach.com/repository/maven2-forge/</url> </repository>
Dependency Management
It is recommended to use the <dependencyManagement><dependencies> section to set the version of all used Translations Add-on artifacts. For example, in your root pom.xml:
<dependencyManagement> <dependencies> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-bom</artifactId> <version>${bloomreach.translations-addon.version}</version> <type>pom</type> </dependency> .. repeat for all used artifacts in CMS and site poms (see below) .. <dependencies> <dependencyManagement>
CMS Dependencies Module: Mandatory, Recommended, and Optional Dependencies
The Translations Add-on depends on some components of the Advanced Search feature so that is mandatory to install, if not installed already.
There is one mandatory pom dependency to be installed, the so called Bill Of Materials (BOM), and many optional. Please add these to <dependencies> section of the cms-dependencies module's pom.xml.
<dependencies> <!-- Mandatory: advanced search (if not already installed) - the add-on depends on it --> <dependency> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-addon-advanced-search-frontend</artifactId> <type>pom</type> </dependency> <dependency> <groupId>com.onehippo.cms7</groupId> <artifactId>hippo-addon-advanced-search-repository</artifactId> </dependency> <!-- Mandatory: Bill Of Materials pom --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-bom</artifactId> <type>pom</type> </dependency> <!-- Optional, recommended: translations overview dashboard --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-dashboard</artifactId> </dependency> <!-- Optional, recommended: configuration perspective <!-- On brXM 14.0 and lower: depends on settings management. Remove it when using Translations Addon 5.8.0 or higher! <dependency> <groupId>org.bloomreach.forge.settingsmanagement</groupId> <artifactId>bloomreach-settingsmanagement-repository</artifactId> </dependency> <dependency> <groupId>org.bloomreach.forge.settingsmanagement</groupId> <artifactId>bloomreach-settingsmanagement-frontend-core</artifactId> </dependency> --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-settings-frontend</artifactId> </dependency> <!-- Optional: document editor frontend --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-editor-frontend</artifactId> </dependency> <!-- Optional: advanced search frontend --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-search-frontend</artifactId> </dependency> <!-- Optional: Tester connector --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-connector-tester</artifactId> </dependency> <!-- Optional: Livewords connector --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-connector-livewords-repository</artifactId> </dependency> <!-- Optional: XTM connector --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-connector-xtm-repository</artifactId> </dependency> <!-- Optional: Star connector --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-connector-star</artifactId> </dependency> <!-- Optional: FTP connector --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-connector-ftp</artifactId> </dependency> <!-- Optional: ChatGPT connector --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-connector-chatgpt</artifactId> </dependency> <!-- Deprecated: Globallink connector --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-connector-globallink</artifactId> </dependency>
Site Module: Add LiveWords or XTM Web Hook (if applicable)
To support the LiveWords or XTM system posting a translated document into the repository, add the corresponding dependency to the <dependencies> section of the site module's pom.xml.
<dependencies> <!-- Livewords webhook --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-connector-livewords-webhook</artifactId> </dependency> <!-- XTM webhook --> <dependency> <groupId>com.bloomreach.cms.translations-addon</groupId> <artifactId>translations-addon-connector-xtm-webhook</artifactId> </dependency> </dependencies>
The dependency adds a TranslationResource class that is to be configured as Spring bean, as part of the plain REST resource pipeline. Please create a file "spring-plain-rest-api.xml" in src/main/resources/META-INF/hst-assembly/overrides with the following content. If there is already a "customRestPlainResourceProviders" object in your project, just add the bean to the existing list. Add the XTMTranslationResource instead of the Livewords resource where applicable.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <import resource="classpath:/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-jackson.xml"/> <import resource="classpath:/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-plain-pipeline.xml"/> <bean id="customRestPlainResourceProviders" class="org.springframework.beans.factory.config.ListFactoryBean"> <property name="sourceList"> <list> <bean class="org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider"> <constructor-arg> <bean class="com.bloomreach.cms.translations.connector.livewords.rest.TranslationResource"/> <!--bean class="com.bloomreach.cms.translations.connector.xtm.rest.XTMTranslationResource"/--> </constructor-arg> </bean> </list> </property> </bean> </beans>