aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/_locales/cs/messages.json4
-rw-r--r--src/_locales/en/messages.json2
-rw-r--r--src/_locales/fr/messages.json45
-rw-r--r--src/_locales/gl/messages.json2
-rw-r--r--src/_locales/hu/messages.json137
-rw-r--r--src/_locales/nl/messages.json41
-rw-r--r--src/_locales/ru/messages.json2
-rw-r--r--src/assets/javascripts/services.js11
-rw-r--r--src/config.json8
-rw-r--r--src/pages/options_src/Services/Instances.svelte36
10 files changed, 237 insertions, 51 deletions
diff --git a/src/_locales/cs/messages.json b/src/_locales/cs/messages.json
index e6dddae8..50ad878d 100644
--- a/src/_locales/cs/messages.json
+++ b/src/_locales/cs/messages.json
@@ -143,7 +143,7 @@
"message": "Přesměrovat"
},
"autoPickInstance": {
- "message": "Automaticky vybrat instanci"
+ "message": "Automaticky zvolit instanci"
},
"searchService": {
"message": "Služba vyhledávání"
@@ -152,7 +152,7 @@
"message": "Přesměrovat Google"
},
"search_frontend": {
- "message": "Frontend vyhledávání"
+ "message": "Hledat frontend"
},
"embedFrontend": {
"message": "Vložený frontend"
diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json
index 9bcb980e..3fe89cb4 100644
--- a/src/_locales/en/messages.json
+++ b/src/_locales/en/messages.json
@@ -143,7 +143,7 @@
"message": "Redirect"
},
"autoPickInstance": {
- "message": "Auto Pick Instance"
+ "message": "Auto-pick Instance"
},
"redirectGoogle": {
"message": "Redirect Google"
diff --git a/src/_locales/fr/messages.json b/src/_locales/fr/messages.json
index b2827bf0..76930ce0 100644
--- a/src/_locales/fr/messages.json
+++ b/src/_locales/fr/messages.json
@@ -56,7 +56,7 @@
"description": "used in the settings page"
},
"showInPopup": {
- "message": "Afficher dans la fenêtre contextuelle",
+ "message": "Afficher dans la fenêtre contextuelle de l'extension",
"description": "used in the settings page"
},
"frontend": {
@@ -72,11 +72,11 @@
"description": "used in the settings page"
},
"onlyEmbedded": {
- "message": "uniquement intégré",
+ "message": "éléments embarqués seulement",
"description": "used in the settings page"
},
"onlyNotEmbedded": {
- "message": "seulement non intégré",
+ "message": "tout sauf éléments embarqués",
"description": "used in the settings page"
},
"addYourFavoriteInstances": {
@@ -84,7 +84,7 @@
"description": "used in the settings page"
},
"copyOriginal": {
- "message": "Copy Original"
+ "message": "Copier l'original"
},
"copied": {
"message": "Copié"
@@ -101,22 +101,22 @@
"message": "À propos"
},
"unsupportedIframesHandling": {
- "message": "Gestion des iframes non prises en charge"
+ "message": "Gestion des éléments embarqués non-pris-en-charge"
},
"fetchPublicInstances": {
- "message": "Rechercher des instances publiques"
+ "message": "Récupérer des instances publiques"
},
"disable": {
"message": "Désactiver"
},
"pingInstances": {
- "message": "Ping Instances"
+ "message": "Envoyer un ping aux instances"
},
"exportSettingsToSync": {
- "message": "Export Settings to Sync"
+ "message": "Exporter les paramètres vers Sync"
},
"importSettingsFromSync": {
- "message": "Import Settings from Sync"
+ "message": "Importer les paramètres depuis Sync"
},
"services": {
"message": "Services"
@@ -125,21 +125,36 @@
"message": "Service"
},
"bookmarksMenu": {
- "message": "Bookmarks menu"
+ "message": "Menu des marque-pages"
},
"redirectOnlyInIncognito": {
- "message": "Redirect Only in Incognito"
+ "message": "Rediriger seulement en Mode Incognito"
},
"bypass": {
- "message": "Bypass"
+ "message": "Laisser tel quel"
},
"block": {
- "message": "Block"
+ "message": "Bloquer"
},
"searchHint": {
- "message": "Set LibRedirect as Default Search Engine. For how to do in chromium browsers, click <a href='https://libredirect.github.io/docs.html#search_engine_chromium' target='_blank' rel='noopener noreferrer'>here</a>."
+ "message": "Paramétrez LibRedirect pour être votre moteur de recherche par défaut. Pour savoir comment faire sur un navigateur chromium, cliquez <a href='https://libredirect.github.io/docs.html#search_engine_chromium' target='_blank' rel='noopener noreferrer'>ici</a>."
},
"redirect": {
- "message": "Redirect"
+ "message": "Rediriger"
+ },
+ "autoPickInstance": {
+ "message": "Choix d'instance automatique"
+ },
+ "redirectGoogle": {
+ "message": "Rediriger Google"
+ },
+ "search_frontend": {
+ "message": "Chercher une interface"
+ },
+ "searchService": {
+ "message": "Chercher un service"
+ },
+ "embedFrontend": {
+ "message": "Interface des éléments embarqués"
}
}
diff --git a/src/_locales/gl/messages.json b/src/_locales/gl/messages.json
index a95bdef4..2b34545e 100644
--- a/src/_locales/gl/messages.json
+++ b/src/_locales/gl/messages.json
@@ -143,7 +143,7 @@
"message": "Redirect"
},
"autoPickInstance": {
- "message": "Selección Autom. de instancia"
+ "message": "Selecc. automática instancia"
},
"redirectGoogle": {
"message": "Redirect a Google"
diff --git a/src/_locales/hu/messages.json b/src/_locales/hu/messages.json
new file mode 100644
index 00000000..e5354d11
--- /dev/null
+++ b/src/_locales/hu/messages.json
@@ -0,0 +1,137 @@
+{
+ "settings": {
+ "message": "Beállítások"
+ },
+ "extensionDescription": {
+ "message": "Egy webes kiterjesztés, amely népszerű webhelyeket irányít át alternatív, adatvédelemet tiszteletben tartó elő- és háttérprogramokra"
+ },
+ "general": {
+ "message": "Általános"
+ },
+ "theme": {
+ "message": "Téma"
+ },
+ "light": {
+ "message": "Világos"
+ },
+ "exportSettings": {
+ "message": "Beállítások exportálása"
+ },
+ "both": {
+ "message": "mindkettő"
+ },
+ "dark": {
+ "message": "Sötét"
+ },
+ "auto": {
+ "message": "Automatikus"
+ },
+ "excludeFromRedirecting": {
+ "message": "Átirányításból kizárt"
+ },
+ "importSettings": {
+ "message": "Beállítások importálása"
+ },
+ "resetSettings": {
+ "message": "Beállítások visszaállítása"
+ },
+ "onlyEmbedded": {
+ "message": "csak beágyazott"
+ },
+ "enable": {
+ "message": "Engedélyezés"
+ },
+ "showInPopup": {
+ "message": "Megjelenítés felugró ablakban"
+ },
+ "onlyNotEmbedded": {
+ "message": "csak nem beágyazott"
+ },
+ "copied": {
+ "message": "Másolva"
+ },
+ "redirectLink": {
+ "message": "Kísérlet az átirányításra"
+ },
+ "fetchPublicInstances": {
+ "message": "Nyilvános példányok lekérése"
+ },
+ "addYourFavoriteInstances": {
+ "message": "Adja hozzá kedvenc példányait"
+ },
+ "copyOriginal": {
+ "message": "Eredeti másolása"
+ },
+ "redirectToOriginal": {
+ "message": "Átirányítás az eredetire"
+ },
+ "about": {
+ "message": "Rólunk"
+ },
+ "unsupportedIframesHandling": {
+ "message": "Nem támogatott beágyazások kezelése"
+ },
+ "disable": {
+ "message": "Tiltás"
+ },
+ "services": {
+ "message": "Szolgáltatások"
+ },
+ "pingInstances": {
+ "message": "Példányok pingelése"
+ },
+ "exportSettingsToSync": {
+ "message": "Beállítások exportálása a szinkronizáláshoz"
+ },
+ "importSettingsFromSync": {
+ "message": "Beállítások importálása a szinkronizációból"
+ },
+ "service": {
+ "message": "Szolgáltatás"
+ },
+ "bookmarksMenu": {
+ "message": "Könyvjelzők menü"
+ },
+ "block": {
+ "message": "Letiltás"
+ },
+ "redirectOnlyInIncognito": {
+ "message": "Átirányítás csak inkognitóban"
+ },
+ "redirect": {
+ "message": "Átirányítás"
+ },
+ "switchInstance": {
+ "message": "Példány váltása"
+ },
+ "frontend": {
+ "message": "Előtétprogram"
+ },
+ "redirectType": {
+ "message": "Átirányítás típusa"
+ },
+ "autoPickInstance": {
+ "message": "Példány automatikus kiválasztása"
+ },
+ "redirectGoogle": {
+ "message": "Google átirányítása"
+ },
+ "search_frontend": {
+ "message": "Előtétprogram keresése"
+ },
+ "extensionName": {
+ "message": "LibRedirect"
+ },
+ "bypass": {
+ "message": "Megkerülés"
+ },
+ "searchHint": {
+ "message": "LibRedirect beállítása alapértelmezett keresőmotornak. A Chromium böngészőkben történő művelethez kattintson <a href='https://libredirect.github.io/docs.html#search_engine_chromium' target='_blank' rel='noopener noreferrer'>ide</a>."
+ },
+ "searchService": {
+ "message": "Szolgáltatás keresése"
+ },
+ "embedFrontend": {
+ "message": "Beágyazott előtétprogram"
+ }
+}
diff --git a/src/_locales/nl/messages.json b/src/_locales/nl/messages.json
index 9078a0b7..8d52901e 100644
--- a/src/_locales/nl/messages.json
+++ b/src/_locales/nl/messages.json
@@ -84,7 +84,7 @@
"description": "used in the settings page"
},
"copyOriginal": {
- "message": "Copy Original"
+ "message": "Origineel kopiëren"
},
"copied": {
"message": "Gekopieerd"
@@ -101,7 +101,7 @@
"message": "Over"
},
"unsupportedIframesHandling": {
- "message": "Niet-ondersteunde iframes-afhandeling"
+ "message": "Niet-ondersteunde insluitafhandeling"
},
"fetchPublicInstances": {
"message": "Openbare instanties ophalen"
@@ -110,36 +110,51 @@
"message": "Uitschakelen"
},
"pingInstances": {
- "message": "Ping Instances"
+ "message": "Instanties pingen"
},
"exportSettingsToSync": {
- "message": "Export Settings to Sync"
+ "message": "Instellingen synchroniseren"
},
"importSettingsFromSync": {
- "message": "Import Settings from Sync"
+ "message": "Instellingen ophalen uit synchronisatie"
},
"services": {
- "message": "Services"
+ "message": "Diensten"
},
"service": {
- "message": "Service"
+ "message": "Dienst"
},
"bookmarksMenu": {
- "message": "Bookmarks menu"
+ "message": "Bladwijzermenu"
},
"redirectOnlyInIncognito": {
- "message": "Redirect Only in Incognito"
+ "message": "Alleen doorverwijzen in privévensters"
},
"bypass": {
- "message": "Bypass"
+ "message": "Omzeilen"
},
"block": {
- "message": "Block"
+ "message": "Blokkeren"
},
"searchHint": {
- "message": "Set LibRedirect as Default Search Engine. For how to do in chromium browsers, click <a href='https://libredirect.github.io/docs.html#search_engine_chromium' target='_blank' rel='noopener noreferrer'>here</a>."
+ "message": "Stel LibRedirect in als de standaard zoekmachine. Hoe je dit doet in op Chromium gebaseerde browsers, lees je <a href='' target='_blank' rel='noopener noreferrer'>hier</a>."
},
"redirect": {
- "message": "Redirect"
+ "message": "Doorverwijzen"
+ },
+ "autoPickInstance": {
+ "message": "Automatisch instantie kiezen"
+ },
+ "redirectGoogle": {
+ "message": "Google doorverwijzen"
+ },
+ "searchService": {
+ "message": "Zoeken naar dienst"
+ },
+ "search_frontend": {
+ "message": "Zoeken naar front-end"
+ },
+ "embedFrontend": {
+ "message": "Front-end insluiten"
}
}
diff --git a/src/_locales/ru/messages.json b/src/_locales/ru/messages.json
index 0e7ea4ca..b01d78c6 100644
--- a/src/_locales/ru/messages.json
+++ b/src/_locales/ru/messages.json
@@ -146,7 +146,7 @@
"message": "Перенаправление Google"
},
"autoPickInstance": {
- "message": "Выбирать сервер автоматически"
+ "message": "Выбрать сервер автоматически"
},
"searchService": {
"message": "Служба поиска"
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 80a4851c..e85b5bf1 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -220,15 +220,17 @@ function rewrite(url, originUrl, frontend, randomInstance) {
return `${randomInstance}${url.pathname}${url.search}`
case "redlib":
case "libreddit": {
- const subdomain = url.hostname.match(/^(?:(?:external-)?preview|i)(?=\.redd\.it)/)
+ const subdomain = url.hostname.match(/^(?:((?:external-)?preview|i)\.)?redd\.it/)
if (!subdomain) return `${randomInstance}${url.pathname}${url.search}`
- switch (subdomain[0]) {
+ switch (subdomain[1]) {
case "preview":
return `${randomInstance}/preview/pre${url.pathname}${url.search}`
case "external-preview":
return `${randomInstance}/preview/external-pre${url.pathname}${url.search}`
case "i":
return `${randomInstance}/img${url.pathname}`
+ default:
+ return `${randomInstance}/comments${url.pathname}`
}
return randomInstance
}
@@ -267,8 +269,11 @@ function rewrite(url, originUrl, frontend, randomInstance) {
// https://stackexchange.com or https://superuser.com
return `${randomInstance}${url.pathname}${url.search}`
}
- const regex = url.href.match(/https?:\/{2}(?:([a-zA-Z0-9-]+)\.)?stackexchange\.com\//)
+ const regex = url.href.match(/https?:\/{2}(?:([a-zA-Z0-9-]+)\.(meta\.)?)?stackexchange\.com\//)
if (regex && regex.length > 1) {
+ if (regex[2]) {
+ return `${randomInstance}/exchange/${url.hostname}${url.pathname}${url.search}`
+ }
const subdomain = regex[1]
return `${randomInstance}/exchange/${subdomain}${url.pathname}${url.search}`
}
diff --git a/src/config.json b/src/config.json
index 34b13c7c..340df46c 100644
--- a/src/config.json
+++ b/src/config.json
@@ -268,8 +268,8 @@
}
},
"targets": [
- "^https?:\\/{2}(www\\.|old\\.|np\\.|new\\.|amp\\.)?(reddit|reddittorjg6rue252oqsxryoxengawnmo46qy4kyii5wtqnwfj4ooad)\\.(com|onion)(?=\\/u(ser)?\\/|\\/r\\/|\\/search|\\/new|\\/?$)",
- "^https?:\\/{2}(i|(external-)?preview)\\.redd\\.it"
+ "^https?:\\/{2}(www\\.|old\\.|np\\.|new\\.|amp\\.)?(reddit|reddittorjg6rue252oqsxryoxengawnmo46qy4kyii5wtqnwfj4ooad)\\.(com|onion)(?=\\/u(ser)?\\/|\\/r\\/|\\/search|\\/new|\\/comments|\\/?$)",
+ "^https?:\\/{2}((i|(external-)?preview)\\.)?redd\\.it"
],
"name": "Reddit",
"options": {
@@ -753,7 +753,7 @@
},
"targets": [
"^https?:\\/{2}(www\\.)?([a-zA-Z]+\\.)?stackoverflow\\.com\\/",
- "(?!^https?:\\/{2}(api|data|blog)\\.)^https?:\\/{2}([a-zA-Z0-9-]+\\.)stackexchange\\.com\\/",
+ "^https?:\\/{2}((?!(api|data|blog)\\.)[a-zA-Z0-9-]+\\.(meta\\.)?)?stackexchange\\.com\\/",
"^https?:\\/{2}(www\\.)?([a-zA-Z]+\\.)?(askubuntu\\.com|mathoverflow\\.net|serverfault\\.com|stackapps\\.com|superuser\\.com)\\/"
],
"name": "Stack Overflow",
@@ -1358,4 +1358,4 @@
"url": "https://coub.com"
}
}
-} \ No newline at end of file
+}
diff --git a/src/pages/options_src/Services/Instances.svelte b/src/pages/options_src/Services/Instances.svelte
index 7a04b04e..b37c3904 100644
--- a/src/pages/options_src/Services/Instances.svelte
+++ b/src/pages/options_src/Services/Instances.svelte
@@ -207,20 +207,34 @@
<span style="color:{pingCache[instance].color}">{pingCache[instance].value}</span>
{/if}
</span>
- <button
- class="add"
- aria-label="Add instance"
- on:click={() => {
- if (_options[selectedFrontend]) {
- if (!_options[selectedFrontend].includes(instance)) {
+ {#if !_options[selectedFrontend].includes(instance)}
+ <button
+ class="add"
+ aria-label="Add instance"
+ on:click={() => {
+ if (_options[selectedFrontend]) {
_options[selectedFrontend].push(instance)
options.set(_options)
}
- }
- }}
- >
- <AddIcon />
- </button>
+ }}
+ >
+ <AddIcon />
+ </button>
+ {:else}
+ <button
+ class="add"
+ aria-label="Remove Instance"
+ on:click={() => {
+ const index = _options[selectedFrontend].indexOf(instance)
+ if (index > -1) {
+ _options[selectedFrontend].splice(index, 1)
+ options.set(_options)
+ }
+ }}
+ >
+ <CloseIcon />
+ </button>
+ {/if}
</Row>
<hr />
{/each}