Merge branch 'master' of github.com:wikimedia/jquery.uls
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,5 +1,6 @@
|
||||
*~
|
||||
.*.swp
|
||||
.idea
|
||||
*.kate-swp
|
||||
*.bak
|
||||
/node_modules
|
||||
|
||||
2
.jshintignore
Normal file
2
.jshintignore
Normal file
@@ -0,0 +1,2 @@
|
||||
grunt.js
|
||||
src\jquery.uls.data.js
|
||||
40
.jshintrc
Normal file
40
.jshintrc
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
/* Common */
|
||||
|
||||
// Enforcing
|
||||
"camelcase": true,
|
||||
"curly": true,
|
||||
"eqeqeq": true,
|
||||
"immed": true,
|
||||
"latedef": true,
|
||||
"newcap": true,
|
||||
"noarg": true,
|
||||
"noempty": true,
|
||||
"nonew": true,
|
||||
"quotmark": "single",
|
||||
"trailing": true,
|
||||
"undef": true,
|
||||
"unused": true,
|
||||
// Legacy
|
||||
"onevar": true,
|
||||
|
||||
/* Local */
|
||||
|
||||
// Enforcing
|
||||
"bitwise": true,
|
||||
"forin": false,
|
||||
"regexp": false,
|
||||
"strict": true,
|
||||
// Relaxing
|
||||
"laxbreak": true,
|
||||
"smarttabs": true,
|
||||
"multistr": true,
|
||||
// Environment
|
||||
"browser": true,
|
||||
|
||||
"predef": [
|
||||
"_",
|
||||
"jQuery",
|
||||
"QUnit"
|
||||
]
|
||||
}
|
||||
@@ -396,6 +396,7 @@ languages:
|
||||
sli: [Latn, [EU], Schläsch]
|
||||
slr: [Latn, [AS], Salırça]
|
||||
sly: [Latn, [AS], Bahasa Selayar]
|
||||
syc: [Syrc, [ME], ܣܘܪܝܝܐ]
|
||||
sm: [Latn, [PA], Gagana Samoa]
|
||||
sma: [Latn, [EU], åarjelsaemien]
|
||||
smj: [Latn, [EU], julevsámegiella]
|
||||
@@ -475,7 +476,7 @@ languages:
|
||||
war: [Latn, [AS], Winaray]
|
||||
wls: [Latn, [PA], "Faka'uvea"]
|
||||
wo: [Latn, [AF], Wolof]
|
||||
wuu: [Hans, [EU], 吴语]
|
||||
wuu: [Hans, [AS], 吴语]
|
||||
xal: [Cyrl, [EU], хальмг]
|
||||
xh: [Latn, [AF], isiXhosa]
|
||||
xmf: [Geor, [EU], მარგალური]
|
||||
@@ -544,6 +545,8 @@ scriptgroups:
|
||||
Mongolian: [Mong]
|
||||
SignWriting: [Sgnw]
|
||||
NativeAmerican: [Cher, Cans]
|
||||
# Undetermined script
|
||||
Special: [Zyyy]
|
||||
|
||||
rtlscripts:
|
||||
[Arab, Hebr, Syrc, Nkoo, Thaa]
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
},
|
||||
"uls-select-language": "Keele valimine",
|
||||
"uls-region-WW": "Kogu maailm",
|
||||
"uls-region-SP": "Erijuhud",
|
||||
"uls-region-AM": "Ameerika",
|
||||
"uls-region-AF": "Aafrika",
|
||||
"uls-region-EU": "Euroopa",
|
||||
|
||||
21
i18n/fur.json
Normal file
21
i18n/fur.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Klenje"
|
||||
]
|
||||
},
|
||||
"uls-select-language": "Siel\u00e7 la lenghe",
|
||||
"uls-region-WW": "Dut il mont",
|
||||
"uls-region-SP": "Speci\u00e2l",
|
||||
"uls-region-AM": "Americhe",
|
||||
"uls-region-AF": "Afriche",
|
||||
"uls-region-EU": "Europe",
|
||||
"uls-region-AS": "Asie",
|
||||
"uls-region-ME": "Medi Orient",
|
||||
"uls-region-PA": "Pacjific",
|
||||
"uls-no-results-found": "Nissun risult\u00e2t",
|
||||
"uls-common-languages": "Lenghis comunis",
|
||||
"uls-no-results-suggestion-title": "Tu puedis jessi interess\u00e2t a:",
|
||||
"uls-search-help": "Tu pues cir\u00ee par non de lenghe, non dal alfabet, codis ISO de lenghe o tu puedis cir\u00ee intune regjon:",
|
||||
"uls-search-placeholder": "Ricercje de lenghe"
|
||||
}
|
||||
@@ -2,11 +2,13 @@
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Harsh4101991",
|
||||
"KartikMistry",
|
||||
"Santhosh.thottingal"
|
||||
]
|
||||
},
|
||||
"uls-select-language": "\u0aad\u0abe\u0ab7\u0abe \u0aaa\u0ab8\u0a82\u0aa6 \u0a95\u0ab0\u0acb",
|
||||
"uls-region-WW": "\u0ab5\u0abf\u0ab6\u0acd\u0ab5\u0aad\u0ab0\u0aae\u0abe\u0a82",
|
||||
"uls-region-SP": "\u0a96\u0abe\u0ab8",
|
||||
"uls-region-AM": "\u0a85\u0aae\u0ac7\u0ab0\u0abf\u0a95\u0abe",
|
||||
"uls-region-AF": "\u0a86\u0aab\u0acd\u0ab0\u0abf\u0a95\u0abe",
|
||||
"uls-region-EU": "\u0aaf\u0ac1\u0ab0\u0acb\u0aaa",
|
||||
|
||||
21
i18n/hak.json
Normal file
21
i18n/hak.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Jetlag"
|
||||
]
|
||||
},
|
||||
"uls-select-language": "\u9078\u64c7\u8a9e\u8a00",
|
||||
"uls-region-WW": "\u5168\u4e16\u754c",
|
||||
"uls-region-SP": "\u7279\u5225",
|
||||
"uls-region-AM": "\u7f8e\u6d32",
|
||||
"uls-region-AF": "\u975e\u6d32",
|
||||
"uls-region-EU": "\u6b50\u6d32",
|
||||
"uls-region-AS": "\u4e9e\u6d32",
|
||||
"uls-region-ME": "\u4e2d\u6771",
|
||||
"uls-region-PA": "\u592a\u5e73\u6d0b",
|
||||
"uls-no-results-found": "\u5c0b\u6bcb\u5230\u4efb\u4f55\u7d50\u679c",
|
||||
"uls-common-languages": "\u5e38\u7528\u8a9e\u8a00",
|
||||
"uls-no-results-suggestion-title": "\u723e\u53ef\u80fd\u611f\u8208\u8da3\uff1a",
|
||||
"uls-search-help": "\u723e\u53ef\u4ee5\u6309\u8a9e\u8a00\u540d\u7a31\u3001\u7a0b\u5f0f\u78bc\u540d\u7a31\u3001\u8a9e\u8a00ISO\u4ee3\u78bc\u641c\u7d22\uff0c\u4e5f\u53ef\u4ee5\u6309\u5340\u57df\u700f\u89bd\uff1a",
|
||||
"uls-search-placeholder": "\u8a9e\u8a00\u641c\u7d22"
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"IRTC1015",
|
||||
"\uc544\ub77c"
|
||||
]
|
||||
},
|
||||
@@ -14,7 +15,7 @@
|
||||
"uls-region-ME": "\uc911\ub3d9",
|
||||
"uls-region-PA": "\ud0dc\ud3c9\uc591",
|
||||
"uls-no-results-found": "\uacb0\uacfc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4",
|
||||
"uls-common-languages": "\uacf5\uc6a9\uc5b4",
|
||||
"uls-common-languages": "\uc790\uc8fc \uc0ac\uc6a9\ud558\ub294 \uc5b8\uc5b4",
|
||||
"uls-no-results-suggestion-title": "\uc774\uac83\uc744 \ucc3e\uc73c\uc168\ub098\uc694:",
|
||||
"uls-search-help": "\uc5b8\uc5b4 \uc774\ub984, \ubb38\uc790 \uccb4\uacc4 \uc774\ub984, \uc5b8\uc5b4\uc758 ISO \ucf54\ub4dc\ub85c \ucc3e\uc744 \uc218 \uc788\uc73c\uba70 \uc9c0\uc5ed\ubcc4\ub85c \ucc3e\uc544\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4:",
|
||||
"uls-search-placeholder": "\uc5b8\uc5b4 \ucc3e\uae30"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"uls-region-EU": "\u0415\u0432\u0440\u043e\u043f\u0430",
|
||||
"uls-region-AS": "\u0410\u0437\u0438\u0458\u0430",
|
||||
"uls-region-ME": "\u0411\u043b\u0438\u0437\u043e\u043a \u0418\u0441\u0442\u043e\u043a",
|
||||
"uls-region-PA": "\u041f\u0430\u0446\u0438\u0444\u0438\u043a",
|
||||
"uls-region-PA": "\u041e\u043a\u0435\u0430\u043d\u0438\u0458\u0430",
|
||||
"uls-no-results-found": "\u041d\u0435 \u043f\u0440\u043e\u043d\u0430\u0458\u0434\u043e\u0432 \u043d\u0438\u0448\u0442\u043e",
|
||||
"uls-common-languages": "\u041f\u043e\u0437\u0430\u0441\u0442\u0430\u043f\u0435\u043d\u0438 \u0458\u0430\u0437\u0438\u0446\u0438",
|
||||
"uls-no-results-suggestion-title": "\u041c\u043e\u0436\u0435 \u0434\u0430 \u0432\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0438\u0440\u0430\u0430\u0442:",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Praveenp",
|
||||
"Santhosh.thottingal"
|
||||
]
|
||||
},
|
||||
@@ -15,7 +16,7 @@
|
||||
"uls-region-PA": "\u0d2a\u0d38\u0d2b\u0d3f\u0d15\u0d4d",
|
||||
"uls-no-results-found": "\u0d12\u0d28\u0d4d\u0d28\u0d41\u0d02 \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d3e\u0d28\u0d3e\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
|
||||
"uls-common-languages": "\u0d38\u0d3e\u0d27\u0d3e\u0d30\u0d23 \u0d2d\u0d3e\u0d37\u0d15\u0d7e",
|
||||
"uls-no-results-suggestion-title": "\u0d12\u0d30\u0d41 \u0d2a\u0d15\u0d4d\u0d37\u0d47 \u0d07\u0d24\u0d3e\u0d2f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d02 \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d24\u0d3f\u0d30\u0d1e\u0d4d\u0d1e\u0d24\u0d4d:",
|
||||
"uls-search-help": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d2d\u0d3e\u0d37\u0d2f\u0d41\u0d1f\u0d46 \u0d2a\u0d47\u0d30\u0d4d, ISO 639 \u0d15\u0d4b\u0d21\u0d4d, \u0d32\u0d3f\u0d2a\u0d3f\u0d2f\u0d41\u0d1f\u0d46 \u0d2a\u0d47\u0d30\u0d4d \u0d0e\u0d28\u0d4d\u0d28\u0d3f\u0d35 \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d24\u0d3f\u0d30\u0d2f\u0d3e\u0d02. \u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d08 \u0d2e\u0d47\u0d16\u0d32\u0d15\u0d33\u0d3f\u0d7d \u0d24\u0d3f\u0d30\u0d2f\u0d3e\u0d02:",
|
||||
"uls-no-results-suggestion-title": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d3e\u0d35\u0d36\u0d4d\u0d2f\u0d02 \u0d07\u0d24\u0d3e\u0d2f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d02:",
|
||||
"uls-search-help": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d2d\u0d3e\u0d37\u0d2f\u0d41\u0d1f\u0d46 \u0d2a\u0d47\u0d30\u0d4d, ISO 639 \u0d15\u0d4b\u0d21\u0d4d, \u0d32\u0d3f\u0d2a\u0d3f\u0d2f\u0d41\u0d1f\u0d46 \u0d2a\u0d47\u0d30\u0d4d \u0d0e\u0d28\u0d4d\u0d28\u0d3f\u0d35 \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d24\u0d3f\u0d30\u0d2f\u0d3e\u0d02. \u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d08 \u0d2e\u0d47\u0d16\u0d32\u0d15\u0d33\u0d3f\u0d7d \u0d24\u0d3f\u0d30\u0d2f\u0d3e\u0d02:",
|
||||
"uls-search-placeholder": "\u0d2d\u0d3e\u0d37 \u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15"
|
||||
}
|
||||
21
i18n/ps.json
Normal file
21
i18n/ps.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Ahmed-Najib-Biabani-Ibrahimkhel"
|
||||
]
|
||||
},
|
||||
"uls-select-language": "\u0698\u0628\u0647 \u067c\u0627\u06a9\u0644",
|
||||
"uls-region-WW": "\u0646\u0693\u06d0\u0648\u0627\u0644",
|
||||
"uls-region-SP": "\u0681\u0627\u0646\u06ab\u0693\u06cc",
|
||||
"uls-region-AM": "\u0627\u0645\u0631\u064a\u06a9\u0627",
|
||||
"uls-region-AF": "\u0627\u0641\u0631\u064a\u0642\u0627",
|
||||
"uls-region-EU": "\u0627\u0631\u0648\u067e\u0627",
|
||||
"uls-region-AS": "\u0622\u0633\u064a\u0627",
|
||||
"uls-region-ME": "\u0645\u0646\u0681\u0646\u06cc \u062e\u062a\u064a\u0681",
|
||||
"uls-region-PA": "\u063a\u0644\u06cc \u0633\u0645\u0646\u062f\u0631",
|
||||
"uls-no-results-found": "\u067e\u0627\u064a\u0644\u06d0 \u0648 \u0646\u0647 \u0645\u0648\u0646\u062f\u0644 \u0634\u0648\u06d0",
|
||||
"uls-common-languages": "\u062f\u0648\u062f\u06d0 \u0698\u0628\u06d0",
|
||||
"uls-no-results-suggestion-title": "\u06a9\u06d0\u062f\u0627\u06cc \u0634\u064a \u062a\u0627\u0633\u06d0 \u064a\u06d0 \u0644\u06d0\u0648\u0627\u0644\u0647 \u0627\u0648\u0633\u06cd:",
|
||||
"uls-search-help": "\u062a\u0627\u0633\u06d0 \u062f \u0698\u0628\u06d0 \u062f \u0646\u0648\u0645 \u0644\u0647 \u0645\u062e\u06d0\u060c \u062f \u0633\u06a9\u0631\u06d0\u067e\u067c \u0646\u0648\u0645\u060c \u062f \u0698\u0628\u06d0 \u062f ISO \u06a9\u0648\u0689 \u0644\u0647 \u0645\u062e\u06d0 \u0627\u0648 \u064a\u0627 \u0647\u0645 \u062f \u0633\u064a\u0645\u06d0 \u0644\u0647 \u0645\u062e\u06d0 \u067e\u0644\u067c\u0646\u06d0 \u06a9\u0693\u0644\u06cc \u0634\u06cc:",
|
||||
"uls-search-placeholder": "\u062f \u0698\u0628\u06d0 \u067e\u0644\u067c\u0646\u0647"
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
},
|
||||
"uls-select-language": "\u0c2d\u0c3e\u0c37\u0c28\u0c41 \u0c0e\u0c02\u0c1a\u0c41\u0c15\u0c4b\u0c02\u0c21\u0c3f",
|
||||
"uls-region-WW": "\u0c2a\u0c4d\u0c30\u0c2a\u0c02\u0c1a\u0c35\u0c4d\u0c2f\u0c3e\u0c2a\u0c4d\u0c24\u0c02",
|
||||
"uls-region-SP": "\u0c2a\u0c4d\u0c30\u0c24\u0c4d\u0c2f\u0c47\u0c15\u0c02",
|
||||
"uls-region-AM": "\u0c05\u0c2e\u0c46\u0c30\u0c3f\u0c15\u0c3e",
|
||||
"uls-region-AF": "\u0c06\u0c2b\u0c4d\u0c30\u0c3f\u0c15\u0c3e",
|
||||
"uls-region-EU": "\u0c10\u0c30\u0c4b\u0c2a\u0c3e",
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Minh Nguyen"
|
||||
"Minh Nguyen",
|
||||
"Tuankiet65"
|
||||
]
|
||||
},
|
||||
"uls-select-language": "Ch\u1ecdn ng\u00f4n ng\u1eef",
|
||||
"uls-region-WW": "Kh\u1eafp th\u1ebf gi\u1edbi",
|
||||
"uls-region-WW": "To\u00e0n c\u1ea7u",
|
||||
"uls-region-SP": "\u0110\u1eb7c bi\u1ec7t",
|
||||
"uls-region-AM": "Ch\u00e2u M\u1ef9",
|
||||
"uls-region-AF": "Ch\u00e2u Phi",
|
||||
@@ -15,7 +16,7 @@
|
||||
"uls-region-PA": "Ch\u00e2u \u0110\u1ea1i D\u01b0\u01a1ng",
|
||||
"uls-no-results-found": "Kh\u00f4ng t\u00ecm th\u1ea5y k\u1ebft qu\u1ea3",
|
||||
"uls-common-languages": "Ng\u00f4n ng\u1eef th\u00f4ng d\u1ee5ng",
|
||||
"uls-no-results-suggestion-title": "B\u1ea1n c\u00f3 th\u1ec3 mu\u1ed1n:",
|
||||
"uls-no-results-suggestion-title": "B\u1ea1n c\u00f3 th\u1ec3 quan t\u00e2m:",
|
||||
"uls-search-help": "B\u1ea1n c\u00f3 th\u1ec3 t\u00ecm ki\u1ebfm theo t\u00ean ng\u00f4n ng\u1eef, t\u00ean h\u1ec7 th\u1ed1ng ch\u1eef vi\u1ebft, hay m\u00e3 ISO c\u1ee7a ng\u00f4n ng\u1eef ho\u1eb7c duy\u1ec7t theo khu v\u1ef1c:",
|
||||
"uls-search-placeholder": "T\u00ecm ki\u1ebfm ng\u00f4n ng\u1eef"
|
||||
}
|
||||
@@ -1,21 +1,22 @@
|
||||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Xiaomingyan",
|
||||
"Yfdyh000"
|
||||
]
|
||||
},
|
||||
"uls-select-language": "\u9009\u62e9\u8bed\u8a00",
|
||||
"uls-region-WW": "\u5168\u7403\u6027",
|
||||
"uls-region-SP": "\u7279\u6b8a",
|
||||
"uls-region-WW": "\u4e16\u754c\u6027",
|
||||
"uls-region-SP": "\u7279\u522b",
|
||||
"uls-region-AM": "\u7f8e\u6d32",
|
||||
"uls-region-AF": "\u975e\u6d32",
|
||||
"uls-region-EU": "\u6b27\u6d32",
|
||||
"uls-region-AS": "\u4e9a\u6d32",
|
||||
"uls-region-ME": "\u4e2d\u4e1c",
|
||||
"uls-region-PA": "\u592a\u5e73\u6d0b",
|
||||
"uls-no-results-found": "\u672a\u627e\u5230\u4efb\u4f55\u7ed3\u679c",
|
||||
"uls-common-languages": "\u5e38\u7528\u8bed\u8a00",
|
||||
"uls-no-results-suggestion-title": "\u60a8\u53ef\u80fd\u611f\u5174\u8da3\u7684\uff1a",
|
||||
"uls-search-help": "\u60a8\u53ef\u4ee5\u7528\u8bed\u8a00\u540d\u79f0\u3001\u811a\u672c\u540d\u79f0\u3001\u8bed\u8a00ISO\u4ee3\u7801\u641c\u7d22\uff0c\u6216\u8005\u60a8\u4e5f\u53ef\u4ee5\u6309\u533a\u57df\u6d4f\u89c8\uff1a",
|
||||
"uls-no-results-found": "\u65e0\u641c\u7d22\u7ed3\u679c",
|
||||
"uls-common-languages": "\u5e38\u89c1\u8bed\u8a00",
|
||||
"uls-no-results-suggestion-title": "\u4f60\u53ef\u80fd\u611f\u5174\u8da3\uff1a",
|
||||
"uls-search-help": "\u4f60\u53ef\u4ee5\u6309\u8bed\u8a00\u540d\u79f0\u3001\u6587\u5b57\u540d\u79f0\u3001\u8bed\u8a00\u7684ISO\u4ee3\u7801\u641c\u7d22\uff0c\u6216\u6309\u5730\u533a\u6d4f\u89c8\uff1a",
|
||||
"uls-search-placeholder": "\u8bed\u8a00\u641c\u7d22"
|
||||
}
|
||||
@@ -21,9 +21,11 @@
|
||||
( function ( $ ) {
|
||||
'use strict';
|
||||
|
||||
var template, ULS;
|
||||
|
||||
// Region numbers in id attributes also appear in the langdb.
|
||||
/*jshint multistr:true */
|
||||
var template = '\
|
||||
template = '\
|
||||
<div class="grid uls-menu uls-wide"> \
|
||||
<div class="row"> \
|
||||
<span id="uls-close" class="icon-close"></span> \
|
||||
@@ -80,7 +82,7 @@
|
||||
/**
|
||||
* ULS Public class definition
|
||||
*/
|
||||
var ULS = function ( element, options ) {
|
||||
ULS = function ( element, options ) {
|
||||
this.$element = $( element );
|
||||
this.options = $.extend( {}, $.fn.uls.defaults, options );
|
||||
this.$menu = $( template );
|
||||
@@ -112,12 +114,33 @@
|
||||
ULS.prototype = {
|
||||
constructor: ULS,
|
||||
|
||||
/**
|
||||
* A "hook" that runs after the ULS constructor.
|
||||
* At this point it is not guaranteed that the ULS has its dimensions
|
||||
* and that the languages lists are initialized.
|
||||
*
|
||||
* To use it, pass a function as the onReady parameter
|
||||
* in the options when initializing ULS.
|
||||
*/
|
||||
ready: function () {
|
||||
if ( this.options.onReady ) {
|
||||
this.options.onReady.call( this );
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* A "hook" that runs after the ULS panel becomes visible
|
||||
* by using the show method.
|
||||
*
|
||||
* To use it, pass a function as the onVisible parameter
|
||||
* in the options when initializing ULS.
|
||||
*/
|
||||
visible: function () {
|
||||
if ( this.options.onVisible ) {
|
||||
this.options.onVisible.call( this );
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Calculate the position of ULS
|
||||
* Returns an object with top and left properties.
|
||||
@@ -137,11 +160,7 @@
|
||||
* Show the ULS window
|
||||
*/
|
||||
show: function () {
|
||||
var pos = this.position();
|
||||
this.$menu.css( {
|
||||
top: pos.top,
|
||||
left: '25%'
|
||||
} );
|
||||
this.$menu.css( this.position() );
|
||||
|
||||
if ( this.options.compact ) {
|
||||
this.$menu.addClass( 'uls-compact' );
|
||||
@@ -150,13 +169,15 @@
|
||||
if ( !this.initialized ) {
|
||||
$( 'body' ).prepend( this.$menu );
|
||||
this.i18n();
|
||||
|
||||
// Initialize with a full search.
|
||||
// This happens on first time click of uls trigger.
|
||||
this.defaultSearch();
|
||||
|
||||
this.initialized = true;
|
||||
}
|
||||
|
||||
// hide any other ULS visible
|
||||
// hide any other visible ULS
|
||||
$( '.uls-menu' ).hide();
|
||||
|
||||
this.$menu.show();
|
||||
@@ -165,6 +186,8 @@
|
||||
if ( !this.isMobile() ) {
|
||||
this.$languageFilter.focus();
|
||||
}
|
||||
|
||||
this.visible();
|
||||
},
|
||||
|
||||
i18n: function () {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -42,6 +42,11 @@
|
||||
return $.uls.data.getScript( target );
|
||||
}
|
||||
|
||||
if ( !$.uls.data.languages[language] ) {
|
||||
// Undetermined
|
||||
return 'Zyyy';
|
||||
}
|
||||
|
||||
return $.uls.data.languages[language][0];
|
||||
};
|
||||
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
(function ( $ ) {
|
||||
'use strict';
|
||||
|
||||
var LanguageFilter = function( element, options ) {
|
||||
var LanguageFilter, delay;
|
||||
|
||||
LanguageFilter = function( element, options ) {
|
||||
this.$element = $( element );
|
||||
this.options = $.extend( {}, $.fn.regionselector.defaults, options );
|
||||
this.$element.addClass( 'languagefilter' );
|
||||
@@ -37,7 +39,7 @@
|
||||
this.listen();
|
||||
};
|
||||
|
||||
var delay = ( function() {
|
||||
delay = ( function() {
|
||||
var timer = 0;
|
||||
|
||||
return function( callback, milliseconds ) {
|
||||
@@ -63,9 +65,11 @@
|
||||
},
|
||||
|
||||
keyup: function( e ) {
|
||||
var suggestion, query, languageFilter;
|
||||
|
||||
switch( e.keyCode ) {
|
||||
case 9: // Tab -> Autocomplete
|
||||
var suggestion = this.$suggestion.val();
|
||||
suggestion = this.$suggestion.val();
|
||||
|
||||
if ( suggestion && suggestion !== this.$element.val() ) {
|
||||
this.$element.val( suggestion );
|
||||
@@ -78,7 +82,7 @@
|
||||
break;
|
||||
}
|
||||
|
||||
var query = $.trim( this.$element.val() ).toLowerCase();
|
||||
query = $.trim( this.$element.val() ).toLowerCase();
|
||||
|
||||
if ( this.selectedLanguage ) {
|
||||
// this.selectLanguage will be populated from a matching search
|
||||
@@ -91,7 +95,7 @@
|
||||
|
||||
break;
|
||||
default:
|
||||
var languageFilter = this;
|
||||
languageFilter = this;
|
||||
|
||||
if ( e.which < 32 &&
|
||||
e.which !== 8 // Backspace
|
||||
@@ -155,14 +159,15 @@
|
||||
},
|
||||
|
||||
search: function() {
|
||||
var query = $.trim( this.$element.val() ),
|
||||
var languagesInScript,
|
||||
query = $.trim( this.$element.val() ),
|
||||
languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ),
|
||||
scriptGroup, langNum, langCode;
|
||||
|
||||
this.resultCount = 0;
|
||||
|
||||
for ( scriptGroup in languages ) {
|
||||
var languagesInScript = languages[scriptGroup];
|
||||
languagesInScript = languages[scriptGroup];
|
||||
|
||||
languagesInScript.sort( $.uls.data.sortByAutonym );
|
||||
|
||||
|
||||
@@ -22,8 +22,10 @@
|
||||
( function ( $ ) {
|
||||
'use strict';
|
||||
|
||||
var noResultsTemplate, LanguageCategoryDisplay;
|
||||
|
||||
/*jshint multistr:true */
|
||||
var noResultsTemplate = '\
|
||||
noResultsTemplate = '\
|
||||
<div class="twelve columns uls-no-results-view">\
|
||||
<h2 data-i18n="uls-no-results-found" class="eleven columns end offset-by-one uls-no-results-found-title">\
|
||||
No results found\
|
||||
@@ -47,7 +49,7 @@
|
||||
</div>';
|
||||
/*jshint multistr:false */
|
||||
|
||||
var LanguageCategoryDisplay = function ( element, options ) {
|
||||
LanguageCategoryDisplay = function ( element, options ) {
|
||||
this.$element = $( element );
|
||||
this.options = $.extend( {}, $.fn.lcd.defaults, options );
|
||||
this.$element.addClass( 'lcd' );
|
||||
@@ -74,7 +76,8 @@
|
||||
* @param region Optional region
|
||||
*/
|
||||
addToRegion: function ( langCode, region ) {
|
||||
var lcd = this,
|
||||
var i, regionCode, $li, $column, lastLanguage, lastScriptGroup, currentScriptGroup,
|
||||
lcd = this,
|
||||
language = lcd.options.languages[langCode],
|
||||
langName = $.uls.data.getAutonym( langCode ) || language || langCode,
|
||||
regions = [];
|
||||
@@ -90,10 +93,10 @@
|
||||
regions = [ 'WW' ];
|
||||
}
|
||||
|
||||
for ( var i = 0; i < regions.length; i++ ) {
|
||||
var regionCode = regions[i];
|
||||
for ( i = 0; i < regions.length; i++ ) {
|
||||
regionCode = regions[i];
|
||||
|
||||
var $li = $( '<li>' )
|
||||
$li = $( '<li>' )
|
||||
.data( 'code', langCode )
|
||||
.attr( {
|
||||
lang: langCode,
|
||||
@@ -104,12 +107,12 @@
|
||||
);
|
||||
|
||||
// Append the element to the column in the list
|
||||
var $column = lcd.getColumn( regionCode );
|
||||
var lastLanguage = $column.find( 'li:last' ).data( 'code' );
|
||||
$column = lcd.getColumn( regionCode );
|
||||
lastLanguage = $column.find( 'li:last' ).data( 'code' );
|
||||
|
||||
if ( lastLanguage ) {
|
||||
var lastScriptGroup = $.uls.data.getScriptGroupOfLanguage( lastLanguage ),
|
||||
currentScriptGroup = $.uls.data.getScriptGroupOfLanguage( langCode );
|
||||
lastScriptGroup = $.uls.data.getScriptGroupOfLanguage( lastLanguage );
|
||||
currentScriptGroup = $.uls.data.getScriptGroupOfLanguage( langCode );
|
||||
|
||||
if ( lastScriptGroup !== currentScriptGroup ) {
|
||||
if ( $column.find( 'li' ).length > 2 ) {
|
||||
@@ -172,7 +175,7 @@
|
||||
PA: 'Pacific'
|
||||
};
|
||||
|
||||
$.each( $.uls.data.regiongroups, function ( regionCode, regionIndex ) {
|
||||
$.each( $.uls.data.regiongroups, function ( regionCode ) {
|
||||
$section = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', regionCode );
|
||||
|
||||
$sectionTitle = $( '<h3 data-i18n="uls-region-' + regionCode + '">' )
|
||||
@@ -194,6 +197,9 @@
|
||||
},
|
||||
|
||||
quicklist: function () {
|
||||
var quickList, $quickListSection, $quickListSectionTitle, i,
|
||||
$column, langCode, language, langName, $li;
|
||||
|
||||
if ( $.isFunction( this.options.quickList ) ) {
|
||||
this.options.quickList = this.options.quickList();
|
||||
}
|
||||
@@ -203,24 +209,24 @@
|
||||
}
|
||||
|
||||
// Pick only the first elements, because we don't have room for more
|
||||
var quickList = this.options.quickList;
|
||||
quickList = this.options.quickList;
|
||||
quickList = quickList.slice( 0, 16 );
|
||||
quickList.sort( $.uls.data.sortByAutonym );
|
||||
|
||||
var $quickListSection = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' );
|
||||
var $quickListSectionTitle = $( '<h3 data-i18n="uls-common-languages">' )
|
||||
$quickListSection = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' );
|
||||
$quickListSectionTitle = $( '<h3 data-i18n="uls-common-languages">' )
|
||||
.addClass( 'eleven columns uls-lcd-region-section uls-lcd-region-title offset-by-one' )
|
||||
.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present
|
||||
$quickListSection.append( $quickListSectionTitle );
|
||||
this.$element.prepend( $quickListSection );
|
||||
this.regionDivs.quick = $quickListSection;
|
||||
|
||||
for ( var i = 0; i < quickList.length; i++) {
|
||||
var $column = this.getColumn( 'quick', i % 4 === 0 );
|
||||
var langCode = quickList[i];
|
||||
var language = this.options.languages[langCode];
|
||||
var langName = $.uls.data.getAutonym( langCode ) || language || langCode;
|
||||
var $li = $( '<li>' )
|
||||
for ( i = 0; i < quickList.length; i++) {
|
||||
$column = this.getColumn( 'quick', i % 4 === 0 );
|
||||
langCode = quickList[i];
|
||||
language = this.options.languages[langCode];
|
||||
langName = $.uls.data.getAutonym( langCode ) || language || langCode;
|
||||
$li = $( '<li>' )
|
||||
.data( 'code', langCode )
|
||||
.attr( {
|
||||
lang: langCode,
|
||||
|
||||
@@ -22,13 +22,15 @@
|
||||
|
||||
/* RegionSelector plugin definition */
|
||||
|
||||
var RegionSelector, delay;
|
||||
|
||||
/**
|
||||
* Region selector is a language selector based on regions.
|
||||
* Usage: $( 'jqueryselector' ).regionselector( options );
|
||||
* The attached element should have data-regiongroup attribute
|
||||
* that defines the regiongroup for the selector.
|
||||
*/
|
||||
var RegionSelector = function ( element, options ) {
|
||||
RegionSelector = function ( element, options ) {
|
||||
this.$element = $( element );
|
||||
this.options = $.extend( {}, $.fn.regionselector.defaults, options );
|
||||
this.$element.addClass( 'regionselector' );
|
||||
@@ -52,10 +54,10 @@
|
||||
},
|
||||
|
||||
test: function ( langCode ) {
|
||||
var langRegions = $.uls.data.getRegions( langCode ),
|
||||
region;
|
||||
var region, i,
|
||||
langRegions = $.uls.data.getRegions( langCode );
|
||||
|
||||
for ( var i = 0; i < this.regions.length; i++ ) {
|
||||
for ( i = 0; i < this.regions.length; i++ ) {
|
||||
region = this.regions[i];
|
||||
|
||||
if ( $.inArray( region, langRegions ) >= 0 ) {
|
||||
@@ -68,10 +70,12 @@
|
||||
},
|
||||
|
||||
show: function () {
|
||||
var result, languagesByScriptGroup, scriptGroup, languages, i;
|
||||
|
||||
if ( this.cache ) {
|
||||
// If the result cache is present, render the results from there.
|
||||
//noinspection JSUnusedAssignment
|
||||
var result = null;
|
||||
result = null;
|
||||
|
||||
for ( result in this.cache ) {
|
||||
this.render( result, this.cache[result] );
|
||||
@@ -79,13 +83,13 @@
|
||||
} else {
|
||||
this.cache = {};
|
||||
// Get the languages grouped by script group
|
||||
var languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );
|
||||
languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );
|
||||
|
||||
// Make sure that we go by the original order
|
||||
// of script groups
|
||||
for ( var scriptGroup in $.uls.data.scriptgroups ) {
|
||||
for ( scriptGroup in $.uls.data.scriptgroups ) {
|
||||
// Get the languages for the script group
|
||||
var languages = languagesByScriptGroup[scriptGroup];
|
||||
languages = languagesByScriptGroup[scriptGroup];
|
||||
|
||||
// It's possible that some script groups are missing
|
||||
if ( !languages ) {
|
||||
@@ -95,7 +99,7 @@
|
||||
// Sort it based on autonym
|
||||
languages.sort( $.uls.data.sortByAutonym );
|
||||
|
||||
for ( var i = 0; i < languages.length; i++ ) {
|
||||
for ( i = 0; i < languages.length; i++ ) {
|
||||
// Check whether it belongs to the region
|
||||
this.test( languages[i] );
|
||||
}
|
||||
@@ -145,7 +149,7 @@
|
||||
this.options.$target.$element.bind( 'scrollend', $.proxy( this.next, this ) );
|
||||
},
|
||||
|
||||
click: function ( e ) {
|
||||
click: function () {
|
||||
// Don't do anything if a region is selected already
|
||||
if ( this.$element.hasClass( 'active' ) ) {
|
||||
return;
|
||||
@@ -191,7 +195,7 @@
|
||||
|
||||
$.fn.regionselector.Constructor = RegionSelector;
|
||||
|
||||
var delay = ( function () {
|
||||
delay = ( function () {
|
||||
var timer = 0;
|
||||
return function ( callback, milliseconds ) {
|
||||
clearTimeout( timer );
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<title>jQuery ULS Test Suite</title>
|
||||
|
||||
<!-- External libs -->
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" ></script>
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
|
||||
|
||||
<!-- Source of our libs -->
|
||||
<script src="../src/jquery.uls.data.js"></script>
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
assert.ok( $.fn.uls, '$.fn.uls is defined' );
|
||||
} );
|
||||
|
||||
test( '-- $.uls.data testing', 46, function ( assert ) {
|
||||
test( '-- $.uls.data testing', 47, function ( assert ) {
|
||||
var autonyms,
|
||||
allLanguagesByRegionAndScript,
|
||||
languagesInEU,
|
||||
@@ -141,6 +141,7 @@
|
||||
'The script of the Inupiaq language belongs to the NativeAmerican group.'
|
||||
);
|
||||
|
||||
assert.strictEqual( $.uls.data.getScript( 'no-such-language' ), 'Zyyy', 'A script for an unknown language is Zyyy - undetermined' );
|
||||
assert.strictEqual( $.uls.data.getScript( 'ii' ), 'Yiii', 'Correct script of the Yi language was selected' );
|
||||
assert.deepEqual( $.uls.data.getRegions( 'lzz' ), [
|
||||
'EU', 'ME'
|
||||
|
||||
Reference in New Issue
Block a user