In this document:
Some strings in different contexts can require different translations. If you need to provide a context specific translation, the msgid must contain both, the translation string and the context in the form of “<translation string>_<context>”. For example, if the translation string is “Please wait” and the context is “Submit”, the respective msgid must be “Please wait_Submit”. A context can be created by the system for predefined translations. A package developer can create custom contexts as well.
Some default strings used in APS JS SDK widgets have predefined translation into the following languages:
The following strings have predefined translation:
WIDGET | TRANSLATION STRING | CONTEXT | DEFAULT VALUE |
---|---|---|---|
aps/Button | Please wait | apsButton | Please wait |
aps/DateTextBox | Select date | apsCalendar | Select date |
aps/Grid | No item(s) found | apsGrid | No item(s) found |
aps/Grid | Number of entries per page: | apsGrid | Number of entries per page: |
aps/Grid | item(s) total | apsGrid | item(s) tota |
aps/Grid | Search | apsGrid | Search |
aps/Grid | Reset Search | apsGrid | Reset Search |
aps/Grid | First | apsGrid | First |
aps/Grid | Last | apsGrid | Last |
aps/Grid | All | apsGrid | All |
aps/Grid | Pages | apsGrid | Pages |
aps/ListSwitcher | Settings | apsListSwitcher | Settings |
aps/ListSwitcher | Sorting: | apsListSwitcher | Sorting: |
aps/ListSwitcher | In ascending order: A to Z | apsListSwitcher | In ascending order: A to Z |
aps/ListSwitcher | In descending order: Z to A | apsListSwitcher | In descending order: Z to A |
aps/ListSwitcher | List View Mode: | apsListSwitcher | List View Mode: |
aps/ListSwitcher | Active List | apsListSwitcher | Active List |
aps/ListSwitcher | Classic List | apsListSwitcher | Classic List |
aps/Password | Reset password | apsPassword | Reset password |
aps/Password | Hide password | apsPassword | Hide password |
aps/Password | Show password | apsPassword | Show password |
aps/Password | Password does not match | apsPassword | Password does not match |
aps/Password | Reset | apsPassword | Reset |
aps/Password | The value entered is not valid. | apsPassword | The value entered is not valid. |
aps/Password | This value is required. | apsPassword | This value is required. |
aps/ProgressBar | completed | apsProgressBar | completed |
aps/Slider | This value is out of range. | apsSlider | This value is out of range. |
aps/Slider | The value entered is not valid. | apsSlider | The value entered is not valid. |
aps/Slider | This value is required. | apsSlider | This value is required. |
aps/Switch | ON | apsSwitch | ON |
aps/Switch | OFF | apsSwitch | OFF |
aps/TextBox | Not valid value | apsTextBox | Not valid value |
aps/TextBox | The value entered is not valid. | apsTextBox | The value entered is not valid. |
aps/TextBox | This value is required. | apsTextBox | This value is required. |
aps/TextBox | All symbols required. | apsTextBox | All symbols required. |
aps/ToolbarButton | Please wait | apsToolbarButton | Please wait |
aps/ToolsItem | Please wait | apsToolsItem | Please wait |
Note
The predefined translations are not presented in po
files. If you need to substitute a predefined
translation with your own custom string, you need to create manually the respective msgid and msgstr
pair in the proper po
file. The msgid string must include the respective context
as presented in the above table.
The aps msgmake
command extracts localization data from JavaScript code in *.html
and *.js
files
used for building UI views. The _()
function
is a hook that makes a string available for translation. For example, _("string to translate")
makes
the aps msgmake
command create the msgid “string to translate” and “msgstr” pair in the PO files.
The aps/i18n
module redefines the window._()
function.
In general case, a string may contain mapped parameters that should not be translated. The mapped parameters must be enclosed into a pair of underscores “__”. In the following example, the msgKey string contains parameters, which values must be found in the paramObjects mapping string.
_(msgKey, paramObjects)
The _()
function is used to localize the string @msgKey. For example, @msgKey is actually
a string “Found __itemsCount__ item(s)”.
This string contains the itemsCount parameter, wrapped by a pair of underscores. The parameter is defined
by the mapping string, for example, {“itemsCount”:counter}.
So, if aps msgmake
meets the following code when parsing a JavaScript code:
_("Found __itemsCount__ item(s)", {"itemsCount":itemsCount})
it automatically generates the following pair of records in the PO file:
msgid "Found __itemsCount__ item(s)"
msgstr ""
An interpreter can manually translate the message in the following way, for example, into Russian:
msgid "Found __itemsCount__ item(s)"
msgstr "Найдено __itemsCound__ элемент(ов)"
In case, a string translation is context dependent, specify a custom context as in the following example:
title: _("Context specific title", { context: "myOwnContext" })
For each context with the same string, the APS build utility will create a separate msgid and msgstr pair. For the above example, it will be:
msgid "Context specific title_myOwnContext"
msgstr ""
If the same string is used without a context property, a respective msgid will be created without the context property. In the process of building a widget on the client side, the context specific translation takes precedence over the context-less translation.