Custom Translation Connector for AEMaaCS, is it feasible? If so, how to implement? | Community
Skip to main content
pulkitvashisth
Community Advisor
Community Advisor
June 9, 2025
Solved

Custom Translation Connector for AEMaaCS, is it feasible? If so, how to implement?

  • June 9, 2025
  • 2 replies
  • 678 views

Hi all,
I am working on a project that requires implementing the DeepL translations APIs to perform translation of content. We have the by default microsoft translator integrated as of now but are looking to implement DeepL as it suits our usecase.
Have any of you implemented custom translation connector for AEMaaCS before? 
My first question is, is it is feasible? If so, what are the challenges.
Can any of your provide supporting documentation/tutorial/blog that can help me implement the same?

Thanks in advance!

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by konstantyn_diachenko

Hi @pulkitvashisth ,

 

So, basically you have to implement some API that will consume content in corresponding format and return translated one. 

 

Another thing is a submitting a translation. I found an interesting article: https://medium.com/@jlanssie/translate-entires-websites-in-aem-automatically-with-openai-944875cbfa22. You can take a look into it. Unfortunately, it won't be a translation connector, but kind an alternative.

 

I would suggest you to do reverse engineering of current Microsoft Translator integration. I see there is a package com.adobe.granite.translation and you just need to find the example of implementation in existing bundles.

 

Best regards,

Kostiantyn Diachenko.

2 replies

konstantyn_diachenko
Community Advisor
konstantyn_diachenkoCommunity AdvisorAccepted solution
Community Advisor
June 9, 2025

Hi @pulkitvashisth ,

 

So, basically you have to implement some API that will consume content in corresponding format and return translated one. 

 

Another thing is a submitting a translation. I found an interesting article: https://medium.com/@jlanssie/translate-entires-websites-in-aem-automatically-with-openai-944875cbfa22. You can take a look into it. Unfortunately, it won't be a translation connector, but kind an alternative.

 

I would suggest you to do reverse engineering of current Microsoft Translator integration. I see there is a package com.adobe.granite.translation and you just need to find the example of implementation in existing bundles.

 

Best regards,

Kostiantyn Diachenko.

Kostiantyn Diachenko, Community Advisor, Certified Senior AEM Developer, creator of free AEM VLT Tool, maintainer of AEM Tools plugin.
arunpatidar
Community Advisor
Community Advisor
June 10, 2025

Hi @pulkitvashisth 

Yes, it's possible to build a custom translation connector for AEM as a Cloud Service (AEMaaCS). I've developed a custom connector that leverages LLM/Generative AI for translating content.

I used the following starter as a base:

https://github.com/Adobe-Marketing-Cloud/aem-translation-framework-bootstrap-connector/tree/aemsdkapi 

 

Key Challenges:

  1. Debugging is difficult – there's limited visibility when issues occur.

  2. API and token limits – if exceeded, translations may silently fail. You’ll need to decide whether to throw an error or allow it to continue.

  3. Lack of context – translations are processed property-by-property, without any direct context about the page or component.

  4. Other limitations exist, but many can be worked around depending on your use case.


Before diving into DeepL integration or implementing business logic, focus first on getting the bootstrap connector working. If the function below is being called, it indicates that your connector is set up correctly — at that point, you're ready to begin adding your custom business logic.

https://github.com/Adobe-Marketing-Cloud/aem-translation-framework-bootstrap-connector/blob/e843bad3be17fab00a83a24dde1c874cf8b7635b/core/src/main/java/com/adobe/granite/translation/connector/bootstrap/core/impl/BootstrapTranslationServiceImpl.java#L181 

Arun Patidar