Wikimedia blog

News from the Wikimedia Foundation and about the Wikimedia movement

Posts Tagged ‘Narayam’

Universal Language Selector now has Input Methods

The Language Engineering team at the Wikimedia Foundation works on a set of tasks every two weeks. This post is about the team’s accomplishment over the past two weeks. 

Have you ever sat at a computer in a foreign country, and wondered how you were going to enter text in your language using a keyboard with a different alphabet?

“Input methods” are interfaces that allow users to enter text in a script different from the one used on their keyboard. On some Wikipedia versions (like wikis in Indic languages), such a tool has been available through the Narayam extension.

As part of Project Milkshake, this feature has recently been exported to a JavaScript library (a bundle of code, called jquery.ime) so that it could be reused by other web developers.

Another language-related tool, the Universal Language Selector (ULS), allows readers of Wikipedia and its sister sites to easily pick the language of their choice for the website’s interface.

Over the last two weeks, we’ve integrated the input methods’ functionality directly into the Universal Language Selector: it now comes with a large set of input tools that users can use to input text in non-latin languages.

The integration of the two tools makes the interface more consistent and usable when it comes to choosing languages in which to read (“display”) and to write (“input”) on the site: both settings are located in the same dialog of the Universal Language Selector.

When selecting a language in which to write, it’s possible to set an accompanying preferred input method for that language, if available. When input methods have been assigned to different writing languages, switching between languages in the menu will automatically change to the preferred input method for that language.

Other language engineering news in brief:

  • The Language Engineering team will be in India during the second week of November to participate in the OpenSource Language Summit in Pune, and the Wikimedia DevCamp in Bangalore. For new volunteers who want to get started contributing to our tools, we’ve prepared a list of bugs that you can work on at these events with our support.
  • We’ve also worked on finalizing the development plan and features for Translate UX improvements, which were identified by user testing with volunteer translators to improve translation efficiency.
  • We’ve worked on how to get metrics on the impact of our tools through URL-based usage data gathering. Feedback is welcome.
  • We’ve fixed some bugs related to the ULS and gender support in MediaWiki and MediaWiki extensions.
  • The Narayam and Webfonts extensions were deployed to Wikimedia sites in Marathi; Narayam was also deployed to sites in Amharic.
  • An early stable version of ULS was deployed on Wikidata; this first use on a production site revealed a few bugs that were fixed. It will be updated to the latest stable version periodically.

Srikanth Lakshmanan
Internationalisation/Localisation Outreach / QA Engineer

Language Engineering: Input methods and Visual Editor

The Language Engineering team at the Wikimedia Foundation works on a set of tasks every two weeks. This post is about the team’s accomplishment over the past two weeks. You can also check the slides of our demonstration.

jQuery.ime: Wikimedia wikis use Extension:Narayam to support input of non-Latin text. As part of Project Milkshake, jQuery.ime is a generic input method tool ported from Narayam, which can be used even outside the Wikimedia universe. We have completed the development of jQuery.ime and this example demonstrates the plugin in action. It supports over 60 input methods across 32 languages. There is detailed technical specification and we welcome you to try out and contribute to the project by creating new input methods or reporting bugs. The next phase will be to integrate jQuery.ime with Universal Language Selector.

Internationalization requirements for VisualEditor: The VisualEditor will change the Mediawiki editing interface in a major way, making it much more user friendly. The Language Engineering team has a keen interest in making sure the VisualEditor supports all languages. We have written detailed Internationationalization and Bidirectional text requirements for the Visual Editor to support all languages, including right to left languages. Other available documents are a general test document, right to left test and Indic tests for testing input method compatibility with VisualEditor. Do perform these tests for your language and report bugs if you find them.

India Events: The Language Engineering team will be in India in early November participating in the OpenSource Language Summit in Pune and the Wikimedia DevCamp in Bangalore. If you are a developer interested in working on language related tools or Wikimedia Mobile, please sign up for the DevCamp. We will also meet up with community and talk about Language Engineering tools at the Language Engineering meetups in Pune and Bangalore. If you’re near, please sign up and we’ll see you there!

In brief:

  • Universal Language Selector got some bug fixes, including scrolling, choosing fonts, and it is now fully internationalized.
  • As mentioned in the previous blogpost, We have completed integrating Extension:Translate with CentralNotice. Some patch sets are awaiting code review. Unfortunately this feature might be missing in this year’s fundraising translations, due to other fundraising priorities.
  • We held IRC office hours (log) on October 17th. The next session is on November 21st.

Srikanth Lakshmanan

Internationalisation/Localisation Outreach / QA Engineer

WebFonts in Universal Language Selector, Translation rally

The Internationalisation/Localisation (i18n/l10n) team at the Wikimedia Foundation works on a set of tasks every two weeks. This post is about the team’s accomplishment over the past two weeks.

The Universal Language Selector(ULS) is designed to not only change the user interface language, but also to help the user set other language settings. ULS will contain input method and font settings along with it. The current version of ULS includes full integration with WebFonts and is now set up for testing at Let us know about bugs you find by reporting at Bugzilla. ULS now uses the Project Milkshake component jquery.webfonts. This means that when ULS is deployed, the WebFonts extension will be deprecated.

Language Settings in the ULS

Display settings dialog with option to choose font and to change the user interface language.

Other accomplishments

  • Published a detailed plan for collecting metrics and impact measurement criteria for our work. Please provide us feedback after reviewing these criteria.
  • Conducted a translation rally at According to preliminary results 180 translators contributed to 65,000+ translations on different Wikimedia related projects in 115 languages. 54 users will share the bounty sponsored by Wikimedia Nederlands, the Dutch Wikimedia chapter.
  • Improved prototypes for Translate workflow user experience and completed user tests. You can check out test results. If you are a translator and wish to help us test the prototypes, please sign up.
  • Met with the Wikimedia Deutschland Wikidata team about moving ahead with ULS for Wikidata language selection.
  • The Georgian alphabet is now supported in Extension:Narayam.
  • All Marathi wiki projects now have input method to Narayam deployed.
  • Tim Starling wrote a php parser for the CLDR plural rule definitions. Some time back we had written a JavaScript parser for this. Soon the plural support in MediaWiki localisation messages will be based on CLDR plural definitions.

Please remember to join in at our sprint demo every 2 weeks to keep up with our latest work. The demos are every other Tuesday at 15:00 UTC. For those who could not attend, you can watch the latest demo  as well as all our old demonstrations are now available  in commons.

Srikanth Lakshmanan, Internationalisation/Localisation Outreach / QA Engineer

The #MediaWiki #hackathon in Pune, #India

When good people get together in a friendly, well organised setting like this weekend in Pune, many great things happen. Several MediaWiki developers had come to provide the many people new to MediaWiki with their expertise and guide people into its inner workings.

Many people worked on Wikimedia mobile and the SmartPhone software, others worked on MediaWiki and its extensions. Bugs got fixed and functionality got extended.

One of the surprises was two people working on the localisation for the Mongolian language. The inclusion of a web font that will support the Dzonka language is another.

Dzongkha is the official language of Bhutan and according to Ethnologue, the script used is either Tibetan script, Uchen style or the Tibetan script, Umed style. These scripts and styles are also used for the Tibetan language, it is not only Dzongkha that stands to benefit.

One of the highlights of the work on the SmartPhone app is support for scripts that are written from right to left, this is now “beta” functionality. The result of more people looking at the code was that several bugs received the attention needed to make them go away. Scrolling was one area that got attention; this results in a smoother user experience.

New input methods have been created for Punjabi transliteration and for an Gujarati input method to be included in Narayam. The continued collaboration with RedHat engineers ensures that our work benefits both MediaWiki and RedHat/Fedora. We do realise that there is still a lot to do and it is not only documentation. Additional work was done on the “visual on-screen keyboard” that was started at the previous hackathon in Pune, it still needs more testing and design work.

Gerard Meijssen
Internationalization / Localization outreach consultant

The end of a slushed sprint

Consolidation was the name of the game for the past sprint for Wikimedia’s Localization team. A bug triage, testing, documentation and bug fixes were the activities designed to make our software more stable and more usable. When you read the bug triage report it becomes clear how much the devil is in the details; real native language expertise is needed to understand and assess the issues  we aim to solve. Read the report and you will see how much we rely on our community, on people like Srikanth and Nemo_bis.

Now that we are writing documentation in a central place, like here on the language statistics of the Translate extension, we are now able to provide you with a help text that is specific to the context. For the language statistics it is a help text about “statistics and reporting“. This functionality is ready but will become available in the deployment of January 30. You can help us and yourself by reading and understanding the text. Ask when you have questions and you can translate the text and make the text that much more your own.

Narayam is another extension that has been improved with user documentation. This documentation is completely new and it can effectively replace existing documentation. The existing documentation has the benefit of being written in the local language and we expect that what is written will be similar to the Narayam documentation. The language communities can then decide if they want to point to the local documentation. Like all our software, the Narayam documentation will be available for translation. Having the translation ready may be one of the considerations.

A lot of work is going into the description of the many input methods like the Inscipt layout for Assamese. These descriptions are “must have” help information when you do not know a particular keyboard layout by heart. They also provide a wonderful opportunity to verify if our implementation for a particular keyboard method is correct. This is yet another instance where native speakers can help us a lot.

Testing and coming to grips with the different tools was a major goal for this sprint. PHPunit and Qunit is what is used to test PHP and JavaScript and the tests developed are used in an environment called TestSwarm and Jenkins (respectively for PHP and JavaScript). As our team is so much into language support, we are learning what the limits are for testing for different languages and scripts.

All in all there may have been a slush and we have done a lot of code review, but we also managed to make sure that our functionality has gained stability for this and future releases. Additionally, work was done on grammar support for JavaScript, but the patch for that was stuffed in a bug report because of the slush, as the story was moved to the next sprint. Grammar support is what fills the gap in localization support between JavaScript and PHP and makes it available to any and all other developers.

Gerard Meijssen
Internationalization / Localization outreach consultant