It's annoying that when I click on "Translate this page", the special page would only tell me that translation is only available in zh.
The fallback chains are updated in T278639, so it should be easy to redirect to the available language with a simple fix.
Description
Related Objects
Event Timeline
I believe this should be designed to set by $wgTranslateDisabledTargetLanguages , but that variable is currently used for the message.
Not necessarily, just go through the fallback chain and find the first one that is not disabled.
I'm afraid that there might be an issue, example:
Someone got redirected to another language from the language he/she/they/etc. expected and was not aware of the redirection, then the user might translate to the user-expected language rather than the redirected language.
And how would setting the target language in $wgTranslateDisabledTargetLanguages improve this situation? Of course, redirection should only happen if the current UI language is present in $wgTranslateDisabledTargetLanguages, the question is whether we want to maintain a second database of fallback languages. Since Special:MyLanguage (used a lot on Meta and mediawiki.org, not that much on Commons) uses the core fallback list, if this redirection wouldn’t, it could easily lead to inconsistencies between what readers get and what translators get.
I mean there might be "use 'xx' instead" (which is already in the current custom messages, but may be customized/wrote in a fallback-independent message) and "simply disabled".
By the way, there's actually another issue that the "Translation for 'xxx' is disabled, use 'yyy' instead." message not able to be i18n'd.