Language of Data Catalog, Design Studio and Scheduler¶
The language of Data Catalog, Design Studio and the administration tool of Scheduler is English by default. The administrators can change:
The default language of these applications.
They can put in place several language files so these applications automatically display their user interface in the language preferred by the user’s web browser.
The language configuration of each application is independent. For example, you can set Data Catalog in French and Design Studio in English.
We provide the language files for some of these applications and some languages. For any other languages, the administrators of these applications can translate the user interface to the language of their choice. To translate these files, follow the steps below, Creating Your Own Language Files. Once you have the files, the steps to deploy them are the same as for the files we provide.
Changing the Language of the Applications¶
For each application, do this:
Download the language files you want to deploy for each application:
Data Catalog 9.2:
Design Studio 9.2:
Scheduler 9.2:
Copy the files to the work directory of each application:
Data Catalog:
<DENODO_HOME>/work/data-catalog/Design Studio:
<DENODO_HOME>/work/design-studio/Scheduler:
<DENODO_HOME>/work/scheduler-webadmintool/customization/
Follow these naming conventions:
Default language: name the file customLang.properties. This will be the default language for the application. If a user’s preferred browser language does not have a specific language file, the application will fall back to this language. If customLang.properties does not exist, the default language will be English.
Specific languages: name the file customLang_<languageCode>.properties - where <languageCode> is a standard ISO 639-1 language code (e.g., zh for Chinese).
Specific language and region: customLang_<languageCode>_<regionCode>.properties - where <languageCode> is the ISO 639-1 language code and <regionCode> is a standard ISO 3166-1 alpha-2 country code (e.g., for Québec French, rename the file to customLang_fr_CA).
If you want a language other than English to be the default language, edit the configuration file of the application and change the value of the property
customLang.langAttributeto the code of that language. That is, the standard ISO 639-1 language code (e.g., ja for Japanese).For example:
For French:
customLang.langAttribute=frFor French (Québec):
customLang.langAttribute=fr_CAFor Japanese:
customLang.langAttribute=jaFor Simplified Chinese:
customLang.langAttribute=zh_CN
Configuration file of each application:
Data Catalog:
<DENODO_HOME>/conf/data-catalog/DataCatalogBackend.properties.Design Studio:
<DENODO_HOME>/conf/design-studio/DesignStudioBackend.properties.Scheduler:
<DENODO_HOME>/conf/scheduler-webadmintool/ConfigurationParameters.properties
Restart the application.
Language Fallback Mechanism
The application uses a fallback mechanism to determine the application language:
It first checks if a language file exists that exactly matches the user’s preferred browser language, including the region (e.g., customLang_en-US.properties).
If an exact match is not found, it checks for a language file matching the base language code (e.g., customLang_en.properties for a browser preferring en-US or en-GB).
If no specific language file is found for the user’s preferred languages, the application uses the language defined in customLang.properties (if it exists).
If customLang.properties does not exist, the application will default to English.
Examples
Setting French as default language but leave English as an option:
Rename the French language file to customLang.properties. This will make French the default language for Design Studio if no specific browser language match is found.
Copy the English file from the folder resources to the folder work of the application and rename it to customLang_en.properties.
Data Catalog:
<DENODO_HOME>/resources/data-catalog/messages/customLang.properties.template.Design Studio:
<DENODO_HOME>/resources/design-studio/messages/customLang.properties.template.Scheduler:
<DENODO_HOME>/resources/scheduler-webadmintool/messages/customLang.properties.template
Supporting Quebec French:
Rename the Quebec-French file to customLang_fr-CA.properties. If a user’s browser is configured to prefer “French (Canada)” (fr-CA), Design Studio will be displayed in this language. If not, the system will try to find a more general French language file (customLang_fr.properties or customLang.properties).
Supporting Japanese:
Copy the Japanese language file to customLang_ja.properties. If a user’s browser has Japanese as one of its preferred languages, Design Studio will be displayed in Japanese.
Creating Your Own Language Files¶
This section explains how to translate the language files of Data Catalog, Design Studio and Scheduler so the administrators can deploy these languages as well; not just the ones we provide. The installation of the Denodo Platform includes a template file for each application.
Data Catalog:
<DENODO_HOME>/resources/data-catalog/messages/customLang.properties.template.Design Studio:
<DENODO_HOME>/resources/design-studio/messages/customLang.properties.template.Scheduler:
<DENODO_HOME>/resources/scheduler-webadmintool/messages/customLang.properties.template
Consider this:
These templates change every update, when there are new labels and messages to translate.
These template files contain key-value pairs like this one:
Ensure that the language files are encoded in UTF-8, to avoid character encoding issues.
The content and quality of the language files directly affect the user experience. It is the administrator’s responsibility to provide accurate and complete translations.
login.signIn=Sign in
The administrator must translate the value of each pair. In this example, translate “Sign in” to the required language.
You can do this only for the applications you want to translate, you do not need to do it for all of them.
Once you translate a file, the steps to deploy this file are the same as for the language files we provide.
Considerations When Translating the Language Files¶
The customLang.properties files store the translation of the messages in key-value pairs. You must translate the value, not the key. For example, if you are translating the user interface to Spanish, replace this:
common.daysOfWeek.monday=Monday
with this:
common.daysOfWeek.monday=Lunes
That is, translate the text on the right side of the “=” sign.
When changing these files, follow these rules:
Do not change the encoding of the
customLang.propertiesfiles. They are encoded in UTF-8 and if you change it, the applications may display garbled text.Do not translate words surrounded by curly braces (e.g.
{name}). These words represent a pattern, and the applications will replace them with context-related information.For example, for this message:
login.welcome=Welcome {username}!leave
{username}as is:login.welcome=¡Bienvenido {username}!Note that
{username}remains in the translated message. When the application displays this message to a user, it will replace{username}with the value of this pattern.Be careful with complex patterns. Those expressions contain both tokens and values to be translated. For example, if you see this:
element.usage.times.queries=Query executed {times, plural, one {once} =2 {twice} other {# times}}you must translate it to this:
Consulta ejecutada {times, plural, one {una vez} =2 {dos veces} other {# veces}}Note that the nested patterns within curly braces have been translated to Spanish.
The documentation of ICU MessageFormat explains this in more detail.
How to Refresh Custom Messages After Installing an Update¶
If you are using a language file provided by Denodo, you do not have to do this.
If you already translated a customLang.properties, this file will not be modified during the installation of a Denodo update. The new update may include a new customLang.properties.template for each Web Administration Tool with modifications that might include new messages, modifications of previous messages and deleted messages.
When an update is installed, if a previous customLang.properties.template file exists the update will replace the template with the new version. Also, the update will create a backup of the current template file (adding a suffix such as customLang.properties.template.back.202107152200 where the numbers at the end represent the update version where the template was added). Do not remove the backup versions because they will help you find changes in the upcoming updates.
To keep your custom customLang.properties files updated use the script <DENODO_HOME>/setup/common/custom_lang_util. This script finds the differences and updates your customLang.properties files. You can manually update your custom file checking the differences between the previous template and the new template, or generate a new customLang.properties using your current customLang.properties as a starting point.
custom_lang_util script options:
-diff: receives as argument the template of the previous version and the template of the last version and shows the differences between both files categorized (removed properties, new properties and modified properties).
Use this option to update your current
customLang.properties. Usage:-diff <lastPropertiesTemplateFile> <updatedPropertiesTemplateFile>
-gen: creates a custom properties file using as a starting point your current
customLang.propertiesand applies the differences between the template you used to generate your current file and the new template. At the end of the generated file, you will find two sections showing new and modified properties. Each modified property will have a comment with the previous value and the new value and will not replace the custom defined message. The properties that no longer exist in the new template are automatically removed. Usage:-gen <lastPropertiesTemplateFile> <updatedPropertiesTemplateFile> <currentCustomPropertiesFile> <newCustomPropertiesFile>
Example of updating the customLang.properties of the Design Studio manually:
Identify the new and the old templates. First, check your current update version and your previous update in the Control Center. Let’s say that XXXXXXXX is our previous update and YYYYYYYY is the version of the latest update installed. Open the template folder
<DENODO_HOME>/resources/design-studio/messages/. You may find a template file for each update installed. Identify the ones which version matches with your current and previous version respectively, in our examplecustomLang.properties.template.back.XXXXXXXXandcustomLang.properties.template.back.YYYYYYYY.Using the script
custom_lang_util.shidentify the differences by executing the following commands (replace ‘XXXXXXXX’ and ‘YYYYYYYY’ with the version of your template files):
cd <DENODO_HOME>/setup/common
custom_lang_util.sh -diff ../../resources/design-studio/messages/customLang.properties.template.back.XXXXXXXX ../../resources/design-studio/messages/customLang.properties.template.back.YYYYYYYY
Open your current
<DENODO_HOME>/work/design-studio/customLang.propertiesand update its value with the information obtained in step 2.Restart the application to load the new configuration.
Example of generating a customLang.properties for the Design Studio with the help of the script custom_lang_util.sh:
Identify the new and the old templates. First, check your current update version and your previous update in the control center. Let’s say that XXXXXXXX is our previous update and YYYYYYYY is the version of the latest update installed. Open the template folder
<DENODO_HOME>/resources/design-studio/messages/. You may find a template file for each update installed. Identify the ones which version matches with your current and previous version respectively, in our examplecustomLang.properties.template.back.XXXXXXXXandcustomLang.properties.template.back.YYYYYYYY.Using the script
custom_lang_util.shgenerate the new file executing the following commands (replace ‘XXXXXXXX’ and ‘YYYYYYYY’ with the version of your template files):
cd <DENODO_HOME>/setup/common
custom_lang_util.sh -gen ../../resources/design-studio/messages/customLang.properties.template.back.XXXXXXXX ../../resources/design-studio/messages/customLang.properties.template.back.YYYYYYYY ../../work/design-studio/customLang.properties ../../work/design-studio/new_customLang.properties
Open your new file
<DENODO_HOME>/work/design-studio/new_customLang.properties, go to the end of the file and update the values of the new and modified properties.Replace
<DENODO_HOME>/work/design-studio/customLang.propertieswith your new properties file<DENODO_HOME>/work/design-studio/new_customLang.properties.Restart the application to load the new configuration.
