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.

LOV Language Values

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.

Picklist Values Before MLOV Conversion

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.

English User New Customer Screen

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.

French User View of English User New Customer Screen

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.

LOVs Marked 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.

LIC Value in the Database

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.

English User New Customer Screen

The image below shows what a French user sees for the same record after the MLOV conversion process.

French User’s New Customer Screen

The image below shows the Display Values for the user’s language when they open a Picklist.

Picklist Displaying Values in the User’s Language

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.

From the point of view of globalization, repository data comes in two flavors: Language Neutral and Language Specific.
  • 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.

Account Form Applet Definition.

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.

Note: The Title column shows the value of the string for the current language. In this example, Siebel Web Tools is running in English, so it shows the English value, Account.

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.

Symbolic Strings Object

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.

Symbolic String for the User's Desired Language

About the Process of Adding Additional Languages

To add additional languages to the Siebel CRM database, complete the following tasks:

  1. About Importing Languages

    1. Import language-specific seed data.

    2. Import language-specific metadata to the Design Repository.

  2. About Flattening the Repository

  3. About Running the Multilingual Conversion Process

  4. About Publishing Changes

Note: It is not possible to add the binary components for additional languages after the initial installation. For example, if you install the SES and SAI components for English only, it will not be possible to add the French components later. You will need to uninstall and reinstall those components before adding new languages and running the MLOV conversion process. For more information, refer to Chapter 2, Installing Software for the Siebel CRM Application.

    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:

      1. In the tools.cfg file, set the following key to the ODBC source of your Siebel database:

        [Siebel]
        .....
        ServerDbODBCDataSource   = Siebel_DSN
        ...
      2. 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.

          The Runtime Repository before running Full Publish for English and French languages.

          Note: When the Runtime Repository is in this state, any attempt to login to Siebel CRM application returns a misleading error indicating Incorrect user ID or password. The actual issue is that the Siebel Runtime Repository and Workspace are in an invalid state. As a byproduct of the flattening process, even the base language users are unable to use the Siebel CRM application.

          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

          Note: At this time, Full Publish must be run on all desired languages at the same time. Processing occurs in parallel, which requires a lot of memory and requires a large number of database operations. For this reason, it is recommended that this process be run on a machine with a signficant (16GB+) amount of memory and that the Full Publish process is run on a server on the same network subnet as the Siebel Database Server.

          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.

          The Runtime Repository after running Full Publish for English and French languages.