Ektron enables authoring, organizing, publishing, and versioning of Web content—in multiple languages. Ektron has a fully-developed, Web content localization solution that combines Web content management with localization/translation management, and supports creating content in any language supported by the Unicode standard. Ektron provides multi-language support for the following areas:
Multi-language editions of the same content have the same ID number but are differentiated by a language attribute. As a result, a Web page template can link to a content item, but what appears is determined by the selected language. There are 2 ways that content’s language can be selected:
langType) parameter. For example,
mytemplate.aspx?LangType=1033. For a list of the decimal values for each supported language, see Ektron Workarea > Settings > Localization > Languages and Regions.
Developers can use the following server controla server control uses API language to interact with the CMS and Framework UI to display the output. A server control can be dragged and dropped onto a Web form and then modified.s for multi-language content:
The following Ektron components are affected by multi-language support:
The following steps provide an overview for setting up a multi-lingual website.
Only members of the Administrator Group or those assigned to the XLIFF-Admin role can view, add, or edit language settings. See Also: Using the Roles Screens .
A locale consists of a language and a region. For example, English (United States) describes the variation of English used in the United States, as opposed to English (English U.K.) used in the United Kingdom.
Each locale's identifier consists of a language code and region code.
You can create a new locale, if needed.
NOTE: If you select , the box in the column is checked automatically. This is because, if you let users view the language on the site, it must be enabled in the Workarea.
The default content language on a drop-down list is determined in the
ek_DefaultContentLanguage element of the
If you enable only one language on the Enable Languages and Regions screen, fields that prompt the user to select a language do not appear in Ektron. Instead, all content is created in that language.
To disable any language, uncheck its box in the column of the Enable Languages and Regions screen.
Before disabling the default language, you must assign a new one. If you disable a language for which content exists, that content remains in the database but no one can access it, either from within Ektron or when visiting your site, unless you later re-enable that language.
When you install Ektron, the default language is US-English (1033). The default language determines which edition of content is displayed if a site visitor does not select a language, or a visitor selects a language other than the default and navigates to page for which content does not exist in the selected language. In that case, Ektron looks for the selected language's Fallback Locales. For more information, see Setting the Fallback Locale. If content is not available in any of its Fallback locales, Ektron displays that content in the default language (if available).
IMPORTANT: You must enable a language before setting it as the default. See Also: Determining Which Languages are Available
To change the default language for your multi-language website:
ek_DefaultContentLanguageto the locale id of the default language. For example, 1031 for German. For a list of locale ids, see Ektron Workarea > Settings > Localization > Languages and Regions.
When a site visitor selects a language then navigates to a page on your site, Ektron uses the following criteria to determine which language edition of content to display.
To let site visitors to view your site in any enabled language, your developer places a LanguageSelect server control on any template. See Also: LanguageSelect
You can also indicate a language-edition by adding a language parameter to a quicklinka special kind of hyperlink that jumps to another content item on your Web site. (A regular hyperlink jumps to a Web page on the internet.). For example,
products.aspx?LangType=1033 displays the English (US) edition of the
products.aspx content. This syntax automatically sets the language cookie.
NOTE: For a list of the decimal value of each supported language, see Ektron Workarea > Settings > Localization > Languages and Regions.
Creating an external link to a page of foreign content
If another website links to a multi-lingual page on your site, the URL must include the language ID parameter. For example:
You have permission to add content to the folder.
You can also view all content in a folder, regardless of language. This menu makes it easy to find content in a selected language.
The View Contents of Folder screen displays the language of each content item.
You can set up a separate approval chainA series of users or user groups who must approve content before it can be published. for each edition of a content, and can create collectionA list of Ektron content links for display on a Web page.s, menus, taxonomy categories, and tasks in any supported language.
NOTE: Alternatively, you can designate certain sections of text within a content item to be included or excluded from certain languages. See Also: Creating One or More Localized Paragraphs
If a template’s text should change according to a user’s language selection, use a case statement to provide the language-specific content. Assume you want to create editions of the menu that runs under the header in 3 languages: English, French, and German:
NOTE: This procedure uses the
header.asp file delivered with the RC International sample site as an example.
Dim t_search, t_products, t_support, t_news, t_careers, t_calendar, t_home, t_login, t_site_lang, t_contact, t_copyright, calendar_id
Select Case ContentLanguage Case "1031" t_search = "Suche" Case "1036" t_search = “Recherche" Case else t_search = "Search" End Select
When a user visits a page controlled by this template and selects French or German as the site language, the page is refreshed and the translated values appear on the template.
Many Web page templates also include images that require translation. To set up templates to invoke images in the user-selected language:
Ektron provides locales for every language and region supported by your Windows server.
You can create a new locale on the Edit Language Details screen by picking a combination of language and region, as defined by the Unicode Common Locale Data Repository. On Windows Vista and later versions, you can use the Microsoft Locale Builder to create custom, supplemental ASP.NET cultures. Custom cultures are helpful if no ASP.NET culture matches either the language or the region; for example, eo-150 (Esperanto in Europe). You also can create custom cultures for new combinations, for example, fr-US (French in U.S.). For information about custom cultures and the Locale Builder, see the following Ektron Knowledge Base article: Using Locale Builder to create custom locales. After you create a locale, Ektron authors can create content, menus, collectionA list of Ektron content links for display on a Web page.s, and so on in that locale, and your site visitors can view content based on it.
For example, your website's default language is US English. You have some content in Swiss German (de-CH). The fallback language for that is Austrian German (de-AT), and the fallback language for Austrian German is German (de-DE). If the content on a page is not available in Swiss German, Ektron tries to find an Austrian German edition. If it cannot find that, it looks for a German edition. If that is not available, it tries to display an English edition. See also Setting the Fallback Locale.
In certain situations, you may want no fallback locale. That is, you want to display nothing if content is not available in the selected language. To accommodate this, None is an option in the Fallback Locale drop-down list.
NOTE: If you set None as the Fallback Locale for any language, and content is not available in the selected language, nothing appears on the page and no other languages are checked.
IMPORTANT: Unlike the Locale field, the Language Tag field must conform to the IETF BCP 47 (Best Current Practice).
When you export content for translation and apply the MachineTranslation strategy, Ektron translates the content using machine translation then immediately imports it. See Also: Using Machine Translation
The following is an example of how to implement the strategy. See Also: Customizing Behavior with Extensions
<objectFactory> <objectStrategies> <add name="MachineTranslation"> <strategies> <add name="MachineTranslationStrategyTemplate" type="Cms.Extensions.Templates .MachineTranslationStrategyTemplate, Cms.Extensions.Templates"/> </strategies> </add> </objectStrategies> <objectImplementations> </objectImplementations> </objectFactory>
Using a PseudoLocalization Strategy
NOTE: For background information, see Pseudolocalization (Wikipedia).
When you export content for translation and apply the PseudoLocalization strategy, Ektron converts the content to pseudo-language text and the immediately imports it..
The following is an example of how to implement the strategy. See Also: Customizing Behavior with Extensions
<objectFactory> <objectStrategies> <add name="PseudoLocalization"> <strategies> <add name="PseudoLocalizationStrategyTemplate" type="Cms.Extensions.Templates .PseudoLocalizationStrategyTemplate, Cms.Extensions.Templates"/> </strategies> </add> </objectStrategies> <objectImplementations> </objectImplementations> </objectFactory>
Here is an example of how to override the
public override void PseudoLocalize(ref string content, PseudoLocalizationEventArgs eventArgs)
Here are the
LocaleData Locale LocalizableCmsObjectType ObjectType long ObjectId
Developers use the
PseudoLocalize property to write custom code that programmatically starts the export process. Here is an example:
Ektron.Cms.Localization.LocalizationExportJob.PseudoLocalize = true;
Ektron applies the PseudoLocalization strategy if either of the following conditions is met:
You can apply PseudoLocalization Strategy to a locale's language tag in the Workarea. Use the Settings > Localization > Languages and Regions screen's Custom EXT field, as illustrated in the following figure. Programmatically,
Here is an example of overriding the Translate method.
public override void Translate(ref string content, MachineTranslationEventArgs eventArgs)
MachineTranslationEventArgs have intellisense, but the following is a list of its properties.
LocaleData SourceLocale LocaleData TargetLocale LocalizableCmsObjectType ObjectType long ObjectId
Ektron applies the Machine Translation strategy if either of the following conditions is met.
Developers use the
MachineTranslate property to write custom code that programmatically starts the export process. Here is an example:
Ektron.Cms.Localization.LocalizationExportJob.MachineTranslate = true;
You can apply Machine Translation Strategy to a locale's language tag in the Workarea. Use the Settings > Localization > Languages and Regions screen's Custom EXTfield. Programmatically,
Cultureproperty. See Also: How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization.
For instructions on setting a custom culture, see the following Ektron Knowledge Base article: HOW TO: Using Locale Builder to create custom locales
UICultureproperty. See Also: How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization
/siteroot/WorkArea/images/application/flags/folder. Any flags with elements in common with the locale's language and region appear as choices. If there is no flag next to the locale you are creating (for example fr-017, French in Africa), you can create an image, assign that name to it, and place it in the designated folder. Then return to this screen, select the locale, and select the image.
NOTE: If you set a language's Fallback Locale to None and the language is part of a fallback chain, if content is not available in that language, the chain terminates there.
You have the following options for translating content.
www.heartsome.net) or SDL Trados.
IMPORTANT: Before using machine translation services, you must first register with Google Translation services and then add your Google key value into the following code in the
<machineTranslation> <add key="GoogleTranslator" value="[your Google key value], https://www.googleapis.com/language/translate/v2?key=" /> </machineTranslation>
Use this procedure to initialize new foreign language content with content from a source language, then translate the content manually. The copying should facilitate the translation. For example, an editor translates content from French to German. The editor copies the French edition to new content whose language is German. As the editor translates the French edition into German, the French content is deleted. Any images in the content usually would remain, and all formatting (tables, bullets, and so on) is retained.
NOTE: You cannot translate XML Smart Forms using the Translate Content () button.
NOTE: Machine translation is not supported for all languages in the Language Settings screen. Also, you cannot translate XML Smart Forms using this method.
Like most software-based translation, someone fluent in the new language should verify that the translation is appropriate within the context of the page.
The machine translation feature lets you choose a glossary (that is, a field, industry, or subject area). This helps the software find the best translation for a term or phrase in that field.
Follow these steps to use the machine translation feature.
NOTE: If you do not see the language on the drop-down, you need to enable the language. See Also: Determining Which Languages are Available
NOTE: When the View Contents of Folders screen reappears, it is probably set to the source language. In this case, you do not see the new content in the target language. To see it, click View > Language and select All or the target language.
Follow these steps to enable Ektron's machine translation feature.
NOTE: The Google Translate API is only available as a paid service.
<machineTranslation> <!-- ex. value="[API_KEY_FROM_GOOGLE], https://www.googleapis.com/language/translate/v2?key="--> <add key="GoogleTranslator" value="" /> </machineTranslation>
You can copy content into XLIFFXML Localization Interchange File Format; for exchanging localization data. files that you can submit to a translation agency, or translate the content "in house." When the translation is complete, you import translated content to Ektron.
You can translate these kinds of Ektron information.
Ektron supports versions 1.0, 1.1, and 1.2 of the XLIFF standard. You specify the version you are exporting in the
web.config file, using the
ek_XliffVersion element. Any listed version can be imported.
Trados is a commonly used translation tool. SDL Trados Studio 2009 supports XLIFF 1.1 and 1.2, which are recommended for use with Ektron.
If you are using Trados (an earlier version of the product), it only supports XLIFF 1.0. Note that Ektron 6.1.4 and older default to XLIFF 1.1. In this case, change the XLIFF version in the
web.config file as described in Setting Up a Multi-lingual Website.
IMPORTANT: This button is only available in the eWebEdit400 editor.
The Localize Section button () lets you designate paragraphs to localize for the XLIFF translation process. For example, an author creates content in English, and does not want a specific paragraph to be translated into French. So, the author uses the Localize Section feature to exclude that paragraph from the French version of content. When the content is exported, the selected paragraph does not appear in the French XLIFF file.
On the following sample screen, Dutch and U.S. English are excluded. This means that French, German and Italian are included even though the Include box is not checked.
On the following sample screen, German and Italian are included. This means that Dutch, U.S. English, and French are excluded even though the Exclude box is not checked.
On the following sample screen, Dutch is included and U.S. English is excluded. In this case, because one language is included and another is excluded, German, Italian, and French are excluded even though the Exclude box is not checked.
The following is an overview of importing translation files.
Alternatively, select a Translation Package. See Also: Creating Multi-language Content.
Only members of the Administrator User Group and those defined in the Manage Members for Role: XLIFF-Admin screen can create or import XLIFF files. See Also: Using the Roles Screens
IMPORTANT: Make sure the files have been translated before you import them.
For each new edition:
Member of Administrators group, or assigned to the Translation State Admin or XLIFF Admin role See Also: Defining Roles
Each Ektron content item has a translation status. Only content marked "ready for translation" is included when you create an .xlf file. Use Mark Translation Status on the View Content screen to mark the translation status. See Also: Content Statuses
The Mark Translation Status button may have any of 3 icons, which also indicate the content's status.
NOTE: You may apply this status to unapproved content if it needs translation before the site goes live.
If you click Mark Translation Status (), a menu appears that lets you change its status. Note that Export for Translation () appears on the toolbar only if the content's translation status is Ready for Translation.
If you create an .xlf file for a folder, only content whose translation status is ready is included in the file.
NOTE: The Localization Dashboard provides an overview of translation activity within Ektron.
Prior to version 8.5, translated metadata is ignored when importing XLIFF files. Starting with version 8.5, key metadata fields are recognized in the XLIFF process and will be imported/exported.
After you import the translation files, Ektron removes them from the file system.
NOTE: If an error exists in any of the files, the erroneous files are moved into a subdirectory. The directory is created using a timestamp. For example:
The following metadata field names may be used for translation using the XLIFF export and import process.
This section describes how to have translated metadata applied to the translated content that does not use the above special names.
Although metadata exists in the XLIFF files, it does not appear in the content's metadata even if metadata is defined for that language. This is because metadata definitions have unique IDs across languages. While a content ID is the same for a corresponding content block in other languages, the same is not true for metadata.
As a result, the ID for the source language (for example, English) metadata is not automatically mapped to metadata for other languages (for example, Spanish).
To solve this problem, create a mapping between the IDs of metadata definitions of different languages that are synonymous. For example, consider the following metadata definitions.
In this example, IDs 102 and 106 are synonymous as are 104 and 108. Definition 110, however, only exists in Spanish.
The mapping is stored in an XML file. The mapping informs the XLIFF import process that metadata for ID 102 in English corresponds to ID 106 in Spanish and likewise with 104 and 108.
siteroot/workarea/xslt/and look for metadatadefinitions.xml. If it exists, go to step 2.
If it does not, download it from XliffMetadata.zip. After unzipping the file, copy the .xslt files to the
siteroot/workarea/localization/xliff folder. Copy the xml file to the
workarea/xslt/metadataDefinitions.xml. For each Metadata Definition, enter a
<dd>element within the
<dd>element has the following form.
<dd title="Name of the metadata definition"> <dfn id="ID" xml:lang="language-country code"/> <dfn id="ID" xml:lang="language-country code"/> : </dd>
<dl> <dd title="Paper form number"> <dfn id="102" xml:lang="en-US"/> <dfn id="106" xml:lang="es-ES"/> </dd> <dd title="Original page count"> <dfn id="104" xml:lang="en-US"/> <dfn id="108" xml:lang="es-ES"/> </dd> </dl>
The definition for ID 110 is not included because it applies to only one language.
Now, the XLIFF import process accesses the
metadataDefinitions.xml file to determine which definitions in the target language (for example, Spanish) correspond to the definitions in the source language (for example, English).
To create one or more .zip files for translation:
Only members of the Administrator User Group or those assigned to the XLIFF-Admin role can create, export, or import XLIFF files. See Also: Using the Roles Screens .
NOTE: The Include Subfolders field appears only if you click Export for Translation from the View Contents of Folder screen.
To translate the content into some languages, uncheck the languages that you do not want. You can uncheck the box in the header row (illustrated below) to uncheck all, then only check the ones you want.
The History section of the Export for Translation screen displays the translated files.
The history lists the .zip file created for each language. The top of the history window displays the most recently exported/imported files. ZIP files are indicated by the WinZip icon (). To the right of the icon are:
NOTE: When the translation agency returns XLIFF files, their extension must be .xlf or .xml. Other than that, the file name is not important.
The user ID indicates which user performed the export or import.
Use the Multi-language Translation Package to create and control groups of content that require translation. Translation packages contain any type of content managed by Ektron including
For ease of use, you may add content and folders to one or more Translation Packages.
After creating a Translation Package, you use the Export for Translation screen's Select Packages field to export the content for translation. See Also: Exporting Content to XLIFF
Only content that’s selected for that package and marked “Ready for Translation” is exported. See Also: Marking Translation Statuses
You must be a member of the Administrators group or be assigned to the XLIFF Admin role. See Also: Defining Roles
NOTE: You can add more languages to the package after you create it.
If you select a folder, only content in that folder that matches the Translation Package's source language is included. For example, you create a Translation Package in English. In that package, you select folder which has 1 content item in English, 2 in Spanish, and 1 in German. When the package is exported for translation, it includes the English content only.
NOTE: To check subfolders, open the folder tree to show the subfolders then check the top folder. If you do not want to include the subfolders, do not open the folder tree or uncheck the specific subfolders.
Complex images often contain text that you wish to translate. Because the image is a "flat" non-layered file, it is difficult to make text changes. However, the text may be on a layer within a Photoshop (.psd) file.
XliffReferenceSourceof the type
NOTE: The key name
XliffReferenceSource is a reserved name and recognized by the XLIFF import/export process.
By default, the Workarea is in English. Ektron provides US English strings in a text file. Workarea text (that is, screen titles, Workarea menus, messages, alt text for buttons, and so on) is stored in a resource file. Resource files are installed to the
siteroot\Workarea\resources directory. Workarea images that include text are stored in the
workarea/images/language folder. For example,
Ektron provides a resource files for the following languages. The English resource file is complete, so translate the English file into the desired language. The others are partially complete.
A resource file is not human-readable. To make it so, use Microsoft’s
resgen utility, then translate the human-readable, .txt version of the file. The following example shows a portion of it.
add menu title=Add Menu lbl ad serverip=Domain Controller IP alt: remove collection items text=Click here to remove items from this collection
Each string has the following components:
btntext appears on a button.
For each string, translate the text to the right of the equal sign. Then, run the
resgen utility on the .txt file again, indicating the translate-to language. This converts the file back to a machine-readable format. Finally, move that file to the appropriate language folder under
workarea/images, and enable the new language in the Workarea.
- The alphabetical, 4-character identifier of the country/language into which you are translating. See CultureInfo Class from the MSDN website.
- The server that hosts Ektron must have Visual Studio.NET.
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Binto the
In Visual Studio 2008, the
resgen.exe utility is typically located in the <SDK dir>\bin directory, located via HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows.
your-web-site\Workarea\resourcesfolder. For example,
resgen EKResource.en-US.resources anyfilename.txt
resgen anyfilename.txt EKResource.two-character country code-two-character language code.resources.
anyfilename.txt with the file you named in Step 4. In this example, the .txt file is named
span_translation.txt. For example, to indicate that the Workarea is being translated into the Spanish/Spain, enter
resgen.exe span_translation.txt EKResource.es-ES.resources.
When the conversion is complete, Writing Resource File ...Done appears in the command window.
Workarea\resourcesfolder includes several resource files. If one exists for the translate-to language, it is overwritten. If one does not exist, it is created. To follow our example, the
EkResource.es-ES.resourcesfile was updated with your changes.
Workarea\imagesfolder contains text images that need translation. If the country/language into which you are translating has subfolder within
Workarea\images, inspect its images to see if they need translation. If the country/language into which you are translating does not have a subfolder within
NOTE: If you use the
Ektron’s spell checker for eWebEdit400 refers to a standard dictionary of the content’s language. So, for example, if the content is U.S. English, the U.S. English dictionary is referenced.
The spell checker also references a language-specific custom dictionary. Words are added to this list when a user stops at a misspelled word and chooses the Add to Dictionary option.
Both dictionaries reside on the server that hosts Ektron.
The spell checker compares each word against both sources. If a word is in either one, the spell checker moves to the next word. If a word is missing from both sources, the spell check options shown below appear, and the user decides what to do.
If Ektron does not have a dictionary that matches the content language, it proceeds through these steps in the following order:
If it begins with zh, use zh-CHS.
The following topics explain how to access a screen for working with standard dictionaries, and how to update, edit, replace, and delete individual words as well as entire dictionaries. You cannot edit a word. Instead, delete a word then add the corrected version.
Ektron provides a special screen that lets you create, update, and delete the standard dictionaries. To access this screen, use this URL:
This screen looks like this.
NOTE: If you want to remove the red text from the top of the screen, open the .aspx file and delete that text.
To use this screen, the ASP.NET user must be granted read and write permission to the following folder:
NOTE: If ASP.NET user has full permission but you still cannot edit a dictionary, open the folder listed above, right click the TDF file and verify it is not read-only.
NOTE: Tip! Enter the word you just added into the Find Word field and click Find to verify that the word was successfully added.
NOTE: Enter the deleted word into the Find Word field and click Find to verify that the word was successfully removed.
You can add a list of words to a standard dictionary. For example, you work in a hospital and want to add medical terms. While you can add words one at a time using Adding a Word to a Dictionary, it is more efficient to place all words in a text file then import the file into a dictionary.
NOTE: While on the screen, enter one of the words in the word list into the Find word field, then click Find to verify that the import succeeded.
Typically, you want to import a dictionary because the language of some Ektron content is not included in the set of standard dictionaries. For example, your content is Japanese.
You also can delete a standard dictionary then import one to replace it if you have a word list that you consider superior to the standard dictionary. See Also: Deleting a Dictionary.
To import a dictionary:
NOTE: The following procedure assumes the words do not yet exist in a .TDF file. If they do, open the Dictionary Configurator screen, click Browse, select the file, and click Import. See Also: Accessing the Spell Check Dictionary Update Screen.
NOTE: Use the Edit dictionary screen to select the dictionary. Then, use the Find word field to verify that the import succeeded.
You typically would delete a standard dictionary to replace it if you have a word list that you consider superior to the standard dictionary.
A language’s custom dictionary is created the first time a user uses the Add to Dictionary option while spell checking content in that language. From then on, the dictionary is updated when anyone using that server edits content in that language and uses the Add to Dictionary option. The name of the custom dictionary is formed using:
So, if the content is French, the file’s name is
fr-fr-custom.txt. The file is saved to the
You can edit the custom dictionary manually using an application that updates .txt files, such as Notepad.
You must be a member of the Administrators group or assigned to the XLIFFXML Localization Interchange File Format; for exchanging localization data. Admin role. See Also: Defining Roles
The Localization Dashboard provides an overview of translation activity occurring in Ektron. To access the Localization Dashboard from the Workarea, go to Settings > Localization > Dashboard. The top of the screen lets you choose criteria. The lower section then displays content that meets the criteria. For example, you can find all US English content whose translation status is Ready for Translation, and resides in the
/Clients folder. The lower section of the screen also lets you perform tasks on its content, such as print a list or change its Translation Status. See Also: Marking Translation Statuses
The following list explains the fields at the top of the screen. After you enter the selection criteria, click Filter Results to apply the new selections.
IMPORTANT: These criteria have an AND relationship. This means that, if you select several criteria, only content that satisfies all appears in the lower section of the screen.
When you open the Localization Dashboard, the lower section displays all content in the Default Application Language.
NOTE: The pagination of the content list is controlled by the
<add key="ek_PageSize"> element of your siteroot/
On the lower section, you can:
As described in Creating the .zip File, when exporting content for translation, you select one or more target languages.
You can add, edit, or remove target languages for content in the lower section of the Localization Dashboard using Action menu options.
The actions associated with the menu options are performed the next time the Create XLIFF Files for Translation button is clicked:
To change the target language assigned to content in the lower section of the Localization Dashboard:
To learn about Translation Status, see Marking Translation Statuses.
The following Ektron Knowledge Base articles describe issues surrounding the display of special characters within Ektron eWebEditPro, Ektron’s deprecatedfunctionality that was improved upon by other functionality. If you are already using a deprecated item, you can continue to do so, but Ektron recommends using current versions of functionality. WYSIWYG editor embedded within Ektron.
Wherever these articles contain references to eWebEditPro’s configuration data or file (
config.xml), you should instead update the
web.config file, located in your site’s root folder.