Internationalization Support
Adding and maintaining
supported languages
Determining User Runtime Language
How texts are selected for display
Formatting of numeric and date fields
Ebase Designer Language Preference
See also: How to use Static Lists
Ebase
provides full support for multiple languages, the concept being that a form can
be created once, and then run in any number of languages.
Any number
of languages can be added to the Ebase system as a supported language. When a new user connects to the system, one of
these supported languages is chosen and set for the duration of their web
session. This language is then used for two purposes:
·
To display language sensitive text
elements within the Ebase system – this includes all texts (both form and
system texts), static lists and messages.
·
To control the formatting of
numeric and date fields when data is presented to the user or entered by the
user.
The system
is supplied with the following supported languages: Dutch, English, French,
German, Polish, Portuguese, Spanish, Swedish and Welsh. Additional languages
can be added and existing supported languages can be modified using the Languages tab of the
internationalization dialog on the tools menu (Tools
-> System Preferences -> Internationalization)

The list on
the left shows all supported languages defined to the system.
Add - add a new
language to the system.
Remove - remove
the language selected in the list from the system. This
button should be used with caution, as every text item in this language will
also be removed. Use the Disable
button to temporarily disable a language but still retain any text items.
Properties
- change the properties of the selected language.
Set Default -
Set the selected language as the default language. One of the languages must be
set as the default and it is displayed in a bold font. The significance of the default
language is that it becomes the default runtime language (see determining runtime language) and can also be used
in selecting text items to display to the user (see how texts
are selected for display).
Enable/Disable
– Enable or disable the selected language. This is a toggle switch with only
one of Enable or Disable being displayed. A disabled language is not available to
users.
Both the Add and Properties buttons access the properties dialog.
Language
Code: this can only be entered when adding a new language.
Select from the dropdown list. See Language Codes
below.
Description:
the description of the language used throughout the system to represent the
language.
Enabled:
specifies whether the language is enabled or disabled. A disabled language is
not available to users.
Format and
Formatting language
This
section provides the ability to change the format used to present and enter
numeric and date fields. When a new language is added, the formatting language is initially set to the same value as the
Language Code, but a different formatting language can be specified if
required. For example, a French division of an international company might
require that all numeric and date formatting be done using American
conventions. In this case, the language code could be set to 'fr', and the
formatting language set to 'en_us'.
The format
area below the formatting language is display only and provides an example of
how various field data will be displayed to users.
Use
default encoding: use the default encoding provided by the
application server for the language. You should only change this if you think
that the application server is not providing the correct encoding.
Always
use: directs the system to always use the specified encoding
for this language. If the encoding you require is not in the dropdown list, it
can be typed in.
Note that
this specification of character encoding for a specific language can be
overridden. See Character Encoding
tab.
Ebase uses
RFC 3066 language identifiers. This
language code is split into sub tags, where a '_' character delimits each sub
tag. Normally, the first sub tag
represents a language from ISO 639. Second or subsequent sub tags are optional,
and further identify the language. Often the second sub tag is a two character
country code (ISO 3166). Full detail of
this standard is available at http://rfc.net/rfc3066.html.
In this
way, primary languages (such as French and English) may be used several times,
each time with different sub tags. For example, the languages 'en' (English),
'en_gb' (British English) and 'en_us'
(American English) may coexist.
Ebase takes
advantage of this language hierarchy both when identifying the user's runtime
language and when selecting the language of a text item. So, for example, the
user may be identified as American (en_us) but, where a particular American
text item does not exist, it can be safely shown as an English (en) text item.
This gives the Ebase user the ability to handle subtle differences between similar
languages with a minimum of typing. This is explained further below.
The user's
runtime language is determined as each form is started. The strategy for
determining the user’s language is defined using the Options tab of the internationalization dialog on the tools menu (Tools -> System Preferences -> Internationalization).

The system
uses the following three methods in turn to determine the runtime language. If
a method results in a language choice, the language chosen is used; if not, the
system moves to the next option. The first two methods are configurable and can
be enabled or disabled using the checkbox to the left of each item.
1. Use the URL
language parameter: a
language code may be added to the URL used to
invoke the form using parameter LANGUAGE.
e.g. the following URL www.myco.com/ufs/ufsmain?formid=MYFORM&LANGUAGE=FR will run the MYFORM form in French, if French is a valid
supported language. This is the technique used by the Designer to submit a form
in a specific language. This option can be enabled or disabled using the
checkbox to the left of the item, but note that disabling the option will
prevent testing of multiple languages from the Designer.
2. Try to honour the
users browser setting: the
languages that have been configured in the user’s web browser are examined in
turn. The first language to match a supported language is used. This setting
allows the automatic setting of language to the user’s preference as configured
in the browser he/she is using. This option can be enabled or disabled using
the checkbox to the left of the item.
3. The system default
language: if a
language has not been determined by one of the methods above, the system
default language is used. This option cannot be disabled.
The setting
of runtime language lasts for the duration of the user’s session and will be
carried through to subsequent forms executed. When accessing subsequent forms,
the LANGUAGE URL parameter may be
used to override the current language, however the browser setting and default
language will be ignored.
It is also
possible to change the runtime language programmatically with the SET FPL
command:
SET $LANGUAGE = XXX;
Where XXX
evaluates to the language code of a supported
language. If the language does not exist, an error will occur.
There are
three Ebase elements that support multiple language texts. These are:
·
Texts: All form and system texts
·
Messages: All messages displayed to the user
·
Static Lists: All static list displayed texts. (See How to use Static Lists for more
information)
Together
these elements provide total support for presenting a form in any number of
languages.
As a form
is displayed to a user, the most appropriate text for each text item above is
chosen according to the user’s runtime language as described by the following
rules:
1. The
system first checks if a text exists for the language
code of the user’s runtime language.
2. If
not, the sub tags are removed from the language
code one by one until a match is found.
3. If
a text has still not been found, the default language is used.
It is
important that all text items are completed for the default language, otherwise
a form could be displayed with missing texts.
Example:
A form has
5 text items: text item 1 -> 5, and there are three supported
languages: en
(English), fr (French),
and fr_BE (Belgian French). The
default language is en.
The
following table shows the texts that have been configured using the Ebase
Designer:
|
Text item |
text for en |
text for fr |
text for fr_BE |
|
1 |
XXXX |
YYYY |
ZZZZ |
|
2 |
AAAA |
BBB |
|
|
3 |
PPP |
|
QQQ |
|
4 |
WWW |
|
|
|
5 |
|
|
|
The
following table shows the texts that are displayed to the user when language fr_BE or fr is chosen
as the runtime language:
|
Text item |
fr_BE |
fr |
|
1 |
ZZZZ |
YYYY |
|
2 |
BBB |
BBB |
|
3 |
QQQ |
PPP |
|
4 |
WWW |
WWW |
|
5 |
|
|
When fr_BE is the runtime language, the two
texts configured for this language - text items 1 and 3 - are displayed (Rule
1). Text item 2 is displayed using language fr (Rule 2), and the remaining text
items are taken from the default language en (Rule 3).
When fr is the runtime language, the two
texts configured for this language - text items 1 and 2 - are displayed (Rule
1). The remaining text items are taken from the default language en (Rule 3).
Integer,
Numeric, Currency, Date and Datetime form fields are formatted according to the
user's languages setting. Values also need to be entered using this format. See
formatting language above for details of these
formats.
The user's
language can make significant differences to the value of an input. For
example: 123,233 in France means something totally different to 123,233 in UK,
where a comma is a decimal point character in France and a digit group
separator in the UK.
The
presentation of dates also vary according to language. For example: 10th April
1970 in the
The use of
the digit group separator is optional for input
data received from the user. The display
of digit group separators is also optional and can be set on the presentation
page of the field properties dialog. When disabled, a number is presented as a
sequence of digits. e.g. value 1234567 is displayed with language English as:
|
With digit group separator: |
1,234,567 |
|
With no digit group separator: |
1234567 |
A character
encoding is used to encode data transmitted between the server and user
browsers. In general, the Ebase system requests the application server to set a
character encoding based on the runtime language. In most cases, this should
result in the correct encoding. However, it is possible to override this
process and configure a specific encoding to be used for each language, and it
is also possible to specify a single encoding to be used for all languages.
The
character encoding can be configured using the Character Encoding tab of the internationalization dialog on the
tools menu (Tools -> System Preferences ->
Internationalization)

Use encoding defined
by the language:
this is the default setting. The encoding for each language can be separately
configured in the language properties.
Always use encoding: directs the system to always use the specified encoding for all
languages regardless of the character encoding setting configured for
individual languages. If the encoding you require is not in the dropdown list,
it can be typed in.
The current Ebase Designer Language
can be changed in the Ebase Designer Preferences dialog box on the file menu (File -> Preferences). Form texts will be displayed in this
language when editing a form. Please
note that if no text is found for a text item, then a fall back language (i.e.
en_us -> en -> default) will not be used.
