Page MenuHomePhabricator

Create Language Select Widget
Open, HighPublic8 Estimated Story Points

Description

The Language Select Widget is a reusable component in PHP and JS. It automatically transforms native HTML <select> elements (possible <input> elements too) into the Vue based language selector <LookupLanguageSelector>with the capabilities that <cdx-lookup> have, it also maintains backward compatibility with JavaScript disabled environments.

check the comment below for more information.

Event Timeline

hueitan set the point value for this task to 4.

Change #1226414 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/core@master] Add LanguageSelectWidget and Field

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

Change #1226415 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/TranslationNotifications@master] Use the languageselectwidget in Special:TranslatorSignup

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

Change #1228675 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/core@master] Use the Language Select Widget in Speical:PageLanguage

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

Change #1228732 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/core@master] Use the Language Select Widget in Special:Preferences

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

Change #1229063 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/Translate@master] ExportTranslations: Replace the language selector activation script using widget

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

Change #1228977 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/Translate@master] LanguageStats: Replace the language selector activation scrirpt using widget

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

abi_ triaged this task as High priority.Tue, Jan 20, 11:30 AM

once we confirm and have T415164: use 'codex' in getDisplayFormat() in various places, we won't need languageselectwidget anymore, using HTMLSelectLanguageField (type => language) is enough.

Change #1229565 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/core@master] Add LanguageSelectWidget

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

hueitan updated the task description. (Show Details)

Change #1230703 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/core@master] HTMLSelectLanguageField: Allow codex display format

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

Change #1226414 abandoned by Huei Tan:

[mediawiki/core@master] WIP: Add HTMLLanguageSelectWidgetField or extend HTMLSelectLanguageField

Reason:

submit another patch

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

Change #1230707 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/core@master] SpecialPreferences: Use Language Select Widget in language field

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

Change #1230709 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/core@master] SpecialPageLanguage: Use Language Select Widget in language field

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

Change #1228675 abandoned by Huei Tan:

[mediawiki/core@master] Use the Language Select Widget in Speical:PageLanguage

Reason:

submit another patch

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

Change #1233121 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/core@master] LanguageSelectWidget: Add multiple selection support

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

Change #1233122 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/Translate@master] SpecialPageTranslation: Use Language Select Widget

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

In all the patches here, we follow the step

  1. Create the Widget; https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1229565
  2. Use the widget for those pages not through the form field; check the Needed by in 1229565
  3. Allow codex display format in HTMLSelectLanguageField https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1230703
  4. Use the field for those pages built using form; check the Needed by 1230703
  5. update all the page to use display form => codex WIP not sure if we do this now, we use the temp solution of useCodex in HTMLSelectLanguageField (known patch that has this as blocker, 1230707)

In the most complicated cases, here's the flow

HTMLSelectLanguageField ("type"=>"language")
-> LanguageSelectWidget
-> native <select /> form
(js-disabled case will stop here)
(js-enabled case, we continue with the replacement code)
-> mediawiki.languageselector <LookupLanguageSelector/>
-> <cdx-lookup/> or <cdx-multiselect-lookup/>

hueitan changed the point value for this task from 4 to 8.

Change #1229565 merged by jenkins-bot:

[mediawiki/core@master] Add LanguageSelectWidget

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

Change #1229063 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] ExportTranslations: Replace the language selector activation script using widget

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

Change #1230703 merged by jenkins-bot:

[mediawiki/core@master] HTMLSelectLanguageField: Allow codex display format

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

Change #1226415 merged by jenkins-bot:

[mediawiki/extensions/TranslationNotifications@master] SpecialTranslatorSignup: Use Language Select Widget in language field

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

Change #1230709 merged by jenkins-bot:

[mediawiki/core@master] SpecialPageLanguage: Use Language Select Widget in language field

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

Change #1235181 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/core@master] LanguageSelectWidget: Add the default class name for the native element

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

Change #1235181 abandoned by Huei Tan:

[mediawiki/core@master] LanguageSelectWidget: Add the default class name for the native element

Reason:

not necessary.

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

Change #1228977 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] LanguageStats: Replace the language selector activation script using widget

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