{"id":42055,"date":"2016-11-09T12:46:08","date_gmt":"2016-11-09T07:16:08","guid":{"rendered":"http:\/\/www.tothenew.com\/blog\/?p=42055"},"modified":"2016-11-09T13:17:06","modified_gmt":"2016-11-09T07:47:06","slug":"how-to-implement-a-translation-connector-in-aem","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/how-to-implement-a-translation-connector-in-aem\/","title":{"rendered":"How To Implement a Translation Connector in AEM?"},"content":{"rendered":"<p>The purpose of a Translation Connector in any Content Management System (CMS) is to automate content transmission between CMS and Translation Service Providers making it quicker and cost-effective. Such integration is required when there is a need to maintain multiple languages in CMS. Similarly, for projects in <a title=\"AEM Consulting, Development, Migration Services\" href=\"http:\/\/www.tothenew.com\/wcm\/cq-aem-development-consulting\" target=\"_blank\">Adobe Experience Manager (AEM)<\/a> that involves website localization and <a title=\"Case Study: RR Donnelley\" href=\"http:\/\/www.tothenew.com\/success-stories\/rr-donnelley\" target=\"_blank\">multilingual SEO management, translation connectors implementation<\/a> becomes a mandate.<\/p>\n<p><span style=\"font-weight: 400\">Translation Connectors are simply used to provide an interface between AEM and Translation Management System (TMS), where TMS is nothing but programs which support complex translation tasks.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42059 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image03.png\" alt=\"Translation Connector Overview\" width=\"465\" height=\"65\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image03.png 465w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image03-300x41.png 300w\" sizes=\"(max-width: 465px) 100vw, 465px\" \/><\/p>\n<p>Once the content is selected in AEM which needs to be translated, it can be pushed further to TMS.<\/p>\n<p><span style=\"font-weight: 400\">After this, TMS does the actual translations by either using machine translation using APIs or by sending it across to different Language Service Providers (LSP).<\/span><\/p>\n<p><span style=\"font-weight: 400\">After the required translation is performed the content is then returned to AEM where it can be approved or rejected. Since the states of the translation projects are easily visible on AEM project console, the authors can also monitor the progress of source files which were sent for translation.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Follow these basic steps to implement a connector with AEM<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42063 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image07.png\" alt=\"Translation Connector Steps\" width=\"335\" height=\"410\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image07.png 335w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image07-245x300.png 245w\" sizes=\"(max-width: 335px) 100vw, 335px\" \/><\/p>\n<p><span style=\"font-weight: 400\">To explain these steps in details, I would be referring to <\/span><a href=\"https:\/\/github.com\/Adobe-Marketing-Cloud\/aem-translation-framework-bootstrap-connector\"><span style=\"font-weight: 400\">AEM 6.2\u2019s Translation Bootstrap Framework<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h3>Step 1: Create Cloud Configuration<\/h3>\n<p><span style=\"font-weight: 400\">The first and the foremost step is to establish a connection between AEM and TMS. This can be done in AEM through multiple ways but the best way is to make use of <\/span><a href=\"https:\/\/docs.adobe.com\/docs\/en\/aem\/6-2\/develop\/extending\/cloud-service-configurations.html\"><span style=\"font-weight: 400\">Cloud Configurations<\/span><\/a><span style=\"font-weight: 400\">. This provides content managers&#8217; the flexibility to add configuration details or any other related information themselves to connect to TMS.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Once Bootstrap framework build is deployed, under Cloud Services Configurations you can create a\u00a0configuration using the following template. <\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42062 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image06.png\" alt=\"Cloud Configuration\" width=\"1999\" height=\"1022\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image06.png 1999w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image06-300x153.png 300w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image06-1024x523.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image06-624x319.png 624w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p><span style=\"font-weight: 400\">The dialog needs to be created which should contain properties required to connect to TMS. This can be designed as per the requirement. <\/span><\/p>\n<h3><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42058 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image02.png\" alt=\"Cloud Configuration Properties\" width=\"1999\" height=\"910\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image02.png 1999w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image02-300x136.png 300w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image02-1024x466.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image02-624x284.png 624w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/h3>\n<h3>Step 2: Create Translation Project<\/h3>\n<p><span style=\"font-weight: 400\">Project Creation Wizard provides basic properties which are required to create a Translation Project. The project contains options to add details about source and target languages, human\/machine translations and configurations to translate the project.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The source files can be added to the project by either using the \u2018Add translation\u2019 widget or by using \u2018References\u2019 feature under \u2018Sites\u2019. This is further explained in detail <\/span><a href=\"https:\/\/docs.adobe.com\/docs\/en\/aem\/6-2\/administer\/sites\/translation\/tc-manage.html\"><span style=\"font-weight: 400\">here<\/span><\/a><span style=\"font-weight: 400\">. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Using project creation wizard, one can go to \u201cCreate Projects\u201d and \u201cSelect Translation Project\u201d.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42065 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image09.png\" alt=\"Translation Project\" width=\"1999\" height=\"671\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image09.png 1999w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image09-300x100.png 300w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image09-1024x343.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image09-624x209.png 624w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Advanced Properties should contain custom \u201cTranslation Provider\u201d and respective \u201cCloud Configuration\u201d.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42061 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image05.png\" alt=\"Translation Project Properties\" width=\"1999\" height=\"1000\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image05.png 1999w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image05-300x150.png 300w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image05-1024x512.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image05-624x312.png 624w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<h3>Step 3: Send Project Containing Source Files to TMS<\/h3>\n<p><span style=\"font-weight: 400\">The content in AEM which requires translation can be added in the project. AEM 6.2 provides options to add pages, assets, assets metadata, tags, tags metadata and i18n dictionaries.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Using custom solution or AEM translation APIs, AEM pages are required to be converted to TMS acceptable format, which is generally XLIFF.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42066 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image10.png\" alt=\"Translation Project Add Files\" width=\"1999\" height=\"396\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image10.png 1999w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image10-300x59.png 300w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image10-1024x202.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image10-624x123.png 624w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42057 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image01.png\" alt=\"Translation Project Add Files Details\" width=\"1999\" height=\"959\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image01.png 1999w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image01-300x143.png 300w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image01-1024x491.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image01-624x299.png 624w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/>Once the files are added, the project can be started and sent for translation.<\/p>\n<h3><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42060 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image04.png\" alt=\"Translation Process Start\" width=\"1999\" height=\"977\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image04.png 1999w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image04-300x146.png 300w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image04-1024x500.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image04-624x304.png 624w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/h3>\n<h3><\/h3>\n<h3>Step 4: Translation Process at TMS<\/h3>\n<p><span style=\"font-weight: 400\">Every TMS follow workflows to manage translations. Based on the required translation such as human or machine translations, the source files are either sent to different LSP or are translated using APIs. The source files may require conversion into a specific format which is acceptable by TMS. \u00a0Once the files are successfully translated and reviewed, they are imported back into AEM.<\/span><\/p>\n<h3>Step 5: Import Translated Files from TMS<\/h3>\n<p><span style=\"font-weight: 400\">The translated files are then imported from TMS into AEM. AEM\u2019s polling functionality can be used or even a custom scheduler can be implemented to identify whether the project status has been changed at TMS and the translation files are ready to be imported.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The translated XLIFF file from TMS either needs to be converted to AEM recognizable format like XML or can be imported into jcr:content node structure.<\/span><\/p>\n<p><span style=\"font-weight: 400\">With AEM 6.2, the translations can be accepted or rejected once the import to AEM is successful.\u00a0<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42088 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/Untitled.png\" alt=\"Translation Workflow\" width=\"1993\" height=\"446\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/Untitled.png 1993w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/Untitled-300x67.png 300w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/Untitled-1024x229.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/Untitled-624x139.png 624w\" sizes=\"(max-width: 1993px) 100vw, 1993px\" \/><\/p>\n<p><span style=\"font-weight: 400\">The translated page looks like this after successful import and can be published.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-42056 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image00.png\" alt=\"AEM page import\" width=\"760\" height=\"653\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2016\/11\/image00.png 760w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image00-300x257.png 300w, \/blog\/wp-ttn-blog\/uploads\/2016\/11\/image00-624x536.png 624w\" sizes=\"(max-width: 760px) 100vw, 760px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The purpose of a Translation Connector in any Content Management System (CMS) is to automate content transmission between CMS and Translation Service Providers making it quicker and cost-effective. Such integration is required when there is a need to maintain multiple languages in CMS. Similarly, for projects in Adobe Experience Manager (AEM) that involves website localization [&hellip;]<\/p>\n","protected":false},"author":993,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":240},"categories":[1],"tags":[4847,4052],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/42055"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/993"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=42055"}],"version-history":[{"count":0,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/42055\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=42055"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=42055"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=42055"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}