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() {