When I am using a computer which is not mine, sometimes I have a hard time to find some “special” characters used in Catalan or Spanish such as “ç” and “ñ”. Then, I imagine what would happen if all my characters were “special”, and even my own computer’s keyboard was not prepared for them. This is the situation for many languages around the world.
But typing is not a problem at all if your computer is not even able to display text in your script. If you visit this page about the Javanese language you may get the impression that Javanese is an original language based on a single character: the square. Unfortunately, squares are what your computer uses to indicate that it lacks fonts for a specific script.
Language is our vehicle to communicate knowledge. Allowing users to read and write in their own languages is essential for projects such as Wikipedia. To help users to achieve this goal, new language tools have been added recently.
The Universal Language Selector
The Universal Language Selector is being deployed to Wikimedia projects, and provides the following tools and settings:
- Input methods allow users to type in a language their keyboard is not prepared for. For example, when the Greek input method is enabled, users can type “π” by pressing “p” in a non-Greek keyboard.
- Web fonts. For languages with poor font support, fonts are delivered to the user automatically, so that the content is properly displayed.
- Change menu language. You can change the language in which menus are displayed.
These tools are essential for many language communities but will also help in other scenarios as well. For example, as Amir Aharoni explains, now Akkadian cuneiform is properly displayed when reading about the Tower of Babel in English Wikipedia (where mixed-language content is quite common). In addition, readers with dyslexia will also benefit from the inclusion of Open Dyslexic font as a choice for users.
Many design considerations were made while designing these language tools, some are summarised below:
- Different languages are supported to different degrees. Some users do not need language tools, while other users need them for the most basic activities. Thus, you need the right balance in order to make tools easy to find for those users that need them, but avoid disturbing the users that do not.
- Users speak a small number of languages. Despite the high number of languages supported by Wikipedia, each user is interested on a very small subset of those languages. Thus, providing the full list of all languages each time the user needs language support is sub-optimal. Different design patterns were applied in our designs to make language selection easier such as anticipation (show a small list of the likely languages according to previous selections and user context), forgiving input (allowing the user to search a language in different languages, even with typos), and undo (allowing to quickly revert if the user choice may led the user to a foreign language UI).
- Repetitive use needs to be properly supported. Most language related actions do not happen in isolation. For context where switching between languages can be repetitive such as typing, it make sense to avoid extra steps and provide the tools at hand. For example, when selecting input methods, we allow the user to select previous languages right from the typing context, and by selecting a language the last input method used for this language is used avoiding an additional selection most of the time.
If you are interested on more aspects of the design and you are attending Wikimania 2013 at Hong Kong, you can attend my talk: Improving the user experience of language tools.
An open project
While reading this post you may have tried to use the new language tools for your language. If you found they are useful we have good news: you can take these tools to your own website. Input methods, web fonts and language selection tools are available as jQuery components that can be used for any web projects.
On the other hand, if you found that there is something missing, we have also good news. The catalog of fonts and input methods provided by these tools is open for contribution, so you can help us to improve it. This tutorial on how to create a new input method may be a good first step.