From b01c10b73e2e6499f1c6138060534489573d6557 Mon Sep 17 00:00:00 2001 From: Ainar Garipov Date: Tue, 30 Jan 2024 18:43:51 +0300 Subject: [PATCH] all: sync with master --- CHANGELOG.md | 77 ++++ README.md | 17 +- client/package-lock.json | 26 +- client/package.json | 2 +- client/src/__locales/cs.json | 3 + client/src/__locales/da.json | 3 + client/src/__locales/de.json | 13 +- client/src/__locales/en.json | 3 + client/src/__locales/es.json | 3 + client/src/__locales/fi.json | 41 +- client/src/__locales/id.json | 53 +-- client/src/__locales/nl.json | 3 + client/src/__locales/pt-br.json | 3 + client/src/__locales/pt-pt.json | 3 + client/src/__locales/ru.json | 3 + client/src/__locales/si-lk.json | 4 +- client/src/__locales/sk.json | 3 + client/src/__locales/sl.json | 3 + client/src/__locales/tr.json | 3 + client/src/__locales/uk.json | 3 + client/src/__locales/zh-tw.json | 6 +- client/src/components/Filters/Examples.js | 2 +- .../Filters/Services/ScheduleForm/Timezone.js | 10 +- .../Filters/Services/ScheduleForm/index.js | 7 +- .../src/components/Settings/Clients/Form.js | 4 +- client/src/components/Settings/Dhcp/Leases.js | 7 +- .../src/components/Settings/Dns/Cache/Form.js | 2 +- .../components/Settings/Encryption/Form.js | 61 ++- .../components/Settings/Encryption/index.js | 5 +- client/src/helpers/constants.js | 3 +- client/src/helpers/filters/filters.js | 14 +- client/src/helpers/form.js | 2 +- client/src/helpers/trackers/trackers.json | 25 +- client/src/helpers/validators.js | 15 + client/src/reducers/dhcp.js | 3 +- client/src/reducers/dnsConfig.js | 4 +- client/src/reducers/encryption.js | 1 + go.mod | 36 +- go.sum | 74 ++-- internal/aghalg/ringbuffer.go | 18 +- internal/aghalg/ringbuffer_test.go | 32 +- internal/aghchan/aghchan.go | 33 -- internal/aghnet/hostscontainer.go | 192 ++------- internal/aghnet/hostscontainer_linux.go | 17 - internal/aghnet/hostscontainer_others.go | 7 - internal/aghnet/hostscontainer_test.go | 318 ++------------- internal/aghnet/hostscontainer_windows.go | 32 -- internal/aghnet/net_test.go | 5 - internal/aghnet/testdata/etc_hosts | 38 -- internal/aghnet/testdata/ifaces | 1 - internal/aghnet/testdata/include-subsources | 5 - internal/client/addrproc.go | 3 +- internal/client/client.go | 109 ++++- internal/configmigrate/configmigrate.go | 5 + .../migrations_internal_test.go | 84 +++- .../migrator.go | 7 +- .../migrator_test.go | 6 +- .../TestMigrateConfig_Migrate/v1/input.yml | 0 .../TestMigrateConfig_Migrate/v1/output.yml | 0 .../TestMigrateConfig_Migrate/v10/input.yml | 0 .../TestMigrateConfig_Migrate/v10/output.yml | 0 .../TestMigrateConfig_Migrate/v11/input.yml | 0 .../TestMigrateConfig_Migrate/v11/output.yml | 0 .../TestMigrateConfig_Migrate/v12/input.yml | 0 .../TestMigrateConfig_Migrate/v12/output.yml | 0 .../TestMigrateConfig_Migrate/v13/input.yml | 0 .../TestMigrateConfig_Migrate/v13/output.yml | 0 .../TestMigrateConfig_Migrate/v14/input.yml | 0 .../TestMigrateConfig_Migrate/v14/output.yml | 0 .../TestMigrateConfig_Migrate/v15/input.yml | 0 .../TestMigrateConfig_Migrate/v15/output.yml | 0 .../TestMigrateConfig_Migrate/v16/input.yml | 0 .../TestMigrateConfig_Migrate/v16/output.yml | 0 .../TestMigrateConfig_Migrate/v17/input.yml | 0 .../TestMigrateConfig_Migrate/v17/output.yml | 0 .../TestMigrateConfig_Migrate/v18/input.yml | 0 .../TestMigrateConfig_Migrate/v18/output.yml | 0 .../TestMigrateConfig_Migrate/v19/input.yml | 0 .../TestMigrateConfig_Migrate/v19/output.yml | 0 .../TestMigrateConfig_Migrate/v2/input.yml | 0 .../TestMigrateConfig_Migrate/v2/output.yml | 0 .../TestMigrateConfig_Migrate/v20/input.yml | 0 .../TestMigrateConfig_Migrate/v20/output.yml | 0 .../TestMigrateConfig_Migrate/v21/input.yml | 0 .../TestMigrateConfig_Migrate/v21/output.yml | 0 .../TestMigrateConfig_Migrate/v22/input.yml | 0 .../TestMigrateConfig_Migrate/v22/output.yml | 0 .../TestMigrateConfig_Migrate/v23/input.yml | 0 .../TestMigrateConfig_Migrate/v23/output.yml | 0 .../TestMigrateConfig_Migrate/v24/input.yml | 0 .../TestMigrateConfig_Migrate/v24/output.yml | 0 .../TestMigrateConfig_Migrate/v25/input.yml | 0 .../TestMigrateConfig_Migrate/v25/output.yml | 0 .../TestMigrateConfig_Migrate/v26/input.yml | 0 .../TestMigrateConfig_Migrate/v26/output.yml | 0 .../TestMigrateConfig_Migrate/v27/input.yml | 0 .../TestMigrateConfig_Migrate/v27/output.yml | 0 .../TestMigrateConfig_Migrate/v3/input.yml | 0 .../TestMigrateConfig_Migrate/v3/output.yml | 0 .../TestMigrateConfig_Migrate/v4/input.yml | 0 .../TestMigrateConfig_Migrate/v4/output.yml | 0 .../TestMigrateConfig_Migrate/v5/input.yml | 0 .../TestMigrateConfig_Migrate/v5/output.yml | 0 .../TestMigrateConfig_Migrate/v6/input.yml | 0 .../TestMigrateConfig_Migrate/v6/output.yml | 0 .../TestMigrateConfig_Migrate/v7/input.yml | 0 .../TestMigrateConfig_Migrate/v7/output.yml | 0 .../TestMigrateConfig_Migrate/v8/input.yml | 0 .../TestMigrateConfig_Migrate/v8/output.yml | 0 .../TestMigrateConfig_Migrate/v9/input.yml | 0 .../TestMigrateConfig_Migrate/v9/output.yml | 0 internal/{confmigrate => configmigrate}/v1.go | 2 +- .../{confmigrate => configmigrate}/v10.go | 2 +- .../{confmigrate => configmigrate}/v11.go | 2 +- .../{confmigrate => configmigrate}/v12.go | 2 +- .../{confmigrate => configmigrate}/v13.go | 2 +- .../{confmigrate => configmigrate}/v14.go | 2 +- .../{confmigrate => configmigrate}/v15.go | 2 +- .../{confmigrate => configmigrate}/v16.go | 2 +- .../{confmigrate => configmigrate}/v17.go | 2 +- .../{confmigrate => configmigrate}/v18.go | 2 +- .../{confmigrate => configmigrate}/v19.go | 2 +- internal/{confmigrate => configmigrate}/v2.go | 2 +- .../{confmigrate => configmigrate}/v20.go | 2 +- .../{confmigrate => configmigrate}/v21.go | 2 +- .../{confmigrate => configmigrate}/v22.go | 2 +- .../{confmigrate => configmigrate}/v23.go | 2 +- .../{confmigrate => configmigrate}/v24.go | 2 +- .../{confmigrate => configmigrate}/v25.go | 2 +- .../{confmigrate => configmigrate}/v26.go | 2 +- .../{confmigrate => configmigrate}/v27.go | 2 +- internal/configmigrate/v28.go | 47 +++ internal/{confmigrate => configmigrate}/v3.go | 2 +- internal/{confmigrate => configmigrate}/v4.go | 2 +- internal/{confmigrate => configmigrate}/v5.go | 2 +- internal/{confmigrate => configmigrate}/v6.go | 2 +- internal/{confmigrate => configmigrate}/v7.go | 2 +- internal/{confmigrate => configmigrate}/v8.go | 2 +- internal/{confmigrate => configmigrate}/v9.go | 2 +- .../{confmigrate => configmigrate}/yaml.go | 2 +- internal/dhcpsvc/v4.go | 215 +++++++++- internal/dhcpsvc/v4_internal_test.go | 88 +++++ internal/dhcpsvc/v6.go | 53 ++- internal/dnsforward/config.go | 95 +++-- internal/dnsforward/dns64_test.go | 1 + internal/dnsforward/dnsforward.go | 61 ++- internal/dnsforward/dnsforward_test.go | 90 +++-- internal/dnsforward/dnsrewrite_test.go | 1 + internal/dnsforward/filter.go | 33 +- internal/dnsforward/filter_test.go | 1 + internal/dnsforward/http.go | 89 +++-- internal/dnsforward/http_test.go | 16 +- internal/dnsforward/msg.go | 36 +- internal/dnsforward/process.go | 42 +- internal/dnsforward/process_internal_test.go | 6 +- internal/dnsforward/stats.go | 4 +- internal/dnsforward/svcbmsg_test.go | 1 + internal/dnsforward/upstreams.go | 20 +- internal/filtering/dnsrewrite.go | 37 -- internal/filtering/dnsrewrite_test.go | 157 -------- internal/filtering/filtering.go | 69 +--- internal/filtering/hosts.go | 92 +++++ internal/filtering/hosts_test.go | 191 +++++++++ internal/filtering/http.go | 16 +- internal/filtering/rulelist/filter.go | 338 ++++++++++++++++ internal/filtering/rulelist/filter_test.go | 107 +++++ internal/filtering/rulelist/parser_test.go | 8 +- internal/filtering/rulelist/rulelist.go | 48 ++- internal/filtering/rulelist/rulelist_test.go | 22 +- internal/filtering/safesearch/safesearch.go | 5 +- internal/filtering/servicelist.go | 86 +++- internal/home/client.go | 216 ++++++++-- internal/home/client_internal_test.go | 124 ++++++ internal/home/clients.go | 374 +++++++++--------- internal/home/clients_internal_test.go | 101 ++--- internal/home/clientshttp.go | 137 ++++--- internal/home/config.go | 25 +- internal/home/dns.go | 30 +- internal/home/dns_internal_test.go | 4 +- internal/home/home.go | 20 +- internal/home/options.go | 3 +- internal/home/tls.go | 132 ++++--- internal/next/cmd/opt.go | 3 +- internal/next/dnssvc/dnssvc.go | 2 +- internal/querylog/qlog.go | 5 +- internal/querylog/qlogreader.go | 1 - internal/querylog/querylog.go | 11 +- internal/querylog/search.go | 14 +- internal/stats/unit.go | 6 +- internal/tools/go.mod | 18 +- internal/tools/go.sum | 42 +- internal/version/version.go | 65 ++- internal/whois/whois.go | 2 +- openapi/CHANGELOG.md | 22 +- openapi/openapi.yaml | 18 +- scripts/make/go-lint.sh | 12 +- 196 files changed, 3190 insertions(+), 1790 deletions(-) delete mode 100644 internal/aghchan/aghchan.go delete mode 100644 internal/aghnet/hostscontainer_linux.go delete mode 100644 internal/aghnet/hostscontainer_others.go delete mode 100644 internal/aghnet/hostscontainer_windows.go delete mode 100644 internal/aghnet/testdata/etc_hosts delete mode 100644 internal/aghnet/testdata/ifaces delete mode 100644 internal/aghnet/testdata/include-subsources create mode 100644 internal/configmigrate/configmigrate.go rename internal/{confmigrate => configmigrate}/migrations_internal_test.go (95%) rename internal/{confmigrate => configmigrate}/migrator.go (95%) rename internal/{confmigrate => configmigrate}/migrator_test.go (97%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v1/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v1/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v10/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v10/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v11/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v11/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v12/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v12/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v13/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v13/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v14/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v14/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v15/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v15/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v16/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v16/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v17/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v17/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v18/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v18/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v19/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v19/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v2/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v2/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v20/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v20/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v21/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v21/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v22/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v22/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v23/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v23/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v24/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v24/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v25/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v25/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v26/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v26/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v27/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v27/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v3/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v3/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v4/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v4/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v5/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v5/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v6/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v6/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v7/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v7/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v8/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v8/output.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v9/input.yml (100%) rename internal/{confmigrate => configmigrate}/testdata/TestMigrateConfig_Migrate/v9/output.yml (100%) rename internal/{confmigrate => configmigrate}/v1.go (97%) rename internal/{confmigrate => configmigrate}/v10.go (99%) rename internal/{confmigrate => configmigrate}/v11.go (96%) rename internal/{confmigrate => configmigrate}/v12.go (97%) rename internal/{confmigrate => configmigrate}/v13.go (96%) rename internal/{confmigrate => configmigrate}/v14.go (98%) rename internal/{confmigrate => configmigrate}/v15.go (98%) rename internal/{confmigrate => configmigrate}/v16.go (98%) rename internal/{confmigrate => configmigrate}/v17.go (96%) rename internal/{confmigrate => configmigrate}/v18.go (97%) rename internal/{confmigrate => configmigrate}/v19.go (98%) rename internal/{confmigrate => configmigrate}/v2.go (97%) rename internal/{confmigrate => configmigrate}/v20.go (96%) rename internal/{confmigrate => configmigrate}/v21.go (97%) rename internal/{confmigrate => configmigrate}/v22.go (98%) rename internal/{confmigrate => configmigrate}/v23.go (98%) rename internal/{confmigrate => configmigrate}/v24.go (98%) rename internal/{confmigrate => configmigrate}/v25.go (96%) rename internal/{confmigrate => configmigrate}/v26.go (99%) rename internal/{confmigrate => configmigrate}/v27.go (98%) create mode 100644 internal/configmigrate/v28.go rename internal/{confmigrate => configmigrate}/v3.go (96%) rename internal/{confmigrate => configmigrate}/v4.go (95%) rename internal/{confmigrate => configmigrate}/v5.go (97%) rename internal/{confmigrate => configmigrate}/v6.go (97%) rename internal/{confmigrate => configmigrate}/v7.go (98%) rename internal/{confmigrate => configmigrate}/v8.go (96%) rename internal/{confmigrate => configmigrate}/v9.go (95%) rename internal/{confmigrate => configmigrate}/yaml.go (98%) create mode 100644 internal/dhcpsvc/v4_internal_test.go create mode 100644 internal/filtering/hosts.go create mode 100644 internal/filtering/hosts_test.go create mode 100644 internal/filtering/rulelist/filter.go create mode 100644 internal/filtering/rulelist/filter_test.go create mode 100644 internal/home/client_internal_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 889bac88..d14cfee1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,83 @@ See also the [v0.107.44 GitHub milestone][ms-v0.107.44]. NOTE: Add new changes BELOW THIS COMMENT. --> +### Added + +- Etc timezones to the timezone list ([#6568]). +- The schema version of the configuration file to the output of running + `AdGuardHome` (or `AdGuardHome.exe`) with `-v --version` command-line options + ([#6545]). +- Ability to disable plain-DNS serving via UI if an encrypted protocol is + already used ([#1660]). + +### Changed + +- The bootstrapped upstream addresses now updated according to the TTL of the + bootstrap DNS response ([#6321]). +- Logging level of timeout errors is now `error` instead of `debug` ([#6574]). +- The field `"upstream_mode"` in `POST /control/dns_config` and + `GET /control/dns_info` HTTP APIs now accepts `load_balance` value. Check + `openapi/CHANGELOG.md` for more details. + +#### Configuration changes + +In this release, the schema version has changed from 27 to 28. + +- The new property `clients.persistent.*.uid`, which is unique identifier of the + persistent client. +- The properties `dns.all_servers` and `dns.fastest_addr` were removed, their + values migrated to newly added field `dns.upstream_mode` that describes the + logic through which upstreams will be used. See also a [Wiki + page][wiki-config]. + + ```yaml + # BEFORE: + 'dns': + # … + 'all_servers': true + 'fastest_addr': true + + # AFTER: + 'dns': + # … + 'upstream_mode': 'parallel' + ``` + + To rollback this change, remove the new field `upstream_mode`, set back + `dns.all_servers` and `dns.fastest_addr` properties in `dns` section, and + change the `schema_version` back to `27`. + +### Fixed + +- Panic on using `--no-etc-hosts` flag ([#6644]). +- Schedule display in the client settings after creating or updating. +- Zero value in `querylog.size_memory` disables logging ([#6570]). +- Non-anonymized IP addresses on the dashboard ([#6584]). +- Maximum cache TTL requirement when editing minimum cache TTL in the Web UI + ([#6409]). +- Load balancing algorithm stuck on a single server ([#6480]). +- Statistics for 7 days displayed as 168 hours on the dashboard. +- Pre-filling the Edit static lease window with data ([#6534]). +- Names defined in the `/etc/hosts` for a single address family wrongly + considered undefined for another family ([#6541]). +- Omitted CNAME records in safe search results, which can cause YouTube to not + work on iOS ([#6352]). + +[#6321]: https://github.com/AdguardTeam/AdGuardHome/issues/6321 +[#6352]: https://github.com/AdguardTeam/AdGuardHome/issues/6352 +[#6409]: https://github.com/AdguardTeam/AdGuardHome/issues/6409 +[#6480]: https://github.com/AdguardTeam/AdGuardHome/issues/6480 +[#6534]: https://github.com/AdguardTeam/AdGuardHome/issues/6534 +[#6541]: https://github.com/AdguardTeam/AdGuardHome/issues/6541 +[#6545]: https://github.com/AdguardTeam/AdGuardHome/issues/6545 +[#6568]: https://github.com/AdguardTeam/AdGuardHome/issues/6568 +[#6570]: https://github.com/AdguardTeam/AdGuardHome/issues/6570 +[#6574]: https://github.com/AdguardTeam/AdGuardHome/issues/6574 +[#6584]: https://github.com/AdguardTeam/AdGuardHome/issues/6584 +[#6644]: https://github.com/AdguardTeam/AdGuardHome/issues/6644 + +[wiki-config]: https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration + diff --git a/README.md b/README.md index 1a6937f1..3e2b4f2b 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,15 @@ Open your terminal and execute these commands: git clone https://github.com/AdguardTeam/AdGuardHome cd AdGuardHome make +``` + + #### Building with Node.js 17 and later + +In order to build AdGuard Home with Node.js 17 and later, specify +`--openssl-legacy-provider` option. + +```sh +export NODE_OPTIONS=--openssl-legacy-provider ``` **NOTE:** The non-standard `-j` flag is currently not supported, so building @@ -409,6 +418,7 @@ There are three options how you can install an unstable version: ```sh curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge ``` + [wiki-platf]: https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms @@ -463,10 +473,6 @@ bug or implementing the feature. [@kongfl888](https://github.com/kongfl888) (originally by [@rufengsuixing](https://github.com/rufengsuixing)). - * [Prometheus exporter for AdGuard - Home](https://github.com/ebrianne/adguard-exporter) by - [@ebrianne](https://github.com/ebrianne). - * [Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home instance](https://github.com/Lissy93/AdGuardian-Term) by [@Lissy93](https://github.com/Lissy93) @@ -485,7 +491,8 @@ bug or implementing the feature. * [Node.js library](https://github.com/Andrea055/AdguardHomeAPI) by [@Andrea055](https://github.com/Andrea055/). - + * [Browser Extension](https://github.com/satheshshiva/Adguard-Home-Browser-Ext) by + [@satheshshiva](https://github.com/satheshshiva/). ## Acknowledgments diff --git a/client/package-lock.json b/client/package-lock.json index a06f0c18..0c7da114 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -11,6 +11,7 @@ "@nivo/line": "^0.64.0", "axios": "^0.19.2", "classnames": "^2.2.6", + "countries-and-timezones": "^3.6.0", "date-fns": "^1.29.0", "i18next": "^19.6.2", "i18next-browser-languagedetector": "^4.2.0", @@ -37,7 +38,6 @@ "redux-actions": "^2.6.5", "redux-form": "^8.3.5", "redux-thunk": "^2.3.0", - "timezones-list": "^3.0.2", "url-polyfill": "^1.1.9" }, "devDependencies": { @@ -5596,6 +5596,15 @@ "node": ">=8" } }, + "node_modules/countries-and-timezones": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/countries-and-timezones/-/countries-and-timezones-3.6.0.tgz", + "integrity": "sha512-8/nHBCs1eKeQ1jnsZVGdqrLYxS8nPcfJn8PnmxdJXWRLZdXsGFR8gnVhRjatGDBjqmPm7H+FtYpBYTPWd0Eiqg==", + "engines": { + "node": ">=8.x", + "npm": ">=5.x" + } + }, "node_modules/create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -18881,11 +18890,6 @@ "node": ">=0.6.0" } }, - "node_modules/timezones-list": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/timezones-list/-/timezones-list-3.0.2.tgz", - "integrity": "sha512-I698hm6Jp/xxkwyTSOr39pZkYKETL8LDJeSIhjxXBfPUAHM5oZNuQ4o9UK3PSkDBOkjATecSOBb3pR1IkIBUsg==" - }, "node_modules/tiny-invariant": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", @@ -25268,6 +25272,11 @@ "yaml": "^1.7.2" } }, + "countries-and-timezones": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/countries-and-timezones/-/countries-and-timezones-3.6.0.tgz", + "integrity": "sha512-8/nHBCs1eKeQ1jnsZVGdqrLYxS8nPcfJn8PnmxdJXWRLZdXsGFR8gnVhRjatGDBjqmPm7H+FtYpBYTPWd0Eiqg==" + }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -35674,11 +35683,6 @@ "setimmediate": "^1.0.4" } }, - "timezones-list": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/timezones-list/-/timezones-list-3.0.2.tgz", - "integrity": "sha512-I698hm6Jp/xxkwyTSOr39pZkYKETL8LDJeSIhjxXBfPUAHM5oZNuQ4o9UK3PSkDBOkjATecSOBb3pR1IkIBUsg==" - }, "tiny-invariant": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", diff --git a/client/package.json b/client/package.json index 23c1eea6..64b3f03b 100644 --- a/client/package.json +++ b/client/package.json @@ -16,6 +16,7 @@ "@nivo/line": "^0.64.0", "axios": "^0.19.2", "classnames": "^2.2.6", + "countries-and-timezones": "^3.6.0", "date-fns": "^1.29.0", "i18next": "^19.6.2", "i18next-browser-languagedetector": "^4.2.0", @@ -42,7 +43,6 @@ "redux-actions": "^2.6.5", "redux-form": "^8.3.5", "redux-thunk": "^2.3.0", - "timezones-list": "^3.0.2", "url-polyfill": "^1.1.9" }, "devDependencies": { diff --git a/client/src/__locales/cs.json b/client/src/__locales/cs.json index 5d02697f..a13d6a48 100644 --- a/client/src/__locales/cs.json +++ b/client/src/__locales/cs.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Názvy hostitelů", "encryption_reset": "Opravdu chcete obnovit nastavení šifrování?", "encryption_warning": "Varování", + "encryption_plain_dns_enable": "Povolit běžný DNS", + "encryption_plain_dns_desc": "Ve výchozím nastavení je povolen běžný DNS. Můžete ho zakázat, aby všechna zařízení používala šifrovaný DNS. Chcete-li to provést, musíte povolit alespoň jeden šifrovaný protokol DNS", + "encryption_plain_dns_error": "Chcete-li zakázat běžný DNS, povolte alespoň jeden šifrovaný protokol DNS", "topline_expiring_certificate": "Váš SSL certifikát brzy vyprší. Aktualizujte <0>Nastavení šifrování.", "topline_expired_certificate": "Váš SSL certifikát vypršel. Aktualizujte <0>Nastavení šifrování.", "form_error_port_range": "Zadejte číslo portu v rozmezí 80-65535", diff --git a/client/src/__locales/da.json b/client/src/__locales/da.json index 005e60d7..ce34569e 100644 --- a/client/src/__locales/da.json +++ b/client/src/__locales/da.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Værtsnavne", "encryption_reset": "Sikker på, at du vil nulstille krypteringsindstillingerne?", "encryption_warning": "Advarsel", + "encryption_plain_dns_enable": "Aktivér almindelig DNS", + "encryption_plain_dns_desc": "Almindelig DNS er aktiveret som standard. Den kan deaktiveres for at tvinge alle enheder til at bruge krypteret DNS. For at gøre dette, aktivér mindst én krypteret DNS-protokol", + "encryption_plain_dns_error": "Aktivér mindst én krypteret DNS-protokol for at deaktivere almindelig DNS", "topline_expiring_certificate": "Dit SSL-certifikat er ved at udløbe. Opdatér <0>Krypteringsindstillinger.", "topline_expired_certificate": "Dit SSL-certifikat er udløbet. Opdatér <0>Krypteringsindstillinger.", "form_error_port_range": "Angiv portnummer i intervallet 80-65535", diff --git a/client/src/__locales/de.json b/client/src/__locales/de.json index bf104daf..c0b1b590 100644 --- a/client/src/__locales/de.json +++ b/client/src/__locales/de.json @@ -89,7 +89,7 @@ "form_enter_hostname": "Gerätenamen eingeben", "error_details": "Fehlerdetails", "response_details": "Einzelheiten der Antwort", - "request_details": "Einzelheiten der Anfrage", + "request_details": "Informationen zur Anfrage", "client_details": "Einzelheiten des Clients", "details": "Details", "back": "Zurück", @@ -121,7 +121,7 @@ "stats_adult": "Gesperrte jugendgefährdende Websites", "stats_query_domain": "Am häufigsten angefragte Domains", "for_last_hours": "in die letzte {{count}} Stunde", - "for_last_hours_plural": "in die letzten {{count}} Stunden", + "for_last_hours_plural": "in den letzten {{count}} Stunden", "for_last_days": "am letzten {{count}} Tag", "for_last_days_plural": "in den letzten {{count}} Tage", "stats_disabled": "Die Statistik wurde deaktiviert. Sie können diese in den <0>Einstellungen erneut aktivieren.", @@ -260,7 +260,7 @@ "next_btn": "Nächste", "loading_table_status": "Wird geladen …", "page_table_footer_text": "Seite", - "rows_table_footer_text": "Reihen", + "rows_table_footer_text": "Zeilen", "updated_custom_filtering_toast": "Benutzerdefinierten Filterregeln erfolgreich gespeichert", "rule_removed_from_custom_filtering_toast": "Regel wurde aus den benutzerdefinierten Filterregeln entfernt: {{rule}}", "rule_added_to_custom_filtering_toast": "Regel wurde zu den benutzerdefinierten Filterregeln hinzugefügt: {{rule}}", @@ -423,6 +423,9 @@ "encryption_hostnames": "Hostnamen", "encryption_reset": "Möchten Sie die Verschlüsselungseinstellungen wirklich zurücksetzen?", "encryption_warning": "Warnhinweis", + "encryption_plain_dns_enable": "Einfaches DNS aktivieren", + "encryption_plain_dns_desc": "Einfaches DNS ist standardmäßig aktiviert. Sie können es deaktivieren, um alle Geräte zu zwingen, verschlüsseltes DNS zu verwenden. Dazu müssen Sie mindestens ein verschlüsseltes DNS-Protokoll aktivieren", + "encryption_plain_dns_error": "Um einfaches DNS zu deaktivieren, aktivieren Sie mindestens ein verschlüsseltes DNS-Protokoll", "topline_expiring_certificate": "Ihr SSL-Zertifikat läuft demnächst ab. Aktualisieren Sie Ihre <0>Verschlüsselungseinstellungen.", "topline_expired_certificate": "Ihr SSL-Zertifikat ist abgelaufen. Aktualisieren Sie Ihre <0>Verschlüsselungseinstellungen.", "form_error_port_range": "Geben Sie die Portnummer zwischen 80 und 65535 ein", @@ -680,8 +683,8 @@ "clear_cache": "Cache leeren", "make_static": "Statisch machen", "theme_auto_desc": "Automatisch (basierend auf dem Farbschema Ihres Geräts)", - "theme_dark_desc": "Dunkles Farbschema", - "theme_light_desc": "Helles Farbschema", + "theme_dark_desc": "Dunkles Design", + "theme_light_desc": "Helles Design", "disable_for_seconds": "Für {{count}} Sekunde", "disable_for_seconds_plural": "Für {{count}} Sekunden", "disable_for_minutes": "Für {{count}} Minute", diff --git a/client/src/__locales/en.json b/client/src/__locales/en.json index a5839c0f..112928be 100644 --- a/client/src/__locales/en.json +++ b/client/src/__locales/en.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Hostnames", "encryption_reset": "Are you sure you want to reset encryption settings?", "encryption_warning": "Warning", + "encryption_plain_dns_enable": "Enable plain DNS", + "encryption_plain_dns_desc": "Plain DNS is enabled by default. You can disable it to force all devices to use encrypted DNS. To do this, you must enable at least one encrypted DNS protocol", + "encryption_plain_dns_error": "To disable plain DNS, enable at least one encrypted DNS protocol", "topline_expiring_certificate": "Your SSL certificate is about to expire. Update <0>Encryption settings.", "topline_expired_certificate": "Your SSL certificate is expired. Update <0>Encryption settings.", "form_error_port_range": "Enter port number in the range of 80-65535", diff --git a/client/src/__locales/es.json b/client/src/__locales/es.json index c2f56ad3..efbd744c 100644 --- a/client/src/__locales/es.json +++ b/client/src/__locales/es.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Nombres de hosts", "encryption_reset": "¿Estás seguro de que deseas restablecer la configuración de cifrado?", "encryption_warning": "Advertencia", + "encryption_plain_dns_enable": "Activar DNS simple (sin cifrado)", + "encryption_plain_dns_desc": "El DNS simple (sin cifrado) está activado de forma predeterminada. Puedes desactivarlo para obligar a todos los dispositivos a utilizar DNS cifrado. Para ello, debes habilitar al menos un protocolo DNS cifrado", + "encryption_plain_dns_error": "Para desactivar el DNS simple, activa al menos un protocolo DNS cifrado", "topline_expiring_certificate": "Tu certificado SSL está a punto de expirar. Actualiza la <0>configuración de cifrado.", "topline_expired_certificate": "Tu certificado SSL ha expirado. Actualiza la <0>configuración de cifrado.", "form_error_port_range": "Ingresa el número del puerto en el rango de 80 a 65535", diff --git a/client/src/__locales/fi.json b/client/src/__locales/fi.json index 3aa68ca5..6cecca15 100644 --- a/client/src/__locales/fi.json +++ b/client/src/__locales/fi.json @@ -270,12 +270,12 @@ "query_log_cleared": "Pyyntöhistorian tyhjennys onnistui", "query_log_updated": "Pyyntöhistorian päivitys onnistui", "query_log_clear": "Tyhjennä pyyntöhistoria", - "query_log_retention": "Kyselylokien kierto", + "query_log_retention": "Pyyntöhistorian kierto", "query_log_enable": "Käytä historiaa", "query_log_configuration": "Historian määritys", - "query_log_disabled": "Pyyntöhistoria ei ole käytössä. Voit ottaa sen käyttöön <0>asetuksissa", + "query_log_disabled": "Pyyntöhistoria ei ole käytössä. Voit ottaa sen käyttöön <0>asetuksista.", "query_log_strict_search": "Käytä tarkalle haulle lainausmerkkejä", - "query_log_retention_confirm": "Haluatko varmasti muuttaa kyselylokin kiertoa? Jos pienennät intervalliarvoa, osa tiedoista menetetään", + "query_log_retention_confirm": "Haluatko varmasti muuttaa pyyntöhistorian kiertoa? Jos pienennät aikaväliä, osa tiedoista menetetään.", "anonymize_client_ip": "Piilota päätelaitteen IP-osoite", "anonymize_client_ip_desc": "Älä tallenna päätelaitteen täydellistä IP-osoitetta historiaan ja tilastoihin.", "dns_config": "DNS-palvelimen määritys", @@ -303,22 +303,22 @@ "download_mobileconfig_dot": "Lataa .mobileconfig-tiedosto DNS-over-TLS -käytölle", "download_mobileconfig": "Lataa asetustiedosto", "plain_dns": "Tavallinen DNS", - "form_enter_rate_limit": "Syötä rajoitus", - "rate_limit": "Pyyntöjen ajoitus", + "form_enter_rate_limit": "Syötä pyyntörajoitus", + "rate_limit": "Pyyntöajoitus", "edns_enable": "Käytä EDNS-päätelaitealivekkoa", - "edns_cs_desc": "Lähetä päätelaitteiden aliverkot DNS-palvelimille.", + "edns_cs_desc": "Lisää EDNS Client Subnet (ECS) -valinta ylävirran pyyntöihin ja kirjaa päätelaitteiden lähettämät arvot pyyntöhistoriaan.", "edns_use_custom_ip": "Käytä omaa IP-osoitetta EDNS:lle", "edns_use_custom_ip_desc": "Salli oman IP-osoitteen käyttö EDNS-mekanismille.", "rate_limit_desc": "Päätelaitteelle sallittu pyyntöjen enimmäismäärä sekunnissa. Arvo 0 tarkoittaa rajatonta.", "rate_limit_subnet_len_ipv4": "IPv4-osoitteiden aliverkon etuliitteen pituus", - "rate_limit_subnet_len_ipv4_desc": "Aliverkon etuliitteen pituus IPv4-osoitteille, joita käytetään nopeuden rajoittamiseen. Oletusarvo on 24", - "rate_limit_subnet_len_ipv4_error": "IPv4-aliverkon etuliitteen pituuden tulee olla 0–32", + "rate_limit_subnet_len_ipv4_desc": "Pyyntörajoitukseen käytettävien IPv4-osoitteiden aliverkon etuliitteen pituus. Oletusarvo on 24.", + "rate_limit_subnet_len_ipv4_error": "IPv4-aliverkon etuliitteen pituuden tulee olla väliltä 0–32.", "rate_limit_subnet_len_ipv6": "IPv6-osoitteiden aliverkon etuliitteen pituus", - "rate_limit_subnet_len_ipv6_desc": "Aliverkon etuliitteen pituus IPv6-osoitteille, joita käytetään nopeuden rajoittamiseen. Oletusarvo on 56", - "rate_limit_subnet_len_ipv6_error": "IPv6-aliverkon etuliitteen pituuden tulee olla 0–128", - "form_enter_rate_limit_subnet_len": "Anna aliverkon etuliitteen pituus nopeuden rajoittamista varten", - "rate_limit_whitelist": "Nopeutta rajoittava sallittu luettelo", - "rate_limit_whitelist_desc": "IP-osoitteet, jotka eivät kuulu nopeusrajoituksen piiriin", + "rate_limit_subnet_len_ipv6_desc": "Pyyntörajoitukseen käytettävien IPv6-osoitteiden aliverkon etuliitteen pituus. Oletusarvo on 56.", + "rate_limit_subnet_len_ipv6_error": "IPv6-aliverkon etuliitteen pituuden tulee olla väliltä 0–128.", + "form_enter_rate_limit_subnet_len": "Syötä pyyntörajoitukseen käytettävä aliverkon etuliitteen pituus", + "rate_limit_whitelist": "Pyyntörajoituksen ohituslista", + "rate_limit_whitelist_desc": "IP-osoitteet, jotka eivät kuulu pyyntörajoituksen piiriin.", "rate_limit_whitelist_placeholder": "Syötä yksi IP-osoite per rivi", "blocking_ipv4_desc": "Estettyyn A-pyyntöön palautettava IP-osoite", "blocking_ipv6_desc": "Estettyyn AAAA-pyyntöön palautettava IP-osoite", @@ -423,6 +423,9 @@ "encryption_hostnames": "Isäntänimet", "encryption_reset": "Haluatko varmasti palauttaa salausasetukset?", "encryption_warning": "Varoitus", + "encryption_plain_dns_enable": "Käytä tavallista DNS:ää", + "encryption_plain_dns_desc": "Tavallinen DNS on oletusarvoisesti käytössä. Voit poistaa sen käytöstä pakottaaksesi kaikki laitteet käyttämään salattua DNS:ää. Tätä varten sinun on otettava käyttöön ainakin yksi salattu DNS-protokolla.", + "encryption_plain_dns_error": "Voit poistaa tavallisen DNS:n käytöstä ottamalla käyttöön ainakin yhden salatun DNS-protokollan.", "topline_expiring_certificate": "SSL-varmenteesi on erääntymässä. Päivitä <0>Salausasetukset.", "topline_expired_certificate": "SSL-varmenteesi on erääntynyt. Päivitä <0>Salausasetukset.", "form_error_port_range": "Syötä portti väliltä 80-65535", @@ -475,10 +478,10 @@ "access_desc": "Tässä voidaan määrittää AdGuard Homen DNS-palvelimen käyttöoikeussääntöjä.", "access_allowed_title": "Sallitut päätelaitteet", "access_allowed_desc": "Lista CIDR-merkinnöistä, IP-osoitteista tai ClientID-tunnisteista. Jos listalla on kohteita, hyväksyy AdGuard Home pyyntöjä vain näiltä päätelaitteilta.", - "access_disallowed_title": "Kielletyt päätelaitteet", + "access_disallowed_title": "Estetyt päätelaitteet", "access_disallowed_desc": "Lista CIDR-merkinnöistä, IP-osoitteista tai ClientID-tunnisteista. Jos listalla on kohteita, hylkää AdGuard Home näiden päätelaitteiden pyynnöt. Tätä kenttää ei huomioida, jos sallittuja päätelaitteita on määritetty.", - "access_blocked_title": "Kielletyt verkkotunnukset", - "access_blocked_desc": "Ei pidä sekoittaa suodattimiin. AdGuard Home hylkää näiden verkkotunnusten DNS-pyynnöt, eivätkä nämä pyynnöt näy edes pyyntöhistoriassa. Tähän voidaan syöttää tarkkoja verkkotunnuksia, jokerimerkkejä tai URL-suodatussääntöjä, kuten \"example.org\", \"*.example.org\" tai \"||example.org^\".", + "access_blocked_title": "Estetyt verkkotunnukset", + "access_blocked_desc": "Ei pidä sekoittaa suodattimiin. AdGuard Home hylkää näiden verkkotunnusten DNS-pyynnöt, eivätkä nämä pyynnöt myöskään näy pyyntöhistoriassa. Tähän voidaan syöttää tarkkoja verkkotunnuksia, jokerimerkkejä tai URL-suodatussääntöjä, kuten \"example.org\", \"*.example.org\" tai \"||example.org^\".", "access_settings_saved": "Käytön asetukset tallennettiin", "updates_checked": "Uusi versio AdGuard Home -ohjelmasta on saatavana\n", "updates_version_equal": "AdGuard Home on ajan tasalla", @@ -557,7 +560,7 @@ "ignore_domains": "Ohitettavat verkkotunnukset (erotettu rivinvaihdolla)", "ignore_domains_title": "Ohitettavat verkkotunnukset", "ignore_domains_desc_stats": "Sääntöihin sopivat kyselyt eivät kirjoitu tilastoihin", - "ignore_domains_desc_query": "Sääntöihin sopivat kyselyt eivät tallennu kyselylokiin", + "ignore_domains_desc_query": "Näitä sääntöjä vastaavia pyyntöjä ei tallenneta pyyntöhistoriaan.", "interval_hours": "{{count}} tunti", "interval_hours_plural": "{{count}} tuntia", "filters_configuration": "Suodatinten määritys", @@ -700,8 +703,8 @@ "custom_retention_input": "Syötä säilytysaika tunteina", "custom_rotation_input": "Syötä uudistusaika tunteina", "protection_section_label": "Suojaus", - "log_and_stats_section_label": "Kyselyhistoria ja tilastot", - "ignore_query_log": "Älä huomioi tätä päätettä kyselyhistoriassa", + "log_and_stats_section_label": "Pyyntöhistoria ja tilastot", + "ignore_query_log": "Älä huomioi tätä päätelaitetta pyyntöhistoriassa", "ignore_statistics": "Älä huomioi tätä päätettä tilastoissa", "schedule_services": "Keskeytä palveluesto", "schedule_services_desc": "Määritä palvelunestosuodattimen keskeytysajoitus.", diff --git a/client/src/__locales/id.json b/client/src/__locales/id.json index a8671452..960df7ee 100644 --- a/client/src/__locales/id.json +++ b/client/src/__locales/id.json @@ -10,7 +10,7 @@ "bootstrap_dns": "Server DNS bootstrap", "bootstrap_dns_desc": "Alamat IP server DNS yang digunakan untuk menyelesaikan alamat IP resolver DoH/DoT yang Anda tentukan sebagai upstream. Komentar tidak diizinkan.", "fallback_dns_title": "Server DNS cadangan", - "fallback_dns_desc": "Daftar server DNS cadangan yang digunakan ketika server DNS hulu tidak merespons. Sintaksnya sama dengan bidang hulu utama di atas.", + "fallback_dns_desc": "Daftar server DNS cadangan yang digunakan ketika server hulu DNS tidak merespons. Sintaksnya sama dengan kolom hulu utama di atas.", "fallback_dns_placeholder": "Masukkan satu server DNS cadangan per baris", "local_ptr_title": "Server pembalik DNS pribadi", "local_ptr_desc": "Server DNS yang digunakan AdGuard Home untuk kueri PTR lokal. Server ini digunakan untuk menyelesaikan nama host klien dengan alamat IP pribadi, misalnya \"192.168.12.34\", menggunakan DNS terbalik. Jika tidak disetel, AdGuard Home menggunakan alamat resolver DNS default OS Anda kecuali untuk alamat AdGuard Home itu sendiri.", @@ -20,7 +20,7 @@ "resolve_clients_title": "Aktifkan resolusi hostname klien", "resolve_clients_desc": "Menyelesaikan alamat IP klien secara terbalik ke nama host mereka dengan mengirimkan kueri PTR ke resolver yang sesuai (server DNS pribadi untuk klien lokal, server upstream untuk klien dengan alamat IP publik).", "use_private_ptr_resolvers_title": "Gunakan server pembalik DNS pribadi", - "use_private_ptr_resolvers_desc": "Lakukan pencarian DNS terbalik untuk alamat yang disajikan secara lokal menggunakan server upstream ini. Jika dinonaktifkan, Adguard Home merespon dengan NXDOMAIN untuk semua permintaan PTR tersebut kecuali untuk klien yang diketahui dari DHCP, /etc/hosts, dan seterusnya.", + "use_private_ptr_resolvers_desc": "Lakukan pencarian DNS terbalik untuk alamat yang disajikan secara lokal menggunakan server hulu ini. Jika dinonaktifkan, Adguard Home merespons dengan NXDOMAIN untuk semua permintaan PTR tersebut kecuali untuk klien yang diketahui dari DHCP, /etc/hosts, dan seterusnya.", "check_dhcp_servers": "Cek untuk server DHCP", "save_config": "Simpan pengaturan", "enabled_dhcp": "Server DHCP diaktifkan", @@ -68,7 +68,7 @@ "ip": "IP", "dhcp_table_hostname": "Nama host", "dhcp_table_expires": "Kadaluwarsa", - "dhcp_warning": "Jika anda ingin mengaktifkan server DHCP bawaan, pastikan tidak ada server DHCP lain yang aktif. Jika tidak, akan memutus koneksi internet pada perangkat yang telah terhubung!", + "dhcp_warning": "Jika Anda tetap ingin mengaktifkan server DHCP, pastikan tidak ada server DHCP lain yang aktif di jaringan Anda, karena hal ini dapat memutus konektivitas Internet untuk perangkat di jaringan!", "dhcp_error": "AdGuard Home tidak dapat menentukan apakah ada server DHCP aktif lain pada jaringan", "dhcp_static_ip_error": "Jika ingin menggunakan server DHCP, alamat IP statis harus diatur. AdGuard Home gagal menentukan jika antarmuka jaringan ini dikonfigurasi menggunakan alamat IP statis. Silakan atur alamat IP statis secara manual.", "dhcp_dynamic_ip_found": "Sistem Anda menggunakan konfigurasi alamat IP dinamis untuk antarmuka <0>{{interfaceName}}. Untuk menggunakan server DHCP, alamat IP statis harus ditetapkan. Alamat IP Anda saat ini adalah <0>{{ipAddress}}. AdGuard Home akan secara otomatis menetapkan alamat IP ini sebagai statis jika Anda menekan tombol Aktifkan DHCP.", @@ -144,7 +144,7 @@ "enforced_save_search": "Paksa pencarian aman", "number_of_dns_query_to_safe_search": "Jumlah perminataan DNS ke mesin pencari yang dipaksa Pencarian Aman", "average_processing_time": "Rata-rata waktu pemrosesan", - "average_upstream_response_time": "Waktu respons server upstream rata-rata", + "average_upstream_response_time": "Rata-rata waktu respons hulu", "response_time": "Waktu respons", "average_processing_time_hint": "Rata-rata waktu dalam milidetik untuk pemrosesan sebuah permintaan DNS", "block_domain_use_filters_and_hosts": "Blokir domain menggunakan filter dan file hosts", @@ -166,7 +166,7 @@ "encryption_settings": "Pengaturan enkripsi", "dhcp_settings": "Pengaturan DHCP", "upstream_dns": "Server DNS hulu", - "upstream_dns_help": "Masukkan alamat server per baris. Pelajari lebih mengenai konfigurasi upstream server DNS.", + "upstream_dns_help": "Masukkan satu alamat server per baris. Pelajari lebih lanjut mengenai cara mengonfigurasi server DNS hulu.", "upstream_dns_configured_in_file": "Diatur dalam {{path}}", "test_upstream_btn": "Uji hulu", "upstreams": "Upstream", @@ -192,10 +192,10 @@ "delete_table_action": "Hapus", "elapsed": "Berlalu", "filters_and_hosts_hint": "AdGuard Home memahami aturan dasar adblock dan sintak file hosts.", - "no_blocklist_added": "Tiada daftar hitam ditambahkan", - "no_whitelist_added": "Tiada daftar putih ditambahkan", - "add_blocklist": "Tambah daftar hitam", - "add_allowlist": "Tambah daftar putih", + "no_blocklist_added": "Tidak ada daftar hitam yang ditambahkan", + "no_whitelist_added": "Tidak ada daftar putih yang ditambahkan", + "add_blocklist": "Tambahkan daftar hitam", + "add_allowlist": "Tambahkan daftar putih", "cancel_btn": "Batal", "enter_name_hint": "Masukkan nama", "enter_url_or_path_hint": "Masukan sebuah URL atau jalur absolut dari daftar", @@ -289,7 +289,7 @@ "custom_ip": "Custom IP", "blocking_ipv4": "Blokiran IPv4", "blocking_ipv6": "Blokiran IPv6", - "blocked_response_ttl": "Respon TLL diblokir", + "blocked_response_ttl": "TTL Respons yang diblokir", "blocked_response_ttl_desc": "Menentukan berapa detik klien harus menyimpan respons yang difilter dalam cache", "form_enter_blocked_response_ttl": "Masukkan TTL respons yang diblokir (detik)", "dnscrypt": "DNSCrypt", @@ -330,7 +330,7 @@ "theme_auto": "Auto", "theme_light": "Terang", "theme_dark": "Gelap", - "upstream_dns_client_desc": "Jika Anda biarkan bidang ini kosong, AdGuard Home akan memakai server yang dikonfigurasi di<0>Pengaturan DNS.", + "upstream_dns_client_desc": "Jika Anda biarkan kolom ini kosong, AdGuard Home akan menggunakan server yang dikonfigurasi di <0>pengaturan DNS.", "tracker_source": "Sumber pelacak", "source_label": "Sumber", "found_in_known_domain_db": "Ditemukan di database domain dikenal", @@ -340,7 +340,7 @@ "unknown_filter": "Penyaringan {{filterId}} tidak dikenal", "known_tracker": "Pelacak yang dikenal", "install_welcome_title": "Selamat datang di AdGuard Home!", - "install_welcome_desc": "AdGuard Home adalah sebuah server DNS pemblokiran iklan dan pelacak di jaringan. Tujuannya adalah memungkinkan anda mengkontrol seluruh jaringan dan semua perangkat anda, dan ini tidak membutuhkan aplikasi tambahan di klien", + "install_welcome_desc": "AdGuard Home adalah server DNS pemblokir iklan dan pelacak di seluruh jaringan. Tujuannya untuk memungkinkan Anda mengendalikan seluruh jaringan dan semua perangkat Anda, dan tidak perlu menggunakan program sisi klien.", "install_settings_title": "Antarmuka Halaman Admin", "install_settings_listen": "Antarmuka pengoperasian", "install_settings_port": "Port", @@ -362,10 +362,10 @@ "install_submit_title": "Selamat!", "install_submit_desc": "Prosedur pengaturan telah selesai, dan anda siap untuk mulai menggunakan AdGuard Home.", "install_devices_router": "Router", - "install_devices_router_desc": "Setelan ini akan secara otomatis mencakup semua perangkat yang terhubung ke router rumah anda dan anda tak perlu mengkonfigurasikan secara manual.", + "install_devices_router_desc": "Penyiapan ini secara otomatis mencakup semua perangkat yang terhubung ke router rumah Anda, tidak perlu mengkonfigurasi masing-masing perangkat secara manual.", "install_devices_address": "Server DNS AdGuard Home akan menggunakan alamat berikut", "install_devices_router_list_1": "Buka preferensi untuk router Anda. Biasanya, Anda dapat mengaksesnya dari browser Anda melalui URL, seperti http://192.168.0.1/ atau http://192.168.1.1/. Anda mungkin diminta untuk memasukkan kata sandi. Jika Anda tidak mengingatnya, Anda sering kali dapat mengatur ulang kata sandi dengan menekan tombol pada perute itu sendiri, tetapi perlu diketahui bahwa jika prosedur ini dipilih, Anda mungkin akan kehilangan seluruh konfigurasi perute. Jika router Anda memerlukan aplikasi untuk menyiapkannya, instal aplikasi tersebut di ponsel atau PC Anda dan gunakan untuk mengakses pengaturan router.", - "install_devices_router_list_2": "Temukan pengaturan DHCP / DNS. Cari huruf DNS di sebelah bidang yang memungkinkan dua atau tiga set angka, masing-masing dipecah menjadi empat grup dengan satu hingga tiga digit.", + "install_devices_router_list_2": "Temukan pengaturan DHCP / DNS. Cari huruf DNS di sebelah kolom yang memungkinkan dua atau tiga set angka, masing-masing dipecah menjadi empat kelompok dengan satu hingga tiga digit.", "install_devices_router_list_3": "Masukkan alamat server AdGuard Home disana", "install_devices_router_list_4": "Anda tidak dapat menyetel server DNS kustom pada beberapa tipe router. Dalam hal ini mungkin membantu jika Anda mengatur AdGuard Home sebagai <0>server DHCP. Jika tidak, Anda harus mencari petunjuk tentang cara mengkustomisasi server DNS untuk model router khusus Anda.", "install_devices_windows_list_1": "Buka Panel Kontrol melalui menu Start atau pencarian Windows.", @@ -386,7 +386,7 @@ "install_devices_ios_list_1": "Dari layar beranda, ketuk Pengaturan.", "install_devices_ios_list_2": "Pilih Wi-Fi di menu sebelah kiri (tidak mungkin untuk mengkonfigurasi DNS untuk jaringan seluler).", "install_devices_ios_list_3": "Ketuk nama jaringan yang saat ini aktif.", - "install_devices_ios_list_4": "Di bidang DNS, masukkan alamat server AdGuard Home anda.", + "install_devices_ios_list_4": "Di kolom DNS, masukkan alamat server AdGuard Home Anda.", "get_started": "Mari mulai", "next": "Selanjutnya", "open_dashboard": "Buka Beranda", @@ -423,6 +423,9 @@ "encryption_hostnames": "Nama host", "encryption_reset": "Anda yakin ingin mengatur ulang pengaturan enkripsi?", "encryption_warning": "Peringatan", + "encryption_plain_dns_enable": "Aktifkan DNS biasa", + "encryption_plain_dns_desc": "DNS Biasa diaktifkan secara standar. Anda dapat menonaktifkannya untuk memaksa semua perangkat menggunakan DNS terenkripsi. Untuk melakukan ini, Anda harus mengaktifkan setidaknya satu protokol DNS terenkripsi", + "encryption_plain_dns_error": "Untuk menonaktifkan DNS biasa, aktifkan setidaknya satu protokol DNS terenkripsi", "topline_expiring_certificate": "Sertifikat SSL Anda hampir kedaluwarsa. Perbarui <0>Pengaturan enkripsi.", "topline_expired_certificate": "Sertifikat SSL Anda kedaluwarsa. Perbarui <0>Pengaturan enkripsi.", "form_error_port_range": "Masukkan nomor port di kisaran 80-65535", @@ -449,7 +452,7 @@ "table_client": "Klien", "table_name": "Nama", "save_btn": "Simpan", - "client_add": "Tambah Klien", + "client_add": "Tambahkan Klien", "client_new": "Klien Baru", "client_edit": "Ubah Klien", "client_identifier": "Identifikasi", @@ -459,7 +462,7 @@ "form_enter_subnet_ip": "Masukkan alamat IP di subnet \"{{cidr}}\"", "form_enter_mac": "Masukkan MAC", "form_enter_id": "Masukkan pengenal", - "form_add_id": "Tambah pengenal", + "form_add_id": "Tambahkan pengenal", "form_client_name": "Masukkan nama klien", "name": "Nama", "client_global_settings": "Gunakan pengaturan global", @@ -476,7 +479,7 @@ "access_allowed_title": "Klien yang diizinkan", "access_allowed_desc": "Daftar CIDR, alamat IP, atau ClientID. Jika daftar ini memiliki entri, AdGuard Home hanya akan menerima permintaan dari klien ini.", "access_disallowed_title": "Klien yang tidak diizinkan", - "access_disallowed_desc": "Daftar CIDR, alamat IP, atau ClientID. Jika daftar ini memiliki entri, AdGuard Home akan membatalkan permintaan dari klien ini. Bidang ini diabaikan jika ada entri di klien yang diizinkan.", + "access_disallowed_desc": "Daftar CIDR, alamat IP, atau ClientID. Jika daftar ini memiliki entri, AdGuard Home akan membatalkan permintaan dari klien ini. Kolom ini diabaikan jika ada entri di daftar putih klien.", "access_blocked_title": "Domain yang diblokir", "access_blocked_desc": "Jangan bingung dengan filter. AdGuard Home menghapus kueri DNS yang cocok dengan domain ini, dan kueri ini bahkan tidak muncul di log kueri. Anda dapat menentukan nama domain, karakter pengganti, atau aturan filter URL yang tepat, mis. \"example.org\", \"*.example.org\", atau \"||example.org^\" yang sesuai.", "access_settings_saved": "Pengaturan akses berhasil disimpan", @@ -485,7 +488,7 @@ "check_updates_now": "Periksa pembaruan sekarang", "version_request_error": "Pemeriksaan pembaruan gagal. Harap periksa koneksi internet anda.", "dns_privacy": "DNS Privasi", - "setup_dns_privacy_1": "<0>DNS-over-TLS: Memakai <1>{{address}} string.", + "setup_dns_privacy_1": "<0>DNS melalui TLS: Gunakan <1>{{address}} string.", "setup_dns_privacy_2": "<0>DNS-over-TLS: Memakai <1>{{address}} string.", "setup_dns_privacy_3": "<0>Berikut daftar perangkat lunak yang dapat Anda gunakan.", "setup_dns_privacy_4": "Di perangkat iOS 14 atau macOS Big Sur, Anda dapat mengunduh file '.mobileconfig' khusus yang menambahkan server DNS-over-HTTPS atau DNS-over-TLS ke pengaturan DNS.", @@ -505,7 +508,7 @@ "rewrite_added": "DNS rewrite untuk \"{{key}}\" berhasil ditambahkan", "rewrite_deleted": "DNS rewrite untuk \"{{key}}\" berhasil dihapus", "rewrite_updated": "Penulisan ulang DNS berhasil diperbarui", - "rewrite_add": "Tambah DNS rewrite", + "rewrite_add": "Tambahkan penulisan ulang DNS", "rewrite_edit": "Edit penulisan ulang DNS", "rewrite_not_found": "Tidak ada DNS rewrite ditemukan", "rewrite_confirm_delete": "Apakah anda yakin ingin menghapus DNS rewrite untuk \"{{key}}\"?", @@ -594,10 +597,10 @@ "fastest_addr": "Alamat IP tercepat", "fastest_addr_desc": "Kuiri semua server DNS dan kembalikan alamat IP tercepat diantara semua tanggapan. Ini memperlambat pencarian DNS Sebagai Rumah AdGuard harus menunggu tanggapan dari semua server DNS, tapi meningkatkan konektivitas keseluruhan.", "autofix_warning_text": "Apabila anda menekan \"Perbaiki\", AdGuardHome akan mengatur sistem anda untuk menggunakan server DNS AdGuardHome.", - "autofix_warning_list": "Ini akan melakukan tugas berikut: <0>Nonaktifkan sistem DNSStubListener <0> Atur alamat server DNS ke 127.0.0.1 <0>Ganti target tautan simbolis /etc/resolv.conf pakai /run/systemd/resolve/resolv.conf <0>Hentikan DNSStubListener (muat ulang layanan sistemd-resolve service)", + "autofix_warning_list": "Ini akan melakukan tugas berikut: <0>Nonaktifkan sistem DNSStubListener <0>Atur alamat server DNS ke 127.0.0.1 <0>Ganti target tautan simbolis /etc/resolv.conf dengan /run/systemd/resolve/resolv.conf <0>Hentikan DNSStubListener (muat ulang layanan sistemd-resolved)", "autofix_warning_result": "Hasilnya, semua permintaan DNS dari sistem anda akan diproses oleh AdGuardHome secara standar.", "tags_title": "Tag", - "tags_desc": "Anda dapat memilih tag sesuai dengan klien. Tag dapat dimasukkan dalam aturan pemfilteran dan memungkinkan Anda untuk menerapkannya lebih akurat. <0>Pelajari lebih.", + "tags_desc": "Anda dapat memilih tag yang sesuai dengan klien. Sertakan tag dalam aturan pemfilteran untuk menerapkannya dengan lebih akurat. <0>Pelajari lebih lanjut.", "form_select_tags": "Pilih tag klien", "check_title": "Periksa penyaringan", "check_desc": "Periksa apakah nama host telah tersaring.", @@ -605,7 +608,7 @@ "form_enter_host": "Masukkan nama host", "filtered_custom_rules": "Tersaring oleh aturan penyaring Buatan", "choose_from_list": "Pilih dari daftar", - "add_custom_list": "Tambah daftar buatan", + "add_custom_list": "Tambahkan daftar kustom", "host_whitelisted": "Host didaftar putihkan", "check_ip": "Alamat IP: {{ip}}", "check_cname": "CNAME: {{cname}}", @@ -649,7 +652,7 @@ "enter_cache_size": "Masukkan ukuran cache (bytes)", "enter_cache_ttl_min_override": "Masukkan TTL minimum (detik)", "enter_cache_ttl_max_override": "Masukkan TTL maksimum (detik)", - "cache_ttl_min_override_desc": "Perpanjang nilai waktu-online singkat (detik) yang diterima dari server upstream saat menyimpan respons DNS.", + "cache_ttl_min_override_desc": "Perpanjang nilai waktu untuk hidup (detik) yang diterima dari server hulu saat menyimpan respons DNS.", "cache_ttl_max_override_desc": "Tetapkan nilai waktu-online maksimum (detik) untuk entri di cache DNS.", "ttl_cache_validation": "Nilai TTL cache minimum harus kurang dari atau sama dengan nilai maksimum", "cache_optimistic": "Caching yang optimis", @@ -736,6 +739,6 @@ "friday_short": "Jum", "saturday_short": "Sab", "upstream_dns_cache_configuration": "Konfigurasi cache DNS upstream", - "enable_upstream_dns_cache": "Aktifkan cache DNS untuk konfigurasi upstream kustom klien ini", + "enable_upstream_dns_cache": "Aktifkan cache DNS untuk konfigurasi hulu kustom pada klien ini", "dns_cache_size": "Ukuran cache DNS, dalam byte" } diff --git a/client/src/__locales/nl.json b/client/src/__locales/nl.json index 2fc0f1ee..5e545f98 100644 --- a/client/src/__locales/nl.json +++ b/client/src/__locales/nl.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Hostnamen", "encryption_reset": "Ben je zeker dat je de encryptie instellingen wil resetten?", "encryption_warning": "Waarschuwing", + "encryption_plain_dns_enable": "Gewone DNS inschakelen", + "encryption_plain_dns_desc": "Gewone DNS is standaard ingeschakeld. Je kunt het uitschakelen om alle apparaten te dwingen versleutelde DNS te gebruiken. Om dit te doen, moet je ten minste één versleuteld DNS-protocol inschakelen", + "encryption_plain_dns_error": "Als je gewone DNS wilt uitschakelen, schakel je ten minste één versleuteld DNS-protocol in", "topline_expiring_certificate": "Jouw SSL-certificaat vervalt binnenkort. Werk de <0>encryptie-instellingen bij.", "topline_expired_certificate": "Jouw SSL-certificaat is vervallen. Werk de <0>encryptie-instellingen bij.", "form_error_port_range": "Poortnummer invoeren tussen 80 en 65535", diff --git a/client/src/__locales/pt-br.json b/client/src/__locales/pt-br.json index 83a6d9a0..5541d5a3 100644 --- a/client/src/__locales/pt-br.json +++ b/client/src/__locales/pt-br.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Nomes dos servidores", "encryption_reset": "Você tem certeza de que deseja redefinir a configuração de criptografia?", "encryption_warning": "Aviso", + "encryption_plain_dns_enable": "Ativar DNS simples (sem criptografia)", + "encryption_plain_dns_desc": "O DNS simples (sem criptografia) está ativado por padrão. Você pode desativá-lo para forçar todos os dispositivos a usar DNS criptografado. Para fazer isso, você deve ativar pelo menos um protocolo DNS criptografado", + "encryption_plain_dns_error": "Para desativar o DNS simples, ative pelo menos um protocolo DNS criptografado", "topline_expiring_certificate": "Seu certificado SSL está prestes a expirar. Atualize suas <0>configurações de criptografia", "topline_expired_certificate": "Seu certificado SSL está expirado. Atualize suas <0>configurações de criptografia", "form_error_port_range": "Digite um número de porta entre 80 e 65535", diff --git a/client/src/__locales/pt-pt.json b/client/src/__locales/pt-pt.json index 8f6e6fcf..138143cd 100644 --- a/client/src/__locales/pt-pt.json +++ b/client/src/__locales/pt-pt.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Nomes dos servidores", "encryption_reset": "Tem a certeza de que deseja repor a definição de criptografia?", "encryption_warning": "Cuidado", + "encryption_plain_dns_enable": "Habilitar DNS simples (sem criptografia)", + "encryption_plain_dns_desc": "O DNS simples (sem criptografia) está ativado por padrão. Pode desativá-lo para forçar todos os dispositivos a usar DNS criptografado. Para isso, deve ativar pelo menos um protocolo DNS criptografado", + "encryption_plain_dns_error": "Para desabilitar o DNS simples, habilite pelo menos um protocolo DNS criptografado", "topline_expiring_certificate": "O seu certificado SSL está prestes a expirar. Atualize as suas <0>definições de criptografia.", "topline_expired_certificate": "O seu certificado SSL está expirado. Atualize as suas <0>definições de criptografia.", "form_error_port_range": "Digite um numero de porta entre 80 e 65535", diff --git a/client/src/__locales/ru.json b/client/src/__locales/ru.json index 42ee4eb6..9e4be536 100644 --- a/client/src/__locales/ru.json +++ b/client/src/__locales/ru.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Имена хостов", "encryption_reset": "Вы уверены, что хотите сбросить настройки шифрования?", "encryption_warning": "Предупреждение", + "encryption_plain_dns_enable": "Включить незашифрованный DNS", + "encryption_plain_dns_desc": "Незашифрованный DNS включён по умолчанию. Вы можете отключить его, чтобы заставить все устройства использовать зашифрованный DNS. Для этого необходимо включить хотя бы один зашифрованный протокол DNS", + "encryption_plain_dns_error": "Чтобы отключить незашифрованный DNS, включите хотя бы один зашифрованный протокол DNS", "topline_expiring_certificate": "Ваш SSL-сертификат скоро истекает. Обновите <0>Настройки шифрования.", "topline_expired_certificate": "Ваш SSL-сертификат истёк. Обновите <0>Настройки шифрования.", "form_error_port_range": "Введите номер порта из интервала 80-65535", diff --git a/client/src/__locales/si-lk.json b/client/src/__locales/si-lk.json index 4e31770b..7ee0863c 100644 --- a/client/src/__locales/si-lk.json +++ b/client/src/__locales/si-lk.json @@ -208,9 +208,9 @@ "dns_test_not_ok_toast": "\"{{key}}\" සේවාදායක(ය): භාවිතා කිරීමට නොහැකි විය, ඔබ එය නිවැරදිව ලියා ඇතිදැයි පරීක්‍ෂා කරන්න", "unblock": "අනවහිර", "block": "අවහිර", - "disallow_this_client": "මෙම අනුග්‍රාහකයට නොඉඩ දෙන්න", + "disallow_this_client": "මෙම අනුග්‍රාහකයට ඉඩ නොදෙන්න", "allow_this_client": "මෙම අනුග්‍රාහකයට ඉඩ දෙන්න", - "block_for_this_client_only": "මෙම අනුග්‍රාහකයට පමණක් අවහිර කරන්න", + "block_for_this_client_only": "මෙම අනුග්‍රාහකයට අවහිර කරන්න", "unblock_for_this_client_only": "මෙම අනුග්‍රාහකයට පමණක් අනවහිර කරන්න", "time_table_header": "වේලාව", "date": "දිනය", diff --git a/client/src/__locales/sk.json b/client/src/__locales/sk.json index d368fe3d..fb573726 100644 --- a/client/src/__locales/sk.json +++ b/client/src/__locales/sk.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Názvy hostiteľov", "encryption_reset": "Naozaj chcete obnoviť nastavenia šifrovania?", "encryption_warning": "Varovanie", + "encryption_plain_dns_enable": "Zapnúť jednoduchý DNS", + "encryption_plain_dns_desc": "Jednoduchý DNS je predvolene zapnutý. Môžete ho vypnúť, aby ste prinútili všetky zariadenia používať šifrovaný DNS. Ak to chcete urobiť, musíte zapnúť aspoň jeden šifrovaný DNS protokol", + "encryption_plain_dns_error": "Ak chcete vypnúť jednoduchý DNS protokol, zapnite aspoň jeden šifrovaný DNS protokol", "topline_expiring_certificate": "Váš SSL certifikát čoskoro vyprší. Aktualizujte <0>Nastavenia šifrovania.", "topline_expired_certificate": "Váš SSL certifikát vypršal. Aktualizujte <0>Nastavenia šifrovania.", "form_error_port_range": "Zadajte číslo portu v rozsahu 80-65535", diff --git a/client/src/__locales/sl.json b/client/src/__locales/sl.json index 70e4eb93..4621e04b 100644 --- a/client/src/__locales/sl.json +++ b/client/src/__locales/sl.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Imena gostiteljev", "encryption_reset": "Ali ste prepričani, da želite ponastaviti nastavitve šifriranja?", "encryption_warning": "Opozorilo", + "encryption_plain_dns_enable": "Omogoči navaden DNS", + "encryption_plain_dns_desc": "Navaden DNS je privzeto omogočen. Lahko ga onemogočite, da vse naprave prisilite k uporabi šifriranega DNS-ja. Če želite to narediti, morate omogočiti vsaj en šifriran protokol DNS", + "encryption_plain_dns_error": "Da onemogočite navaden DNS, omogočite vsaj en šifriran protokol DNS", "topline_expiring_certificate": "Vaš e digitalno potrdilo SSL bo kmalu poteklol. Posodobite <0>Nastavitve šifriranja.", "topline_expired_certificate": "Vaše digitalno potrdilo SSL je poteklo. Posodobi <0>Nastavitve šifriranja.", "form_error_port_range": "Vnesite številko vrat v razponu med 80-65535", diff --git a/client/src/__locales/tr.json b/client/src/__locales/tr.json index 3e0008ce..b3ce3ba6 100644 --- a/client/src/__locales/tr.json +++ b/client/src/__locales/tr.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Ana makine adları", "encryption_reset": "Şifreleme ayarlarını sıfırlamak istediğinizden emin misiniz?", "encryption_warning": "Uyarı", + "encryption_plain_dns_enable": "Düz DNS'i etkinleştir", + "encryption_plain_dns_desc": "Düz DNS varsayılan olarak etkindir. Tüm aygıtları şifrelenmiş DNS kullanmaya zorlamak için bunu devre dışı bırakabilirsiniz. Bunu yapmak için en az bir şifrelenmiş DNS protokolünü etkinleştirmeniz gerekir", + "encryption_plain_dns_error": "Düz DNS'i devre dışı bırakmak için en az bir şifrelenmiş DNS protokolünü etkinleştirin", "topline_expiring_certificate": "SSL sertifikanızın süresi sona üzere. <0>Şifreleme ayarlarını güncelleyin.", "topline_expired_certificate": "SSL sertifikanızın süresi sona erdi. <0>Şifreleme ayarlarını güncelleyin.", "form_error_port_range": "80-65535 aralığında geçerli bir bağlantı noktası değeri girin", diff --git a/client/src/__locales/uk.json b/client/src/__locales/uk.json index 98a63085..dbec359c 100644 --- a/client/src/__locales/uk.json +++ b/client/src/__locales/uk.json @@ -423,6 +423,9 @@ "encryption_hostnames": "Назви вузлів", "encryption_reset": "Ви впевнені, що хочете скинути налаштування шифрування?", "encryption_warning": "Попередження", + "encryption_plain_dns_enable": "Увімкнути звичайний DNS", + "encryption_plain_dns_desc": "Звичайний DNS усталено увімкнений. Ви можете вимкнути його, щоб змусити всі пристрої використовувати зашифрований DNS. Для цього необхідно увімкнути хоча б один зашифрований протокол DNS", + "encryption_plain_dns_error": "Щоб вимкнути звичайний DNS, увімкніть принаймні один зашифрований протокол DNS", "topline_expiring_certificate": "Ваш сертифікат SSL скоро закінчиться. Оновіть <0>Налаштування шифрування.", "topline_expired_certificate": "Термін дії вашого сертифіката SSL закінчився. Оновіть <0>Налаштування шифрування.", "form_error_port_range": "Введіть значення порту в діапазоні 80−65535", diff --git a/client/src/__locales/zh-tw.json b/client/src/__locales/zh-tw.json index def8ed3d..8cf40d52 100644 --- a/client/src/__locales/zh-tw.json +++ b/client/src/__locales/zh-tw.json @@ -310,15 +310,15 @@ "edns_use_custom_ip": "為 EDNS 使用自訂的 IP", "edns_use_custom_ip_desc": "允許為 EDNS 使用自訂的 IP", "rate_limit_desc": "每個用戶端被允許的每秒請求之數量。設定它為 0 表示無限制。", - "rate_limit_subnet_len_ipv4": "IPv4 位址的子網路前綴長度", + "rate_limit_subnet_len_ipv4": "用於 IPv4 位址的子網路前綴長度", "rate_limit_subnet_len_ipv4_desc": "用於速率限制的 IPv4 位址的子網路前綴長度。預設值為 24", "rate_limit_subnet_len_ipv4_error": "IPv4 子網路前綴長度應在 0 至 32 之間", - "rate_limit_subnet_len_ipv6": "IPv6 位址的子網路前綴長度", + "rate_limit_subnet_len_ipv6": "用於 IPv6 位址的子網路前綴長度", "rate_limit_subnet_len_ipv6_desc": "用於速率限制的 IPv6 位址的子網路前綴長度。預設值為 56", "rate_limit_subnet_len_ipv6_error": "IPv6 子網路前綴長度應在 0 至 128 之間", "form_enter_rate_limit_subnet_len": "輸入用於速率限制的子網路前綴長度", "rate_limit_whitelist": "速率限制允許清單", - "rate_limit_whitelist_desc": "從速率限制中排除的 IP 位址", + "rate_limit_whitelist_desc": "從速率限制被排除的 IP 位址", "rate_limit_whitelist_placeholder": "每行輸入一個 IP 位址", "blocking_ipv4_desc": "要被返回給已封鎖的 A 請求之 IP 位址", "blocking_ipv6_desc": "要被返回給已封鎖的 AAAA 請求之 IP 位址", diff --git a/client/src/components/Filters/Examples.js b/client/src/components/Filters/Examples.js index 6dcc01c7..602c17da 100644 --- a/client/src/components/Filters/Examples.js +++ b/client/src/components/Filters/Examples.js @@ -36,7 +36,7 @@ const Examples = () => (