The Kinesis Language Manager allows for easy creation of multilingual surveys.
1: General Information
When creating new surveys, select the language that you would like to appear in all default validation error messages as well as Survey Pages that Kinesis has had translated. Note that this will not change the language of the interface. This selection only impacts the default language used in specific locations within the survey (validation error messages). Additional languages may still be inserted after programming. If interested in additional languages for selection, please contact your account manager to discuss options.
It is extremely important from a quality standpoint that all translations be performed using the Language Manager, which is accessed from the Survey Functions menu. The Language Manager provides the survey to a translation firm using XML files. It not only includes the question and answer texts, but also all system error messages, table texts, invitation texts, validation error messages, etc. If you attempt to program a foreign-language survey by cutting and pasting from a word processing document, the results will inevitably be painful. By using the Language Manager, all survey logic is automatically included for foreign languages. Hence, the appropriate time to begin translations is once final testing has been completed in your native language. If you have never run a multilingual survey before, it is advised that you consult with a Kinesis Client Services representative.
Each separate language will be given a local code, which presents the languages based upon which code appears in the URL. It is possible to allow the respondent to select their preferred language on the first screen of the survey, or to bypass this process and send them to directly to the language of your choosing. To send respondents into the survey with the language predetermined, append any of the following to the survey URL:
&locale=[ACTUAL LOCAL ID OR LANGUAGE CODE FROM LANGUAGE MANAGER] &local=[ACTUAL LOCAL ID OR LANGUAGE CODE FROM LANGUAGE MANAGER] &lang=[ACTUAL LOCAL ID OR LANGUAGE CODE FROM LANGUAGE MANAGER]
The incoming locale/local/lang value can also be used as a logical parameter when formulating conditional logic, so that, as an example, an option list could display to all respondents, but they would only see options based on the language they accessed the survey in.
To begin, select the Language Manager:
This will take you to the following screen:
All translation functions take place on this single screen.
- Button will allow you to add a new language from a predefined list (See Language Codes below for list)
- Button will download active language XML file to be used as master language by the translators
- Button will import translated language XML file
- Button will change active language
- This button allows two languages to be selected then displayed side by side for comparison
2: Working with the XML Translation File
An XML translation file consists of elements which surround content such as question labels, question text, and response text. The survey text can be translated within the XML file, saved with a new filename, and then imported back into your survey. The elements themselves must remain consistent and should NEVER be edited or translated. In addition, not all content between tags should be translated (ex. question labels or additional HTML that has been inserted around text on your survey pages.
Before importing the translated document, check the tag contents and make sure it corresponds to the language translated to. If a language with the same name already exists, it will be updated, otherwise the language will be automatically created for you. The name of the language is read from the tag and this will be the language name you will see in the application (unless you manually change the content between the <language> tags as described earlier.
Once your file has been sent to the translation company and returned and uploaded, you should still retest your survey to make sure that the translations were completed. Translation companies use automated software and occasionally words or phrases may be skipped. While it is not necessarily to thoroughly test logic, you should run through to make sure that the translations appear on each survey screen. The Language Manager includes a side by side testing tool that allows you to quickly compare any two languages used in your survey.
3: Inserting a Language Without an XML Translation File
After clicking on the New Language icon within the Language Manager, you can download an XML translation file to send to your translator. Note that this does not automatically translate the survey for you. Only languages where Kinesis has already translated default error messages will include some actual translations -- and only for default validation error messaging. However, this feature gives you ability to download the XML file(s) for you to send to your translator complete the langcode and language already specified.
4: UTF-8 Requirements
We require all translation XML files to be in UTF-8 (Unicode) character encoding. UTF-8 has become the standard for multilingual support because it is compatible with almost all commonly-used languages, including the ones in your list.
The scripts they support can be found here. Most of the languages in your lists, such as French, German, or Swedish fall into the "Latin" script. However, others like Japanese and Chinese support multiple scripts or versions.
When using the Language Manager in Kinesis, always make sure that the XML files you are importing back in are UTF-8 encoded. Whatever XML editor you or your translator will need to support this. Since UTF-8 is a standard encoding, it shouldn't be an issue, but be aware since some programs may automatically convert to ASCII encoding even though they support UTF-8.
5: Language Codes
Each translation file contains a language code tag (<langcode>). The file must contain this tag; tag contents must be a valid language code accepted by Kinesis. A list of acceptable language codes is below:
|af - Afrikaans||en-us - English (United States)||ru - Russian|
|sq - Albanian||et - Estonian||ru-mo - Russian (Republic of Moldova)|
|ar - Arabic||fo - Faeroese||sz - Sami (Lappish)|
|ar-dz - Arabic (Algeria)||fa - Farsi||sr-yu - Serbian (Cyrillic)|
|ar-bh - Arabic (Bahrain)||fi - Finnish||sh-yu - Serbian (Latin)|
|ar-eg - Arabic (Egypt)||fr - French||sk - Slovak|
|ar-iq - Arabic (Iraq)||fr-be - French (Belgium)||sl - Slovenian|
|ar-jo - Arabic (Jordan)||fr-ca - French (Canada)||sb - Sorbian|
|ar-kw - Arabic (Kuwait)||fr-lu - French (Luxembourg)||es-ar - Spanish (Argentina)|
|ar-lb - Arabic (Lebanon)||fr-ch - French (Switzerland)||es-bo - Spanish (Bolivia)|
|ar-ly - Arabic (Libya)||gd - Gaelic (Scotland)||es-cl - Spanish (Chile)|
|ar-ma - Arabic (Morocco)||ka - Georgian||es-co - Spanish (Colombia)|
|ar-om - Arabic (Oman)||de - German||es-cr - Spanish (Costa Rica)|
|ar-qa - Arabic (Qatar)||de-at - German (Austria)||es-do - Spanish (Dominican Republic)|
|ar-sa - Arabic (Saudi Arabia)||ed-li - German (Liechtenstein)||es-ec - Spanish (Ecuador)|
|ar-sy - Arabic (Syria)||de-lu - German (Luxembourg)||es-sv - Spanish (El Salvador)|
|ar-tn - Arabic (Tunisia)||de-ch - German (Switzerland)||es-gt - Spanish (Guatemala)|
|ar-ae - Arabic (U.A.E.)||el - Greek||es-hn - Spanish (Honduras)|
|ar-ye - Arabic (Yemen)||he - Hebrew||es-mx - Spanish (Mexico)|
|eu - Basque||hi - Hindi||es-ni - Spanish (Nicaragua)|
|be - Belarusian||hu - Hungarian||es-pa - Spanish (Panama)|
|bg - Bulgarian||is - Icelandic||es-py - Spanish (Paraguay)|
|ca - Catalan||id - Indonesian||es-pe - Spanish (Peru)|
|zh-hk - Chinese (Hong Kong Sar)||ga - Irish||es-pr - Spanish (Puerto Rico)|
|zh-cn - Chinese (PRC)||it - Italian||es - Spanish (Spain)|
|zh-sg - Chinese (Singapore)||it-ch - Italian (Switzerland)||es-uy - Spanish (Uruguay)|
|zh-tw - Chinese (Taiwan)||ja - Japanese||es-ve - Spanish (Venezuela)|
|hr - Croatian||ko-kr - Korean||sx - Sutu|
|cs - Czech||lv - Latvian||sv - Swedish|
|da - Danish||lt - Lithuanian||sv-fi - Swedish (Finland)|
|nl - Dutch||mk - Macedonian (FYROM)||th - Thai|
|nl-be - Dutch (Belgium)||ms - Malaysian||ts - Tsonga|
|en-au - English (Australia)||mt - Maltese||tn - Tswana|
|en-bz - English (Belize)||nb-no - Norwegian (Bokmal)||tr - Turkish|
|en-ca - English (Canada)||nn-no - Norwegian (Nynorsk)||uk - Ukrainian|
|en-cx - English (Caribbean)||pl - Polish||ur - Urdu|
|en-ie - English (Ireland)||pt-br - Portuguese (Brazil)||ve - Venda|
|en-jm - English (Jamaica)||pt - Portuguese (Portugal)||vi - Vietnamese|
|en-nz - English (New Zealand)||rm - Rhaeto-Romanic||xh - Xhosa|
|en-za - English (South Africa)||ro - Romanian||ji - Yiddish|
|en-tt - English (Trinidad)||ro-mo - Romanian (Republic of Moldova)||zu - Zulu|
|en-gb - English (United Kingdom)|
Kinesis Survey has default information page and validation translations for the following languages: en (English), ru (Russian), de (German), it (Italian), fr (French), es (Spanish), ko-kr (Korean), zh-cn (Chinese(PRC)), pl (Polish), tr (Turkish), pt-br (Portuguese), fr-ca (French(Canada)), sv (Swedish), es-mx (Spanish(Mexico)), ja (Japanese), ar-ae (Arabic(U.A.E)), fi (Finnish), hi (Hindi), ta (Tamil), vi (Vietnamese), nl (Dutch)
6: Change the Language Name
By default, the language name shown on the Language Selection page will be in English (e.g., "Spanish" instead of "Español"). To modify the text displayed for a language name, use the optional <language> tag within translation's XML file:
7: Right-to-Left (RTL) Languages
Displaying survey content as right-to-left text requires adjustments to the theme using the CSS direction property. However for multilingual surveys since all uploaded languages will be using the same theme, additional steps need to be taken so that the change is only applied for specific languages.
Going directly into a translated version of the survey or through the "Language selection" info page will append the "locale" parameter on the incoming URL with a value equal to the desired language's ID (assigned within the Language Manager).
The following example modifies the "surveyarea" class and is to be inserted at the bottom of the theme's HTML template. The piping statement is checking for a value of "2". This will needed to be updated to reflect the hidden question's answer choice for your rtl language in (i.e. 1 = English, 2 = Arabic, etc). Note that this could cause complications if the theme is already being used in another multi-lingual survey. Create a new theme as a copy if this is the case.
A variation of the script above is the following, which can be used when you do not need to store the locale into a survey question:
7.1: Right-to-Left (RTL) Languages (version 5.8+)
In version 5.8 the Survey application manages RTL languages and no additional setup is required. When in Language Manager, adding a RTL language to the project will result in having the RTL checkbox selected automatically. The RTL checkbox can also be checked/un-checked manually. Languages with the RTL checkbox selected will be rendered Right-to-Left automatically when the questionnaire pages are published.
- Change the content between the <language> tags to the name of the NEW language to which you will be translating. When imported this is will be stored as the language name you see within the Language Manager.
- Number questions can be localized -- ex. use "," vs. "." as the thousand separator. The format values for the content between the <locale> tags include: "us", "int", or "french". If the number questions are not using thousand separators or decimals, the default "us" will work.
- Date questions can be localized by modifying the content between the <format> tags to any of the following:
- Document encoding must be UTF-8
- Anything enclosed in ~ or % should NOT be translated, examples: ~QUESTION~ or %DATA%
- Attribute values such as a choice ID should not be translated.
- HTML tags should not be translated, example:
- Survey properties starting with <mobile___> can be left untranslated if the survey runs in web only mode.
- Kinesis Survey XML documents can be validated against Document Type Definition (DTD) found via the URL specified in the DOCTYPE header at the top of your translation file.