Internationalisation and localisation are means of adapting computer software to different languages,
regional differences and technical requirements of a target market. Internationalization is the process of designing a software application so that it can potentially be adapted to
various languages and regions without engineering changes. Localization is the process of adapting internationalized software for a specific region or language by adding
locale-specific components and translating text. (http://en.wikipedia.org/wiki/National_Language_Support).
Terms i18n, L10n and NLS (National Language Support or Native Language Support) are related to localisation term.
KUSoftas CMS supports separate menu tree for each language.
But sometimes some messages of program or template snippet needs to be automatically translated into proper language according to current page locale code.
Each page containing such snippets may contain assigned different locale code.
KUSoftas localisation tool helps to extract internalisation messages and translate them according to locale code:
-
Source bundle.
Source bundle is couple of site source files containing internalization messages:
- Java Script source code files. May contain internalization messages _("message") or _("message-1", "message-2", integer-numer) - in singleton and plural forms.
- PHP source code files. May contain internalization messages gettext("message") or ngettext("message-1", "message-2", integer-numer) - in singleton and plural forms.
- Smarty template files. May contain internalization messages {t}message{/t} or {t plural="message-2" count="integer-number"}message-1{/t} - in singleton and plural forms.
May be defined several different source bundles per site.
-
Locale.
Site may contain site level locale or skin level locale system. Each skin may contain its own locale system.
Site localisation requires locale to be connected to source bundle with relation one-to-one.
You can create any number of locales selecting locale code from the list. Default locale is en_EN. In order locale to be active it must be installed in site hosting server!
For example German language locale de_DE in Debian/Ubuntu Linux may be installed by simple shell command: locale-gen de_DE.utf8.
-
Manage.
Internalization messages may be found, extracted and added to .po (Portable Object) file containing messages. It will be created new .po file if it does not exist.
There are several options:
- Create new - all translations will be lost
- Update (default) - add new found messages in the source files
- Remove unused - add new found messages in the source files and remove unused messages
-
Translate.
Translate messages containing in .po file and save and compile into binary .mo (Machine Object) file ready to be used in CMS.
As KUSoftas CMS localisation is based on standards optionaly you can use standard GNU gettext utilities and PoEDIT or other similar editor to perform same localisation task if you like.