https://bugzilla.wikimedia.org/show_bug.cgi?id=35628

--- Comment #11 from Philippe Verdy <verd...@wanadoo.fr> ---
The problem affects templates trying to map a subpagename as a language code.
Currently {{#language:code1|code2}} causes a fatal server error (HTTP error
500) and all pages using that that template whose subpage name may contain an
ASCII single or quote quote or an ampersand: {{SUBPAGENAME}} HTML encodes these
characters with entities, and when this is used in the value of "code2" above,
this will break.
To avoid this issue, we need a way to test if a subpagename can be a valid
language code before trying to use {{#language:}}.

One way to test it includes comparing the (SUB)PAGENAME with the result of
#titleparts, using a "#ifeq:" parser function call.

But if #ifeq: is HTML-decoding its compared items, it will alway reply that the
(SUB)PAGENAME and #titleparts are equal, so it will no longer be alble to
detect invalid language codes. As a result we'll get HTTP error 500 at amny
random pages using some templates when viewing a subpage including that
template and whose subpagename contains an apostrophe-quote, or double quote,
or a few other characters.

An alternative would require using a Lua module for testing the validity of
language codes. But in my opinion "#language:" MUST be urgently fixed to not
crash when there are HTML entities in its second parameter (if this occurs, it
should handle the case gracefull as if we specified an unknown/unsupported
target language code.

Note that this critical bug of #language occurs in very important pages,
notably many "Main pages" of wiki ˆprojects", or one of their subpages that are
transcluding a page trying to display a list of alternate languages, using the
content language of the current page (which may be translated).

As long as this critical bug of "#language:", the fix for "#ifeq:" or
"#switch:" should be delayed (or be prapared to see lots of HTTP error 500 in
server logs and many pages not rendered at all.

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.
_______________________________________________
Wikibugs-l mailing list
Wikibugs-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to