Page MenuHomePhabricator

[Epic] Support for Section Translation
Open, HighPublic

Description

Section Translation is intended to support users to expand articles by translating a new section, on desktop and mobile.
Supporting Section translation is a complex task, so this is an Epic ticket to capture the different parts and provide an overview of how are those connected. You can also check SectionTranslation, the design specification document and the Translation Boost page for more details.

Entry points

From the Translation dashboard:

Additional entry points:

Choosing a section

Translation editor

Desktop (adapting ContentTranslation ):

Mobile (CX-mobile) :

Publishing a section and follow-ups

Supporting services and activities

Related Objects

StatusSubtypeAssignedTask
OpenNone
Openngkountas
OpenNone
OpenNone
Opensanthosh
OpenNone
OpenNone
OpenPginer-WMF
Openngkountas
OpenNone
OpenNone
OpenNone
Openngkountas
Resolvedngkountas
Openngkountas
Resolvedngkountas
OpenNone
Resolvedngkountas
OpenNone
Opensanthosh
OpenNone
Resolvedsanthosh
OpenNone
OpenNone
OpenNone
OpenNone
Resolvedsanthosh
Opensanthosh
Resolvedsanthosh
OpenNone
OpenPginer-WMF
OpenNone
ResolvedPginer-WMF
Openngkountas
Openngkountas
Resolvedngkountas
Resolvedngkountas
ResolvedBUG REPORTngkountas
Openngkountas
Resolvedngkountas
OpenNone
Resolvedngkountas
OpenNone
OpenNone
OpenNone
OpenNone
Openngkountas
Resolvedngkountas
Resolvedngkountas
Openngkountas
OpenNone
OpenNone
OpenNone
Openngkountas
Openngkountas
Openngkountas
Openngkountas
Openngkountas
OpenNone
Openngkountas
OpenNone
Opensanthosh
Openngkountas
OpenNone
OpenNone
Openngkountas
OpenNone
OpenNone
OpenNone
Resolvedsanthosh
ResolvedBUG REPORTngkountas

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Pginer-WMF updated the task description. (Show Details)Jan 23 2020, 10:40 AM
Pginer-WMF updated the task description. (Show Details)Jan 24 2020, 10:57 AM
Pginer-WMF updated the task description. (Show Details)Feb 6 2020, 11:03 AM
Pginer-WMF updated the task description. (Show Details)Mar 12 2020, 10:03 AM
Pginer-WMF updated the task description. (Show Details)Mar 30 2020, 2:10 PM
Pginer-WMF updated the task description. (Show Details)Apr 2 2020, 9:44 AM
Pginer-WMF updated the task description. (Show Details)Apr 14 2020, 9:43 AM
Pginer-WMF updated the task description. (Show Details)Apr 21 2020, 9:41 AM
Pginer-WMF moved this task from Needs Triage to Epic and Trackers on the ContentTranslation board.
Pginer-WMF updated the task description. (Show Details)Apr 22 2020, 10:02 AM
Pginer-WMF updated the task description. (Show Details)Apr 27 2020, 2:55 PM
Pginer-WMF updated the task description. (Show Details)
Pginer-WMF updated the task description. (Show Details)May 13 2020, 8:29 AM
Pginer-WMF updated the task description. (Show Details)May 13 2020, 9:26 AM
Pginer-WMF updated the task description. (Show Details)May 21 2020, 12:57 PM
Pginer-WMF updated the task description. (Show Details)Aug 4 2020, 2:13 PM
Jony added a subscriber: Jony.Aug 13 2020, 11:35 AM

I read somewhere that this is planned to be essentially a single page application inside a special page which is how Special:ContentTranslation currently works. Coming from the angle of skin architecture this seems problematic to me (for the reasons I detail in T259577#6398541) and I wondered whether you would consider making this a standalone skin as part of this work.

I'm currently in the process of improving the skin architecture as part of desktop improvements so if a skin doesn't make sense I'd be interested in your reasoning against doing that to understand where I can focus my energy best.

I'm also curious from an architecure perspective if static web page has been considered as an option and if not, why.

I read somewhere that this is planned to be essentially a single page application inside a special page which is how Special:ContentTranslation currently works. Coming from the angle of skin architecture this seems problematic to me (for the reasons I detail in T259577#6398541) and I wondered whether you would consider making this a standalone skin as part of this work.

I'm currently in the process of improving the skin architecture as part of desktop improvements so if a skin doesn't make sense I'd be interested in your reasoning against doing that to understand where I can focus my energy best.

I'm also curious from an architecure perspective if static web page has been considered as an option and if not, why.

From the user perspective what we wanted to achieve is to support a more focused activity. Translation requires to access different pieces of information and elements such as the sidebar were getting in the way. You can find similar patterns in e-commerce sites when doing focused activities such as the checkout, for example.

Having said that, it makes perfect sense to work as well as possible with existing systems such as the skin architecture. @santhosh can provide more detail on the technical decisions.

From the user perspective what we wanted to achieve is to support a more focused activity. Translation requires to access different pieces of information and elements such as the sidebar were getting in the way. You can find similar patterns in e-commerce sites when doing focused activities such as the checkout, for example.

You can achieve that even more so with a skin. Building this as a skin would give you complete control over the experience for example the skin would not render the sidebar.

Right now it seems from my uninformed position that you are fighting mediawiki internals by trying to make the special page look like a standalone app but under the surface you have a host of unnecessary technical baggage - as I've pointed out you are shipping a large amount of unused JavaScript and CSS that doesn't even apply to the page yet still executes.

@Jdlrobson Can you please guide us with this approach? I am not familiar with skins system. If we create a new skin, wouldn't it be globally available? Can it be used for just a special page? Can you give some pointers on where to start?

Definitely can help with that. When do you need to know by?

Out of interest is there anything stopping you using a static page like the Wikipedia portal does [1] e.g. requiring access to the mediawiki libraries?

[1] https://www.wikipedia.org/

Definitely can help with that. When do you need to know by?

  1. If we create a skin, won't it be available as preference for users for all pages? I guess, in our case, we don't want to list this skin as a general skin, but an internal one for Special:CX only. How to do that?
  2. Should we write it as a new Skin repository and make dependency for CX?
  3. Is there an example where a special skin is made only for a special page? Is it by conditionally change wgDefaultSkin based on current page name?

Out of interest is there anything stopping you using a static page like the Wikipedia portal does [1] e.g. requiring access to the mediawiki libraries?

Yes, for example, VisualEdior(Mediawiki target) is required for editing translations.

Jdlrobson added a comment.EditedSep 14 2020, 9:45 PM

If we create a skin, won't it be available as preference for users for all pages? I guess, in our case, we don't want to list this skin as a general skin, but an internal one for Special:CX only. How to do that?

apioutput and fallback are skins but are hidden in preferences using $wgSkipSkins

Should we write it as a new Skin repository and make dependency for CX?

It's up to you but personally I'd ship it inside the extension.

Is there an example where a special skin is made only for a special page? Is it by conditionally change wgDefaultSkin based on current page name?

Here's some example code which forces timeless skin on a given special page:

	public function execute( $subpage ) {
		$skinFactory = MediaWikiServices::getInstance()->getSkinFactory();
		$output->getContext()->setSkin(
			$skinFactory->makeSkin( 'timeless' )
		);

Here's a demo to play around with: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ContentTranslation/+/627382

Thanks @Jdlrobson!. I will try to take it forward.

Jony removed a subscriber: Jony.Sep 26 2020, 4:43 PM
Jony added a subscriber: Jony.