Last modified: 2014-07-18 12:07:44 UTC
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.
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.
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
Is this code still in use?