Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Content Fragment and Translations with Variations

Avatar

Level 7

What is best practice? should I be creating translation experiences under variations for content fragments. Currently I have something like

  • /content/dam/my-site/content-fragments/structure/privacy-policy/en-gb.html
  • /content/dam/my-site/content-fragments/structure/privacy-policy/en-ca.html
  • /content/dam/my-site/content-fragments/structure/privacy-policy/fr-ca.html
  • /content/dam/my-site/content-fragments/structure/privacy-policy/es-ca.html

What is the preferred way to prepare and structure my content fragments for translations?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hello @AEMWizard ,

As I mentioned in your other post, not only your page content should follow this /content/my-site/{country}/{language}, but also all the related structures will follow the same.

For DAM: /content/dam/my-site/asset/{country}/{language}

For experience fragment:  /content/experience-fragments/my-site/{country}/{language}

For Content Fragment: /content/dam/my-site/content-fragments/{country}/{language}

 

This structure will help you,

1. Avoid authoring confusion

2. Creating a clean content package [unnecessary filter path will not be added]

Note: Translation for master and live copy relationship this structure will help you instead of bother you.

View solution in original post

3 Replies

Avatar

Community Advisor

The best practice for structuring content fragments for translations in AEM is to use the Translation Framework. The Translation Framework provides a streamlined workflow for translating content fragments, and it allows you to create translation projects, manage translation providers, and track translation progress.

When using the Translation Framework, you would typically create a single content fragment for each language-neutral piece of content, and then create language copies of that content fragment for each target language. The language copies would be stored under the same folder as the original content fragment but with the language code appended to the filename.

For example, you could have a structure like this:

/content/dam/my-site/content-fragments/privacy-policy.cf.json
/content/dam/my-site/content-fragments/privacy-policy.cf.en-gb.json
/content/dam/my-site/content-fragments/privacy-policy.cf.en-ca.json
/content/dam/my-site/content-fragments/privacy-policy.cf.fr-ca.json
/content/dam/my-site/content-fragments/privacy-policy.cf.es-ca.json

In this example, "privacy-policy.cf.json" is the language-neutral content fragment, and each language copy has the language code appended to the filename.

You can then use the Translation Framework to create a translation project for the "privacy-policy.cf.json" content fragment and add the language copies as translation targets. The Translation Framework will automatically create the necessary translation projects and translation jobs for each language copy, and you can use the Translation Console to manage the translation process.

By using the Translation Framework, you can ensure that your translations are consistent, accurate, and efficient and that your translation workflows are streamlined and automated.

Avatar

Level 6

@AEMWizard

You should not name your assets as per the language. You should put them in respective language directory with proper locale code.

I think structure should look like

  • /content/dam/my-site/content-fragments/en-gb/privacy-policy.html
  • /content/dam/my-site/content-fragments/en-ca/privacy-policy.html
  • /content/dam/my-site/content-fragments/fr-ca/privacy-policy.html
  • /content/dam/my-site/content-fragments/es-ca/privacy-policy.html

This way you can manage and translate them efficiently as language copies.

Avatar

Correct answer by
Community Advisor

Hello @AEMWizard ,

As I mentioned in your other post, not only your page content should follow this /content/my-site/{country}/{language}, but also all the related structures will follow the same.

For DAM: /content/dam/my-site/asset/{country}/{language}

For experience fragment:  /content/experience-fragments/my-site/{country}/{language}

For Content Fragment: /content/dam/my-site/content-fragments/{country}/{language}

 

This structure will help you,

1. Avoid authoring confusion

2. Creating a clean content package [unnecessary filter path will not be added]

Note: Translation for master and live copy relationship this structure will help you instead of bother you.