Multidirectional language conversion for content pages using LanguageConverter should be prevented on multilingual wikis.
This was caused by T39338: $wgTranslateBlacklist of zh-* on metawiki .
This is not an issue for monodirectional language conversion; however, this had caused several issues:
- Search engines didn't index pages in language variants
- The {{ll template cannot recognize LanguageConverter syntax in the page display title
- Especially for MediaWiki.org
- LanguageConverter syntax exposed on pages without original converter and cannot easily choose the variant to transclude
- For example, we cannot choose to transclude the converted zh-hant version from zh pages in non-zh pages.
- The Translate special page become a mess because:
- Badly mixed translation memories (TM)
- There are no proper places to place page-wide conversion rules
- There are many manual conversion tags in the translation unit
- The preview cannot handle LanguageConverter syntax properly
- The current LC zh workaround making zh translation suggestions "polluting" to other languages with zh as a fallback
- For example, there are nan and wuu translations misused LC zh template from the translation suggestions from zh
- The new introduced translation bundles cannot properly handle LC zh template as the messages were frame:preprocess'd every time, meaning we need to pass the language tag every time calling LC zh
- T39557: Untranslated units should not be converted to script variants
- (to be addressed)
Without using /zh-hans, /zh-hant, /zh-hk, we have to pass the language tag every time using message bundle messages.
-- Wrapping all of them under /zh using {{LC zh|, without using /zh-hans, /zh-hant, /zh-hk tmb.new( mb_page_title, lang_tag ):t( message_key ):params( lang_tag ):plain()
-- Using separated /zh-hans, /zh-hant, /zh-hk, we no longer need to pass the language tag :params( lang_tag ) every time tmb.new( mb_page_title, lang_tag ):t( message_key ):plain()
With this change, every Lua module using translation bundles can be simplified:
- :t( message_key ):params( lang_tag ):plain() + :t( message_key ):plain()
Without this change, every Lua module using translation bundles need to:
- :t( message_key ):plain() + :t( message_key ):params( lang_tag ):plain()
Former discussions: