6Adding Additional Languages: Overview
Overview of Adding Additional Languages
Oracle recommends adding languages before performing any configuration of the Siebel CRM application. This chapter provides overview information about how Siebel CRM handles working with multiple languages in the same Siebel CRM instance and adding additional languages to Siebel CRM. It includes the following topics:
About Language and Seed Data
When you use Siebel CRM in a particular language, you see the values for that language. For example, when selecting the status for a customer account record, an English user sees values such as New Customer or Active, while a French user sees Nouveau client or Actif. For this behavior to work, LOVs must be converted to MultiLingual List of Values (MLOV) through the MultiLingual List of Values conversion process.
To understand how the MLOV conversion process works, consider how Siebel CRM stores data when MLOV conversion has not been performed.
The image below is a List of Values (LOV) in Siebel CRM. Each LOV has one record per language. There is one record each for English-American and French languages. The Display Value displays in the user’s selected language, while the Language-Independent Code (LIC) is the same for each pair. The LIC is often the same as the English Display Value because the Oracle engineers who originally created the LOV created everything in English and the Oracle translation team later created the translated records. However, this is not required. For example in the image below, you can see that the English New Customer and French Nouveau client share the same C LIC value.
When the MLOV conversion has not occurred, Picklists display all values from all languages. This is undesirable behavior since the user only wants to see values in their own language. The image below shows a Picklist that displays values in both English and French.
The Display Value is stored in the database and whatever value is stored there is visible to all users. Therefore, if an English-speaking user selects Active, the Active value is stored in the database. A French user who views that same record will see Active, instead of Actif.
The image below displays what an English user sees when the New Customer value is selected.
The image below shows how Siebel CRM stores the New Customer value in the database.
A French user viewing the same record sees the English version, as opposed to the desired French version of the record. The image below is what displays for a French user.
The MLOV conversion process resolves these issues. The LOVs themselves are marked as Multilingual, indicating to the Siebel CRM platform that they must be treated as MLOVs and automatically translated. The image below displays a List of Values selected for MLOV conversion.
During the MLOV conversion, existing records in the database are updated to contain the LIC value, rather than the language-specific Display Value. The image below shows a record in the database that contains an LIC value.
When a record is retrieved from the database, Siebel CRM automatically performs a mapping from the stored LIC values to the correct Display Value for the user's language. For example, the image below is what an English user sees after a MLOV conversion has been performed and the CUST_STAT_CD of C is stored in the database.
The image below shows what a French user sees for the same record after the MLOV conversion process.
The image below shows the Display Values for the user’s language when they open a Picklist.
About Languages and Repository Data
In addition to supporting multiple languages within Picklists, the Siebel CRM application supports displaying the user interface in multiple languages using the same repository. A brief description of how this works at the repository level is provided in this topic. For more information, see Siebel Global Deployment Guide.
Language neutral repository objects share the same definition across all languages. Generally speaking, they are those objects that have no user interface aspect to them. For example, a BusComp or a BusComp field definition is the same regardless of the language in which the user is working. The Account BusComp is always the Account BusComp, regardless of the user's language choice.
Language specific objects need different definitions to support each user's language choice. For example, an English-speaking user would like to see an Account applet with the Accounts caption with columns such as Name or Location, while a French user would like to see that same applet rendered with Comptes as the caption and Nom de compte and Site columns.
To accommodate this behavior, many of the object types stored in the repository consist of parent object types that define the neutral components and child object types that contain the language specific aspects. Any attribute that can be translated, such as captions, labels, or column headers, are stored in the repository as symbolic strings, rather than hard-coded strings.
For example, consider the definition of the Account Form Applet in the image below.
The Title-String Reference attribute value is SBL_ACCOUNT-1004224420-0HD. This attribute value is used to look up the language-specific string at runtime based on the user's desired language.
If you navigate to the symbolic string object and search for the SBL_ACCOUNT-1004224420-0HD attribute value, you will see a child record for each language. The image below shows the results of a SBL_ACCOUNT-1004224420-0HD attribute value search.
At runtime, the Siebel CRM application renders the applet using the symbolic string for the user's desired language. The image below shows the symbolic string when the user’s language is English.
About the Process of Adding Additional Languages
To add additional languages to the Siebel CRM database, complete the following tasks:
-
Import language-specific seed data.
Import language-specific metadata to the Design Repository.
About Importing Languages
You can import individual languages by running the Database Server Configuration wizard for each language that you wish to install. You must run the Database Server Configuration wizard twice for each language. When you run the Database Server Configuration wizard, select the following options:
Install Database. Select this option once for every language to import the seed data that supports each language. Seed data appears in picklists and elsewhere throughout the Siebel CRM application. Failure to run the installation process for each language will result in empty picklists for that language.
Import Repository. Select this option once for every language to import the Siebel Runtime Repository data for each language. Siebel Runtime Repository data is the metadata that defines how the Siebel CRM application behaves. If you do not import the repository data for each language, the user interface will not show labels and other elements for that language.
About Flattening the Repository
After importing the seed and repository data for each additional language, the language data will exist in the database, but only seed data will be associated with a workspace while the repository data will not be associated with a workspace. This is illustrated by comparing ENU records to non-ENU records, as shown in the following tables.
Table List of Values: Workspace Specified for Newly Imported Language
NAME |
VAL |
LANG_ID |
WS_ID |
---|---|---|---|
Active |
Active |
ENU |
1@1 |
Active |
Actif |
FRA |
1@1 |
Table Symbolic String: Repository Data Not Specified for Newly Imported Language
SYM_STR_KEY |
LANG_CD |
STRING_VALUE |
REPOSITORY_ID |
WS_ID |
---|---|---|---|---|
SBL_ACCOUNT- 1004224420-0HD |
ENU |
Account |
1–1–1 |
1@1 |
SBL_ACCOUNT- 1004224420-0HD |
FRA |
Compte |
1–1–1 |
In order to set the Workspace Ids on the imported repository objects, you must flatten the repository. You can flatten the repository by running Siebel Tools with an appropriate set of command line parameters. For more information about flattening repositories, see Using Siebel Tools.
To flatten the repository, do the following:
In the tools.cfg file, set the following key to the ODBC source of your Siebel database:
[Siebel] ..... ServerDbODBCDataSource = Siebel_DSN ...
From the command line, change to the Siebel Tools bin folder, and then execute the flatten database process by running Tools with the FlattenWorkspace command line argument:
siebdev.exe /c tools.cfg /u UserID /p Password /d ServerDataSrc /FlattenWorkspace
After completing this process, all repository records for all languages are associated to the base Workspace, as illustrated by the following sample record:
Table Symbolic String Set Workspace after Running FlattenWorkspace
SYM_STR_KEY |
LANG_CD |
STRING_VALUE |
REPOSITORY_ID |
WS_ID |
---|---|---|---|---|
SBL_ACCOUNT- 1004224420-0HD |
ENU |
Account |
1–1–1 |
1@1 |
SBL_ACCOUNT- 1004224420-0HD |
FRA |
Comte |
1–1–1 |
1@1 |
About Running the Multilingual Conversion Process
The Multilingual Conversion process activates the multilingual list of values (MLOV) and ensures that the Siebel CRM application displays language-specific values in picklists throughout the Siebel CRM application. For more information about executing the Multilingual Conversion process, see Siebel Global Deployment Guide.
About Publishing Changes
The language import processes and the MLOV Conversion process makes changes to the Design Repository which are not automatically compiled into the Siebel Runtime Repository. The Siebel Runtime Repository requires a record for each language for each object. For example, an Account Form Applet has a record for each language. However, after importing languages, a Runtime Repository record exists only for the original language, typically English, as shown in the image below.
To address this problem and merge the changes and language-specific repository information into the Siebel Runtime Repository, you must perform a Full Publish. You can use the following command from the Siebel Tools bin folder to perform a Full Publish:
siebdev /c tools.cfg /TL {Comma-Separated Language Codes} /d ServerDataSrc /u SADMIN /p ******** /FullPublish
For example, the following command would regenerate the Runtime Repository for all 22 out-of-the-box languages:
siebdev /c tools.cfg /TL ENU,ARA,CHS,CHT,CSY,DAN,DEU,ESN,FIN,FRA,HEB,ITA,JPN,KOR,NLD,PLK,PTB,PTG,RUS,SVE,THA,TRK /d ServerDataSrc /u SADMIN /p ******* /FullPublish
After the Full Publish process completes, the Siebel Runtime Repository is populated with the records supporting all languages. In the image below, Full Publish was run for English and French, and you can see that there are now entries in the Applet Runtime Repository table for both languages.