blob: d240da1218333831719e8c5664f228b536b073b5 [file] [log] [blame]
AdriĆ bf3ff682014-07-19 20:32:17 +02001var isoLangs = {"af":{"name":"Afrikaans","nativeName":"Afrikaans"},"sq":{"name":"Albanian","nativeName":"Shqip"},"ar":{"name":"Arabic","nativeName":"\u0639\u0631\u0628\u064a"},"hy":{"name":"Armenian","nativeName":"\u0540\u0561\u0575\u0565\u0580\u0567\u0576"},"az":{"name":"Azerbaijani","nativeName":"\u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646 \u062f\u06cc\u0644\u06cc"},"eu":{"name":"Basque","nativeName":"Euskara"},"be":{"name":"Belarusian","nativeName":"\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f"},"bg":{"name":"Bulgarian","nativeName":"\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438"},"ca":{"name":"Catalan","nativeName":"Catal\u00e0"},"zh-CN":{"name":"Chinese (Simplified)","nativeName":"\u4e2d\u6587\u7b80\u4f53"},"zh-TW":{"name":"Chinese (Traditional)","nativeName":"\u4e2d\u6587\u7e41\u9ad4"},"hr":{"name":"Croatian","nativeName":"Hrvatski"},"cs":{"name":"Czech","nativeName":"\u010ce\u0161tina"},"da":{"name":"Danish","nativeName":"Dansk"},"nl":{"name":"Dutch","nativeName":"Nederlands"},"en":{"name":"English","nativeName":"English"},"et":{"name":"Estonian","nativeName":"Eesti keel"},"tl":{"name":"Filipino","nativeName":"Filipino"},"fi":{"name":"Finnish","nativeName":"Suomi"},"fr":{"name":"French","nativeName":"Fran\u00e7ais"},"gl":{"name":"Galician","nativeName":"Galego"},"ka":{"name":"Georgian","nativeName":"\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8"},"de":{"name":"German","nativeName":"Deutsch"},"el":{"name":"Greek","nativeName":"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac"},"ht":{"name":"Haitian Creole","nativeName":"Krey\u00f2l ayisyen"},"iw":{"name":"Hebrew","nativeName":"\u05e2\u05d1\u05e8\u05d9\u05ea"},"hi":{"name":"Hindi","nativeName":"\u0939\u093f\u0928\u094d\u0926\u0940"},"hu":{"name":"Hungarian","nativeName":"Magyar"},"is":{"name":"Icelandic","nativeName":"\u00cdslenska"},"id":{"name":"Indonesian","nativeName":"Bahasa Indonesia"},"ga":{"name":"Irish","nativeName":"Gaeilge"},"it":{"name":"Italian","nativeName":"Italiano"},"ja":{"name":"Japanese","nativeName":"\u65e5\u672c\u8a9e"},"ko":{"name":"Korean","nativeName":"\ud55c\uad6d\uc5b4"},"lv":{"name":"Latvian","nativeName":"Latvie\u0161u"},"lt":{"name":"Lithuanian","nativeName":"Lietuvi\u0173 kalba"},"mk":{"name":"Macedonian","nativeName":"\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438"},"ms":{"name":"Malay","nativeName":"Malay"},"mt":{"name":"Maltese","nativeName":"Malti"},"no":{"name":"Norwegian","nativeName":"Norsk"},"fa":{"name":"Persian","nativeName":"\u0641\u0627\u0631\u0633\u06cc"},"pl":{"name":"Polish","nativeName":"Polski"},"pt":{"name":"Portuguese","nativeName":"Portugu\u00eas"},"ro":{"name":"Romanian","nativeName":"Rom\u00e2n\u0103"},"ru":{"name":"Russian","nativeName":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439"},"sr":{"name":"Serbian","nativeName":"\u0421\u0440\u043f\u0441\u043a\u0438"},"sk":{"name":"Slovak","nativeName":"Sloven\u010dina"},"sl":{"name":"Slovenian","nativeName":"Slovensko"},"es":{"name":"Spanish","nativeName":"Espa\u00f1ol"},"sw":{"name":"Swahili","nativeName":"Kiswahili"},"sv":{"name":"Swedish","nativeName":"Svenska"},"th":{"name":"Thai","nativeName":"\u0e44\u0e17\u0e22"},"tr":{"name":"Turkish","nativeName":"T\u00fcrk\u00e7e"},"uk":{"name":"Ukrainian","nativeName":"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430"},"ur":{"name":"Urdu","nativeName":"\u0627\u0631\u062f\u0648"},"vi":{"name":"Vietnamese","nativeName":"Ti\u1ebfng Vi\u1ec7t"},"cy":{"name":"Welsh","nativeName":"Cymraeg"},"yi":{"name":"Yiddish","nativeName":"\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9"}};
2
3function $(selector) {
4 return document.querySelector(selector);
5}
6
7function $all(selector) {
8 return document.querySelectorAll(selector);
9}
10
11function isEmpty(obj) {
12 return Object.keys(obj).length === 0;
13}
14
15function init() {
16 $("#welcome").innerHTML = chrome.i18n.getMessage("options_welcome");
17 $("#introduction").innerHTML = chrome.i18n.getMessage("options_introduction");
18 $("#languageselectheader").innerHTML = chrome.i18n.getMessage("options_languageselectheader");
19 $("#otheroptionsheader").innerHTML = chrome.i18n.getMessage("options_otheroptionsheader");
20 $("#varioustabs_label").innerHTML = chrome.i18n.getMessage("options_tabsoption_1");
21 $("#uniquetab_label").innerHTML = chrome.i18n.getMessage("options_tabsoption_2");
22 $("#panel_label").innerHTML = chrome.i18n.getMessage("options_tabsoption_3");
23 chrome.storage.sync.get(null, function(items) {
24 if (isEmpty(items)) {
25 items = {'languages': {}, 'uniquetab': ''};
26 chrome.storage.sync.set({'languages': {}, 'uniquetab': ''});
27 }
28 if (items.uniquetab === "yep")
29 $("#uniquetab").checked = true;
30 if (items.uniquetab === "")
31 $("#varioustabs").checked = true;
32 if (items.uniquetab === "panel")
33 $("#panel").checked = true;
34 $("#panelsflag").addEventListener('click', function() { event.preventDefault(); chrome.tabs.create({url: 'chrome://flags/#enable-panels'}); });
35 $("#save").innerHTML = chrome.i18n.getMessage("options_savebutton");
36 $("#save").addEventListener('click', function() {
37 save_options();
38 });
39 var languages = items.languages;
40 for (var language in isoLangs) {
41 var el = document.createElement('div');
42 el.setAttribute('class','language');
43 el.setAttribute('id', 'cont-'+language);
44 $("#languages").appendChild(el);
45 var el2 = document.createElement('input');
46 el2.setAttribute('type','checkbox');
47 el2.setAttribute('id', language);
48 el2.setAttribute('name', language);
49 el2.setAttribute('data-language', language);
50 el.appendChild(el2);
51 var el3 = document.createElement('label');
52 el3.setAttribute('for', language);
53 el3.innerHTML = isoLangs[language]["name"]+" ("+isoLangs[language]["nativeName"]+")";
54 el.appendChild(el3);
55 }
56 if (!languages) {
57 return;
58 }
59 else {
60 var options = items.languages;
61 for (var language in options) {
62 document.getElementById(language).checked = true;
63 }
64 }
65 var languages_el = document.getElementById("languages");
66 });
67}
68
69function save_options() {
70 var languages = document.getElementById("languages");
71 var options = {"uniquetab": "", "languages": {}};
72
73 options.uniquetab = radio_selected("uniquetab");
74
75 for (var language in isoLangs) {
76 if ($("input[data-language='"+language+"']").checked) {
77 options.languages[language] = language;
78 }
79 }
80
81 chrome.storage.sync.set(options, function() {
82 var background = chrome.extension.getBackgroundPage();
83
84 background.translator_tab = false;
85 background.translator_window = false;
86 window.close();
87 });
88
89 // We don't need the following code because the background.js is already listening to changes in chrome.sync ;-) Yeeey!
90 //chrome.extension.getBackgroundPage().createmenus(JSON.stringify(options));
91}
92
93function toObject(arr) {
94 var rv = {};
95 for (var i = 0; i < arr.length; ++i)
96 if (arr[i] !== undefined) rv[i] = arr[i];
97 return rv;
98}
99
100function radio_selected(a) {
101 var elements = document.getElementsByName(a);
102
103 for (var i=0; i<elements.length; i++)
104 if (elements[i].checked) return elements[i].value;
105}
106
107window.addEventListener('load', init);