16 Managing Application Globalization

This section describes how to translate an application built in Application Builder.

This section contains the following topics:

See Also:

"Viewing Installed Translations" in Oracle Application Express Administration Guide

About Translating an Application and Globalization Support

You can develop applications in Application Builder that can run concurrently in different languages. A single Oracle database instance and Oracle Application Express can support multiple database sessions customized to support different languages.

In general, translating an application built in Application Builder involves the following steps:

  • Map the primary and target application IDs

  • Seed and export the text to a file for translation

  • Translate the text in the file

  • Apply the translated file

  • Publish the translated file

Topics in this section include:

About Language Identification

After you create an application, you specify a language preference on the Edit Globalization Attributes page. Then you select a primary application language and determine how the Application Express engine determines the application language. You can specify to have the application language based on the user's browser language preference, an application preference, or an item preference.

Rules for Translating Applications Built in Application Builder

Use the following rules to determine which translated version to use:

  • Look for an exact match between the user language preference and the language code of the translated application.

  • Look for a truncated match. That is, see if the language and locale exist. For example, if the user language preference is en-us and the translated version of en-us does not exist, look for a translated application that has the language code en.

  • Use the primary application language.

For example, suppose you create an application with the primary language of German, de, and you create a translated version of the application with a language code of en-us. Users accessing this application with a browser language of en-us execute the English en-us version of the application. Users accessing the application with a browser language of en-gb view the application in the application's primary language, that is, in German. For this example, you should create the translated English version using language code en to encompass all variations of en.

How Translated Applications Are Rendered

After Oracle Application Express determines the language for an application, the Application Express engine alters the database language for a specific page request. It then looks for a translated application in the appropriate language. If the Application Express engine finds that language, it renders the application using that definition. Otherwise, it renders the application in the base (or primary) application language.

Note that the text that displays within an application is not translated on the fly. Oracle Application Express dynamically collects page attributes from either a base language application definition or an alternative application definition.

About Translatable Components

When you build an application in Application Builder, you define a large number of declarative attributes such as field labels, region headings, page header text, and so on. Using the steps described in this section, you can make all the application definition attributes within your application translatable.

About Shortcuts that Support Translatable Messages

Application Builder includes two shortcut types that enable you to reference translatable messages:

  • Message. Use this shortcut to reference a translatable message at run time. Note that the name of the shortcut must match the corresponding message name. At run time, the name of the shortcut expands to the text of the translatable message for the current language.

  • Message with JavaScript Escaped Single Quotes. Use this shortcut to reference a shortcut inside of a JavaScript literal string and reference a translatable message at run time. This shortcut defines a text string. When the shortcut is referenced, it escapes the single quotation marks required for JavaScript.

About Messages

If your application includes PL/SQL regions or PL/SQL processes, you may must translate any generated HTML or text. You may also need to translate messages used in reports if your application uses a language that is not one of the ten languages into which Oracle Application Express is translated.

About Dynamic Translation Text Strings

Dynamic translations are used for database data that needs to be translated at run time. For example, you might use a dynamic translation to translate a list of values based on a database query. A dynamic translation consists of a translate-from language string, a language code, and a translate-to string. You can also use the APEX_LANG.LANG API to retrieve dynamic translations programmatically.

About Translating Region Titles

By default, page region titles are included in the generated translation file. However, you can mark a region title as not translatable.

To mark a region title as not translatable:

  1. Navigate to the Page Definition. See "Accessing a Page Definition".

  2. On the Page Definition, select the region title.

    The Edit Region page appears.

  3. Select the exclude title from translation check box.

About Translating Templates

By default, templates are not translatable, and therefore are not included in the generated translation file. Generally, templates do not and should not contain translatable text. However, if you must mark a template as translatable, select the Translatable check box on the Edit Page Template page.

To identify a template as translatable:

  1. On the Workspace home page, click the Application Builder icon.

  2. Select an application.

  3. On the Application home page, click Shared Components.

  4. Under User Interface, select Templates.

    The Templates page appears.

  5. Locate the template you want to edit and select the template name.

  6. Under Name, select Translatable.

You can include translatable text at the application-level by defining the translatable text using static substitution strings. Because application-level attributes are translated, any text defined as a static substitution string will be included in the generated translation file.

Specifying the Primary Language for an Application

Globalization attributes specify how the Application Express engine determines the primary language of an application.

To edit globalization attributes:

  1. On the Workspace home page, click the Application Builder icon.

  2. Select an application.

  3. Click Shared Components.

  4. Under Globalization, click Edit Attributes.

  5. From Application Primary Language, select the language in which the application is being developed.

  6. From Application Language Derived From, specify how the Application Express engine determines (or derives) the application language. Available options are described in Table 16-1.

    Table 16-1 Application Language Derived From Options

    Option Description

    No NLS (Application not translated)

    Select this option if the application will not be translated.

    Use Application Primary Language

    Determines the application's primary language based on the Application Primary Language attribute. (See step 5.)

    Browser (use browser language preference)

    Determines the application's primary language based on the user's browser language preference.

    Application Preference (use FSP_LANGUAGE_PREFERENCE)

    Determines the application's primary language based on a value defined using the APEX_UTIL.SET_PREFERENCE API. Select this option to maintain the selected language preference across multiple logins.

    See Also: "SET_PREFERENCE Procedure" in Oracle Application Express API Reference

    Item Preference (use item containing preference)

    Determines the application's primary language based on an application-level item called FSP_LANGUAGE_PREFERENCE. Using this option requires Oracle Application Express to determine the appropriate language preference every time the user logs in.


Using Format Masks for Items

The Application Express engine applies globalization settings for each rendered page. This default behavior can impact the display of certain items such as numbers and dates.

For example, suppose your application determines the application language based on the user's browser language preference. If the Application Express engine determines the users's browser language preference is French, it displays dates and numbers in a format that conforms to French standards. You can override this default behavior and explicitly control how items display by applying a format mask. You apply a format mask by making a selection from the Display As list:

  • When you create the item

  • After you create the item by editing the item attributes

The following procedure describes how to edit item attributes for items having the source type of Database Column.

To edit item attributes:

  1. On the Workspace home page, click the Application Builder icon.

  2. Select an application.

  3. Select a page.

    The Page Definition appears.

  4. Under Items, select the item name.

    The Edit Page Item page appears.

  5. Under Name, make a selection from the Display As list.

  6. Under source, select or enter a format mask.

Translating Applications for Multibyte Languages

If your application needs to run in several languages simultaneously (such as Chinese and Japanese), consider configuring your database with a character set to support all of the languages. The same character set has to be configured in the corresponding database access descriptor (DAD) in mod_plsql. UTF8 and AL32UTF8 are the character sets you can use to support almost all languages around the world.

Understanding the Translation Process

To translate an application developed in Application Builder, you must map the primary and target language, seed and export text to a translation file, translate the text, apply the translation file, and publish the translated application.

Topics in this section include:

Step 1: Map the Target Language

The first step in translating an application is to map the primary and target application language. The primary application is the application to be translated. The target application is the resulting translated application.

To map the primary and target application language:

  1. Navigate to the Translate Application page:

    1. On the Workspace home page, click the Application Builder icon.

    2. Select an application.

    3. Click Shared Components.

    4. Under Globalization, click Translate Application.

      The Translate Application page appears.

  2. Click Map your primary language application to a translated application.

    The Application Mappings page appears.

  3. Click Create.

  4. On the Translation Application Mapping page:

    • Translation Application - Enter a numeric application ID to identify the target application. The translated application ID must be an integer and cannot end in zero.

    • Translation Application Language Code - Select the language into which you are translating.

    • Image Directory - Enter the directory where the images currently reside.

      This attribute determines the virtual path for translated images. For example, if your primary language application had an image prefix of /i/, you could define additional virtual directories for other languages, such as /i/de/ for German or /i/es/ for Spanish.

      Note that this language specific image directory is typically not needed for most translated applications.

  5. Click Create.

Step 2: Seed and Export Text to a Translation File

The second step is to seed the translation table and then export the translation text to a translation file.

Topics in this section include:

Seeding Translatable Text

Seeding the translation copies all translatable text into the Translation Text repository. After you specify the language and seed the Translation Text, you can then generate and export an XLIFF file for translation.

The seeding process keeps your primary language application synchronized with the Translation Text repository. You should run the seed process any time your primary language application changes.

To seed translatable text:

  1. Navigate to the Translate Application page:

    1. On the Workspace home page, click the Application Builder icon.

    2. Select an application.

    3. Click Shared Components.

    4. Under Globalization, click Translate Application.

      The Translate Application page appears.

  2. On the Translate Application page, select Seed and export the translation text of your application into a translation file.

  3. From Language Mapping, select the appropriate primary and target application ID map.

  4. Click Seed Translatable Text.

    The XLIFF Export page appears.

    Note:

    XML Localization Interchange File Format (XLIFF) is an XML-based format for exchanging localization data. For information about the XLIFF or to view the XLIFF specification, see:
    http://www.xliff.org
    

Exporting Text to a Translation File

After you have seeded translatable text, a status box displays at the top of the XLIFF Export page indicating the total number of attributes that may require translation, including the number of:

  • Existing updated attributes that may require translation

  • New attributes that may require translation

  • Purged attributes that no longer require translation

You can use this information to determine if you must export translatable text for an entire application or just a specific page.

The XLIFF Export page is divided into two sections. Use the upper section of the page to export translatable text for an entire application (that is, all pages, lists of values, messages, and so on). Use the lower section to export translatable text for a specific page.

Exporting Translatable Text for an Entire Application

To export translatable text for an entire application:

  1. Seed the translatable text. See "Seeding Translatable Text".

  2. Under Step 2, Export XLIFF:

    1. From Application, select the appropriate primary and target application ID map.

    2. Specify whether to include XLIFF target elements.

    3. Under Export, specify what translation text is included in your XLIFF file.

    4. Click Export XLIFF for Application.

  3. Follow the on-screen instructions.

Exporting Translatable Text for a Specific Page

To export translatable text for a specific page:

  1. Seed the translatable text as described in "Seeding Translatable Text".

  2. Under Export XLIFF for specific Page:

    1. From Application, select the appropriate primary and target application ID map.

    2. Specify whether to include XLIFF target elements.

    3. Under Export, specify what translation text is included in your XLIFF file.

    4. Click Export XLIFF for Page.

  3. Follow the on-screen instructions.

About Including XLIFF Target Elements

When Oracle Application Express generates an XLIFF document, each document contains multiple translation units. Each translation unit consists of a source element and a target element. The XLIFF document can be generated with both the source and target elements for each translation unit. You have the option of generating a file containing only source elements. The updated translations will be applied from the target elements of the translation units.

About Export

Use the options under Export to specify what translation text is included in your XLIFF file. Select All translatable elements to include all translation text for an application. In contrast, select Only those elements requiring translation to include only new elements that have not yet been translated. Only those elements requiring translation produces an XLIFF file containing new or modified translation units. Also, if translation units were intentionally not previously translated (that is, the source of the translation element equals the target of the translation element), those translation units will also be included in the file

Step 3: Translate the XLIFF File

After you export a translatable file to XLIFF format, you can translate it into the appropriate languages. Because XLIFF is an open standard XML file for exchanging translations, most translation vendors should support it. Oracle Application Express only supports XLIFF files encoded in UTF-8 character sets. In other words, it exports XLIFF files for translation in UTF-8 and assumes that the translated XLIFF files will be in the same character set.

Translation is a time-consuming task. Oracle Application Express supports incremental translation so that application development can be done in parallel with the translation. An XLIFF file can be translated and uploaded to Oracle Application Express even when only part of the XLIFF file is translated. For strings that have no translation in the corresponding translated application, Oracle Application Express uses the corresponding ones in the primary language.

See Also:

For more information about the XLIFF, or to view the XLIFF specification, see:
http://www.xliff.org

Step 4: Upload and Apply a Translated XLIFF Document and Publish the Application

After your XLIFF document has been translated, the next step is to upload and then apply it.

Topics in this section include:

Uploading a Translated XLIFF Document

To upload a translated XLIFF document:

  1. Navigate to the Translate Application page:

    1. On the Workspace home page, click the Application Builder icon.

    2. Select an application.

    3. Click Shared Components.

    4. Under Globalization, click Translate Application.

      The Translate Application page appears.

  2. Click Apply your translation file and publish.

  3. Click Upload XLIFF.

  4. On the XLIFF Upload page:

    1. Specify a title.

    2. Enter a description.

    3. Click Browse and locate the file to be uploaded.

    4. Click Upload XLIFF File.

    The uploaded document appears in the XLIFF Files repository.

Applying an Uploaded XLIFF Document and Publishing an Application

After you upload an XLIFF document, the next step is to apply the XLIFF document and then publish the translated application. When you apply an XLIFF document, the Application Express engine parses the file and then updates the translation tables with the new translatable text.

Publishing your application creates a copy of the base language application, substituting the translated text strings from your translations table. This published application can then be used to render your application in alternate languages.

Remember that in order to run an application in an alternative language, you must run it with globalization settings that will cause an alternative language version to display. For example, if the language is derived from the browser language, you must set the browser language to the same language as the translated application.

To apply a translated XLIFF document and publish the application:

  1. Navigate to the Translate Application page:

    1. On the Workspace home page, click the Application Builder icon.

    2. Select an application.

    3. Click Shared Components.

    4. Under Globalization, click Translate Application.

      The Translate Application page appears.

  2. Click Apply your translation file and publish.

  3. In the XLIFF Files repository, click the View icon next to the document you want to publish.

  4. From Apply to, select the appropriate primary and target application ID map.

  5. Click Apply XLIFF Translation File.

  6. Click Publish Application.

Deleting an Uploaded XLIFF Document

To delete an uploaded XLIFF document:

  1. Navigate to the Translate Application page:

    1. On the Workspace home page, click the Application Builder icon.

    2. Select an application.

    3. Click Shared Components.

    4. Under Globalization, click Translate Application.

      The Translate Application page appears.

  2. On the Translate Application page, select Apply your translation file and publish.

  3. In the XLIFF Files repository, select the check box to the left of the document title.

  4. Click Delete Checked.

You should verify the existence of the translated application after it is published. Translated applications do not display in the Available Applications list on the Application Builder home page. Instead, use the Application Navigate list on the left side of the page.

Note that in order for a translated application to appear in Application Builder, you must make sure that you have correctly configured the application Globalization attributes.

Manually Editing a Translation

Once you have mapped the target language and seeded the translatable text, you manually edit a translation.

To manually edit a translation:

  1. Map the target language. See "Step 1: Map the Target Language".

  2. Seed the translatable text. See "Seeding Translatable Text".

  3. Navigate to the Translatable Text page:

    1. On the Workspace home page, click the Application Builder icon.

    2. Select an application.

    3. Click Shared Components.

    4. Under Globalization, click Translate Application.

  4. From the Translation Utilities list, click Manually Edit Translations.

    The Translatable Text page appears. Use the Navigation bar at the top of the page to change the report display. Available options include:

    • Language Mappings - Select a language mapping and click Go.

    • Page - Enter a page number and click Go.

    • Translate - Enter a case insensitive query and click Go.

    • Display - Select the number of rows to display and click Go.

  5. To edit translatable text, click the Edit icon.

    The Translatable Text field appears.

  6. Edit the appropriate text and click Apply Changes.

Translating Messages

You may need to translate messages if your application:

  • Includes PL/SQL regions or PL/SQL processes or calls PL/SQL package, procedures, or function. If it does, you may need to translate the generated HTML.

  • Uses a language that is not one of the ten languages into which Oracle Application Express is translated. If it does, you may need to translate messages used in reports.

Topics in this section include:

Translating Messages Used in PL/SQL Procedures

If your application includes PL/SQL regions or PL/SQL processes or calls PL/SQL package, procedures, or functions, you may need to translate generated HTML. First, you define each message on the Translatable Messages page. Second, you use the APEX_LANG.MESSAGE API to translate the messages from PL/SQL stored procedures, functions, triggers, or packaged procedures and functions.

You create translatable messages on the Translate Messages page.

To define a new translation message:

  1. Navigate to the Translate Application page:

    1. On the Workspace home page, click the Application Builder icon.

    2. Select an application.

    3. Click Shared Components.

    4. Under Globalization, click Text Messages.

  2. On the Translate Messages page, click Create.

  3. On Identify Text Message, specify the following:

    1. Name - Enter a name to identify the message.

    2. Language - Select the language for which the message would be used.

    3. Text - Enter the text to be returned when the text message is called.

      For example, you could define the message GREETING_MSG in English as:

      Good morning %0
      

      Or, you could define the message GREETING_MSG in German as:

      Guten Tag %0
      
  4. Click Create.

About the APEX_LANG.MESSAGE API

Use the APEX_LANG.MESSAGE API to translate text strings (or messages) generated from PL/SQL stored procedures, functions, triggers, packaged procedures, and functions.

Syntax

APEX_LANG.MESSAGE (
    p_name    IN    VARCHAR2 DEFAULT NULL,
    p0        IN    VARCHAR2 DEFAULT NULL,
    p1        IN    VARCHAR2 DEFAULT NULL,
    p2        IN    VARCHAR2 DEFAULT NULL,
    ...
    p9        IN    VARCHAR2 DEFAULT NULL,
    p_lang    IN    VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2;

Parameters

Table 16-2 describes the parameters available in the APEX_LANG.MESSAGE API.

Table 16-2 APEX_LANG.MESSAGE Parameters

Parameter Description

p_name

Name of the message as defined in Oracle Application Express.

p0

...

p9

Dynamic substitution value: p0 corresponds to 0% in the message; p1 corresponds to 1% in the message; p2 corresponds to 2% in the message, and so on.

p_lang

Language code for the message to be retrieved. If not specified, Oracle Application Express uses the current language for the user as defined in the Application Language Derived From attribute.

See Also: "Specifying the Primary Language for an Application"


Example

The following example assumes you have defined a message called GREETING_MSG in your application in English as Good morning%0 and in German as Guten Tag%1. The following example demonstrates how you could invoke this message from PL/SQL:

BEGIN
    --
    -- Print the greeting
    --
    APEX_LANG.MESSAGE('GREETING_MSG', V('APP_USER'));
END;

How the p_lang attribute is defined depends on how the Application Express engine derives the Application Primary Language. For example, if you are running the application in German and the previous call is made to the APEX_LANG.MESSAGE API, the Application Express engine first looks for a message called GREETING_MSG with a LANG_CODE of de. If it does not find anything, then it will revert to the Application Primary Language attribute. If it still does not find anything, the Application Express engine looks for a message by this name with a language code of en-us.

See Also:

"Specifying the Primary Language for an Application" for information about the Application Primary Language attribute and APEX_LANG in the Oracle Application Express API Reference

Translating Messages Used Internally by Oracle Application Express

Oracle Application Express is translated into German, Spanish, French, Italian, Japanese, Korean, Brazilian Portuguese, Simplified Chinese, and Traditional Chinese. If your application uses a language that is not among the ten languages into which Oracle Application Express is translated, you must translate messages displayed by the Application Express reporting engine.

For example, if you develop a Russian application and want to include report messages, such as pagination, in Russian, you must translate the strings used in messages displayed in reports.

To translate messages:

  1. Navigate to the Translate Application page:

    1. On the Workspace home page, click the Application Builder icon.

    2. Select an application.

    3. Click Shared Components.

    4. Under Globalization, click Text Messages.

  2. On the Translate Messages page, click Create.

  3. On Identify Text Message, specify the following:

    1. Name - Enter the name of each message that needs to be translated. See Table 16-3.

    2. Language - Select the language for which the message would be used.

    3. Text - Enter the text to be returned when the text message is called. If the English text message contains positional substitution values (for example, %0, %1), ensure that your defined message also contains the same named and number of positional substitution values.

  4. Click Create.

Table 16-3 lists the internal messages that require translation.

Table 16-3 Internal Messages Requiring Translation

Message Name English Text

FLOW.SINGLE_VALIDATION_ERROR

1 error has occurred

FLOW.VALIDATION_ERROR

%0 errors have occurred

INVALID_CREDENTIALS

Invalid Login Credentials

OUT_OF_RANGE

Invalid set of rows requested, the source data of the report has been modified

PAGINATION.NEXT

Next

PAGINATION.NEXT_SET

Next Set

PAGINATION.PREVIOUS

Previous

PAGINATION.PREVIOUS_SET

Previous Set

REPORT_TOTAL

report total

RESET

reset pagination

SINCE_DAYS_AGO

%0 days ago

SINCE_HOURS_AGO

%0 hours ago

SINCE_MINUTES_AGO

%0 minutes ago

SINCE_MONTHS_AGO

%0 months ago

SINCE_SECONDS_AGO

%0 seconds ago

SINCE_WEEKS_AGO

%0 weeks ago

SINCE_YEARS_AGO

%0 years ago

TOTAL

Total

WWV_FLOW_UTILITIES.CAL

Calendar

WWV_FLOW_UTILITIES.CLOSE

Close

WWV_FLOW_UTILITIES.OK

Ok

WWV_RENDER_REPORT3.FOUND_BUT_NOT_DISPLAYED

Minimum row requested: %0, rows found but not displayed: %1

WWV_RENDER_REPORT3.SORT_BY_THIS_COLUMN

Sort by this column

WWV_RENDER_REPORT3.X_Y_OF_MORE_THAN_Z

row(s) %0 - %1 of more than %2

WWV_RENDER_REPORT3.X_Y_OF_Z

row(s)%0 - %1 of %2

WWV_RENDER_REPORT3.X_Y_OF_Z_2

%0 - %1 of %2


Table 16-4 lists the internal messages that require translation.

Table 16-4 Interactive Report Messages Requiring Translation

Message Name English Text

APEXIR_3D

3D

APEXIR_ACTIONS_MENU

Actions Menu

APEXIR_ADD

Add

APEXIR_AGGREGATE

Aggregate

APEXIR_AGGREGATE_DESCRIPTION

Aggregates are displayed after each control break and at the end of the report.

APEXIR_AGGREGATION

Aggregation

APEXIR_AGG_AVG

Average

APEXIR_AGG_COUNT

Count

APEXIR_AGG_MAX

Maximum

APEXIR_AGG_MEDIAN

Median

APEXIR_AGG_MIN

Minimum

APEXIR_AGG_MODE

Mode

APEXIR_AGG_SUM

Sum

APEXIR_ALL

All

APEXIR_ALL_COLUMNS

All Columns

APEXIR_AND

and

APEXIR_APPLY

Apply

APEXIR_ASCENDING

Ascending

APEXIR_AS_OF

As of %0

APEXIR_BETWEEN

between

APEXIR_BGCOLOR

Background Color

APEXIR_BLUE

blue

APEXIR_BOTTOM

Bottom

APEXIR_CALENDAR

Calendar

APEXIR_CANCEL

Cancel

APEXIR_CATEGORY

Category

APEXIR_CELL

Cell

APEXIR_CHART

Chart

APEXIR_CHART_INITIALIZING

Initializing...

APEXIR_CHART_TYPE

Chart Type

APEXIR_CHOOSE_DOWNLOAD_FORMAT

Choose report download format

APEXIR_CLEAR

clear

APEXIR_COLUMN

Column

APEXIR_COLUMNS

Columns

APEXIR_COLUMN_HEADING

Column Heading

APEXIR_COLUMN_HEADING_MENU

Column Heading Menu

APEXIR_COLUMN_INFO

Column Information

APEXIR_COMPARISON_CONTAINS

contains

APEXIR_COMPARISON_DOESNOT_CONTAIN

does not contain

APEXIR_COMPARISON_IN

in

APEXIR_COMPARISON_ISNOT_IN_LAST

is not in the last

APEXIR_COMPARISON_ISNOT_IN_NEXT

is not in the next

APEXIR_COMPARISON_IS_IN_LAST

is in the last

APEXIR_COMPARISON_IS_IN_NEXT

is in the next

APEXIR_COMPARISON_IS_NOT_NULL

is not null

APEXIR_COMPARISON_IS_NULL

is null

APEXIR_COMPARISON_LIKE

like

APEXIR_COMPARISON_NOT_IN

not in

APEXIR_COMPARISON_NOT_LIKE

not like

APEXIR_COMPARISON_REGEXP_LIKE

matches regular expression

APEXIR_COMPUTATION

Computation

APEXIR_COMPUTATION_FOOTER

Create a computation using column aliases.

APEXIR_COMPUTATION_FOOTER_E1

(B+C)*100

APEXIR_COMPUTATION_FOOTER_E2

INITCAP(B)||', '||INITCAP(C)

APEXIR_COMPUTATION_FOOTER_E3

CASE WHEN A = 10 THEN B + C ELSE B END

APEXIR_COMPUTE

Compute

APEXIR_CONTROL_BREAK

Control Break

APEXIR_CONTROL_BREAKS

Control Breaks

APEXIR_DATA_AS_OF

Report data as of %0 minutes ago.

APEXIR_DATE

Date

APEXIR_DEFAULT

Default

APEXIR_DELETE

Delete

APEXIR_DELETE_CHECKED

Delete Checked

APEXIR_DELETE_CONFIRM

Would you like to delete these report settings?

APEXIR_DELETE_CONFIRM_JS_DIALOG

Would you like to perform this delete action?

APEXIR_DELETE_REPORT

Delete Report

APEXIR_DESCENDING

Descending

APEXIR_DESCRIPTION

Description

APEXIR_DETAIL_VIEW

Single Row View

APEXIR_DIRECTION

Direction

APEXIR_DISABLE

Disable

APEXIR_DISABLED

Disabled

APEXIR_DISPLAY

Display

APEXIR_DISPLAYED

Displayed

APEXIR_DISPLAYED_COLUMNS

Displayed Columns

APEXIR_DISPLAY_IN_REPORT

Display in Report

APEXIR_DOWN

Down

APEXIR_DOWNLOAD

Download

APEXIR_DO_NOT_AGGREGATE

- Do not aggregate -

APEXIR_DO_NOT_DISPLAY

Do Not Display

APEXIR_EDIT_CHART

Edit Chart Settings

APEXIR_EDIT_CHART2

Edit Chart

APEXIR_EDIT_FILTER

Edit Filter

APEXIR_EDIT_HIGHLIGHT

Edit Highlight

APEXIR_ENABLE

Enable

APEXIR_ENABLED

Enabled

APEXIR_ENABLE_DISABLE_ALT

Enable/Disable

APEXIR_ERROR

Error

APEXIR_EXAMPLES

Examples

APEXIR_EXAMPLES_WITH_COLON

Examples:

APEXIR_EXCLUDE_NULL

Exclude Null Values

APEXIR_EXPAND_COLLAPSE_ALT

Expand/Collapse

APEXIR_EXPRESSION

Expression

APEXIR_FILTER

Filter

APEXIR_FILTERS

Filters

APEXIR_FINDER_ALT

Select columns to search

APEXIR_FLASHBACK

Flashback

APEXIR_FLASHBACK_DESCRIPTION

A flashback query enables you to view the data as it existed at a previous point in time.

APEXIR_FLASHBACK_ERROR_MSG

Unable to perform flashback request

APEXIR_FORMAT_MASK

Format Mask

APEXIR_FUNCTION

Function

APEXIR_FUNCTIONS

Functions

APEXIR_GO

Go

APEXIR_GREEN

green

APEXIR_HCOLUMN

Horizontal Column

APEXIR_HELP

Help

APEXIR_HELP_01

An Interactive Report displays a predetermined set of columns. The report may be further customized with an initial filter clause, a default sort order, control breaks, highlighting, computations, aggregates and a chart. Each Interactive Report can then be further customized and the results can be viewed, or downloaded, and the report definition can be stored for later use.

<p/>

An Interactive Report can be customized in three ways: the search bar, actions menu and column heading menu.

APEXIR_HELP_ACTIONS_MENU

The actions menu is used to customize the display of your Interactive Report.

APEXIR_HELP_AGGREGATE

Aggregates are mathematical computations performed against a column. Aggregates are displayed after each control break and at the end of the report within the column they are defined.

<p/>

<ul><li><b>Aggregation</b> allows you to select a previously defined aggregation to edit.</li>

<li><b>Function</b> is the function to be performed (e.g. SUM, MIN).</li>

<li><b>Column</b> is used to select the column to apply the mathematical function to. Only numeric columns will be displayed.</li></ul>

APEXIR_HELP_AGGREGATE

Aggregates are mathematical computations performed against a column. Aggregates are displayed after each control break and at the end of the report within the column they are defined.<p/>

<p/>

<ul><li><b>Aggregation</b> allows you to select a previously defined aggregation to edit.</li>

<li><b>Function</b> is the function to be performed (e.g. SUM, MIN).</li>

<li><b>Column</b> is used to select the column to apply the mathematical function to. Only numeric columns will be displayed.</li></ul>

APEXIR_HELP_CHART

You can include one chart per Interactive Report. Once defined, you can switch between the chart and report views using links below the search bar.

<p/>

<ul><li><b>Chart Type</b> identifies the chart type to include. Select from horizontal bar, vertical bar, pie or line.</li>

<li><b>Label</b> allows you to select the column to be used as the label.</li>

<li><b>Axis Title for Label</b> is the title that will display on the axis associated with the column selected for Label. This is not available for pie chart.</li>

<li><b>Value</b> allows you to select the column to be used as the value. If your function is a COUNT, a Value does not need to be selected.</li>

<li><b>Axis Title for Value</b> is the title that will display on the axis associated with the column selected for Value. This is not available for pie chart.</li>

<li><b>Function</b> is an optional function to be performed on the column selected for Value.</li></ul>

APEXIR_HELP_COLUMN_HEADING_MENU

Clicking on any column heading exposes a column heading menu.

<p/>

<ul><li><b>Sort Ascending icon</b> sorts the report by the column in ascending order.</li>

<li><b>Sort Descending icon</b> sorts the report by the column in descending order.</li>

<li><b>Hide Column</b> hides the column.</li>

<li><b>Break Column</b> creates a break group on the column. This pulls the column out of the report as a master record.</li>

<li><b>Column Information</b> displays help text about the column, if available.</li>

<li><b>Text Area</b> is used to enter case insensitive search criteria (no need for wild cards). Entering a value will reduce the list of values at the bottom of the menu. You can then select a value from the bottom and the selected value will be created as a filter using '=' (e.g. column = 'ABC'). Alternatively, you can click the flashlight icon and the entered value will be created as a filter with the 'LIKE' modifier (e.g. column LIKE '%ABC%').<li><b>List of Unique Values</b> contains the first 500 unique values that meet your filters. If the column is a date, a list of date ranges is displayed instead. If you select a value, a filter will be created using '=' (e.g. column = 'ABC').</li></ul>

APEXIR_HELP_COMPUTE

Computations allow you to add computed columns to your report. These can be mathematical computations (e.g. NBR_HOURS/24) or standard Oracle functions applied to existing columns (some have been displayed for example, others, like TO_DATE, can also be used).

<p/>

<ul><li><b>Computation</b> allows you to select a previously defined computation to edit.</li>

<li><b>Column Heading</b> is the column heading for the new column.</li>

<li><b>Format Mask</b> is an Oracle format mask to be applied against the column (e.g. S9999).</li>

<li><b>Format Mask</b> is an Oracle format mask to be applied against the column (e.g. S9999).</li>

<li><b>Computation</b> is the computation to be performed. Within the computation, columns are referenced using the aliases displayed.</li>

</ul>

<p/>

Below computation, the columns in your query are displayed with their associated alias. Clicking on the column name or alias will write them into the Computation. Next to Columns is a Keypad. These are simply shortcuts of commonly used keys. On the far right are Functions.

<p/>

An example computation to display Total Compensation is:

<p/>

<pre>CASE WHEN A = 'SALES' THEN B + C ELSE B END</pre>

(where A is ORGANIZATION, B is SALARY and C is COMMISSION)

APEXIR_HELP_CONTROL_BREAK

Used to create a break group on one or several columns. This pulls the columns out of the Interactive Report and displays them as a master record.

APEXIR_HELP_DETAIL_VIEW

To view the details of a single row at a time, click the single row view icon on the row you want to view. If available, the single row view will always be the first column. Depending on the customization of the Interactive Report, the single row view may be the standard view or a custom page that may allow update.

APEXIR_HELP_DOWNLOAD

Allows the current result set to be downloaded. The download formats will differ depending upon your installation and report definition but may include CSV, XLS, PDF, or RTF.

APEXIR_HELP_FILTER

Used to add or modify the where clause on the query. You first select a column (it does not need to be one that is displayed), select from a list of standard Oracle operators (=, !=, not in, between), and enter an expression to compare against. The expression is case sensitive and you can use % as a wild card (for example, STATE_NAME like A%).

APEXIR_HELP_FLASHBACK

Performs a flashback query to allow you to view the data as it existed at a previous point in time. The default amount of time that you can flashback is 3 hours (or 180 minutes) but the actual amount will differ per database.

APEXIR_HELP_HIGHLIGHT

Highlighting allows you to define a filter. The rows that meet the filter are highlighted using the characteristics associated with the filter.

<p/>

<ul><li><b>Name</b> is used only for display.</li>

<li><b>Sequence</b> identifies the sequence in which the rules will be evaluated.</li>

<li><b>Enabled</b> identifies if the rule is enabled or disabled.</li>

<li><b>Highlight Type</b> identifies whether the Row or Cell should be highlighted. If Cell is selected, the column referenced in the Highlight Condition is highlighted.</li>

<li><b>Background Color</b> is the new color for the background of the highlighted area.</li>

<li><b>Text Color</b> is the new color for the text in the highlighted area.</li>

<li><b>Highlight Condition</b> defines your filter condition.</li></ul>

APEXIR_HELP_REPORT_SETTINGS

If you have customized your Interactive Report, the report settings will be displayed below the Search Bar and above the report. If you have saved customized reports, they will be shown as tabs. You can access your alternate views by clicking the tabs. Below the tabs are the report settings for the current report. This area can be collapsed and expanded using the icon on the left.

<p/>

For each report setting, you can:

<ul><li><b>Edit</b> by clicking the name.</li>

<li><b>Disable/Enable</b> by unchecking or checking the Enable/Disable check box. This is used to temporarily turn off and on the setting.</li>

<li><b>Remove</b> by click the Remove icon. This permanently removes the setting.</li></ul>

<p/>

If you have created a chart, you can toggle between the report and chart using the Report View and Chart View links shown on the right. If you are viewing the chart, you can also use the Edit Chart link to edit the chart settings.

APEXIR_HELP_RESET

Resets the report back to the default settings, removing any customizations that you have made.

APEXIR_HELP_SAVE_REPORT

Saves the customized report for future use. You provide a name and an optional description.

APEXIR_HELP_SEARCH_BAR

At the top of each report page is a search region. The region provides the following features:

<p/>

<ul><li><b>Select columns icon</b> allows you to identify which column to search (or all).</li>

<li><b>Text area</b> allows for case insensitive search criteria (no need for wild cards).</li>

<li><b>Rows</b> selects the number of records to display per page.</li>

<li><b>[Go] button</b> executes the search.</li>

<li><b>Actions Menu icon</b> displays the actions menu (discussed next).</li></ul>

<p/>

Please note that all features may not be available for each report.

APEXIR_HELP_SELECT_COLUMNS

Used to modify the columns displayed. The columns on the right are displayed. The columns on the left are hidden. You can reorder the displayed columns using the arrows on the far right. Computed columns are prefixed with <b>**</b>.

APEXIR_HELP_SORT

Used to change the column(s) to sort on and whether to sort ascending or descending. You can also specify how to handle nulls (use the default setting, always display them last or always display them first). The resulting sorting is displayed to the right of column headings in the report.

APEXIR_HIDE_COLUMN

Hide Column

APEXIR_HIGHLIGHT

Highlight

APEXIR_HIGHLIGHTS

Highlights

APEXIR_HIGHLIGHT_CONDITION

Highlight Condition

APEXIR_HIGHLIGHT_TYPE

Highlight Type

APEXIR_HIGHLIGHT_WHEN

Highlight When

APEXIR_INTERACTIVE_REPORT_HELP

Interactive Report Help

APEXIR_INVALID

Invalid

APEXIR_INVALID_COMPUTATION

Invalid computation expression. %0

APEXIR_KEYPAD

Keypad

APEXIR_LABEL

Label

APEXIR_LABEL_AXIS_TITLE

Axis Title for Label

APEXIR_LAST_DAY

Last Day

APEXIR_LAST_HOUR

Last Hour

APEXIR_LAST_MONTH

Last Month

APEXIR_LAST_WEEK

Last Week

APEXIR_LAST_X_DAYS

Last %0 Days

APEXIR_LAST_X_HOURS

Last %0 Hours

APEXIR_LAST_X_YEARS

Last %0 Years

APEXIR_LAST_YEAR

Last Year

APEXIR_LINE

Line

APEXIR_MAX_QUERY_COST

The query is estimated to exceed the maximum allowed resources. Please modify your report settings and try again.

APEXIR_MAX_ROW_CNT

This query returns more then %0 rows, please filter your data to ensure complete results.

APEXIR_MIN_AGO

%0 minutes ago

APEXIR_MORE_DATA

More Data

APEXIR_MOVE

Move

APEXIR_MOVE_ALL

Move All

APEXIR_NAME

Name

APEXIR_NEW_AGGREGATION

New Aggregation

APEXIR_NEW_CATEGORY

- New Category -

APEXIR_NEW_COMPUTATION

New Computation

APEXIR_NEXT

&gt;

APEXIR_NEXT_DAY

Next Day

APEXIR_NEXT_HOUR

Next Hour

APEXIR_NEXT_MONTH

Next Month

APEXIR_NEXT_WEEK

Next Week

APEXIR_NEXT_X_DAYS

Next %0 Days

APEXIR_NEXT_X_HOURS

Next %0 Hours

APEXIR_NEXT_X_YEARS

Next %0 Years

APEXIR_NEXT_YEAR

Next Year

APEXIR_NO

No

APEXIR_NONE

- None -

APEXIR_NO_AGGREGATION_DEFINED

No aggregation defined.

APEXIR_NO_COLUMN_INFO

No column information available.

APEXIR_NO_COMPUTATION_DEFINED

No computation defined.

APEXIR_NULLS_ALWAYS_FIRST

Nulls Always First

APEXIR_NULLS_ALWAYS_FIRST

Nulls Always First

APEXIR_NULLS_ALWAYS_LAST

Nulls Always Last

APEXIR_NULL_SORTING

Null Sorting

APEXIR_NUMERIC_FLASHBACK_TIME

Flashback time must be numeric.

APEXIR_NUMERIC_SEQUENCE

Sequence must be numeric.

APEXIR_OPERATOR

Operator

APEXIR_ORANGE

orange

APEXIR_OTHER

Other

APEXIR_PIE

Pie

APEXIR_PREVIOUS

&lt;

APEXIR_PUBLIC

Public

APEXIR_RED

red

APEXIR_REMOVE

Remove

APEXIR_REMOVE_AGGREGATE

Remove Aggregate

APEXIR_REMOVE_ALL

Remove All

APEXIR_REMOVE_CONTROL_BREAK

Remove Control Break

APEXIR_REMOVE_FILTER

Remove Filter

APEXIR_REMOVE_FLASHBACK

Remove Flashback

APEXIR_REMOVE_HIGHLIGHT

Remove Highlight

APEXIR_RENAME_REPORT

Rename Report

APEXIR_REPORT

Report

APEXIR_REPORT_SETTINGS

Report Settings

APEXIR_REPORT_VIEW

&lt; Report View

APEXIR_RESET

Reset

APEXIR_RESET_CONFIRM

Restore report to the default settings.

APEXIR_ROW

Row

APEXIR_ROWS

Rows

APEXIR_ROW_OF

Row %0 of %1

APEXIR_ROW_ORDER

Row Order

APEXIR_ROW_TEXT_CONTAINS

Row text contains

APEXIR_SAVE

Save

APEXIR_SAVED_REPORT

Saved Report

APEXIR_SAVED_REPORT_MSG

Saved Report = "%0"

APEXIR_SAVE_AS_DEFAULT

Save as Default

APEXIR_SAVE_DEFAULT_CONFIRM

The current report settings will be used as the default for all users.

APEXIR_SAVE_REPORT

Save Report

APEXIR_SEARCH_BAR

Search Bar

APEXIR_SELECT_CATEGORY

- Select Category -

APEXIR_SELECT_COLUMN

- Select Column -

APEXIR_SELECT_COLUMNS

Select Columns

APEXIR_SELECT_COLUMNS_FOOTER

Computed columns are prefixed with **.

APEXIR_SELECT_FUNCTION

- Select Function -

APEXIR_SELECT_VALUE

Select Value

APEXIR_SEQUENCE

Sequence

APEXIR_SORT

Sort

APEXIR_SORT_ASCENDING

Sort Ascending

APEXIR_SORT_DESCENDING

Sort Descending

APEXIR_SPACE_AS_IN_ONE_EMPTY_STRING

space

APEXIR_STATUS

Status

APEXIR_TEXT_COLOR

Text Color

APEXIR_TIME_DAYS

days

APEXIR_TIME_HOURS

hours

APEXIR_TIME_MINS

minutes

APEXIR_TIME_MONTHS

months

APEXIR_TIME_WEEKS

weeks

APEXIR_TIME_YEARS

years

APEXIR_TOP

Top

APEXIR_UNAUTHORIZED

Unauthorized

APEXIR_UNIQUE_COLUMN_HEADING

Column Heading must be unique.

APEXIR_UNIQUE_HIGHLIGHT_NAME

Highlight Name must be unique.

APEXIR_UNSUPPORTED_DATA_TYPE

unsupported data type

APEXIR_UP

Up

APEXIR_VALID_COLOR

Please enter a valid color.

APEXIR_VALID_FORMAT_MASK

Please enter a valid format mask.

APEXIR_VALUE

Value

APEXIR_VALUE_AXIS_TITLE

Axis Title for Value

APEXIR_VALUE_REQUIRED

Value Required

APEXIR_VCOLUMN

Vertical Column

APEXIR_VIEW_CHART

View Chart

APEXIR_VIEW_REPORT

View Report

APEXIR_WORKING_REPORT

Working Report

APEXIR_YELLOW

yellow

APEXIR_YES

Yes


Translating Data That Supports List of Values

You create a dynamic translation to translate dynamic pieces of data. For example, you might use a dynamic translation on a list of values based on a database query.

Dynamic translations differ from messages in that you query a specific string rather than a message name. You define dynamic translations on the Dynamic Translations page. You then use the APEX_LANG.LANG API to return the dynamic translation string identified by the p_primary_text_string parameter.

Defining a Dynamic Translation

You define dynamic translations on the Dynamic Translations page. A dynamic translation consists of a translate-from language string, a language code, and a translate-to string.

To define a dynamic translation:

  1. Navigate to the Translate Application page:

    1. On the Workspace home page, click the Application Builder icon.

    2. Select an application.

    3. Click Shared Components.

    4. Under Globalization, click Translate Application.

  2. On the Translate Application page, select Optionally identify any data that needs to be dynamically translated to support SQL based lists of values.

  3. On the Dynamic Translations page, click Create and specify the following:

    1. Language - Select a target language.

    2. Translate From Text - Enter the source text to be translated.

    3. Translate To - Enter the translated text.

  4. Click Create.

APEX_LANG.LANG API

Syntax

APEX_LANG.LANG (
    p_primary_text_string    IN    VARCHAR2 DEFAULT NULL,
    p0                       IN    VARCHAR2 DEFAULT NULL,
    p1                       IN    VARCHAR2 DEFAULT NULL,
    p2                       IN    VARCHAR2 DEFAULT NULL,
    ...
    p9                       IN    VARCHAR2 DEFAULT NULL,
    p_primary_language       IN    VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2;

Parameters

Table 16-5 describes the parameters available in the APEX_LANG.LANG API.

Table 16-5 APEX_LANG.LANG Parameters

Parameter Description

p_primary_string

Text string of the primary language. This will be the value of the Translate From Text in the dynamic translation.

p0

...

p9

Dynamic substitution value: p0 corresponds to 0% in the in the translation string; p1 corresponds to 1% in the translation string; p2 corresponds to 2% in the translation string, and so on.

p_primary_language

Language code for the message to be retrieved. If not specified, Oracle Application Express uses the current language for the user as defined in the Application Language Derived From attribute.

See Also: "Specifying the Primary Language for an Application"


Example

Suppose you have a table that defines all primary colors. You could define a dynamic message for each color and then apply the LANG function to the defined values in a query. For example:

SELECT APEX_LANG.LANG(color)
  FROM my_colors

If you were running the application in German, RED was a value for the color column in the my_colors table, and you defined the German word for red, the previous example would return ROT.

About Supported Globalization Codes

If you are building a multilingual application, it is important to understand how globalization codes affect the way in which your application runs. These codes are set automatically based on the application-level Globalization attributes you select.

NLS_LANGUAGE and NLS_TERRITORY determine the default presentation of numbers, dates, and currencies.

Table 16-6 describes the globalization codes in Oracle Application Express.

Table 16-6 Oracle Application Express Globalization Codes

Language Name Language Code NLS_LANGUAGE NLS_TERRITORY

Afrikaans

af

ENGLISH

SOUTH AFRICA

Arabic

ar

ARABIC

UNITED ARAB EMIRATES

Arabic (Algeria)

ar-dz

ARABIC

ALGERIA

Arabic (Bahrain)

ar-bh

ARABIC

BAHRAIN

Arabic (Egypt)

ar-eg

EGYPTIAN

EGYPT

Arabic (Iraq)

ar-iq

ARABIC

IRAQ

Arabic (Jordan)

ar-jo

ARABIC

JORDAN

Arabic (Kuwait)

ar-kw

ARABIC

KUWAIT

Arabic (Lebanon

ar-lb

ARABIC

LEBANNON

Arabic (Libya)

ar-ly

ARABIC

LIBYA

Arabic (Morocco)

ar-ma

ARABIC

MOROCCO

Arabic (Oman)

ar-om

ARABIC

OMAN

Arabic (Qatar)

ar-qa

ARABIC

QATAR

Arabic (Saudi Arabia)

ar-sa

ARABIC

SAUDI ARABIA

Arabic (Syria)

ar-sy

ARABIC

SYRIA

Arabic (Tunisia)

ar-tn

ARABIC

TUNISIA

Arabic (U.A.E.)

ar-ae

ARABIC

UNITED ARAB EMIRATES

Arabic (YEMEN)

ar-ye

ARABIC

YEMEN

Assamese

as

ASSAMESE

INDIA

Basque

eu

FRENCH

FRANCE

Belarusian

be

RUSSIAN

RUSSIA

Bengali

bn

BANGLA

BANGLADESH

Bulgarian

bg

BULGARIAN

BULGARIA

Catalan

ca

CATALAN

CATALONIA

Chinese

zh

SIMPLIFIED CHINESE

CHINA

Chinese (China)

zh-cn

SIMPLIFIED CHINESE

CHINA

Chinese (Hong Kong SAR)

zh-hk

TRADITIONAL CHINESE

HONG KONG

Chinese (Macau SAR)

zh-mo

TRADITIONAL CHINESE

HONG KONG

Chinese (Singapore)

zh-sg

SIMPLIFIED CHINESE

SINGAPORE

Chinese (Taiwan)

zh-tw

TRADITIONAL CHINESE

TAIWAN

Croatian

hr

CROATIAN

CROATIA

Czech

cs

CZECH

CZECH REPUBLIC

Danish

da

DANISH

DENMARK

Dutch (Belgium)

nl-be

DUTCH

BELGIUM

Dutch (Netherlands)

nl

DUTCH

THE NETHERLANDS

English

en

AMERICAN

AMERICA

English (Australia)

en-au

ENGLISH

AUSTRALIA

English (Belize)

en-bz

ENGLISH

UNITED KINGDOM

English (Canada)

en-ca

ENGLISH

CANADA

English (Ireland)

en-ie

ENGLISH

IRELAND

English (Jamaica)

en-jm

ENGLISH

UNITED KINGDOM

English (New Zealand)

en-nz

ENGLISH

NEW ZEALAND

English (Philippines)

en-ph

ENGLISH

PHILIPPINES

English (South Africa)

en-za

ENGLISH

SOUTH AFRICA

English (Trinidad)

en-tt

ENGLISH

UNITED KINGDOM

English (United Kingdom)

en-gb

ENGLISH

UNITED KINGDOM

English (United States)

en-us

AMERICAN

AMERICA

English (Zimbabwe)

en-zw

ENGLISH

UNITED KINGDOM

Estonian

et

ESTONIAN

ESTONIA

Faeroese

fo

ENGLISH

UNITED KINGDOM

Farsi

fa

ENGLISH

UNITED KINGDOM

Finnish

fi

FINNISH

FINLAND

French (Belgium)

fr-be

FRENCH

BELGIUM

French (Canada)

fr-ca

CANADIAN FRENCH

CANADA

French (France)

fr

FRENCH

FRANCE

French (Luxembourg)

fr-lu

FRENCH

LUXEMBOURG

French (Monaco)

fr-mc

FRENCH

FRANCE

French (Switzerland)

fr-ch

FRANCH

SWITZERLAND

FYRO Macedonian

mk

MACEDONIAN

FYR MACEDONIA

Gaelic

gd

ENGLISH

UNITED KINGDOM

Galician

gl

SPANISH

SPAIN

German (Austria)

de-at

GERMAN

AUSTRIA

German (Germany)

de

GERMAN

GERMANY

German (Liechtenstein)

de-li

GERMAN

GERMANY

German (Luxemgourg)

de-lu

GERMAN

LUXEMBOURG

German (Switzerland)

de-ch

GERMAN

SWITZERLAND

Greek

el

GREEK

GREECE

Gujarati

gu

GUJARATI

INDIA

Hebrew

he

HEBREW

ISRAEL

Hindi

hi

HINDI

INDIA

Hungarian

hu

HUNGARIAN

HUNGARY

Icelandic

is

ICELANDIC

ICELAND

Indonesian

id

INDONESIAN

INDONESIA

Italian (Italy)

it

ITALIAN

ITALY

Italian (Switzerland)

it-ch

ITALIAN

SWITZERLAND

Japanese

ja

JAPANESE

JAPAN

Kannada

kn

KANNADA

INDIA

Kazakh

kk

CYRILLIC KAZAKH

KAZAKHSTAN

Konkani

kok

KOREAN

KOREA

Korean

ko

KOREAN

KOREA

Kyrgyz

kz

RUSSIAN

RUSSIA

Latvian

lv

LATVIAN

LATVIA

Lithuanian

lt

LITHUANIAN

LITHUANIANA

Malay (Malaysia)

ms

MALAY

MALAYSIA

Malayalam

ml

MALAYALAM

INDIA

Maltese

mt

ENGLISH

UNITED KINGDOM

Marathi

mr

ENGLISH

INDIA

Nepali (India)

ne

ENGLISH

UNITED KINGDOM

Norwegian (Bokmal)

nb-no

NORWEGIAN

NORWAY

Norwegian (Bokmal)

no

NORWEGIAN

NORWAY

Norwegian (Nynorsk)

nn-no

NORWEGIAN

NORWAY

Oriya

or

ORIYA

INDIA

Polish

pl

POLISH

POLAND

Portuguese (Brazil)

pt-br

BRAZILIAN PORTUGUESE

BRAZIL

Portuguese (Portugal)

pt

PORTUGUESE

PORTUGAL

Punjabi

pa

PUNJABI

INDIA

Romanian

ro

ROMANIAN

ROMANIA

Russian

ru

RUSSIAN

RUSSIA

Russian (Moldova)

ru-md

RUSSIAN

RUSSIA

Serbia

sr

CYRILLIC SERBIAN

SERBIA AND MONTENEGRO

Slovak

sk

SLOVAK

SLOVAKIA

Slovenian

sl

SLOVENIAN

SLOVENIA

Spanish (Argentina)

es-ar

LATIN AMERICAN SPANISH

ARGENTINA

Spanish (Bolivia)

es-bo

LATIN AMERICAN SPANISH

ARGENTINA

Spanish (Chile)

es-cl

LATIN AMERICAN SPANISH

CHILE

Spanish (Columbia)

ec-co

LATIN AMERICAN SPANISH

COLUMBIA

Spanish (Costa Rica)

es-cr

LATIN AMERICAN SPANISH

COSTA RICA

Spanish (Dominican Republic)

es-do

LATIN AMERICAN SPANISH

PUERTO RICO

Spanish (Ecuador)

es-ec

LATIN AMERICAN SPANISH

ECUDOR

Spanish (El Salvador)

es-sv

LATIN AMERICAN SPANISH

EL SALVADOR

Spanish (Guatemala)

es-gt

LATIN AMERICAN SPANISH

GUATEMALA

Spanish (Honduras)

es-hn

LATIN AMERICAN SPANISH

GUATEMALA

Spanish (Mexico)

es-mx

MEXICAN SPANISH

MEXICO

Spanish (Nicaragua)

es-ni

LATIN AMERICAN SPANISH

Nicaragua

Spanish (Panama)

es-pa

LATIN AMERICAN SPANISH

Panama

Spanish (Paraguay)

es-py

LATIN AMERICAN SPANISH

ARGENTINA

Spanish (Peru)

es-pe

LATIN AMERICAN SPANISH

PERU

Spanish (Peurto Rico)

es-pr

LATIN AMERICAN SPANISH

PEURTO RICO

Spanish (Traditional Sort)

es

LATIN AMERICAN SPANISH

SPAIN

Spanish (United States)

es-us

LATIN AMERICAN SPANISH

AMERICAN

Spanish (Uruguay)

es-uy

LATIN AMERICAN SPANISH

ARGENTINA

Spanish (Venezuela)

es-ve

LATIN AMERICAN SPANISH

VENEZUELA

Swedish

sv

SWEDISH

SWEDEN

Swedish

sv-fi

SWEDISH

FINLAND

Tamil

ta

TAMIL

INDIA

Telugu

te

TELUGU

INDIA

Thai

th

THAI

THAILAND

Turkish

tr

TURKISH

TURKEY

Ukrainian

uk

UKRAINIAN

UKRAINE

Urdu

ur

ENGLISH

UNITED KINGDOM

Uzbek

uz

LATIN UZBEK

UZBEKISTAN

Vietnamese

vi

VIETNAMESE

VIETNAM

Zulu

zu

ENGLISH

UNITED KINGDOM