Currently, if a user isn't logged in, even if they have explicitly selected a variant from the drop-down menu on one page, the preference is lost as soon as they click on a link to navigate to a different page, and it falls back to the default.. This is a pretty poor user experience, especially since e.g. in the case of zhwiki, the default is a mix of unconverted Traditional and Simplified characters if it can't be inferred from browser settings.
This also happens on MobileFrontend, which may need to be fixed separately.
- Save the variant selection in a session or regular cookie
- If user is anonymous, automatically modify the URL of all internal links (wiki links, sidebar, search, etc.) to include variant information (e.g. if I'm viewing https://zh.wikipedia.org/zh-tw/維基百科, all link targets should use be prefixed with https://zh.wikipedia.org/zh-tw/ rather than with https://zh.wikipedia.org/wiki/)
- Note: Naively changing the parser output doesn't quite work, because the parser cache is shared between all viewers of a variant. If we just changed the parser output to always use variant-specific URLs, links shared externally (e.g. on social media) would always be variant specific, which hurts usability in cases where MediaWiki can actually infer a different preferred variant for the person clicking on the link.