Expand my Community achievements bar.

SOLVED

Questions on Multilingual site

Avatar

Level 6

I’ve couple of doubts and would request you to please clarify

I've gone through this link http://dev.day.com/docs/en/cq/current/administering/multi_site_manager.html

 

Q1) If we want to create a multilingual site then Language copy in siteadmin tool enables to create copy of existing page from English(en for example) to another language. If I’ve the following structure

/content/mysite

                                en

                                 ru

                                de

But the content of this copied page(ru, de) has to be translated using google translator for example. If we have 100 pages under /content/mysite/en then it will take time to translate each of the 100 pages to the required language.  Is there any other way to do it?

 

Q2)As my understanding, If I want a component to display certain text in a specific language(Russian) then I need to create a dictionary.

http://www.wemblog.com/2011/12/how-to-use-multi-language-translation.html

So far I’ve created as bellow.  

[img]12.jpg[/img]

I’ve tried to add in footer.jsp /apps/geometrixx/components/page/footer.jsp then I’m getting error while opening the page

 

Locale cannot be resolved to a type

ResourceBundle cannot be resolved to a type

 

--%><%@ page import="javax.jcr.*,

org.apache.sling.api.resource.Resource"

%><%

%><%@include file="/libs/foundation/global.jsp" %><%

    I18n i18n = new I18n(slingRequest);

    Locale pageLocale = currentPage.getLanguage(false);

    ResourceBundle resourceBundle = slingRequest.getResourceBundle(pageLocale);

    int year = Calendar.getInstance().get(Calendar.YEAR);

%>

<cq:setContentBundle/>

<div class="grid_4">

        <ul>

        <li>I am printing using I18n <%=i18n.get("hello") %></li>

        <li>I am printing using fmt:message now <fmt:message key="hello"/></li>

        </ul>

Could you please advice what is incorrect?

 

Q3) If I want to override the default languages in translator grid then create a multi-value string property /etc/languages/languages (node structure must be created), containing the iso language codes (e.g. ["de", "fr", …]). What could be the business use case for this? 

[img]13.jpg[/img]

As my understanding If we want to add or modify new language for my app which is not present /libs/wcm/core/resources/languages then Overlay this by copying it to: /apps/wcm/core/resources/languages. For example we have to implement our app to a language code bn which is not available under /libs/wcm/core/resources/languages, so for that I need to

1) Overlay to: /apps/wcm/core/resources/languages and then add bn

2) Update the CQ WCM Language Manager. And then my application page structure should be /content/mysite/bn.

Kindly let me know if I’m missing something here.  

Many thanks for your help!

1 Accepted Solution

Avatar

Correct answer by
Level 2

I can shed some light on your first question. The Language Copy function will create new language aware sites as you indicated. You must then get the content translated by the following means:

  1. Kickoff the OOTB Translate workflow from the sidekick and overwrite the source language with your translation. You can use the Google Translate package but as you noted, this method is not very scalable for lots of translated content. You can also write your own workflow to send content to translation; however, Option 2 below is usually a better solution for an enterprise customer.
  2. Contact one of our translation partners and use their AEM connector to send the content for translation. The connectors contain many features that enhance the OOTB translation workflow and enable bulk translation. These partners vary in the services they provide. You can get a simple pass through of content to a freelance translation marketplace or a full turn-key translation solution.
  3. There are plans to add machine translation functionality and enhanced translation workflows beyond Google Translate to the the AEM product in upcoming releases. Stay tuned..

As to multilingual site structure, Language Copy does have some limitations. It does not support the Blueprinting and Rollout features available with MSM. In contrast, MSM is not "language aware" i.e. it does not distinguish source language from translated target language. In large translation situations it is recommended to use a combination of the the two with a translation connector from one of our translation partners.

For more information see the July 31 CQ GEMS MSM and Translation Best Practices: http://dev.day.com/content/ddc/en/gems/msm-and-translation--best-practices.html

View solution in original post

5 Replies

Avatar

Level 10

This question was passed to the AEM product team. 

Avatar

Level 6

Can someone please put some light on it?

Avatar

Correct answer by
Level 2

I can shed some light on your first question. The Language Copy function will create new language aware sites as you indicated. You must then get the content translated by the following means:

  1. Kickoff the OOTB Translate workflow from the sidekick and overwrite the source language with your translation. You can use the Google Translate package but as you noted, this method is not very scalable for lots of translated content. You can also write your own workflow to send content to translation; however, Option 2 below is usually a better solution for an enterprise customer.
  2. Contact one of our translation partners and use their AEM connector to send the content for translation. The connectors contain many features that enhance the OOTB translation workflow and enable bulk translation. These partners vary in the services they provide. You can get a simple pass through of content to a freelance translation marketplace or a full turn-key translation solution.
  3. There are plans to add machine translation functionality and enhanced translation workflows beyond Google Translate to the the AEM product in upcoming releases. Stay tuned..

As to multilingual site structure, Language Copy does have some limitations. It does not support the Blueprinting and Rollout features available with MSM. In contrast, MSM is not "language aware" i.e. it does not distinguish source language from translated target language. In large translation situations it is recommended to use a combination of the the two with a translation connector from one of our translation partners.

For more information see the July 31 CQ GEMS MSM and Translation Best Practices: http://dev.day.com/content/ddc/en/gems/msm-and-translation--best-practices.html

Avatar

Level 6

Thanks Scott for follow up! Kindly let me know if you get some info from them.

Avatar

Level 10

Here is the answers from Eng team:

 

Q1) n/a

 

Q2) 1. needs to get the imports right

2. wants to use the i18n object with the page language:

 

I18n i18n - new I18n(slingRequest.getResourceBundle(pageLocale))

 

(there is no other automatic connection between MSM/ language site constructs and the sling dictionaries/i18n api)

 

Q3) the config in the translator is simply for the UI, what languages to display, it displays that hardcoded list of languages for whatever dictionary you select, not what languages are in a certain dictionary or not

 

HTH