Translations and Internationalization: General Considerations
Editing Documents in Languages with Multi-Byte Encodings
Bloomreach Content is implemented in Java and uses Unicode throughout its core components. The storage layer (JCR-Jackrabbit) and the delivery tier also rely on Unicode. When rendering JSP pages or Freemarker templates, page output is buffered using Java Unicode (UTF-16) character buffers and typically rendered to the web page using UTF-8 encoding. As a result, Unicode text stored in the repository is displayed correctly.
You can edit multilingual documents and build multilingual sites without additional configuration. The CMS Document Editor supports all languages, and you can save and compare document changes as expected. Mixed-language content is supported, and document names can include Unicode characters. The JCR repository natively supports node names with multi-byte encodings.
When configuring the delivery tier, consider the following: If you create an hst:sitemapitem and set the hst:relativecontentpath parameter to reference a document by its path, that path may include multi-byte characters if the document or folder name uses them. While the delivery tier supports these characters, developers must ensure correct encoding in configuration files. Error messages containing multi-byte symbols may not display correctly in the server terminal, depending on the terminal and operating system encoding.
Bloomreach Content has been used in projects with extensive multilingual content. For an example, see netherlandsandyou.nl.
Using Languages with Right-to-Left Orientation
Right-to-left (RTL) languages, such as Arabic, require special handling. When you log in to the CMS in English and create content in Arabic, switching your keyboard language typically causes the browser to adjust the text input field orientation to RTL. For standard text and textarea inputs, this works as expected, although the cursor may initially appear on the left side of the input field.
For formatted and rich text fields, enable the CKEditor 'bidi' plugin to allow users to switch between left-to-right and right-to-left text orientation. Configure CKEditor as follows:
ckeditor.config.appended.json:
{ extraPlugins: 'bidi', toolbarGroups: [ { name: 'bidi' } ] }
CMS Translations
Most CMS interface text is managed through resource bundles. Some labels and translations are stored in the repository configuration, typically bootstrapped via XML files. The CMS performs minimal string manipulation, except in CKEditor, where it modifies links and image elements.
Adding a new CMS translation typically requires 2–3 days. Tools are available to help identify missing translations, including a SONAR check and a shell script for locating missing literals. For detailed instructions, refer to the documentation linked in the 'See also' section on this page.