Add new isoLangs and change isoLangs generation
- Add new isoLangs to src/js/common.js.
- Generated isoLangs now only have the first nativeName entry defined in
tools/langs/isoLangs.json (for instance, instead of "euskara, euskera"
now the generated nativeName only includes "euskara").
- In the options page, the languages in the select element when adding a
new language are ordered by language name. This change was needed
because now the generated isoLangs variable is ordered by key and not
by name.
Change-Id: Ic0c528b2e0382341700e2ac96cc61186471fe508
diff --git a/src/js/options.js b/src/js/options.js
index 0f79b2d..a639c56 100644
--- a/src/js/options.js
+++ b/src/js/options.js
@@ -20,15 +20,22 @@
function printListModal() {
$('#select_language').textContent = '';
var heysortable = sortable.toArray();
- for (var language in isoLangs) {
- if (!inArray(language, heysortable)) {
+ var languages = [];
+ for (var langCode of Object.keys(isoLangs)) {
+ var l = isoLangs[langCode];
+ l['code'] = langCode;
+ languages.push(l);
+ }
+
+ languages.sort((a, b) => a.name < b.name ? -1 : (a.name > b.name ? 1 : 0));
+ languages.forEach(language => {
+ if (!inArray(language['code'], heysortable)) {
var el = document.createElement('option');
- el.setAttribute('value', language);
- el.innerText = isoLangs[language]['name'] + ' (' +
- isoLangs[language]['nativeName'] + ')';
+ el.setAttribute('value', language['code']);
+ el.textContent = language['name'] + ' (' + language['nativeName'] + ')';
$('#select_language').appendChild(el);
}
- }
+ });
}
function init() {