about summary refs log tree commit diff stats
path: root/src/_locales
diff options
context:
space:
mode:
Diffstat (limited to 'src/_locales')
-rw-r--r--src/_locales/ar/messages.json586
-rw-r--r--src/_locales/de/messages.json586
-rw-r--r--src/_locales/en/messages.json591
3 files changed, 1763 insertions, 0 deletions
diff --git a/src/_locales/ar/messages.json b/src/_locales/ar/messages.json
new file mode 100644
index 00000000..50e627c5
--- /dev/null
+++ b/src/_locales/ar/messages.json
@@ -0,0 +1,586 @@
+{
+    "extensionName": {
+      "message": "LibRedirect",
+      "description": "name of the extension"
+    },
+
+    "extensionDescription": {
+      "message": "إضافة متصفح تعيد توجيه مواقع مشهورة إلى واجهات أمامية ذات تحترم الخصوصية",
+      "description": "description of the extension"
+    },
+
+    "switchInstance": {
+      "message": "تبديل المَثيل",
+      "description": "used in manifest.json as shortcut description"
+    },
+
+    "instance": {
+      "message": "المَثيل",
+      "description": "used in popup.html"
+    },
+
+    "settings": {
+      "message": "الإعدادات",
+      "description": "used in popup.html"
+    },
+
+    "libOptions": {
+      "message": "LibRedirect إعدادات",
+      "description": "used in general.html"
+    },
+
+    "general": {
+      "message": "العامة",
+      "description": "used in general.html"
+    },
+
+    "search": {
+      "message": "البحث",
+      "description": "used in general.html"
+    },
+
+    "translate": {
+      "message": "الترجمة",
+      "description": "used in general.html"
+    },
+
+    "maps": {
+      "message": "الخرائط",
+      "description": "used in general.html"
+    },
+
+    "sendFiles": {
+      "message": "إرسال الملفات",
+      "description": "used in general.html"
+    },
+
+    "youtube": {
+      "message": "يوتيوب",
+      "description": "used in general.html"
+    },
+
+    "instagram": {
+      "message": "إنستغرام",
+      "description": "used in general.html"
+    },
+
+    "twitter": {
+      "message": "تويتر",
+      "description": "used in general.html"
+    },
+
+    "reddit": {
+      "message": "ريديت",
+      "description": "used in general.html"
+    },
+
+    "tiktok": {
+      "message": "تيك توك",
+      "description": "used in general.html"
+    },
+
+    "ytmusic": {
+      "message": "يوتيوب ميوزيك",
+      "description": "used in general.html"
+    },
+
+    "imgur": {
+      "message": "إمجور",
+      "description": "used in general.html"
+    },
+
+    "pixiv": {
+      "message": "بكسيف",
+      "description": "used in general.html"
+    },
+
+    "wikipedia": {
+      "message": "ويكيبيديا",
+      "description": "used in general.html"
+    },
+
+    "peertube": {
+      "message": "PeerTube",
+      "description": "used in general.html"
+    },
+
+    "spotify": {
+      "message": "سبوتيفاي",
+      "description": "used in general.html"
+    },
+
+    "medium": {
+      "message": "ميديام",
+      "description": "used in general.html"
+    },
+
+    "tor": {
+      "message": "تور",
+      "description": "used in imgur.html"
+    },
+
+    "pixivMoe": {
+      "message": "pixiv萌え",
+      "description": "used in pixiv.html"
+    },
+
+    "theme": {
+      "message": "السمة",
+      "description": "used in general.html"
+    },
+
+    "system": {
+      "message": "النظام",
+      "description": "used in general.html"
+    },
+
+    "light": {
+      "message": "فاتح",
+      "description": "used in general.html"
+    },
+
+    "dark": {
+      "message": "داكن",
+      "description": "used in general.html"
+    },
+
+    "applyTheme": {
+      "message": "تطبيق السمة على الواجهات",
+      "description": "used in general.html"
+    },
+
+    "alwaysPref": {
+      "message": "استخدم المُثلاء المفضلين دائماً",
+      "description": "used in general.html"
+    },
+
+    "autoRedirect": {
+      "message": "إعادة التوجيه تلقائياً من المُثلاء الذين لا يعملون",
+      "description": "used in general.html"
+    },
+
+    "exceptions": {
+      "message": "الاستثناءات",
+      "description": "used in general.html"
+    },
+
+    "updateInstances": {
+      "message": "تحديث قائمة المُثلاء",
+      "description": "used in general.html"
+    },
+
+    "importSettings": {
+      "message": "استيراد الإعدادات",
+      "description": "used in general.html"
+    },
+
+    "exportSettings": {
+      "message": "تصدير الإعدادات",
+      "description": "used in general.html"
+    },
+
+    "resetSettings": {
+      "message": "إعادة تعيين الإعدادات",
+      "description": "used in general.html"
+    },
+
+    "customPopup": {
+      "message": "تخصيص النافذة المنبثقة",
+      "description": "used in general.html"
+    },
+
+    "enable": {
+      "message": "تفعيل",
+      "description": "used in imgur.html"
+    },
+
+    "protocol": {
+      "message": "البروتوكول",
+      "description": "used in imgur.html"
+    },
+
+    "normal": {
+      "message": "العادي",
+      "description": "used in imgur.html"
+    },
+
+    "defaultInstances": {
+      "message": "المُثلاء الافتراضيين",
+      "description": "used in imgur.html"
+    },
+
+    "customInstances": {
+      "message": "المُثلاء المخصصين",
+      "description": "used in imgur.html"
+    },
+
+    "toggleAll": {
+      "message": "تبديل الكل",
+      "description": "used in common.js"
+    },
+
+    "frontend": {
+      "message": "الواجهة الأمامية",
+      "description": "used in maps.html"
+    },
+
+    "notFullyPrivate": {
+      "message": "هذه الواجهة لا تحترم الخصوصية تماماً",
+      "description": "used in pixiv.html"
+    },
+
+    "oldReddit": {
+      "message": "ريديت القديم",
+      "description": "used in reddit.html"
+    },
+
+    "bypassReddit": {
+      "message": "تجاوز \"Open in Reddit\"",
+      "description": "used in reddit.html"
+    },
+
+    "searchNote": {
+      "message": "ملاحظة: لاستعمال \"البحث\" بكامل إمكانيته، اجعل LibRedirect محرك البحث الافتراضي",
+      "description": "used in search.html"
+    },
+
+    "libSendFiles": {
+      "message": "LibRedirect: إرسال الملفات",
+      "description": "used in sendTargets.html"
+    },
+
+    "from": {
+      "message": "من",
+      "description": "used in translate.html"
+    },
+
+    "to": {
+      "message": "إلى",
+      "description": "used in translate.html"
+    },
+
+    "default": {
+      "message": "الافتراضي",
+      "description": "used in translate.html"
+    },
+
+    "auto": {
+      "message": "تلقائي",
+      "description": "used in translate.html"
+    },
+
+    "engine": {
+      "message": "محرك البحث",
+      "description": "used in translate.html"
+    },
+
+    "libTranslate": {
+      "message": "LibRedirect: الترجمة",
+      "description": "used in translate.html"
+    },
+
+    "bypassTwitter": {
+      "message": "تجاوز \"Open in Twitter\"",
+      "description": "used in twitter.html"
+    },
+
+    "embeddedVids": {
+      "message": "واجهة الفيديوهات المضمنة",
+      "description": "used in youtube.html"
+    },
+
+    "redirectType": {
+      "message": "نوع إعادة التوجيه",
+      "description": "used in youtube.html"
+    },
+
+    "both": {
+      "message": "الإثنين",
+      "description": "used in youtube.html"
+    },
+
+    "onlyEmbedded": {
+      "message": "فقط للتضمينات",
+      "description": "used in youtube.html"
+    },
+
+    "onlyNotEmbedded": {
+      "message": "فقط لغير التضمينات",
+      "description": "used in youtube.html"
+    },
+
+    "bypassYoutube": {
+      "message": "تجاوز \"Watch on YouTube\"",
+      "description": "used in youtube.html"
+    },
+
+    "enableCustom": {
+      "message": "تمكين الإعدادات الخاصة (ستُستخدم ملفات تعريف الارتباط والـlocalStorage)",
+      "description": "used in youtube.html"
+    },
+
+    "autoplayVid": {
+      "message": "تشغيل الفيديوهات التلقائي",
+      "description": "used in youtube.html"
+    },
+
+    "volume": {
+      "message": "الصوت: ",
+      "description": "used in youtube.html"
+    },
+
+    "playerStyle": {
+      "message": "شكل مشغل الفيديو",
+      "description": "used in youtube.html"
+    },
+
+    "alwaysLoop": {
+      "message": "إعادة تشغيل الفيديو تلقائياً",
+      "description": "used in youtube.html"
+    },
+
+    "playNext": {
+      "message": "تشغيل التالي افتراضياً",
+      "description": "used in youtube.html"
+    },
+
+    "autoplayNext": {
+      "message": "تشغيل الفيديو التالي تلقائياً",
+      "description": "used in youtube.html"
+    },
+
+    "alwaysProxy": {
+      "message": "بروكسي المقاطع المرئيّة",
+      "description": "used in youtube.html"
+    },
+
+    "listenByDefault": {
+      "message": "تشغيل النسخة السمعية تلقائيًا",
+      "description": "used in youtube.html"
+    },
+
+    "defaultSpeed": {
+      "message": "السرعة الافتراضية",
+      "description": "used in youtube.html"
+    },
+
+    "prefQuality": {
+      "message": "الجودة المفضلة للمقاطع",
+      "description": "used in youtube.html"
+    },
+
+    "dash": {
+      "message": "DASH (جودة تكيُّفية)",
+      "description": "used in youtube.html"
+    },
+
+    "prefDashQuality": {
+      "message": "جودة فيديو DASH المفضلة",
+      "description": "used in youtube.html"
+    },
+
+    "best": {
+      "message": "الأفضل",
+      "description": "used in youtube.html"
+    },
+
+    "worst": {
+      "message": "الأسوء",
+      "description": "used in youtube.html"
+    },
+
+    "defaultComments": {
+      "message": "التعليقات الافتراضية",
+      "description": "used in youtube.html"
+    },
+
+    "none": {
+      "message": "لا شيء",
+      "description": "used in youtube.html"
+    },
+
+    "defaultCaptions": {
+      "message": "التسميات التوضيحية الاتفراضية",
+      "description": "used in youtube.html"
+    },
+
+    "showRelated": {
+      "message": "اعرض الفيديوهات ذات الصلة",
+      "description": "used in youtube.html"
+    },
+
+    "showAnnotations": {
+      "message": "إظهار الـAnnotation بشكل افتراضي",
+      "description": "used in youtube.html"
+    },
+
+    "autoExtendDesc": {
+      "message": "توسيع وصف الفيديو تلقائيا",
+      "description": "used in youtube.html"
+    },
+
+    "interactive360": {
+      "message": "مقاطع فيديو تفاعلية بزاوية 360 درجة (تتطلب WebGL)",
+      "description": "used in youtube.html"
+    },
+
+    "savePlaybackPos": {
+      "message": "حفظ موضع التشغيل",
+      "description": "used in youtube.html"
+    },
+
+    "enableSponsorBlock": {
+      "message": "Enable SponsorBlock",
+      "description": "used in youtube.html"
+    },
+
+    "skipSponsors": {
+      "message": "Skip sponsors",
+      "description": "used in youtube.html"
+    },
+
+    "skipIntermission": {
+      "message": "Skip Intermission/Intro Animation",
+      "description": "used in youtube.html"
+    },
+
+    "skipEndcards": {
+      "message": "Skip Endcards/Credits",
+      "description": "used in youtube.html"
+    },
+
+    "skipPreview": {
+      "message": "Skip Preview/Recap",
+      "description": "used in youtube.html"
+    },
+
+    "skipReminder": {
+      "message": "Skip interaction reminder (subscribe)",
+      "description": "used in youtube.html"
+    },
+
+    "skipUnpaidPromo": {
+      "message": "Skip Unpaid/Self Promotion",
+      "description": "used in youtube.html"
+    },
+
+    "skipMusic": {
+      "message": "Skip Music: Non-Music Section",
+      "description": "used in youtube.html"
+    },
+
+    "skipHighlights": {
+      "message": "Skip highlights",
+      "description": "used in youtube.html"
+    },
+
+    "skipFiller": {
+      "message": "Skip Filler Tangent",
+      "description": "used in youtube.html"
+    },
+
+    "audioOnly": {
+      "message": "Audio only",
+      "description": "used in youtube.html"
+    },
+
+    "defaultQuality": {
+      "message": "Default quality",
+      "description": "used in youtube.html"
+    },
+
+    "bufferingGoal": {
+      "message": "Buffering Goal (in seconds)",
+      "description": "used in youtube.html"
+    },
+
+    "countrySelection": {
+      "message": "Country selection",
+      "description": "used in youtube.html"
+    },
+
+    "defaultHomepage": {
+      "message": "Default homepage",
+      "description": "used in youtube.html"
+    },
+
+    "trending": {
+      "message": "Trending",
+      "description": "used in youtube.html"
+    },
+
+    "feed": {
+      "message": "Feed",
+      "description": "used in youtube.html"
+    },
+
+    "showComments": {
+      "message": "Show comments",
+      "description": "used in youtube.html"
+    },
+
+    "minimizeDesc": {
+      "message": "Minimize description by default",
+      "description": "used in youtube.html"
+    },
+
+    "storeHistory": {
+      "message": "Store watch history",
+      "description": "used in youtube.html"
+    },
+
+    "enabledCodecs": {
+      "message": "Enabled codecs (multiple)",
+      "description": "used in youtube.html"
+    },
+
+    "disableLBRY": {
+      "message": "Disable LBRY for streaming",
+      "description": "used in youtube.html"
+    },
+
+    "enableProxyLBRY": {
+      "message": "Enable proxy for LBRY",
+      "description": "used in youtube.html"
+    },
+
+    "proxyLBRY": {
+      "message": "Proxy LBRY videos",
+      "description": "used in youtube.html"
+    },
+
+    "skipNote": {
+      "message": "Skip to the last watched point when encountering a video already seen",
+      "description": "used in youtube.html"
+    },
+
+    "embedExceptions": {
+      "message": "Embed exceptions",
+      "description": "used in youtube.html"
+    },
+
+    "instanceOffline": {
+      "message": "This instance is offline, you'll be redirected after ",
+      "description": "used in instance_offline.html"
+    },
+
+    "sec": {
+      "message": "الثواني",
+      "description": "used in instance_offline.html"
+    },
+
+    "cancel": {
+      "message": "إلغاء",
+      "description": "used in instance_offline.html"
+    },
+
+    "instanceIsOff": {
+      "message": "المَثيل غير متصل على النت",
+      "description": "used in instance_offline.html"
+    },
+
+    "redirectionCanceled": {
+      "message": "تم إلغاء إعادة التوجيه",
+      "description": "used in instance_offline.js"
+    }
+  }
diff --git a/src/_locales/de/messages.json b/src/_locales/de/messages.json
new file mode 100644
index 00000000..03248032
--- /dev/null
+++ b/src/_locales/de/messages.json
@@ -0,0 +1,586 @@
+{
+  "extensionName": {
+    "message": "LibRedirect",
+    "description": "name of the extension"
+  },
+
+  "extensionDescription": {
+    "message": "Eine Erweiterung, die beliebte Websites zu alternativen datenschutzfreundlichen Frontends und Backends weiterleitet.",
+    "description": "description of the extension"
+  },
+
+  "switchInstance": {
+    "message": "Instanz wechseln",
+    "description": "used in manifest.json as shortcut description"
+  },
+
+  "instance": {
+    "message": "Instanz",
+    "description": "used in popup.html"
+  },
+
+  "settings": {
+    "message": "Optionen",
+    "description": "used in popup.html"
+  },
+
+  "libOptions": {
+    "message": "LibRedirect-Optionen",
+    "description": "used in general.html"
+  },
+
+  "general": {
+    "message": "Allgemein",
+    "description": "used in general.html"
+  },
+
+  "search": {
+    "message": "Suche",
+    "description": "used in general.html"
+  },
+
+  "translate": {
+    "message": "Übersetzen",
+    "description": "used in general.html"
+  },
+
+  "maps": {
+    "message": "Karten",
+    "description": "used in general.html"
+  },
+
+  "sendFiles": {
+    "message": "Dateien senden",
+    "description": "used in general.html"
+  },
+
+  "youtube": {
+    "message": "YouTube",
+    "description": "used in general.html"
+  },
+
+  "instagram": {
+    "message": "Instagram",
+    "description": "used in general.html"
+  },
+
+  "twitter": {
+    "message": "Twitter",
+    "description": "used in general.html"
+  },
+
+  "reddit": {
+    "message": "Reddit",
+    "description": "used in general.html"
+  },
+
+  "tiktok": {
+    "message": "TikTok",
+    "description": "used in general.html"
+  },
+
+  "ytmusic": {
+    "message": "YT Music",
+    "description": "used in general.html"
+  },
+
+  "imgur": {
+    "message": "Imgur",
+    "description": "used in general.html"
+  },
+
+  "pixiv": {
+    "message": "Pixiv",
+    "description": "used in general.html"
+  },
+
+  "wikipedia": {
+    "message": "Wikipedia",
+    "description": "used in general.html"
+  },
+
+  "peertube": {
+    "message": "PeerTube",
+    "description": "used in general.html"
+  },
+
+  "spotify": {
+    "message": "Spotify",
+    "description": "used in general.html"
+  },
+
+  "medium": {
+    "message": "Medium",
+    "description": "used in general.html"
+  },
+
+  "tor": {
+    "message": "Tor",
+    "description": "used in imgur.html"
+  },
+
+  "pixivMoe": {
+    "message": "pixiv萌え",
+    "description": "used in pixiv.html"
+  },
+
+  "theme": {
+    "message": "Thema",
+    "description": "used in general.html"
+  },
+
+  "system": {
+    "message": "System",
+    "description": "used in general.html"
+  },
+
+  "light": {
+    "message": "Hell",
+    "description": "used in general.html"
+  },
+
+  "dark": {
+    "message": "Dunkel",
+    "description": "used in general.html"
+  },
+
+  "applyTheme": {
+    "message": "Thema auf Seiten anwenden",
+    "description": "used in general.html"
+  },
+
+  "alwaysPref": {
+    "message": "Immer bevorzugte Instanzen verwenden",
+    "description": "used in general.html"
+  },
+
+  "autoRedirect": {
+    "message": "Instanzen automatisch weiterleiten, die offline sind",
+    "description": "used in general.html"
+  },
+
+  "exceptions": {
+    "message": "Ausnahmen",
+    "description": "used in general.html"
+  },
+
+  "updateInstances": {
+    "message": "Instanzen aktualisieren",
+    "description": "used in general.html"
+  },
+
+  "importSettings": {
+    "message": "Einstellungen importieren",
+    "description": "used in general.html"
+  },
+
+  "exportSettings": {
+    "message": "Einstellungen exportieren",
+    "description": "used in general.html"
+  },
+
+  "resetSettings": {
+    "message": "Einstellungen zurücksetzen",
+    "description": "used in general.html"
+  },
+
+  "customPopup": {
+    "message": "Popup personalisieren",
+    "description": "used in general.html"
+  },
+
+  "enable": {
+    "message": "Aktivieren",
+    "description": "used in imgur.html"
+  },
+
+  "protocol": {
+    "message": "Protokoll",
+    "description": "used in imgur.html"
+  },
+
+  "normal": {
+    "message": "Normal",
+    "description": "used in imgur.html"
+  },
+
+  "defaultInstances": {
+    "message": "Standard-Instanzen",
+    "description": "used in imgur.html"
+  },
+
+  "customInstances": {
+    "message": "Eigene Instanzen",
+    "description": "used in imgur.html"
+  },
+
+  "toggleAll": {
+    "message": "Alle umschalten",
+    "description": "used in common.js"
+  },
+
+  "frontend": {
+    "message": "Frontend",
+    "description": "used in maps.html"
+  },
+
+  "notFullyPrivate": {
+    "message": "Das ist kein völlig privates Frontend.",
+    "description": "used in pixiv.html"
+  },
+
+  "oldReddit": {
+    "message": "Altes Reddit",
+    "description": "used in reddit.html"
+  },
+
+  "bypassReddit": {
+    "message": "„Öffnen mit Reddit“ umgehen",
+    "description": "used in reddit.html"
+  },
+
+  "searchNote": {
+    "message": "Hinweis: Um das volle Potenzial der Suchweiterleitung auszunutzen, lege LibRedirect als Standardsuchmaschine fest.",
+    "description": "used in search.html"
+  },
+
+  "libSendFiles": {
+    "message": "LibRedirect: Dateien senden",
+    "description": "used in sendTargets.html"
+  },
+
+  "from": {
+    "message": "Von",
+    "description": "used in translate.html"
+  },
+
+  "to": {
+    "message": "Nach",
+    "description": "used in translate.html"
+  },
+
+  "default": {
+    "message": "Standard",
+    "description": "used in translate.html"
+  },
+
+  "auto": {
+    "message": "Auto",
+    "description": "used in translate.html"
+  },
+
+  "engine": {
+    "message": "Übersetzer",
+    "description": "used in translate.html"
+  },
+
+  "libTranslate": {
+    "message": "LibRedirect: Übersetzen",
+    "description": "used in translate.html"
+  },
+
+  "bypassTwitter": {
+    "message": "„Öffnen mit Twitter“ umgehen",
+    "description": "used in twitter.html"
+  },
+
+  "invidious": {
+    "message": "Invidious",
+    "description": "used in youtube.html"
+  },
+
+  "embeddedVids": {
+    "message": "Frontend für eingebettete Videos",
+    "description": "used in youtube.html"
+  },
+
+  "redirectType": {
+    "message": "Art der Weiterleitung",
+    "description": "used in youtube.html"
+  },
+
+  "both": {
+    "message": "beides",
+    "description": "used in youtube.html"
+  },
+
+  "onlyEmbedded": {
+    "message": "nur eingebettet",
+    "description": "used in youtube.html"
+  },
+
+  "onlyNotEmbedded": {
+    "message": "nur nicht-eingebunden",
+    "description": "used in youtube.html"
+  },
+
+  "bypassYoutube": {
+    "message": "„Auf YouTube ansehen“ umgehen",
+    "description": "used in youtube.html"
+  },
+
+  "enableCustom": {
+    "message": "Aktiviere benutzerdefinierte Einstellungen (verwendet Cookies und localStorage)",
+    "description": "used in youtube.html"
+  },
+
+  "autoplayVid": {
+    "message": "Video automatisch abspielen",
+    "description": "used in youtube.html"
+  },
+
+  "volume": {
+    "message": "Lautstärke: ",
+    "description": "used in youtube.html"
+  },
+
+  "playerStyle": {
+    "message": "Player-Stil",
+    "description": "used in youtube.html"
+  },
+
+  "alwaysLoop": {
+    "message": "Immer wiederholen",
+    "description": "used in youtube.html"
+  },
+
+  "playNext": {
+    "message": "Immer automatisch nächstes Video abspielen",
+    "description": "used in youtube.html"
+  },
+
+  "autoplayNext": {
+    "message": "Nächstes Video automatisch abspielen",
+    "description": "used in youtube.html"
+  },
+
+  "alwaysProxy": {
+    "message": "Videos immer durch Proxy leiten",
+    "description": "used in youtube.html"
+  },
+
+  "listenByDefault": {
+    "message": "Nur Ton als Standard",
+    "description": "used in youtube.html"
+  },
+
+  "defaultSpeed": {
+    "message": "Standardgeschwindigkeit",
+    "description": "used in youtube.html"
+  },
+
+  "prefQuality": {
+    "message": "Bevorzugte Videoqualität",
+    "description": "used in youtube.html"
+  },
+
+  "dash": {
+    "message": "DASH (automatische Qualität)",
+    "description": "used in youtube.html"
+  },
+
+  "prefDashQuality": {
+    "message": "Bevorzugte DASH-Videoqualität",
+    "description": "used in youtube.html"
+  },
+
+  "best": {
+    "message": "Höchste",
+    "description": "used in youtube.html"
+  },
+
+  "worst": {
+    "message": "Niedrigste",
+    "description": "used in youtube.html"
+  },
+
+  "defaultComments": {
+    "message": "Standardkommentare",
+    "description": "used in youtube.html"
+  },
+
+  "none": {
+    "message": "keine",
+    "description": "used in youtube.html"
+  },
+
+  "defaultCaptions": {
+    "message": "Standarduntertitel",
+    "description": "used in youtube.html"
+  },
+
+  "showRelated": {
+    "message": "Ähnliche Videos anzeigen",
+    "description": "used in youtube.html"
+  },
+
+  "showAnnotations": {
+    "message": "Anmerkungen standardmäßig anzeigen",
+    "description": "used in youtube.html"
+  },
+
+  "autoExtendDesc": {
+    "message": "Videobeschreibung automatisch erweitern",
+    "description": "used in youtube.html"
+  },
+
+  "interactive360": {
+    "message": "Interaktive 360-Grad-Videos (erfordert WebGL)",
+    "description": "used in youtube.html"
+  },
+
+  "savePlaybackPos": {
+    "message": "Wiedergabeposition speichern",
+    "description": "used in youtube.html"
+  },
+
+  "enableSponsorBlock": {
+    "message": "SponsorBlock einschalten",
+    "description": "used in youtube.html"
+  },
+
+  "skipSponsors": {
+    "message": "Sponsoren überspringen",
+    "description": "used in youtube.html"
+  },
+
+  "skipIntermission": {
+    "message": "Pausen-/Intro-Animation überspringen",
+    "description": "used in youtube.html"
+  },
+
+  "skipEndcards": {
+    "message": "Abspann überspringen",
+    "description": "used in youtube.html"
+  },
+
+  "skipPreview": {
+    "message": "Vorschau/Rückschau überspringen",
+    "description": "used in youtube.html"
+  },
+
+  "skipReminder": {
+    "message": "Interaktionserinnerung überspringen (Abonnieren)",
+    "description": "used in youtube.html"
+  },
+
+  "skipUnpaidPromo": {
+    "message": "Unbezahlte Werbung/Eigenwerbung überspringen",
+    "description": "used in youtube.html"
+  },
+
+  "skipMusic": {
+    "message": "Musik überspringen: Nicht-Musik-Bereich",
+    "description": "used in youtube.html"
+  },
+
+  "skipHighlight": {
+    "message": "Höhepunkt überspringen",
+    "description": "used in youtube.html"
+  },
+
+  "skipFiller": {
+    "message": "Lückenfüller überspringen",
+    "description": "used in youtube.html"
+  },
+
+  "audioOnly": {
+    "message": "Nur Audio",
+    "description": "used in youtube.html"
+  },
+
+  "defaultQuality": {
+    "message": "Standardqualität",
+    "description": "used in youtube.html"
+  },
+
+  "bufferingGoal": {
+    "message": "Pufferungsziel (in Sekunden)",
+    "description": "used in youtube.html"
+  },
+
+  "countrySelection": {
+    "message": "Länderauswahl",
+    "description": "used in youtube.html"
+  },
+
+  "defaultHomepage": {
+    "message": "Standard-Startseite",
+    "description": "used in youtube.html"
+  },
+
+  "trending": {
+    "message": "Trends",
+    "description": "used in youtube.html"
+  },
+
+  "feed": {
+    "message": "Abonnements",
+    "description": "used in youtube.html"
+  },
+
+  "showComments": {
+    "message": "Kommentare anzeigen",
+    "description": "used in youtube.html"
+  },
+
+  "minimizeDesc": {
+    "message": "Beschreibung standardmäßig minimieren",
+    "description": "used in youtube.html"
+  },
+
+  "storeHistory": {
+    "message": "Wiedergabeverlauf speichern",
+    "description": "used in youtube.html"
+  },
+
+  "enabledCodecs": {
+    "message": "Aktivierte Codecs (mehrere)",
+    "description": "used in youtube.html"
+  },
+
+  "disableLBRY": {
+    "message": "LBRY für Streaming deaktivieren",
+    "description": "used in youtube.html"
+  },
+
+  "enableProxyLBRY": {
+    "message": "Proxy für LBRY einschalten",
+    "description": "used in youtube.html"
+  },
+
+  "proxyLBRY": {
+    "message": "LBRY-Videos durch Proxy leiten",
+    "description": "used in youtube.html"
+  },
+
+  "skipNote": {
+    "message": "Springe zum letzten Wiedergabezeitpunkt bei bereits angesehenen Videos",
+    "description": "used in youtube.html"
+  },
+
+  "embedExceptions": {
+    "message": "Ausnahmen einbetten",
+    "description": "used in youtube.html"
+  },
+
+  "sec": {
+    "message": "Sekunden",
+    "description": "used in instance_offline.html"
+  },
+
+  "cancel": {
+    "message": "Abbrechen",
+    "description": "used in instance_offline.html"
+  },
+
+  "instanceIsOff": {
+    "message": "Instanz ist offline",
+    "description": "used in instance_offline.html"
+  },
+
+  "redirectionCanceled": {
+    "message": "Weiterleitung abgebrochen",
+    "description": "used in instance_offline.js"
+  }
+}
diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json
new file mode 100644
index 00000000..bd693d3c
--- /dev/null
+++ b/src/_locales/en/messages.json
@@ -0,0 +1,591 @@
+{
+  "extensionName": {
+    "message": "LibRedirect",
+    "description": "name of the extension"
+  },
+
+  "extensionDescription": {
+    "message": "A web extension that redirects popular sites to alternative privacy-friendly frontends and backends",
+    "description": "description of the extension"
+  },
+
+  "switchInstance": {
+    "message": "Switch Instance",
+    "description": "used in manifest.json as shortcut description"
+  },
+
+  "instance": {
+    "message": "Instance",
+    "description": "used in popup.html"
+  },
+
+  "settings": {
+    "message": "Settings",
+    "description": "used in popup.html"
+  },
+
+  "libOptions": {
+    "message": "LibRedirect Options",
+    "description": "used in general.html"
+  },
+
+  "general": {
+    "message": "General",
+    "description": "used in general.html"
+  },
+
+  "search": {
+    "message": "Search",
+    "description": "used in general.html"
+  },
+
+  "translate": {
+    "message": "Translate",
+    "description": "used in general.html"
+  },
+
+  "maps": {
+    "message": "Maps",
+    "description": "used in general.html"
+  },
+
+  "sendFiles": {
+    "message": "Send Files",
+    "description": "used in general.html"
+  },
+
+  "youtube": {
+    "message": "YouTube",
+    "description": "used in general.html"
+  },
+
+  "instagram": {
+    "message": "Instagram",
+    "description": "used in general.html"
+  },
+
+  "twitter": {
+    "message": "Twitter",
+    "description": "used in general.html"
+  },
+
+  "reddit": {
+    "message": "Reddit",
+    "description": "used in general.html"
+  },
+
+  "tiktok": {
+    "message": "TikTok",
+    "description": "used in general.html"
+  },
+
+  "ytmusic": {
+    "message": "YT Music",
+    "description": "used in general.html"
+  },
+
+  "imgur": {
+    "message": "Imgur",
+    "description": "used in general.html"
+  },
+
+  "pixiv": {
+    "message": "Pixiv",
+    "description": "used in general.html"
+  },
+
+  "wikipedia": {
+    "message": "Wikipedia",
+    "description": "used in general.html"
+  },
+
+  "peertube": {
+    "message": "PeerTube",
+    "description": "used in general.html"
+  },
+
+  "spotify": {
+    "message": "Spotify",
+    "description": "used in general.html"
+  },
+
+  "medium": {
+    "message": "Medium",
+    "description": "used in general.html"
+  },
+
+  "tor": {
+    "message": "Tor",
+    "description": "used in imgur.html"
+  },
+
+  "pixivMoe": {
+    "message": "pixiv萌え",
+    "description": "used in pixiv.html"
+  },
+
+  "theme": {
+    "message": "Theme",
+    "description": "used in general.html"
+  },
+
+  "system": {
+    "message": "System",
+    "description": "used in general.html"
+  },
+
+  "light": {
+    "message": "Light",
+    "description": "used in general.html"
+  },
+
+  "dark": {
+    "message": "Dark",
+    "description": "used in general.html"
+  },
+
+  "applyTheme": {
+    "message": "Apply theme to sites",
+    "description": "used in general.html"
+  },
+
+  "alwaysPref": {
+    "message": "Always use Preferred Instances",
+    "description": "used in general.html"
+  },
+
+  "autoRedirect": {
+    "message": "Auto Redirect of offline instances",
+    "description": "used in general.html"
+  },
+
+  "exceptions": {
+    "message": "Exceptions",
+    "description": "used in general.html"
+  },
+
+  "updateInstances": {
+    "message": "Update Instances",
+    "description": "used in general.html"
+  },
+
+  "importSettings": {
+    "message": "Import Settings",
+    "description": "used in general.html"
+  },
+
+  "exportSettings": {
+    "message": "Export Settings",
+    "description": "used in general.html"
+  },
+
+  "resetSettings": {
+    "message": "Reset Settings",
+    "description": "used in general.html"
+  },
+
+  "customPopup": {
+    "message": "Customize Popup",
+    "description": "used in general.html"
+  },
+
+  "enable": {
+    "message": "Enable",
+    "description": "used in imgur.html"
+  },
+
+  "protocol": {
+    "message": "Protocol",
+    "description": "used in imgur.html"
+  },
+
+  "normal": {
+    "message": "Normal",
+    "description": "used in imgur.html"
+  },
+
+  "defaultInstances": {
+    "message": "Default Instances",
+    "description": "used in imgur.html"
+  },
+
+  "customInstances": {
+    "message": "Custom Instances",
+    "description": "used in imgur.html"
+  },
+
+  "toggleAll": {
+    "message": "Toggle all",
+    "description": "used in common.js"
+  },
+
+  "frontend": {
+    "message": "Frontend",
+    "description": "used in maps.html"
+  },
+
+  "notFullyPrivate": {
+    "message": "This isn't a fully private frontend.",
+    "description": "used in pixiv.html"
+  },
+
+  "oldReddit": {
+    "message": "Old Reddit",
+    "description": "used in reddit.html"
+  },
+
+  "bypassReddit": {
+    "message": "Bypass \"Open in Reddit\"",
+    "description": "used in reddit.html"
+  },
+
+  "searchNote": {
+    "message": "Note: To use Search to its full potential, make LibRedirect as the Default Search Engine",
+    "description": "used in search.html"
+  },
+
+  "libSendFiles": {
+    "message": "LibRedirect: Send Files",
+    "description": "used in sendTargets.html"
+  },
+
+  "from": {
+    "message": "From",
+    "description": "used in translate.html"
+  },
+
+  "to": {
+    "message": "To",
+    "description": "used in translate.html"
+  },
+
+  "default": {
+    "message": "Default",
+    "description": "used in translate.html"
+  },
+
+  "auto": {
+    "message": "Auto",
+    "description": "used in translate.html"
+  },
+
+  "engine": {
+    "message": "Engine",
+    "description": "used in translate.html"
+  },
+
+  "libTranslate": {
+    "message": "LibRedirect: Translate",
+    "description": "used in translate.html"
+  },
+
+  "bypassTwitter": {
+    "message": "Bypass \"Open in Twitter\"",
+    "description": "used in twitter.html"
+  },
+
+  "invidious": {
+    "message": "Invidious",
+    "description": "used in youtube.html"
+  },
+
+  "embeddedVids": {
+    "message": "Embedded Videos Frontend",
+    "description": "used in youtube.html"
+  },
+
+  "redirectType": {
+    "message": "Redirect Type",
+    "description": "used in youtube.html"
+  },
+
+  "both": {
+    "message": "both",
+    "description": "used in youtube.html"
+  },
+
+  "onlyEmbedded": {
+    "message": "only embedded",
+    "description": "used in youtube.html"
+  },
+
+  "onlyNotEmbedded": {
+    "message": "only not embedded",
+    "description": "used in youtube.html"
+  },
+
+  "bypassYoutube": {
+    "message": "Bypass \"Watch on YouTube\"",
+    "description": "used in youtube.html"
+  },
+
+  "enableCustom": {
+    "message": "Enable Custom Settings (will use cookies and localStorage)",
+    "description": "used in youtube.html"
+  },
+
+  "autoplayVid": {
+    "message": "Autoplay Video",
+    "description": "used in youtube.html"
+  },
+
+  "volume": {
+    "message": "Volume: ",
+    "description": "used in youtube.html"
+  },
+
+  "playerStyle": {
+    "message": "Player Style",
+    "description": "used in youtube.html"
+  },
+
+  "alwaysLoop": {
+    "message": "Always loop",
+    "description": "used in youtube.html"
+  },
+
+  "playNext": {
+    "message": "Play next by default",
+    "description": "used in youtube.html"
+  },
+
+  "autoplayNext": {
+    "message": "Autoplay next video",
+    "description": "used in youtube.html"
+  },
+
+  "alwaysProxy": {
+    "message": "Always proxy videos",
+    "description": "used in youtube.html"
+  },
+
+  "listenByDefault": {
+    "message": "Listen by default",
+    "description": "used in youtube.html"
+  },
+
+  "defaultSpeed": {
+    "message": "Default speed",
+    "description": "used in youtube.html"
+  },
+
+  "prefQuality": {
+    "message": "Preferred video quality",
+    "description": "used in youtube.html"
+  },
+
+  "dash": {
+    "message": "DASH (adaptive quality)",
+    "description": "used in youtube.html"
+  },
+
+  "prefDashQuality": {
+    "message": "Preferred DASH video quality",
+    "description": "used in youtube.html"
+  },
+
+  "best": {
+    "message": "Best",
+    "description": "used in youtube.html"
+  },
+
+  "worst": {
+    "message": "Worst",
+    "description": "used in youtube.html"
+  },
+
+  "defaultComments": {
+    "message": "Default comments",
+    "description": "used in youtube.html"
+  },
+
+  "none": {
+    "message": "None",
+    "description": "used in youtube.html"
+  },
+
+  "defaultCaptions": {
+    "message": "Default captions",
+    "description": "used in youtube.html"
+  },
+
+  "showRelated": {
+    "message": "Show related videos",
+    "description": "used in youtube.html"
+  },
+
+  "showAnnotations": {
+    "message": "Show annotations by default",
+    "description": "used in youtube.html"
+  },
+
+  "autoExtendDesc": {
+    "message": "Automatically extend video description",
+    "description": "used in youtube.html"
+  },
+
+  "interactive360": {
+    "message": "Interactive 360 degree videos (requires WebGL)",
+    "description": "used in youtube.html"
+  },
+
+  "savePlaybackPos": {
+    "message": "Save playback position",
+    "description": "used in youtube.html"
+  },
+
+  "enableSponsorBlock": {
+    "message": "Enable SponsorBlock",
+    "description": "used in youtube.html"
+  },
+
+  "skipSponsors": {
+    "message": "Skip sponsors",
+    "description": "used in youtube.html"
+  },
+
+  "skipIntermission": {
+    "message": "Skip Intermission/Intro Animation",
+    "description": "used in youtube.html"
+  },
+
+  "skipEndcards": {
+    "message": "Skip Endcards/Credits",
+    "description": "used in youtube.html"
+  },
+
+  "skipPreview": {
+    "message": "Skip Preview/Recap",
+    "description": "used in youtube.html"
+  },
+
+  "skipReminder": {
+    "message": "Skip interaction reminder (subscribe)",
+    "description": "used in youtube.html"
+  },
+
+  "skipUnpaidPromo": {
+    "message": "Skip Unpaid/Self Promotion",
+    "description": "used in youtube.html"
+  },
+
+  "skipMusic": {
+    "message": "Skip Music: Non-Music Section",
+    "description": "used in youtube.html"
+  },
+
+  "skipHighlight": {
+    "message": "Skip Highlight",
+    "description": "used in youtube.html"
+  },
+
+  "skipFiller": {
+    "message": "Skip Filler Tangent",
+    "description": "used in youtube.html"
+  },
+
+  "audioOnly": {
+    "message": "Audio only",
+    "description": "used in youtube.html"
+  },
+
+  "defaultQuality": {
+    "message": "Default quality",
+    "description": "used in youtube.html"
+  },
+
+  "bufferingGoal": {
+    "message": "Buffering Goal (in seconds)",
+    "description": "used in youtube.html"
+  },
+
+  "countrySelection": {
+    "message": "Country selection",
+    "description": "used in youtube.html"
+  },
+
+  "defaultHomepage": {
+    "message": "Default homepage",
+    "description": "used in youtube.html"
+  },
+
+  "trending": {
+    "message": "Trending",
+    "description": "used in youtube.html"
+  },
+
+  "feed": {
+    "message": "Feed",
+    "description": "used in youtube.html"
+  },
+
+  "showComments": {
+    "message": "Show comments",
+    "description": "used in youtube.html"
+  },
+
+  "minimizeDesc": {
+    "message": "Minimize description by default",
+    "description": "used in youtube.html"
+  },
+
+  "storeHistory": {
+    "message": "Store watch history",
+    "description": "used in youtube.html"
+  },
+
+  "enabledCodecs": {
+    "message": "Enabled codecs (multiple)",
+    "description": "used in youtube.html"
+  },
+
+  "disableLBRY": {
+    "message": "Disable LBRY for streaming",
+    "description": "used in youtube.html"
+  },
+
+  "enableProxyLBRY": {
+    "message": "Enable proxy for LBRY",
+    "description": "used in youtube.html"
+  },
+
+  "proxyLBRY": {
+    "message": "Proxy LBRY videos",
+    "description": "used in youtube.html"
+  },
+
+  "skipNote": {
+    "message": "Skip to the last watched point when encountering a video already seen",
+    "description": "used in youtube.html"
+  },
+
+  "embedExceptions": {
+    "message": "Embed exceptions",
+    "description": "used in youtube.html"
+  },
+
+  "instanceOffline": {
+    "message": "This instance is offline, you'll be redirected after ",
+    "description": "used in instance_offline.html"
+  },
+
+  "sec": {
+    "message": "seconds",
+    "description": "used in instance_offline.html"
+  },
+
+  "cancel": {
+    "message": "Cancel",
+    "description": "used in instance_offline.html"
+  },
+
+  "instanceIsOff": {
+    "message": "Instance is offline",
+    "description": "used in instance_offline.html"
+  },
+
+  "redirectionCanceled": {
+    "message": "Redirection canceled",
+    "description": "used in instance_offline.js"
+  }
+}