# General Administration

## Internationalization I18N

| ### Internationalization and Localization
| Internationalization
| Internationalization is the process of developing a software product whose core design makes no assumptions based on a locale. It handles all targeted linguistic and cultural variations (e.g. text orientation, date/time format, currency, sorting, etc.) within a single code base. Isolating all message strings in text files is another necessary step to prepare a product for localization. I18N allows to include characters other than Latin characters to multi-lingual data.
| Localization
| Localization takes an internationalized product and customizes it for a specific market. This includes translating the software strings, rearranging the user interface components to retain the original layout, customizing the formats, the defaults, etc. Such a customization is only possible if the application is properly internationalized; otherwise, problems can occur with the application and the language version.
| ### Overview
| In Agile e6, NCHAR columns with a Unicode charset are used to represent the non-Latin multi-lingual data in the ORACLE database. This requires changes in the data model and the application server. Thus, when supporting NCHARs all software components accessing the database directly by using JDBC (or similar drivers) can see the correct data.
| How to Enable I18N
| Determine which of the languages in the DataView repository should be capable of storing non-Latin characters.
| The rest of this instruction assumes that the language LN5 is chosen.
| The languages should not be in use yet, otherwise migration issues might occur.
| For all of these languages, set the new configuration column T_LANGUAGE.C_ENCODING to UTF-8.
| Use SQLPlus (or ISQL for SQL server) to change the entry in T_LANGUAGE.C_ENCODING to UTF-8: SQL> UPDATE T_LANGUAGE SET C_ENCODING = 'UTF-8' WHERE C_SIGN = 'LN5'; SQL> COMMIT;
| The national charset used in the database does not matter here, always enter UTF-8.
| All multi-lingual database columns that represent one of the encoded languages must be converted to the NVARCHAR2 data type (ORACLE). SQL scripts are provided to convert only a standard Agile e6 dump for I18N support. Even though the scripts add an additional language field to all sources (e.g. views, functions, triggers, etc.), modifications made to the sources beforehand will be overwritten. To prevent overwriting the modifications in the sources, the I18N scripts have to be modified before executing them. Otherwise, the sources have to be modified again after the scripts have been executed. Please contact an Oracle Agile e6 consultant for further help.
| Execute the scripts. The scripts can be found under ...\axalant\db_util\oracle\sql
Script | Description
demo_bas_1_alter_table_add_LN5.sql | Adds fields to the database
demo_bas_2_views_LN5.sql | Creates views
demo_bas_3_source_LN5.sql | Creates remaining sources (e.g. stored procedures, functions, etc.)
demo_bas_4_upd_tfield_LN5.sql | Addst fields to DataView repository
demo_bas_5_update_LN5.sql | Fills new language column in the database with English values
| After the scripts have been executed, restart the client.
| The application server (DataView) recognizes all multi-lingual fields of the languages encode with UTF-8 as encoded fields. Several new DataView functions have been added to deal with such fields.
| To automatically create NEW encoded fields with the correct database type, which were added during the customizing, click Create table. Existing database columns that represent encoded fields are automatically converted to the correct database type.
| Please keep in mind, if you have special database indices, views, or PL/SQL procedures, which are not in the DataView repository and refer to such a table (created in previous step), these objects have to be modified manually after the table creation.
| Set the value of the System Configuration Parameter EDB-CHR-ENC-JVM to UTF-8. This tells Java and ECI clients which encoding they should use; UTF-8 allows them to use all available UniCode 2.0 characters.
| To be able to display non-Latin characters, a font that contains the required characters is needed for the respective languages (e.g. Microsoft Office supplies a universal Unicode font named Arial Unicode MS (ARIALUNI.TTF)).
| Add this font to the Java client setup. 1. Open Tools > Options > User interface and Connections. 2. Go to the Mask settings and change the Field font entry in the Font tab using the font chooser. 3. Select your Unicode font. 4. Click OK to activate your changes. 5. Open your mask containing the NVARCHAR2 field and insert a new record.
| This can also be predefined in the Java client default property file (jacc.defaults). For instance: to configure Arial Unicode MS with letter size 11, add this to the property file: CommonMaskProperty.fieldFont=Arial Unicode MS,0,11
| When using the Web client, your Web Browser has to support the UTF-8 encoding, and it also needs a respective Unicode font.
| Further installation information can be found at: Background Installation Information Installation Information for ECI Clients