Wikimedia blog

News from the Wikimedia Foundation and about the Wikimedia movement

Posts Tagged ‘uls’

Universal Language Selector coming to all wikis

The Universal Language Selector (ULS) provides a flexible way to configure and deliver language settings like interface language, fonts, and input methods (keyboard mappings). It combines the features of two earlier Mediawiki extensions Narayam and WebFonts. From June 11, 2013 on, ULS will be made available to all Wikimedia wikis in 5 phases.

In the first phase, ULS will replace the Narayam and WebFonts extensions on 84 wikis. User preferences from the replaced extensions will not be preserved. Affected communities will be notified by the Wikimedia Language Engineering team of the upcoming change.

In the 5 weeks that follow, ULS will be deployed on Wikipedias in size 11-20 (phase 2), all projects without language versions (phase 3), English language Wikipedia (phase 4) and all other wikis (phase 5).

The Universal Language Selector can be visible in two ways: In the sidebar for wikis with language versions, like Wikipedia, or in the personal toolbar at the top of wiki pages for wikis without language versions, like Wikimedia Commons and Meta-Wiki. Based on the geographic location of users, the initial set of language preferences is presented. Users can set the input methods and fonts to that they want to use. Logged-in users can also change the language for the MediaWiki menu items.

Universal Language Selector is already available on several Wikimedia wikis like Wikimedia Commons and Meta-Wiki. The appearance on wikis like Wikipedia is available in the beta installation of the English language Wikipedia on Wikimedia Labs. A cog icon is present in the “Languages” section of the sidebar menu. Clicking the icon opens the Language settings panel that can be used to set the display and input settings.

Please have a look at the Universal Language Selector feature description or the Frequently Asked Questions for more detailed information.

Runa Bhattacharjee, Outreach and QA coordinator, Language Engineering

Language Engineering Development Updates and Events

In the recently concluded development sprint, the Wikimedia Language Engineering team fixed critical bugs for the Universal Language Selector, participated in several events around the world and also announced the release of the latest version of the MediaWiki Language Extension Bundle.

MediaWiki Language Extension Bundle and Updates to ULS

As the date for the first phase of deployment of Universal Language Selector (ULS) draws close, the team has been fixing critical bugs and testing the fixes. These included bugs related to the behavior of the ULS activation ‘cog’ icon. Significant design changes were also made on the input settings panel. Additionally, ULS has been hidden for users who do not use JavaScript on their browsers.

These updates are also part of the latest version of MediaWiki Language Extension Bundle (MLEB). Besides ULS, miscellaneous maintenance bugs were fixed for the Translate extension editor. This further improves the stability of the Translation Editor – TUX. CLDR has been updated to version 23.1.

Amsterdam and Tel-Aviv Hackathons and Community Programs

Members of the Language Engineering team participated and also helped in organizing hackathons at Amsterdam and Tel Aviv. At the hackathon in Amsterdam, organized by Wikimedia Nederland, team members interacted with their peers. Besides attending the workshops, they also submitted and merged patches for various internationalization extensions. A session for automated browser testing with the Wikimedia QA team was particularly well-received in view of the upcoming ULS deployment.

At the hackathon organized by Wikimedia Israel, Amir Aharoni led the event and brought together more than thirty local participants to explore various aspects of contributing to MediaWiki projects. The full report of the accomplishments from the event has been documented by him.

Alolita Sharma presented a talk about Internationalization in Wikimedia projects at IMUG. The entire video of the talk and presentation slides are available online.

Google Summer of Code

The Language Engineering team also welcomed the 4 students who will be participating in Wikimedia’s Internationalization projects for this year’s Google Summer of Code (GSoC). They will be contributing to the jQuery.ime project, Language Coverage dashboard, mobile app for Translate and right-to-left support on VisualEditor.

Coming up

Preparations for deployment of ULS and extending support to the GSoC candidates during the community bonding period are important focus areas during the next 2 weeks.

For information about the Language Engineering team and our projects, please write me at runa at wikimedia dot org or find team members on our IRC channel #mediawiki-i18n on Freenode.

Runa Bhattacharjee, Outreach and QA coordinator, Language Engineering

Getting ready for ULS everywhere

The Wikimedia Language Engineering team recently completed their latest development sprint, with a special focus on preparing for the upcoming deployment of the Universal Language Selector (ULS) extension on multiple wikis. The team also hosted a ULS-specific office hour on May 8, 2013 (logs).

ULS deployment prep

The Language Engineering team is working on refining several important features of the Universal Language Selector. This extension will provide an umbrella of services including selection of UI language, input tools and fonts. ULS will superannuate Narayam and Webfonts to provide a unified solution for configuring language settings for MediaWiki. During this development sprint, critical bugs related to positioning of ULS’ activation area and its “cog icon” label were fixed. These affected multiple MediaWiki skins and interlanguage wiki pages. The improved version will be deployed over several phases. More information about the upcoming deployment can be found in the deployment schedule.

ULS testing

ULS features are to be verified based on the test scenarios identified. These scenarios, based on the Cucumber framework, can be adapted for automatic as well as manual testing. The scenarios cover core features of ULS: triggers, language settings panel, display settings, font selection and input tools selection. These have been written in a simple “Given-When-Then” format and provide the steps for easy walkthroughs. The testing instance hosts all the latest updates that are being made. The team is looking for volunteers who can help us with testing and reporting bugs. Let us know if you would like to join and help (write to runa at wikimedia dot org or ping us on #mediawiki-i18n) .

What’s next

The team will be completing all feature changes and testing them by end of the current sprint to be ready for kicking-off the roll-out of phase 1 of ULS. Roll-out will be coordinated by Niklas Laxström with administrators of all scheduled wikis. The team will also be hosting a bug triage session on May 29, 2013 on freenode.net IRC on the #mediawiki-i18n channel.

ULS is live on Commons!

Meanwhile, based on consensus reached by the Commons community, Universal Language Selector and the Translate extensions have been enabled on Commons.

For more details about the Language Engineering projects and ways to participate, please write to me [runa at wikimedia dot org] or ping us on #mediawiki-i18n.

Runa Bhattacharjee, Outreach and QA coordinator, Language Engineering

Updates from Language engineering: changes to the Language Selector, new Extension Bundle release

In the recently concluded development sprint, the Wikimedia Language Engineering team made a new release of the Mediawiki Language Extension Bundle (MLEB), fixed bugs related to the Page Translation feature in Translate UX (TUX) and began work on design changes for the Universal Language Selector (ULS). The team also hosted a bug triage session that was well attended.

Input Settings from the ULS Language Settings Panel

Universal Language Selector Design Changes

Development and design changes have been initiated for the Universal Language Selector. The option to position the extension’s main panel in the sidebar was added and this feature is now being polished. Changes to the layout of the Language Settings dialog have been initiated, and usability tests for the proposed design changes were also done.

Using Wikimedia’s default GeoIP locator, ULS can now infer the user’s location and suggest language preferences.

MLEB Release

The April release for the Mediawiki Language Extension Bundle (MLEB) was announced by Amir Aharoni. Starting with this release, MLEB is no longer compatible with MediaWiki 1.19. MLEB 2013.04 and its later versions can only be used with MediaWiki version 1.20.4 or above.

The notable changes include update to CLDR v.23, bug fixes to further stabilize TUX and design changes for the Universal Language Selector. An experimental feature to present a restricted translation environment for new translators was developed for TUX. This is not enabled by default. Basic support for the XLIFF file format has also been added to Translate.

Up Next

During the next development cycle, the team will complete the changes to the Universal Language Selector design and test the features. The team is also participating in Google Summer of Code (GSoC) and the Outreach Program for Women (OPW), and will be working on completing the tasks in the next stages of the programs. More information about the other open projects for internationalization can be found in the master list.

The next Language Engineering office hour will be held on 8 May 2013 at 17:00 UTC (10:00 PDT) in #wikimedia-office on Freenode IRC.

Runa Bhattacharjee, Outreach and QA coordinator, Language Engineering

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

Designing for the multilingual web

User testing is essential for designing multilingual interfaces, even though it can be a time-consuming process: it ensures that the community of users are part of the design process. In this article, we share lessons learned by the Language Engineering team while designing features and interfaces that empower users to read and edit Wikipedia and its sister sites in many languages.

Designing user interfaces for the Wikimedia world comes with a lot of responsibility. To achieve our mission, we need to make sure we think of users with varying levels of technological expertise and language skills. While the internet can be a very friendly place for those who understand English, it could be like navigating the Greek Wikipedia to the 4.4 billion people who do not.

While designing the user interface (UI) for language tools like the Universal Language Selector (ULS) and Translate extension, we needed to make sure it could be understood and used by those who use the internet in languages other than English. We had to create early representations of the interface, link them together to create interactive prototypes and test them with users. Each of these steps presents various challenges in a multilingual environment.

Design tools generally have poor support for non-Latin scripts. Moreover, creating screens and prototypes in languages that you don’t speak is hard. But since the world needs these language tools, we can’t wait for our design software to improve, we just need to figure out our own ways to get things done.

Creating multilingual mock-ups

UI designers make layout comps early in the process to illustrate how the interface elements and content will be arranged.

While designing the ULS (that will display a massive list of languages), the only way to understand the effectiveness of the layout was to simulate the end result with all the language names. Common graphic design suites are not optimized to manage large number of text elements and have issues when working with non-Latin fonts.

Our workaround: After some exploration, we realized that the most painless way of creating comps that have multilingual text is to render them outside the design software:

  • Create the UI layout using your design tool;
  • Use a template language like mustache to include placeholder text within the mockup and export them as SVGs;
  • Create a translation text file to replace the placeholder text with strings in your language;
  • Perform a string replace in the SVG and rasterize it with inkscape using a script.

There is a neat illustration of the entire process in this video by Pau Giner. This process allowed us to quickly experiment and test comps in many languages by giving the text file to a translator.

Making interactive prototypes

The best way to understand if a design is effective is to observe a user using it. The fastest way to do this is to make click-through prototypes that simulate a workflow. When our multilingual comps were ready, the next task was to package them and link them by hotspots. Most of the popular tools to do this are not free. After scouting around for free alternatives, we chose a Firefox extension called Pencil because it:

Translate extension prototypes in Malayalam

  • imports raster and vector images, including copy-pasting from other design tools;
  • features master pages and a component library to reuse graphic elements;
  • has rich text support;
  • exports to a single HTML which simulates a web page experience;
  • is free and open-source.

It fulfills our requirements, even though there are a few annoying quirks in the interface which could be improved. Check out this interactive presentation of the ULS that was created using Pencil.

Remote user testing

Once our prototypes are ready, it’s finally time for the real test, with users from parts of the world where the primary language is not English (roughly 95 percent of the world’s population). Planning the logistics and schedule of remote user testing can be tricky, so here are a few key points to keep in mind:

Remote user test

  • Create a pool of volunteer user testers early in the design process. Getting a tester is usually a hit and miss, so it helps to have a volunteer base that can be easily reached when needed.
  • Tell users what the test is about. Most users will not know what happens in a user testing session and may be afraid to volunteer. Who likes to be tested anyway? We created this guide to better communicate what the sessions were about.
  • Schedule the tests initially and ask for a confirmation. We found that testers may not be available at the scheduled time and they often want to reschedule. Stay friendly and accommodating, as these people are providing you with valuable feedback.
  • Observe using a platform that meets your requirements. We found Google+ Hangouts to be the service of choice due to its ease of use across operating systems. As a bonus, it can automatically create a YouTube video of the whole session.
  • Inform the tester beforehand on privacy issues. If you want to share the observations publicly, make sure the tester knows and has agreed to those terms.
  • Have fun. Keeping the mood light with initial introductions will help to make the tester feel comfortable and give more feedback.

If you are curious, you can watch this video from our latest test sessions of the ULS to understand how we do it.

We are designing and developing your software, so keep the feedback coming!

Arun Ganesh and Pau Giner
UI/UX Designers, Language Engineering Team

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

Translating Central Notices easily, and other Language engineering news

The Language Engineering team at the Wikimedia Foundation works on a new set of tasks every two weeks. The following describes the work we have done over the past month.

Language Engineering Team: We have renamed our team from “Internationalization & localization” to “Language Engineering”. The terminology we previously used did not illustrate our goals very clearly. We hope that the new name will communicate our goals and activities better.

Translating Central Notices: The process of translating banner texts for CentralNotice (used for Wikimedia banners) will soon be more streamlined,  after the integration with the Translate extension. It is now possible to create message groups for translation from CentralNotice. We are completing a few pending tasks before making this tool available on Wikimedia projects.

Partially translated Tamil Interface of the Universal Language Selector.

Universal Language Selector: The jquery component of Universal Language Selector (ULS) is now internationalized and can be translated. This also fixes the ‘placeholder’ that some of our readers mentioned in comments on our previous posts. ULS also got many bug fixes, including proper input tool support and improved workflow between the settings screens. We are discussing with the Operations team on how to deploy ULS on small Wikimedia wikis without negatively impacting current caching mechanisms for anonymous users.

Project Milkshake: We fixed bugs, fixed tests and addressed review comments related to jquery.i18n, the internationalization library. jquery.uls, a library for language selection, is the latest addition to Milkshake.

San Francisco Meetings: Most of the language engineering team members were in San Francisco in September. We met with other Engineering teams at the Wikimedia Foundation, including the Visual Editor team, and discussed Internationalization requirements with the Mobile team. We talked about Making the Web Multilingual with Wikipedia (video) at San Francisco State University, and presented Project Milkshake at Google, Twitter and change.org.

Other news

  • We held IRC office hours (log) on September 19th, and will be holding the next session on October 17th.
  • We will be in Bangalore in November for the Wikimedia Devcamp.

Srikanth Lakshmanan
Internationalisation/Localisation Outreach / QA Engineer

Internationalisation team introduces translation memory and plan for language teams

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.

You can also watch the 15 minute demonstration and check the slides.

Language Teams
Mediawiki supports over 350 languages. Supporting languages goes far beyond providing a localised interface. It includes ensuring that the overall experience of a language in which the user reads and contributes to Wikipedia (or any wiki running MediaWiki) is the same as it is to an English user. It is impossible to support without the help of volunteers in the respective languages. We have tried filling this gap through Language Support Teams. We are now starting an initiative to form and build strong language teams and have published a detailed plan. Please do let us know what you think about it.

Translation Memory on Wikimedia servers

The Translate extension is currently deployed on Meta-Wiki, mediawiki.org and a few other Wikimedia wikis to facilitate the translation of their content. In order to make translations faster and more consistent, a shared translation memory service has been enabled in the extension, which will provide translation suggestions from past translations of similar text.

Universal Language Selector Update

ULS with Common languages listed

ULS with Common languages based on geolocation and “accept languages” listed

The Universal Language Selector (ULS) has a new top section in the default view. It now lists a set of “Common Languages”. They include languages spoken in your region (determined by geolocation), preferred languages from your browser (“Accept-Language”) and previously used languages. For many users, this should minimise the need to search for their language of choice in the list. The ULS now integrates with MediaWiki preferences, and performance was improved by using lazy loading.

Milkshake Update

jQuery.i18n, the internationalisation messaging framework library, saw the addition of support for gender, plural and grammar. All the language-specific rules that exist in Mediawiki are now available in jQuery.i18n. The framework is also built with scope for adding more extensible attributes in addition to the default ones. It supports lazy loading of translations.

Other accomplishments

  • Translation UX tests continued, and led to improvemenents of the design prototypes for the translate extension, including new translator captchas. You can watch a short video about the project.
  • We investigated solutions to support Indic languages on mobile platforms.
  • We organized a bug triage on i18n issues.
  • Apart from the usual bug fixes, a lot of Right-to-Left bugs were also fixed in the experimental PageTriage and ArticleFeedback v5 extensions, as well as in the veteran WikiHiero extension and core MediaWiki.

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 http://translatewiki.net. 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 translatewiki.net. 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