Proof of concept language database database
Change-Id: I5d6b9ff4ce46c8e2d48bf56ab08f093287672467
This commit is contained in:
committed by
Santhosh Thottingal
parent
2fd23fe2e0
commit
16d2b1c33d
@@ -45,7 +45,7 @@ $wgResourceModules['ext.uls.init'] = array(
|
||||
);
|
||||
|
||||
$wgResourceModules['ext.uls.core'] = array(
|
||||
'scripts' => array( 'resources/ext.uls.core.js', 'resources/ext.uls.languagefilter.js' ),
|
||||
'scripts' => array( 'resources/ext.uls.core.js', 'resources/ext.uls.languagefilter.js', 'data/langdb.js' ),
|
||||
'styles' => 'resources/css/ext.uls.css',
|
||||
'localBasePath' => $dir,
|
||||
'remoteExtPath' => 'UniversalLanguageSelector',
|
||||
|
||||
1
data/langdb.js
Normal file
1
data/langdb.js
Normal file
@@ -0,0 +1 @@
|
||||
window.langdb = {"languages":{"aa":["Latn",[]],"ab":["Cyrl",[]],"ace":["Latn",[]],"af":["Latn",["AF"]],"ak":["Latn",[]],"aln":["Latn",[]],"an":["Latn",[]],"ang":["Latn",["EU"]],"ar":["Arab",["ME"]],"arn":["Latn",[]],"ary":["Latn",["ME"]],"arz":["Arab",["ME"]],"as":[null,["AS"]],"ast":["Latn",[]],"av":["Cyrl",[]],"avk":["Latn",[]],"ay":["Latn",[]],"az":["Latn",[]],"ba":["Cyrl",[]],"bar":["Latn",[]],"bcc":["Arab",[]],"bcl":["Latn",[]],"be":["Cyrl",["EU"]],"be-tarask":["Cyrl",["EU"]],"be-x-old":["Cyrl",["EU"]],"bg":["Cyrl",["EU"]],"bh":[null,["AS"]],"bi":["Latn",[]],"bjn":["Latn",[]],"bm":["Latn",[]],"bn":[null,["AS"]],"bo":[null,["AS"]],"bpy":[null,["AS"]],"bqi":["Arab",[]],"br":["Latn",[]],"brh":["Latn",[]],"bs":["Latn",["EU"]],"bxr":["Cyrl",["AS"]],"ca":["Latn",["EU"]],"fi":["Latn",["EU"]],"fit":["Latn",["EU"]],"ga":["Latn",["EU"]],"ja":["Jpan",["AS"]]},"scriptgroups":{"Latn":1,"Cyrl":2},"regiongroups":{"NA":1,"LA":1,"SA":1,"ME":2,"AF":2,"EU":2,"AS":3,"AU":3,"PA":3},"regions":{"fi":{"FI":100,"SE":10},"ru":{"RU":100,"FI":40}}};
|
||||
407
data/langdb.yaml
Normal file
407
data/langdb.yaml
Normal file
@@ -0,0 +1,407 @@
|
||||
languages:
|
||||
aa: [Latn, []]
|
||||
ab: [Cyrl, []]
|
||||
ace: [Latn, []]
|
||||
af: [Latn, [AF]]
|
||||
ak: [Latn, []]
|
||||
aln: [Latn, []]
|
||||
# am: [, []]
|
||||
an: [Latn, []]
|
||||
ang: [Latn, [EU]]
|
||||
# anp: [, []]
|
||||
ar: [Arab, [ME]]
|
||||
# arc: [, []]
|
||||
arn: [Latn, []]
|
||||
ary: [Latn, [ME]]
|
||||
arz: [Arab, [ME]]
|
||||
as: [, [AS]]
|
||||
ast: [Latn, []]
|
||||
av: [Cyrl, []]
|
||||
avk: [Latn, []]
|
||||
ay: [Latn, []]
|
||||
az: [Latn, []]
|
||||
ba: [Cyrl, []]
|
||||
bar: [Latn, []]
|
||||
bcc: [Arab, []]
|
||||
bcl: [Latn, []]
|
||||
be: [Cyrl, [EU]]
|
||||
be-tarask: [Cyrl, [EU]]
|
||||
be-x-old: [Cyrl, [EU]]
|
||||
bg: [Cyrl, [EU]]
|
||||
bh: [, [AS]]
|
||||
# bho: [, []]
|
||||
bi: [Latn, []]
|
||||
bjn: [Latn, []]
|
||||
bm: [Latn, []]
|
||||
bn: [, [AS]]
|
||||
bo: [, [AS]]
|
||||
bpy: [, [AS]]
|
||||
bqi: [Arab, []]
|
||||
br: [Latn, []]
|
||||
brh: [Latn, []]
|
||||
bs: [Latn, [EU]]
|
||||
# bug: [, []]
|
||||
bxr: [Cyrl, [AS]]
|
||||
ca: [Latn, [EU]]
|
||||
# cbk-zam: [, []]
|
||||
# cdo: [, []]
|
||||
# ce: [, []]
|
||||
# ceb: [, []]
|
||||
# ch: [, []]
|
||||
# cho: [, []]
|
||||
# chr: [, []]
|
||||
# chy: [, []]
|
||||
# ckb: [, []]
|
||||
# co: [, []]
|
||||
# cps: [, []]
|
||||
# cr: [, []]
|
||||
# crh: [, []]
|
||||
# crh-latn: [, []]
|
||||
# crh-cyrl: [, []]
|
||||
# cs: [, []]
|
||||
# csb: [, []]
|
||||
# cu: [, []]
|
||||
# cv: [, []]
|
||||
# cy: [, []]
|
||||
# da: [, []]
|
||||
# de: [, []]
|
||||
# de-at: [, []]
|
||||
# de-ch: [, []]
|
||||
# de-formal: [, []]
|
||||
# diq: [, []]
|
||||
# dsb: [, []]
|
||||
# dtp: [, []]
|
||||
# dv: [, []]
|
||||
# dz: [, []]
|
||||
# ee: [, []]
|
||||
# el: [, []]
|
||||
# eml: [, []]
|
||||
# en: [, []]
|
||||
# en-ca: [, []]
|
||||
# en-gb: [, []]
|
||||
# eo: [, []]
|
||||
# es: [, []]
|
||||
# et: [, []]
|
||||
# eu: [, []]
|
||||
# ext: [, []]
|
||||
# fa: [, []]
|
||||
# ff: [, []]
|
||||
fi: [Latn, [EU]]
|
||||
fit: [Latn, [EU]]
|
||||
# fj: [, []]
|
||||
# fo: [, []]
|
||||
# fr: [, []]
|
||||
# frc: [, []]
|
||||
# frp: [, []]
|
||||
# frr: [, []]
|
||||
# fur: [, []]
|
||||
# fy: [, []]
|
||||
ga: [Latn, [EU]]
|
||||
# gag: [, []]
|
||||
# gan: [, []]
|
||||
# gan-hans: [, []]
|
||||
# gan-hant: [, []]
|
||||
# gd: [, []]
|
||||
# gl: [, []]
|
||||
# glk: [, []]
|
||||
# gn: [, []]
|
||||
# got: [, []]
|
||||
# grc: [, []]
|
||||
# gsw: [, []]
|
||||
# gu: [, []]
|
||||
# gv: [, []]
|
||||
# ha: [, []]
|
||||
# hak: [, []]
|
||||
# haw: [, []]
|
||||
# he: [, []]
|
||||
# hi: [, []]
|
||||
# hif: [, []]
|
||||
# hif-latn: [, []]
|
||||
# hil: [, []]
|
||||
# ho: [, []]
|
||||
# hr: [, []]
|
||||
# hsb: [, []]
|
||||
# ht: [, []]
|
||||
# hu: [, []]
|
||||
# hy: [, []]
|
||||
# hz: [, []]
|
||||
# ia: [, []]
|
||||
# id: [, []]
|
||||
# ie: [, []]
|
||||
# ig: [, []]
|
||||
# ii: [, []]
|
||||
# ik: [, []]
|
||||
# ike-cans: [, []]
|
||||
# ike-latn: [, []]
|
||||
# ilo: [, []]
|
||||
# inh: [, []]
|
||||
# io: [, []]
|
||||
# is: [, []]
|
||||
# it: [, []]
|
||||
# iu: [, []]
|
||||
ja: [Jpan, [AS]]
|
||||
# jam: [, []]
|
||||
# jbo: [, []]
|
||||
# jut: [, []]
|
||||
# jv: [, []]
|
||||
# ka: [, []]
|
||||
# kaa: [, []]
|
||||
# kab: [, []]
|
||||
# kbd: [, []]
|
||||
# kbd-cyrl: [, []]
|
||||
# kg: [, []]
|
||||
# khw: [, []]
|
||||
# ki: [, []]
|
||||
# kiu: [, []]
|
||||
# kj: [, []]
|
||||
# kk: [, []]
|
||||
# kk-arab: [, []]
|
||||
# kk-cyrl: [, []]
|
||||
# kk-latn: [, []]
|
||||
# kk-cn: [, []]
|
||||
# kk-kz: [, []]
|
||||
# kk-tr: [, []]
|
||||
# kl: [, []]
|
||||
# km: [, []]
|
||||
# kn: [, []]
|
||||
# ko: [, []]
|
||||
# ko-kp: [, []]
|
||||
# koi: [, []]
|
||||
# kr: [, []]
|
||||
# krc: [, []]
|
||||
# kri: [, []]
|
||||
# krj: [, []]
|
||||
# ks: [, []]
|
||||
# ks-arab: [, []]
|
||||
# ks-deva: [, []]
|
||||
# ksh: [, []]
|
||||
# ku: [, []]
|
||||
# ku-latn: [, []]
|
||||
# ku-arab: [, []]
|
||||
# kv: [, []]
|
||||
# kw: [, []]
|
||||
# ky: [, []]
|
||||
# la: [, []]
|
||||
# lad: [, []]
|
||||
# lb: [, []]
|
||||
# lbe: [, []]
|
||||
# lez: [, []]
|
||||
# lfn: [, []]
|
||||
# lg: [, []]
|
||||
# li: [, []]
|
||||
# lij: [, []]
|
||||
# liv: [, []]
|
||||
# lmo: [, []]
|
||||
# ln: [, []]
|
||||
# lo: [, []]
|
||||
# loz: [, []]
|
||||
# lt: [, []]
|
||||
# ltg: [, []]
|
||||
# lus: [, []]
|
||||
# lv: [, []]
|
||||
# lzh: [, []]
|
||||
# lzz: [, []]
|
||||
# mai: [, []]
|
||||
# map-bms: [, []]
|
||||
# mdf: [, []]
|
||||
# mg: [, []]
|
||||
# mh: [, []]
|
||||
# mhr: [, []]
|
||||
# mi: [, []]
|
||||
# min: [, []]
|
||||
# mk: [, []]
|
||||
# ml: [, []]
|
||||
# mn: [, []]
|
||||
# mo: [, []]
|
||||
# mr: [, []]
|
||||
# mrj: [, []]
|
||||
# ms: [, []]
|
||||
# mt: [, []]
|
||||
# mus: [, []]
|
||||
# mwl: [, []]
|
||||
# my: [, []]
|
||||
# myv: [, []]
|
||||
# mzn: [, []]
|
||||
# na: [, []]
|
||||
# nah: [, []]
|
||||
# nan: [, []]
|
||||
# nap: [, []]
|
||||
# nb: [, []]
|
||||
# nds: [, []]
|
||||
# nds-nl: [, []]
|
||||
# ne: [, []]
|
||||
# new: [, []]
|
||||
# ng: [, []]
|
||||
# niu: [, []]
|
||||
# nl: [, []]
|
||||
# nl-informal: [, []]
|
||||
# nn: [, []]
|
||||
# no: [, []]
|
||||
# nov: [, []]
|
||||
# nrm: [, []]
|
||||
# nso: [, []]
|
||||
# nv: [, []]
|
||||
# ny: [, []]
|
||||
# oc: [, []]
|
||||
# om: [, []]
|
||||
# or: [, []]
|
||||
# os: [, []]
|
||||
# pa: [, []]
|
||||
# pag: [, []]
|
||||
# pam: [, []]
|
||||
# pap: [, []]
|
||||
# pcd: [, []]
|
||||
# pdc: [, []]
|
||||
# pdt: [, []]
|
||||
# pfl: [, []]
|
||||
# pi: [, []]
|
||||
# pih: [, []]
|
||||
# pl: [, []]
|
||||
# pms: [, []]
|
||||
# pnb: [, []]
|
||||
# pnt: [, []]
|
||||
# prg: [, []]
|
||||
# ps: [, []]
|
||||
# pt: [, []]
|
||||
# pt-br: [, []]
|
||||
# qu: [, []]
|
||||
# qug: [, []]
|
||||
# rgn: [, []]
|
||||
# rif: [, []]
|
||||
# rm: [, []]
|
||||
# rmy: [, []]
|
||||
# rn: [, []]
|
||||
# ro: [, []]
|
||||
# roa-rup: [, []]
|
||||
# roa-tara: [, []]
|
||||
# ru: [, []]
|
||||
# rue: [, []]
|
||||
# rup: [, []]
|
||||
# ruq: [, []]
|
||||
# ruq-cyrl: [, []]
|
||||
# 'ruq-grek' => 'Βλαεστε', # Megleno-Romanian (Greek script)
|
||||
# ruq-latn: [, []]
|
||||
# rw: [, []]
|
||||
# sa: [, []]
|
||||
# sah: [, []]
|
||||
# sat: [, []]
|
||||
# sc: [, []]
|
||||
# scn: [, []]
|
||||
# sco: [, []]
|
||||
# sd: [, []]
|
||||
# sdc: [, []]
|
||||
# se: [, []]
|
||||
# sei: [, []]
|
||||
# sg: [, []]
|
||||
# sgs: [, []]
|
||||
# sh: [, []]
|
||||
# shi: [, []]
|
||||
# shi-tfng: [, []]
|
||||
# shi-latn: [, []]
|
||||
# si: [, []]
|
||||
# simple: [, []]
|
||||
# sk: [, []]
|
||||
# sl: [, []]
|
||||
# sli: [, []]
|
||||
# sm: [, []]
|
||||
# sma: [, []]
|
||||
# sn: [, []]
|
||||
# so: [, []]
|
||||
# sq: [, []]
|
||||
# sr: [, []]
|
||||
# sr-ec: [, []]
|
||||
# sr-el: [, []]
|
||||
# srn: [, []]
|
||||
# ss: [, []]
|
||||
# st: [, []]
|
||||
# stq: [, []]
|
||||
# su: [, []]
|
||||
# sv: [, []]
|
||||
# sw: [, []]
|
||||
# szl: [, []]
|
||||
# ta: [, []]
|
||||
# tcy: [, []]
|
||||
# te: [, []]
|
||||
# tet: [, []]
|
||||
# tg: [, []]
|
||||
# tg-cyrl: [, []]
|
||||
# tg-latn: [, []]
|
||||
# th: [, []]
|
||||
# ti: [, []]
|
||||
# tk: [, []]
|
||||
# tl: [, []]
|
||||
# tly: [, []]
|
||||
# tn: [, []]
|
||||
# to: [, []]
|
||||
# tokipona: [, []]
|
||||
# tpi: [, []]
|
||||
# tr: [, []]
|
||||
# ts: [, []]
|
||||
# tt: [, []]
|
||||
# tt-cyrl: [, []]
|
||||
# tt-latn: [, []]
|
||||
# tum: [, []]
|
||||
# tw: [, []]
|
||||
# ty: [, []]
|
||||
# tyv: [, []]
|
||||
# udm: [, []]
|
||||
# ug: [, []]
|
||||
# ug-arab: [, []]
|
||||
# ug-latn: [, []]
|
||||
# uk: [, []]
|
||||
# ur: [, []]
|
||||
# uz: [, []]
|
||||
# ve: [, []]
|
||||
# vec: [, []]
|
||||
# vep: [, []]
|
||||
# vi: [, []]
|
||||
# vls: [, []]
|
||||
# vmf: [, []]
|
||||
# vo: [, []]
|
||||
# vot: [, []]
|
||||
# vro: [, []]
|
||||
# wa: [, []]
|
||||
# war: [, []]
|
||||
# wo: [, []]
|
||||
# wuu: [, []]
|
||||
# xal: [, []]
|
||||
# xh: [, []]
|
||||
# xmf: [, []]
|
||||
# yi: [, []]
|
||||
# yo: [, []]
|
||||
# yue: [, []]
|
||||
# za: [, []]
|
||||
# zea: [, []]
|
||||
# zh: [, []]
|
||||
# zh-classical: [, []]
|
||||
# zh-cn: [, []]
|
||||
# zh-hans: [, []]
|
||||
# zh-hant: [, []]
|
||||
# zh-hk: [, []]
|
||||
# zh-min-nan: [, []]
|
||||
# zh-mo: [, []]
|
||||
# zh-my: [, []]
|
||||
# zh-sg: [, []]
|
||||
# zh-tw: [, []]
|
||||
# zh-yue: [, []]
|
||||
# zu: [, []]
|
||||
|
||||
scriptgroups:
|
||||
Latn: 1
|
||||
Cyrl: 2
|
||||
|
||||
regiongroups:
|
||||
NA: 1 # north-america
|
||||
LA: 1 # latin-america
|
||||
SA: 1 # south-america
|
||||
ME: 2 # middle-east
|
||||
AF: 2 # africa
|
||||
EU: 2 # europe
|
||||
AS: 3 # asia
|
||||
AU: 3 # astralia
|
||||
PA: 3 # pacific
|
||||
|
||||
# Importance in the region, 100 = official language or everybody knows it
|
||||
regions:
|
||||
fi: { FI: 100, SE: 10 }
|
||||
ru: { RU: 100, FI: 40 }
|
||||
1046
data/spyc.php
Normal file
1046
data/spyc.php
Normal file
File diff suppressed because it is too large
Load Diff
8
data/yaml2json.php
Normal file
8
data/yaml2json.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
include __DIR__ . '/spyc.php';
|
||||
$data = file_get_contents( 'langdb.yaml' );
|
||||
$parsed = spyc_load( $data );
|
||||
$json = json_encode( $parsed );
|
||||
$js = "window.langdb = $json;";
|
||||
file_put_contents( 'langdb.js', $js );
|
||||
@@ -49,9 +49,17 @@
|
||||
window.location.href = uri.toString();
|
||||
}
|
||||
} );
|
||||
$( '.uls-region' ).live( 'click', function () {
|
||||
$( '.uls-region' ).live( 'click', function ( e ) {
|
||||
var id = $( this ).attr( 'id' );
|
||||
var active = $( this ).hasClass( 'active' );
|
||||
$( this ).parent().find( '.uls-region' ).removeClass( 'active' );
|
||||
$( this ).addClass( 'active' );
|
||||
if ( active ) {
|
||||
$( '.uls-language-list li' ).show();
|
||||
} else {
|
||||
$( this ).addClass( 'active' );
|
||||
$( '.uls-language-list li' ).not( '.' + id ).hide();
|
||||
$( '.uls-language-list li.' + id ).show();
|
||||
}
|
||||
} );
|
||||
// trigger a search for all languages.
|
||||
$( "#languagefilter" ).autocomplete( "search" );
|
||||
|
||||
@@ -58,17 +58,34 @@ jQuery( function( $ ) {
|
||||
}
|
||||
} ); // /autocomplete
|
||||
|
||||
$( self ).data( "autocomplete" )._renderItem = function ( ul, item ) {
|
||||
var $target = ul;
|
||||
if ( options.$target ) {
|
||||
$target = options.$target;
|
||||
} else {
|
||||
$( self ).data( "autocomplete" )._renderItem = function ( $target, item ) {
|
||||
var activeregion, classes, region, i, regionlist;
|
||||
|
||||
$target = options.$target;
|
||||
if ( !$target ) {
|
||||
return;
|
||||
}
|
||||
|
||||
regionlist = langdb.languages[item.value] || ["unknown", ["unknown"]];
|
||||
regionlist = regionlist[1];
|
||||
for ( i = 0; i < regionlist.length; i++ ) {
|
||||
region = langdb.regiongroups[regionlist[i]]
|
||||
if ( region ) {
|
||||
classes = classes + " uls-region-" + region;
|
||||
}
|
||||
}
|
||||
var $li = $( "<li>" )
|
||||
.data( "code", item.value )
|
||||
.addClass( classes )
|
||||
.data( "item.autocomplete", item )
|
||||
.append( $( "<a>" ).prop( 'href', '#' ). html( item.label ) )
|
||||
.appendTo( $target );
|
||||
|
||||
activeregion = $( '.uls-region.active' ).attr( 'id' );
|
||||
if ( activeregion && !$li.hasClass( activeregion ) ) {
|
||||
$li.hide();
|
||||
}
|
||||
|
||||
if ( options.clickhandler ) {
|
||||
$li.click( function() {
|
||||
options.clickhandler.call( this, item );
|
||||
|
||||
Reference in New Issue
Block a user