Proof of concept language database database

Change-Id: I5d6b9ff4ce46c8e2d48bf56ab08f093287672467
This commit is contained in:
Niklas Laxström
2012-06-22 09:53:12 +00:00
committed by Santhosh Thottingal
parent 2fd23fe2e0
commit 16d2b1c33d
7 changed files with 1495 additions and 8 deletions

View File

@@ -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
View 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
View 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

File diff suppressed because it is too large Load Diff

8
data/yaml2json.php Normal file
View 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 );

View File

@@ -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' );
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" );

View File

@@ -58,17 +58,34 @@ jQuery( function( $ ) {
}
} ); // /autocomplete
$( self ).data( "autocomplete" )._renderItem = function ( ul, item ) {
var $target = ul;
if ( options.$target ) {
$( self ).data( "autocomplete" )._renderItem = function ( $target, item ) {
var activeregion, classes, region, i, regionlist;
$target = options.$target;
} else {
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 );