diff --git a/.eslintrc.js b/.eslintrc.js
index 398d64c84..21fb56088 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,4 +1,5 @@
 module.exports = {
+    root: true,
     env: {
         browser: true,
         commonjs: true,
diff --git a/extra/update-language-files/index.js b/extra/update-language-files/index.js
index ee7c0b5ea..519d82e1b 100644
--- a/extra/update-language-files/index.js
+++ b/extra/update-language-files/index.js
@@ -1,4 +1,4 @@
-// Need to use es6 to read language files
+// Need to use ES6 to read language files
 
 import fs from "fs";
 import path from "path";
@@ -14,6 +14,7 @@ const copyRecursiveSync = function (src, dest) {
     let exists = fs.existsSync(src);
     let stats = exists && fs.statSync(src);
     let isDirectory = exists && stats.isDirectory();
+
     if (isDirectory) {
         fs.mkdirSync(dest);
         fs.readdirSync(src).forEach(function (childItemName) {
@@ -24,8 +25,9 @@ const copyRecursiveSync = function (src, dest) {
         fs.copyFileSync(src, dest);
     }
 };
-console.log(process.argv)
-const baseLangCode = process.argv[2] || "zh-HK";
+
+console.log("Arguments: ", process.argv)
+const baseLangCode = process.argv[2] || "en";
 console.log("Base Lang: " + baseLangCode);
 fs.rmdirSync("./languages", { recursive: true });
 copyRecursiveSync("../../src/languages", "./languages");
@@ -33,46 +35,50 @@ copyRecursiveSync("../../src/languages", "./languages");
 const en = (await import("./languages/en.js")).default;
 const baseLang = (await import(`./languages/${baseLangCode}.js`)).default;
 const files = fs.readdirSync("./languages");
-console.log(files);
+console.log("Files: ", files);
+
 for (const file of files) {
-    if (file.endsWith(".js")) {
-        console.log("Processing " + file);
-        const lang = await import("./languages/" + file);
+    if (!file.endsWith(".js")) {
+        console.log("Skipping " + file)
+        continue;
+    }
 
-        let obj;
+    console.log("Processing " + file);
+    const lang = await import("./languages/" + file);
 
-        if (lang.default) {
-            console.log("is js module");
-            obj = lang.default;
-        } else {
-            console.log("empty file");
-            obj = {
-                languageName: "<Your Language name in your language (not in English)>"
-            };
-        }
-
-        // En first
-        for (const key in en) {
-            if (! obj[key]) {
-                obj[key] = en[key];
-            }
+    let obj;
+
+    if (lang.default) {
+        obj = lang.default;
+    } else {
+        console.log("Empty file");
+        obj = {
+            languageName: "<Your Language name in your language (not in English)>"
+        };
+    }
+
+    // En first
+    for (const key in en) {
+        if (! obj[key]) {
+            obj[key] = en[key];
         }
+    }
 
+    if (baseLang !== en) {
         // Base second
         for (const key in baseLang) {
             if (! obj[key]) {
                 obj[key] = key;
             }
         }
-
-        const code = "export default " + util.inspect(obj, {
-            depth: null,
-        });
-
-        fs.writeFileSync(`../../src/languages/${file}`, code);
-
     }
+
+    const code = "export default " + util.inspect(obj, {
+        depth: null,
+    });
+
+    fs.writeFileSync(`../../src/languages/${file}`, code);
 }
 
 fs.rmdirSync("./languages", { recursive: true });
-console.log("Done, fix the format by eslint now");
+console.log("Done. Fixing formatting by ESLint...");
diff --git a/package.json b/package.json
index 8d9c88fc1..d768063a0 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,8 @@
         "test-install-script-ubuntu": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/ubuntu.dockerfile .",
         "test-install-script-ubuntu1604": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/ubuntu1604.dockerfile .",
         "simple-dns-server": "node extra/simple-dns-server.js",
-        "update-language-files": "cd extra/update-language-files && node index.js %npm_config_base_lang% && eslint ../../src/languages/**.js --fix"
+        "update-language-files_old": "cd extra/update-language-files && node index.js %npm_config_base_lang% && eslint ../../src/languages/**.js --fix",
+        "update-language-files": "cd extra/update-language-files && node index.js && eslint ../../src/languages/**.js --fix"
     },
     "dependencies": {
         "@fortawesome/fontawesome-svg-core": "^1.2.36",
diff --git a/src/languages/README.md b/src/languages/README.md
index d27e0e7eb..7a3ed0602 100644
--- a/src/languages/README.md
+++ b/src/languages/README.md
@@ -1,8 +1,8 @@
 # How to translate
 
 1. Fork this repo.
-2. Create a language file. (e.g. `zh-TW.js`) The filename must be ISO language code: http://www.lingoes.net/en/translator/langcode.htm
-3. `npm run update-language-files --base-lang=de-DE`
+2. Create a language file (e.g. `zh-TW.js`). The filename must be ISO language code: http://www.lingoes.net/en/translator/langcode.htm
+3. `npm run update-language-files --base-lang=en`
 4. Your language file should be filled in. You can translate now.
 5. Translate `src/pages/Settings.vue` (search for a `Confirm` component with `rel="confirmDisableAuth"`).
 6. Import your language file in `src/i18n.js` and add it to `languageList` constant.
diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js
index 008dbbc5f..d3a46ab75 100644
--- a/src/languages/de-DE.js
+++ b/src/languages/de-DE.js
@@ -113,9 +113,6 @@ export default {
     "Create your admin account": "Erstelle dein Admin Konto",
     "Repeat Password": "Wiederhole das Passwort",
     "Resource Record Type": "Resource Record Type",
-    "Export": "Export",
-    "Import": "Import",
-    "Import/Export Backup": "Import/Export Backup",
     Export: "Export",
     Import: "Import",
     respTime: "Antw. Zeit (ms)",
@@ -133,8 +130,8 @@ export default {
     "Clear all statistics": "Lösche alle Statistiken",
     importHandleDescription: "Wähle 'Vorhandene überspringen' aus, wenn jeder Monitor oder Benachrichtigung mit demselben Namen übersprungen werden soll. 'Überschreiben' löscht jeden vorhandenen Monitor sowie Benachrichtigungen.",
     "Skip existing": "Vorhandene überspringen",
-    "Overwrite": "Überschreiben",
-    "Options": "Optionen",
+    Overwrite: "Überschreiben",
+    Options: "Optionen",
     confirmImportMsg: "Möchtest du das Backup wirklich importieren? Bitte stelle sicher, dass die richtige Import Option ausgewählt ist.",
     "Keep both": "Beide behalten",
     twoFAVerifyLabel: "Bitte trage deinen Token ein um zu verifizieren das 2FA funktioniert",
@@ -151,7 +148,6 @@ export default {
     Inactive: "Inaktiv",
     Token: "Token",
     "Show URI": "URI Anzeigen",
-    "Clear all statistics": "Lösche alle Statistiken",
     Tags: "Tags",
     "Add New below or Select...": "Füge neuen hinzu oder wähle aus...",
     "Tag with this name already exist.": "Ein Tag mit dem Namen existiert bereits.",
diff --git a/src/languages/en.js b/src/languages/en.js
index 025f002f0..1971f6f6d 100644
--- a/src/languages/en.js
+++ b/src/languages/en.js
@@ -139,8 +139,8 @@ export default {
     alertWrongFileType: "Please select a JSON file.",
     "Clear all statistics": "Clear all Statistics",
     "Skip existing": "Skip existing",
-    "Overwrite": "Overwrite",
-    "Options": "Options",
+    Overwrite: "Overwrite",
+    Options: "Options",
     "Keep both": "Keep both",
     "Verify Token": "Verify Token",
     "Setup 2FA": "Setup 2FA",
@@ -152,7 +152,6 @@ export default {
     Inactive: "Inactive",
     Token: "Token",
     "Show URI": "Show URI",
-    "Clear all statistics": "Clear all Statistics",
     Tags: "Tags",
     "Add New below or Select...": "Add New below or Select...",
     "Tag with this name already exist.": "Tag with this name already exist.",
diff --git a/src/languages/it-IT.js b/src/languages/it-IT.js
index 6362f0143..bbd2d3ad1 100644
--- a/src/languages/it-IT.js
+++ b/src/languages/it-IT.js
@@ -115,7 +115,6 @@ export default {
     "Last Result": "Ultimo risultato",
     "Create your admin account": "Crea l'account amministratore",
     "Repeat Password": "Ripeti Password",
-    "Import/Export Backup": "Importa/Esporta Backup",
     Export: "Esporta",
     Import: "Importa",
     respTime: "Tempo di Risposta (ms)",
diff --git a/src/languages/nl-NL.js b/src/languages/nl-NL.js
index 00dc41501..546e6dbd4 100644
--- a/src/languages/nl-NL.js
+++ b/src/languages/nl-NL.js
@@ -115,7 +115,6 @@ export default {
     "Last Result": "Laatste resultaat",
     "Create your admin account": "Maak uw beheerdersaccount aan",
     "Repeat Password": "Herhaal wachtwoord",
-    "Import/Export Backup": "Backup importeren/exporteren",
     Export: "Exporteren",
     Import: "Importeren",
     respTime: "resp. tijd (ms)",
diff --git a/src/languages/tr-TR.js b/src/languages/tr-TR.js
index e05af23e3..b62e289fc 100644
--- a/src/languages/tr-TR.js
+++ b/src/languages/tr-TR.js
@@ -116,5 +116,5 @@ export default {
     "Clear Data": "Verileri Temizle",
     Events: "Olaylar",
     Heartbeats: "Sağlık Durumları",
-    "Auto Get": "Otomatik Al"
+    "Auto Get": "Otomatik Al",
 }
diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js
index f3e55fc8c..c09a824da 100644
--- a/src/languages/zh-CN.js
+++ b/src/languages/zh-CN.js
@@ -120,7 +120,6 @@ export default {
     enableDefaultNotificationDescription: "新的监控项将默认启用,你也可以在每个监控项中分别设置",
     "Default enabled": "默认开启",
     "Also apply to existing monitors": "应用到所有监控项",
-    "Import/Export Backup": "导入/导出备份",
     Export: "导出",
     Import: "导入",
     backupDescription: "你可以将所有的监控项和消息通知备份到一个 JSON 文件中",
diff --git a/src/languages/zh-HK.js b/src/languages/zh-HK.js
index 50959ca87..1a4ae5a6c 100644
--- a/src/languages/zh-HK.js
+++ b/src/languages/zh-HK.js
@@ -120,7 +120,6 @@ export default {
     enableDefaultNotificationDescription: "新增監測器時這個通知會預設啟用,當然每個監測器亦可分別控制開關。",
     "Default enabled": "預設通知",
     "Also apply to existing monitors": "同時取用至目前所有監測器",
-    "Import/Export Backup": "匯入/匯出 備份",
     Export: "匯出",
     Import: "匯入",
     backupDescription: "您可以備份所有監測器及所有通知。",