Page MenuHomePhabricator

SX: Use source/target languages from URL params everywhere
Open, LowPublic

Description

Currently, we have two sources of truth for the source and the target languages: we store the values of the current source/target language both inside URL parameters and inside Vuex application state.

Storing the languages inside URL parameters is essential to provide support for several features that are based on prepared URLs. On the other hand, storing the languages inside the Vuex store, was our initial approach and is still in use in several places, but it's redundant and can be deprecated in favor of the URL params, so that we only have one single source of truth for these language values.

The following files should be updated to use the source/target language values from the URL, instead of the application state:

  • useTranslationSave.js
  • CXSuggestionList.vue
  • useLanguageHelper.js
  • CXTranslationWorkPublished.vue
  • useDashboardInitialization.js
  • useDraftTranslationDelete.js
  • useDraftTranslationStart.js
  • SXArticleLanguageSelector.vue
  • SXArticleSearch.vue
  • SearchResultsCard.vue
  • usePageTranslationStart.js
  • SXContentComparator.vue
  • EditCompleteFeedback.vue
  • SXEditor.vue
  • useMtValidate.js
  • usePublishingComplete.js
  • SXSectionSelector.vue
  • ProposedTranslationCard.vue
  • SXSentenceSelector.vue
  • SXSentenceSelectorContentHeader.vue
  • SXTranslationSelector.vue
  • TranslatedSegmentCard.vue
  • useMtProvidersInitialize.js
  • useSuggestionsInitialize.js
  • useConfirmationButtonClickHandlers.js
  • useSuggestionSeeds.js
  • useSuggestionValidator.js
  • useSuggestionsFetch.js
  • useSuggestionFetchByMostPopular.js
  • useSuggestionsFetchByEdits.js
  • useSuggestionsFetchByTopics.js
  • useSuggestions.js
  • useTranslationPublish.js
  • useEditedTranslationApply.js

The following files use the sourceLanguageAutonym and targetLanguageAutonym computed variables from useApplicationState composable, which depend on sourceLanguage and targetLanguage application state variables:

  • useListSelector.js
  • CXTranslationSuggestion.vue
  • SearchResultsCard.vue
  • SXTranslationConfirmerActionPanel.vue
  • BlockTemplateAdaptationCard.vue
  • SXBlockTemplateStatusDialog.vue
  • SXSectionSelector.vue
  • useApplicationState.js

Once we remove the above usages, we can safely remove the sourceLanguage and targetLanguagevariables from the application state, entirely.

What to do
For each one of these files, we are going to be replacing the sourceLanguage and targetLanguage from Vuex application state with the new approach which takes the values from the URL.

Example patch: patch.

For the files with sourceLanguageAutonym and targetLanguageAutonym.

Example patch: patch.

Details

Related Changes in Gerrit:
SubjectRepoBranchLines +/-
mediawiki/extensions/ContentTranslationwmf/1.45.0-wmf.18+4 K -4 K
mediawiki/extensions/ContentTranslationmaster+4 K -4 K
mediawiki/extensions/ContentTranslationmaster+7 -4
mediawiki/extensions/ContentTranslationmaster+4 K -4 K
mediawiki/extensions/ContentTranslationmaster+13 -16
mediawiki/extensions/ContentTranslationmaster+2 K -2 K
mediawiki/extensions/ContentTranslationmaster+10 -6
mediawiki/extensions/ContentTranslationmaster+1 K -1 K
mediawiki/extensions/ContentTranslationmaster+8 -10
mediawiki/extensions/ContentTranslationmaster+8 -12
mediawiki/extensions/ContentTranslationmaster+2 K -3 K
mediawiki/extensions/ContentTranslationmaster+2 -4
mediawiki/extensions/ContentTranslationmaster+5 -4
mediawiki/extensions/ContentTranslationmaster+5 -2
mediawiki/extensions/ContentTranslationmaster+10 -15
mediawiki/extensions/ContentTranslationmaster+5 K -5 K
mediawiki/extensions/ContentTranslationmaster+2 -5
mediawiki/extensions/ContentTranslationmaster+2 -3
mediawiki/extensions/ContentTranslationmaster+8 K -8 K
mediawiki/extensions/ContentTranslationmaster+12 -4
mediawiki/extensions/ContentTranslationmaster+5 K -5 K
mediawiki/extensions/ContentTranslationmaster+17 -7
mediawiki/extensions/ContentTranslationmaster+5 -2
mediawiki/extensions/ContentTranslationmaster+3 -3
mediawiki/extensions/ContentTranslationmaster+10 -2
mediawiki/extensions/ContentTranslationmaster+10 -3
mediawiki/extensions/ContentTranslationmaster+12 -11
mediawiki/extensions/ContentTranslationmaster+2 -2
mediawiki/extensions/ContentTranslationmaster+4 -2
mediawiki/extensions/ContentTranslationmaster+4 K -4 K
mediawiki/extensions/ContentTranslationmaster+6 -5
mediawiki/extensions/ContentTranslationmaster+7 -7
mediawiki/extensions/ContentTranslationmaster+6 -5
mediawiki/extensions/ContentTranslationmaster+7 K -7 K
mediawiki/extensions/ContentTranslationmaster+44 -59
mediawiki/extensions/ContentTranslationmaster+173 -242
mediawiki/extensions/ContentTranslationmaster+5 -2
mediawiki/extensions/ContentTranslationmaster+6 -3
mediawiki/extensions/ContentTranslationwmf/1.43.0-wmf.24+7 K -7 K
mediawiki/extensions/ContentTranslationmaster+7 K -7 K
mediawiki/extensions/ContentTranslationmaster+49 -24
Show related patches Customize query in gerrit

Related Objects

Mentioned In
T407935: Quarterly technical contribution tasks for language projects (October–December 2025)
T399122: Show aggregate section information with difficulty indicators in “Expand with new sections” list
T403730: Treat article translation on mobile as (lead) section translation
T399133: Show easy recommendations to beginners
T404093: Decide article and section difficulty level size thresholds
T394998: Translation time estimations are very underestimated
T399125: Instrumentation: log recommendation difficulty level
T404045: CX Unified Dashboard: Favorite suggestions display current languages instead of the suggestion languages
T400184: Language Technical Contributions at Wikimania 2025 Hackathon
T399682: Quarterly newcomer tasks on language technical projects (July–September 2025)
T397764: P + T Software Engineering Internship (Feb 2025-June 2025): Key takeaways by Toluwanimi Ayodele
T375410: Unified Dashboard: Updating the source language inside confirmation step leads to error
T374559: Unified Dashboard: Section suggestions are populated by published translations
T368422: Custom translation suggestions: Basic topic selection
T374387: Call to section recommendation API mysteriously failing
T374567: SX: Set aria-label to icon-only Codex buttons
T355780: SX: Refactor SFCs to use <script setup> syntax
T370746: CX Unified Dashboard: Support suggestions based on previous edits
Mentioned Here
T394998: Translation time estimations are very underestimated
T399122: Show aggregate section information with difficulty indicators in “Expand with new sections” list
T399125: Instrumentation: log recommendation difficulty level
T399133: Show easy recommendations to beginners
T403730: Treat article translation on mobile as (lead) section translation
T404045: CX Unified Dashboard: Favorite suggestions display current languages instead of the suggestion languages
T404093: Decide article and section difficulty level size thresholds
T355780: SX: Refactor SFCs to use <script setup> syntax
T368422: Custom translation suggestions: Basic topic selection
T370746: CX Unified Dashboard: Support suggestions based on previous edits
T374387: Call to section recommendation API mysteriously failing
T374559: Unified Dashboard: Section suggestions are populated by published translations
T374567: SX: Set aria-label to icon-only Codex buttons
T375410: Unified Dashboard: Updating the source language inside confirmation step leads to error

Event Timeline

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

Change #1122111 had a related patch set uploaded (by Nik Gkountas; author: Nik Gkountas):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 0.2.0+20250224

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

Change #1122200 had a related patch set uploaded (by Eamedina; author: Eamedina):

[mediawiki/extensions/ContentTranslation@master] useDraftTranslationDelete: Use source/target languages from URL params

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

Change #1122206 had a related patch set uploaded (by Eamedina; author: Eamedina):

[mediawiki/extensions/ContentTranslation@master] EditCompleteFeedback: Use target language from URL param

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

Change #1122111 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 0.2.0+20250224

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

Change #1122206 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] EditCompleteFeedback: Use target language from URL param

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

Change #1122200 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] useDraftTranslationDelete: Update source/target logging values

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

Change #1124141 had a related patch set uploaded (by Sbisson; author: Sbisson):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 0.2.0+20250303

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

Change #1124141 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 0.2.0+20250303

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

Change #1134182 had a related patch set uploaded (by Nik Gkountas; author: Nik Gkountas):

[mediawiki/extensions/ContentTranslation@master] useTranslationPublish: Use source/target languages from URL params

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

Thank you for tagging this task with good first task for Wikimedia newcomers!

Newcomers often may not be aware of things that may seem obvious to seasoned contributors, so please take a moment to reflect on how this task might look to somebody who has never contributed to Wikimedia projects.

A good first task is a self-contained, non-controversial task with a clear approach. It should be well-described with pointers to help a completely new contributor, for example it should clearly pointed to the codebase URL and provide clear steps to help a contributor get setup for success. We've included some guidelines at https://phabricator.wikimedia.org/tag/good_first_task/ !

Thank you for helping us drive new contributions to our projects <3

Change #1134182 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] useTranslationPublish: Use source/target languages from URL params

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

Change #1135086 had a related patch set uploaded (by ToluAyo; author: ToluAyo):

[mediawiki/extensions/ContentTranslation@master] UsePublishingComplete: Use source/target languages from URL params

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

Change #1135086 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] UsePublishingComplete: Use source/target languages from URL params

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

Change #1135727 had a related patch set uploaded (by ToluAyo; author: ToluAyo):

[mediawiki/extensions/ContentTranslation@master] SXEditor: Use source/target languages from URL params

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

Change #1135727 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] SXEditor: Use source/target languages from URL params

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

Change #1135972 had a related patch set uploaded (by ToluAyo; author: ToluAyo):

[mediawiki/extensions/ContentTranslation@master] useMtValidate: Use source/target languages from URL params

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

Change #1135972 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] useMtValidate: Use source/target languages from URL params

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

Change #1136452 had a related patch set uploaded (by Sbisson; author: Sbisson):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250414

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

Change #1136452 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250414

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

Change #1136781 had a related patch set uploaded (by ToluAyo; author: ToluAyo):

[mediawiki/extensions/ContentTranslation@master] SXSectionSelector: Use source/target languages from URL params

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

Change #1137050 had a related patch set uploaded (by ToluAyo; author: ToluAyo):

[mediawiki/extensions/ContentTranslation@master] SXSectionSelector: Use source/target languages from URL params

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

Change #1137050 abandoned by Nik Gkountas:

[mediawiki/extensions/ContentTranslation@master] SXSectionSelector: Use source/target languages from URL params

Reason:

I4ba22400753e90f4342d4790ec6201dcd27d231d

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

Change #1136781 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] SXSectionSelector: Use source/target languages from URL params

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

Change #1144643 had a related patch set uploaded (by Eamedina; author: Eamedina):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250512

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

Change #1144643 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250512

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

Change #1163724 had a related patch set uploaded (by Nik Gkountas; author: Nik Gkountas):

[mediawiki/extensions/ContentTranslation@master] useEditedTranslationApply: Use source/target languages from URL params

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

Change #1163724 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] useEditedTranslationApply: Use source/target languages from URL params

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

Change #1165058 had a related patch set uploaded (by Nik Gkountas; author: Nik Gkountas):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250630

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

Change #1165058 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250630

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

Change #1165503 had a related patch set uploaded (by Nik Gkountas; author: Nik Gkountas):

[mediawiki/extensions/ContentTranslation@master] SXSentenceSelectorContentHeader: Use source language from URL param

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

Change #1165503 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] SXSentenceSelectorContentHeader: Use source language from URL param

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

Change #1166887 had a related patch set uploaded (by Sbisson; author: Sbisson):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250707

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

Change #1166887 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250707

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

Change #1186449 had a related patch set uploaded (by Nik Gkountas; author: Nik Gkountas):

[mediawiki/extensions/ContentTranslation@master] CX favorite suggestions: Use suggestion langs instead of current langs

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

Change #1186449 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX favorite suggestions: Use suggestion langs instead of current langs

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

Change #1186648 had a related patch set uploaded (by Sbisson; author: Sbisson):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250909

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

Change #1186650 had a related patch set uploaded (by Sbisson; author: Sbisson):

[mediawiki/extensions/ContentTranslation@wmf/1.45.0-wmf.18] CX3 Build 1.0.0+20250909

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

Change #1186648 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250909

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

Change #1186650 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@wmf/1.45.0-wmf.18] CX3 Build 1.0.0+20250909

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

Mentioned in SAL (#wikimedia-operations) [2025-09-10T13:54:25Z] <kartik@deploy1003> sbisson, kartik: Backport for [[gerrit:1186650|CX3 Build 1.0.0+20250909 (T374886 T394998 T399122 T399125 T399133 T403730 T404045 T404093)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2025-09-10T14:12:05Z] <kartik@deploy1003> Finished scap sync-world: Backport for [[gerrit:1186650|CX3 Build 1.0.0+20250909 (T374886 T394998 T399122 T399125 T399133 T403730 T404045 T404093)]] (duration: 24m 08s)

I want to work on this task, please assign me.

@Kundan_17 thanks for your interest.

This is a long running task with the list of places to refactor in the task description. The etiquette so far as been to submit one patch per file where this refactor is needed. There is a long list of existing patches linked to this task that you can look at to see how previous cases have been handled.

Feel free to claim this task and start submitting patches and we'll provide code reviews in a timely manner.