diff --git a/.twosky.json b/.twosky.json
index 92133faf..dfa70915 100644
--- a/.twosky.json
+++ b/.twosky.json
@@ -7,6 +7,7 @@
"da": "Dansk",
"de": "Deutsch",
"nl": "Dutch",
+ "no": "Norsk",
"en": "English",
"es": "Español",
"fr": "Français",
diff --git a/client/src/__locales/da.json b/client/src/__locales/da.json
index 2ae5b665..8f24279b 100644
--- a/client/src/__locales/da.json
+++ b/client/src/__locales/da.json
@@ -19,6 +19,9 @@
"dhcp_leases_not_found": "Ingen DHCP-leases fundet",
"dhcp_config_saved": "Gemt DHCP-server konfiguration",
"form_error_required": "Obligatorisk felt",
+ "form_error_ip4_format": "Ugyldigt IPv4-format",
+ "form_error_ip6_format": "Ugyldigt IPv6-format",
+ "form_error_ip_format": "Ugyldigt IP-format",
"form_error_mac_format": "Ugyldigt MAC-format",
"form_error_positive": "Skal være større end 0",
"dhcp_form_gateway_input": "Gateway IP",
@@ -95,6 +98,7 @@
"use_adguard_parental": "Brug AdGuards forældrekontrol",
"use_adguard_parental_hint": "AdGuard Home vil kontrollere, om domænet indeholder voksenindhold. Den bruger den samme privatlivsvenlige API som browsing sikkerhedstjenesten.",
"enforce_safe_search": "Håndhæv sikker søgning",
+ "enforce_save_search_hint": "AdGuard Home kan håndhæve sikker søgning i følgende søgemaskiner: Google, Youtube, Bing, DuckDuckGo, Yandex og Pixabay.",
"no_servers_specified": "Ingen servere specificeret",
"general_settings": "Generelle indstillinger",
"dns_settings": "DNS-indstillinger",
diff --git a/client/src/__locales/es.json b/client/src/__locales/es.json
index cb17c09b..20f0aa5c 100644
--- a/client/src/__locales/es.json
+++ b/client/src/__locales/es.json
@@ -19,6 +19,9 @@
"dhcp_leases_not_found": "No se han encontrado asignaciones DHCP",
"dhcp_config_saved": "Configuración del servidor DHCP guardada",
"form_error_required": "Campo obligatorio",
+ "form_error_ip4_format": "Formato IPv4 no válido",
+ "form_error_ip6_format": "Formato IPv6 no válido",
+ "form_error_ip_format": "Formato IP no válido",
"form_error_mac_format": "Formato MAC no válido",
"form_error_positive": "Debe ser mayor que 0",
"dhcp_form_gateway_input": "IP de puerta de enlace",
@@ -95,6 +98,7 @@
"use_adguard_parental": "Usar el control parental de AdGuard",
"use_adguard_parental_hint": "AdGuard Home comprobará si el dominio contiene materiales para adultos. Utiliza la misma API amigable con la privacidad del servicio web de seguridad de navegación.",
"enforce_safe_search": "Forzar búsqueda segura",
+ "enforce_save_search_hint": "AdGuard Home puede forzar la búsqueda segura en los siguientes motores de búsqueda: Google, YouTube, Bing, DuckDuckGo, Yandex y Pixabay.",
"no_servers_specified": "No hay servidores especificados",
"general_settings": "Configuración general",
"dns_settings": "Configuración del DNS",
diff --git a/client/src/__locales/nl.json b/client/src/__locales/nl.json
index 0d91da52..7a070c2a 100644
--- a/client/src/__locales/nl.json
+++ b/client/src/__locales/nl.json
@@ -18,6 +18,8 @@
"dhcp_leases_not_found": "Geen DHCP lease gevonden",
"dhcp_config_saved": "DHCP server configuratie opgeslagen",
"form_error_required": "Vereist veld",
+ "form_error_ip4_format": "Ongeldig IPv4 formaat",
+ "form_error_ip6_format": "Ongeldig IPv6 formaat",
"form_error_mac_format": "Ongeldig MAC formaat.",
"form_error_positive": "Moet groter zijn dan 0",
"dhcp_form_gateway_input": "Gateway IP",
diff --git a/client/src/__locales/no.json b/client/src/__locales/no.json
new file mode 100644
index 00000000..7ebd764b
--- /dev/null
+++ b/client/src/__locales/no.json
@@ -0,0 +1,406 @@
+{
+ "client_settings": "Klientinnstillinger",
+ "example_upstream_reserved": "du kan bestemme en oppstrøms-DNS <0>for et spesifikt domene(r)0>",
+ "upstream_parallel": "Bruk parallele forespørsler for å få oppfarten på behandlinger, ved å forespørre til alle oppstrømstjenerne samtidig",
+ "bootstrap_dns": "Bootstrap-DNS-tjenere",
+ "bootstrap_dns_desc": "Bootstrap-DNS-tjenere brukes til å oppklare IP-adressene til DoH/DoT-oppklarerene som du har valgt som oppstrømstjenere.",
+ "check_dhcp_servers": "Se etter DHCP-tjenere",
+ "save_config": "Lagre oppsettet",
+ "enabled_dhcp": "DHCP-tjeneren ble skrudd på",
+ "disabled_dhcp": "DHCP-tjeneren ble skrudd av",
+ "dhcp_title": "DHCP-tjener (eksperimentell!)",
+ "dhcp_description": "Dersom ruteren din ikke har DHCP-innstillinger, kan du bruke AdGuard Home sin egen innebygde DHCP-tjener.",
+ "dhcp_enable": "Skru på DHCP-tjeneren",
+ "dhcp_disable": "Skru av DHCP-tjeneren",
+ "dhcp_not_found": "Det er trygt å skru på den innebygde DHCP-tjeneren - vi kunne ikke finne noen aktive DHCP-tjenere i nettverket. Men vi oppfordrer deg til å dobbeltsjekke manuelt, siden vår automatiske test ikke gir 100% sikre svar ennå.",
+ "dhcp_found": "En aktiv DHCP-tjener ble oppdaget i nettverket. Det er ikke trygt å bruke den innebygde DHCP-tjeneren.",
+ "dhcp_leases": "DHCP-leieavtaler",
+ "dhcp_static_leases": "Statiske DHCP-leieavtaler",
+ "dhcp_leases_not_found": "Ingen DHCP-leieavtaler ble funnet",
+ "dhcp_config_saved": "Lagret DHCP-tjeneroppsettet",
+ "form_error_required": "Påkrevd felt",
+ "form_error_ip4_format": "Ugyldig IPv4-format",
+ "form_error_ip6_format": "Ugyldig IPv6-format",
+ "form_error_ip_format": "Ugyldig IPv4-format",
+ "form_error_mac_format": "Ugyldig MAC-format",
+ "form_error_positive": "Må være høyere enn 0",
+ "dhcp_form_gateway_input": "Gateway-IP",
+ "dhcp_form_subnet_input": "Nettverksmaske",
+ "dhcp_form_range_title": "Spennvidden til IP-adressene",
+ "dhcp_form_range_start": "Rekkeviddestart",
+ "dhcp_form_range_end": "Rekkeviddeslutt",
+ "dhcp_form_lease_title": "DHCP-leieavtalevarighet (i sekunder)",
+ "dhcp_form_lease_input": "Leieavtalenes varighet",
+ "dhcp_interface_select": "Velg DHCP-grensesnitt",
+ "dhcp_hardware_address": "Maskinvareadresse",
+ "dhcp_ip_addresses": "IP-adresser",
+ "dhcp_table_hostname": "Vertsnavn",
+ "dhcp_table_expires": "Utløper",
+ "dhcp_warning": "Hvis du vil aktivere DHCP-tjeneren likevel, så sørg for at det ikke er noen andre aktive DHCP-tjenere i nettverket ditt. Ellers kan det knekke internettilgangen til tilkoblede enheter!",
+ "dhcp_error": "Vi klarte ikke å fastslå om det er en annen DHCP-tjener i nettverket ditt eller ikke.",
+ "dhcp_static_ip_error": "For å kunne bruke DHCP-tjeneren, må det være satt en statisk IP-adresse. Vi klarte ikke å finne ut om dette nettverksgrensesnittet har blitt satt opp med en statisk IP-adresse. Vennligst sett opp en statisk IP-adresse manuelt.",
+ "dhcp_dynamic_ip_found": "Systemet ditt bruker et oppsett med dynamisk IP-adresse for grensesnittet <0>{{interfaceName}}0>. For å kunne bruke DHCP-tjeneren, må en statisk IP-adresse ha blitt satt opp. Din nåværende IP-adresse er <0>{{ipAddress}}0>. Vi vil automatisk gjøre denne IP-adressen statisk hvis du trykker på «Skru på DHCP»-knappen.",
+ "dhcp_lease_added": "Den statiske leieavtalen «{{key}}» ble vellykket lagt til",
+ "dhcp_lease_deleted": "Den statiske leieavtalen «{{key}}» ble vellykket lagt slettet",
+ "dhcp_new_static_lease": "Ny statisk leieavtale",
+ "dhcp_static_leases_not_found": "Ingen statiske DHCP-leieavtaler ble funnet",
+ "dhcp_add_static_lease": "Legg til statisk leieavtale",
+ "delete_confirm": "Er du sikker på at du vil slette «{{key}}»?",
+ "form_enter_hostname": "Skriv inn vertsnavnet",
+ "error_details": "Feildetaljer",
+ "back": "Tilbake",
+ "dashboard": "Kontrollsenter",
+ "settings": "Innstillinger",
+ "filters": "Filtre",
+ "query_log": "Forespørselslogg",
+ "faq": "OSS",
+ "version": "Versjon",
+ "address": "adresse",
+ "on": "PÅ",
+ "off": "AV",
+ "copyright": "Opphavsrett",
+ "homepage": "Hjemmeside",
+ "report_an_issue": "Send inn feilrapport",
+ "privacy_policy": "Personvernretningslinjer",
+ "enable_protection": "Skru på beskyttelse",
+ "enabled_protection": "Beskyttelse ble skrudd på",
+ "disable_protection": "Skru av beskyttelse",
+ "disabled_protection": "Beskyttelsen ble skrudd av",
+ "refresh_statics": "Oppfrisk statistikkene",
+ "dns_query": "DNS-forespørsler",
+ "blocked_by": "<0>Blokkert av filtre0>",
+ "stats_malware_phishing": "Blokkert skadevare/phishing",
+ "stats_adult": "Blokkerte voksennettsteder",
+ "stats_query_domain": "Mest forespurte domener",
+ "for_last_24_hours": "de siste 24 timene",
+ "for_last_days": "det siste døgnet",
+ "for_last_days_plural": "de siste {{count}} dagene",
+ "no_domains_found": "Ingen domener ble funnet",
+ "requests_count": "Antall forespørsler",
+ "top_blocked_domains": "Mest blokkerte domener",
+ "top_clients": "Vanligste klienter",
+ "no_clients_found": "Ingen klienter ble funnet",
+ "general_statistics": "Generelle statistikker",
+ "number_of_dns_query_days": "Antall DNS-forespørsler som ble behandlet det siste døgnet",
+ "number_of_dns_query_days_plural": "Antall DNS-forespørsler som ble behandlet de siste {{count}} dagene",
+ "number_of_dns_query_24_hours": "Antall DNS-forespørsler som ble behandlet de siste 24 timene",
+ "number_of_dns_query_blocked_24_hours": "Antall DNS-forespørsler som ble blokkert av adblock-filtre, hosts-lister, og domene-lister",
+ "number_of_dns_query_blocked_24_hours_by_sec": "Antall DNS-forespørsler som ble blokkert av AdGuard sin nettlesersikkerhetsmodul",
+ "number_of_dns_query_blocked_24_hours_adult": "Antall voksennettsteder som ble blokkert",
+ "enforced_save_search": "Påtvungede barnevennlige søk",
+ "number_of_dns_query_to_safe_search": "Antall DNS-forespørsler til søkemotorer der \"Safe Search\" ble fremtvunget",
+ "average_processing_time": "Gjennomsnittlig behandlingstid",
+ "average_processing_time_hint": "Gjennomsnittstid for behandling av DNS-forespørsler i millisekunder",
+ "block_domain_use_filters_and_hosts": "Blokker domener ved hjelp av filtre, «hosts»-filer, og rå domener",
+ "filters_block_toggle_hint": "Du kan sette opp blokkeringsoppføringer i Filtre-innstillingene.",
+ "use_adguard_browsing_sec": "Benytt AdGuard sin nettlesersikkerhetstjeneste",
+ "use_adguard_browsing_sec_hint": "AdGuard Home vil sjekke om domenet har blitt svartelistet av nettlesersikkerhetstjenesten. Den vil bruke en privatlivsvennlig søke-API til å utføre sjekken: kun en kort prefiks av domenenavnet med SHA256-salting blir sendt til tjeneren.",
+ "use_adguard_parental": "Benytt AdGuard sin foreldrekontroll-nettjeneste",
+ "use_adguard_parental_hint": "AdGuard Home vil sjekke om domenet inneholder erotisk materiale. Den benytter den samme privatlivsvennlige API-en som nettlesersikkerhetstjenesten.",
+ "enforce_safe_search": "Påtving barnevennlige søk",
+ "enforce_save_search_hint": "AdGuard Home kan fremtvinge \"Safe Search\" i de følgende søkemotorene: Google, YouTube, Bing, DuckDuckGo, og Yandex.",
+ "no_servers_specified": "Ingen tjenere er spesifisert",
+ "general_settings": "Generelle innstillinger",
+ "dns_settings": "DNS-innstillinger",
+ "encryption_settings": "Krypteringsinnstillinger",
+ "dhcp_settings": "DHCP-innstillinger",
+ "upstream_dns": "Oppstrøms-DNS-tjenere",
+ "upstream_dns_hint": "Hvis du lar dette feltet stå tomt, vil AdGuard Home will bruke Cloudflare DNS som en oppstrømstjener.",
+ "test_upstream_btn": "Test oppstrømstilkoblinger",
+ "apply_btn": "Benytt",
+ "disabled_filtering_toast": "Skrudde av filtrering",
+ "enabled_filtering_toast": "Skrudde på filtrering",
+ "disabled_safe_browsing_toast": "Skrudde av barnevennlig nettlesing",
+ "enabled_safe_browsing_toast": "Skrudde på barnevennlig nettlesing",
+ "disabled_parental_toast": "Skrudde av foreldrekontroll",
+ "enabled_parental_toast": "Skrudde på foreldrekontroll",
+ "disabled_safe_search_toast": "Skrudde av barnevennlige søk",
+ "enabled_save_search_toast": "Skrudde på barnevennlige søk",
+ "enabled_table_header": "Skrudd på",
+ "name_table_header": "Navn",
+ "filter_url_table_header": "Filterets URL",
+ "rules_count_table_header": "Antall oppføringer",
+ "last_time_updated_table_header": "Senest oppdatert",
+ "actions_table_header": "Handlinger",
+ "edit_table_action": "Rediger",
+ "delete_table_action": "Slett",
+ "filters_and_hosts": "Filtre og «hosts»-lister",
+ "filters_and_hosts_hint": "AdGuard Home forstår grunnleggende adblock-oppføringer, «hosts»-filsyntaks, og domenelister.",
+ "no_filters_added": "Ingen filtre er lagt til",
+ "add_filter_btn": "Legg til et filter",
+ "cancel_btn": "Avbryt",
+ "enter_name_hint": "Skriv inn navn",
+ "enter_url_hint": "Skriv inn nettadresse",
+ "check_updates_btn": "Se etter oppdateringer",
+ "new_filter_btn": "Nytt filterabonnement",
+ "enter_valid_filter_url": "Skriv inn en gyldig URL til et filterlisteabonnement.",
+ "custom_filter_rules": "Selvvalgte filtreringsregler",
+ "custom_filter_rules_hint": "Skriv inn én oppføring per linje. Du kan bruke adblock-oppføringer, «hosts»-filsyntaks, eller rå domener.",
+ "examples_title": "Eksempler",
+ "example_meaning_filter_block": "blokker tilgang til 'example.org'-domenet og alle dens underdomener",
+ "example_meaning_filter_whitelist": "opphev blokkeringen av 'example.org'-domenet og alle dens underdomener",
+ "example_meaning_host_block": "AdGuard Home vil nå videresende 'example.org'-domenet (men ikke dens underdomener) til 127.0.0.1.",
+ "example_comment": "! Her er det en kommentar",
+ "example_comment_meaning": "bare en kommentar",
+ "example_comment_hash": "# Også en kommentar",
+ "example_regex_meaning": "blokker tilgang til domener som samsvarer med den valgte ordinære oppføringen",
+ "example_upstream_regular": "vanlig DNS (over UDP)",
+ "example_upstream_dot": "kryptert <0>DNS-over-TLS0>",
+ "example_upstream_doh": "kryptert <0>DNS-over-HTTPS0>",
+ "example_upstream_sdns": "du kan bruke <0>DNS-stempler0> med <1>DNSCrypt1> eller <2>DNS-over-HTTPS2>-behandlere",
+ "example_upstream_tcp": "vanlig DNS (over TCP)",
+ "all_filters_up_to_date_toast": "Alle filterlistene er allerede fullt oppdatert",
+ "updated_upstream_dns_toast": "Oppdaterte oppstrøms-DNS-tjenerne",
+ "dns_test_ok_toast": "De spesifiserte DNS-tjenerne fungerer riktig",
+ "dns_test_not_ok_toast": "Tjeneren «{{key}}» kunne ikke brukes, vennligst dobbeltsjekk at du har skrevet den riktig",
+ "unblock_btn": "Tillat",
+ "block_btn": "Blokker",
+ "time_table_header": "Tidspunkt",
+ "domain_name_table_header": "Domenenavn",
+ "type_table_header": "Type",
+ "response_table_header": "Respons",
+ "client_table_header": "Klient",
+ "empty_response_status": "Tomt innhold",
+ "show_all_filter_type": "Vis alle",
+ "show_filtered_type": "Vis kun filtrerte",
+ "no_logs_found": "Ingen loggføringer ble funnet",
+ "refresh_btn": "Oppfrisk",
+ "previous_btn": "Forrige",
+ "next_btn": "Neste",
+ "loading_table_status": "Laster inn …",
+ "page_table_footer_text": "Side",
+ "of_table_footer_text": "av",
+ "rows_table_footer_text": "rekker",
+ "updated_custom_filtering_toast": "Oppdaterte de selvvalgte filtreringsreglene",
+ "rule_removed_from_custom_filtering_toast": "Oppføringen ble fjernet fra de selvvalgte filtreringsreglene",
+ "rule_added_to_custom_filtering_toast": "Oppføringen ble lagt til i de selvvalgte filtreringsreglene",
+ "query_log_response_status": "Status: {{value}}",
+ "query_log_filtered": "Filtrert av {{filter}}",
+ "query_log_confirm_clear": "Er du sikker på at du vil slette hele forespørselsloggen?",
+ "query_log_cleared": "Forespørselsloggen ble vellykket slettet",
+ "query_log_clear": "Tøm forespørselsloggene",
+ "query_log_retention": "Beholding av forespørselsloggføringene",
+ "query_log_enable": "Skru på loggføring",
+ "query_log_configuration": "Loggføringskonfigurasjon",
+ "query_log_disabled": "Forespørselsloggen er skrudd av og kan bli satt opp i <0>innstillingene0>",
+ "query_log_strict_search": "Bruk anførselstegn for strenge søk",
+ "query_log_retention_confirm": "Er du sikker på at du vil endre hvor lenge forespørselsloggføringene skal beholdes? Hvis du reduserer den interne verdien, vil noe av dataene gå tapt",
+ "source_label": "Kilde",
+ "found_in_known_domain_db": "Funnet i databasen over kjente domener.",
+ "category_label": "Kategori",
+ "rule_label": "Oppføring",
+ "filter_label": "Filter",
+ "unknown_filter": "Ukjent filter {{filterId}}",
+ "install_welcome_title": "Velkommen til AdGuard Home!",
+ "install_welcome_desc": "AdGuard Home er en nettverksdekkende reklame-og-sporings-blokkerende DNS-tjener. Formålet dens er å la deg styre hele nettverket ditt og alle dine enheter, og den krever ikke at klientene bruker spesifikke programmer.",
+ "install_settings_title": "Admin-nettgrensesnitt",
+ "install_settings_listen": "Lytt til grensesnitt",
+ "install_settings_port": "Port",
+ "install_settings_interface_link": "Ditt AdGuard Home-admin-nettgrensesnitt vil være tilgjengelig på de følgende adressene:",
+ "form_error_port": "Skriv inn en gyldig portverdi",
+ "install_settings_dns": "DNS-tjener",
+ "install_settings_dns_desc": "Du vil måtte sette opp enhetene eller ruteren din(e) til å bruke DNS-tjeneren på disse adressene:",
+ "install_settings_all_interfaces": "Alle grensesnitt",
+ "install_auth_title": "Autentisering",
+ "install_auth_desc": "Det er høyst anbefalt å sette opp passordautentisering på ditt AdGuard Home-adminnettgrensesnitt. Selv om du velger å bare gjøre den tilgjengelig på ditt lokale nettverk, er det fortsatt viktig å beskytte den fra ubegrenset tilgang.",
+ "install_auth_username": "Brukernavn",
+ "install_auth_password": "Passord",
+ "install_auth_confirm": "Bekreft passord",
+ "install_auth_username_enter": "Skriv inn brukernavn",
+ "install_auth_password_enter": "Skriv inn passord",
+ "install_step": "Trinn",
+ "install_devices_title": "Sett opp enhetene dine",
+ "install_devices_desc": "For å begynne å bruke AdGuard Home, må du sette opp enhetene dine til å bruke den.",
+ "install_submit_title": "Gratulerer!",
+ "install_submit_desc": "Oppsettsprosedyren er ferdig, og du er klar til å begynne å bruke AdGuard Home.",
+ "install_devices_router": "Ruter",
+ "install_devices_router_desc": "Dette oppsettet vil automatisk dekke alle enhetene som er koblet til hjemmeruteren din, og du vil ikke måtte sette opp hver av dem manuelt.",
+ "install_devices_address": "AdGuard Home-DNS-tjeneren lytter til de følgende adressene",
+ "install_devices_router_list_1": "Åpne innstillingene til ruteren din. Vanligvis kan du få tilgang til den på nettleseren din gjennom en URL (f.eks. http://192.168.0.1/ eller http://192.168.1.1/). Du kan bli spurt om å skrive inn passordet ditt. Hvis du ikke husker det, kan du som oftest tilbakestille passordet ditt ved å trykke på knapp på selve ruteren. Noen rutere krever et spesifikt program, som i så fall er ment å allerede ha blitt installert på din PC/mobil.",
+ "install_devices_router_list_2": "Finn DHCP-/DNS-innstillingene. Se etter DNS-bokstavene ved siden av et felt som tillater to eller tre sett med sifre, som hver er delt opp i fire grupper på 1-3 sifre.",
+ "install_devices_router_list_3": "Skriv inn din AdGuard Home-tjeners adresser her.",
+ "install_devices_windows_list_1": "Åpne «Kontrollpanel» gjennom Start-menyen eller et Windows-søk.",
+ "install_devices_windows_list_2": "Gå til «Nettverk og internett»-kategorien, og så til «Nettverks- og delingssenter».",
+ "install_devices_windows_list_3": "På den venstre siden av skjermen, finn «Endre innstillinger for nettverkskort» og klikk på den.",
+ "install_devices_windows_list_4": "Velg din aktive tilkobling, høyreklikk på den, og velg «Egenskaper».",
+ "install_devices_windows_list_5": "Finn «Internet Protocol versjon 4 (TCP/IP)» i listen, velg den, og så klikk på «Egenskaper» igjen.",
+ "install_devices_windows_list_6": "Velg «Bruk følgende DNS-serveradresser» og så skriv inn din AdGuard Home-tjeners adresser.",
+ "install_devices_macos_list_1": "Klikk på Apple-ikonet og gå til Systeminnstillinger.",
+ "install_devices_macos_list_2": "Klikk på «Nettverk».",
+ "install_devices_macos_list_3": "Velg den første tilkoblingen i listen din, og klikk på «Avansert».",
+ "install_devices_macos_list_4": "Velg DNS-fanen og skriv inn din AdGuard Home-tjeners adresser der.",
+ "install_devices_android_list_1": "Fra Android-startskjermen, trykk på «Innstillinger».",
+ "install_devices_android_list_2": "Velg «Wi-Fi» i menyen. Skjermen som lister opp alle de tilgjengelige nettverkene vil bli vist (det er umulig å velge selvvalgte DNS-adresser for mobiltilkoblinger uten en DNS-endringsapp).",
+ "install_devices_android_list_3": "Langtrykk på nettverket du er koblet til, og så trykk «Endre nettverket».",
+ "install_devices_android_list_4": "På noen enheter, vil du måtte huke av boksen for Avansert for se flere innstillinger. For å justere dine Android-DNS-innstillinger, vil du måtte endre IP-innstillingene fra DHCP til Statisk.",
+ "install_devices_android_list_5": "Endre de forvalgte 'DNS 1' og 'DNS 2'-verdiene til din AdGuard Home-tjeners adresser.",
+ "install_devices_ios_list_1": "Fra startskjermen, trykk på «Innstillinger».",
+ "install_devices_ios_list_2": "Velg Wi-Fi i den venstre menyen (det er umulig å sette opp DNS for mobildata-nettverk).",
+ "install_devices_ios_list_3": "Trykk på navnet til det nettverket som er aktivt for øyeblikket.",
+ "install_devices_ios_list_4": "I DNS-feltet, skriv inn din AdGuard Home-tjeners adresser.",
+ "get_started": "Kom i gang",
+ "next": "Neste",
+ "open_dashboard": "Åpne kontrollsenteret",
+ "install_saved": "Lagringen var vellykket",
+ "encryption_title": "Kryptering",
+ "encryption_desc": "Krypteringsstøtte (HTTPS/TLS) for både DNS og admin-nettgrensesnittet",
+ "encryption_config_saved": "Krypteringsoppsettet ble lagret",
+ "encryption_server": "Tjenerens navn",
+ "encryption_server_enter": "Skriv inn domenenavnet ditt",
+ "encryption_server_desc": "For å kunne bruke HTTPS, må du skrive inn tjenernavnet som samsvarer med ditt SSL-sertifikat.",
+ "encryption_redirect": "Automatisk omdiriger til HTTPS",
+ "encryption_redirect_desc": "Dersom dette er valgt, vil AdGuard Home automatisk omdirigere deg fra HTTP til HTTPS-adresser.",
+ "encryption_https": "HTTPS-port",
+ "encryption_https_desc": "Dersom HTTPS-porten er satt opp, vil AdGuard Home sitt admin-grensesnitt være tilgjengelig gjennom HTTPS, og vil også sørge for DNS-over-HTTPS på «/dns-query»-plasseringen.",
+ "encryption_dot": "'DNS-over-TLS'-port",
+ "encryption_dot_desc": "Dersom denne porten er satt opp, vil AdGuard Home kjøre en 'DNS-over-TLS'-tjener på denne porten.",
+ "encryption_certificates": "Sertifikater",
+ "encryption_certificates_desc": "For å bruke kryptering, må du skrive inn et gyldig SSL-sertifikatkjede for domenet ditt. Du kan få et gratis sertifikat hos <0>{{link}}0>, eller kjøpe et fra en av de troverdige sertifikatsautoritetene.",
+ "encryption_certificates_input": "Kopier / lim inn dine PEM-kodede sertifikater her.",
+ "encryption_status": "Status",
+ "encryption_expire": "Utløper",
+ "encryption_key": "Privat nøkkel",
+ "encryption_key_input": "Kopier / lim inn ditt sertifikats PEM-kodede private nøkkel her.",
+ "encryption_enable": "Skru på kryptering (HTTPS, DNS-over-HTTPS, og DNS-over-TLS)",
+ "encryption_enable_desc": "Dersom kryptering er skrudd på, vil AdGuard Home sitt admingrensesnitt virke over HTTPS, og DNS-tjeneren vil lytte etter forespørseler over DNS-over-HTTPS og DNS-over-TLS.",
+ "encryption_chain_valid": "Sertifikatskjeden er gyldig",
+ "encryption_chain_invalid": "Sertifikatskjeden er ugyldig",
+ "encryption_key_valid": "Dette er en gyldig {{type}}-type privat nøkkel",
+ "encryption_key_invalid": "Dette er en ugyldig {{type}}-type privat nøkkel",
+ "encryption_subject": "Tema",
+ "encryption_issuer": "Utsteder",
+ "encryption_hostnames": "Vertsnavn",
+ "encryption_reset": "Er du sikker på at du vil tilbakestille krypteringsinnstillingene?",
+ "topline_expiring_certificate": "Ditt SSL-sertifikat er i ferd med å utløpe. Oppdater <0>Krypteringsinnstillinger0>.",
+ "topline_expired_certificate": "SSL-sertifikatet har utløpt. Oppdater <0>Krypteringsinnstillinger0>.",
+ "form_error_port_range": "Skriv inn et portnummer i området 80-65535",
+ "form_error_port_unsafe": "Denne porten er ikke trygg",
+ "form_error_equal": "Burde ikke være de samme",
+ "form_error_password": "Passordet samsvarer ikke",
+ "reset_settings": "Tilbakestill innstillinger",
+ "update_announcement": "AdGuard Home {{version}} er nå tilgjengelig! <0>Klikk her0> for mere informasjon.",
+ "setup_guide": "Oppsettsveiledning",
+ "dns_addresses": "DNS-adresser",
+ "down": "Nedstrøm",
+ "fix": "Fiks",
+ "dns_providers": "Her er en <0>liste over kjente DNS-leverandører0> som du kan velge blant.",
+ "update_now": "Oppdater nå",
+ "update_failed": "Auto-oppdatering mislyktes. Vennligst følg trinnene for manuelle oppdateringer.",
+ "processing_update": "Vennligst vent, AdGuard Home blir oppdatert",
+ "clients_title": "Klienter",
+ "clients_desc": "Konfigurer enheter som er koblet til AdGuard Home",
+ "settings_global": "Overbestyrt",
+ "settings_custom": "Tilpasset",
+ "table_client": "Klient",
+ "table_name": "Navn",
+ "save_btn": "Lagre",
+ "client_add": "Legg til klient",
+ "client_new": "Ny klient",
+ "client_edit": "Rediger klienten",
+ "client_identifier": "Identifikator",
+ "ip_address": "IP-adresse",
+ "client_identifier_desc": "Klienter kan bli identifisert gjennom IP-adressen eller MAC-adressen. Vennligst bemerk at å bruke MAC som en identifikator, bare er mulig dersom AdGuard Home også er en <0>DHCP-tjener0>",
+ "form_enter_ip": "Skriv inn IP",
+ "form_enter_mac": "Skriv inn MAC",
+ "form_client_name": "Skriv inn klientnavnet",
+ "client_global_settings": "Bruk de overbestyrte innstillingene",
+ "client_deleted": "Klienten «{{key}}» ble vellykket slettet",
+ "client_added": "Klienten «{{key}}» ble vellykket lagt til",
+ "client_updated": "Klienten «{{key}}» ble vellykket oppdatert",
+ "clients_not_found": "Ingen klienter ble funnet",
+ "client_confirm_delete": "Er du sikker på at du vil slette klienten «{{key}}»?",
+ "filter_confirm_delete": "Er du sikker på at du vil slette filteret?",
+ "auto_clients_title": "Klienter (kjørende)",
+ "auto_clients_desc": "Loggføring over klientene som bruker AdGuard Home, men som ikke har blitt lagret i oppsettet",
+ "access_title": "Tilgangsinnstillinger",
+ "access_desc": "Her kan du sette opp tilgangsregler for AdGuard Home-DNS-tjeneren.",
+ "access_allowed_title": "Tillatte klienter",
+ "access_allowed_desc": "En liste over CIDR- eller IP-adresser. Dersom dette er satt opp, vil AdGuard Home kun akseptere forespørsler fra disse IP-adressene.",
+ "access_disallowed_title": "Klienter som skal avvises",
+ "access_disallowed_desc": "En liste over CIDR- eller IP-adresser. Dersom dette er satt opp, vil AdGuard Home avslå forespørsler fra disse IP-adressene.",
+ "access_blocked_title": "Blokkerte domener",
+ "access_blocked_desc": "Ikke forveksle dette med filtre. AdGuard Home vil nekte å behandle DNS-forespørsler som har disse domenene i forespørselene.",
+ "access_settings_saved": "Tilgangsinnstillingene ble vellykket lagret",
+ "updates_checked": "Oppdateringene ble vellykket sett etter",
+ "updates_version_equal": "AdGuard Home er fullt oppdatert",
+ "check_updates_now": "Se etter oppdateringer nå",
+ "dns_privacy": "DNS-privatliv",
+ "setup_dns_privacy_1": "<0>DNS-over-TLS:0> Benytt <1>{{address}}1>-strengen.",
+ "setup_dns_privacy_2": "<0>DNS-over-HTTPS:0> Benytt <1>{{address}}1>-strengen.",
+ "setup_dns_privacy_3": "<0>Vennligst bemerk at krypterte DNS-protokoller bare er støttet på Android 9. Så du må installere ytterligere programvare for andre operativsystemer.0><0>Her er en liste over programvare som du kan bruke.0>",
+ "setup_dns_privacy_android_1": "Android 9 har innebygd støtte for DNS-over-TLS. For å sette det opp, gå til Innstillinger → Nettverk og internett → Avansert → Privat DNS, og skriv inn domenenavnet ditt der.",
+ "setup_dns_privacy_android_2": "<0>AdGuard for Android0> støtter <1>DNS-over-HTTPS1> og <1>DNS-over-TLS1>.",
+ "setup_dns_privacy_android_3": "<0>Intra0> legger til <1>DNS-over-HTTPS1>-støtte i Android.",
+ "setup_dns_privacy_ios_1": "<0>DNSCloak0> støtter <1>DNS-over-HTTPS1>, men for å sette det opp til å bruke din egen tjener, vil du måtte generere et <2>DNS-stempel2> for det.",
+ "setup_dns_privacy_ios_2": "<0>AdGuard for iOS0> støtter <1>DNS-over-HTTPS1>- og <1>DNS-over-TLS1>-oppsett.",
+ "setup_dns_privacy_other_title": "Andre implementeringer",
+ "setup_dns_privacy_other_1": "AdGuard Home i seg selv kan brukes som en sikker DNS-klient for enhver plattform.",
+ "setup_dns_privacy_other_2": "<0>dnsproxy0> støtter alle kjente sikre DNS-protokoller.",
+ "setup_dns_privacy_other_3": "<0>dnscrypt-proxy0> støtter <1>DNS-over-HTTPS1>.",
+ "setup_dns_privacy_other_4": "<0>Mozilla Firefox0> støtter <1>DNS-over-HTTPS1>.",
+ "setup_dns_privacy_other_5": "Du finner flere implementeringer <0>her0> og <1>her1>.",
+ "setup_dns_notice": "For å benytte <1>DNS-over-HTTPS1> eller <1>DNS-over-TLS1>, må du <0>sette opp Kryptering0> i AdGuard Home-innstillingene.",
+ "rewrite_added": "DNS-omdirigeringen for «{{key}}» ble vellykket lagt til",
+ "rewrite_deleted": "DNS-omdirigeringen for «{{key}}» ble vellykket slettet",
+ "rewrite_add": "Legg til DNS-omdirigering",
+ "rewrite_not_found": "Ingen DNS-omdirigeringer ble funnet",
+ "rewrite_confirm_delete": "Er du sikker på at du vil slette DNS-omdirigeringen for «{{key}}»?",
+ "rewrite_desc": "Lar deg enkelt konfigurere selvvalgte DNS-tilbakemeldinger for et spesifikt domenenavn.",
+ "rewrite_applied": "Benyttet omdirigeringsregelen",
+ "dns_rewrites": "DNS-omdirigeringer",
+ "form_domain": "Skriv inn domene",
+ "form_answer": "Skriv inn IP-adresse eller domenenavn",
+ "form_error_domain_format": "Ugyldig domeneformat",
+ "form_error_answer_format": "Ugyldig svarformat",
+ "configure": "Sett opp",
+ "main_settings": "Hovedinnstillinger",
+ "block_services": "Blokker spesifikke tjenester",
+ "blocked_services": "Blokkerte tjenester",
+ "blocked_services_desc": "Gjør det mulig å blokkere populære nettsteder og tjenester med letthet.",
+ "blocked_services_saved": "Tjenesteblokkeringene ble vellykket lagret",
+ "blocked_services_global": "Bruk de overbestyrt blokkerte tjenestene",
+ "blocked_service": "Blokkert tjeneste",
+ "block_all": "Blokker alt",
+ "unblock_all": "Tillat alt",
+ "encryption_certificate_path": "Filbanen til sertifikatet",
+ "encryption_private_key_path": "Filbanen til den private nøkkelen",
+ "encryption_certificates_source_path": "Bestem en filbane for sertifikater",
+ "encryption_certificates_source_content": "Lim inn innholdet til sertifikatet",
+ "encryption_key_source_path": "Bestem en privat nøkkelfil",
+ "encryption_key_source_content": "Lim inn innholdet til den private nøkkelen",
+ "stats_params": "Statistikk-oppsett",
+ "config_successfully_saved": "Oppsettet ble vellykket lagret",
+ "interval_24_hour": "24 timer",
+ "interval_days": "{{count}} dag",
+ "interval_days_plural": "{{count}} dager",
+ "domain": "Domene",
+ "answer": "Svar",
+ "filter_added_successfully": "Filteret har blitt vellykket lagt til",
+ "statistics_configuration": "Statistikk-oppsett",
+ "statistics_retention": "Statistikkbeholding",
+ "statistics_retention_desc": "Hvis du reduserer intervallverdien, vil noen av dataene gå tapt",
+ "statistics_clear": " Tøm statistikkene",
+ "statistics_clear_confirm": "Er du sikker på at du vil slette statistikkene?",
+ "statistics_retention_confirm": "Er du sikker på at du vil endre hvor lenge statistikkene skal beholdes? Hvis du reduserer den interne verdien, vil noe av dataene gå tapt",
+ "statistics_cleared": "Statistikkene ble vellykket tømt",
+ "interval_hours": "{{count}} time",
+ "interval_hours_plural": "{{count}} timer",
+ "filters_configuration": "Oppsett av filtre",
+ "filters_enable": "Skru på filtre",
+ "filters_interval": "Filteroppdateringsvanlighet",
+ "disabled": "Skrudd av",
+ "username_label": "Brukernavn",
+ "username_placeholder": "Skriv inn brukernacvn",
+ "password_label": "Passord",
+ "password_placeholder": "Skriv inn passord",
+ "sign_in": "Logg på",
+ "sign_out": "Logg av",
+ "forgot_password": "Har du glemt passordet?",
+ "forgot_password_desc": "Vennligst følg <0>disse trinnene0> for å lage et nytt passord til brukerkontoen din.",
+ "location": "Posisjon",
+ "orgname": "Firmanavn",
+ "netname": "Nettverksnavn",
+ "descr": "Beskrivelse",
+ "whois": "Whois",
+ "filtering_rules_learn_more": "<0>Lær mer0> om å lage dine egne filterlister for AdGuard Home."
+}
\ No newline at end of file
diff --git a/client/src/__locales/pt-br.json b/client/src/__locales/pt-br.json
index 6229dd9e..b5d97fcc 100644
--- a/client/src/__locales/pt-br.json
+++ b/client/src/__locales/pt-br.json
@@ -19,6 +19,9 @@
"dhcp_leases_not_found": "Nenhuma concessão DHCP encontrada",
"dhcp_config_saved": "Salvar configurações do servidor DHCP",
"form_error_required": "Campo obrigatório",
+ "form_error_ip4_format": "Formato de endereço IPv4 inválido",
+ "form_error_ip6_format": "Formato de endereço IPv6 inválido",
+ "form_error_ip_format": "Formato de endereço IPv inválido",
"form_error_mac_format": "Formato do endereço MAC inválido",
"form_error_positive": "Deve ser maior que 0",
"dhcp_form_gateway_input": "IP do gateway",
@@ -95,6 +98,7 @@
"use_adguard_parental": "Usar o serviço de controle parental do AdGuard",
"use_adguard_parental_hint": "O AdGuard Home irá verificar se o domínio contém conteúdo adulto. Ele usa a mesma API amigável de privacidade que o serviço de segurança da navegação.",
"enforce_safe_search": "Forçar pesquisa segura",
+ "enforce_save_search_hint": "O AdGuard Home pode forçar a pesquisa segura nos seguintes motores de busca: Google, YouTube, Bing, DuckDuckGo, Yandex, Pixabay.",
"no_servers_specified": "Nenhum servidor especificado",
"general_settings": "Configurações gerais",
"dns_settings": "Configurações de DNS",
diff --git a/client/src/__locales/pt-pt.json b/client/src/__locales/pt-pt.json
index 1fb6c6ab..b2916f31 100644
--- a/client/src/__locales/pt-pt.json
+++ b/client/src/__locales/pt-pt.json
@@ -19,6 +19,9 @@
"dhcp_leases_not_found": "Nenhuma concessão DHCP encontrada",
"dhcp_config_saved": "Guardar configurações do servidor DHCP",
"form_error_required": "Campo obrigatório",
+ "form_error_ip4_format": "Formato de endereço IPv4 inválido",
+ "form_error_ip6_format": "Formato de endereço IPv6 inválido",
+ "form_error_ip_format": "Formato de endereço IPv4 inválido",
"form_error_mac_format": "Formato do endereço MAC inválido",
"form_error_positive": "Deve ser maior que 0",
"dhcp_form_gateway_input": "IP do gateway",
@@ -95,6 +98,7 @@
"use_adguard_parental": "Usar o serviço de controlo parental do AdGuard",
"use_adguard_parental_hint": "O AdGuard Home irá verificar se o domínio contém conteúdo adulto. Usa a mesma API amigável de privacidade que o serviço de segurança da navegação.",
"enforce_safe_search": "Forçar pesquisa segura",
+ "enforce_save_search_hint": "O AdGuard Home pode forçar a pesquisa segura nos seguintes motores de busca: Google, Youtube, Bing, DuckDuckGo, Yandex, Pixabay.",
"no_servers_specified": "Nenhum servidor especificado",
"general_settings": "Definições gerais",
"dns_settings": "Definições de DNS",
diff --git a/client/src/__locales/sk.json b/client/src/__locales/sk.json
index a10c17f8..4423e669 100644
--- a/client/src/__locales/sk.json
+++ b/client/src/__locales/sk.json
@@ -19,6 +19,9 @@
"dhcp_leases_not_found": "Neboli nájdené žiadne DHCP prenájmy",
"dhcp_config_saved": "Konfigurácia DHCP servera uložená",
"form_error_required": "Povinná položka",
+ "form_error_ip4_format": "Nesprávny formát IPv4",
+ "form_error_ip6_format": "Nesprávny formát IPv6",
+ "form_error_ip_format": "Nesprávny formát IPv4",
"form_error_mac_format": "Nesprávny MAC formát",
"form_error_positive": "Musí byť väčšie ako 0",
"dhcp_form_gateway_input": "IP brána",
@@ -95,6 +98,7 @@
"use_adguard_parental": "Použiť AdGuard službu Rodičovská kontrola",
"use_adguard_parental_hint": "AdGuard Home skontroluje, či doména obsahuje materiály pre dospelých. Používa rovnaké API priateľské k ochrane osobných údajov ako služba Bezpečného prehliadania.",
"enforce_safe_search": "Vynútiť bezpečné vyhľadávanie",
+ "enforce_save_search_hint": "AdGuard Home môže vynútiť bezpečné vyhľadávanie v nasledujúcich vyhľadávačoch: Google, Youtube, Bing, DuckDuckGo and Yandex.",
"no_servers_specified": "Neboli špecifikované žiadne servery",
"general_settings": "Všeobecné nastavenia",
"dns_settings": "Nastavenia DNS",
diff --git a/client/src/__locales/sl.json b/client/src/__locales/sl.json
index 3edc7875..f69bd688 100644
--- a/client/src/__locales/sl.json
+++ b/client/src/__locales/sl.json
@@ -19,6 +19,9 @@
"dhcp_leases_not_found": "Ni najdenih najemov DHCP",
"dhcp_config_saved": "Shranjena konfiguracija DHCP strežnika",
"form_error_required": "Zahtevano polje",
+ "form_error_ip4_format": "Neveljaven format IPv4",
+ "form_error_ip6_format": "Neveljaven format IPv6",
+ "form_error_ip_format": "Neveljaven format IP",
"form_error_mac_format": "Neveljaven MAC format",
"form_error_positive": "Mora biti večja od 0",
"dhcp_form_gateway_input": "IP prehoda",
@@ -95,6 +98,7 @@
"use_adguard_parental": "Uporabi AdGuardovo spletno storitev 'Starševski nadzor'",
"use_adguard_parental_hint": "AdGuard Home bo preveril, če domena vsebuje vsebine za odrasle. Uporablja enako, za zasebnost prijazen API, kot spletno storitev za varnost brskanja.",
"enforce_safe_search": "Vsili varno iskanje",
+ "enforce_save_search_hint": "AdGuard Home lahko uveljavi varno iskanje v naslednjih iskalnikih: Google, Youtube, Bing, DuckDuckGo, Yandex, Pixabay.",
"no_servers_specified": "Ni določenih strežnikov",
"general_settings": "Splošne nastavitve",
"dns_settings": "Nastavitve DNS",
diff --git a/client/src/__locales/zh-tw.json b/client/src/__locales/zh-tw.json
index 465679c4..03e1554d 100644
--- a/client/src/__locales/zh-tw.json
+++ b/client/src/__locales/zh-tw.json
@@ -19,6 +19,9 @@
"dhcp_leases_not_found": "無已發現之動態主機設定協定(DHCP)租賃",
"dhcp_config_saved": "已儲存動態主機設定協定(DHCP)伺服器配置",
"form_error_required": "必填的欄位",
+ "form_error_ip4_format": "無效的 IPv4 格式",
+ "form_error_ip6_format": "無效的 IPv6 格式",
+ "form_error_ip_format": "無效的 IP 格式",
"form_error_mac_format": "無效的媒體存取控制(MAC)格式",
"form_error_positive": "必須大於 0",
"dhcp_form_gateway_input": "閘道 IP",
@@ -95,6 +98,7 @@
"use_adguard_parental": "使用 AdGuard 家長監控之網路服務",
"use_adguard_parental_hint": "AdGuard Home 將檢查網域是否包含成人資料。它使用如同瀏覽安全網路服務一樣之友好的隱私應用程式介面(API)。",
"enforce_safe_search": "強制執行安全搜尋",
+ "enforce_save_search_hint": "AdGuard Home 可在下列的搜尋引擎:Google、YouTube、Bing、DuckDuckGo、Yandex 和 Pixabay 中強制執行安全搜尋。",
"no_servers_specified": "無已明確指定的伺服器",
"general_settings": "一般的設定",
"dns_settings": "DNS 設定",
diff --git a/client/src/i18n.js b/client/src/i18n.js
index 5b144110..ba45e8f6 100644
--- a/client/src/i18n.js
+++ b/client/src/i18n.js
@@ -22,6 +22,7 @@ import de from './__locales/de.json';
import id from './__locales/id.json';
import it from './__locales/it.json';
import ko from './__locales/ko.json';
+import no from './__locales/no.json';
import nl from './__locales/nl.json';
import pl from './__locales/pl.json';
import ptPT from './__locales/pt-pt.json';
@@ -81,6 +82,9 @@ const resources = {
ko: {
translation: ko,
},
+ no: {
+ translation: no,
+ },
nl: {
translation: nl,
},
diff --git a/home/i18n.go b/home/i18n.go
index 4b20f606..69f9fa5f 100644
--- a/home/i18n.go
+++ b/home/i18n.go
@@ -30,6 +30,7 @@ var allowedLanguages = map[string]bool{
"id": true,
"it": true,
"ko": true,
+ "no": true,
"nl": true,
"pl": true,
"pt-pt": true,