Page MenuHomePhabricator

Reinvent Translation Search
Closed, ResolvedPublic

Description

Information for your profile

Name: Dibya Singh
Email: divyalife526@gmail.com
IRC or IM networks/handle(s): Phoenix303
Location: India

Synopsis

Special:SearchTranslations is a tool that makes translation of system messages to different languages easy. This tool currently allows a translator to search for strings in the source language and displays those messages that contain that exact string (i.e. in source language). The current work-flow of a translator:

  1. Search for a string, "wiki" (source language being English)
  2. Select a language filter from the left panel (the target language for the translator)
  3. Get results in source language (messages which contain "wiki")
  4. Click Edit translation to change the translation.

Though the current settings are very flexible, they are probably more confusing to the translator. This project aims to make the process of searching and translating better, by forming productive work-flows for the translator.

Some critical areas of improvements which I have gathered from translators are:

  1. If a translation exists for a search string, then the translator sees results in the target language (can review and edit the stored translation).
  2. Ability to add translation for untranslated messages.
  3. User should be able to perform specialized searches.

Additionally UI enhancements will improve the usability of the tool. Through these points this project aims to streamline the work-flows of translators improving productivity and consistency, hence saving translators' time.

I have identified a few customers of Search Translations who I will be in constant contact with during the project to (re)determine my goals and progress:

The approach I took to identify and contact the customers is:

  1. Open Wiki page of each user mentioned here.
  2. Go to Special:SearchTranslations.
  3. If translation search service found, contact them whether they are using it actively.

Possible Mentors
Niklas Laxström, Federico Leva, Nik Everett

Deliverables

Please describe the details and the timeline of the work you plan to accomplish on the project you are most interested in (discuss these first with the mentor of the project).

Project: Reinvent Translation Search

Testing plan: I have already set up my local environment where I will develop and test the deliverables. To interact with the customers I will create another environment where they can test the current development and give feedback.

This project consists of the following tasks:

Task 1: Categorizing Translation Search Results
We are dividing the message list into categories: translated, untranslated and outdated tabs. The translated tab will display messages in target language (expected to come from the Universal Language Selector by default). The untranslated tab will display messages which are not translated yet. Any message can be edited by the translator. These tabs can also accessed from a side panel containing links to the tabs. Target language are changed through a side panel. Results can be filtered into specific message groups through an option. Translator can also choose between case-sensitive and case insensitive searches through a checkbox. Translator can also choose to do a "match any word" or a "match all words" for the search query.

We can find translated messages in the target language by finding message key pairs. From this translated list we can extract all translations marked as fuzzy for the outdated message list. The untranslated messages in the target language can be displayed if the message key of the string in source does not exist in the target language and on translating these messages it would be added as documents in the index.
A checkbox beneath search box will force the search to look for case sensitive matches with search analyzer.

User story:

  • As a Spanish translator I search for home in English, and can choose to display either messages with casa or messages in Spanish messages which have home and need translating.
  • I can change my target language to French.
  • I can also display message from a specific message group.
  • I can also do a special search like only searching for messages with a specific key, or which contain special characters, or even matching all/any words in message query.
  • I can also do a case sensitive search.

Related tasks that will be done

Example Diagram

Screenshot_from_2015-03-23_04:11:48.png (539×1 px, 104 KB)

Task 2: Specialized Searches
This task gives the translator more search options to get results from the tool in one go, reducing the number of clicks required. The following options are included:
Searching with parameters:

  • type (default is msgall): This gives the type of search.
    • "key" for message-key searches
    • "exact" for exact matches
    • "msgany" to match any word in the query string
    • "msgall" to match all words in the query string
  • status (default is all): This gives the status of result messages.
    • "all" for all messages
    • "translated" to match translated messages
    • "untranslated" to match untranslated messages
    • "outdated" to match outdated messages
  • lang (default from ULS): This gives the target language of the search as 2 letter code. e.g. de for German, fr for French and so on.
  • grp (default is all): This gives the message group that's selected for the search. e.g. MediaWiki, MediaWiki (core) etc.
  • case (default is false): This gives whether the search is case sensitive or not.

The query string is parsed to retrieve all options values and message value to be searched. The option values are then extracted from the query string. Then filter the results based on options. If no value is found for any option then its default value will be used. Also, autosuggest feature shows the possible values of search parameters.

Also allowing wildcard searches to return results that match combinations of characters and wildcards example edit* will match any word starting with edit.

User story:

  • As a translator I may know the exact kind of special search I want to perform and get results match my query by writing a single query string containing all my search options.
  • While typing a specialized search, I am shown auto suggested values of search parameters.
  • I can do wildcard searches and have matching results displayed.

Related tasks that will be done

Example Diagrams

Screenshot_from_2015-03-23_03:45:46.png (539×959 px, 81 KB)

Screenshot_from_2015-03-30_16:52:26.png (434×731 px, 30 KB)

Task 3: UI Enhancements
Display message snippets for large messages and show the full message when translator clicks on it. Allow filtering results by subgroups.

User story

  • As a translator I will be able to display messages only from a particular message subgroup.
  • On selecting a filter I won't see duplicate links.
  • When search results are empty I do not see any filters.
  • I will see limited text for large messages.

Related tasks that will be done

Detailed Timeline

Include a brief, clear work breakdown structure with milestones and deadlines. Make sure to label deliverables as optional or required. It’s OK to include thinking time (“investigation”) in your work schedule. Deliverables should include investigation, coding, deploying, testing and documentation.

After each task completion log user's feedback, assess them and make the required changes. Documentation will be carried out in parallel.

DeadlinesMilestones
Before the project beginsTesting environment has already been setup.
May 4 - May 8Set up a test wiki. Document the same. T98301: Setup test wiki for translation search
May 11 - May 29Work on Task 3: UI Enhancements T97943 T54703 T49919 T50291 T100393
Write a report on Task 3
Create the design mock-up and storyboard
June 1 - June 5Add new parameters for indexing languages that a message key is translated and untranslated to, T101220
June 8 - June 10Make code changes to update() messages T101222
June 11 - June 17Develop functionality to display outdated translations T101221
June 18 - June 19Perform Usability testing.
Notify users to test implemented features.
Gather potential bugs based on the feedback.
June 22 - June 24Fixing bugs
June 25 - June 26Design and implement status searches(translated, untranslated and outdated messages) T100175
June 29 - July 3 ( Mid Term Evaluation )minimum product deployed: Display translated, untranslated and outdated messages for a search
Add support to perform message-key search T70518
Add support to perform case sensitive search. T97944
July 6 - July 10Add feature for exact match searches, searching any word in the string, searching all words in the string. T100346
July 13 - July 17Support for wild-card search. T100345
July 20 - July 22Perform testing for specialized search as they are interdependent tasks.
July 23 - July 31Code the autosuggest feature to access operators. T98559
August 3 - August 7Test all the features and gather user feedback and potential bugs.
Develop T100417
August 10 - August 15User interface improvement.
August 16 - August 17Bug fix and improve the documentation.
August 18Pencils down.

Participation

We don't just want to know what you plan to accomplish; we want to know how. Briefly describe your work style: how you plan to communicate progress, where you plan to publish your source code while you're working, how and where you plan to ask for help. (We will tend to favor applicants that demonstrate a clear vision for what it means to be an active participant in our development community.)
My work style till now has consisted of the following steps:

  1. I clearly understand the requirement (if there are any questions, for clarity I ask in MediaWiki-General and #wikimedia-dev IRC channels)
  2. Then I dig into the code to investigate what exactly was causing the problems
  3. I test my solution and then submit my patch in Gerrit
  4. Based on feedback on submitted patch, I make appropriate changes and resubmit.

Since this approach has worked well for me, I plan to use the same for my Outreachy project as well.
For communicating my progress with my mentors, I plan to use the IRC and/or mailing list to directly update my weekly progress. Apart from this, I will also blog about the work I have completed each week.
I plan to publish my work on Gerrit while the project is under progress. This will allow mentors to view it and give feedback.
As I have been using IRC significantly for my previous MediaWiki patches, I will continue to use this resource for when I need help. Also, I will be using the mailing list when required.

About you

Education completed or in progress: I have a Bachelor of Technology degree from SRM University, India.

How did you hear about this program? I have heard about this program from Wikimedia blogs.

Will you have any other time commitments, such as school work, another job, planned vacation, etc., during the duration of the program?
No, other than 4 hours in a week for volunteering work at an elementary school, I have no other time commitment.

We advise all candidates eligible to Google Summer of Code and FOSS Outreach Program for Women to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?
No, as I am not eligible for it.

We don't just care about your project -- you are a person, and that matters to us! What drives you? What makes you want to make this the most awesomest wiki enhancement ever?
Outreachy can give me a unique opportunity to make an impact at a level I have never made before. I am very excited about this project and want to develop an excellent product that makes the lives of people easier. This change that I could bring to the world will be a big achievement in my life and that is what drives me.

You don't need to write out your life story (we can read your blog if we want that), but we want to know a little about what makes you tick. Are you a Wikipedia addict wanting to make your own experience better? Did a wiki with usability problems run over your dog, and you're seeking revenge? :-) What does making this project happen mean to you?
I am a long time user of Wikipedia. In my school days I frequently referred to content in Wikipedia for material for my science projects and exhibition posters. Nowadays I use it as a reliable source for information whenever I need to look up something be it movies, people, companies, countries, and so on.

As a contributor in MediaWiki over the last 2 months, I have learned about the developer efforts that go to build this seamless and user friendly product. This fascinates me and therefore I want to be a part of this community.

Past experience

Please describe your experience with any other FOSS projects as a user and as a contributor:
I have used Firefox for many years now and use it almost everyday for web browsing. I work with Firebug for web development. Also, I have been using Ubuntu for more than a year now. Ubuntu Software Center is a feature I like as it has made installation easier than before.

Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links):
The relevant projects (microtasks) that I have worked on are:

  1. Load the other groups with search results in the group selector (link): I learned how to load groups in the group selector and how recent and default groups are loaded, hence learning about the working of the group selector.
  2. Reindex tool to update index mapping (link): I learned how to update index mapping.
  3. Correctly position the triangle shaped callout of group selector (link): I learned about javascript and CSS coding conventions used in MediaWiki and also positioning to support RTL languages.
  4. Fixed language and group facets duplication (link): I learned about grouppath option.
  5. Search message with message key (link): I learned about index mapping and how the index and the search analyzers work.
  6. Separate message for Summary field with 4 tildes (link): I learned about coding conventions for internationalization (i18n).

What project(s) are you interested in (these can be in the same or different organizations)?
The project I am most interested in is One stop translation.

Do you have any past experience working in open source projects (MediaWiki or otherwise)? If so, tell us about it! If you have already written a feature or bugfix in a Wikimedia technology such as MediaWiki, link to it here; we will give strong preference to candidates who have done so.
Yes, I have submitted various patches for different extensions of MediaWiki which have been merged. They can be viewed here.

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Thank you @Phoenix303 for your proposal. Are you are eligible for Google-Summer-of-Code (2015) ? If so, please apply to GSoC as well, since this project is within scope for that program.

@Qgil, she has mentioned that she isn't eligible for GSoC above. :)

Thanks, Phoenix303. Let me give just a quick feedback for now; in these days, our priority is the review of your patches.

What I see as missing from this application, for now, is an overall cohesion and self-sustainability. Without a clear picture of what you want to reach at the end of your journey, it's very easy to get lost and a lot of energy is wasted on micro-management.

Our proposal (T89103) is mostly a blank page, I know: some scenes are offered, but it's your responsibility to define the overall story. This week, I believe that the best use of your time is to use the product and interact with its users: I see you made 7 translations and reviewed 11, but that's really too little. Ideas: perform some hundreds edits and log actions, check the edits of other users, talk with them on the wiki, look for other Translate wikis, contact bug reporters and translators.

Without this, all the suggestions below would just become meaningless paperwork.

Improvements possible for your application, from absolutely necessary to optional:

  1. a clear definition of your customers, per http://agilemanifesto.org/ (ideally usernames, or a concrete plan to identify some): they are the persons you'll be working for, you will be in constant contact with them during these months to (re)determine your goals and progress;
  2. a testing plan: your own environment, which IIRC you already mostly made; the environment where to interact with (1);
  3. all the specific user stories/reports, including requirements and plans thereof, moved from your application's text to the specific task descriptions (the 5 tasks you proposed have their own reports, IIRC);
  4. an overall "narrative"/"epic story" for the project, including a title which summarises the idea and helps convey it (it doesn't help to replicate the content of T89103);
  5. if all the rest is done, you could try and update https://commons.wikimedia.org/w/index.php?title=File%3ATranslate-workflow-spec.pdf&page=21 etc. with new visual designs/mockups/prototypes (if you reach this stage we can give pointers to pages which describe how Pau does it).

Thank you @Phoenix303 for your proposal. Are you are eligible for Google-Summer-of-Code (2015) ?

She says not, in the text. Unless I misunderstood.

@Qgil, No, I am not applying for GSOC as I am not eligible for it.

@Nemo_bis Thank you so much for your feedback. I'll work on it and keep updating my proposal to improve and give more clear picture of the project.

Phoenix303 renamed this task from One stop translation to Reinventing Translation Search.Mar 21 2015, 10:45 AM
Phoenix303 renamed this task from Reinventing Translation Search to Reinvent Translation Search.Mar 23 2015, 9:02 AM
Phoenix303 updated the task description. (Show Details)

I have just applied as mentor/org admin in https://outreachy.gnome.org/ and my request is awaiting approval. Meanwhile... @Phoenix303, have you submitted your proposal there?

You don't need to maintain two full proposals in sync. The good one is this one, and you can link from the Outreachy submission to this task.

Thanks, I like how this application is evolving. I'm sure it will get better as you can in touch with more users. :)

@Qgil Thank you for informing me. I have applied to Outreachy and have given a link to this page.
@Nemo_bis Thanks for the feedback :) I am getting in touch with more users.

This comment was removed by Niharika.

I plan to publish my work on Github.com while the project is under progress

I think this evolved to be gerrit.wikimedia.org? We've been working there together all the time. :)

No, other than 4 hours in a week for volunteering work at an elementary school,

(wow)

I have no other time commitment.

Do you plan for this to stay the same, or are you seeking other commitments?

@Nemo_bis It has eventually evolved to Gerrit as now I am comfortable working there. :)
Yes, I am not seeking any other commitments during that period of time.

Some thoughts:

  • Why no Wikimedia wiki are in the customers? Would give some more variety.
  • "in target language (expected to come from the Universal Language Selector by default)" - In Translate the target language is assumed to be the interface language, that info is provided by MediaWiki core. We also provide language selector to change the target language.
  • For "Specialized Searches", how do we make these shortcuts discoverable? If users do not know they exist, it will be lot of effort to implement them for small benefit. One option is to show random example when user first reaches Special:SearchTranslations without a query.
  • In the mock-ups it is not clear to me how user switches between the modes of search:
    • Multilingual search: search in all languages (source language = target language)
    • Monolingual search: search in a particular language (source language = target language)
    • Cross language search: search in a particular language (source language != target language)

The UI can be different depending on whether you group these as [multilingual & monolingual] or [monolingual and cross language] or not group at all. This is probably something to test and discuss with actual users, and reserve some time for it.

With regards to timeline:

  • You have already set up testing environment, haven't you? Timeline probably needs updating to reflect that.
  • I am traveling May 10-31 and Nemo_bis is traveling also on some days, so better not to plan any major discussions on the last week of May.
  • Make sure you have adequate time to think and implement backend changes: schema, indexing etc. as it can easily block development and testing
  • A user interface already exists. I do not see proposals to redo it completely (which is good), so I think you do not need to reserve time dedicated for UI building. It should be fine to add new features to the UI as you implement the features rather than adding non-functional place holders.
  • Personally, I would prioritize missing features (such as cross language search) and features involving backend changes (such as case insensitive search).

Let's talk more in the meeting today ;)

On top of that, I'd add:

  • "Deploy the code in the test wiki" I don't like much, ideally you would be developing straight on your test wiki and the deployment to mediawiki.org etc. would happen with the 1.26wmf1 etc. branches.
  • The three slots which take 10 days each seem not-so-defined yet. I feel they'd have to take less time or to be split in smaller items and/or to be moved in strategic points of the timeline.
  • Many of the bugs, which we'd want to fix first, have 2 days assigned. Those should perhaps come first and have some flexibility in case they require more time than expected.
  • We should better identify interdependencies between those tasks: which tasks block which other? Is there some point where a bottleneck could block any progress? Niklas already mentioned some periods of travels when we'll be able to offer less help.

Based on today's meeting there are several action items to make the plan clearer. When these are done and the timeline is rewritten accordingly, linked to tasks with all the interdependencies we were able to think of today, let's reassess the plan. Phoenix, let us know when you're done so that we can comment on the various tasks. When the discussion on Phabricator slows down, let's wrap up with another meeting.

  1. 15.23 < phoenix303> yes Nemo_bis I will move it [test wiki setup] to 4th may?
  2. Subtasks per T93527#1254537; separate task(s) for implementing facets or advanced search form or autocompletion to access those operators
  3. Close T54703 as appropriate, file bug for "The translator cannot reach subgroups after clicking on any group" -> "simplest solution would be to fix the facets show the subgroups when aggregate group is selected: https://translatewiki.net/w/i.php?title=Special:SearchTranslations&query=user&group=mediawiki here I would expect to see second level list of top N subgroups of MediaWiki"
  4. File or find task for "use AJAX to show the list of subgroups without loading new page" (can be attempted later)
  5. Reports for "Task 3: UI Enhancements" can be in the timeline in May 11–29; for T93527#1254537, (a) can be the very first thing worked on, (b) and (c) should not be in May 11–29
  6. Define web API modules to add that can then "feed" the cross-language search T55656 and perhaps some future Special:Translate feature
  7. Move T55656 after the other tasks; remove "Finalize the design" and "Build the user interface based on the finalized mock-up" timeline items, a buffer to wait for tests and feedback by users (during which smaller bugs can be worked on) + time to assess the feedback and act on it
  8. Add subtask T55656: how to surface the cross-language search function in the GUI, which is not in F102971
  9. Add UI polishing task re F102971: status selection either as tab or as facet, but not both
  10. Add or find task to make facet unselection more discoverable (not only re-click)

We are working on this task, not the other. See action points in the last comment.

I don't remember: have we completed all the action points in T92929#1254548?

Based on today's meeting there are several action items to make the plan clearer. When these are done and the timeline is rewritten accordingly, linked to tasks with all the interdependencies we were able to think of today, let's reassess the plan. Phoenix, let us know when you're done so that we can comment on the various tasks. When the discussion on Phabricator slows down, let's wrap up with another meeting.

  1. 15.23 < phoenix303> yes Nemo_bis I will move it [test wiki setup] to 4th may?
  2. Subtasks per T93527#1254537; separate task(s) for implementing facets or advanced search form or autocompletion to access those operators
  3. Close T54703 as appropriate, file bug for "The translator cannot reach subgroups after clicking on any group" -> "simplest solution would be to fix the facets show the subgroups when aggregate group is selected: https://translatewiki.net/w/i.php?title=Special:SearchTranslations&query=user&group=mediawiki here I would expect to see second level list of top N subgroups of MediaWiki"
  4. File or find task for "use AJAX to show the list of subgroups without loading new page" (can be attempted later)
  5. Reports for "Task 3: UI Enhancements" can be in the timeline in May 11–29; for T93527#1254537, (a) can be the very first thing worked on, (b) and (c) should not be in May 11–29
  6. Define web API modules to add that can then "feed" the cross-language search T55656 and perhaps some future Special:Translate feature
  7. Move T55656 after the other tasks; remove "Finalize the design" and "Build the user interface based on the finalized mock-up" timeline items, a buffer to wait for tests and feedback by users (during which smaller bugs can be worked on) + time to assess the feedback and act on it
  8. Add subtask T55656: how to surface the cross-language search function in the GUI, which is not in F102971
  9. Add UI polishing task re F102971: status selection either as tab or as facet, but not both
  10. Add or find task to make facet unselection more discoverable (not only re-click)

Following tasks created for all the action points:

  1. T98301: Search Translations test wiki
  2. Based on a)T97943 b)T97944 c)T100175; Separate task for T98559
  3. Should I close T54703? Filed another bug T97961: The translator cannot reach subgroups after clicking on any group
  4. Since this T97961: The translator cannot reach subgroups after clicking on any group might work. Should I file task another bug for "use AJAX to show the list of subgroups without loading new page" ?
  5. Reports for "Task 3: UI Enhancements" has been mentioned in the timeline in May 11–29; for T93527#1254537, (a) T97943: Add operators for filters which already exist ( language and group ) patch review is in progress
  6. Will require more discussion (For what task to define web API module, not so clear to me)
  7. Moved T55656 after the other tasks. Time to assess the feedback and act on it after each task has been added.
  8. T100181
  9. T98560
  10. T98560

@Nemo_bis @Nikerabbit: Can we have another meeting whenever you are free? Need clarification for T98665.

On point 6 we agreed that there's no need to have it as first thing, the objective is just clean code. So any backend functionality can be split to an API module if appropriate during code review or later or in a separate task/patch.

@Nemo_bis @Nikerabbit: As per discussion I have updated the timeline. Please let me know if I have missed any point.

(Ok, we got back from France.) Thanks, this is a clearer map of the work to do.

  • Please check the dependencies better, for instance T100181 is before T100417 which is its blocker; blockers should be first or they're not blockers.
  • I don't understand what the "index mapping" is and "brainstorm" is not a clear task, please associate a task description. If it's the conversion from ElasticSearch results (messages keys) to message collections/message tables/message lists, it has to be before the multilingual search.
  • T97944 is listed twice and I don't understand how testing can be almost one month after the fact.
  • https://wiki.gnome.org/Outreachy/2015/MayAugust#Payments_Schedule implies some sort of mid-way assessment à la GSoC so there must be some sort of minimum product deployed and used by that time. Any relevant patches should be merged by July 6 (or June 29 if the roadmap will have no deployment on July 14) due to Niklas being in Mexico.
  • "Add support to perform message-key and case sensitive searches" should be ok for two days. It should be either before the deadline of the previous point, or after July 13.
  • July 13–28 seems overestimated to me and July 29–31 underestimated.
  • "Perform Usability testing" should be after the low-level features you really want to test have already been developed, unless you plan to make non-functioning prototypes (in which case we need to know whether you already have experience with that).
  • The June 8–26 period seems almost entirely composed of usability testing and user testing. I'm not sure it's wise to have such a big block all together but if you think it is then it should perhaps be in the July 13–24 period when Niklas will be in Mexico and code review will slow down.

So, until now I was unable to test anything because of a misunderstanding, the interface only really worked with English language (or some precise combination of UI language and content language). Now that we figured this out I'm able to look into things more.

Hello!

End of GSoC is fast approaching. 17 August is "Suggested pencils down" deadline and 21 August is "Firm pencils down" deadline. It is expected that you don't dive into new features which might take longer than two weeks to complete and instead work on polishing up your project, testing thoroughly and getting your code merged into the main branch. I hope this project is almost complete so you can merge it and make it available to everyone as quickly as possible. :)

A few questions (for both mentors and student):

Are you confident in completing the project on time?
By when do you think you can merge the code, if at all?
Are there any major blockers or important missing features?
We are looking for projects which are (nearly) complete to feature on our post on Wikimedia and Google OSPO's blogs (for example: http://google-opensource.blogspot.in/2015/02/google-summer-of-code-wrap-up-processing.html). If you're interested in getting yours up there, hurry up and get this finished!

The hard deadline on getting code merged is September. Refer T101393: Goal: All completed GSoC and Outreachy projects have code merged and deployed by September.

We'll be asking the students to demo their projects towards the end of the program as well.

Good luck!

Hello @NiharikaKohli

In T92929#1527730, @NiharikaKohli wrote:

A few questions (for both mentors and student):

Are you confident in completing the project on time?

Yes, the project is almost complete. It is available here

By when do you think you can merge the code, if at all?

The code review is in progress by @Nikerabbit.

Are you confident in completing the project on time?

Yes, the project is almost complete. It is available here

Wow! This looks good. It works nicely for me in both english and hindi. Thanks for working on this @Phoenix303. :)
If you want me to add this project to the google blog-post, could you write up a little description of the project? This would be a really cool project to feature on it.

@Nikerabbit, @Nemo_bis any idea by when we can get this merged onto production?

any idea by when we can get this merged onto production?

Everything that is merged goes in production by itself, so most of the tasks planned for the project are already in production (mostly the minor bugs). The main deliverable of this project is T55656 and that's being deployed next week, thanks to recent merges.

Among the open tasks I basically identify T70518, T62570, T100013 as real todos, and they are mostly at a good stage in code review. The other todo is adding a couple paragraphs of documentation to https://www.mediawiki.org/wiki/Help:Extension:Translate or subpage thereof.

Hi, I have associated two blocked-by tasks with this project.

For the student:

  1. Please go through the checklist in the end-term evaluation and fill out the fields which require any links. The checkboxes are for the mentor(s) only. Adding information on the past projects page is your task.
  2. Ensure that you have completed all the items listed in the end-term evaluation task. If there's a strong reason about why a particular item was not completed, please comment on the task and we shall look into it.
  3. Wrap-up report is mandatory and so is a demo-able link to the project (either in production or in a demo server).
  4. If you want your project to be featured in the blogpost on the Google OSPO blog, kindly comment back with a short, catchy description of the project along with a screenshot.

If you want your project to be featured in the blogpost on the Google OSPO blog, kindly comment back with a short, catchy description of the project along with a screenshot.

This would be nice. Dibya, you could recycle the [[help:Extension:Translate]] paragraphs and the screenshot you made.

If you want your project to be featured in the blogpost on the Google OSPO blog, kindly comment back with a short, catchy description of the project along with a screenshot.

Description: Without a search feature, it is difficult for translators to find specific messages they want to translate. Traversing all the translations or strings of the project is inefficient. Also, translators often want to check how a specific term was translated in a certain language across the project.

This is solved by the special page Special:SearchTranslations. Translators can find the messages containing certain terms in any language and filter by various criteria: this is the default. After searching, 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 (660×1 px, 88 KB)

Thanks. T97943 and T98559 are not hard requirements, I'm considering this project completed. Congratulations!