Page MenuHomePhabricator

Allow for fallback languages in i18n map rendering
Closed, DeclinedPublic

Description

Author: avarab

Description:
Currently we just do:

case when "name:$code" is not null then "name:$code" else name end as name

But some languages would like to have more complex fallbacks, e.g. "hsb" would like to fallback to "de" and then the generic name.

So we need a machine-readable list of such language fallbacks, or make one if it doesn't exist.

In the latter case it might be conductive to completeness to implement it via a extension i18n message so people can translate it via the MediaWiki namespace, e.g.:

hsb:MediaWiki:SlippyMap-rendering-language-fallbacks: de, _generic

Then we can periodically run a script which pulls those messages down & updates our list of fallbacks.


Version: unspecified
Severity: enhancement
URL: http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/osm-tools/osm2pgsql-style/create-language-views.pl?view=markup

Details

Reference
bz19891

Event Timeline

bzimport raised the priority of this task from to Low.Nov 21 2014, 10:41 PM
bzimport set Reference to bz19891.
bzimport added a subscriber: Unknown Object (MLST).

Just a thought for a script to build such a list:

MessagesHsb.php has an entry:

$fallback = 'de';

Grep all MessagesXx.php files and follow all fallbacks.

avarab wrote:

Yeah, sweet:

avar@aoeu:~/mw$ egrep -r '^\$fallback\s*=' languages/messages/*php | perl -pE 's/.*?Messages(.*?)\.php:.*?=\s*.(.*?).;/\l$1 = $2/g; s/_/-/g'|sort
ab = ru
ace = id
aln = sq
als = gsw
an = es
arn = es
arz = ar
as = bn
av = ru
ay = es
bar = de
ba = ru
bat-smg = lt
bcc = fa
be-x-old = be-tarask
bm = fr
bpy = bn
bqi = fa
bug = id
cbk-zam = es
ce = ru
ckb = ckb-arab
ckb-latn = ckb-arab
crh = crh-latn
crh-cyrl = ru
cv = ru
de-at = de
de-ch = de
de-formal = de
dk = da
dsb = de
eml = it
en = als
ff = fr
fiu-vro = vro
frp = fr
fur = it
gag = tr
gan = gan-hant
gan-hans = zh-hans
gan-hant = zh-hant
glk = fa
gn = es
gsw = de
hif = hif-latn
hsb = de
ht = fr
ii = zh-cn
inh = ru
iu = ike-cans
jut = da
jv = id
kaa = kk-latn
kk-arab = kk-cyrl
kk-cn = kk-arab
kk = kk-cyrl
kk-kz = kk-cyrl
kk-latn = kk-cyrl
kk-tr = kk-latn
kl = da
ksh = de
ku-arab = ckb-arab
ku = ku-latn
kv = ru
lad = es
lb = de
lbe = ru
lij = it
li = nl
lld = it
lmo = it
ln = fr
mai = hi
map-bms = jv
mg = fr
mhr = ru
mo = ro
mwl = pt
myv = ru
mzn = fa
nah = es
nap = it
nb = no
nds = de
nds-nl = nl
os = ru
pdc = de
pdt = de
pfl = de
pms = it
pt-br = pt
qu = es
rmy = ro
ruq-cyrl = mk
ruq-grek = el
ruq-latn = ro
ruq = ruq-latn
sa = hi
sah = ru
scn = it
sg = fr
shi = ar
simple = en
sli = de
srn = nl
sr = sr-ec
stq = de
su = id
szl = pl
tcy = kn
tg = tg-cyrl
tp = tokipona
tt-cyrl = ru
tt = tt-latn
ty = fr
udm = ru
ug = ug-latn
uk = ru
vec = it
vep = et
vls = nl
vro = et
wa = fr
wo = fr
wuu = zh-hans
xmf = ka
ydd = yi
yi = he
za = zh-hans
zea = nl
zh-classical = lzh
zh-cn = zh-hans
zh-hant = zh-hans
zh-hk = zh-hant
zh-min-nan = nan
zh-mo = zh-hk
zh-my = zh-sg
zh-sg = zh-hans
zh-tw = zh-hant
zh-yue = yue
zh = zh-hans

MaxSem subscribed.

SlippyMap has been archived, closing.