For the past few months, I have been working on a search tool to support Cross language search and enhance search features. It has been an awesome experience to be involved in the project from which I have learned a lot.
My project, 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. If you want to try it out, please go to Special:SearchTranslations.
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.
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.
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.
Lessons Learnt during the internship:
- Discussion with the mentors. 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.
- Have patience. At the beginning of the internship, I felt quite impatient waiting for my patches to be reviewed. I realized that it is a time wastage to wait for the patch to be reviewed, instead move on to the next task.
- Be in constant touch with the mentors. Throughout the project, I have been in daily touch with my mentors where I can easily ask for help when stuck.
To future interns, DONT GIVE UP!!!