Page MenuHomePhabricator

Wrap-up report for "Reinvent translation search"
Closed, ResolvedPublic


Search Translations is a search tool that empower translators to search for messages they want to translate. Without the search tool, translators would have to browse through all the messages. This project aims at making translations consistent between translators and saving their time.

The tool offers an important missing feature, cross language search to search and translate messages from one language into another. Translators often want to check how a specific term was translated in a certain language across the project. They can switch the results to the translations of said messages, for instance to find the existing, missing or outdated translations of a certain term.

search translations.png (670×1 px, 99 KB)

If you have a wiki and you want your wiki's interface to be translated into, say French, then go to Special:SearchTranslations, perform search queries and you will get the messages you want to translate to. For example, suppose you want to translate all messages with 'install' to French, but you do not know how the word has been translated into French, then you can lookup other translations for the word in French to see how the word was translated in French. You can then switch the tab to find all the untranslated messages for the word and translate it and therefore maintain consistency between translations. Moreover, you can also find all the outdated messages and update them. Without this tool, the above mentioned workflow would have been difficult. This tool makes the process from searching to editing translations easy.

The tool is available at the special page called Special:SearchTranslations. After performing a search, the results are categorized into four columns: translations in the language along with translated messages, untranslated messages and outdated messages matching the query in the source language respectively. There are language and group/subgroup filters to narrow down the search results. To select a filter just click on the link and to clear a filter, you can either re-click on the selected filters or click the items in the selected box at the top-left corner of the page.

translated_messages.png (669×1 px, 99 KB)

This tool also optimizes your search by intelligently trying to predict what search options you may want to use in your search. You can search with wildcard (*) at the end of the string to get the messages containing the prefix. Search can also be performed with message keys. By default, the tool searches for any word in the query, but when there are many results retrieved, it also provides you with an option to get results for all the words in the query. If the case-sensitive checkbox is selected, then the tool will perform case sensitive queries.

Finally, the above can also be done through inline searching. You can use various search operators like language and group to get filtered results prior to the search, in one click.

inline_1.png (115×685 px, 9 KB)
inline_2.png (395×958 px, 44 KB)

Demo server link

Resource links

Resource which can make contributing to this project easier for newcomers

  • For anyone who wants to get involved in this project understanding the components of the Translate extension like Translation Memory, Message collection, Message groups, Message handle, Message index can be really helpful.
  • This feature is not enabled by default and requires configuration. It is built on ElasticSearch, so make sure to install it.

Future enhancement

  • The tool could search for outdated messages containing the query in any language. Currently, the outdated messages are not indexed.
  • The user interface could use AJAX to make the tool more responsive and user friendly.
  • The tool could support multi-select facets to apply more than one value.
  • The tool could provide support for prefix message key match.

The project has been completed and thanks to my mentors @Nikerabbit and @Nemo_bis for helping me throughout the project from the setup to the designing of user interface. During the project, I had some difficult time assessing the requirements but as I had more discussions with the mentors not only did I submit the patches but also they were reviewed and merged to production.

Event Timeline

Niharika assigned this task to Phoenix303.
Niharika raised the priority of this task from to Medium.
Niharika updated the task description. (Show Details)
Niharika added subscribers: Aklapper, Niharika, Sitic and 4 others.

Hm, I think this report would benefit from some perspective on future work in this area: no need to duplicate the list of open reports, just a quick opinion on the future development.