38 lines
3.0 KiB
Plaintext
38 lines
3.0 KiB
Plaintext
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
Localization: Developing **The Right Way(tm)** ``2015-05-06``
|
|
````````````````````````````````````````````````````````````````````````````````
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
Introduction
|
|
````````````````````````````````
|
|
This brief document implores developers to create __localizable__ software, rather than linguistically biased software that passively decreases the potential for global knowledge and progress.
|
|
|
|
Knowledge should not function in a manner that biases one group of individuals over another simply due to a difference of locale. Indeed, for progress and extensive utility within software, ensuring the localization of the end-user experience __as well as__ the developer experience, is of utmost importance.
|
|
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
Why Localize?
|
|
````````````````````````````````
|
|
Continuing from the introductory section, while developing and deploying software, it is important to maintain accessibility for as many individuals or groups of individuals as is possible, as it not only increases one's own user and/or developer base, but increases knowledge and progress on a global level.
|
|
|
|
In other words, the localization of software to provide usability to as many users -- and developers -- is extremely important for the expediated growth of knowledge and the promotion of progress. Even if not directly providing localizations, one must provide the methods for others to create localizations - in this way, one must make software unbiased and force reliance upon abstractions rather than limitations.
|
|
|
|
Furthermore, if one is to develop for more than one locale or language, one is forced to not only address the needs of others, but is forced to create solutions that cause one to step outside of their limited domain.
|
|
|
|
Libraries that provide such functionality, such as GNU's gettext, are readily available for deployment and use in many languages and software available. In the event of such libraries not being available, one should strive to implement compatible -- or superior -- variants for the desired system.
|
|
|
|
From a developer's point of view, localization can seem difficult, but with existing libraries available, learning to implement localized designs is an easy task. After one learns how the localization works, implementation can be as easy as wrapping a function around already existing language-specific strings, such as:
|
|
|
|
#echo("Hello, world!");
|
|
|
|
to:
|
|
|
|
#echo(_("Hello, world!"));
|
|
|
|
In the above gettext-style case, one simply needs to load in available language files before-hand, and the messages will be printed in their proper locale.
|
|
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
In Closing
|
|
````````````````````````````````
|
|
In conclusion, there is no real reason to ever tie oneself or one's user to one language -- doing so only succeeds in isolating enormous populations of the world, thereby decreasing global knowledge and progress, and, of course, reducing one's own potential user and developer base.
|
|
|
|
Put succinctly, do things **The Right Way(tm)** and localize your software.
|