====== Localization ======

Localization (a.k.a. l10n) is the process of improving the experience of non-English speaking users of a Synchronet BBS.

===== Important considerations =====
  * Although Synchronet does support UTF-8 terminals to a degree (primarily for output of non-ASCII characters), the native character set of files read/displayed by the Synchronet Terminal Server is CP437
  * The CP437 character has only limited support for non-English/Western locales, so if UNICODE characters are required to support a new language translation, that will provide additional challenges
  * Software localization usually considers other aspects of a locale beyond just language (e.g. currency indicators, number separators, etc.), but Synchronet is currently only focused on //language// localization
  * The Synchronet developers are primarily English-only speakers, so help from non-English speaking sysops and developers is very much needed for a fully-translated BBS experience
  * Although this article is in the "custom" namespace of the Synchronet Wiki, the hope is that Synchronet will eventually ship with full support for the most common non-English-speaking (but Western) users: French, Spanish, and German

===== Mechanisms =====
  * ''[[dir:ctrl]]/[[text.ini|text.lang.ini]]'' file can be used to replace ''text.dat'' strings/substrings with translated/localized strings/substrings
  * ''[[dir:text]]/[[menu_files|menu/lang/*]]'' files can be used to replace menu files with translated/localized equivalents
  * The ''[JS]'' section of ''[[dir:ctrl]]/[[text.ini|text.lang.ini]]'' files can be used to replace any JavaScript strings that are passed-to/returned-from ''gettext()'' (see ''[[dir:load]]/[[custom:javascript:lib:gettext.js]]'')

===== See Also =====
  * [[:custom:|custom index]]
  * [[text.ini]] file
  * [[custom:javascript:lib:gettext.js]]
  * [[Menu Files]]

{{tag>localization text.dat}}
