-
FND_LANGUAGES table shows which languages are installed, and which is the base language and which are non-base languages (Installed Languages)Query to identify which language(s) have been installed
- The Translated tables (*_TL) contain one record for each language i.e the translated string for each language.
- Translated views (*_VL) have been introduced for the “_TL” tables, which allow concurrent programs to select data based on the session language without running the risk of returning more rows than expected using a condition within the view query like,t.LANGUAGE= USERENV(‘LANG’)
If queries are executed from SQL*Plus on the _VL views without setting the session language then no rows will be returned. This is explained in this article.
MLS development guidelines
User messages
- All user message (labels/pop ups) are to be derived from translation tables or from fnd message.
- Form item labels
- Report item labels
- Pop up messages
- Concurrent program output
- Workflow notifications
- Form personalizations
SQL Queries
-
SQL queries should access data from _TL tables or _VL tables and have the following WHERE clauset.LANGUAGE= USERENV(‘LANG’)
XML Publisher reports
- There are 2 ways to develop XML Publisher report templates
- Each report will have as many templates as the number of languages it is expected to run on.
- Single template across all languages where the labels will also be derived from fnd messages or translation tables
Single template Multiple template Advantage - 1 single file to be maintained
- Modification/Addition of business logic or layout is simple
- No business logic required to display template associate with language. It is configured in Oracle.
Disadvantage - Modification/Addition of business logic or layout in the template is difficult
- Business logic required to display the template associated with the language
- Multiple files to be maintained
SQL Loader
-
To include different character sets into an Oracle table we have to specify the character set in the control file.ExampleLOAD DATACHARACTERSET UTF8INFILE *REPLACE INTO TABLE LOADER_TESTFIELDS TERMINATED BY ‘;’TRAILING NULLCOLS (USR_ID INTEGER EXTERNAL,USR_NAME CHAR(50),USR_LNK_NAME CHAR(50),USR_LNK_ORDER INTEGER EXTERNAL)BEGINDATA1;Santé bien;http://www.vaud-sante.ch;32;Santé;http://www.vaud-sante.ch;43;Alle à gessa;http://www.gessa.com/now;24;Alle à;http://www.gessa.com/now;15;Gägs;http://www.gaegs.ch;56;Gägs ä;http://www.gaegs.ch;6
Application File System
-
Once the MLS patches have been applied to Oracle a set of directories are created in Unix under reports, forms, etc directories with the 2 character language code.
- For instance, if patch for Spanish has been applied in Oracle a new set of folders will be created, like $GL_TOP/reports/ES, $AP_TOP/forms/ES
- The point to keep in mind here is that any custom component created with specific changes for a language must be dropped to the language specific directory.
- All translatable files reside in a subdirectory which has the language code incorporated in the name (e.g. $AP_TOP/reports/EL, $GL_TOP/forms/F etc.) .
– Forms, Reports, Messages & Seeded data are translated
NLS parameters in functions
-
TO_DATE
- NLS_DATE_LANGUAGE
- NLS_CALENDAR
-
TO_NUMBER
- NLS_NUMERIC_CHARACTERS
- NLS_CURRENCY
- NLS_DUAL_CURRENCY
- NLS_ISO_CURRENCY
-
TO_CHAR
- NLS_DATE_LANGUAGE
- NLS_NUMERIC_CHARACTERS
- NLS_CURRENCY
- NLS_ISO_CURRENCY
- NLS_DUAL_CURRENCY
- NLS_CALENDAR
-
TO_NCHAR
- NLS_DATE_LANGUAGE
- NLS_NUMERIC_CHARACTERS
- NLS_CURRENCY
- NLS_ISO_CURRENCY
- NLS_DUAL_CURRENCY
- NLS_CALENDAR
-
NLS_UPPER
- NLS_SORT
-
NLS_LOWER
- NLS_SORT
-
NLS_INITCAP
- NLS_SORT
-
NLSSORT
- NLS_SORT
Example of usage
Example of error message after applying MLS patches
- The LOV associated with the DFF segment has not been correctly coded with regards to translations.
- We can add LANGUAGE= USERENV(‘LANG’) in the Where/Order By region to pick up the value based on the user’s language
- We can change the table name to FND_LOOKUP_VALUES_VL instead of FND_LOOKUP_VALUES
Recent Comments