mediawiki-extensions-AbuseF.../i18n
Sorawee Porncharoenwase 320e3d696f Add a static analyzer for the filter language
This commit adds a class AFPSyntaxChecker which can statically analyze
a filter code to detect the following errors:

- unbound variables (which comes in two modes: conservative and liberal,
  default to conservative)
- unused variables (disabled by default for compatibilty)
- assignment on built-in identifiers
- function application's arity mismatch
- function application's invalid function name
- non-string literal in the first argument of set / set_var

The existing parser and evaluator are modified as follows:

- The new (caching) evaluator no longer needs to perform variable
  hoisting at runtime.
  - Note that for array assignment, this changes the semantics.
- The new parser is more lenient, reducing parsing errors.
  The static analyzer will catch these errors instead, allowing us
  to give a much better error message and reduces the complexity of
  the parser.
  * The parser now allows function name to be any identifier.
  * The parser now allows arity mismatch to occur.
  * The parser now allows the first argument of set to be any expression.

Concretely, obvious changes that users will see are:

1. a := [1]; false & (a[] := 2); a[0] === 1

   would evaluate to true, while it used to evaluate to the undefined value
   due to hoisting

2. f(1)

   will now error with 'f is not a valid function' as opposed to
   'Unexpected "T_BRACE"'

3. length

   will now error with 'Illegal use of built-in identifier "length"'
   as opposed to 'Expected a ('

Appendix: conservative and liberal mode

The conservative mode is completely compatible with the current evaluator.
That is,

false & (a := 1); a

will not deem `a` as unbound, though this is actually undesirable because
`a` would then be bound to the troublesome undefined value.

The liberal mode rejects the above pattern by deeming `a` as unbound.
However, it also rejects

true & (a := 1); a

even though (a := 1) is always executed. Since there are several filters
in Wikimedia projects that rely on this behavior, we default the mode
to conservative for now.

Note that even the liberal mode doesn't really respect lexical scope
appeared in some other programming languages (see also T234690).
For instance:

(if true then (a := 1) else (a := 2) end); a

would be accepted by the liberal checker, even though under lexical scope,
`a` would be unbound. However, it is unlikely that lexical scope
will be suitable for the filter language, as most filters in
Wikimedia projects that have user-defined variable do violate lexical scope.

Bug: T260903
Bug: T238709
Bug: T237610
Bug: T234690
Bug: T231536
Change-Id: Ic6d030503e554933f8d220c6f87b680505918ae2
2021-08-31 03:28:24 +02:00
..
api Localisation updates from https://translatewiki.net. 2021-08-18 08:13:08 +02:00
ace.json
af.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
aln.json Localisation updates from https://translatewiki.net. 2020-09-28 08:28:09 +02:00
am.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
an.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ar.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
arc.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ary.json Localisation updates from https://translatewiki.net. 2020-11-23 08:38:01 +01:00
arz.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
as.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ast.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
atj.json
av.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
awa.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
az.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
azb.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ba.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ban.json Localisation updates from https://translatewiki.net. 2021-08-26 08:35:01 +02:00
bar.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
bcc.json
bcl.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
be-tarask.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
be.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
bg.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
bgn.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
bho.json
bn.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
bo.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
br.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
bs.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
btm.json
bto.json Localisation updates from https://translatewiki.net. 2020-12-16 08:29:11 +01:00
ca.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ce.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ckb.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
co.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
crh-cyrl.json
crh-latn.json
cs.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
csb.json
cu.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
cv.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
cy.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
da.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
dag.json Localisation updates from https://translatewiki.net. 2020-09-21 08:28:21 +02:00
de-ch.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
de-formal.json
de.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
diq.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
dsb.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
dtp.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
dty.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
dv.json
ee.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
el.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
en-gb.json Localisation updates from https://translatewiki.net. 2020-07-24 08:26:09 +02:00
en.json Add a static analyzer for the filter language 2021-08-31 03:28:24 +02:00
eo.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
es-formal.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
es.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
et.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
eu.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
fa.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
fi.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
fit.json Localisation updates from https://translatewiki.net. 2020-03-25 08:31:31 +01:00
fo.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
fr.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
frc.json
frp.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
frr.json
fur.json
fy.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ga.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
gan-hans.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
gan-hant.json
gcr.json Localisation updates from https://translatewiki.net. 2019-12-26 16:17:47 +01:00
gl.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
gom-deva.json
gom-latn.json Localisation updates from https://translatewiki.net. 2019-11-04 09:25:40 +01:00
got.json
grc.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
gsw.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
gu.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
gv.json
ha.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
hak.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
haw.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
he.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
hi.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
hif-latn.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
hr.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
hrx.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
hsb.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ht.json
hu.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
hy.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
hyw.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ia.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
id.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ie.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ig.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ilo.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
inh.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
io.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
is.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
it.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ja.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
jv.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ka.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
kab.json
kcg.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
kea.json Localisation updates from https://translatewiki.net. 2021-06-14 08:35:36 +02:00
kg.json
khw.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
kiu.json
kjp.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
kk-cyrl.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
kl.json
km.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
kn.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ko.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
krc.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
kri.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ks-arab.json Localisation updates from https://translatewiki.net. 2021-08-30 08:19:21 +02:00
ksh.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ku-latn.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
kum.json
ky.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
la.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
lad.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
lag.json
lb.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
lez.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
lfn.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
li.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
lij.json Localisation updates from https://translatewiki.net. 2020-06-29 16:25:05 +02:00
lki.json
lkt.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
lld.json Localisation updates from https://translatewiki.net. 2020-08-26 09:50:22 +02:00
lmo.json Localisation updates from https://translatewiki.net. 2021-01-15 08:38:11 +01:00
ln.json
lrc.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
lt.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ltg.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
lv.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
lzh.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
mai.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
map-bms.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
mg.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
mhr.json Localisation updates from https://translatewiki.net. 2021-05-26 09:03:30 +02:00
min.json Localisation updates from https://translatewiki.net. 2021-01-15 08:38:11 +01:00
mk.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ml.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
mn.json
mni.json Localisation updates from https://translatewiki.net. 2020-11-16 08:35:50 +01:00
mnw.json Localisation updates from https://translatewiki.net. 2021-08-24 10:16:42 +02:00
mr.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
mrh.json Localisation updates from https://translatewiki.net. 2020-11-30 08:45:28 +01:00
ms-arab.json Localisation updates from https://translatewiki.net. 2021-05-24 09:52:10 +02:00
ms.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
mt.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
mwl.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
my.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
myv.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
mzn.json
nah.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
nap.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
nb.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
nds-nl.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
nds.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ne.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
new.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
niu.json
nl-informal.json Localisation updates from https://translatewiki.net. 2021-08-18 08:13:08 +02:00
nl.json Localisation updates from https://translatewiki.net. 2021-08-30 08:19:21 +02:00
nn.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
nqo.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
nrm.json
nso.json
oc.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
or.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
os.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
pa.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
pam.json Localisation updates from https://translatewiki.net. 2021-01-15 08:38:11 +01:00
pdc.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
pdt.json
pfl.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
pl.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
pms.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
pnb.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ps.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
pt-br.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
pt.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
qqq.json Add a static analyzer for the filter language 2021-08-31 03:28:24 +02:00
qu.json
rif.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
rm.json
rmc.json Localisation updates from https://translatewiki.net. 2021-08-09 08:22:54 +02:00
ro.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
roa-tara.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ru.json Localisation updates from https://translatewiki.net. 2021-08-23 09:03:19 +02:00
rue.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
sa.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
sah.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
sc.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
scn.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
sco.json
sd.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
sdc.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
se.json Localisation updates from https://translatewiki.net. 2021-08-23 09:03:19 +02:00
sh.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
shi.json Localisation updates from https://translatewiki.net. 2021-01-15 08:38:11 +01:00
shn.json Localisation updates from https://translatewiki.net. 2020-05-20 08:34:09 +02:00
si.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
sk.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
skr-arab.json Localisation updates from https://translatewiki.net. 2020-12-23 08:31:25 +01:00
sl.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
smn.json Localisation updates from https://translatewiki.net. 2021-08-23 09:03:19 +02:00
sms.json Localisation updates from https://translatewiki.net. 2021-08-23 09:03:19 +02:00
so.json
sq.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
sr-ec.json Localisation updates from https://translatewiki.net. 2021-08-23 09:03:19 +02:00
sr-el.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
stq.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
su.json Localisation updates from https://translatewiki.net. 2020-12-15 08:34:46 +01:00
sv.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
sw.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
syl.json Localisation updates from https://translatewiki.net. 2020-09-18 08:36:33 +02:00
szl.json
szy.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
ta.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tay.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tcy.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
te.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tet.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tg-cyrl.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tg-latn.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
th.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ti.json Localisation updates from https://translatewiki.net. 2021-07-14 08:02:33 +02:00
tk.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tl.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tly.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tn.json Localisation updates from https://translatewiki.net. 2019-11-04 09:25:40 +01:00
tpi.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tr.json Localisation updates from https://translatewiki.net. 2021-08-26 08:35:01 +02:00
tru.json
trv.json Localisation updates from https://translatewiki.net. 2020-11-20 09:17:19 +01:00
tt-cyrl.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
tt-latn.json
tyv.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
tzm.json
udm.json
ug-arab.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ug-latn.json Localisation updates from https://translatewiki.net. 2020-04-07 08:33:06 +02:00
uk.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
ur.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
uz.json
vec.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
vep.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
vi.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
vo.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
wa.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
war.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
wuu.json Localisation updates from https://translatewiki.net. 2019-11-04 09:25:40 +01:00
xal.json
xmf.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
yi.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
yo.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
yue.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
zgh.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
zh-hans.json Localisation updates from https://translatewiki.net. 2021-08-23 09:03:19 +02:00
zh-hant.json Localisation updates from https://translatewiki.net. 2021-08-20 08:23:36 +02:00
zh-hk.json Localisation updates from https://translatewiki.net. 2019-12-29 20:39:03 +01:00
zu.json