Skip to content

Multilingual

Multiple languages support in CNXION

Overview

  1. If your website has Multilingual feature enabled, urls would look like this: /search/ (for en), /pl/search/ (for pl), /de/search/ (for de) etc.

  2. When you are on /search/ page and you pick German, you are redirected to the same place, but in German /de/search/. That applies only to the translatable pages.

  3. When a user changes the language using UI switcher it is stored in the session. So when you entered /search/, picked Polish, you are taken to /pl/search/ and then you click "Contact" in the menu which link is /contact/ - you will be taken to /pl/contact/.

  4. When a user chooses a language and sees translated content, if they again change language to the default one (currently: en), they should be redirected back to the url with no language code.

  5. We use built in mechanisms for localisation and figuring out appropriate language.

Translation mechanism

  1. In our structure of the project we use different places to store displayed to user information:

    • dynamic models (models related to your website)
    • common models (common to all CNXION powered websites, eg. Menu, Content Page etc.)
    • HTML strings, for example (text common to your website, stored in HTML files, example: lead text on homepage)
    • config (file with configuration of your platform)
  2. CNXION provides a mechanism for collecting all strings to translate from aforementioned places. This mechanism also transfer the content to the external CNXION translation service:

  1. For your site we have created components for each type of content and for each language to translate. We uploaded our collected content to appropriate components so translators are able to check, correct, update translations. After translators revise the content, we can update that to the website.

  2. In our backend we have utilities that import all translated content to the site.

How to translate strings?

When we say we need translations for Project XYZ / Dynamic Models / Russian it means we need to conduct translation process for: Project XYZ, Dynamic Models component, for Russian language inside our external translations system.

How to do that? Example: 1. Select project eg. Mystical Maldives: 1. Select component that is not 100% translated (Strings percentage shows percentage of strings translated), eg. Dynamic Models: 1. Select language. For example Russian: 1. Select "Not translated strings": 1. You are inside the translation wizard now. On each string detail page find proposed translation with Service = Google Transalte and click "Copy and Save": 1. There might be more translation suggestions but unless you know what you are doing, chooce always translation returned by Google Translate: 1. Movie showing the process 1. If after saving there are any warnings like Unchanged Translation or XML Check error, just click >> (next) translation: 1. And repeat until you arrive at the end:

After you have revised all string we could synchronise updates to your website.

Sometimes it is needed to revise info you have already checked, for dynamic-models you can find this by source context field, this value is saved for them, in other way you can find content by source text.

  1. On our backend we have a utility which import all translated content to the site, after we update the content, we can check how it works on the web site.