Petr Kadlec wrote:
Brion's
point about template link table corruption is a good one. That
would indeed cause problems.
Yes, but I wonder: How different would that be from the current
situation? I can say something like
{{It is {{#time:s}}}}
which tries to include a template – which one is considered on render,
but the templatelinks table is updated only on save. So that after the
first action=purge, you have the same kind of corruption. (See
[[testwiki:Parser functions vs linktables]].)
It's the same. As long as the results of the parser functions depend only
on their arguments then there is no problem. But when a parser function
depends on some changeable external data, cache coherency is lost.
There is a workaround for this which is used to update the templatelinks
tables for pages with cascading protection. If during Article::view(), the
contents of the templatelinks table differs from the results of a parse,
the templatelinks table is updated. This would work quite well for time
but not well at all for language dependencies.
(Agreed, it is not that big of problem currently,
because the use
cases for this are rare, while the {{USERLANG}} would IMHO spread very
quickly, esp. on Commons.)
Right, it's the application which we have to consider, it's our job to
work out how to support it. Basically this would mean that you could have
language-dependent templates, but the pages using them would not have
their caches invalidated on the usual triggers, such as image upload,
article creation/deletion and template changes. Cascading protection would
be broken, causing constant link table updates from one language version
to another.
-- Tim Starling