Page MenuHomePhabricator

Visibility of translation status
Open, MediumPublic

Assigned To
None
Authored By
Nikerabbit
Mar 2 2020, 9:57 AM
Referenced Files
F34443818: MG-search2.png
May 6 2021, 4:13 PM
F34443813: MG-initial.png
May 6 2021, 4:13 PM
F34443816: MG-search1.png
May 6 2021, 4:13 PM
F34443808: MG-overview.png
May 6 2021, 4:13 PM
F34433707: Overview.png
Apr 29 2021, 10:57 AM
F34433773: Table of results.png
Apr 29 2021, 10:57 AM
F34433770: Selectors.png
Apr 29 2021, 10:57 AM
F34433766: Initial state.png
Apr 29 2021, 10:57 AM
Tokens
"Love" token, awarded by Trizek-WMF."Love" token, awarded by RHo.

Description

As a product manager, I want to know whether a new feature that uses messages A, B, C... has been translated to languages X, Y, Z before deploying there.

This could done with a new special page with two inputs:

  • List of languages
  • List of message keys

For convenience, it would be helpful to be able to give prefix(es) of message keys. We have existing pattern processor, that would allow prefixes and more.

It would be helpful if the results page could be easily be bookmarked and shared as a link. It would also be helpful to know whether all the translations have been exported and/or deployed, but this might require quite bit of more effort, so perhaps leave it out of scope for now and consider as follow-up.

Operational considerations:

  • Since we only cache messages for message groups, not arbitrary list of messages, we should impose limits on the number of languages and message keys.

See also T59514: Special:MessageGroupStats for a list of languages – difference is whether to use a list of message keys vs. a message group.

Proposed design: Expand the existing Message Group stats page

The current Message group statistics page may be covering most of the needs to check the translation status. The main limitations seem to be in the selection of the specific messages to get the stats for. Currently is is only possible to select message groups, so it is not possible to select a specific sub-set of messages for a given feature.

This proposal is about making the selection more flexible, so that it is possible to:

  • Select message groups from a list, as in the current page.
  • Select message groups by searching them. Which would make it more convenient given the current long list.
  • Select individual messages by searching a fragment of their ID. Making it easy to find a message even if the whole ID structure is unknown.
  • Define a prefix to select all messages related to a feature.
  • Discover all the above possibilities without knowing them upfront.

To support this the idea is to replace the current drop-down with an input field with as-you-type search results panel surfacing the relevant options. This is illustrated below:

MG-overview.png (768×1 px, 182 KB)

MG-initial.png (768×1 px, 79 KB)
MG-search1.png (768×1 px, 100 KB)
MG-search2.png (768×1 px, 112 KB)

Future iterations can consider supporting multiple selection, either as part of the same input (e.g., communicate that adding a comma can select multiple messages), or with a different input supporting multiple values.

Event Timeline

After a conversation with @Nikerabbit, I've learnt that IDs in the code (e.g., "help-panel-placeholder") may not be unique across different projects, so they are prefixed with namespace and project names when they are imported to the localization infrastructure (e.g., "MediaWiki:Growthexperiments-help-panel-placeholder").

I adjusted the search approach so that it is not required for the user to know all those prefixes in advance. For example, searching for "help-panel" should be enough to discover the projects using strings containing this.

After a conversation with @MMiller_WMF it seems that the existing Message group statistics page is already covering most of the needs. The only pending aspect seems to be the possibility of selecting a subset of messages from the translation group (e.g., targeting a specific Growth feature instead of the whole "Growth experiments" message group which includes all their projects).

In addition, the need for more granular selection does not seem to imply a similar need for the display of information. That is, for the different messages of a feature it seems more relevant to know their overall translation status rather than the individual status for each message. The reason is that the former already supports follow-up actions to complete the translation (e.g., hare a link in the Village pump asking interested volunteers to translate) with just one link.

Given the above, I think it may be worth exploring a different direction where the current Message group statistics page can be extended to make the message group selection more flexible:

  • By default it would allow to select groups, making it backwards compatible with the current uses.
  • In addition, searching for a message would allow to select messages with a certain prefix. That is, searching for "help-panel" would surface the possibility of choosing "MediaWiki:Growthexperiments-help-panel-*" which would target all messages with such prefix, which are related to a specific feature (help panel).

I'll be illustrating this idea as a next step.

Thanks for the update, @Pginer-WMF. Tagging @Trizek-WMF because he was excited about the original version -- I want to make sure his opinion gets voiced.

I'm currently working on encouraging communities to work on translations (T281393). I manually checked which wikis where missing translations. A tool that highlights these translations gaps would be more than welcomed!

Thanks @MMiller_WMF and @Trizek-WMF for the input. I added a "Proposal B" section to describe the alternative approach. In short, it is about providing a more flexible mechanism to select messages and groups in the current Message group statistics page. Replacing the current drop-down with a more flexible search-like input:

MG-overview.png (768×1 px, 182 KB)

MG-initial.png (768×1 px, 79 KB)
MG-search1.png (768×1 px, 100 KB)
MG-search2.png (768×1 px, 112 KB)

Does it look like something that could be useful for your usecases?

@Pginer-WMF -- thank you for listening to our feedback! I think that would help -- it would just mean that product teams need to be deliberate about naming their messages so that features are easily searchable through these queries. But @Trizek-WMF, please speak up if you think seeing the translation status of specific messages is important (like in @Pginer-WMF's original design).

Thanks for the feedback, @MMiller_WMF. Regarding the message ID structure I think most teams are already following this kind of structure (the IDs in the example are taken from real messages), but it may be good to document it in the right places to encourage this naming practice.

As far as we can select multiple messages at once, from different groups, I'm more than happy with the suggested changes. :)

+1 regarding defining best naming practices. This is out of this task scope, but it should definitely be explored.

As far as we can select multiple messages at once, from different groups, I'm more than happy with the suggested changes. :)

Proposal B was considering one selection, but that could be a prefix that targets multiple messages. That allows for the selection of multiple messages (but not an arbitrary set). Can you provide an example of a set of specific messages you need to track?

A possible case would be an improved feature, where existing translations have been partially replaced by others and.or where new translations complement existing ones. It would be useful to check if these translations are done, and, of possible, to share a link with just the list of these needed translations to translations.

Pginer-WMF removed a project: Design.

Thanks for all the feedback. I think we can start by making the current selector more flexible for one message and consider the support for multiple selection in a future iteration, since the first step will be needed anyways. I updated the description to capture what was listed as option B.

Change 726630 had a related patch set uploaded (by Nikerabbit; author: Nikerabbit):

[mediawiki/extensions/Translate@master] Implement EntitySearch

https://gerrit.wikimedia.org/r/726630

Change 726630 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] Implement EntitySearch

https://gerrit.wikimedia.org/r/726630

Change 726631 had a related patch set uploaded (by Abijeet Patro; author: Nikerabbit):

[mediawiki/extensions/Translate@master] Implement TranslationEntitySearchActionApi

https://gerrit.wikimedia.org/r/726631

Change 726631 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] Implement TranslationEntitySearchActionApi

https://gerrit.wikimedia.org/r/726631

Change 731994 had a related patch set uploaded (by Nikerabbit; author: Nikerabbit):

[mediawiki/extensions/Translate@master] WIP: Implement EntitySearch::searchMessages

https://gerrit.wikimedia.org/r/731994

Change 734901 had a related patch set uploaded (by Nikerabbit; author: Nikerabbit):

[mediawiki/extensions/Translate@master] Inject dependencies to StatsTable

https://gerrit.wikimedia.org/r/734901

Change 731994 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] Implement EntitySearch::searchMessages

https://gerrit.wikimedia.org/r/731994

Change 734901 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] Inject dependencies to StatsTable

https://gerrit.wikimedia.org/r/734901

Change 726632 had a related patch set uploaded (by Nikerabbit; author: Nikerabbit):

[mediawiki/extensions/Translate@master] Use EntityInputWidget on Special:MessageGroupStats

https://gerrit.wikimedia.org/r/726632

Change 736648 had a related patch set uploaded (by Nikerabbit; author: Nikerabbit):

[mediawiki/extensions/Translate@master] SpecialMessageGroupStats: stop extendining LanguageStats

https://gerrit.wikimedia.org/r/736648

Change 736648 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] SpecialMessageGroupStats: stop extending LanguageStats

https://gerrit.wikimedia.org/r/736648

Change 741718 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/Translate@master] WIP: EntitySelector: Proof of concept

https://gerrit.wikimedia.org/r/741718

Change 742127 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/Translate@master] TranslationEntitySearchActionApi: Add messages in response

https://gerrit.wikimedia.org/r/742127

Work on this task is paused and will resume once other sprint tasks have been completed or in a future sprint.

Change 741718 abandoned by Abijeet Patro:

[mediawiki/extensions/Translate@master] WIP: EntitySelector: Proof of concept

Reason:

We now have a working version at: https://gerrit.wikimedia.org/r/742173

https://gerrit.wikimedia.org/r/741718

Change 742127 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] TranslationEntitySearchActionApi: Add messages in response

https://gerrit.wikimedia.org/r/742127

Change 761328 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/Translate@master] TranslationEntitySearchActionApi: Fix condition to fetch messages

https://gerrit.wikimedia.org/r/761328

Change 761328 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] TranslationEntitySearchActionApi: Fix condition to fetch messages

https://gerrit.wikimedia.org/r/761328

Change 726632 abandoned by Abijeet Patro:

[mediawiki/extensions/Translate@master] Use EntityInputWidget on Special:MessageGroupStats

Reason:

In favor of: Ib19bc33e56afad6c2bed21bb19f33b6b0270fc7b

https://gerrit.wikimedia.org/r/726632