Compare commits
123 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
caa90b0340 | ||
|
|
81a5225622 | ||
|
|
199e1f6a60 | ||
|
|
66d47b1462 | ||
|
|
e1ac2590c9 | ||
|
|
7696afd03c | ||
|
|
3d48ec4555 | ||
|
|
e576a23dd1 | ||
|
|
e0c839f105 | ||
|
|
49a0b90795 | ||
|
|
ee3b34ecb1 | ||
|
|
351d793b96 | ||
|
|
d59938d254 | ||
|
|
5b9bbce55d | ||
|
|
fd3b244a8a | ||
|
|
bc33868676 | ||
|
|
f603c21b55 | ||
|
|
3f1b71fdf3 | ||
|
|
45840948f5 | ||
|
|
51372d5c34 | ||
|
|
cb01eaa7f7 | ||
|
|
138dfaa85b | ||
|
|
4165e0ef3a | ||
|
|
2d87a0458e | ||
|
|
c9a5a5b9c8 | ||
|
|
c9c2a79a55 | ||
|
|
34c87ea709 | ||
|
|
aee09d29e9 | ||
|
|
2e4e1973d9 | ||
|
|
c26675585d | ||
|
|
55cd4ae254 | ||
|
|
93638a1936 | ||
|
|
71030bafd8 | ||
|
|
cd9eb3b3e4 | ||
|
|
d707f8b1d1 | ||
|
|
91304663b7 | ||
|
|
d83091fc1f | ||
|
|
a1450c5595 | ||
|
|
b0013065a2 | ||
|
|
0bcea34767 | ||
|
|
69f526b13d | ||
|
|
7be2fc37e6 | ||
|
|
b3f6592a5f | ||
|
|
c82080e1a7 | ||
|
|
39b9807f19 | ||
|
|
7d8f01b88a | ||
|
|
d7b2d63e4c | ||
|
|
773f02cf7d | ||
|
|
327e76cd65 | ||
|
|
ab85ad5a55 | ||
|
|
48d702f76a | ||
|
|
21e2c419b9 | ||
|
|
6410feeb45 | ||
|
|
90f96eafe8 | ||
|
|
e671f43a2f | ||
|
|
7c6557b05e | ||
|
|
279350e4a3 | ||
|
|
fb72d543a3 | ||
|
|
8b8319fca0 | ||
|
|
0247a2da44 | ||
|
|
6a8f6357e2 | ||
|
|
8c7f2b77d5 | ||
|
|
7afc692632 | ||
|
|
1a214eaabc | ||
|
|
1e3fc990eb | ||
|
|
c5f4d0ce44 | ||
|
|
1c87dc577d | ||
|
|
80ed8be145 | ||
|
|
908452f883 | ||
|
|
c133b01ef7 | ||
|
|
00a61fdea0 | ||
|
|
65553a29e9 | ||
|
|
8746005d19 | ||
|
|
2a43560176 | ||
|
|
85b31c58b7 | ||
|
|
7c35d208b1 | ||
|
|
23c9f528db | ||
|
|
70d4c70e75 | ||
|
|
2e4e2f6270 | ||
|
|
1c30b1d5d6 | ||
|
|
86444eacc2 | ||
|
|
86669b9bed | ||
|
|
a72ce1cfae | ||
|
|
1d07afb30e | ||
|
|
bfc7e16d84 | ||
|
|
48e82f9ab5 | ||
|
|
e710ce1100 | ||
|
|
ffb503976b | ||
|
|
179b76da77 | ||
|
|
9631eff608 | ||
|
|
8c735d0dd5 | ||
|
|
27f4f05273 | ||
|
|
3764c1dfe4 | ||
|
|
88d924658e | ||
|
|
a7f9e0122b | ||
|
|
ba3fc242ab | ||
|
|
e10a3fa4b3 | ||
|
|
5d0d32b926 | ||
|
|
3b2f5d7842 | ||
|
|
eb9526cc92 | ||
|
|
ffa0afae27 | ||
|
|
5243399d9d | ||
|
|
3701c3f4bb | ||
|
|
67164f89f3 | ||
|
|
3a67cc2c45 | ||
|
|
9736123483 | ||
|
|
e6a8fe452c | ||
|
|
a818666294 | ||
|
|
75ac1a5346 | ||
|
|
313fd7107f | ||
|
|
d970b79f2b | ||
|
|
4c6bf68d4d | ||
|
|
7e64205d44 | ||
|
|
bfbf73f3cd | ||
|
|
968831c5b9 | ||
|
|
4cf44dd1d4 | ||
|
|
dfdbfee4fd | ||
|
|
2c9992e0cc | ||
|
|
94e21e69af | ||
|
|
c08bf86b71 | ||
|
|
55d4c7ee4f | ||
|
|
6de54b3b99 | ||
|
|
2d7042425e |
2
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
@@ -15,7 +15,7 @@ Please answer the following questions for yourself before submitting an issue. *
|
||||
|
||||
### Issue Details
|
||||
|
||||
<!-- Please include all relevant details about the environment you experienced the bug in. -->
|
||||
<!-- Please include all relevant details about the environment you experienced the bug in. If possible, include the result of running `./AdGuardHome -v --version` from the installation directory. -->
|
||||
|
||||
* **Version of AdGuard Home server:**
|
||||
* <!-- (e.g. v0.123.4) -->
|
||||
|
||||
20
.github/workflows/build.yml
vendored
20
.github/workflows/build.yml
vendored
@@ -1,7 +1,7 @@
|
||||
'name': 'build'
|
||||
|
||||
'env':
|
||||
'GO_VERSION': '1.14'
|
||||
'GO_VERSION': '1.15'
|
||||
'NODE_VERSION': '14'
|
||||
|
||||
'on':
|
||||
@@ -17,7 +17,7 @@
|
||||
'runs-on': '${{ matrix.os }}'
|
||||
'env':
|
||||
'GO111MODULE': 'on'
|
||||
'GOPROXY': 'https://goproxy.io'
|
||||
'GOPROXY': 'https://goproxy.cn'
|
||||
'strategy':
|
||||
'fail-fast': false
|
||||
'matrix':
|
||||
@@ -39,9 +39,7 @@
|
||||
'with':
|
||||
'node-version': '${{ env.NODE_VERSION }}'
|
||||
- 'name': 'Set up Go modules cache'
|
||||
# TODO(a.garipov): Update when they fix the macOS issue. The issue is
|
||||
# most probably https://github.com/actions/cache/issues/527.
|
||||
'uses': 'actions/cache@v2.1.3'
|
||||
'uses': 'actions/cache@v2'
|
||||
'with':
|
||||
'path': '~/go/pkg/mod'
|
||||
'key': "${{ runner.os }}-go-${{ hashFiles('go.sum') }}"
|
||||
@@ -50,9 +48,7 @@
|
||||
'id': 'npm-cache'
|
||||
'run': 'echo "::set-output name=dir::$(npm config get cache)"'
|
||||
- 'name': 'Set up npm cache'
|
||||
# TODO(a.garipov): Update when they fix the macOS issue. The issue is
|
||||
# most probably https://github.com/actions/cache/issues/527.
|
||||
'uses': 'actions/cache@v2.1.3'
|
||||
'uses': 'actions/cache@v2'
|
||||
'with':
|
||||
'path': '${{ steps.npm-cache.outputs.dir }}'
|
||||
'key': "${{ runner.os }}-node-${{ hashFiles('client/package-lock.json') }}"
|
||||
@@ -83,9 +79,7 @@
|
||||
'with':
|
||||
'node-version': '${{ env.NODE_VERSION }}'
|
||||
- 'name': 'Set up Go modules cache'
|
||||
# TODO(a.garipov): Update when they fix the macOS issue. The issue is
|
||||
# most probably https://github.com/actions/cache/issues/527.
|
||||
'uses': 'actions/cache@v2.1.3'
|
||||
'uses': 'actions/cache@v2'
|
||||
'with':
|
||||
'path': '~/go/pkg/mod'
|
||||
'key': "${{ runner.os }}-go-${{ hashFiles('go.sum') }}"
|
||||
@@ -94,9 +88,7 @@
|
||||
'id': 'npm-cache'
|
||||
'run': 'echo "::set-output name=dir::$(npm config get cache)"'
|
||||
- 'name': 'Set up npm cache'
|
||||
# TODO(a.garipov): Update when they fix the macOS issue. The issue is
|
||||
# most probably https://github.com/actions/cache/issues/527.
|
||||
'uses': 'actions/cache@v2.1.3'
|
||||
'uses': 'actions/cache@v2'
|
||||
'with':
|
||||
'path': '${{ steps.npm-cache.outputs.dir }}'
|
||||
'key': "${{ runner.os }}-node-${{ hashFiles('client/package-lock.json') }}"
|
||||
|
||||
137
CHANGELOG.md
137
CHANGELOG.md
@@ -10,9 +10,132 @@ and this project adheres to
|
||||
## [Unreleased]
|
||||
|
||||
<!--
|
||||
## [v0.106.0] - 2021-04-26
|
||||
## [v0.107.0] - 2021-06-21 (APPROX.)
|
||||
-->
|
||||
|
||||
<!--
|
||||
## [v0.106.3] - 2021-05-17 (APPROX.)
|
||||
-->
|
||||
|
||||
|
||||
|
||||
## [v0.106.2] - 2021-05-06
|
||||
|
||||
### Fixed
|
||||
|
||||
- Uniqueness validation for dynamic DHCP leases ([#3056]).
|
||||
|
||||
[#3056]: https://github.com/AdguardTeam/AdGuardHome/issues/3056
|
||||
|
||||
|
||||
|
||||
## [v0.106.1] - 2021-04-30
|
||||
|
||||
### Fixed
|
||||
|
||||
- Local domain name handling when the DHCP server is disabled ([#3028]).
|
||||
- Normalization of perviously-saved invalid static DHCP leases ([#3027]).
|
||||
- Validation of IPv6 addresses with zones in system resolvers ([#3022]).
|
||||
|
||||
[#3022]: https://github.com/AdguardTeam/AdGuardHome/issues/3022
|
||||
[#3027]: https://github.com/AdguardTeam/AdGuardHome/issues/3027
|
||||
[#3028]: https://github.com/AdguardTeam/AdGuardHome/issues/3028
|
||||
|
||||
|
||||
|
||||
## [v0.106.0] - 2021-04-28
|
||||
|
||||
### Added
|
||||
|
||||
- The ability to block user for login after configurable number of unsuccessful
|
||||
attempts for configurable time ([#2826]).
|
||||
- `$denyallow` modifier for filters ([#2923]).
|
||||
- Hostname uniqueness validation in the DHCP server ([#2952]).
|
||||
- Hostname generating for DHCP clients which don't provide their own ([#2723]).
|
||||
- New flag `--no-etc-hosts` to disable client domain name lookups in the
|
||||
operating system's /etc/hosts files ([#1947]).
|
||||
- The ability to set up custom upstreams to resolve PTR queries for local
|
||||
addresses and to disable the automatic resolving of clients' addresses
|
||||
([#2704]).
|
||||
- Logging of the client's IP address after failed login attempts ([#2824]).
|
||||
- Search by clients' names in the query log ([#1273]).
|
||||
- Verbose version output with `-v --version` ([#2416]).
|
||||
- The ability to set a custom TLD or domain name for known hosts in the local
|
||||
network ([#2393], [#2961]).
|
||||
- The ability to serve DNS queries on multiple hosts and interfaces ([#1401]).
|
||||
- `ips` and `text` DHCP server options ([#2385]).
|
||||
- `SRV` records support in `$dnsrewrite` filters ([#2533]).
|
||||
|
||||
### Changed
|
||||
|
||||
- Our DoQ implementation is now updated to conform to the latest standard
|
||||
[draft][doq-draft-02] ([#2843]).
|
||||
- Quality of logging ([#2954]).
|
||||
- Normalization of hostnames sent by DHCP clients ([#2945], [#2952]).
|
||||
- The access to the private hosts is now forbidden for users from external
|
||||
networks ([#2889]).
|
||||
- The reverse lookup for local addresses is now performed via local resolvers
|
||||
([#2704]).
|
||||
- Stricter validation of the IP addresses of static leases in the DHCP server
|
||||
with regards to the netmask ([#2838]).
|
||||
- Stricter validation of `$dnsrewrite` filter modifier parameters ([#2498]).
|
||||
- New, more correct versioning scheme ([#2412]).
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Go 1.15 support. v0.107.0 will require at least Go 1.16 to build.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Multiple answers for `$dnsrewrite` rule matching requests with repeating
|
||||
patterns in it ([#2981]).
|
||||
- Root server resolving when custom upstreams for hosts are specified ([#2994]).
|
||||
- Inconsistent resolving of DHCP clients when the DHCP server is disabled
|
||||
([#2934]).
|
||||
- Comment handling in clients' custom upstreams ([#2947]).
|
||||
- Overwriting of DHCPv4 options when using the HTTP API ([#2927]).
|
||||
- Assumption that MAC addresses always have the length of 6 octets ([#2828]).
|
||||
- Support for more than one `/24` subnet in DHCP ([#2541]).
|
||||
- Invalid filenames in the `mobileconfig` API responses ([#2835]).
|
||||
|
||||
### Removed
|
||||
|
||||
- Go 1.14 support.
|
||||
|
||||
[#1273]: https://github.com/AdguardTeam/AdGuardHome/issues/1273
|
||||
[#1401]: https://github.com/AdguardTeam/AdGuardHome/issues/1401
|
||||
[#1947]: https://github.com/AdguardTeam/AdGuardHome/issues/1947
|
||||
[#2385]: https://github.com/AdguardTeam/AdGuardHome/issues/2385
|
||||
[#2393]: https://github.com/AdguardTeam/AdGuardHome/issues/2393
|
||||
[#2412]: https://github.com/AdguardTeam/AdGuardHome/issues/2412
|
||||
[#2416]: https://github.com/AdguardTeam/AdGuardHome/issues/2416
|
||||
[#2498]: https://github.com/AdguardTeam/AdGuardHome/issues/2498
|
||||
[#2533]: https://github.com/AdguardTeam/AdGuardHome/issues/2533
|
||||
[#2541]: https://github.com/AdguardTeam/AdGuardHome/issues/2541
|
||||
[#2704]: https://github.com/AdguardTeam/AdGuardHome/issues/2704
|
||||
[#2723]: https://github.com/AdguardTeam/AdGuardHome/issues/2723
|
||||
[#2824]: https://github.com/AdguardTeam/AdGuardHome/issues/2824
|
||||
[#2826]: https://github.com/AdguardTeam/AdGuardHome/issues/2826
|
||||
[#2828]: https://github.com/AdguardTeam/AdGuardHome/issues/2828
|
||||
[#2835]: https://github.com/AdguardTeam/AdGuardHome/issues/2835
|
||||
[#2838]: https://github.com/AdguardTeam/AdGuardHome/issues/2838
|
||||
[#2843]: https://github.com/AdguardTeam/AdGuardHome/issues/2843
|
||||
[#2889]: https://github.com/AdguardTeam/AdGuardHome/issues/2889
|
||||
[#2923]: https://github.com/AdguardTeam/AdGuardHome/issues/2923
|
||||
[#2927]: https://github.com/AdguardTeam/AdGuardHome/issues/2927
|
||||
[#2934]: https://github.com/AdguardTeam/AdGuardHome/issues/2934
|
||||
[#2945]: https://github.com/AdguardTeam/AdGuardHome/issues/2945
|
||||
[#2947]: https://github.com/AdguardTeam/AdGuardHome/issues/2947
|
||||
[#2952]: https://github.com/AdguardTeam/AdGuardHome/issues/2952
|
||||
[#2954]: https://github.com/AdguardTeam/AdGuardHome/issues/2954
|
||||
[#2961]: https://github.com/AdguardTeam/AdGuardHome/issues/2961
|
||||
[#2981]: https://github.com/AdguardTeam/AdGuardHome/issues/2981
|
||||
[#2994]: https://github.com/AdguardTeam/AdGuardHome/issues/2994
|
||||
|
||||
[doq-draft-02]: https://tools.ietf.org/html/draft-ietf-dprive-dnsoquic-02
|
||||
|
||||
|
||||
|
||||
## [v0.105.2] - 2021-03-10
|
||||
|
||||
### Fixed
|
||||
@@ -21,7 +144,7 @@ and this project adheres to
|
||||
- Wrong DNS-over-TLS ALPN configuration ([#2681]).
|
||||
- Inconsistent responses for messages with EDNS0 and AD when DNS caching is
|
||||
enabled ([#2600]).
|
||||
- Incomplete OpenWRT detection ([#2757]).
|
||||
- Incomplete OpenWrt detection ([#2757]).
|
||||
- DHCP lease's `expired` field incorrect time format ([#2692]).
|
||||
- Incomplete DNS upstreams validation ([#2674]).
|
||||
- Wrong parsing of DHCP options of the `ip` type ([#2688]).
|
||||
@@ -223,11 +346,15 @@ and this project adheres to
|
||||
|
||||
|
||||
<!--
|
||||
[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.106.0...HEAD
|
||||
[v0.106.0]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.105.2...v0.106.0
|
||||
[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.106.3...HEAD
|
||||
[v0.107.0]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.106.3...v0.107.0
|
||||
[v0.106.3]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.106.2...v0.106.3
|
||||
-->
|
||||
|
||||
[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.105.2...HEAD
|
||||
[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.106.2...HEAD
|
||||
[v0.106.2]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.106.1...v0.106.2
|
||||
[v0.106.1]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.106.0...v0.106.1
|
||||
[v0.106.0]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.105.2...v0.106.0
|
||||
[v0.105.2]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.105.1...v0.105.2
|
||||
[v0.105.1]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.105.0...v0.105.1
|
||||
[v0.105.0]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.104.3...v0.105.0
|
||||
|
||||
193
HACKING.md
193
HACKING.md
@@ -1,19 +1,23 @@
|
||||
# AdGuard Home Developer Guidelines
|
||||
|
||||
As of **February 2021**, this document is partially a work-in-progress, but
|
||||
should still be followed. Some of the rules aren't enforced as thoroughly or
|
||||
remain broken in old code, but this is still the place to find out about what we
|
||||
**want** our code to look like.
|
||||
As of **March 2021**, following this document is obligatory for all new code.
|
||||
Some of the rules aren't enforced as thoroughly or remain broken in old code,
|
||||
but this is still the place to find out about what we **want** our code to look
|
||||
like and how to improve it.
|
||||
|
||||
The rules are mostly sorted in the alphabetical order.
|
||||
|
||||
|
||||
|
||||
## Contents
|
||||
|
||||
* [Git](#git)
|
||||
* [Go](#go)
|
||||
* [Code And Naming](#code-and-naming)
|
||||
* [Code](#code)
|
||||
* [Commenting](#commenting)
|
||||
* [Formatting](#formatting)
|
||||
* [Naming](#naming)
|
||||
* [Testing](#testing)
|
||||
* [Recommended Reading](#recommended-reading)
|
||||
* [Markdown](#markdown)
|
||||
* [Shell Scripting](#shell-scripting)
|
||||
@@ -23,6 +27,8 @@ The rules are mostly sorted in the alphabetical order.
|
||||
<!-- NOTE: Use the IDs that GitHub would generate in order for this to work both
|
||||
on GitHub and most other Markdown renderers. -->
|
||||
|
||||
|
||||
|
||||
## <a id="git" href="#git">Git</a>
|
||||
|
||||
* Call your branches either `NNNN-fix-foo` (where `NNNN` is the ID of the
|
||||
@@ -47,6 +53,8 @@ on GitHub and most other Markdown renderers. -->
|
||||
The only exceptions are direct mentions of identifiers from the source code
|
||||
and filenames like `HACKING.md`.
|
||||
|
||||
|
||||
|
||||
## <a id="go" href="#go">Go</a>
|
||||
|
||||
> Not Golang, not GO, not GOLANG, not GoLang. It is Go in natural language,
|
||||
@@ -54,7 +62,13 @@ on GitHub and most other Markdown renderers. -->
|
||||
|
||||
— [@rakyll](https://twitter.com/rakyll/status/1229850223184269312)
|
||||
|
||||
### <a id="code-and-naming" href="#code-and-naming">Code And Naming</a>
|
||||
### <a id="code" href="#code">Code</a>
|
||||
|
||||
* Always `recover` from panics in new goroutines. Preferably in the very
|
||||
first statement. If all you want there is a log message, use
|
||||
`agherr.LogPanic`.
|
||||
|
||||
* Avoid `errors.New`, use `aghnet.Error` instead.
|
||||
|
||||
* Avoid `goto`.
|
||||
|
||||
@@ -70,13 +84,48 @@ on GitHub and most other Markdown renderers. -->
|
||||
}
|
||||
```
|
||||
|
||||
Except when the check is done to then use the first character:
|
||||
|
||||
```go
|
||||
if len(s) > 0 {
|
||||
c := s[0]
|
||||
}
|
||||
```
|
||||
|
||||
* Constructors should validate their arguments and return meaningful errors.
|
||||
As a corollary, avoid lazy initialization.
|
||||
|
||||
* Don't use naked `return`s.
|
||||
* Don't mix horizontal and vertical placement of arguments in function and
|
||||
method calls. That is, either this:
|
||||
|
||||
* Don't use underscores in file and package names, unless they're build tags
|
||||
or for tests. This is to prevent accidental build errors with weird tags.
|
||||
```go
|
||||
err := f(a, b, c)
|
||||
```
|
||||
|
||||
Or, when the arguments are too long, this:
|
||||
|
||||
```go
|
||||
err := functionWithALongName(
|
||||
firstArgumentWithALongName,
|
||||
secondArgumentWithALongName,
|
||||
thirdArgumentWithALongName,
|
||||
)
|
||||
```
|
||||
|
||||
But **never** this:
|
||||
|
||||
```go
|
||||
err := functionWithALongName(firstArgumentWithALongName,
|
||||
secondArgumentWithALongName,
|
||||
thirdArgumentWithALongName,
|
||||
)
|
||||
```
|
||||
|
||||
* Don't use `fmt.Sprintf` where a more structured approach to string
|
||||
conversion could be used. For example, `net.JoinHostPort` or
|
||||
`url.(*URL).String`.
|
||||
|
||||
* Don't use naked `return`s.
|
||||
|
||||
* Don't write non-test code with more than four (**4**) levels of indentation.
|
||||
Just like [Linus said], plus an additional level for an occasional error
|
||||
@@ -88,25 +137,7 @@ on GitHub and most other Markdown renderers. -->
|
||||
* Eschew external dependencies, including transitive, unless
|
||||
absolutely necessary.
|
||||
|
||||
* Name benchmarks and tests using the same convention as examples. For
|
||||
example:
|
||||
|
||||
```go
|
||||
func TestFunction(t *testing.T) { /* … */ }
|
||||
func TestFunction_suffix(t *testing.T) { /* … */ }
|
||||
func TestType_Method(t *testing.T) { /* … */ }
|
||||
func TestType_Method_suffix(t *testing.T) { /* … */ }
|
||||
```
|
||||
|
||||
* Name parameters in interface definitions:
|
||||
|
||||
```go
|
||||
type Frobulator interface {
|
||||
Frobulate(f Foo, b Bar) (r Result, err error)
|
||||
}
|
||||
```
|
||||
|
||||
* Name the deferred errors (e.g. when closing something) `cerr`.
|
||||
* Minimize scope of variables as much as possible.
|
||||
|
||||
* No shadowing, since it can often lead to subtle bugs, especially with
|
||||
errors.
|
||||
@@ -114,20 +145,12 @@ on GitHub and most other Markdown renderers. -->
|
||||
* Prefer constants to variables where possible. Reduce global variables. Use
|
||||
[constant errors] instead of `errors.New`.
|
||||
|
||||
* Prefer to use named functions for goroutines.
|
||||
|
||||
* Program code lines should not be longer than one hundred (**100**) columns.
|
||||
For comments, see the text section below.
|
||||
|
||||
* Unused arguments in anonymous functions must be called `_`:
|
||||
|
||||
```go
|
||||
v.onSuccess = func(_ int, msg string) {
|
||||
// …
|
||||
}
|
||||
```
|
||||
|
||||
* Use linters.
|
||||
|
||||
* Use named returns to improve readability of function signatures.
|
||||
* Use linters. `make go-lint`.
|
||||
|
||||
* Write logs and error messages in lowercase only to make it easier to `grep`
|
||||
logs and error messages without using the `-i` flag.
|
||||
@@ -165,8 +188,8 @@ on GitHub and most other Markdown renderers. -->
|
||||
|
||||
### <a id="formatting" href="#formatting">Formatting</a>
|
||||
|
||||
* Add an empty line before `break`, `continue`, `fallthrough`, and `return`,
|
||||
unless it's the only statement in that block.
|
||||
* Decorate `break`, `continue`, `fallthrough`, `return`, and other function
|
||||
exit points with empty lines unless it's the only statement in that block.
|
||||
|
||||
* Use `gofumpt --extra -s`.
|
||||
|
||||
@@ -185,6 +208,76 @@ on GitHub and most other Markdown renderers. -->
|
||||
}}
|
||||
```
|
||||
|
||||
### <a id="naming" href="#naming">Naming</a>
|
||||
|
||||
* Don't use underscores in file and package names, unless they're build tags
|
||||
or for tests. This is to prevent accidental build errors with weird tags.
|
||||
|
||||
* Name benchmarks and tests using the same convention as examples. For
|
||||
example:
|
||||
|
||||
```go
|
||||
func TestFunction(t *testing.T) { /* … */ }
|
||||
func TestFunction_suffix(t *testing.T) { /* … */ }
|
||||
func TestType_Method(t *testing.T) { /* … */ }
|
||||
func TestType_Method_suffix(t *testing.T) { /* … */ }
|
||||
```
|
||||
|
||||
* Name parameters in interface definitions:
|
||||
|
||||
```go
|
||||
type Frobulator interface {
|
||||
Frobulate(f Foo, b Bar) (r Result, err error)
|
||||
}
|
||||
```
|
||||
|
||||
* Name the deferred errors (e.g. when closing something) `derr`.
|
||||
|
||||
* Unused arguments in anonymous functions must be called `_`:
|
||||
|
||||
```go
|
||||
v.onSuccess = func(_ int, msg string) {
|
||||
// …
|
||||
}
|
||||
```
|
||||
|
||||
* Use named returns to improve readability of function signatures.
|
||||
|
||||
* When naming a file which defines an enitity, use singular nouns, unless the
|
||||
entity is some form of a container for other entities:
|
||||
|
||||
```go
|
||||
// File: client.go
|
||||
|
||||
package foo
|
||||
|
||||
type Client struct {
|
||||
// …
|
||||
}
|
||||
```
|
||||
|
||||
```go
|
||||
// File: clients.go
|
||||
|
||||
package foo
|
||||
|
||||
type Clients []*Client
|
||||
|
||||
// …
|
||||
|
||||
type ClientsWithCache struct {
|
||||
// …
|
||||
}
|
||||
```
|
||||
|
||||
### <a id="testing" href="#testing">Testing</a>
|
||||
|
||||
* Use `assert.NoError` and `require.NoError` instead of `assert.Nil` and
|
||||
`require.Nil` on errors.
|
||||
|
||||
* Use functions like `require.Foo` instead of `assert.Foo` when the test
|
||||
cannot continue if the condition is false.
|
||||
|
||||
### <a id="recommended-reading" href="#recommended-reading">Recommended Reading</a>
|
||||
|
||||
* <https://github.com/golang/go/wiki/CodeReviewComments>.
|
||||
@@ -197,6 +290,8 @@ on GitHub and most other Markdown renderers. -->
|
||||
[Linus said]: https://www.kernel.org/doc/html/v4.17/process/coding-style.html#indentation
|
||||
[Text, Including Comments]: #text-including-comments
|
||||
|
||||
|
||||
|
||||
## <a id="markdown" href="#markdown">Markdown</a>
|
||||
|
||||
* **TODO(a.garipov):** Define more Markdown conventions.
|
||||
@@ -208,6 +303,8 @@ on GitHub and most other Markdown renderers. -->
|
||||
* Use either link references or link destinations only. Put all link
|
||||
reference definitions at the end of the second-level block.
|
||||
|
||||
|
||||
|
||||
## <a id="shell-scripting" href="#shell-scripting">Shell Scripting</a>
|
||||
|
||||
* Avoid bashisms and GNUisms, prefer POSIX features only.
|
||||
@@ -219,6 +316,9 @@ on GitHub and most other Markdown renderers. -->
|
||||
* Put utility flags in the ASCII order and **don't** group them together. For
|
||||
example, `ls -1 -A -q`.
|
||||
|
||||
* Script code lines should not be longer than one hundred (**100**) columns.
|
||||
For comments, see the text section below.
|
||||
|
||||
* `snake_case`, not `camelCase` for variables. `kebab-case` for filenames.
|
||||
|
||||
* UPPERCASE names for external exported variables, lowercase for local,
|
||||
@@ -249,6 +349,14 @@ on GitHub and most other Markdown renderers. -->
|
||||
dir="${TOP_DIR}"/sub
|
||||
```
|
||||
|
||||
* When using `test` (aka `[`), spell compound conditions with `&&`, `||`, and
|
||||
`!` **outside** of `test` instead of `-a`, `-o`, and `!` inside of `test`
|
||||
correspondingly. The latter ones are pretty much deprecated in POSIX.
|
||||
|
||||
See also: “[Problems With the `test` Builtin: What Does `-a` Mean?]”.
|
||||
|
||||
[Problems With the `test` Builtin: What Does `-a` Mean?]: https://www.oilshell.org/blog/2017/08/31.html
|
||||
|
||||
## <a id="text-including-comments" href="#text-including-comments">Text, Including Comments</a>
|
||||
|
||||
* End sentences with appropriate punctuation.
|
||||
@@ -310,6 +418,7 @@ on GitHub and most other Markdown renderers. -->
|
||||
escaping is required or there are single quotes inside the string (e.g. for
|
||||
GitHub Actions).
|
||||
|
||||
* Use `>` for multiline strings, unless you need to keep the line breaks.
|
||||
* Use `>` for multiline strings, unless you need to keep the line breaks. Use
|
||||
`|` for multiline strings when you do.
|
||||
|
||||
[NO-rway Law]: https://news.ycombinator.com/item?id=17359376
|
||||
|
||||
57
Makefile
57
Makefile
@@ -7,23 +7,31 @@
|
||||
CHANNEL = development
|
||||
CLIENT_BETA_DIR = client2
|
||||
CLIENT_DIR = client
|
||||
COMMIT = $$(git rev-parse --short HEAD)
|
||||
COMMIT = $$( git rev-parse --short HEAD )
|
||||
DIST_DIR = dist
|
||||
GO = go
|
||||
# TODO(a.garipov): Add more default proxies using pipes after update to
|
||||
# Go 1.15.
|
||||
# Don't name this macro "GO", because GNU Make apparenly makes it an
|
||||
# exported environment variable with the literal value of "${GO:-go}",
|
||||
# which is not what we need. Use a dot in the name to make sure that
|
||||
# users don't have an environment variable with the same name.
|
||||
#
|
||||
# GOPROXY = https://goproxy.io|https://goproxy.cn|direct
|
||||
GOPROXY = https://goproxy.cn,https://goproxy.io,direct
|
||||
# See https://unix.stackexchange.com/q/646255/105635.
|
||||
GO.MACRO = $${GO:-go}
|
||||
GOPROXY = https://goproxy.cn|https://proxy.golang.org|direct
|
||||
GPG_KEY = devteam@adguard.com
|
||||
GPG_KEY_PASSPHRASE = not-a-real-password
|
||||
NPM = npm
|
||||
NPM_FLAGS = --prefix $(CLIENT_DIR)
|
||||
NPM_INSTALL_FLAGS = $(NPM_FLAGS) --quiet --no-progress --ignore-engines\
|
||||
--ignore-optional --ignore-platform --ignore-scripts
|
||||
RACE = 0
|
||||
SIGN = 1
|
||||
VERBOSE = 0
|
||||
VERSION = v0.0.0
|
||||
YARN = yarn
|
||||
YARN_FLAGS = --cwd $(CLIENT_BETA_DIR)
|
||||
YARN_INSTALL_FLAGS = $(YARN_FLAGS) --network-timeout 120000 --silent\
|
||||
--ignore-engines --ignore-optional --ignore-platform\
|
||||
--ignore-scripts
|
||||
|
||||
ENV = env\
|
||||
COMMIT='$(COMMIT)'\
|
||||
@@ -31,9 +39,10 @@ ENV = env\
|
||||
GPG_KEY='$(GPG_KEY)'\
|
||||
GPG_KEY_PASSPHRASE='$(GPG_KEY_PASSPHRASE)'\
|
||||
DIST_DIR='$(DIST_DIR)'\
|
||||
GO='$(GO)'\
|
||||
GO="$(GO.MACRO)"\
|
||||
GOPROXY='$(GOPROXY)'\
|
||||
PATH="$${PWD}/bin:$$($(GO) env GOPATH)/bin:$${PATH}"\
|
||||
PATH="$${PWD}/bin:$$( "$(GO.MACRO)" env GOPATH )/bin:$${PATH}"\
|
||||
RACE='$(RACE)'\
|
||||
SIGN='$(SIGN)'\
|
||||
VERBOSE='$(VERBOSE)'\
|
||||
VERSION='$(VERSION)'\
|
||||
@@ -66,8 +75,8 @@ js-build:
|
||||
$(NPM) $(NPM_FLAGS) run build-prod
|
||||
$(YARN) $(YARN_FLAGS) build
|
||||
js-deps:
|
||||
$(NPM) $(NPM_FLAGS) ci
|
||||
$(YARN) $(YARN_FLAGS) install
|
||||
$(NPM) $(NPM_INSTALL_FLAGS) ci
|
||||
$(YARN) $(YARN_INSTALL_FLAGS) install
|
||||
|
||||
# TODO(a.garipov): Remove the legacy client tasks support once the new
|
||||
# client is done and the old one is removed.
|
||||
@@ -79,25 +88,21 @@ js-beta-test: ; # TODO(v.abdulmyanov): Add tests for the new client.
|
||||
go-build: ; $(ENV) "$(SHELL)" ./scripts/make/go-build.sh
|
||||
go-deps: ; $(ENV) "$(SHELL)" ./scripts/make/go-deps.sh
|
||||
go-lint: ; $(ENV) "$(SHELL)" ./scripts/make/go-lint.sh
|
||||
go-test: ; $(ENV) "$(SHELL)" ./scripts/make/go-test.sh
|
||||
go-tools: ; $(ENV) "$(SHELL)" ./scripts/make/go-tools.sh
|
||||
|
||||
# TODO(a.garipov): Think about making RACE='1' the default for all
|
||||
# targets.
|
||||
go-test: ; $(ENV) RACE='1' "$(SHELL)" ./scripts/make/go-test.sh
|
||||
|
||||
go-check: go-tools go-lint go-test
|
||||
|
||||
# A quick check to make sure that all supported operating systems can be
|
||||
# typechecked and built successfully.
|
||||
go-os-check:
|
||||
env GOOS='darwin' "$(GO.MACRO)" vet ./internal/...
|
||||
env GOOS='freebsd' "$(GO.MACRO)" vet ./internal/...
|
||||
env GOOS='linux' "$(GO.MACRO)" vet ./internal/...
|
||||
env GOOS='windows' "$(GO.MACRO)" vet ./internal/...
|
||||
|
||||
openapi-lint: ; cd ./openapi/ && $(YARN) test
|
||||
openapi-show: ; cd ./openapi/ && $(YARN) start
|
||||
|
||||
# TODO(a.garipov): Remove the legacy targets once the build
|
||||
# infrastructure stops using them.
|
||||
dependencies:
|
||||
@ echo "use make deps instead"
|
||||
@ $(MAKE) deps
|
||||
docker-multi-arch:
|
||||
@ echo "use make build-docker instead"
|
||||
@ $(MAKE) build-docker
|
||||
go-install-tools:
|
||||
@ echo "use make go-tools instead"
|
||||
@ $(MAKE) go-tools
|
||||
release:
|
||||
@ echo "use make build-release instead"
|
||||
@ $(MAKE) build-release
|
||||
|
||||
@@ -177,7 +177,7 @@ Run `make init` to prepare the development environment.
|
||||
|
||||
You will need this to build AdGuard Home:
|
||||
|
||||
* [go](https://golang.org/dl/) v1.14 or later.
|
||||
* [go](https://golang.org/dl/) v1.15 or later.
|
||||
* [node.js](https://nodejs.org/en/download/) v10.16.2 or later.
|
||||
* [npm](https://www.npmjs.com/) v6.14 or later (temporary requirement, TODO: remove when redesign is finished).
|
||||
* [yarn](https://yarnpkg.com/) v1.22.5 or later.
|
||||
|
||||
5
bamboo-specs/bamboo.yaml
Normal file
5
bamboo-specs/bamboo.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
!include test.yaml
|
||||
|
||||
---
|
||||
!include release.yaml
|
||||
275
bamboo-specs/release.yaml
Normal file
275
bamboo-specs/release.yaml
Normal file
@@ -0,0 +1,275 @@
|
||||
---
|
||||
'version': 2
|
||||
'plan':
|
||||
'project-key': 'AGH'
|
||||
'key': 'AGHBSNAPSPECS'
|
||||
'name': 'AdGuard Home - Build and publish release'
|
||||
# Make sure to sync any changes with the branch overrides below.
|
||||
'variables':
|
||||
'channel': 'edge'
|
||||
'dockerGo': 'adguard/golang-ubuntu:2.0'
|
||||
|
||||
'stages':
|
||||
- 'Make release':
|
||||
'manual': false
|
||||
'final': false
|
||||
'jobs':
|
||||
- 'Make release'
|
||||
|
||||
- 'Make and publish docker':
|
||||
'manual': false
|
||||
'final': false
|
||||
'jobs':
|
||||
- 'Make and publish docker'
|
||||
|
||||
- 'Publish to static.adguard.com':
|
||||
'manual': false
|
||||
'final': false
|
||||
'jobs':
|
||||
- 'Publish to static.adguard.com'
|
||||
|
||||
- 'Publish to Snapstore':
|
||||
'manual': false
|
||||
'final': false
|
||||
'jobs':
|
||||
- 'Publish to Snapstore'
|
||||
|
||||
- 'Publish to Github Releases':
|
||||
'manual': false
|
||||
'final': false
|
||||
'jobs':
|
||||
- 'Publish to Github Releases'
|
||||
|
||||
'Make release':
|
||||
'docker':
|
||||
'image': '${bamboo.dockerGo}'
|
||||
'volumes':
|
||||
'${system.YARN_DIR}': '${bamboo.cacheYarn}'
|
||||
'${system.GO_CACHE_DIR}': '${bamboo.cacheGo}'
|
||||
'${system.GO_PKG_CACHE_DIR}': '${bamboo.cacheGoPkg}'
|
||||
'key': 'MR'
|
||||
'other':
|
||||
'clean-working-dir': true
|
||||
'tasks':
|
||||
- 'checkout':
|
||||
'force-clean-build': true
|
||||
- 'script':
|
||||
'interpreter': 'SHELL'
|
||||
'scripts':
|
||||
- |
|
||||
#!/bin/sh
|
||||
|
||||
set -e -f -u -x
|
||||
|
||||
# Explicitly checkout the revision that we need.
|
||||
git checkout "${bamboo.repository.revision.number}"
|
||||
|
||||
# Run the build with the specified channel.
|
||||
echo "${bamboo.gpgSecretKey}"\
|
||||
| awk '{ gsub(/\\n/, "\n"); print; }'\
|
||||
| gpg --import --batch --yes
|
||||
|
||||
make\
|
||||
CHANNEL=${bamboo.channel}\
|
||||
GPG_KEY_PASSPHRASE=${bamboo.gpgPassword}\
|
||||
VERBOSE=1\
|
||||
build-release
|
||||
# TODO(a.garipov): Use more fine-grained artifact rules.
|
||||
'artifacts':
|
||||
- 'name': 'AdGuardHome dists'
|
||||
'pattern': 'dist/**'
|
||||
'shared': true
|
||||
'required': true
|
||||
'requirements':
|
||||
- 'adg-docker': 'true'
|
||||
|
||||
'Make and publish docker':
|
||||
'key': 'MPD'
|
||||
'other':
|
||||
'clean-working-dir': true
|
||||
'tasks':
|
||||
- 'checkout':
|
||||
'force-clean-build': true
|
||||
- 'script':
|
||||
'interpreter': 'SHELL'
|
||||
'scripts':
|
||||
- |
|
||||
#!/bin/sh
|
||||
|
||||
set -e -f -u -x
|
||||
|
||||
# Explicitly checkout the revision that we need.
|
||||
git checkout "${bamboo.repository.revision.number}"
|
||||
|
||||
# Install Qemu, create builder.
|
||||
docker version -f '{{ .Server.Experimental }}'
|
||||
docker buildx rm buildx-builder || :
|
||||
docker buildx create --name buildx-builder --driver docker-container\
|
||||
--use
|
||||
docker buildx inspect --bootstrap
|
||||
|
||||
# Login to DockerHub.
|
||||
docker login -u="${bamboo.dockerHubUsername}"\
|
||||
-p="${bamboo.dockerHubPassword}"
|
||||
|
||||
# Boot the builder.
|
||||
docker buildx inspect --bootstrap
|
||||
|
||||
# Print Docker info.
|
||||
docker info
|
||||
|
||||
# Prepare and push the build.
|
||||
make\
|
||||
CHANNEL="${bamboo.channel}"\
|
||||
DOCKER_IMAGE_NAME='adguard/adguardhome'\
|
||||
DOCKER_OUTPUT="type=image,name=adguard/adguardhome,push=true"\
|
||||
VERBOSE='1'\
|
||||
build-docker
|
||||
'environment':
|
||||
DOCKER_CLI_EXPERIMENTAL=enabled
|
||||
'final-tasks':
|
||||
- 'clean'
|
||||
'requirements':
|
||||
- 'adg-docker': 'true'
|
||||
|
||||
'Publish to static.adguard.com':
|
||||
'key': 'PUB'
|
||||
'other':
|
||||
'clean-working-dir': true
|
||||
'tasks':
|
||||
- 'clean'
|
||||
- 'checkout':
|
||||
'repository': 'bamboo-deploy-publisher'
|
||||
'path': 'bamboo-deploy-publisher'
|
||||
'force-clean-build': true
|
||||
- 'script':
|
||||
'interpreter': 'SHELL'
|
||||
'scripts':
|
||||
- |
|
||||
#!/bin/sh
|
||||
|
||||
set -e -f -u -x
|
||||
|
||||
cd ./dist/
|
||||
|
||||
export CHANNEL="${bamboo.channel}"
|
||||
../bamboo-deploy-publisher/deploy.sh adguard-home-"$CHANNEL"
|
||||
'final-tasks':
|
||||
- 'clean'
|
||||
'requirements':
|
||||
- 'adg-docker': 'true'
|
||||
|
||||
'Publish to Snapstore':
|
||||
'docker':
|
||||
'image': '${bamboo.dockerGo}'
|
||||
'key': 'PTS'
|
||||
'other':
|
||||
'clean-working-dir': true
|
||||
'tasks':
|
||||
- 'clean'
|
||||
- 'checkout':
|
||||
'repository': 'bamboo-deploy-publisher'
|
||||
'path': 'bamboo-deploy-publisher'
|
||||
'force-clean-build': true
|
||||
- 'script':
|
||||
'interpreter': 'SHELL'
|
||||
'scripts':
|
||||
- |
|
||||
#!/bin/sh
|
||||
|
||||
set -e -f -u -x
|
||||
|
||||
cd ./dist/
|
||||
|
||||
env\
|
||||
SNAPCRAFT_CHANNEL=edge\
|
||||
SNAPCRAFT_EMAIL="${bamboo.snapcraftEmail}"\
|
||||
SNAPCRAFT_MACAROON="${bamboo.snapcraftMacaroonPassword}"\
|
||||
SNAPCRAFT_UBUNTU_DISCHARGE="${bamboo.snapcraftUbuntuDischargePassword}"\
|
||||
../bamboo-deploy-publisher/deploy.sh adguard-home-snap
|
||||
'final-tasks':
|
||||
- 'clean'
|
||||
'requirements':
|
||||
- 'adg-docker': 'true'
|
||||
|
||||
'Publish to Github Releases':
|
||||
'key': 'PTGR'
|
||||
'other':
|
||||
'clean-working-dir': true
|
||||
'tasks':
|
||||
- 'clean'
|
||||
- 'checkout':
|
||||
'repository': 'bamboo-deploy-publisher'
|
||||
'path': 'bamboo-deploy-publisher'
|
||||
'force-clean-build': true
|
||||
- 'script':
|
||||
'interpreter': 'SHELL'
|
||||
'scripts':
|
||||
- |
|
||||
#!/bin/sh
|
||||
|
||||
set -e -f -u -x
|
||||
|
||||
export CHANNEL="${bamboo.channel}"
|
||||
if [ "$CHANNEL" != 'release' ] && [ "${CHANNEL}" != 'beta' ]
|
||||
then
|
||||
echo "don't publish to Github Releases for this channel"
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
cd ./dist/
|
||||
|
||||
env\
|
||||
GITHUB_TOKEN="${bamboo.githubPublicRepoPassword}"\
|
||||
../bamboo-deploy-publisher/deploy.sh adguard-home-github
|
||||
'final-tasks':
|
||||
- 'clean'
|
||||
'requirements':
|
||||
- 'adg-docker': 'true'
|
||||
|
||||
'triggers':
|
||||
- 'cron': '0 30 14 ? * MON-FRI *'
|
||||
'branches':
|
||||
'create': 'manually'
|
||||
'delete':
|
||||
'after-deleted-days': 1
|
||||
'after-inactive-days': 30
|
||||
'integration':
|
||||
'push-on-success': false
|
||||
'merge-from': 'AdGuard Home - Build and publish release'
|
||||
'link-to-jira': true
|
||||
|
||||
'notifications':
|
||||
- 'events':
|
||||
- 'plan-completed'
|
||||
'recipients':
|
||||
- 'webhook':
|
||||
'name': 'Build webhook'
|
||||
'url': 'http://prod.jirahub.service.eu.consul/v1/webhook/bamboo?channel=adguard-qa'
|
||||
|
||||
'labels': []
|
||||
'other':
|
||||
'concurrent-build-plugin': 'system-default'
|
||||
|
||||
'branch-overrides':
|
||||
# beta-vX.Y branches are the branches into which the commits that are needed to
|
||||
# release a new patch version are initially cherry-picked.
|
||||
- '^beta-v[0-9]+\.[0-9]+':
|
||||
# Build betas on release branches manually.
|
||||
'triggers': []
|
||||
# Set the default release channel on the release branch to beta, as we may
|
||||
# need to build a few of these.
|
||||
'variables':
|
||||
'channel': 'beta'
|
||||
'dockerGo': 'adguard/golang-ubuntu:2.0'
|
||||
# release-vX.Y.Z branches are the branches from which the actual final release
|
||||
# is built.
|
||||
- '^release-v[0-9]+\.[0-9]+\.[0-9]+':
|
||||
# Build final releases on release branches manually.
|
||||
'triggers': []
|
||||
# Set the default release channel on the final branch to release, as these
|
||||
# are the ones that actually get released.
|
||||
'variables':
|
||||
'channel': 'release'
|
||||
'dockerGo': 'adguard/golang-ubuntu:2.0'
|
||||
64
bamboo-specs/test.yaml
Normal file
64
bamboo-specs/test.yaml
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
'version': 2
|
||||
'plan':
|
||||
'project-key': 'AGH'
|
||||
'key': 'AHBRTSPECS'
|
||||
'name': 'AdGuard Home - Build and run tests'
|
||||
'variables':
|
||||
'dockerGo': 'adguard/golang-ubuntu:2.0'
|
||||
|
||||
'stages':
|
||||
- 'Tests':
|
||||
'manual': false
|
||||
'final': false
|
||||
'jobs':
|
||||
- 'Test'
|
||||
|
||||
'Test':
|
||||
'docker':
|
||||
'image': '${bamboo.dockerGo}'
|
||||
'volumes':
|
||||
'${system.YARN_DIR}': '${bamboo.cacheYarn}'
|
||||
'${system.GO_CACHE_DIR}': '${bamboo.cacheGo}'
|
||||
'${system.GO_PKG_CACHE_DIR}': '${bamboo.cacheGoPkg}'
|
||||
'key': 'TEST'
|
||||
'other':
|
||||
'clean-working-dir': true
|
||||
'tasks':
|
||||
- 'checkout':
|
||||
'force-clean-build': true
|
||||
- 'script':
|
||||
'interpreter': 'SHELL'
|
||||
'scripts':
|
||||
- |
|
||||
#!/bin/sh
|
||||
|
||||
set -e -f -u -x
|
||||
|
||||
make VERBOSE=1 ci go-tools lint
|
||||
'final-tasks':
|
||||
- 'clean'
|
||||
'requirements':
|
||||
- 'adg-docker': 'true'
|
||||
|
||||
'branches':
|
||||
'create': 'for-pull-request'
|
||||
'delete':
|
||||
'after-deleted-days': 1
|
||||
'after-inactive-days': 5
|
||||
'integration':
|
||||
'push-on-success': false
|
||||
'merge-from': 'AdGuard Home - Build and run tests'
|
||||
'link-to-jira': true
|
||||
|
||||
'notifications':
|
||||
- 'events':
|
||||
- 'plan-status-changed'
|
||||
'recipients':
|
||||
- 'webhook':
|
||||
'name': 'Build webhook'
|
||||
'url': 'http://prod.jirahub.service.eu.consul/v1/webhook/bamboo'
|
||||
|
||||
'labels': []
|
||||
'other':
|
||||
'concurrent-build-plugin': 'system-default'
|
||||
@@ -8,6 +8,11 @@
|
||||
"load_balancing_desc": "Запытвайце па адным серверы за раз. AdGuard Home будзе выкарыстоўваць выпадковы алгарытм для выбару сервера, так што самы хуткі сервер будзе выкарыстоўвацца часцей.",
|
||||
"bootstrap_dns": "Bootstrap DNS-серверы",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS-серверы выкарыстоўваюцца для пошуку IP-адрасоў DoH/DoT сервераў, якія вы паказалі.",
|
||||
"local_ptr_title": "Прыватныя DNS-серверы",
|
||||
"local_ptr_desc": "DNS-сервер ці серверы, якія AdGuard Home будзе выкарыстоўваць для запытаў на лакальныя рэсурсы. Напрыклад, гэтыя серверы будуць выкарыстоўвацца, каб атрымаць даменавыя імёны кліентаў у прыватных сетках. Калі спіс пусты, AdGuard Home будзе выкарыстоўваць сістэмны DNS-сервер па змаўчанні.",
|
||||
"local_ptr_placeholder": "Увядзіце па адным адрасе на радок",
|
||||
"resolve_clients_title": "Уключыць запытванне даменавых імёнаў для кліентаў",
|
||||
"resolve_clients_desc": "AdGuard Home будзе спрабаваць аўтаматычна вызначыць даменавыя імёны кліентаў праз PTR-запыты да адпаведных сервераў (прыватны DNS-сервер для лакальных кліентаў, upstream-серверы для кліентаў з публічным IP-адрасам).",
|
||||
"check_dhcp_servers": "Праверыць DHCP-серверы",
|
||||
"save_config": "Захаваць канфігурацыю",
|
||||
"enabled_dhcp": "DHCP-сервер улучаны",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Некарэктны фармат MAC",
|
||||
"form_error_client_id_format": "Няслушны фармат ID кліента",
|
||||
"form_error_server_name": "Няслушнае імя сервера",
|
||||
"form_error_subnet": "Падсетка «{{cidr}}» не ўтрымвае IP-адраса «{{ip}}»",
|
||||
"form_error_positive": "Павінна быць больш 0",
|
||||
"form_error_negative": "Павінна быць не менш 0",
|
||||
"range_end_error": "Павінен перавышаць пачатак дыяпазону",
|
||||
@@ -305,7 +311,7 @@
|
||||
"install_devices_router": "Роўтар",
|
||||
"install_devices_router_desc": "Такая наладка аўтаматычна пакрые ўсе прылады, што выкарыстоўваюць ваш хатні роўтар, і вам не трэба будзе наладжваць кожнае з іх у асобнасці.",
|
||||
"install_devices_address": "DNS-сервер AdGuard Home даступны па наступных адрасах",
|
||||
"install_devices_router_list_1": "Адкрыйце налады вашага рутара. Звычайна вы можаце адкрыць іх у вашым браўзары (напрыклад, http://192.168.0.1/ ці http://192.168.1.1/). Вас могуць папрасіць увесці пароль. Калі вы не помніце яго, пароль часта можна скінуць, націснуўшы на кнопку на самым роўтары. Некаторыя роўтары патрабуюць адмысловага дадатку, які ў гэтым выпадку павінен быць ужо ўсталявана на ваш кампутар ці тэлефон.",
|
||||
"install_devices_router_list_1": "Адкрыйце налады вашага роўтара. Звычайна вы можаце адкрыць іх у вашым браўзары, напрыклад, http://192.168.0.1/ ці http://192.168.1.1/. Вас могуць папрасіць увесці пароль. Калі вы не помніце яго, пароль часта можна скінуць, націснуўшы на кнопку на самым роўтары. Некаторыя роўтары патрабуюць адмысловага дадатку, які ў гэтым выпадку павінен быць ужо ўсталявана на ваш кампутар ці тэлефон.",
|
||||
"install_devices_router_list_2": "Знайдзіце налады DHCP ці DNS. Знайдзіце літары \"DNS\" поруч з тэкставым полем, у якое можна ўвесці два ці тры шэрагі лічбаў, падзеленых на 4 групы ад адной до трох лічбаў.",
|
||||
"install_devices_router_list_3": "Увядзіце туды адрас вашага AdGuard Home.",
|
||||
"install_devices_router_list_4": "Вы не можаце ўсталяваць уласны DNS-сервер на некаторых тыпах маршрутызатараў. У гэтым выпадку можа дапамагчы налада AdGuard Home у якасці <a href='#dhcp'>DHCP-сервера</a>. У адваротным выпадку вам трэба звярнуцца да кіраўніцтва па наладзе DNS-сервераў для вашай пэўнай мадэлі маршрутызатара.",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP-адрас",
|
||||
"client_identifier_desc": "Кліенты могуць быць ідэнтыфікаваны па IP-адрасе, CIDR ці MAC-адрасу. Звярніце ўвагу, што выкарыстанне MAC як ідэнтыфікатара магчыма, толькі калі AdGuard Home таксама з'яўляецца і <0>DHCP-серверам</0>",
|
||||
"form_enter_ip": "Увядзіце IP",
|
||||
"form_enter_subnet_ip": "Увядзіце IP-адрас у падсеткі «{{cidr}}»",
|
||||
"form_enter_mac": "Увядзіце MAC",
|
||||
"form_enter_id": "Увядзіце ідэнтыфікатар",
|
||||
"form_add_id": "Дадаць ідэнтыфікатар",
|
||||
@@ -594,4 +601,4 @@
|
||||
"adg_will_drop_dns_queries": "AdGuard Home скіне ўсе DNS-запыты ад гэтага кліента.",
|
||||
"client_not_in_allowed_clients": "Кліент не дазволены, бо яго няма ў спісе \"Дазволеных кліентаў\".",
|
||||
"experimental": "Эксперыментальны"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
{
|
||||
"check_dhcp_servers": "Проверка за активен DHCP сървър",
|
||||
"save_config": "Запиши настройките",
|
||||
"enabled_dhcp": "DHCP е разрешен",
|
||||
"disabled_dhcp": "DHCP е забранен",
|
||||
"dhcp_title": "DHCP сървър (тестови!)",
|
||||
"dhcp_description": "Ако рутера ви не раздава DHCP адреси, може да използвате вградения в AdGuard DHCP сървър.",
|
||||
"dhcp_enable": "Рзреши DHCP сървъра",
|
||||
"dhcp_disable": "Забрани DHCP сървъра",
|
||||
"dhcp_not_found": "Вашата мрежа няма активен DHCP сървър. Безопасно е ползването на вградения DHCP сървър.",
|
||||
"dhcp_found": "Вашата мрежа вече има активен DHCP сървър. Не е безопасно ползването на втори!",
|
||||
"dhcp_leases": "DHCP раздадени адреси",
|
||||
"dhcp_leases_not_found": "Няма намерени активни DHCP адреси",
|
||||
"dhcp_config_saved": "Запиши конфигурацията на DHCP сървъра",
|
||||
"form_error_required": "Задължително поле",
|
||||
"form_error_ip_format": "Невалиден IPv4 адрес",
|
||||
"form_error_positive": "Проверете дали е положително число",
|
||||
@@ -27,7 +24,6 @@
|
||||
"dhcp_ip_addresses": "IP адреси",
|
||||
"dhcp_table_hostname": "Име на устройство",
|
||||
"dhcp_table_expires": "История",
|
||||
"dhcp_warning": "Ако искате да използвате вградения DHCP сървър, трябва да няма друг активен DHCP в мрежата Ви!",
|
||||
"city": "Град",
|
||||
"response_details": "Подробности за отговора",
|
||||
"request_details": "Поискайте подробности",
|
||||
@@ -62,12 +58,7 @@
|
||||
"top_clients": "Най-активни IP адреси",
|
||||
"no_clients_found": "Нямa намерени адреси",
|
||||
"general_statistics": "Обща статисика",
|
||||
"number_of_dns_query_24_hours": "Сума на DNS заявки за последните 24 часа",
|
||||
"number_of_dns_query_blocked_24_hours": "Сума на блокирани DNS заявки от филтрите за реклама и местни",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Сума на блокирани DNS заявки от AdGuard свързани със сигурността",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Сума на блокирани сайтове за възрастни",
|
||||
"enforced_save_search": "Активирано Безопасно Търсене",
|
||||
"number_of_dns_query_to_safe_search": "Сума на DNS заявки при който е приложено Безопасно Търсене",
|
||||
"average_processing_time": "Средно време за обработка",
|
||||
"average_processing_time_hint": "Средно време за обработка на DNS заявки в милисекунди",
|
||||
"block_domain_use_filters_and_hosts": "Блокирани домейни - общи и местни филтри",
|
||||
@@ -77,7 +68,6 @@
|
||||
"use_adguard_parental": "Включи AdGuard Родителски Надзор",
|
||||
"use_adguard_parental_hint": "Модул XXX в AdGuard Home ще провери дали страницата има материали за възвъстни. Използва се същия API за анонимност като при модула за Сигурност.",
|
||||
"enforce_safe_search": "Включи Безопасно Търсене",
|
||||
"enforce_save_search_hint": "AdGuard Home прилага Безопасно Търсене в следните търсачки и сайтове: Google, Youtube, Bing, и Yandex.",
|
||||
"no_servers_specified": "Няма избрани услуги",
|
||||
"general_settings": "Общи настройки",
|
||||
"upstream_dns": "Главен DNS сървър",
|
||||
@@ -151,7 +141,6 @@
|
||||
"install_settings_listen": "Активни интерфейси",
|
||||
"install_settings_port": "Порт",
|
||||
"install_settings_interface_link": "Вашата AdGuard Home страница за администрация ще е достъпна на този адрес:",
|
||||
"form_error_port": "Моля въведете валиден порт",
|
||||
"install_settings_dns": "DNS сървър",
|
||||
"install_settings_dns_desc": "За да работи, ще трябва да настроите вашият рутер или устройства да ползват DNS сървър с адрес:",
|
||||
"install_settings_all_interfaces": "Всички интерфейси",
|
||||
@@ -170,7 +159,6 @@
|
||||
"install_devices_router": "Рутер",
|
||||
"install_devices_router_desc": "Ако настроите вашият рутер няма нужда ръчно да настройвате всяко едно от устрйствата в мрежата.",
|
||||
"install_devices_address": "AdGuard Home DNS сървърът е на следния адрес",
|
||||
"install_devices_router_list_1": "Отворете страницата за настройки на вашия рутер. Обикновено тя се намира на URL (тук http://192.168.0.1/ или тук http://192.168.1.1/). За достъп може да ви трябва парола. Ако сте забравили паролата може да я ресетнете като натиснета скрития ресет бутон - внимание това ще ресетне всички настройки на рутера до фабрични! Някой рутери могат да бъдате администрирани от софтуер или приложение, който би трябвало да е вече инсталиран на компютъра/телефона ви.",
|
||||
"install_devices_router_list_2": "Намерета DHCP/DNS настройки. В под раздел DHCP рзгледайте и намерете къде е полето за DNS настройка в което може да въведете персонализирани настройки за DNS сървъри.",
|
||||
"install_devices_router_list_3": "Въведете адресът на AdGuard Home сървъра.",
|
||||
"install_devices_windows_list_1": "Отворете Контролния Панел през Старт меню или чрез функция търсене на Windows.",
|
||||
@@ -198,7 +186,6 @@
|
||||
"install_saved": "Успешно записано",
|
||||
"encryption_title": "Криптиране",
|
||||
"encryption_desc": "Подържа се сигурна връзка (HTTPS/TLS) включително за DNS и страницата за администрация",
|
||||
"encryption_config_saved": "Конфигурацията е успешно записана",
|
||||
"encryption_server": "Име на сървъра",
|
||||
"encryption_server_enter": "Въведете име на домейна",
|
||||
"encryption_redirect": "Автоматично пренасочване към HTTPS",
|
||||
@@ -226,13 +213,11 @@
|
||||
"encryption_reset": "Сигурни ли сте че искате да изтриете настройките за криптиране?",
|
||||
"topline_expiring_certificate": "Вашият SSL сертификат изтича. Обнови <0>Настройки за криптиране</0>.",
|
||||
"topline_expired_certificate": "Вашият SSL сертификат е изтекъл. Обнови <0>Настройки за криптиране</0>.",
|
||||
"form_error_port_range": "Въведете порт в диапазона 80-65535",
|
||||
"form_error_port_unsafe": "Не е безопасно да използвате този порт",
|
||||
"form_error_equal": "Не трябва да съвпада",
|
||||
"form_error_password": "Паролата не съвпада",
|
||||
"reset_settings": "Изтрий всички настройки",
|
||||
"update_announcement": "Има нова AdGuard Home {{version}}! <0>Цъкни тук</0> за повече информация.",
|
||||
"disable_ipv6": "Изключете IPv6 протокола",
|
||||
"show_blocked_responses": "Блокирано",
|
||||
"port_53_faq_link": "Порт 53 често е зает от \"DNSStubListener\" или \"systemd-resolved\" услуги. Моля, прочетете <0>тази инструкция</0> как да решите това."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
{
|
||||
"client_settings": "Nastavení klienta",
|
||||
"example_upstream_reserved": "Můžete zadat DNS upstream <0>pro konkrétní doménu(y)</0>",
|
||||
"example_upstream_reserved": "Můžete zadat odchozí DNS připojení <0>pro konkrétní doménu(y)</0>",
|
||||
"example_upstream_comment": "Můžete zadat komentář",
|
||||
"upstream_parallel": "Použijte paralelní požadavky na urychlení řešení simultánním dotazováním na všechny navazující servery",
|
||||
"upstream_parallel": "Použijte paralelní požadavky na urychlení řešení simultánním dotazováním na všechny navazující servery.",
|
||||
"parallel_requests": "Paralelní požadavky",
|
||||
"load_balancing": "Optimalizace vytížení",
|
||||
"load_balancing_desc": "Optimalizovaný dotaz na server. AdGuard Home použije vážený náhodný algoritmus k výběru serveru, takže nejrychlejší server bude používán častěji.",
|
||||
"load_balancing_desc": "Optimalizovaný dotaz na odchozí server. AdGuard Home použije vážený náhodný algoritmus k výběru serveru, takže nejrychlejší server je používán častěji.",
|
||||
"bootstrap_dns": "Bootstrap DNS servery",
|
||||
"bootstrap_dns_desc": "Servery Bootstrap DNS se používají k řešení IP adres DoH/DoT, které zadáváte jako upstreamy.",
|
||||
"local_ptr_title": "Soukromé DNS servery",
|
||||
"local_ptr_desc": "Servery DNS, které AdGuard Home používá pro lokální dotazy PTR. Tyto servery se používají k rozlišení názvů hostitelů klientů se soukromými adresami IP, například \"192.168.12.34\" pomocí rDNS. Pokud není nastaveno, AdGuard Home automaticky použije výchozí řešitele vašeho OS.",
|
||||
"local_ptr_placeholder": "Zadejte jednu adresu serveru na řádek",
|
||||
"resolve_clients_title": "Povolit zpětné řešení IP adres klientů",
|
||||
"resolve_clients_desc": "Pokud je povoleno, AdGuard Home se pokusí obráceně vyřešit IP adresy klientů na jejich názvy hostitelů zasláním dotazů PTR příslušným řešitelům (soukromé DNS servery pro místní klienty, odchozí server pro klienty s veřejnou IP adresou).",
|
||||
"check_dhcp_servers": "Zkontrolovat DHCP servery",
|
||||
"save_config": "Uložit konfiguraci",
|
||||
"enabled_dhcp": "DHCP server zapnutý",
|
||||
@@ -23,7 +28,7 @@
|
||||
"dhcp_leases": "Pronájem DHCP",
|
||||
"dhcp_static_leases": "Statické pronájmy DHCP",
|
||||
"dhcp_leases_not_found": "Nebyly nalezeny žádné pronájmy DHCP",
|
||||
"dhcp_config_saved": "Konfigurace DHCP serveru byla uložena",
|
||||
"dhcp_config_saved": "Konfigurace DHCP byla úspěšně uložena",
|
||||
"dhcp_ipv4_settings": "Nastavení DHCP IPv4",
|
||||
"dhcp_ipv6_settings": "Nastavení DHCP IPv6",
|
||||
"form_error_required": "Povinné pole",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Neplatný formát MAC",
|
||||
"form_error_client_id_format": "Neplatný formát ID klienta",
|
||||
"form_error_server_name": "Neplatný název serveru",
|
||||
"form_error_subnet": "Podsíť \"{{cidr}}\" neobsahuje IP adresu \"{{ip}}\"",
|
||||
"form_error_positive": "Musí být větší než 0",
|
||||
"form_error_negative": "Musí být rovno nebo větší než 0",
|
||||
"range_end_error": "Musí být větší než začátek rozsahu",
|
||||
@@ -49,10 +55,10 @@
|
||||
"ip": "IP adresa",
|
||||
"dhcp_table_hostname": "Název hostitele",
|
||||
"dhcp_table_expires": "Vyprší",
|
||||
"dhcp_warning": "Pokud chcete server DHCP povolit, ujistěte se, že ve Vaší síti není žádný aktivní server DHCP. V opačném případě může dojít k přerušení internetu pro připojená zařízení!",
|
||||
"dhcp_error": "Nebylo možné určit, zda je v síti jiný server DHCP.",
|
||||
"dhcp_static_ip_error": "Pro použití serveru DHCP musí být nastavena statická IP adresa. Nepodařilo se zjistit, zda je toto síťové rozhraní nakonfigurováno pomocí statické adresy IP. Nastavte prosím statickou IP adresu ručně.",
|
||||
"dhcp_dynamic_ip_found": "Váš systém používá konfiguraci dynamické IP adresy pro rozhraní <0>{{interfaceName}}</0>. Pro použití serveru DHCP musí být nastavena statická IP adresa. Vaše aktuální IP adresa je <0>{{ipAddress}}</0>. Automaticky nastavíme tuto IP adresu jako statickou, pokud stisknete tlačítko Zapnout DHCP.",
|
||||
"dhcp_warning": "Pokud přesto chcete server DHCP povolit, ujistěte se, že ve Vaší síti není žádný jiný aktivní server DHCP, protože by to mohlo narušit připojení k Internetu pro zařízení v síti!",
|
||||
"dhcp_error": "AdGuard Home nemohl určit, zda je v síti jiný aktivní server DHCP.",
|
||||
"dhcp_static_ip_error": "Pro použití serveru DHCP musí být nastavena statická IP adresa. AdGuard Home nemohl zjistit, zda je toto síťové rozhraní nakonfigurováno pomocí statické adresy IP. Nastavte prosím statickou IP adresu ručně.",
|
||||
"dhcp_dynamic_ip_found": "Váš systém používá konfiguraci dynamické IP adresy pro rozhraní <0>{{interfaceName}}</0>. Pro použití serveru DHCP musí být nastavena statická IP adresa. Vaše aktuální IP adresa je <0>{{ipAddress}}</0>. AdGuard Home automaticky nastaví tuto IP adresu jako statickou, pokud stisknete tlačítko \"Zapnout DHCP server\".",
|
||||
"dhcp_lease_added": "Statický pronájem \"{{key}}\" byl úspěšně přidán",
|
||||
"dhcp_lease_deleted": "Statický pronájem \"{{key}}\" byl úspěšně odstraněn",
|
||||
"dhcp_new_static_lease": "Nový statický pronájem",
|
||||
@@ -105,7 +111,7 @@
|
||||
"top_clients": "Nejčastější klienti",
|
||||
"no_clients_found": "Nenalezeny žádní klienti",
|
||||
"general_statistics": "Obecné statistiky",
|
||||
"number_of_dns_query_days": "Počet DNS dotazů zpracovaných za posledních {{count}} dní",
|
||||
"number_of_dns_query_days": "Počet DNS dotazů zpracovaných za posledních {{count}} den",
|
||||
"number_of_dns_query_days_plural": "Počet DNS dotazů zpracovaných za posledních {{count}} dní",
|
||||
"number_of_dns_query_24_hours": "Počet DNS dotazů zpracovaných za posledních 24 hodin",
|
||||
"number_of_dns_query_blocked_24_hours": "Počet požadavků DNS zablokovaných filtrem reklam a seznamy blokování hostitelů",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "Nastavení šifrování",
|
||||
"dhcp_settings": "Nastavení DHCP",
|
||||
"upstream_dns": "Odchozí DNS servery",
|
||||
"upstream_dns_help": "Zadejte adresy serverů, jedno připojení na řádek. <a>Zjistěte více</a> o konfiguraci odchozích DNS serverů.",
|
||||
"upstream_dns_help": "Zadejte adresu serveru, jedno připojení na řádek. <a>Zjistěte více</a> o konfiguraci odchozích DNS serverů.",
|
||||
"upstream_dns_configured_in_file": "Konfigurováno v {{path}}",
|
||||
"test_upstream_btn": "Test upstreamů",
|
||||
"upstreams": "Odesláno",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Síťové rozhraní",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Vaše administrátorské webové rozhraní AdGuard Home bude k dispozici na těchto adresách:",
|
||||
"form_error_port": "Zadejte platnou hodnotu portu",
|
||||
"form_error_port": "Zadejte platné číslo portu",
|
||||
"install_settings_dns": "DNS server",
|
||||
"install_settings_dns_desc": "Budete muset nakonfigurovat Vaše zařízení nebo router, aby používali DNS server na následujících adresách:",
|
||||
"install_settings_all_interfaces": "Všechna rozhraní",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Toto nastavení automaticky pokryje všechna zařízení připojená k Vašemu domácímu routeru a nebudete je muset konfigurovat ručně.",
|
||||
"install_devices_address": "DNS server AdGuard Home používá následujíce adresy",
|
||||
"install_devices_router_list_1": "Otevřete předvolby pro router. Obvykle k němu můžete přistupovat z prohlížeče prostřednictvím adresy URL (např. http://192.168.0.1/ nebo http://192.168.1.1/). Můžete být vyzváni k zadání hesla. Pokud si ho nepamatujete, můžete heslo resetovat stisknutím tlačítka na samotném routeru. Některé routery vyžadují specifickou aplikaci, která by v takovém případě měla být již nainstalována v počítači/telefonu.",
|
||||
"install_devices_router_list_1": "Otevřete předvolby pro router. Obvykle k němu můžete přistupovat z prohlížeče prostřednictvím adresy URL, např. http://192.168.0.1/ nebo http://192.168.1.1/. Můžete být vyzváni k zadání hesla. Pokud si ho nepamatujete, můžete heslo resetovat stisknutím tlačítka na samotném routeru, ale mějte na paměti, že pokud zvolíte tento postup, pravděpodobně ztratíte celou konfiguraci routeru. Pokud váš router vyžaduje k nastavení aplikaci, nainstalujte si ji do telefonu nebo počítače a použijte ji pro přístup k nastavení routeru.",
|
||||
"install_devices_router_list_2": "Vyhledejte nastavení DHCP/DNS. Hledejte zkratku DNS vedle pole, které umožňuje vložit dvě nebo tři sady čísel, každé rozděleno do čtyř skupin s jedním až třemi číslicemi.",
|
||||
"install_devices_router_list_3": "Zadejte adresy Vašeho serveru AdGuard Home.",
|
||||
"install_devices_router_list_4": "Na některých typech routerů nemůžete nastavit vlastní DNS server. V tomto případě může AdGuard Home pomoci, pokud jej nastavíte jako <0>DHCP server</0>. V ostatních případech byste si v manuálu k Vašemu routeru měli zjistit, jak nastavit vlastní DNS servery.",
|
||||
"install_devices_router_list_4": "Na některých typech routerů nemůžete nastavit vlastní DNS server. V tomto případě může AdGuard Home pomoci, pokud jej nastavíte jako <0>DHCP server</0>. V ostatních případech byste si v manuálu k Vašemu routeru měli zjistit, jak přizpůsobit vlastní DNS servery.",
|
||||
"install_devices_windows_list_1": "Otevřete ovládací panel prostřednictvím nabídky Start nebo vyhledání v systému Windows.",
|
||||
"install_devices_windows_list_2": "Přejděte na kategorii Síť a Internet a poté na Centrum sítí a sdílení.",
|
||||
"install_devices_windows_list_3": "Na levé straně obrazovky najděte možnost Změnit nastavení adaptéru a klepněte na něj.",
|
||||
@@ -365,9 +371,9 @@
|
||||
"encryption_reset": "Opravdu chcete obnovit nastavení šifrování?",
|
||||
"topline_expiring_certificate": "Váš SSL certifikát brzy vyprší. Aktualizujte <0>Nastavení šifrování</0>.",
|
||||
"topline_expired_certificate": "Váš SSL certifikát vypršel. Aktualizujte <0>Nastavení šifrování</0>.",
|
||||
"form_error_port_range": "Zadejte hodnotu portu v rozmezí 80-65535",
|
||||
"form_error_port_range": "Zadejte číslo portu v rozmezí 80-65535",
|
||||
"form_error_port_unsafe": "Toto není bezpečný port",
|
||||
"form_error_equal": "Neměla by se shodovat",
|
||||
"form_error_equal": "Nesmí se shodovat",
|
||||
"form_error_password": "Heslo se neshoduje",
|
||||
"reset_settings": "Resetovat nastavení",
|
||||
"update_announcement": "AdGuard Home {{version}} je nyní k dispozici! <0>Klikněte zde<0> pro více informací.",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP adresa",
|
||||
"client_identifier_desc": "Klienti můžou být identifikováni podle IP adresy, CIDR, MAC adresy nebo speciálního ID klienta (může být použito pro DoT/DoH/DoQ). <0>Zde</0> se můžete dozvědět více o tom, jak klienty identifikovat.",
|
||||
"form_enter_ip": "Zadejte IP",
|
||||
"form_enter_subnet_ip": "Zadejte adresu IP adresu do podsítě \"{{cidr}}\"",
|
||||
"form_enter_mac": "Zadejte MAC",
|
||||
"form_enter_id": "Zadejte identifikátor",
|
||||
"form_add_id": "Přidat identifikátor",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Blokovaní klienti",
|
||||
"access_disallowed_desc": "Seznam adres CIDR nebo IP. Pokud je nakonfigurován, AdGuard Home bude odmítat požadavky pouze z těchto IP adres.",
|
||||
"access_blocked_title": "Blokované domény",
|
||||
"access_blocked_desc": "Nezaměňujte to s filtry. AdGuard Home odstraní dotazy DNS s těmito doménami v otázce dotazu. Zde můžete určit přesné názvy domén, zástupné znaky a pravidla URL adres, např. 'example.org', '*.example.org' nabo '||example.org^'.",
|
||||
"access_blocked_desc": "Nezaměňujte to s filtry. AdGuard Home odstraní dotazy DNS s těmito doménami v otázce dotazu. Zde můžete určit přesné názvy domén, zástupné znaky a pravidla filtrování URL adres, např. 'example.org', '*.example.org' nabo '||example.org^'.",
|
||||
"access_settings_saved": "Nastavení přístupu bylo úspěšně uloženo",
|
||||
"updates_checked": "Aktualizace úspěšně zkontrolovány",
|
||||
"updates_version_equal": "AdGuard Home je aktuální",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "Zakázat IPv6",
|
||||
"disable_ipv6_desc": "Pokud je tato funkce povolena, budou všechny dotazy DNS pro adresy IPv6 (typ AAAA) zrušeny.",
|
||||
"fastest_addr": "Nejrychlejší IP adresa",
|
||||
"fastest_addr_desc": "Dotazovat všechny DNS servery a vrátit nejrychlejší IP adresu ze všech odpovědí. To zpomalí dotazy DNS, protože musíme čekat na odpovědi ze všech serverů DNS, ale celková konektivita se zlepší.",
|
||||
"fastest_addr_desc": "Dotazovat všechny DNS servery a vrátit nejrychlejší IP adresu ze všech odpovědí. To zpomalí dotazy DNS, protože AdGuard Home musí čekat na odpovědi ze všech serverů DNS, ale celková konektivita se zlepší.",
|
||||
"autofix_warning_text": "Pokud kliknete na „Opravit“, AdGuard Home nakonfiguruje váš systém tak, aby používal DNS server AdGuard Home.",
|
||||
"autofix_warning_list": "Jsou prováděny následující úlohy: <0>Deaktivace systému DNSStubListener</0> <0>Nastavení adresy serveru DNS na 127.0.0.1</0> <0>Nahrazení cíle symbolického odkazu z /etc/resolv.conf do /run/systemd/resolve/resolv.conf</0> <0>Zastavení služby DNSStubListener (znovu načtení služby systemd-resolved)</0>",
|
||||
"autofix_warning_result": "Výsledkem je, že všechny požadavky DNS z vašeho systému jsou ve výchozím nastavení zpracovány službou AdGuard Home.",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "Nastavit statickou IP adresu",
|
||||
"install_static_ok": "Skvělá zpráva! Statická IP adresa je již nakonfigurována",
|
||||
"install_static_error": "AdGuard Home nemůže automaticky nakonfigurovat toto síťové rozhraní. Prosím vyhledejte návod, jak to provést ručně.",
|
||||
"install_static_configure": "Detekovali jsme, že se používá dynamická IP adresa — <0>{{ip}}</0>. Chcete ji použít jako statickou adresu?",
|
||||
"install_static_configure": "AdGuard Home detekoval, že se používá dynamická IP adresa <0>{{ip}}</0>. Chcete ji použít jako statickou adresu?",
|
||||
"confirm_static_ip": "AdGuard Home nakonfiguruje {{ip}} jako statickou IP adresu. Chcete pokračovat?",
|
||||
"list_updated": "Byl aktualizován {{count}} seznam",
|
||||
"list_updated_plural": "Aktualizované seznamy: {{count}}",
|
||||
@@ -594,4 +601,4 @@
|
||||
"adg_will_drop_dns_queries": "AdGuard Home zruší všechny DNS dotazy tohoto klienta.",
|
||||
"client_not_in_allowed_clients": "Tento klient není povolen, protože není na seznamu \"Povolení klienti\".",
|
||||
"experimental": "Experimentální"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,68 +1,74 @@
|
||||
{
|
||||
"client_settings": "Klient-indstillinger",
|
||||
"example_upstream_reserved": "Du kan specificere DNS upstream <0>for det(de) specifikke domæne(r)</0>",
|
||||
"example_upstream_comment": "Du kan uddybe kommentaren",
|
||||
"upstream_parallel": "Brug parallelle forespørgsler til at fremskynde behandlingen ved samtidig at spørge alle upstream servere",
|
||||
"client_settings": "Klientindstillinger",
|
||||
"example_upstream_reserved": "DNS-upstream kan agives <0>for et eller flere specifikke domæner</0>",
|
||||
"example_upstream_comment": "Du kan angive en kommentaren",
|
||||
"upstream_parallel": "Brug parallelforespørgsler til at accelerere fortolkningen ved at forespørge alle upstream-servere samtidigt.",
|
||||
"parallel_requests": "Parallelle forespørgsler",
|
||||
"load_balancing": "Belastningsfordeling",
|
||||
"load_balancing_desc": "Forespørg en server ad gangen. AdGuard Home bruger den vægtede tilfældige algoritme til at vælge serveren, så den hurtigste server bliver brugt oftere.",
|
||||
"load_balancing_desc": "Forespørg én server ad gangen. AdGuard Home vil bruge en vægtet randomiseringsalgoritme til valg af server, så den hurtigste server oftere anvendes.",
|
||||
"bootstrap_dns": "Bootstrap DNS-servere",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS-servere bliver brugt til at behandle IP-adresser af de DoH/DoT resolvere, som du angiver som upstream.",
|
||||
"check_dhcp_servers": "Tjek for DHCP-servere",
|
||||
"save_config": "Gem konfiguration",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS-servere bruges til at fortolke IP-adresser for de DoH-/DoT-resolvere, du angiver som upstream.",
|
||||
"local_ptr_title": "Private DNS-servere",
|
||||
"local_ptr_desc": "De DNS-servere, som AdGuard Home bruger til lokale PTR-forespørgsler. Disse servere bruges til at opløse klientværtsnavne med private IP-adresser, f.eks. \"192.168.12.34\", vha. rDNS. Hvis ikke indstillet, bruger AdGuard Home dit operativsystems standard DNS-opløsere.",
|
||||
"local_ptr_placeholder": "Indtast en serveradresse pr. Linje",
|
||||
"resolve_clients_title": "Aktivér omvendt løsning af klienters IP-adresser",
|
||||
"resolve_clients_desc": "Hvis aktiveret, forsøger AdGuard Home automatisk at løse klienters værtsnavne fra deres IP-adresser ved at sende en PTR-forespørgsel til en tilsvarende resolver (privat DNS-server til lokale klienter, upstream-server til klienter med offentlig IP-adresse).",
|
||||
"check_dhcp_servers": "Søg efter DHCP-servere",
|
||||
"save_config": "Gem opsætning",
|
||||
"enabled_dhcp": "DHCP-server aktiveret",
|
||||
"disabled_dhcp": "DHCP-server deaktiveret",
|
||||
"unavailable_dhcp": "DHCP er ikke tilgængelig",
|
||||
"unavailable_dhcp_desc": "AdGuard Home kan ikke køre en DHCP-server på dit OS",
|
||||
"unavailable_dhcp": "DHCP utilgængelig",
|
||||
"unavailable_dhcp_desc": "AdGuard Home kan ikke køre en DHCP-server i dit OS",
|
||||
"dhcp_title": "DHCP-server (eksperimentel!)",
|
||||
"dhcp_description": "Hvis din router ikke tilbyder DHCP-indstillinger, kan du bruge AdGuards egen indbyggede DHCP-server.",
|
||||
"dhcp_enable": "Aktiver DHCP-server",
|
||||
"dhcp_disable": "Deaktiver DHCP-server",
|
||||
"dhcp_not_found": "Det er sikkert at aktivere den indbyggede DHCP-server - vi fandt ikke nogen aktive DHCP-servere på netværket. Alligevel opfordrer vi dig til at tjekke det manuelt, da vores automatiske test i øjeblikket ikke virker 100%.",
|
||||
"dhcp_description": "Har din router ingen DHCP-indstillinger, kan du bruge AdGuards egen, indbyggede DHCP-server.",
|
||||
"dhcp_enable": "Aktivere DHCP-server",
|
||||
"dhcp_disable": "Deaktivere DHCP-server",
|
||||
"dhcp_not_found": "Det er sikkert at aktivere den indbyggede DHCP-server, da AdGuard Home ingen aktive DHCP-servere fandt på netværket. Du bør dog stadig tjekke dette manuelt, da den automatiske skanning pt. ikke giver en 100% garanti.",
|
||||
"dhcp_found": "En aktiv DHCP-server er fundet på netværket. Det er ikke sikkert at aktivere den indbyggede DHCP-server.",
|
||||
"dhcp_leases": "DHCP-leases",
|
||||
"dhcp_static_leases": "DHCP static leases",
|
||||
"dhcp_static_leases": "DHCP statiske leases",
|
||||
"dhcp_leases_not_found": "Ingen DHCP-leases fundet",
|
||||
"dhcp_config_saved": "DHCP-konfiguration gemt",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4 Indstillinger",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 Indstillinger",
|
||||
"dhcp_config_saved": "DHCP-opsætning gemt",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4-indstillinger",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6-indstillinger",
|
||||
"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_client_id_format": "Ugyldigt klient-ID-format",
|
||||
"form_error_client_id_format": "Ugyldigt klient-ID format",
|
||||
"form_error_server_name": "Ugyldigt servernavn",
|
||||
"form_error_subnet": "Subnet \"{{cidr}}\" indeholder ikke IP-adressen \"{{ip}}\"",
|
||||
"form_error_positive": "Skal være større end 0",
|
||||
"form_error_negative": "Skal være lig med 0 eller større",
|
||||
"range_end_error": "Skal være større end starten af intervallet",
|
||||
"range_end_error": "Skal være større end starten på intervallet",
|
||||
"dhcp_form_gateway_input": "Gateway IP",
|
||||
"dhcp_form_subnet_input": "Subnet mask",
|
||||
"dhcp_form_subnet_input": "Undernetmaske",
|
||||
"dhcp_form_range_title": "Interval af IP-adresser",
|
||||
"dhcp_form_range_start": "Start interval",
|
||||
"dhcp_form_range_end": "Slut interval",
|
||||
"dhcp_form_range_start": "Intervalstart",
|
||||
"dhcp_form_range_end": "Intervalslut",
|
||||
"dhcp_form_lease_title": "DHCP-lease tid (i sekunder)",
|
||||
"dhcp_form_lease_input": "Lease varighed",
|
||||
"dhcp_form_lease_input": "Lease-varighed",
|
||||
"dhcp_interface_select": "Vælg DHCP-interface",
|
||||
"dhcp_hardware_address": "Hardware-adresse",
|
||||
"dhcp_ip_addresses": "IP-adresser",
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Værtsnavn",
|
||||
"dhcp_table_expires": "Udløber",
|
||||
"dhcp_warning": "Hvis du vil aktivere DHCP-serveren alligevel, skal du sørge for, at der ikke er nogen anden aktiv DHCP-server på dit netværk. Ellers kan det ødelægge internettet for tilsluttede enheder!",
|
||||
"dhcp_error": "Vi kunne ikke afgøre, om der er en anden DHCP-server på netværket.",
|
||||
"dhcp_static_ip_error": "For at kunne bruge DHCP-serveren skal en statisk IP-adresse indstilles. Vi fejlede i at afgøre, om denne netværksgrænseflade er konfigureret ved hjælp af en statisk IP-adresse. Indstil venligst manuelt en statisk IP-adresse.",
|
||||
"dhcp_dynamic_ip_found": "Dit system bruger en dynamisk IP-adresse konfiguration til grænsefladen <0>{{interfaceName}}</0>. For at kunne bruge DHCP-serveren skal en statisk IP-adresse indstilles. Din nuværende IP-adresse er <0>{{ipAddress}}</0>. Vi vil automatisk indstille denne IP-adresse som en statisk, hvis du trykker på Aktiver DHCP knappen.",
|
||||
"dhcp_lease_added": "Static lease \"{{key}}\" succesfuldt tilføjet",
|
||||
"dhcp_lease_deleted": "Static lease \"{{key}}\" succesfuldt slettet",
|
||||
"dhcp_new_static_lease": "Ny static lease",
|
||||
"dhcp_static_leases_not_found": "Ingen DHCP static leases fundet",
|
||||
"dhcp_add_static_lease": "Tilføj static lease",
|
||||
"dhcp_reset": "Er du sikker på, at du vil nulstille DHCP-konfigurationen?",
|
||||
"dhcp_warning": "Vil du alligevel aktivere DHCP-serveren, så sørg for at der ikke er nogen anden aktiv DHCP-server på dit netværk, da dette kan ødelægge Internetkonnektiviteten for netværksenhederne!",
|
||||
"dhcp_error": "AdGuard Home kunne ikke afgøres, om der findes en anden DHCP-server på netværket.",
|
||||
"dhcp_static_ip_error": "For at kunne bruge DHCP-serveren skal der opsættes en statisk IP-adresse. Da det ikke kunne afgøres, om denne netværksinterface er opsat vha. en statisk IP-adresse, bedes du opsætte en manuelt.",
|
||||
"dhcp_dynamic_ip_found": "Dit system bruger en dynamisk IP-adresseopsætning til interface <0>{{interfaceName}}</0>. For at kunne bruge DHCP-serveren skal en statisk IP-adresse indstilles. Din aktuelle IP-adresse er <0>{{ipAddress}}</0>. AdGuard Home vil automatisk indstille denne IP-adresse som din statiske hvis du trykker på knappen \"Aktivér DHCP-server\".",
|
||||
"dhcp_lease_added": "Statisk lease \"{{key}}\" tilføjet",
|
||||
"dhcp_lease_deleted": "Statisk lease \"{{key}}\" slettet",
|
||||
"dhcp_new_static_lease": "Ny statisk lease",
|
||||
"dhcp_static_leases_not_found": "Intet DHCP statisk leases fundet",
|
||||
"dhcp_add_static_lease": "Tilføj statisk lease",
|
||||
"dhcp_reset": "Sikker på, at du vil nulstille DHCP-opsætningen?",
|
||||
"country": "Land",
|
||||
"city": "By",
|
||||
"delete_confirm": "Er du sikker på, at du vil slette \"{{key}}\"?",
|
||||
"form_enter_hostname": "Indtast værtsnavn",
|
||||
"delete_confirm": "Sikker på, at du vil slette \"{{key}}\"?",
|
||||
"form_enter_hostname": "Angiv værtsnavn",
|
||||
"error_details": "Fejloplysninger",
|
||||
"response_details": "Svardetaljer",
|
||||
"request_details": "Anmod om detaljer",
|
||||
@@ -80,62 +86,62 @@
|
||||
"version": "Version",
|
||||
"address": "Adresse",
|
||||
"protocol": "Protokol",
|
||||
"on": "TÆNDT",
|
||||
"off": "SLUKKET",
|
||||
"copyright": "Copyright",
|
||||
"on": "TIL",
|
||||
"off": "FRA",
|
||||
"copyright": "Ophavsrettighed",
|
||||
"homepage": "Hjemmeside",
|
||||
"report_an_issue": "Rapporter et problem",
|
||||
"privacy_policy": "Privatlivspolitik",
|
||||
"enable_protection": "Aktiver beskyttelse",
|
||||
"report_an_issue": "Anmeld et problem",
|
||||
"privacy_policy": "Fortrolighedspolitik",
|
||||
"enable_protection": "Aktivér beskyttelse",
|
||||
"enabled_protection": "Beskyttelse aktiveret",
|
||||
"disable_protection": "Deaktiver beskyttelse",
|
||||
"disable_protection": "Deaktivér beskyttelse",
|
||||
"disabled_protection": "Beskyttelse deaktiveret",
|
||||
"refresh_statics": "Opdater statistikerne",
|
||||
"dns_query": "DNS-Forespørgsler",
|
||||
"refresh_statics": "Opdatér statistikerne",
|
||||
"dns_query": "DNS-forespørgsler",
|
||||
"blocked_by": "<0>Blokeret af Filtre</0>",
|
||||
"stats_malware_phishing": "Blokeret malware/phishing",
|
||||
"stats_adult": "Blokerede voksne websteder",
|
||||
"stats_query_domain": "Mest eftertragtede domæner",
|
||||
"for_last_24_hours": "i løbet af de sidste 24 timer",
|
||||
"for_last_days": "for den sidste {{count}} dag",
|
||||
"for_last_days_plural": "for de sidste {{count}} dage",
|
||||
"stats_query_domain": "Mest forespurgte domæner",
|
||||
"for_last_24_hours": "de seneste 24 timer",
|
||||
"for_last_days": "den seneste {{count}} dag",
|
||||
"for_last_days_plural": "de seneste {{count}} dage",
|
||||
"no_domains_found": "Ingen domæner fundet",
|
||||
"requests_count": "Antal anmodninger",
|
||||
"top_blocked_domains": "De mest blokerede domæner",
|
||||
"top_clients": "De bedste klienter",
|
||||
"requests_count": "Antal forespørgsler",
|
||||
"top_blocked_domains": "Hyppigst blokerede domæner",
|
||||
"top_clients": "Hyppigste klienter",
|
||||
"no_clients_found": "Ingen klienter fundet",
|
||||
"general_statistics": "Generelle statistikker",
|
||||
"number_of_dns_query_days": "Antallet af DNS-forespørgsler behandlet i løbet af den sidste {{count}} dag",
|
||||
"number_of_dns_query_days_plural": "Antallet af DNS-forespørgsler behandlet i løbet af de sidste {{count}} dage",
|
||||
"number_of_dns_query_24_hours": "Antallet af DNS-forespørgsler behandlet i løbet af de sidste 24 timer",
|
||||
"number_of_dns_query_blocked_24_hours": "Antallet af DNS-forespørgsler blokeret af adblock filtre og værternes blokeringslister",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Antallet af DNS-forespørgsler blokeret af AdGuards browsing sikkerhedsmodul",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Antallet af voksensider blokeret",
|
||||
"enforced_save_search": "Håndhæv sikker søgning",
|
||||
"number_of_dns_query_days": "Antallet af DNS-forespørgsler behandlet den seneste {{count}} dag",
|
||||
"number_of_dns_query_days_plural": "Antallet af DNS-forespørgsler behandlet de seneste {{count}} dage",
|
||||
"number_of_dns_query_24_hours": "Antallet af DNS-forespørgsler behandlet de seneste 24 timer",
|
||||
"number_of_dns_query_blocked_24_hours": "Antallet af DNS-forespørgsler blokeret af adblockfiltre og værtssortlister",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Antallet af DNS-forespørgsler blokeret af AdGuards browsingsikkerhedsmodul",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Antallet af blokerede voksenwebsteder",
|
||||
"enforced_save_search": "Håndhævet sikker søgning",
|
||||
"number_of_dns_query_to_safe_search": "Antallet af DNS-forespørgsler til søgemaskiner, hvor Sikker Søgning blev håndhævet",
|
||||
"average_processing_time": "Gennemsnitlig behandlingstid",
|
||||
"average_processing_time_hint": "Gennemsnitlig behandlingstid i millisekunder af DNS-forespørgsel",
|
||||
"block_domain_use_filters_and_hosts": "Bloker domæner ved hjælp af filtre og værtsfiler",
|
||||
"filters_block_toggle_hint": "Du kan oprette blokeringsregler i <a>Filterindstillingerne</a>.",
|
||||
"use_adguard_browsing_sec": "Brug AdGuards browsing sikkerhedstjeneste",
|
||||
"use_adguard_browsing_sec_hint": "AdGuard Home vil kontrollere om domænet er sortlistet af browsing sikkerhedstjenesten. Den vil bruge privatlivsvenlig lookup API til at udføre kontrollen: kun et kort præfiks af domænenavnet SHA256 hash bliver sendt til serveren.",
|
||||
"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.",
|
||||
"block_domain_use_filters_and_hosts": "Blokér domæner vha. filtre og værtsfiler",
|
||||
"filters_block_toggle_hint": "Du kan opsætte blokeringsregler i <a>Filterindstillingerne</a>.",
|
||||
"use_adguard_browsing_sec": "Brug AdGuards webtjeneste til browsingsikkerhed",
|
||||
"use_adguard_browsing_sec_hint": "AdGuard Homevil tjekke, om domænet er sortlistet af browsingsikkerhedswebtjenesten vha. en fortrolighedsvenlig lookup-API til at udføre tjekket. Kun et kort præfiks af domænenavns SHA256-hashen sendes til serveren.",
|
||||
"use_adguard_parental": "Brug AdGuards forældrekontrolwebtjeneste",
|
||||
"use_adguard_parental_hint": "AdGuard Home vil tjekke, om domænet indeholder voksenindhold vha. den samme fortrolighedsvenlige API som browsingsikkerhedswebtjenesten.",
|
||||
"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",
|
||||
"enforce_save_search_hint": "AdGuard Home kan håndhæve sikker søgning i flg. søgemaskiner: Google, YouTube, Bing, DuckDuckGo, Yandex og Pixabay.",
|
||||
"no_servers_specified": "Ingen servere angivet",
|
||||
"general_settings": "Generelle indstillinger",
|
||||
"dns_settings": "DNS-indstillinger",
|
||||
"dns_blocklists": "DNS-blokeringslister",
|
||||
"dns_allowlists": "Lister over tilladte DNS",
|
||||
"dns_blocklists_desc": "AdGuard Home vil blokere domæner, der matcher blokeringslisterne.",
|
||||
"dns_allowlists_desc": "Domæner fra listerne over tilladte DNS vil være tilladt, selvom de er i nogen af blokeringslisterne.",
|
||||
"custom_filtering_rules": "Brugerdefinerede filtreringsregler",
|
||||
"dns_blocklists": "DNS-sortlister",
|
||||
"dns_allowlists": "DNS-hvidlister",
|
||||
"dns_blocklists_desc": "AdGuard Home blokerer domæner matchende sortlisterne.",
|
||||
"dns_allowlists_desc": "Domæner fra DNS-hvidlisterne tillades, selv hvis de er på nogle af sortlisterne.",
|
||||
"custom_filtering_rules": "Tilpassede filtreringsregler",
|
||||
"encryption_settings": "Krypteringsindstillinger",
|
||||
"dhcp_settings": "DHCP-indstillinger",
|
||||
"upstream_dns": "Upstream DNS-servere",
|
||||
"upstream_dns_help": "Indtast serveradresserne en pr. linje. <a>Lær mere</a> om konfiguration af upstream DNS-servere.",
|
||||
"upstream_dns_configured_in_file": "Konfigureret i {{path}}",
|
||||
"upstream_dns_help": "Angiv én serveradresse pr. linje. <a>Læs mere</a> om opsætning af upstream DNS-servere.",
|
||||
"upstream_dns_configured_in_file": "Opsat i {{path}}",
|
||||
"test_upstream_btn": "Test upstreams",
|
||||
"upstreams": "Upstreams",
|
||||
"apply_btn": "Anvend",
|
||||
@@ -149,59 +155,59 @@
|
||||
"enabled_save_search_toast": "Sikker søgning aktiveret",
|
||||
"enabled_table_header": "Aktiveret",
|
||||
"name_table_header": "Navn",
|
||||
"list_url_table_header": "Listernes URL",
|
||||
"list_url_table_header": "Liste-URL",
|
||||
"rules_count_table_header": "Antal regler",
|
||||
"last_time_updated_table_header": "Sidst opdateret",
|
||||
"last_time_updated_table_header": "Senest opdateret",
|
||||
"actions_table_header": "Handlinger",
|
||||
"request_table_header": "Forespørgsel",
|
||||
"edit_table_action": "Rediger",
|
||||
"edit_table_action": "Redigér",
|
||||
"delete_table_action": "Slet",
|
||||
"elapsed": "Varighed",
|
||||
"filters_and_hosts_hint": "AdGuard Home forstår de grundlæggende annonceblokeringsregler og værtsfilsyntaks.",
|
||||
"no_blocklist_added": "Ingen blokeringslister tilføjet",
|
||||
"no_whitelist_added": "Ingen lister over tilladte tilføjet",
|
||||
"add_blocklist": "Tilføj blokeringsliste",
|
||||
"add_allowlist": "Tilføj liste over tilladte",
|
||||
"cancel_btn": "Annuller",
|
||||
"enter_name_hint": "Indtast navn",
|
||||
"enter_url_or_path_hint": "Indtast en URL eller en absolut sti på listen",
|
||||
"filters_and_hosts_hint": "AdGuard Home forstår basis adblockingregler og værtsfilsyntaks.",
|
||||
"no_blocklist_added": "Ingen sortlister tilføjet",
|
||||
"no_whitelist_added": "Ingen hvidlister tilføjet",
|
||||
"add_blocklist": "Tilføj sortliste",
|
||||
"add_allowlist": "Tilføj hvidliste",
|
||||
"cancel_btn": "Afbryd",
|
||||
"enter_name_hint": "Angiv navn",
|
||||
"enter_url_or_path_hint": "Angiv en URL eller en absolut listesti",
|
||||
"check_updates_btn": "Søg efter opdateringer",
|
||||
"new_blocklist": "Ny blokeringsliste",
|
||||
"new_allowlist": "Ny liste over tilladte",
|
||||
"edit_blocklist": "Rediger blokeringsliste",
|
||||
"edit_allowlist": "Rediger liste over tilladte",
|
||||
"choose_blocklist": "Vælg blokeringslister",
|
||||
"choose_allowlist": "Vælg lister over tilladte",
|
||||
"enter_valid_blocklist": "Indtast en gyldig URL til blokeringslisten.",
|
||||
"enter_valid_allowlist": "Indtast en gyldig URL til listen over tilladte.",
|
||||
"new_blocklist": "Ny sortliste",
|
||||
"new_allowlist": "Ny hvidliste",
|
||||
"edit_blocklist": "Sortlisteredigering",
|
||||
"edit_allowlist": "Hvidlisteredigering",
|
||||
"choose_blocklist": "Vælg sortlister",
|
||||
"choose_allowlist": "Vælg hvidlister",
|
||||
"enter_valid_blocklist": "Angiv en gyldig URL til sortlisten.",
|
||||
"enter_valid_allowlist": "Angiv en gyldig URL til hvidlisten.",
|
||||
"form_error_url_format": "Ugyldigt URL-format",
|
||||
"form_error_url_or_path_format": "Ugyldig URL eller en absolut sti på listen",
|
||||
"custom_filter_rules": "Brugerdefinerede filtreringsregler",
|
||||
"custom_filter_rules_hint": "Indtast en regel per linje. Du kan enten bruge annonceblokeringsregler eller værtsfilsyntaks.",
|
||||
"form_error_url_or_path_format": "Ugyldig URL eller absolut listesti",
|
||||
"custom_filter_rules": "Tilpassede filtreringsregler",
|
||||
"custom_filter_rules_hint": "Angiv én regel pr. linje. Du kan bruge enten adblockingregler eller værtsfilsyntaks.",
|
||||
"examples_title": "Eksempler",
|
||||
"example_meaning_filter_block": "bloker adgang til domænet example.org og alle dens subdomæner",
|
||||
"example_meaning_filter_whitelist": "fjern blokering af adgangen til domænet example.ord og alle dens subdomæner",
|
||||
"example_meaning_host_block": "AdGuard Home vil nu returnere adressen 127.0.0.1 til example.org domænet (men ikke dens underdomæner)",
|
||||
"example_comment": "! Her er en kommentar",
|
||||
"example_meaning_filter_block": "blokér adgang til example.org-domænet samt alle underdomæner",
|
||||
"example_meaning_filter_whitelist": "afblokér adgang til example.ord-domænet samt alle underdomæner",
|
||||
"example_meaning_host_block": "AdGuard Home returnerer nu adressen 127.0.0.1 for example.org-domænet (men ikke underdomænerne).",
|
||||
"example_comment": "! Hér angives en evt. kommentar",
|
||||
"example_comment_meaning": "bare en kommentar",
|
||||
"example_comment_hash": "# Også en kommentar",
|
||||
"example_regex_meaning": "bloker adgangen til de domæner, der matcher det angivne regulære udtryk",
|
||||
"example_regex_meaning": "blokér adgang til domæner matchernde det angivne regulære udtryk",
|
||||
"example_upstream_regular": "almindelig DNS (over UDP)",
|
||||
"example_upstream_dot": "krypteret <0>DNS-over-TLS</0>",
|
||||
"example_upstream_doh": "krypteret <0>DNS-over-HTTPS</0>",
|
||||
"example_upstream_doq": "krypteret <0>DNS-over-QUIC</0>",
|
||||
"example_upstream_sdns": "du kan bruge <0>DNS Stamps<0> til <1>DNSCrypt>/1> eller <2>DNS-over-HTTPS</2> resolvers",
|
||||
"example_upstream_sdns": "du kan bruge <0>DNS Stamps</0> til <1>DNSCrypt</1> eller <2>DNS-over-HTTPS</2>-resolvers",
|
||||
"example_upstream_tcp": "almindelig DNS (over TCP)",
|
||||
"all_lists_up_to_date_toast": "Alle lister er allerede opdaterede",
|
||||
"updated_upstream_dns_toast": "Opdaterede upstream DNS-servere",
|
||||
"dns_test_ok_toast": "De angivne DNS-servere fungerer korrekt",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": kunne ikke bruges, kontroller venligst at du har skrevet det korrekt",
|
||||
"unblock": "Fjern blokering",
|
||||
"block": "Bloker",
|
||||
"updated_upstream_dns_toast": "Opdaterede upstream DNS-serverene",
|
||||
"dns_test_ok_toast": "Angivne DNS-servere fungerer korrekt",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": Kunne ikke bruges. Tjek, at du har angivet den korrekt",
|
||||
"unblock": "Afblokering",
|
||||
"block": "Blokering",
|
||||
"disallow_this_client": "Afvis denne klient",
|
||||
"allow_this_client": "Tillad denne klient",
|
||||
"block_for_this_client_only": "Bloker kun for denne klient",
|
||||
"unblock_for_this_client_only": "Fjern blokering kun for denne klient",
|
||||
"block_for_this_client_only": "Blokér kun for denne klient",
|
||||
"unblock_for_this_client_only": "Afblokér kun for denne klient",
|
||||
"time_table_header": "Tid",
|
||||
"date": "Dato",
|
||||
"domain_name_table_header": "Domænenavn",
|
||||
@@ -210,36 +216,36 @@
|
||||
"response_table_header": "Svar",
|
||||
"response_code": "Responskode",
|
||||
"client_table_header": "Klient",
|
||||
"empty_response_status": "Tom",
|
||||
"empty_response_status": "Tomt",
|
||||
"show_all_filter_type": "Vis alle",
|
||||
"show_filtered_type": "Vis filtrerede",
|
||||
"no_logs_found": "Ingen logfiler fundet",
|
||||
"refresh_btn": "Opdater",
|
||||
"previous_btn": "Forrige",
|
||||
"no_logs_found": "Ingen logger fundet",
|
||||
"refresh_btn": "Opdatér",
|
||||
"previous_btn": "Foregående",
|
||||
"next_btn": "Næste",
|
||||
"loading_table_status": "Indlæser...",
|
||||
"page_table_footer_text": "Side",
|
||||
"rows_table_footer_text": "rækker",
|
||||
"updated_custom_filtering_toast": "De brugerdefinerede filtreringsregler er blevet opdateret",
|
||||
"rule_removed_from_custom_filtering_toast": "Regel fjernet fra de brugerdefinerede filtreringsregler: {{rule}}",
|
||||
"rule_added_to_custom_filtering_toast": "Regel tilføjet til de brugerdefinerede filtreringsregler: {{rule}}",
|
||||
"updated_custom_filtering_toast": "Tilpassede filtreringsregler er nu opdateret",
|
||||
"rule_removed_from_custom_filtering_toast": "Regel fjernet fra de tilpassede filtreringsregler: {{rule}}",
|
||||
"rule_added_to_custom_filtering_toast": "Regel føjet til de tilpassede filtreringsregler: {{rule}}",
|
||||
"query_log_response_status": "Status: {{value}}",
|
||||
"query_log_filtered": "Filtreret af {{filter}}",
|
||||
"query_log_confirm_clear": "Er du sikker på, at du vil rydde hele forespørgselsloggen?",
|
||||
"query_log_confirm_clear": "Sikker på, at du vil rydde hele forespørgselsloggen?",
|
||||
"query_log_cleared": "Forespørgselsloggen er blevet ryddet",
|
||||
"query_log_updated": "Forespørgselsloggen er blevet opdateret",
|
||||
"query_log_clear": "Ryd forespørgselslogfiler",
|
||||
"query_log_retention": "Opbevaring af forespørgselslogfiler",
|
||||
"query_log_retention": "Opbevar forespørgselslogger i",
|
||||
"query_log_enable": "Aktivér log",
|
||||
"query_log_configuration": "Konfiguration af logfiler",
|
||||
"query_log_disabled": "Forespørgselsloggen er deaktiveret og kan konfigureres i <0>indstillinger</0>",
|
||||
"query_log_strict_search": "Brug dobbelt anførselstegn til streng søgning",
|
||||
"query_log_retention_confirm": "Er du sikker på, at du vil ændre opbevaring af forespørgselsloggen? Hvis du mindsker intervalværdien, vil nogle data gå tabt",
|
||||
"anonymize_client_ip": "Anonymiser klient-IP",
|
||||
"query_log_configuration": "Opsætning af logger",
|
||||
"query_log_disabled": "Forespørgselsloggen er deaktiveret og kan opsættes i <0>indstillingerne</0>",
|
||||
"query_log_strict_search": "Brug dobbelt anførselstegn til stringent søgning",
|
||||
"query_log_retention_confirm": "Sikker på, at du vil ændre forespørgselsloggens opbevaringperiode? Mindskes intervalværdien, mistes data",
|
||||
"anonymize_client_ip": "Anonymisér klient-IP",
|
||||
"anonymize_client_ip_desc": "Gem ikke klientens fulde IP-adresse i logfiler og statistikker",
|
||||
"dns_config": "DNS-serverkonfiguration",
|
||||
"dns_cache_config": "Konfiguration af DNS-cache",
|
||||
"dns_cache_config_desc": "Her kan du konfigurere DNS-cache",
|
||||
"dns_config": "DNS-serveropsætning",
|
||||
"dns_cache_config": "DNS-cacheopsætning",
|
||||
"dns_cache_config_desc": "Hér kan du opsætte DNS-cache",
|
||||
"blocking_mode": "Blokeringstilstand",
|
||||
"default": "Standard",
|
||||
"nxdomain": "NXDOMAIN",
|
||||
@@ -253,108 +259,108 @@
|
||||
"dns_over_tls": "DNS-over-TLS",
|
||||
"dns_over_quic": "DNS-over-Quic",
|
||||
"client_id": "Klient-ID",
|
||||
"client_id_placeholder": "Indtast klient-ID",
|
||||
"client_id_desc": "Forskellige klienter kan identificeres ved hjælp af et specielt klient-ID. <a>Her</a> kan du lære mere om, hvordan du identificerer klienter.",
|
||||
"client_id_placeholder": "Angiv klient-ID",
|
||||
"client_id_desc": "Forskellige klienter kan identificeres via et specielt klient-ID. <a>Hér</a> finder du ud af mere om, hvordan klienter identificeres.",
|
||||
"download_mobileconfig_doh": "Download .mobileconfig til DNS-over-HTTPS",
|
||||
"download_mobileconfig_dot": "Download .mobileconfig til DNS-over-TLS",
|
||||
"download_mobileconfig": "Download konfigurationsfil",
|
||||
"download_mobileconfig": "Download opsætningsfil",
|
||||
"plain_dns": "Almindelig DNS",
|
||||
"form_enter_rate_limit": "Indtast hyppighedsgrænse",
|
||||
"form_enter_rate_limit": "Angiv hyppighedsgrænse",
|
||||
"rate_limit": "Hyppighedsgrænse",
|
||||
"edns_enable": "Aktiver EDNS Client Subnet",
|
||||
"edns_cs_desc": "Hvis det er aktiveret, vil AdGuard Home sende klienters subnets til DNS-serverne.",
|
||||
"rate_limit_desc": "Antallet af anmodninger pr. sekund, som en enkelt klient får lov til at fremsætte (indstilles den til 0 betyder det ubegrænset)",
|
||||
"blocking_ipv4_desc": "IP-adresse, der skal returneres for en blokeret A-anmodning",
|
||||
"blocking_ipv6_desc": "IP-adresse, der skal returneres for en blokeret AAAA-anmodning",
|
||||
"blocking_mode_default": "Standard: Svar med nul IP-adresse (0.0.0.0 for A; :: for AAAA), når den blokeres af Adblock-stil-reglen; svar med den IP-adresse, der er angivet i reglen, når den blokeres af /etc/hosts-style-reglen",
|
||||
"blocking_mode_refused": "REFUSED: Svar med en REFUSED kode",
|
||||
"edns_enable": "Aktivér EDNS-klientundernet",
|
||||
"edns_cs_desc": "Hvis aktiveret, sender AdGuard Home klienters undernet til DNS-serverne.",
|
||||
"rate_limit_desc": "Antallet af forespørgsler pr. sekund tilladt pr. klient (værdien 0 = ubegrænset)",
|
||||
"blocking_ipv4_desc": "Returneret IP-adresse for en blokeret A-forespørgsel",
|
||||
"blocking_ipv6_desc": "Returneret IP-adresse for en blokeret AAAA-forespørgsel",
|
||||
"blocking_mode_default": "Standard: Svar med nul IP-adresse (0.0.0.0 for A; :: for AAAA), når blokeret af Adblock-lignende regel. Svar med IP-adressen angivet i reglen, når blokeret af /etc/hosts-lignende regel",
|
||||
"blocking_mode_refused": "NÆGTET: Svar med en NÆGTET-kode",
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Svar med NXDOMAIN-kode",
|
||||
"blocking_mode_null_ip": "Null IP: Svar med nul IP-adresse (0.0.0.0 for A; :: for AAAA)",
|
||||
"blocking_mode_custom_ip": "Brugerdefineret IP: Svar med en manuelt indstillet IP-adresse",
|
||||
"upstream_dns_client_desc": "Hvis du lader dette felt være tomt, vil AdGuard Home bruge de servere, der er konfigureret i <0>DNS-indstillingerne</0>.",
|
||||
"blocking_mode_custom_ip": "Tilpasset IP: Svar med en manuelt indstillet IP-adresse",
|
||||
"upstream_dns_client_desc": "Holdes dette felt tomt, bruger AdGuard Home de i <0>DNS-indstillingerne</0> opsatte servere.",
|
||||
"tracker_source": "Tracker-kilde",
|
||||
"source_label": "Kilde",
|
||||
"found_in_known_domain_db": "Fundet i databasen med kendte domæner.",
|
||||
"category_label": "Kategori",
|
||||
"rule_label": "Regel(regler)",
|
||||
"rule_label": "Regel/Regler",
|
||||
"list_label": "Liste",
|
||||
"unknown_filter": "Ukendt filter {{filterId}}",
|
||||
"known_tracker": "Kendt tracker",
|
||||
"install_welcome_title": "Velkommen til AdGuard Home!",
|
||||
"install_welcome_desc": "AdGuard Home er en netværksbaseret annonce-og-tracker blokerende DNS-server. Formålet er at lade dig kontrollere hele dit netværk og alle dine enheder, og det kræver ikke at man bruger klientsoftware.",
|
||||
"install_settings_title": "Administrator Webgrænseflade",
|
||||
"install_welcome_desc": "AdGuard Home er en netværksbaseret tracker- og adblocking DNS-server, hvis formål er at lade dig kontrollere hele dit netværk og alle dine enheder, og det kræver ikke brug af klientsoftware.",
|
||||
"install_settings_title": "Admin Webgrænseflade",
|
||||
"install_settings_listen": "Overvågningsgrænseflade",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Din AdGuard Home administrator webgrænseflade vil være tilgængelig på følgende adresser:",
|
||||
"form_error_port": "Indtast gyldig portværdi",
|
||||
"install_settings_interface_link": "Din AdGuard Home admin webgrænseflade vil være tilgængelig på flg. adresser:",
|
||||
"form_error_port": "Angiv gyldig portnummer",
|
||||
"install_settings_dns": "DNS-server",
|
||||
"install_settings_dns_desc": "Du skal konfigurere dine enheder eller router til at bruge DNS-serveren på følgende adresser:",
|
||||
"install_settings_dns_desc": "Du skal opsætte dine enheder eller router til at bruge DNS-serveren på flg. adresser:",
|
||||
"install_settings_all_interfaces": "Alle grænseflader",
|
||||
"install_auth_title": "Autentificering",
|
||||
"install_auth_desc": "Det anbefales stærkt at konfigurere adgangskodeautentificering til din AdGuard Home administrator webgrænseflade. Selvom det kun er tilgængeligt på dit lokale netværk, er det stadig vigtigt at få det beskyttet mod ubegrænset adgang.",
|
||||
"install_auth_title": "Godkendelse",
|
||||
"install_auth_desc": "Det anbefales stærkt at opsætte adgangskodegodkendelse på din AdGuard Home admin webgrænseflade. Selvom den kun er tilgængelig på dit lokalnetværk, er det stadig vigtigt at få den beskyttet mod ubegrænset adgang.",
|
||||
"install_auth_username": "Brugernavn",
|
||||
"install_auth_password": "Adgangskode",
|
||||
"install_auth_confirm": "Bekræft adgangskode",
|
||||
"install_auth_username_enter": "Indtast brugernavn",
|
||||
"install_auth_password_enter": "Indtast adgangskode",
|
||||
"install_auth_username_enter": "Angiv brugernavn",
|
||||
"install_auth_password_enter": "Angiv adgangskode",
|
||||
"install_step": "Trin",
|
||||
"install_devices_title": "Konfigurer dine enheder",
|
||||
"install_devices_desc": "For at kunne bruge AdGuard Home, skal du konfigurere dine enheder til at bruge den.",
|
||||
"install_devices_title": "Opsæt dine enheder",
|
||||
"install_devices_desc": "For brug af AdGuard Home, skal dine enheder opsættes til at bruge den.",
|
||||
"install_submit_title": "Tillykke!",
|
||||
"install_submit_desc": "Installationsproceduren er færdig, og du er klar til at starte med at bruge AdGuard Home.",
|
||||
"install_submit_desc": "Opsætningsproceduren er færdig, og AdGuard Home er nu klar til brug.",
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Denne opsætning dækker automatisk alle enheder, der er tilsluttet din hjemmerouter, og du behøver ikke konfigurere hver af dem manuelt.",
|
||||
"install_devices_address": "AdGuard Home DNS-server lytter på følgende adresser",
|
||||
"install_devices_router_list_1": "Åbn præferencerne for din router. Normalt kan du få adgang til den fra din browser via en URL (som http://192.168.0.1/ eller http://192.168.1.1/). Du bliver muligvis bedt om at indtaste adgangskoden. Hvis du ikke kan huske den, kan du ofte nulstille adgangskoden ved at trykke på en knap på selve routeren. Nogle routere kræver et bestemt program, som i det tilfælde allerede skulle være installeret på din computer/telefon.",
|
||||
"install_devices_router_list_2": "Find DHCP/DNS-indstillingerne. Kig efter DNS-bogstaverne ved siden af et felt, der tillader to eller tre sæt tal, hver opdelt i fire grupper med et til tre cifre.",
|
||||
"install_devices_router_list_3": "Indtast dine AdGuard Home serveradresser der.",
|
||||
"install_devices_router_list_4": "Du kan ikke opsætte en tilpasset DNS-server på nogle typer routere. I dette tilfælde kan det hjælpe, hvis du konfigurerer AdGuard Home som en <0>DHCP-server</0>. Du kan ellers søge efter manualen om, hvordan du tilpasser DNS-servere til din bestemte routermodel.",
|
||||
"install_devices_windows_list_1": "Åbn Kontrolpanel gennem menuen Start eller Windows søgning.",
|
||||
"install_devices_windows_list_2": "Gå til Netværk og internet kategorien og derefter til Netværks- og delingscenter.",
|
||||
"install_devices_windows_list_3": "På venstre side af skærmen finder du Skift adapterindstillinger og klik på den.",
|
||||
"install_devices_router_desc": "Denne opsætning dækker automatisk alle enheder tilsluttet din hjemmerouter, og du behøver ikke at skulle opsætte hver af dem manuelt.",
|
||||
"install_devices_address": "AdGuard Home DNS-server lytter på flg. adresser",
|
||||
"install_devices_router_list_1": "Åbn præferencerne for din router. Normalt kan du tilgå disse fra din browser via en URL såsom http://192.168.0.1/ eller http://192.168.1.1/. Du anmodes muligvis om at angive en adgangskode. Kan du ikke huske den, kan du ofte nulstille adgangskoden ved hjælp af en knap på selve routeren, men vær opmærksom på, at vælges denne procedure, mister du sandsynligvis hele routerkonfigureringen. Hvis din router kræver en app for at konfigurere den, skal du installere appen på din telefon eller pc og bruge den til at få adgang til routerens indstillinger.",
|
||||
"install_devices_router_list_2": "Find DHCP-/DNS-indstillingerne. Kig efter DNS-bogstaverne ved siden af et felt, der tillader input af to eller tre sæt tal, hver opdelt i fire grupper med et til tre cifre.",
|
||||
"install_devices_router_list_3": "Angiv dine AdGuard Home-serveradresser dér.",
|
||||
"install_devices_router_list_4": "På visse routertyper kan en tilpasset DNS-server ikke opsættes. I så tilfælde kan det hjælpe, hvis du opsætter AdGuard Home som en <0>DHCP-server</0>. Ellers bør du tjekke i routermanualen, hvordan du tilpasser DNS-servere i din givne routermodel.",
|
||||
"install_devices_windows_list_1": "Åbn Kontrolpanel via menuen Start eller Windows-søgning.",
|
||||
"install_devices_windows_list_2": "Gå til kategorien Netværk og Internet og derefter til Netværks- og delingscenter.",
|
||||
"install_devices_windows_list_3": "Til venstre finder du punktet Skift adapterindstillinger, klik på dette.",
|
||||
"install_devices_windows_list_4": "Vælg din aktive forbindelse, højreklik på den og vælg Egenskaber.",
|
||||
"install_devices_windows_list_5": "Find Internet Protocol Version 4 (TCP/IP) på listen, vælg den og klik derefter på Egenskaber igen.",
|
||||
"install_devices_windows_list_6": "Vælg Brug følgende DNS-serveradresser og indtast dine AdGuard Home serveradresser.",
|
||||
"install_devices_windows_list_6": "Vælg Brug følgende DNS-serveradresser og angiv dine AdGuard Home-serveradresser.",
|
||||
"install_devices_macos_list_1": "Klik på Apple-ikonet og gå til Systemindstillinger.",
|
||||
"install_devices_macos_list_2": "Klik på Netværk.",
|
||||
"install_devices_macos_list_3": "Vælg den første forbindelse på din liste, og klik på Avanceret.",
|
||||
"install_devices_macos_list_4": "Vælg fanen DNS og indtast dine AdGuard Home serveradresser.",
|
||||
"install_devices_macos_list_4": "Vælg fanen DNS og angiv dine AdGuard Home-serveradresser.",
|
||||
"install_devices_android_list_1": "Tryk på Indstillinger på Android-startskærmen.",
|
||||
"install_devices_android_list_2": "Tryk på Wi-Fi i menuen. Alle tilgængelige netværk vil blive vist på skærmen (det er umuligt at angive brugerdefineret DNS til mobilforbindelse).",
|
||||
"install_devices_android_list_3": "Tryk lang tid på det netværk, du har forbindelse til, og tryk på Rediger Netværk.",
|
||||
"install_devices_android_list_4": "På nogle enheder skal du muligvis afkrydse afkrydsningsfeltet Avanceret for at se yderligere indstillinger. For at justere dine Android DNS-indstillinger skal du skifte IP-indstillingerne fra DHCP til Statisk.",
|
||||
"install_devices_android_list_5": "Skift sæt DNS 1 og DNS 2 værdierne til dine AdGuard Home serveradresser.",
|
||||
"install_devices_ios_list_1": "Tryk på Indstillinger på startskærmen.",
|
||||
"install_devices_ios_list_2": "Vælg Wi-Fi i menuen til venstre (det er umuligt at konfigurere DNS til mobilnetværker).",
|
||||
"install_devices_ios_list_3": "Tryk på navnet på det nuværende aktive netværk.",
|
||||
"install_devices_ios_list_4": "Indtast dine AdGuard Home serveradresser i DNS-feltet.",
|
||||
"get_started": "Kom I Gang",
|
||||
"install_devices_android_list_2": "Tryk på Wi-Fi i menuen. Alle tilgængelige netværk vises på skærmen (det er umuligt at angive tilpasset DNS til mobilforbindelse).",
|
||||
"install_devices_android_list_3": "Langt tryk på det netværk, du er forbundet til, og tryk på Redigér Netværk.",
|
||||
"install_devices_android_list_4": "På visse enheder skal du muligvis afkrydse feltet Avanceret for at se yderligere indstillinger. For at ændre dine Android DNS-indstillinger skal du skifte IP-indstillingerne fra DHCP til Statisk.",
|
||||
"install_devices_android_list_5": "Skift de aktuelle DNS 1- og DNS 2-værdier til dine AdGuard Home-serveradresser.",
|
||||
"install_devices_ios_list_1": "Tryk på Indstillinger på Hjem-skærmen.",
|
||||
"install_devices_ios_list_2": "Vælg Wi-Fi i menuen til venstre (det er umuligt at opsætte DNS for mobilnetværker).",
|
||||
"install_devices_ios_list_3": "Tryk på navnet på det aktuelt aktive netværk.",
|
||||
"install_devices_ios_list_4": "Angiv dine AdGuard Home-serveradresser i DNS-feltet.",
|
||||
"get_started": "Komme I Gang",
|
||||
"next": "Næste",
|
||||
"open_dashboard": "Åbn Dashboard",
|
||||
"install_saved": "Succesfuldt gemt",
|
||||
"install_saved": "Gemt",
|
||||
"encryption_title": "Kryptering",
|
||||
"encryption_desc": "Kryptering (HTTPS/TLS) understøtter både DNS og admin webgrænseflade",
|
||||
"encryption_config_saved": "Krypteringskonfiguration gemt",
|
||||
"encryption_config_saved": "Krypteringsopsætning gemt",
|
||||
"encryption_server": "Servernavn",
|
||||
"encryption_server_enter": "Indtast dit domænenavn",
|
||||
"encryption_server_desc": "For at kunne bruge HTTPS skal du indtaste det servernavn, der matcher dit SSL-certifikat eller wildcard-certifikat. Hvis feltet ikke er indstillet, accepterer det TLS-forbindelser til ethvert domæne.",
|
||||
"encryption_redirect": "Omdiriger automatisk til HTTPS",
|
||||
"encryption_redirect_desc": "Hvis afkrydset, vil AdGuard Home automatisk omdirigere dig fra HTTP til HTTPS-adresser.",
|
||||
"encryption_server_enter": "Angiv dit domænenavn",
|
||||
"encryption_server_desc": "For at kunne bruge HTTPS skal du angive det servernavn, der matcher dit SSL-certifikat eller wildcard-certifikat. Er feltet ikke er opsat, accepterer det TLS-forbindelser til ethvert domæne.",
|
||||
"encryption_redirect": "Omdirigér automatisk til HTTPS",
|
||||
"encryption_redirect_desc": "Hvis afkrydset, omdirigerer AdGuard Home dig automatisk fra HTTP- til HTTPS-adresser.",
|
||||
"encryption_https": "HTTPS-port",
|
||||
"encryption_https_desc": "Hvis HTTPS-porten er konfigureret, vil AdGuard Home admin grænsefladen være tilgængelig via HTTPS, og den vil give DNS-over-HTTPS på '/dns-query' placeringen.",
|
||||
"encryption_https_desc": "Er HTTPS-porten opsat, vil AdGuard Home admin grænsefladen være tilgængelig via HTTPS, og den vil muliggøre DNS-over-HTTPS på '/dns-query' placeringen.",
|
||||
"encryption_dot": "DNS-over-TLS port",
|
||||
"encryption_dot_desc": "Hvis denne port er konfigureret, vil AdGuard Home køre en DNS-over-TLS server over denne port.",
|
||||
"encryption_dot_desc": "Er denne port opsat, vil AdGuard Home køre en DNS-over-TLS server på denne port.",
|
||||
"encryption_doq": "DNS-over-QUIC port",
|
||||
"encryption_doq_desc": "Hvis denne port er konfigureret, vil AdGuard Home køre en DNS-over-QUIC server på denne port. Den er eksperimentel og er måske ikke pålidelig. Der er heller ikke mange klienter, der understøtter den i øjeblikket.",
|
||||
"encryption_doq_desc": "Er denne port opsat, vil AdGuard Home køre en DNS-over-QUIC server på denne port. Den er eksperimentel og er måske ikke pålidelig. Derudover understøttes den pt. heller ikke af ret mange klienter.",
|
||||
"encryption_certificates": "Certifikater",
|
||||
"encryption_certificates_desc": "For at kunne bruge kryptering skal du angive en gyldig SSL-certifikatkæde til dit domæne. Du kan få et gratis certifikat på <0>{{link}}</ 0> eller du kan købe det fra en af de pålidelige Certifikatmyndigheder.",
|
||||
"encryption_certificates_input": "Kopier/indsæt dine PEM-kodede certifikater her.",
|
||||
"encryption_certificates_desc": "For at kunne bruge kryptering skal du angive en gyldig SSL-certifikatkæde til dit domæne. Du kan få et gratis certifikat via <0>{{link}}</ 0>, eller du kan købe det via en af de betroede Certifikatmyndigheder.",
|
||||
"encryption_certificates_input": "Kopiér/indsæt dine PEM-kodede certifikater hér.",
|
||||
"encryption_status": "Status",
|
||||
"encryption_expire": "Udløber",
|
||||
"encryption_key": "Privat nøgle",
|
||||
"encryption_key_input": "Kopier/indsæt dine PEM-kodede private nøgle til dit certifikat her.",
|
||||
"encryption_enable": "Aktiver Kryptering (HTTPS, DNS-over-HTTPS og DNS-over-TLS)",
|
||||
"encryption_enable_desc": "Hvis kryptering er aktiveret, vil AdGuard Home admin grænseflade fungere over HTTPS og DNS-serveren vil lytte efter forespørgsler via DNS-over-HTTPS og DNS-over-TLS.",
|
||||
"encryption_key_input": "Kopiér/indsæt dine PEM-kodede private nøgle til dit certifikat hér.",
|
||||
"encryption_enable": "Aktivér Kryptering (HTTPS, DNS-over-HTTPS og DNS-over-TLS)",
|
||||
"encryption_enable_desc": "Er kryptering aktiveret, fungerer AdGuard Home admin grænsefladen over HTTPS, og DNS-serveren lytter efter forespørgsler via DNS-over-HTTPS og DNS-over-TLS.",
|
||||
"encryption_chain_valid": "Certifikatkæden er gyldig",
|
||||
"encryption_chain_invalid": "Certifikatkæden er ugyldig",
|
||||
"encryption_key_valid": "Dette er en gyldig {{type}} privat nøgle",
|
||||
@@ -362,114 +368,115 @@
|
||||
"encryption_subject": "Emne",
|
||||
"encryption_issuer": "Udsteder",
|
||||
"encryption_hostnames": "Værtsnavne",
|
||||
"encryption_reset": "Er du sikker på, at du vil nulstille krypteringsindstillingerne?",
|
||||
"topline_expiring_certificate": "Dit SSL-certifikat er ved at udløbe. Opdater <0>Krypteringsindstillinger</ 0>.",
|
||||
"topline_expired_certificate": "Dit SSL-certifikat er udløbet. Opdater <0>Krypteringsindstillinger</ 0>.",
|
||||
"form_error_port_range": "Indtast portværdi i intervallet 80-65535",
|
||||
"encryption_reset": "Sikker på, at du vil nulstille krypteringsindstillingerne?",
|
||||
"topline_expiring_certificate": "Dit SSL-certifikat er ved at udløbe. Opdatér <0>Krypteringsindstillinger</0>.",
|
||||
"topline_expired_certificate": "Dit SSL-certifikat er udløbet. Opdatér <0>Krypteringsindstillinger</0>.",
|
||||
"form_error_port_range": "Angiv portnummer i intervallet 80-65535",
|
||||
"form_error_port_unsafe": "Dette er en usikker port",
|
||||
"form_error_equal": "Burde ikke være lige",
|
||||
"form_error_equal": "Må ikke være ens",
|
||||
"form_error_password": "Adgangskoden matcher ikke",
|
||||
"reset_settings": "Nulstil indstillinger",
|
||||
"update_announcement": "AdGuard Home {{version}} er nu tilgængelig! <0>Kik her</0> for mere info.",
|
||||
"update_announcement": "AdGuard Home {{version}} er nu tilgængelig! <0>Kik hér</0> for mere info.",
|
||||
"setup_guide": "Installationsvejledning",
|
||||
"dns_addresses": "DNS-adresser",
|
||||
"dns_start": "DNS-server starter",
|
||||
"dns_status_error": "Fejl ved at få DNS-serverstatus",
|
||||
"dns_status_error": "Fejl ved tjek af DNS-serverstatus",
|
||||
"down": "Ned",
|
||||
"fix": "Reparer",
|
||||
"fix": "Korrigér",
|
||||
"dns_providers": "Her er en <0>liste over kendte DNS-udbydere</ 0> at vælge imellem.",
|
||||
"update_now": "Opdater nu",
|
||||
"update_failed": "Automatisk opdatering mislykkedes. Følg <a>disse trin</a> for at opdatere manuelt.",
|
||||
"update_now": "Opdatér nu",
|
||||
"update_failed": "Autoopdatering mislykkedes. Følg <a>disse trin</a> for at opdatere manuelt.",
|
||||
"processing_update": "Vent venligst, AdGuard Home bliver opdateret",
|
||||
"clients_title": "Klienter",
|
||||
"clients_desc": "Konfigurer enheder, der er forbundet til AdGuard Home",
|
||||
"clients_desc": "Opsæt enheder forbundet til AdGuard Home",
|
||||
"settings_global": "Global",
|
||||
"settings_custom": "Brugerdefineret",
|
||||
"settings_custom": "Tilpasset",
|
||||
"table_client": "Klient",
|
||||
"table_name": "Navn",
|
||||
"save_btn": "Gem",
|
||||
"client_add": "Tilføj Klient",
|
||||
"client_new": "Ny Klient",
|
||||
"client_edit": "Rediger Klient",
|
||||
"client_edit": "Redigér Klient",
|
||||
"client_identifier": "Identifikator",
|
||||
"ip_address": "IP-adresse",
|
||||
"client_identifier_desc": "Klienter kan identificeres ud fra IP-adressen, CIDR eller MAC-adressen eller et specielt klient-ID (kan bruges til DoT/DoH/DoQ). <0>Her</0> kan du lære mere om, hvordan du identificerer klienter.",
|
||||
"form_enter_ip": "Indtast IP",
|
||||
"form_enter_mac": "Indtast MAC",
|
||||
"form_enter_id": "Indtast identifikator",
|
||||
"client_identifier_desc": "Klienter kan identificeres ud fra IP-adressen, CIDR eller MAC-adressen eller et specielt klient-ID (kan bruges til DoT/DoH/DoQ). <0>Hér</0> kan du læse mere om, hvordan klienter identificeres.",
|
||||
"form_enter_ip": "Angiv IP",
|
||||
"form_enter_subnet_ip": "Indtast en IP-adresse i subnettet \"{{cidr}}\"",
|
||||
"form_enter_mac": "Angiv MAC",
|
||||
"form_enter_id": "Angiv identifikator",
|
||||
"form_add_id": "Tilføj identifikator",
|
||||
"form_client_name": "Indtast klientnavn",
|
||||
"form_client_name": "Angiv klientnavn",
|
||||
"name": "Navn",
|
||||
"client_global_settings": "Brug globale indstillinger",
|
||||
"client_deleted": "Klient \"{{key}}\" succesfuldt slettet",
|
||||
"client_added": "Klient \"{{key}}\" succesfuldt tilføjet",
|
||||
"client_updated": "Klient \"{{key}}\" succesfuldt opdateret",
|
||||
"client_deleted": "Klient \"{{key}}\" slettet",
|
||||
"client_added": "Klient \"{{key}}\" tilføjet",
|
||||
"client_updated": "Klient \"{{key}}\" opdateret",
|
||||
"clients_not_found": "Ingen klienter fundet",
|
||||
"client_confirm_delete": "Er du sikker på, at du vil slette klient \"{{key}}\"?",
|
||||
"list_confirm_delete": "Er du sikker på, at du vil slette denne liste?",
|
||||
"client_confirm_delete": "Sikker på, at du vil slette klient \"{{key}}\"?",
|
||||
"list_confirm_delete": "Sikker på, at du vil slette denne liste?",
|
||||
"auto_clients_title": "Klienter (runtime)",
|
||||
"auto_clients_desc": "Data om de klienter, der bruger AdGuard Home, men ikke gemt i konfigurationen",
|
||||
"auto_clients_desc": "Data om de klienter, som bruger AdGuard Home, men ikke gemt i opsætningen",
|
||||
"access_title": "Adgangsindstillinger",
|
||||
"access_desc": "Her kan du konfigurere adgangsregler for AdGuard Home DNS-serveren.",
|
||||
"access_desc": "Her kan du opsætte adgangsregler for AdGuard Home DNS-serveren.",
|
||||
"access_allowed_title": "Tilladte klienter",
|
||||
"access_allowed_desc": "En liste over CIDR- eller IP-adresser. Hvis den er konfigureret, vil AdGuard Home kun acceptere anmodninger fra disse IP-adresser.",
|
||||
"access_allowed_desc": "En liste over CIDR- eller IP-adresser. Hvis opsat, accepterer AdGuard Home kun forespørgsler fra disse IP-adresser.",
|
||||
"access_disallowed_title": "Ikke tilladte klienter",
|
||||
"access_disallowed_desc": "En liste over CIDR- eller IP-adresser. Hvis den er konfigureret, vil AdGuard Home droppe anmodninger fra disse IP-adresser.",
|
||||
"access_disallowed_desc": "En liste over CIDR- eller IP-adresser. Hvis opsat, dropper AdGuard Home forespørgsler fra disse IP-adresser.",
|
||||
"access_blocked_title": "Ikke tilladte domæner",
|
||||
"access_blocked_desc": "Forveksl det ikke med filtre. AdGuard Home vil droppe DNS-forespørgsler for disse domæner i forespørgselsspørgsmål. Her kan du specificere de nøjagtige domænenavne, wildcards og urlfilter-regler, f.eks. 'example.org', '*.example.org' eller '||example.org^'.",
|
||||
"access_settings_saved": "Adgangsindstillinger succesfuldt gemt",
|
||||
"updates_checked": "Søgt succesfuldt efter opdateringer",
|
||||
"access_blocked_desc": "Forveksl ikke dette med filtre. AdGuard Home dropper DNS-forespørgsler, hvori der forespørges på disse domæner. Her kan du specificere de præcisee domænenavne, jokertegn og URL-filterregler, f.eks. 'eksempel.org', '*.eksempel.org' eller '||eksempel.org^'.",
|
||||
"access_settings_saved": "Adgangsindstillinger gemt",
|
||||
"updates_checked": "Opdateringstjek foretaget",
|
||||
"updates_version_equal": "AdGuard Home er opdateret",
|
||||
"check_updates_now": "Søg efter opdateringer nu",
|
||||
"dns_privacy": "DNS Privatliv",
|
||||
"dns_privacy": "DNS-fortrolighed",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Brug <1>{{address}}</1> streng.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Brug <1>{{address}}</1> streng.",
|
||||
"setup_dns_privacy_3": "<0>Her er en liste over software, du kan bruge.</0>",
|
||||
"setup_dns_privacy_4": "På en iOS 14 eller macOS Big Sur-enhed kan du downloade en særlig '.mobileconfig' -fil, der tilføjer <highlight>DNS-over-HTTPS</highlight> eller <highlight>DNS-over-TLS</highlight> servere til DNS-indstillingerne.",
|
||||
"setup_dns_privacy_android_1": "Android 9 understøtter den indbyggede DNS-over-TLS. For at konfigurere den, gå til Indstillinger → Netværk & internet → Avanceret → Privat DNS og indtast dit domænenavn.",
|
||||
"setup_dns_privacy_4": "På en iOS 14- eller macOS Big Sur-enhed kan du downloade en særlig '.mobileconfig' -fil, der føjer <highlight>DNS-over-HTTPS</highlight> eller <highlight>DNS-over-TLS</highlight> servere til DNS-indstillingerne.",
|
||||
"setup_dns_privacy_android_1": "Android 9 har indbygget understøttelse af DNS-over-TLS. For at opsætte den, gå til Indstillinger → Netværk og Internet → Avanceret → Privat DNS og angiv dit domænenavn.",
|
||||
"setup_dns_privacy_android_2": "<0>AdGuard til Android</0> understøtter <1>DNS-over-HTTPS</1> og <1>DNS-over-TLS</1>.",
|
||||
"setup_dns_privacy_android_3": "<0>Intra</0> tilføjer <1>DNS-over-HTTPS</1> understøttelse til Android.",
|
||||
"setup_dns_privacy_ios_1": "<0>DNSCloak</0> understøtter <1>DNS-over-HTTPS</1>, men for at konfigurere den, så den bruger din egen server, skal du generere et <2>DNS Stamp</2> til den.",
|
||||
"setup_dns_privacy_ios_2": "<0>AdGuard til iOS</0> understøtter <1>DNS-over-HTTPS</1> og <1>DNS-over-TLS</1> installation.",
|
||||
"setup_dns_privacy_android_3": "<0>Intra</0> føjer <1>DNS-over-HTTPS</1> understøttelse til Android.",
|
||||
"setup_dns_privacy_ios_1": "<0>DNSCloak</0> understøtter <1>DNS-over-HTTPS</1>, men for at opsætte den til brug af din egen server, skal du generere et <2>DNS Stamp</2> til den.",
|
||||
"setup_dns_privacy_ios_2": "<0>AdGuard til iOS</0> understøtter <1>DNS-over-HTTPS</1> og <1>DNS-over-TLS</1> opsætning.",
|
||||
"setup_dns_privacy_other_title": "Andre implementeringer",
|
||||
"setup_dns_privacy_other_1": "AdGuard Home kan være en sikker DNS-klient på enhver platform.",
|
||||
"setup_dns_privacy_other_2": "<0>dnsproxy</0> understøtter alle kendte sikre DNS-protokoller.",
|
||||
"setup_dns_privacy_other_3": "<0>dnscrypt-proxy</0> understøtter <1>DNS-over-HTTPS</1>.",
|
||||
"setup_dns_privacy_other_4": "<0>Mozilla Firefox</0> understøtter <1>DNS-over-HTTPS</1>.",
|
||||
"setup_dns_privacy_other_5": "Du kan finde flere implementeringer <0>her</0> og <1>her</1>.",
|
||||
"setup_dns_privacy_ioc_mac": "iOS- og macOS-konfiguration",
|
||||
"setup_dns_notice": "For at kunne bruge <1>DNS-over-HTTPS</1> eller <1>DNS-over-TLS</1>, skal du <0>konfigurere Krypteringen</0> i indstillingerne i AdGuard Home.",
|
||||
"setup_dns_privacy_other_5": "Du kan finde flere implementeringer <0>hér</0> og <1>hér</1>.",
|
||||
"setup_dns_privacy_ioc_mac": "iOS- og macOS-opsætning",
|
||||
"setup_dns_notice": "For at kunne bruge <1>DNS-over-HTTPS</1> eller <1>DNS-over-TLS</1>, skal du <0>opsætte Krypteringen</0> i AdGuard Homes indstillinger.",
|
||||
"rewrite_added": "DNS-omskrivning for \"{{key}}\" blev tilføjet",
|
||||
"rewrite_deleted": "DNS-omskrivning for \"{{key}}\" blev slettet",
|
||||
"rewrite_add": "Tilføj DNS-omskrivning",
|
||||
"rewrite_not_found": "Ingen DNS-omskrivninger fundet",
|
||||
"rewrite_confirm_delete": "Er du sikker på, at du vil slette DNS-omskrivning for \"{{key}}\"?",
|
||||
"rewrite_desc": "Gør det nemt at konfigurere det tilpassede DNS-svar for et specifikt domænenavn.",
|
||||
"rewrite_applied": "Anvendt omskrivningsregel",
|
||||
"rewrite_confirm_delete": "Sikker på, at du vil slette DNS-omskrivning for \"{{key}}\"?",
|
||||
"rewrite_desc": "Gør det nemt at opsætte det tilpassede DNS-svar for et specifikt domænenavn.",
|
||||
"rewrite_applied": "Omskrivningsregel effektueret",
|
||||
"rewrite_hosts_applied": "Omskrevet af værtsfilreglen",
|
||||
"dns_rewrites": "DNS-omskrivninger",
|
||||
"form_domain": "Indtast domænenavn eller wildcard",
|
||||
"form_answer": "Indtast IP-adresser eller domænenavne",
|
||||
"form_domain": "Angiv domænenavn eller jokertegn",
|
||||
"form_answer": "Angiv IP-adresse eller domænenavn",
|
||||
"form_error_domain_format": "Ugyldigt domæneformat",
|
||||
"form_error_answer_format": "Ugyldigt svarformat",
|
||||
"configure": "Konfigurer",
|
||||
"configure": "Opsæt",
|
||||
"main_settings": "Hovedindstillinger",
|
||||
"block_services": "Bloker specifikke tjenester",
|
||||
"block_services": "Blokere specifikke tjenester",
|
||||
"blocked_services": "Blokerede tjenester",
|
||||
"blocked_services_desc": "Gør det muligt hurtigt at blokere populære websteder og tjenester.",
|
||||
"blocked_services_saved": "Blokerede tjenester er gemt",
|
||||
"blocked_services_global": "Brug globale blokerede tjenester",
|
||||
"blocked_service": "Blokeret tjeneste",
|
||||
"block_all": "Bloker alle",
|
||||
"unblock_all": "Fjern blokering af alle",
|
||||
"block_all": "Blokér alle",
|
||||
"unblock_all": "Afblokér alle",
|
||||
"encryption_certificate_path": "Certifikatsti",
|
||||
"encryption_private_key_path": "Placering af den private nøgle",
|
||||
"encryption_certificates_source_path": "Indstil en sti for certifikatfilen",
|
||||
"encryption_private_key_path": "Private nøgle-sti",
|
||||
"encryption_certificates_source_path": "Opsæt en certifikatfilsti",
|
||||
"encryption_certificates_source_content": "Indsæt certifikatets indhold",
|
||||
"encryption_key_source_path": "Indstil en fil for den private nøgle",
|
||||
"encryption_key_source_path": "Opsæt en private nøgle-fil",
|
||||
"encryption_key_source_content": "Indsæt indholdet af den private nøgle",
|
||||
"stats_params": "Konfiguration af statistik",
|
||||
"config_successfully_saved": "Konfiguration er gemt",
|
||||
"stats_params": "Statistikopsætning",
|
||||
"config_successfully_saved": "Opsætning er gemt",
|
||||
"interval_24_hour": "24 timer",
|
||||
"interval_days": "{{count}} dag",
|
||||
"interval_days_plural": "{{count}} dage",
|
||||
@@ -478,120 +485,120 @@
|
||||
"filter_added_successfully": "Listen er tilføjet",
|
||||
"filter_removed_successfully": "Listen er blevet fjernet",
|
||||
"filter_updated": "Listen er blevet opdateret",
|
||||
"statistics_configuration": "Konfiguration af statistik",
|
||||
"statistics_retention": "Tilbageholdelse af statistikker",
|
||||
"statistics_retention_desc": "Hvis du mindsker intervalværdien, vil nogle data gå tabt",
|
||||
"statistics_configuration": "Statistikopsætning",
|
||||
"statistics_retention": "Statistikbevarelse",
|
||||
"statistics_retention_desc": "Mindskes intervalværdien, vil nogle data gå tabt",
|
||||
"statistics_clear": " Ryd statistikker",
|
||||
"statistics_clear_confirm": "Er du sikker på, at du vil slette statistikkerne?",
|
||||
"statistics_retention_confirm": "Er du sikker på, at du vil ændre opbevaring af statistikker? Hvis du mindsker intervalværdien, vil nogle data gå tabt",
|
||||
"statistics_cleared": "Statistikkerne blev slettet",
|
||||
"statistics_clear_confirm": "Sikker på, at du vil slette statistikkerne?",
|
||||
"statistics_retention_confirm": "Sikker på, at du vil ændre på statistikbevaring? Mindskes intervalværdien, vil nogle data gå tabt",
|
||||
"statistics_cleared": "Statistikkerne er ryddet",
|
||||
"interval_hours": "{{count}} time",
|
||||
"interval_hours_plural": "{{count}} timer",
|
||||
"filters_configuration": "Konfiguration af filtre",
|
||||
"filters_configuration": "Filteropsætninger",
|
||||
"filters_enable": "Aktivér filtre",
|
||||
"filters_interval": "Filtrenes opdateringsinterval",
|
||||
"disabled": "Deaktiveret",
|
||||
"username_label": "Brugernavn",
|
||||
"username_placeholder": "Indtast brugernavn",
|
||||
"username_placeholder": "Angiv brugernavn",
|
||||
"password_label": "Adgangskode",
|
||||
"password_placeholder": "Indtast adgangskode",
|
||||
"password_placeholder": "Angiv adgangskode",
|
||||
"sign_in": "Log ind",
|
||||
"sign_out": "Log ud",
|
||||
"forgot_password": "Glemt adgangskode?",
|
||||
"forgot_password_desc": "Følg <0>disse trin</0> for at oprette en ny adgangskode til din brugerkonto.",
|
||||
"location": "Placering",
|
||||
"orgname": "Organisationens navn",
|
||||
"orgname": "Organisationsnavn",
|
||||
"netname": "Netværksnavn",
|
||||
"network": "Netværk",
|
||||
"descr": "Beskrivelse",
|
||||
"whois": "Whois",
|
||||
"filtering_rules_learn_more": "<0>Lær mere</0> om at oprette dine egne værtslister.",
|
||||
"blocked_by_response": "Blokeret af CNAME eller IP som svar",
|
||||
"filtering_rules_learn_more": "<0>Læs mere</0> om at oprette dine egne værtslister.",
|
||||
"blocked_by_response": "Blokeret af CNAME eller IP i svar",
|
||||
"blocked_by_cname_or_ip": "Blokeret af CNAME eller IP",
|
||||
"try_again": "Prøv igen",
|
||||
"domain_desc": "Indtast det domænenavn eller wildcard, du ønsker skal omskrives.",
|
||||
"domain_desc": "Angiv domænenavnet eller jokertegnene, du ønsker omskrevet.",
|
||||
"example_rewrite_domain": "omskriv kun svar for dette domænenavn.",
|
||||
"example_rewrite_wildcard": "omskriv svar for alle <0>example.org</0> subdomæner.",
|
||||
"rewrite_ip_address": "IP-adresse: brug denne IP i et A- eller AAAA-svar",
|
||||
"rewrite_domain_name": "Domænenavn: tilføj en CNAME-post",
|
||||
"rewrite_A": "<0>A</0>: særlig værdi, hold <0>A</0> poster fra upstream",
|
||||
"rewrite_AAAA": "<0>AAAA</0>: særlig værdi, hold <0>AAAA</0> poster fra upstream",
|
||||
"disable_ipv6": "Deaktiver IPv6",
|
||||
"disable_ipv6_desc": "Hvis denne funktion er aktiveret, slettes alle DNS-forespørgsler til IPv6-adresser (type AAAA).",
|
||||
"example_rewrite_wildcard": "omskriv svar for alle <0>example.org</0> underdomæner.",
|
||||
"rewrite_ip_address": "IP-adresse: Brug denne IP i et A- eller AAAA-svar",
|
||||
"rewrite_domain_name": "Domænenavn: Tilføj en CNAME-post",
|
||||
"rewrite_A": "<0>A</0>: Særlig værdi, hold <0>A</0> poster fra upstream",
|
||||
"rewrite_AAAA": "<0>AAAA</0>: Særlig værdi, hold <0>AAAA</0> poster fra upstream",
|
||||
"disable_ipv6": "Deaktivér IPv6",
|
||||
"disable_ipv6_desc": "Er denne funktion aktiveret, slettes alle DNS-forespørgsler til IPv6-adresser (type AAAA).",
|
||||
"fastest_addr": "Hurtigste IP-adresse",
|
||||
"fastest_addr_desc": "Forespørg alle DNS-servere, og returner den hurtigste IP-adresse blandt alle svar. Dette vil gøre DNS-forespørgslerne langsommere, da vi er nødt til at vente på svar fra alle DNS-servere, men forbedrer samlet set forbindelsen.",
|
||||
"autofix_warning_text": "Hvis du klikker på \"Reparer\", vil AdGuardHome konfigurere dit system til at bruge AdGuardHome DNS-server.",
|
||||
"autofix_warning_list": "Den vil udføre disse opgaver: <0>Deaktivering af DNSStubListener systemet</0> <0>Indstille DNS-serveradressen til 127.0.0.1</0> <0>Erstatte det symbolske linkmål for /etc/resolv.conf til /run/systemd/resolve/resolv.conf</0> <0>Stop DNSStubListener (genindlæs systemd-løst tjeneste)</0>",
|
||||
"autofix_warning_result": "Som et resultat behandles alle DNS-anmodninger fra dit system som standard af AdGuard Home.",
|
||||
"fastest_addr_desc": "Forespørger alle DNS-servere og returner den hurtigste IP-adresse blandt alle svar. Dette vil gøre DNS-forespørgslerne langsommere grundet afventning af svar fra alle DNS-servere, men forbedrer samlet set forbindelsen.",
|
||||
"autofix_warning_text": "Klikker du på \"Reparér\", opsætter AdGuard Home dit system til brug med AdGuard Home DNS-server.",
|
||||
"autofix_warning_list": "Den vil udføre disse opgaver: <0>Deaktivere system DNSStubListener</0> <0>Opsætte DNS-serveradressen til 127.0.0.1</0> <0>Erstatte symbolsk linkmål for /etc/resolv.conf med /run/systemd/resolve/resolv.conf</0> <0>Stoppe DNSStubListener (genindlæs systemd-opløst tjeneste)</0>",
|
||||
"autofix_warning_result": "Det betyder, at alle DNS-forespørgsler fra dit system som standard behandles af AdGuard Home.",
|
||||
"tags_title": "Tags",
|
||||
"tags_desc": "Du kan vælge de tags, der svarer til klienten. Tags kan inkluderes i filtreringsreglerne og giver dig mulighed for at anvende dem mere nøjagtigt. <0>Læs mere</0>",
|
||||
"tags_desc": "Du kan vælge de tags, som svarer til klienten. Tags kan inkluderes i filtreringsreglerne, hvilket lader anvende dem mere præcist. <0>Læs mere</0>",
|
||||
"form_select_tags": "Vælg klient tags",
|
||||
"check_title": "Kontroller filtreringen",
|
||||
"check_desc": "Kontroller, om værtsnavnet er filtreret",
|
||||
"check": "Kontroller",
|
||||
"form_enter_host": "Indtast et værtsnavn",
|
||||
"filtered_custom_rules": "Filtreret af brugerdefinerede filtreringsregler",
|
||||
"check_title": "Tjek filtreringen",
|
||||
"check_desc": "Tjek, om værtsnavnet er filtreret",
|
||||
"check": "Tjek",
|
||||
"form_enter_host": "Angiv et værtsnavn",
|
||||
"filtered_custom_rules": "Filtreret af tilpassede filtreringsregler",
|
||||
"choose_from_list": "Vælg fra listen",
|
||||
"add_custom_list": "Tilføj en tilpasset liste",
|
||||
"host_whitelisted": "Værten er hvidlistet",
|
||||
"check_ip": "IP-adresser: {{ip}}",
|
||||
"check_cname": "CNAME: {{cname}}",
|
||||
"check_reason": "Årsag: {{reason}}",
|
||||
"check_service": "Servicenavn: {{service}}",
|
||||
"service_name": "Navn på tjeneste",
|
||||
"check_service": "Tjenestenavn: {{service}}",
|
||||
"service_name": "Tjenestenavn",
|
||||
"check_not_found": "Ikke fundet i dine filterlister",
|
||||
"client_confirm_block": "Er du sikker på, at du vil blokere klienten \"{{ip}}\"?",
|
||||
"client_confirm_unblock": "Er du sikker på, at du vil fjerne blokeringen af klienten \"{{ip}}\"?",
|
||||
"client_confirm_block": "Sikker på, at du vil blokere klienten \"{{ip}}\"?",
|
||||
"client_confirm_unblock": "Sikker på, at du vil afblokere klienten \"{{ip}}\"?",
|
||||
"client_blocked": "Klient \"{{ip}}\" blev blokeret",
|
||||
"client_unblocked": "Blokering af klient \"{{ip}}\" fjernet",
|
||||
"client_unblocked": "Klient \"{{ip}}\" blev afblokeret",
|
||||
"static_ip": "Statisk IP-adresse",
|
||||
"static_ip_desc": "AdGuard Home er en server, så den har brug for en statisk IP-adresse for at fungere korrekt. Ellers på et tidspunkt vil din router muligvis tildele en anden IP-adresse til denne enhed.",
|
||||
"set_static_ip": "Indstil en statisk IP-adresse",
|
||||
"install_static_ok": "Gode nyheder! Den statiske IP-adresse er allerede konfigureret",
|
||||
"install_static_error": "AdGuard Home kan ikke konfigurere det automatisk for denne netværksgrænseflade. Søg efter en instruktion om, hvordan man gør dette manuelt.",
|
||||
"install_static_configure": "Vi har registreret, at der bruges en dynamisk IP-adresse — <0>{{ip}}</0>. Vil du bruge den som din statiske adresse?",
|
||||
"confirm_static_ip": "AdGuard Home vil konfigurere {{ip}} til at være din statiske IP-adresse. Vil du fortsætte?",
|
||||
"static_ip_desc": "AdGuard Home er en server, så den behøver en statisk IP-adresse for at fungere korrekt, da din router ellers på et tidspunkt vil kunne tildele en anden IP-adresse til denne enhed.",
|
||||
"set_static_ip": "Opsæt en statisk IP-adresse",
|
||||
"install_static_ok": "Gode nyheder! Den statiske IP-adresse er allerede opsat",
|
||||
"install_static_error": "AdGuard Home kan ikke opsætte den automatisk for denne netværksgrænseflade. Søg information om, hvordan dette gøres manuelt.",
|
||||
"install_static_configure": "AsGuard Home har registreret, at den dynamisk IP-adresse <0>{{ip}}</0> bruges. Opsæt denne som din statiske adresse?",
|
||||
"confirm_static_ip": "AdGuard Home vil opsætte {{ip}} som din statiske IP-adresse. Fortsæt?",
|
||||
"list_updated": "{{count}} liste opdateret",
|
||||
"list_updated_plural": "{{count}} lister opdateret",
|
||||
"dnssec_enable": "Aktivér DNSSEC",
|
||||
"dnssec_enable_desc": "Sæt DNSSEC-flag i de udgående DNS-forespørgsler, og kontroller resultatet (DNSSEC-aktiveret resolver er krævet)",
|
||||
"dnssec_enable_desc": "Sæt DNSSEC-flag i de udgående DNS-forespørgsler, og tjek resultatet (DNSSEC-aktiveret resolver er krævet)",
|
||||
"validated_with_dnssec": "Valideret med DNSSEC",
|
||||
"all_queries": "Alle forespørgsler",
|
||||
"show_blocked_responses": "Blokeret",
|
||||
"show_whitelisted_responses": "Hvidlistet",
|
||||
"show_processed_responses": "Behandlet",
|
||||
"blocked_safebrowsing": "Blokeret af Safebrowsing",
|
||||
"blocked_adult_websites": "Blokerede Websteder for Voksne",
|
||||
"blocked_adult_websites": "Blokerede Voksen Websteder",
|
||||
"blocked_threats": "Blokerede Trusler",
|
||||
"allowed": "Tilladt",
|
||||
"filtered": "Filtreret",
|
||||
"rewritten": "Omskrevet",
|
||||
"safe_search": "Sikker søgning",
|
||||
"blocklist": "Blokeringsliste",
|
||||
"blocklist": "Sortliste",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Cache-størrelse",
|
||||
"cache_size_desc": "Størrelse på DNS-cache (i bytes)",
|
||||
"cache_ttl_min_override": "Overskriv minimum TTL",
|
||||
"cache_ttl_max_override": "Overskriv maksimal TTL",
|
||||
"enter_cache_size": "Indtast cache-størrelse (bytes)",
|
||||
"enter_cache_ttl_min_override": "Indtast minimum TTL (sekunder)",
|
||||
"enter_cache_ttl_max_override": "Indtast maksimum TTL (sekunder)",
|
||||
"cache_ttl_min_override_desc": "Udvid korte time-to-live værdier (sekunder) modtaget fra upstream-serveren, når DNS-svar cachelagres",
|
||||
"cache_size_desc": "DNS-cache størrelse (i bytes)",
|
||||
"cache_ttl_min_override": "Tilsidesæt minimum TTL",
|
||||
"cache_ttl_max_override": "Tilsidesæt maksimal TTL",
|
||||
"enter_cache_size": "Angiv cache-størrelse (bytes)",
|
||||
"enter_cache_ttl_min_override": "Angiv minimum TTL (sekunder)",
|
||||
"enter_cache_ttl_max_override": "Angiv maksimum TTL (sekunder)",
|
||||
"cache_ttl_min_override_desc": "Forlæng korte time-to-live værdier (sekunder) modtaget fra upstream-serveren, når DNS-svar cachelagres",
|
||||
"cache_ttl_max_override_desc": "Indstil en maksimal time-to-live (sekunder) for registreringer i DNS-cachen",
|
||||
"ttl_cache_validation": "Minimum cache TTL-værdi skal være mindre end eller lig med den maksimale værdi",
|
||||
"filter_category_general": "Generelt",
|
||||
"filter_category_security": "Sikkerhed",
|
||||
"filter_category_regional": "Regional",
|
||||
"filter_category_other": "Andre",
|
||||
"filter_category_general_desc": "Lister der blokerer for sporing og reklamer på de fleste enheder",
|
||||
"filter_category_security_desc": "Lister, der er specialiserede i at blokere malware, phishing eller scam-domæner",
|
||||
"filter_category_regional_desc": "Lister, der fokuserer på regionale annoncer og tracking-servere",
|
||||
"filter_category_general_desc": "Lister, som blokerer sporing og reklamer på de fleste enheder",
|
||||
"filter_category_security_desc": "Lister specialdesignet til at blokere malware-, phishing- eller svindel-domæner",
|
||||
"filter_category_regional_desc": "Lister målrettet regionale annoncer og sporingsservere",
|
||||
"filter_category_other_desc": "Andre blokeringslister",
|
||||
"setup_config_to_enable_dhcp_server": "Opsætningskonfiguration for at aktivere DHCP-server",
|
||||
"setup_config_to_enable_dhcp_server": "Opsæt indstillinger for at aktivere DHCP-server",
|
||||
"original_response": "Oprindeligt svar",
|
||||
"click_to_view_queries": "Klik for at se forespørgsler",
|
||||
"port_53_faq_link": "Port 53 optages ofte af \"DNSStubListener\" eller \"systemd-resolved\" tjenester. Læs <0>denne instruktion</0> om, hvordan du løser dette.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home vil afbryde alle DNS-forespørgsler fra denne klient.",
|
||||
"client_not_in_allowed_clients": "Klienten er ikke tilladt, fordi den ikke er på listen \"Tilladte klienter\".",
|
||||
"experimental": "Eksperimentel"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
"load_balancing_desc": "Einen Server nach dem anderen abfragen. AdGuard Home verwendet den gewichteten Zufallsalgorithmus, um den Server so auszuwählen, dass der schnellste Server häufiger verwendet wird.",
|
||||
"bootstrap_dns": "Bootstrap DNS-Server starten",
|
||||
"bootstrap_dns_desc": "Bootstrap-DNS-Server werden verwendet, um IP-Adressen der DoH/DoT-Resolver aufzulösen, die Sie als Upstreams angeben.",
|
||||
"local_ptr_title": "Eigene DNS-Server",
|
||||
"local_ptr_desc": "Die DNS-Server, die AdGuard Home für lokale PTR-Abfragen verwendet. Diese Server werden verwendet, um die Hostnamen von Clients mit privaten IP-Adressen, z. B. „192.168.12.34“, mithilfe von rDNS aufzulösen. Wenn nicht festgelegt, verwendet AdGuard Home die Standard-DNS-Resolver Ihres Betriebssystems.",
|
||||
"local_ptr_placeholder": "Eine Serveradresse pro Zeile eingeben",
|
||||
"resolve_clients_title": "Hostnamenauflösung der Clients aktivieren",
|
||||
"resolve_clients_desc": "Wenn aktiviert, versucht AdGuard Home, die Hostnamen der Clients automatisch aus deren IP-Adressen aufzulösen, indem er eine PTR-Abfrage an einen entsprechenden Auflösungsdienst (privater DNS-Server für lokale Clients, Upstream-Server für Clients mit öffentlicher IP) sendet.",
|
||||
"check_dhcp_servers": "Auf DHCP-Server prüfen",
|
||||
"save_config": "Konfiguration speichern",
|
||||
"enabled_dhcp": "DHCP-Server aktiviert",
|
||||
@@ -23,7 +28,7 @@
|
||||
"dhcp_leases": "DHCP-Leasingverträge",
|
||||
"dhcp_static_leases": "DHCP statische Leases",
|
||||
"dhcp_leases_not_found": "Keine DHCP-Leasingverträge gefunden\n",
|
||||
"dhcp_config_saved": "Gespeicherte DHCP-Server-Konfiguration",
|
||||
"dhcp_config_saved": "DHCP-Konfiguration erfolgreich gespeichert",
|
||||
"dhcp_ipv4_settings": "DHCP-IPv4-Einstellungen",
|
||||
"dhcp_ipv6_settings": "DHCP-IPv6-Einstellungen",
|
||||
"form_error_required": "Pflichtfeld",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Ungültiges MAC-Format",
|
||||
"form_error_client_id_format": "Ungültiges Client-ID-Format",
|
||||
"form_error_server_name": "Ungültiger Servername",
|
||||
"form_error_subnet": "Subnetz „{{cidr}}” enthält nicht die IP-Adresse „{{ip}}”",
|
||||
"form_error_positive": "Muss größer als 0 sein.",
|
||||
"form_error_negative": "Muss gleich oder größer als 0 (Null) sein",
|
||||
"range_end_error": "Muss größer als der Bereichsbeginn sein",
|
||||
@@ -52,7 +58,7 @@
|
||||
"dhcp_warning": "Wenn Sie den DHCP-Server trotzdem aktivieren möchten, stellen Sie sicher, dass sich in Ihrem Netzwerk kein anderer aktiver DHCP-Server befindet. Andernfalls kann es bei angeschlossenen Geräten zu einem Ausfall des Internets kommen!",
|
||||
"dhcp_error": "Es konnte nicht ermittelt werden, ob es einen anderen DHCP-Server im Netzwerk gibt.",
|
||||
"dhcp_static_ip_error": "Um den DHCP-Server nutzen zu können, muss eine statische IP-Adresse festgelegt werden. Es konnte nicht ermittelt werden, ob diese Netzwerkschnittstelle mit statischer IP-Adresse konfiguriert ist. Bitte legen Sie eine statische IP-Adresse manuell fest.",
|
||||
"dhcp_dynamic_ip_found": "Ihr System verwendet die dynamische Konfiguration der IP-Adresse für die Schnittstelle <0>{{interfaceName}}</0>. Um den DHCP-Server nutzen zu können, muss eine statische IP-Adresse festgelegt werden. Ihre aktuelle IP-Adresse ist <0>{{ipAddress}}</0>. Diese IP-Adresse wird automatisch als statisch festgelegt, sobald Sie auf die Schaltfläche „DHCP aktivieren” klicken.",
|
||||
"dhcp_dynamic_ip_found": "Ihr System verwendet die dynamische Konfiguration der IP-Adresse für die Schnittstelle <0>{{interfaceName}}</0>. Um den DHCP-Server nutzen zu können, muss eine statische IP-Adresse festgelegt werden. Ihre aktuelle IP-Adresse ist <0>{{ipAddress}}</0>. Diese IP-Adresse wird automatisch als statisch festgelegt, sobald Sie auf die Schaltfläche „DHCP-Server aktivieren” klicken.",
|
||||
"dhcp_lease_added": "Statischer Lease „{{key}}” erfolgreich hinzugefügt",
|
||||
"dhcp_lease_deleted": "Statischer Lease „{{key}}” erfolgreich entfernt",
|
||||
"dhcp_new_static_lease": "Neuer statischer Lease",
|
||||
@@ -108,7 +114,7 @@
|
||||
"number_of_dns_query_days": "Anzahl der in den letzten {{count}} Tagen verarbeiteten DNS-Anfragen",
|
||||
"number_of_dns_query_days_plural": "Anzahl der DNS-Abfragen, die in den letzten {{count}} Tagen verarbeitet wurden",
|
||||
"number_of_dns_query_24_hours": "Anzahl der in den letzten 24 Stunden durchgeführten DNS-Anfragen",
|
||||
"number_of_dns_query_blocked_24_hours": "Anzahl der durch Werbefilter und Host-Blocklisten geblockten DNS-Anfragen",
|
||||
"number_of_dns_query_blocked_24_hours": "Anzahl der durch Werbefilter und Host-Sperrlisten abgelehnte DNS-Anfragen",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Anzahl der durch das AdGuard-Modul „Internetsicherheit” gesperrten DNS-Anfragen",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Anzahl der gesperrten Webseiten mit jugendgefährdenden Inhalten",
|
||||
"enforced_save_search": "SafeSearch erzwungen",
|
||||
@@ -122,7 +128,7 @@
|
||||
"use_adguard_parental": "AdGuard Webservice für Kindersicherung verwenden",
|
||||
"use_adguard_parental_hint": "AdGuard Home wird prüfen, ob die Domain jugendgefährdende Inhalte enthält. Zum Schutz Ihrer Privatsphäre wird die selbe API wie für den Webservice für Internetsicherheit verwendet.",
|
||||
"enforce_safe_search": "SafeSearch erzwingen",
|
||||
"enforce_save_search_hint": "AdGuard kann SafeSearch für folgende Suchmaschinen erzwingen: Google, Youtube, Bing und Yandex.",
|
||||
"enforce_save_search_hint": "AdGuard kann SafeSearch für folgende Suchmaschinen erzwingen: Google, YouTube, Bing und Yandex.",
|
||||
"no_servers_specified": "Keine Server festgelegt",
|
||||
"general_settings": "Allgemeine Einstellungen",
|
||||
"dns_settings": "DNS-Einstellungen",
|
||||
@@ -172,8 +178,8 @@
|
||||
"edit_allowlist": "Freigabeliste bearbeiten",
|
||||
"choose_blocklist": "Sperrliste wählen",
|
||||
"choose_allowlist": "Freigabeliste wählen",
|
||||
"enter_valid_blocklist": "Gültige Webadresse der Sperrliste eingeben.",
|
||||
"enter_valid_allowlist": "Gültige Webadresse der Positivliste eingeben.",
|
||||
"enter_valid_blocklist": "Gültige Webadresse zur Sperrliste eingeben.",
|
||||
"enter_valid_allowlist": "Gültige Webadresse zur Freigabeliste eingeben.",
|
||||
"form_error_url_format": "Ungültiges URL-Format",
|
||||
"form_error_url_or_path_format": "Ungültige URL oder absoluter Pfad der Liste",
|
||||
"custom_filter_rules": "Benutzerdefinierte Filterregeln",
|
||||
@@ -195,7 +201,7 @@
|
||||
"all_lists_up_to_date_toast": "Alle Listen sind bereits auf dem neuesten Stand",
|
||||
"updated_upstream_dns_toast": "Upstream-DNS-Server wurden aktualisiert",
|
||||
"dns_test_ok_toast": "Angegebene DNS-Server arbeiten ordnungsgemäß",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": konnte nicht verwendet werden, bitte überprüfen Sie die korrekte Schreibweise",
|
||||
"dns_test_not_ok_toast": "Server „{{key}}“: konnte nicht verwendet werden, bitte überprüfen Sie die korrekte Schreibweise",
|
||||
"unblock": "Entsperren",
|
||||
"block": "Sperren",
|
||||
"disallow_this_client": "Diesen Client sperren",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Begrenzungswert",
|
||||
"edns_enable": "EDNS Client Subnetz aktivieren",
|
||||
"edns_cs_desc": "Wenn aktiviert, sendet AdGuard Home die Subnetze der Clients an die DNS-Server.",
|
||||
"rate_limit_desc": "Die Anzahl der Anfragen pro Sekunde, die ein einzelner Client stellen darf (0: unbegrenzt)",
|
||||
"rate_limit_desc": "Die Anzahl der Anfragen pro Sekunde, die ein einzelner Client stellen darf. Das Setzen auf 0 bedeutet keine Begrenzung.",
|
||||
"blocking_ipv4_desc": "IP-Adresse, die für eine gesperrte A-Anfrage zurückgegeben werden soll",
|
||||
"blocking_ipv6_desc": "IP-Adresse, die für eine gesperrte AAAA-Anfrage zurückgegeben werden soll",
|
||||
"blocking_mode_default": "Standard: Mit Null IP Adress (0.0.0.0 for A; :: for AAAA) antworten, wenn sie durch eine Regel im Adblock-Stil gesperrt sind; mit der in der Regel angegebenen IP-Adresse antworten, wenn sie durch eine Regel im /etc/hosts-Stil gesperrt wurde",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Diese Einrichtung deckt automatisch alle an Ihren Heimrouter angeschlossenen Geräte ab, und Sie müssen nicht jedes einzelne davon manuell konfigurieren.",
|
||||
"install_devices_address": "Der AdGuard Home DNS-Server belauscht die folgenden Adressen",
|
||||
"install_devices_router_list_1": "Öffnen Sie die Einstellungen für Ihren Router. In der Regel können Sie von Ihrem Browser aus über eine URL (wie http://192.168.0.1/ oder http://192.168.1.1/) darauf zugreifen. Möglicherweise werden Sie aufgefordert, das Passwort einzugeben. Wenn Sie sich nicht mehr daran erinnern, können Sie das Passwort oft durch Drücken einer Taste auf dem Router selbst zurücksetzen. Einige Router benötigen eine bestimmte Anwendung, die in diesem Fall bereits auf Ihrem Computer/Telefon installiert sein sollte.",
|
||||
"install_devices_router_list_2": "DHCP/DNS-Einstellungen suchen. Suchen Sie nach den DNS-Buchstaben neben einem Feld, das zwei oder drei Zahlensätze erlaubt, die jeweils in vier Gruppen von ein bis drei Ziffern unterteilt sind.",
|
||||
"install_devices_router_list_1": "Öffnen Sie die Einstellungen für Ihren Router. In der Regel können Sie über eine URL (z. B. http://192.168.0.1/ oder http://192.168.1.1) von Ihrem Browser aus darauf zugreifen. Möglicherweise werden Sie aufgefordert, ein Passwort einzugeben. Wenn Sie sich nicht mehr daran erinnern, können Sie das Passwort oft durch Drücken einer Taste am Router selbst zurücksetzen, aber seien Sie sich bewusst, dass Sie bei dieser Vorgehensweise wahrscheinlich die gesamte Routerkonfiguration verlieren. Wenn für die Einrichtung Ihres Routers eine App erforderlich ist, installieren Sie bitte die App auf Ihrem mobilen Endgerät oder PC und verwenden Sie sie für den Zugriff auf die Einstellungen des Routers.",
|
||||
"install_devices_router_list_2": "Wechseln Sie zu den DHCP/DNS-Einstellungen. Suchen sie dort nach einem Eintrag „DNS“ und einem Bereich, welches zwei oder drei Zahlengruppen zulässt, die jeweils in vier Blöcke von ein bis drei Ziffern unterteilt sind.",
|
||||
"install_devices_router_list_3": "Geben Sie dort Ihre AdGuard Home Server-Adressen ein.",
|
||||
"install_devices_router_list_4": "Sie können auf einigen Routern keine beliebigen DNS-Server festlegen. In diesem Fall kann es hilfreich sein, dass Sie AdGuard Home als <0>DHCP-Server</0> festlegen. Andernfalls sollten Sie nach einer Bedienungsanleitung zum Anpassen des DNS-Server für Ihr Router-Modell suchen.",
|
||||
"install_devices_router_list_4": "Bei einigen Routertypen kann kein eigener DNS-Server eingerichtet werden. In diesem Fall kann es helfen, AdGuard Home als <0>DHCP-Server</0> einzurichten. Andernfalls sollten Sie im Handbuch des Routers nachsehen, wie Sie DNS-Server auf Ihrem konkreten Router-Modell anpassen können.",
|
||||
"install_devices_windows_list_1": "Öffnen Sie die Systemsteuerung über das Startmenü oder die Windows-Suche.",
|
||||
"install_devices_windows_list_2": "Öffnen Sie die Kategorie „Netzwerk und Internet” und dann „Netzwerk- und Freigabecenter”.",
|
||||
"install_devices_windows_list_3": "Suchen Sie auf der linken Seite des Bildschirms nach „Adaptereinstellungen ändern” und klicken Sie darauf.",
|
||||
@@ -334,7 +340,7 @@
|
||||
"install_saved": "Erfolgreich gespeichert",
|
||||
"encryption_title": "Verschlüsselung",
|
||||
"encryption_desc": "Verschlüsselungsunterstützung (HTTPS/TLS) für DNS- und Admin-Weboberfläche",
|
||||
"encryption_config_saved": "Verschlüsselungseinstellungen wurden gespeichert",
|
||||
"encryption_config_saved": "Verschlüsselungskonfiguration gespeichert",
|
||||
"encryption_server": "Servername",
|
||||
"encryption_server_enter": "Domain-Namen eingeben",
|
||||
"encryption_server_desc": "Um HTTPS verwenden zu können, müssen Sie den Servernamen eingeben, der zu Ihrem SSL-Zertifikat passt.",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP-Adresse",
|
||||
"client_identifier_desc": "Clients können durch die IP-Adresse oder MAC-Adresse identifiziert werden. Bitte beachten Sie, dass die Verwendung der MAC-Adresse als Identifikator nur möglich ist, wenn AdGuard Home gleichzeitig als <0>DHCP-Server</0> eingerichtet ist.",
|
||||
"form_enter_ip": "IP-Adresse eingeben",
|
||||
"form_enter_subnet_ip": "IP-Adresse zum Subnetz „{{cidr}}” hinzufügen",
|
||||
"form_enter_mac": "MAC-Adresse eingeben",
|
||||
"form_enter_id": "Kennung eingeben",
|
||||
"form_add_id": "Kennung hinzufügen",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Nicht zugelassene Clients",
|
||||
"access_disallowed_desc": "Eine Liste von CIDR- oder IP-Adressen. Wenn konfiguriert, löscht AdGuard Home Anfragen von diesen IP-Adressen.",
|
||||
"access_blocked_title": "Nicht zugelassene Domains",
|
||||
"access_blocked_desc": "Verwechseln Sie dies nicht mit Filtern. AdGuard Home löscht DNS-Abfragen mit diesen Domänen während der Abfrage. Hier können Sie die genauen Domain-Namen, Wildcards und URL-Filter-Regeln angeben, z.B. 'beispiel.org', '*.beispiel.org' oder '|||beispiel.org^'.",
|
||||
"access_blocked_desc": "Verwechseln Sie dies nicht mit Filtern. AdGuard Home löscht DNS-Abfragen mit diesen Domänen während der Abfrage. Hier können Sie die genauen Domain-Namen, Wildcards und URL-Filter-Regeln angeben, z.B. 'beispiel.org', '*.beispiel.org' oder '||beispiel.org^'.",
|
||||
"access_settings_saved": "Zugriffseinstellungen erfolgreich gespeichert",
|
||||
"updates_checked": "Erfolgreich auf Aktualisierungen geprüft",
|
||||
"updates_version_equal": "AdGuard Home ist aktuell",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "IPv6 deaktivieren",
|
||||
"disable_ipv6_desc": "Wenn diese Funktion aktiviert ist, werden alle DNS-Abfragen für IPv6-Adressen (Typ AAAA) verworfen.",
|
||||
"fastest_addr": "Schnellste IP-Adresse",
|
||||
"fastest_addr_desc": "Abfrage aller DNS-Server und Rückgabe der schnellsten IP-Adresse unter allen Antworten",
|
||||
"fastest_addr_desc": "Fragen Sie alle DNS-Server ab und geben Sie die schnellste IP-Adresse unter allen Antworten zurück. Dies verlangsamt DNS-Abfragen, da AdGuard Home auf Antworten von allen DNS-Servern warten muss, verbessert jedoch die Gesamtkonnektivität.",
|
||||
"autofix_warning_text": "Wenn Sie auf „Beheben” klicken, konfiguriert AdGuardHome Ihr System für die Verwendung des AdGuardHome-DNS-Servers.",
|
||||
"autofix_warning_list": "Es werden folgende Aufgaben ausgeführt: <0>Deaktivieren des DNSStubListener-Systems</0> <0>Festlegen der DNS-Server-Adresse auf 127.0.0.1</0> <0>Ersetzen des symbolischen Linkziels von /etc/resolv.conf auf /run/systemd/resolve/resolv.conf</0> <0>Anhalten des DNSStubListener (systemseitig aufgelöster Dienst wird nachladen)</0>",
|
||||
"autofix_warning_result": "Als Folge daraus werden alle DNS-Anforderungen von Ihrem System standardmäßig von AdGuardHome verarbeitet.",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "Feste IP-Adresse festlegen",
|
||||
"install_static_ok": "Gute Nachrichten! Die feste IP-Adresse ist bereits konfiguriert",
|
||||
"install_static_error": "AdGuard Home kann nicht automatisch für diese Netzwerkschnittstelle konfiguriert werden. Bitte suchen Sie nach einer Anleitung, wie Sie dies manuell durchführen können.",
|
||||
"install_static_configure": "Wir haben festgestellt, dass eine dynamische IP-Adresse verwendet wird — <0>{{ip}}</0>. Möchten Sie diese als feste Adresse verwenden?",
|
||||
"install_static_configure": "AdGuard Home hat festgestellt, dass die dynamische IP-Adresse <0>{{ip}}</0> verwendet wird. Möchten Sie, dass es als statische Adresse festgelegt wird?",
|
||||
"confirm_static_ip": "AdGuard Home konfiguriert {{ip}} als Ihre feste IP-Adresse. Möchten Sie fortfahren?",
|
||||
"list_updated": "{{count}} Liste aktualisiert",
|
||||
"list_updated_plural": "{{count}} Listen aktualisiert",
|
||||
@@ -592,6 +599,6 @@
|
||||
"click_to_view_queries": "Anklicken, um Abfragen anzuzeigen",
|
||||
"port_53_faq_link": "Port 53 wird oft von Diensten wie „DNSStubListener” oder „systemresolved” belegt. Bitte lesen Sie <0>diese Anweisung</0>, wie dies behoben werden kann.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home wird alle DNS-Abfragen von diesem Client verwerfen.",
|
||||
"client_not_in_allowed_clients": "Diese Anwendung ist nicht erlaubt, weil diese nicht in der Liste „Erlaubte Anwendungen” aufgeführt ist.",
|
||||
"client_not_in_allowed_clients": "Dieser Client ist nicht zugelassen, da dieser nicht in der Liste „Erlaubte Clients” aufgeführt ist.",
|
||||
"experimental": "Experimentell"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
{
|
||||
"client_settings": "Client settings",
|
||||
"example_upstream_reserved": "You can specify DNS upstream <0>for the specific domain(s)</0>",
|
||||
"example_upstream_comment": "You can specify the comment",
|
||||
"upstream_parallel": "Use parallel requests to speed up resolving by simultaneously querying all upstream servers",
|
||||
"example_upstream_reserved": "You can specify a DNS upstream <0>for the specific domain(s)</0>",
|
||||
"example_upstream_comment": "You can specify a comment",
|
||||
"upstream_parallel": "Use parallel queries to speed up resolving by querying all upstream servers simultaneously.",
|
||||
"parallel_requests": "Parallel requests",
|
||||
"load_balancing": "Load-balancing",
|
||||
"load_balancing_desc": "Query one server at a time. AdGuard Home will use the weighted random algorithm to pick the server so that the fastest server will be used more often.",
|
||||
"load_balancing_desc": "Query one upstream server at a time. AdGuard Home will use the weighted random algorithm to pick the server so that the fastest server is used more often.",
|
||||
"bootstrap_dns": "Bootstrap DNS servers",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS servers are used to resolve IP addresses of the DoH/DoT resolvers you specify as upstreams.",
|
||||
"local_ptr_title": "Private DNS servers",
|
||||
"local_ptr_desc": "The DNS servers that AdGuard Home uses for local PTR queries. These servers are used to resolve the hostnames of clients with private IP addresses, for example \"192.168.12.34\", using rDNS. If not set, AdGuard Home uses the default DNS resolvers of your OS.",
|
||||
"local_ptr_placeholder": "Enter one server address per line",
|
||||
"resolve_clients_title": "Enable reverse resolving of clients' IP addresses",
|
||||
"resolve_clients_desc": "If enabled, AdGuard Home will attempt to reversely resolve clients' IP addresses into their hostnames by sending PTR queries to corresponding resolvers (private DNS servers for local clients, upstream server for clients with public IP addresses).",
|
||||
"check_dhcp_servers": "Check for DHCP servers",
|
||||
"save_config": "Save config",
|
||||
"save_config": "Save configuration",
|
||||
"enabled_dhcp": "DHCP server enabled",
|
||||
"disabled_dhcp": "DHCP server disabled",
|
||||
"unavailable_dhcp": "DHCP is unavailable",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "If your router does not provide DHCP settings, you can use AdGuard's own built-in DHCP server.",
|
||||
"dhcp_enable": "Enable DHCP server",
|
||||
"dhcp_disable": "Disable DHCP server",
|
||||
"dhcp_not_found": "It is safe to enable the built-in DHCP server - we didn't find any active DHCP servers on the network. However, we encourage you to re-check it manually as our automatic test currently doesn't give 100% guarantee.",
|
||||
"dhcp_not_found": "It is safe to enable the built-in DHCP server because AdGuard Home didn't find any active DHCP servers on the network. However, you should re-check that manually as the automatic probing doesn't currently provide a 100% guarantee.",
|
||||
"dhcp_found": "An active DHCP server is found on the network. It is not safe to enable the built-in DHCP server.",
|
||||
"dhcp_leases": "DHCP leases",
|
||||
"dhcp_static_leases": "DHCP static leases",
|
||||
"dhcp_leases_not_found": "No DHCP leases found",
|
||||
"dhcp_config_saved": "DHCP config successfully saved",
|
||||
"dhcp_config_saved": "DHCP configuration successfully saved",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4 Settings",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 Settings",
|
||||
"form_error_required": "Required field",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Invalid MAC format",
|
||||
"form_error_client_id_format": "Invalid client ID format",
|
||||
"form_error_server_name": "Invalid server name",
|
||||
"form_error_subnet": "Subnet \"{{cidr}}\" does not contain the IP address \"{{ip}}\"",
|
||||
"form_error_positive": "Must be greater than 0",
|
||||
"form_error_negative": "Must be equal to 0 or greater",
|
||||
"range_end_error": "Must be greater than range start",
|
||||
@@ -49,16 +55,16 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Hostname",
|
||||
"dhcp_table_expires": "Expires",
|
||||
"dhcp_warning": "If you want to enable DHCP server anyway, make sure that there is no other active DHCP server in your network. Otherwise, it can break the Internet for connected devices!",
|
||||
"dhcp_error": "We could not determine whether there is another DHCP server in the network.",
|
||||
"dhcp_static_ip_error": "In order to use DHCP server a static IP address must be set. We failed to determine if this network interface is configured using static IP address. Please set a static IP address manually.",
|
||||
"dhcp_dynamic_ip_found": "Your system uses dynamic IP address configuration for interface <0>{{interfaceName}}</0>. In order to use DHCP server a static IP address must be set. Your current IP address is <0>{{ipAddress}}</0>. We will automatically set this IP address as static if you press Enable DHCP button.",
|
||||
"dhcp_warning": "If you want to enable DHCP server anyway, make sure that there is no other active DHCP server in your network, as this may break the Internet connectivity for devices on the network!",
|
||||
"dhcp_error": "AdGuard Home could not determine if there is another active DHCP server on the network.",
|
||||
"dhcp_static_ip_error": "In order to use DHCP server a static IP address must be set. AdGuard Home failed to determine if this network interface is configured using a static IP address. Please set a static IP address manually.",
|
||||
"dhcp_dynamic_ip_found": "Your system uses dynamic IP address configuration for interface <0>{{interfaceName}}</0>. In order to use DHCP server, a static IP address must be set. Your current IP address is <0>{{ipAddress}}</0>. AdGuard Home will automatically set this IP address as static if you press the \"Enable DHCP server\" button.",
|
||||
"dhcp_lease_added": "Static lease \"{{key}}\" successfully added",
|
||||
"dhcp_lease_deleted": "Static lease \"{{key}}\" successfully deleted",
|
||||
"dhcp_new_static_lease": "New static lease",
|
||||
"dhcp_static_leases_not_found": "No DHCP static leases found",
|
||||
"dhcp_add_static_lease": "Add static lease",
|
||||
"dhcp_reset": "Are you sure you want to reset DHCP config?",
|
||||
"dhcp_reset": "Are you sure you want to reset the DHCP configuration?",
|
||||
"country": "Country",
|
||||
"city": "City",
|
||||
"delete_confirm": "Are you sure you want to delete \"{{key}}\"?",
|
||||
@@ -105,14 +111,14 @@
|
||||
"top_clients": "Top clients",
|
||||
"no_clients_found": "No clients found",
|
||||
"general_statistics": "General statistics",
|
||||
"number_of_dns_query_days": "A number of DNS queries processed for the last {{count}} day",
|
||||
"number_of_dns_query_days_plural": "A number of DNS queries processed for the last {{count}} days",
|
||||
"number_of_dns_query_24_hours": "A number of DNS queries processed for the last 24 hours",
|
||||
"number_of_dns_query_blocked_24_hours": "A number of DNS requests blocked by adblock filters and hosts blocklists",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "A number of DNS requests blocked by the AdGuard browsing security module",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "A number of adult websites blocked",
|
||||
"number_of_dns_query_days": "The number of DNS queries processed for the last {{count}} day",
|
||||
"number_of_dns_query_days_plural": "The number of DNS queries processed for the last {{count}} days",
|
||||
"number_of_dns_query_24_hours": "The number of DNS queries processed for the last 24 hours",
|
||||
"number_of_dns_query_blocked_24_hours": "The number of DNS requests blocked by adblock filters and hosts blocklists",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "The number of DNS requests blocked by the AdGuard browsing security module",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "The number of adult websites blocked",
|
||||
"enforced_save_search": "Enforced safe search",
|
||||
"number_of_dns_query_to_safe_search": "A number of DNS requests to search engines for which Safe Search was enforced",
|
||||
"number_of_dns_query_to_safe_search": "The number of DNS requests to search engines for which Safe Search was enforced",
|
||||
"average_processing_time": "Average processing time",
|
||||
"average_processing_time_hint": "Average time in milliseconds on processing a DNS request",
|
||||
"block_domain_use_filters_and_hosts": "Block domains using filters and hosts files",
|
||||
@@ -122,7 +128,7 @@
|
||||
"use_adguard_parental": "Use AdGuard parental control web service",
|
||||
"use_adguard_parental_hint": "AdGuard Home will check if domain contains adult materials. It uses the same privacy-friendly API as the browsing security web service.",
|
||||
"enforce_safe_search": "Enforce safe search",
|
||||
"enforce_save_search_hint": "AdGuard Home can enforce safe search in the following search engines: Google, Youtube, Bing, DuckDuckGo, Yandex, Pixabay.",
|
||||
"enforce_save_search_hint": "AdGuard Home can enforce safe search in the following search engines: Google, YouTube, Bing, DuckDuckGo, Yandex, Pixabay.",
|
||||
"no_servers_specified": "No servers specified",
|
||||
"general_settings": "General settings",
|
||||
"dns_settings": "DNS settings",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "Encryption settings",
|
||||
"dhcp_settings": "DHCP settings",
|
||||
"upstream_dns": "Upstream DNS servers",
|
||||
"upstream_dns_help": "Enter servers addresses one per line. <a>Learn more</a> about configuring upstream DNS servers.",
|
||||
"upstream_dns_help": "Enter one server address per line. <a>Learn more</a> about configuring upstream DNS servers.",
|
||||
"upstream_dns_configured_in_file": "Configured in {{path}}",
|
||||
"test_upstream_btn": "Test upstreams",
|
||||
"upstreams": "Upstreams",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Rate limit",
|
||||
"edns_enable": "Enable EDNS Client Subnet",
|
||||
"edns_cs_desc": "If enabled, AdGuard Home will be sending clients' subnets to the DNS servers.",
|
||||
"rate_limit_desc": "The number of requests per second that a single client is allowed to make (setting it to 0 means unlimited)",
|
||||
"rate_limit_desc": "The number of requests per second allowed per client. Setting it to 0 means no limit.",
|
||||
"blocking_ipv4_desc": "IP address to be returned for a blocked A request",
|
||||
"blocking_ipv6_desc": "IP address to be returned for a blocked AAAA request",
|
||||
"blocking_mode_default": "Default: Respond with zero IP address (0.0.0.0 for A; :: for AAAA) when blocked by Adblock-style rule; respond with the IP address specified in the rule when blocked by /etc/hosts-style rule",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Listen interface",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Your AdGuard Home admin web interface will be available on the following addresses:",
|
||||
"form_error_port": "Enter valid port value",
|
||||
"form_error_port": "Enter valid port number",
|
||||
"install_settings_dns": "DNS server",
|
||||
"install_settings_dns_desc": "You will need to configure your devices or router to use the DNS server on the following addresses:",
|
||||
"install_settings_all_interfaces": "All interfaces",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "This setup will automatically cover all the devices connected to your home router and you will not need to configure each of them manually.",
|
||||
"install_devices_address": "AdGuard Home DNS server is listening on the following addresses",
|
||||
"install_devices_router_list_1": "Open the preferences for your router. Usually, you can access it from your browser via a URL (like http://192.168.0.1/ or http://192.168.1.1/). You may be asked to enter the password. If you don't remember it, you can often reset the password by pressing a button on the router itself. Some routers require a specific application, which in that case should be already installed on your computer/phone.",
|
||||
"install_devices_router_list_1": "Open the preferences for your router. Usually, you can access it from your browser via a URL, such as http://192.168.0.1/ or http://192.168.1.1/. You may be prompted to enter a password. If you don't remember it, you can often reset the password by pressing a button on the router itself, but be aware that if this procedure is chosen, you will probably lose the entire router configuration. If your router requires an app to set it up, please install the app on your phone or PC and use it to access the router’s settings.",
|
||||
"install_devices_router_list_2": "Find the DHCP/DNS settings. Look for the DNS letters next to a field which allows two or three sets of numbers, each broken into four groups of one to three digits.",
|
||||
"install_devices_router_list_3": "Enter your AdGuard Home server addresses there.",
|
||||
"install_devices_router_list_4": "You can't set a custom DNS server on some types of routers. In this case it may help if you set up AdGuard Home as a <0>DHCP server</0>. Otherwise, you should search for the manual on how to customize DNS servers for your particular router model.",
|
||||
"install_devices_router_list_4": "On some router types, a custom DNS server cannot be set up. In that case, setting up AdGuard Home as a <0>DHCP server</0> may help. Otherwise, you should check the router manual on how to customize DNS servers on your specific router model.",
|
||||
"install_devices_windows_list_1": "Open Control Panel through Start menu or Windows search.",
|
||||
"install_devices_windows_list_2": "Go to Network and Internet category and then to Network and Sharing Center.",
|
||||
"install_devices_windows_list_3": "On the left side of the screen find Change adapter settings and click on it.",
|
||||
@@ -334,7 +340,7 @@
|
||||
"install_saved": "Saved successfully",
|
||||
"encryption_title": "Encryption",
|
||||
"encryption_desc": "Encryption (HTTPS/TLS) support for both DNS and admin web interface",
|
||||
"encryption_config_saved": "Encryption config saved",
|
||||
"encryption_config_saved": "Encryption configuration saved",
|
||||
"encryption_server": "Server name",
|
||||
"encryption_server_enter": "Enter your domain name",
|
||||
"encryption_server_desc": "In order to use HTTPS, you need to enter the server name that matches your SSL certificate or wildcard certificate. If the field is not set, it will accept TLS connections for any domain.",
|
||||
@@ -365,13 +371,13 @@
|
||||
"encryption_reset": "Are you sure you want to reset encryption settings?",
|
||||
"topline_expiring_certificate": "Your SSL certificate is about to expire. Update <0>Encryption settings</0>.",
|
||||
"topline_expired_certificate": "Your SSL certificate is expired. Update <0>Encryption settings</0>.",
|
||||
"form_error_port_range": "Enter port value in the range of 80-65535",
|
||||
"form_error_port_range": "Enter port number in the range of 80-65535",
|
||||
"form_error_port_unsafe": "This is an unsafe port",
|
||||
"form_error_equal": "Shouldn't be equal",
|
||||
"form_error_equal": "Must not be equal",
|
||||
"form_error_password": "Password mismatched",
|
||||
"reset_settings": "Reset settings",
|
||||
"update_announcement": "AdGuard Home {{version}} is now available! <0>Click here</0> for more info.",
|
||||
"setup_guide": "Setup guide",
|
||||
"setup_guide": "Setup Guide",
|
||||
"dns_addresses": "DNS addresses",
|
||||
"dns_start": "DNS server is starting up",
|
||||
"dns_status_error": "Error checking the DNS server status",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP address",
|
||||
"client_identifier_desc": "Clients can be identified by the IP address, CIDR, MAC address or a special client ID (can be used for DoT/DoH/DoQ). <0>Here</0> you can learn more about how to identify clients.",
|
||||
"form_enter_ip": "Enter IP",
|
||||
"form_enter_subnet_ip": "Enter an IP address in the subnet \"{{cidr}}\"",
|
||||
"form_enter_mac": "Enter MAC",
|
||||
"form_enter_id": "Enter identifier",
|
||||
"form_add_id": "Add identifier",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Disallowed clients",
|
||||
"access_disallowed_desc": "A list of CIDR or IP addresses. If configured, AdGuard Home will drop requests from these IP addresses.",
|
||||
"access_blocked_title": "Disallowed domains",
|
||||
"access_blocked_desc": "Don't confuse this with filters. AdGuard Home will drop DNS queries with these domains in query's question. Here you can specify the exact domain names, wildcards and urlfilter-rules, e.g. 'example.org', '*.example.org' or '||example.org^'.",
|
||||
"access_blocked_desc": "Don't confuse this with filters. AdGuard Home will drop DNS queries with these domains in queries' questions. Here you can specify the exact domain names, wildcards and URL filter rules, e.g. \"example.org\", \"*.example.org\" or \"||example.org^\".",
|
||||
"access_settings_saved": "Access settings successfully saved",
|
||||
"updates_checked": "Updates successfully checked",
|
||||
"updates_version_equal": "AdGuard Home is up-to-date",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "Disable IPv6",
|
||||
"disable_ipv6_desc": "If this feature is enabled, all DNS queries for IPv6 addresses (type AAAA) will be dropped.",
|
||||
"fastest_addr": "Fastest IP address",
|
||||
"fastest_addr_desc": "Query all DNS servers and return the fastest IP address among all responses. This will slow down the DNS queries as we have to wait for responses from all DNS servers, but improve the overall connectivity.",
|
||||
"fastest_addr_desc": "Query all DNS servers and return the fastest IP address among all responses. This slows down DNS queries as AdGuard Home has to wait for responses from all DNS servers, but improves the overall connectivity.",
|
||||
"autofix_warning_text": "If you click \"Fix\", AdGuard Home will configure your system to use AdGuard Home DNS server.",
|
||||
"autofix_warning_list": "It will perform these tasks: <0>Deactivate system DNSStubListener</0> <0>Set DNS server address to 127.0.0.1</0> <0>Replace symbolic link target of /etc/resolv.conf with /run/systemd/resolve/resolv.conf</0> <0>Stop DNSStubListener (reload systemd-resolved service)</0>",
|
||||
"autofix_warning_result": "As a result all DNS requests from your system will be processed by AdGuard Home by default.",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "Set a static IP address",
|
||||
"install_static_ok": "Good news! The static IP address is already configured",
|
||||
"install_static_error": "AdGuard Home cannot configure it automatically for this network interface. Please look for an instruction on how to do this manually.",
|
||||
"install_static_configure": "We have detected that a dynamic IP address is used — <0>{{ip}}</0>. Do you want to use it as your static address?",
|
||||
"install_static_configure": "AdGuard Home has detected that the dynamic IP address <0>{{ip}}</0> is used. Do you want it to be set as your static address?",
|
||||
"confirm_static_ip": "AdGuard Home will configure {{ip}} to be your static IP address. Do you want to proceed?",
|
||||
"list_updated": "{{count}} list updated",
|
||||
"list_updated_plural": "{{count}} lists updated",
|
||||
@@ -587,11 +594,11 @@
|
||||
"filter_category_security_desc": "Lists that specialize on blocking malware, phishing or scam domains",
|
||||
"filter_category_regional_desc": "Lists that focus on regional ads and tracking servers",
|
||||
"filter_category_other_desc": "Other blocklists",
|
||||
"setup_config_to_enable_dhcp_server": "Setup config to enable DHCP server",
|
||||
"setup_config_to_enable_dhcp_server": "Setup configuration to enable DHCP server",
|
||||
"original_response": "Original response",
|
||||
"click_to_view_queries": "Click to view queries",
|
||||
"port_53_faq_link": "Port 53 is often occupied by \"DNSStubListener\" or \"systemd-resolved\" services. Please read <0>this instruction</0> on how to resolve this.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home will be dropping all DNS queries from this client.",
|
||||
"client_not_in_allowed_clients": "The client is not allowed because it is not in the \"Allowed clients\" list.",
|
||||
"experimental": "Experimental"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
"client_settings": "Configuración de clientes",
|
||||
"example_upstream_reserved": "puedes especificar el DNS de subida <0>para un dominio específico</0>",
|
||||
"example_upstream_comment": "puedes especificar el comentario",
|
||||
"upstream_parallel": "Usar peticiones paralelas para acelerar la resolución al consultar simultáneamente a todos los servidores de subida",
|
||||
"parallel_requests": "Peticiones paralelas",
|
||||
"upstream_parallel": "Usar consultas paralelas para acelerar la resolución al consultar simultáneamente a todos los servidores DNS de subida.",
|
||||
"parallel_requests": "Consultas paralelas",
|
||||
"load_balancing": "Balanceo de carga",
|
||||
"load_balancing_desc": "Consulta un servidor a la vez. AdGuard Home utilizará el algoritmo aleatorio ponderado para elegir el servidor más rápido y sea utilizado con más frecuencia.",
|
||||
"load_balancing_desc": "Consulta un servidor DNS de subida a la vez. AdGuard Home utilizará el algoritmo aleatorio ponderado para elegir el servidor más rápido y sea utilizado con más frecuencia.",
|
||||
"bootstrap_dns": "Servidores DNS de arranque",
|
||||
"bootstrap_dns_desc": "Los servidores DNS de arranque se utilizan para resolver las direcciones IP de los resolutores DoH/DoT que especifiques como DNS de subida.",
|
||||
"local_ptr_title": "Servidores DNS privados",
|
||||
"local_ptr_desc": "Los servidores DNS que AdGuard Home utiliza para las consultas PTR locales. Estos servidores se utilizan para resolver los nombres de hosts de los clientes a direcciones IP privadas, por ejemplo \"192.168.12.34\", utilizando rDNS. Si no está establecido, AdGuard Home utilizará los resolutores DNS predeterminados de tu sistema operativo.",
|
||||
"local_ptr_placeholder": "Ingresa una dirección de servidor por línea",
|
||||
"resolve_clients_title": "Habilitar la resolución inversa de las direcciones IP de clientes",
|
||||
"resolve_clients_desc": "Si está habilitado, AdGuard Home intentará resolver de manera inversa las direcciones IP de los clientes a sus nombres de hosts enviando consultas PTR a los resolutores correspondientes (servidores DNS privados para clientes locales, servidor DNS de subida para clientes con direcciones IP públicas).",
|
||||
"check_dhcp_servers": "Comprobar si hay servidores DHCP",
|
||||
"save_config": "Guardar configuración",
|
||||
"enabled_dhcp": "Servidor DHCP habilitado",
|
||||
@@ -18,7 +23,7 @@
|
||||
"dhcp_description": "Si tu router no proporciona la configuración DHCP, puedes utilizar el propio servidor DHCP incorporado de AdGuard.",
|
||||
"dhcp_enable": "Habilitar servidor DHCP",
|
||||
"dhcp_disable": "Deshabilitar servidor DHCP",
|
||||
"dhcp_not_found": "Es seguro habilitar el servidor DHCP incorporado. No se ha encontrado ningún servidor DHCP activo en la red, sin embargo le recomendamos que lo vuelva a comprobar manualmente, ya que nuestra prueba automática no ofrece actualmente una garantía del 100 %.",
|
||||
"dhcp_not_found": "Es seguro habilitar el servidor DHCP incorporado porque AdGuard Home no encontró ningún servidor DHCP activo en la red. Sin embargo, deberías volver a comprobarlo manualmente, ya que nuestra prueba automática no ofrece actualmente una garantía del 100 %.",
|
||||
"dhcp_found": "Un servidor DHCP activo se encuentra en la red. No es seguro habilitar el servidor DHCP incorporado.",
|
||||
"dhcp_leases": "Asignaciones DHCP",
|
||||
"dhcp_static_leases": "Asignaciones DHCP estáticas",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Formato MAC no válido",
|
||||
"form_error_client_id_format": "Formato de ID de cliente no válido",
|
||||
"form_error_server_name": "Nombre de servidor no válido",
|
||||
"form_error_subnet": "La subred \"{{cidr}}\" no contiene la dirección IP \"{{ip}}\"",
|
||||
"form_error_positive": "Debe ser mayor que 0",
|
||||
"form_error_negative": "Debe ser igual o mayor que 0",
|
||||
"range_end_error": "Debe ser mayor que el inicio de rango",
|
||||
@@ -49,19 +55,19 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Nombre del host",
|
||||
"dhcp_table_expires": "Expira",
|
||||
"dhcp_warning": "Si de todos modos deseas habilitar el servidor DHCP, asegúrate de que no hay otro servidor DHCP activo en tu red. ¡De lo contrario, puedes dejar sin Internet a los dispositivos conectados!",
|
||||
"dhcp_error": "No pudimos determinar si hay otro servidor DHCP en la red.",
|
||||
"dhcp_static_ip_error": "Para poder utilizar el servidor DHCP se debe establecer una dirección IP estática. No hemos podido determinar si esta interfaz de red está configurada utilizando una dirección IP estática. Por favor establece una dirección IP estática manualmente.",
|
||||
"dhcp_dynamic_ip_found": "Tu sistema utiliza la configuración de dirección IP dinámica para la interfaz <0>{{interfaceName}}</0>. Para poder utilizar el servidor DHCP se debe establecer una dirección IP estática. Tu dirección IP actual es <0>{{ipAddress}}</0>. Si presionas el botón Habilitar servidor DHCP, estableceremos automáticamente esta dirección IP como estática.",
|
||||
"dhcp_warning": "Si de todos modos deseas habilitar el servidor DHCP, asegúrate de que no hay otro servidor DHCP activo en tu red. ¡De lo contrario, puedes dejar sin conexión a Internet a los dispositivos conectados!",
|
||||
"dhcp_error": "AdGuard Home no pudo determinar si hay otro servidor DHCP activo en la red.",
|
||||
"dhcp_static_ip_error": "Para poder utilizar el servidor DHCP se debe establecer una dirección IP estática. AdGuard Home no pudo determinar si esta interfaz de red está configurada utilizando una dirección IP estática. Por favor establece una dirección IP estática manualmente.",
|
||||
"dhcp_dynamic_ip_found": "Tu sistema utiliza la configuración de dirección IP dinámica para la interfaz <0>{{interfaceName}}</0>. Para poder utilizar el servidor DHCP se debe establecer una dirección IP estática. Tu dirección IP actual es <0>{{ipAddress}}</0>. AdGuard Home establecerá automáticamente esta dirección IP como estática si presionas el botón \"Habilitar servidor DHCP\".",
|
||||
"dhcp_lease_added": "Asignación estática \"{{key}}\" añadido correctamente",
|
||||
"dhcp_lease_deleted": "Asignación estática \"{{key}}\" eliminado correctamente",
|
||||
"dhcp_new_static_lease": "Nueva asignación estática",
|
||||
"dhcp_static_leases_not_found": "No se han encontrado asignaciones DHCP estáticas",
|
||||
"dhcp_add_static_lease": "Añadir asignación estática",
|
||||
"dhcp_reset": "¿Está seguro de que desea restablecer la configuración DHCP?",
|
||||
"dhcp_reset": "¿Estás seguro de que deseas restablecer la configuración DHCP?",
|
||||
"country": "País",
|
||||
"city": "Ciudad",
|
||||
"delete_confirm": "¿Está seguro de que desea eliminar \"{{key}}\"?",
|
||||
"delete_confirm": "¿Estás seguro de que deseas eliminar \"{{key}}\"?",
|
||||
"form_enter_hostname": "Ingresa el nombre del host",
|
||||
"error_details": "Detalles del error",
|
||||
"response_details": "Detalles de la respuesta",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "Configuración de cifrado",
|
||||
"dhcp_settings": "Configuración DHCP",
|
||||
"upstream_dns": "Servidores DNS de subida",
|
||||
"upstream_dns_help": "Ingresa las direcciones de los servidores una por línea. <a>Más información</a> sobre la configuración de los servidores DNS de subida.",
|
||||
"upstream_dns_help": "Ingresa una dirección de servidor por línea. <a>Más información</a> sobre la configuración de los servidores DNS de subida.",
|
||||
"upstream_dns_configured_in_file": "Configurado en {{path}}",
|
||||
"test_upstream_btn": "Probar DNS de subida",
|
||||
"upstreams": "DNS de subida",
|
||||
@@ -225,7 +231,7 @@
|
||||
"rule_added_to_custom_filtering_toast": "Regla añadida a las reglas de filtrado personalizado: {{rule}}",
|
||||
"query_log_response_status": "Estado: {{value}}",
|
||||
"query_log_filtered": "Filtrado por {{filter}}",
|
||||
"query_log_confirm_clear": "¿Está seguro de que desea borrar todo el registro de consultas?",
|
||||
"query_log_confirm_clear": "¿Estás seguro de que deseas borrar todo el registro de consultas?",
|
||||
"query_log_cleared": "El registro de consultas se ha borrado correctamente",
|
||||
"query_log_updated": "El registro de consultas se ha actualizado correctamente",
|
||||
"query_log_clear": "Borrar registros de consultas",
|
||||
@@ -234,7 +240,7 @@
|
||||
"query_log_configuration": "Configuración de registros",
|
||||
"query_log_disabled": "El registro de consultas está deshabilitado y se puede configurar en la <0>configuración</0>",
|
||||
"query_log_strict_search": "Usar comillas dobles para una búsqueda estricta",
|
||||
"query_log_retention_confirm": "¿Está seguro de que desea cambiar la retención del registro de consultas? Si disminuye el valor del intervalo, se perderán algunos datos",
|
||||
"query_log_retention_confirm": "¿Estás seguro de que deseas cambiar la retención del registro de consultas? Si disminuye el valor del intervalo, se perderán algunos datos",
|
||||
"anonymize_client_ip": "Anonimizar IP del cliente",
|
||||
"anonymize_client_ip_desc": "No guarda la dirección IP completa del cliente en registros y estadísticas",
|
||||
"dns_config": "Configuración del servidor DNS",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Límite de cantidad",
|
||||
"edns_enable": "Habilitar subred de cliente EDNS",
|
||||
"edns_cs_desc": "Si está habilitado, AdGuard Home enviará las subredes de los clientes a los servidores DNS.",
|
||||
"rate_limit_desc": "Número de peticiones por segundo que un solo cliente puede hacer (establecerlo en 0 significa ilimitado)",
|
||||
"rate_limit_desc": "Número de peticiones por segundo permitidas por cliente. Establecerlo en 0 significa que no hay límite.",
|
||||
"blocking_ipv4_desc": "Dirección IP devolverá una petición A bloqueada",
|
||||
"blocking_ipv6_desc": "Dirección IP devolverá una petición AAAA bloqueada",
|
||||
"blocking_mode_default": "Predeterminado: Responde con dirección IP cero (0.0.0.0 para A; :: para AAAA) cuando está bloqueado por la regla de estilo Adblock; responde con la dirección IP especificada en la regla cuando está bloqueado por una regla de estilo /etc/hosts",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Interfaz de escucha",
|
||||
"install_settings_port": "Puerto",
|
||||
"install_settings_interface_link": "La interfaz web de administración de AdGuard Home estará disponible en las siguientes direcciones:",
|
||||
"form_error_port": "Ingresa un valor de puerto válido",
|
||||
"form_error_port": "Ingresa un número de puerto válido",
|
||||
"install_settings_dns": "Servidor DNS",
|
||||
"install_settings_dns_desc": "Deberás configurar tus dispositivos o router para usar el servidor DNS en las siguientes direcciones:",
|
||||
"install_settings_all_interfaces": "Todas las interfaces",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Esta configuración cubrirá automáticamente todos los dispositivos conectados a tu router doméstico y no necesitarás configurar cada uno de ellos manualmente.",
|
||||
"install_devices_address": "El servidor DNS de AdGuard Home está escuchando en las siguientes direcciones",
|
||||
"install_devices_router_list_1": "Abre las preferencias de tu router. Por lo general, puedes acceder a él desde tu navegador a través de una URL (como http://192.168.0.1/ o http://192.168.1.1/). Es posible que se te pida que ingreses la contraseña. Si no lo recuerdas, a menudo puedes restablecer la contraseña presionando un botón en el router. Algunos routers requieren una aplicación específica, que en ese caso ya debería estar instalada en tu computadora/teléfono.",
|
||||
"install_devices_router_list_1": "Abre las preferencias de tu router. Por lo general, puedes acceder a él desde tu navegador a través de una URL como http://192.168.0.1/ o http://192.168.1.1/. Es posible que se te pida que ingreses la contraseña. Si no lo recuerdas, a menudo puedes restablecer la contraseña presionando un botón en el router, pero ten en cuenta que si eliges este procedimiento, probablemente se perderá toda la configuración del router. Si tu router requiere una aplicación para configurarlo, instala la aplicación en tu teléfono o PC y utilízala para acceder a la configuración del router.",
|
||||
"install_devices_router_list_2": "Busca la configuración de DHCP/DNS. Busca las letras DNS junto a un campo que permita ingresar dos o tres grupos de números, cada uno dividido en cuatro grupos de uno a tres dígitos.",
|
||||
"install_devices_router_list_3": "Ingresa las direcciones de tu servidor AdGuard Home allí.",
|
||||
"install_devices_router_list_4": "No se puede configurar un servidor DNS personalizado en algunos tipos de routers. En este caso puede ayudar si configuras AdGuard Home como un <0>servidor DHCP</0>. De lo contrario, deberías buscar el manual sobre cómo personalizar los servidores DNS para tu modelo de router en particular.",
|
||||
"install_devices_router_list_4": "En algunos tipos de router, no se puede configurar un servidor DNS personalizado. En ese caso, configurar AdGuard Home como <0>servidor DHCP</0> puede ayudar. De lo contrario, debes consultar el manual del router para saber cómo personalizar los servidores DNS en tu modelo de router específico.",
|
||||
"install_devices_windows_list_1": "Abre el Panel de control a través del menú Inicio o en el buscador de Windows.",
|
||||
"install_devices_windows_list_2": "Ve a la categoría Redes e Internet, luego a Centro de redes y recursos compartidos.",
|
||||
"install_devices_windows_list_3": "En el lado izquierdo de la pantalla, busca Cambiar configuración del adaptador y luego haz clic en él.",
|
||||
@@ -362,12 +368,12 @@
|
||||
"encryption_subject": "Asunto",
|
||||
"encryption_issuer": "Emisor",
|
||||
"encryption_hostnames": "Nombres de hosts",
|
||||
"encryption_reset": "¿Está seguro de que desea restablecer la configuración de cifrado?",
|
||||
"encryption_reset": "¿Estás seguro de que deseas restablecer la configuración de cifrado?",
|
||||
"topline_expiring_certificate": "Tu certificado SSL está a punto de expirar. Actualiza la <0>configuración de cifrado</0>.",
|
||||
"topline_expired_certificate": "Tu certificado SSL ha expirado. Actualiza la <0>configuración de cifrado</0>.",
|
||||
"form_error_port_range": "Ingresa el valor del puerto en el rango de 80 a 65535",
|
||||
"form_error_port_range": "Ingresa el número del puerto en el rango de 80 a 65535",
|
||||
"form_error_port_unsafe": "Este es un puerto inseguro",
|
||||
"form_error_equal": "No debería ser igual",
|
||||
"form_error_equal": "No debe ser igual",
|
||||
"form_error_password": "La contraseña no coincide",
|
||||
"reset_settings": "Restablecer configuración",
|
||||
"update_announcement": "¡AdGuard Home {{version}} ya está disponible! <0>Haz clic aquí</0> para más información.",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "Dirección IP",
|
||||
"client_identifier_desc": "Los clientes pueden ser identificados por la dirección IP, MAC, CIDR o un ID de cliente especial (puede ser utilizado para DoT/DoH/DoQ). <0>Aquí</0> puedes obtener más información sobre cómo identificar clientes.",
|
||||
"form_enter_ip": "Ingresa la IP",
|
||||
"form_enter_subnet_ip": "Ingresa una dirección IP en la subred \"{{cidr}}\"",
|
||||
"form_enter_mac": "Ingresa la MAC",
|
||||
"form_enter_id": "Ingresa el identificador",
|
||||
"form_add_id": "Añadir identificador",
|
||||
@@ -405,8 +412,8 @@
|
||||
"client_added": "Cliente \"{{key}}\" añadido correctamente",
|
||||
"client_updated": "Cliente \"{{key}}\" actualizado correctamente",
|
||||
"clients_not_found": "No se han encontrado clientes",
|
||||
"client_confirm_delete": "¿Está seguro de que desea eliminar el cliente \"{{key}}\"?",
|
||||
"list_confirm_delete": "¿Está seguro de que deseas eliminar esta lista?",
|
||||
"client_confirm_delete": "¿Estás seguro de que deseas eliminar el cliente \"{{key}}\"?",
|
||||
"list_confirm_delete": "¿Estás seguro de que deseas eliminar esta lista?",
|
||||
"auto_clients_title": "Clientes (activos)",
|
||||
"auto_clients_desc": "Datos de los clientes que utilizan AdGuard Home, pero no se almacenan en la configuración",
|
||||
"access_title": "Configuración de acceso",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Clientes no permitidos",
|
||||
"access_disallowed_desc": "Lista de CIDR o direcciones IP. Si está configurado, AdGuard Home eliminará las peticiones de estas direcciones IP.",
|
||||
"access_blocked_title": "Dominios no permitidos",
|
||||
"access_blocked_desc": "No confundas esto con filtros. AdGuard Home eliminará las consultas DNS con estos dominios en la pregunta de la consulta. Aquí puedes especificar los nombres de dominio exactos, comodines y reglas de filtrado de URL, por ejemplo: 'ejemplo.org', '*.ejemplo.org' o '||ejemplo.org^'.",
|
||||
"access_blocked_desc": "No confundas esto con filtros. AdGuard Home eliminará las consultas DNS con estos dominios en las preguntas de las consultas. Aquí puedes especificar los nombres de dominio exactos, comodines y reglas de filtrado de URL, por ejemplo: \"ejemplo.org\", \"*.ejemplo.org\" o \"||ejemplo.org^\".",
|
||||
"access_settings_saved": "Configuración de acceso guardado correctamente",
|
||||
"updates_checked": "Actualizaciones comprobadas correctamente",
|
||||
"updates_version_equal": "AdGuard Home está actualizado",
|
||||
@@ -443,7 +450,7 @@
|
||||
"rewrite_deleted": "Reescritura DNS para \"{{key}}\" eliminado correctamente",
|
||||
"rewrite_add": "Añadir reescritura DNS",
|
||||
"rewrite_not_found": "No se han encontrado reescrituras DNS",
|
||||
"rewrite_confirm_delete": "¿Está seguro de que desea eliminar la reescritura DNS para \"{{key}}\"?",
|
||||
"rewrite_confirm_delete": "¿Estás seguro de que deseas eliminar la reescritura DNS para \"{{key}}\"?",
|
||||
"rewrite_desc": "Permite configurar fácilmente la respuesta DNS personalizada para un nombre de dominio específico.",
|
||||
"rewrite_applied": "Regla de reescritura aplicada",
|
||||
"rewrite_hosts_applied": "Reescrito por la regla del archivo hosts",
|
||||
@@ -482,8 +489,8 @@
|
||||
"statistics_retention": "Retención de estadísticas",
|
||||
"statistics_retention_desc": "Si disminuye el valor del intervalo, se perderán algunos datos",
|
||||
"statistics_clear": "Borrar estadísticas",
|
||||
"statistics_clear_confirm": "¿Está seguro de que desea borrar las estadísticas?",
|
||||
"statistics_retention_confirm": "¿Está seguro de que desea cambiar la retención de estadísticas? Si disminuye el valor del intervalo, se perderán algunos datos",
|
||||
"statistics_clear_confirm": "¿Estás seguro de que deseas borrar las estadísticas?",
|
||||
"statistics_retention_confirm": "¿Estás seguro de que deseas cambiar la retención de estadísticas? Si disminuye el valor del intervalo, se perderán algunos datos",
|
||||
"statistics_cleared": "Estadísticas borradas correctamente",
|
||||
"interval_hours": "{{count}} hora",
|
||||
"interval_hours_plural": "{{count}} horas",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "Deshabilitar IPv6",
|
||||
"disable_ipv6_desc": "Si esta función está habilitada, se descartarán todas las consultas DNS para direcciones IPv6 (tipo AAAA).",
|
||||
"fastest_addr": "Dirección IP más rápida",
|
||||
"fastest_addr_desc": "Consulta todos los servidores DNS y devuelve la dirección IP más rápida de todas las respuestas. Esto ralentizará las consultas DNS, y se debe esperar las respuestas de todos los servidores DNS, pero mejora la conectividad general.",
|
||||
"fastest_addr_desc": "Consulta todos los servidores DNS y devuelve la dirección IP más rápida de todas las respuestas. Esto ralentiza las consultas DNS ya que AdGuard Home tiene que esperar las respuestas de todos los servidores DNS, pero mejora la conectividad general.",
|
||||
"autofix_warning_text": "Si haces clic en \"Corregir\", AdGuard Home configurará tu sistema para utilizar el servidor DNS de AdGuard Home.",
|
||||
"autofix_warning_list": "Realizará estas tareas: <0>Deshabilitar el sistema DNSStubListener</0> <0>Establecer la dirección del servidor DNS en 127.0.0.1</0> <0>Reemplazar el destino del enlace simbólico de /etc/resolv.conf por /run/systemd/resolve/resolv.conf</0> <0>Detener DNSStubListener (recargar el servicio systemd-resolved)</0>",
|
||||
"autofix_warning_result": "Como resultado, todas las peticiones DNS de tu sistema serán procesadas por AdGuard Home de manera predeterminada.",
|
||||
@@ -540,8 +547,8 @@
|
||||
"check_service": "Nombre del servicio: {{service}}",
|
||||
"service_name": "Nombre del servicio",
|
||||
"check_not_found": "No se ha encontrado en tus listas de filtros",
|
||||
"client_confirm_block": "¿Está seguro de que desea bloquear al cliente \"{{ip}}\"?",
|
||||
"client_confirm_unblock": "¿Está seguro de que desea desbloquear al cliente \"{{ip}}\"?",
|
||||
"client_confirm_block": "¿Estás seguro de que deseas bloquear al cliente \"{{ip}}\"?",
|
||||
"client_confirm_unblock": "¿Estás seguro de que deseas desbloquear al cliente \"{{ip}}\"?",
|
||||
"client_blocked": "Cliente \"{{ip}}\" bloqueado correctamente",
|
||||
"client_unblocked": "Cliente \"{{ip}}\" desbloqueado correctamente",
|
||||
"static_ip": "Dirección IP estática",
|
||||
@@ -549,8 +556,8 @@
|
||||
"set_static_ip": "Establecer una dirección IP estática",
|
||||
"install_static_ok": "¡Buenas noticias! La dirección IP estática ya está configurada",
|
||||
"install_static_error": "AdGuard Home no puede configurarlo automáticamente para esta interfaz de red. Busca instrucciones sobre cómo hacer esto manualmente.",
|
||||
"install_static_configure": "Hemos detectado que utilizas una dirección IP dinámica: <0>{{ip}}</0>. ¿Deseas usarla como tu dirección estática?",
|
||||
"confirm_static_ip": "AdGuard Home configurará {{ip}} para ser tu dirección IP estática. ¿Desea continuar?",
|
||||
"install_static_configure": "AdGuard Home ha detectado que se utiliza la dirección IP dinámica <0>{{ip}}</0>. ¿Deseas que se establezca como tu dirección estática?",
|
||||
"confirm_static_ip": "AdGuard Home configurará {{ip}} para ser tu dirección IP estática. ¿Deseas continuar?",
|
||||
"list_updated": "{{count}} lista actualizada",
|
||||
"list_updated_plural": "{{count}} listas actualizadas",
|
||||
"dnssec_enable": "Habilitar DNSSEC",
|
||||
@@ -594,4 +601,4 @@
|
||||
"adg_will_drop_dns_queries": "AdGuard Home descartará todas las consultas DNS de este cliente.",
|
||||
"client_not_in_allowed_clients": "El cliente no está permitido porque no está en la lista de \"Clientes permitidos\".",
|
||||
"experimental": "experimental"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,19 @@
|
||||
{
|
||||
"client_settings": "تنظیمات کلاینت",
|
||||
"example_upstream_reserved": "میتوانید جریان ارسالی DNS <0> را برای یک دامنه مشخص تعیین کنید </0>",
|
||||
"upstream_parallel": "استفاده از جستار موازی برای سرعت دادن به تفکیک با جستار همزمان همه جریان های ارسالی",
|
||||
"parallel_requests": "درخواست های موازی",
|
||||
"bootstrap_dns": "خودراه انداز سرورهای DNS",
|
||||
"bootstrap_dns_desc": "خودراه انداز سرورهای DNS برای تفکیک آدرس آی پی تفکیک کننده های DoH/DoT که شما بعنوان جریان ارسالی تعیین کردید استفاده میشود.",
|
||||
"check_dhcp_servers": "بررسی برای سرورهای DHCP",
|
||||
"save_config": "ذخیره پیکربندی",
|
||||
"enabled_dhcp": "سرور DHCP فعال شده است",
|
||||
"disabled_dhcp": "سرور DHCP غیرفعال شده است",
|
||||
"dhcp_title": "سرور DHCP",
|
||||
"dhcp_description": "اگر روتر شما تنظیمات DHCP ارائه نمی کند،میتوانید از سرور DHCP تو-کار خود AdGuard استفاده کنید.",
|
||||
"dhcp_enable": "فعالسازی سرور DHCP",
|
||||
"dhcp_disable": "غیرفعالسازی سرور DHCP",
|
||||
"dhcp_not_found": "سرورهای فعال DHCP در شبکه یافت نشد.فعالسازی سرور DHCP تو-کار اَمن است.",
|
||||
"dhcp_found": "تعدادی سرور DHCP فعال در شبکه یافت شد.فعالسازی سرور DHCP توکار اَمن نیست.",
|
||||
"dhcp_leases": "اجاره DHCP",
|
||||
"dhcp_static_leases": "اجاره DHCP ایستا",
|
||||
"dhcp_leases_not_found": "اجاره DHCP یافت نشد",
|
||||
"dhcp_config_saved": "پیکربندی سرور DHCP ذخیره شده است",
|
||||
"form_error_required": "فیلد مورد نیاز",
|
||||
"form_error_ip4_format": "فرمت نامعتبر IPv4",
|
||||
"form_error_ip6_format": "فرمت نامعتبر IPv6",
|
||||
@@ -40,16 +35,11 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "نام میزبان",
|
||||
"dhcp_table_expires": "انقضاء",
|
||||
"dhcp_warning": "اگر میخواهید DHCP سرور توکار را فعال کنید،مطمئن شوید DHCP سرور دیگری فعال نباشد.در غیر اینصورت،آن دسترسی به اینترنت را برای دستگاه های وصل شده قطع می کند!",
|
||||
"dhcp_error": "ما نمیتوانیم تشخیص دهیم آیا یک سرور DHCP دیگر در شبکه موجود است یا نه.",
|
||||
"dhcp_static_ip_error": "به منظور استفاده از سرور DHCP یک آدرس آی پی ثابت باید تنظیم شود.ما موفق به تشخیص اینکه آیا رابط این شبکه برای استفاده از آی پی ثابت تنظیم شده است یا نه موفق نشدیم.لطفا آدرس آی پی ثابت را دستی تنظیم کنید.",
|
||||
"dhcp_dynamic_ip_found": "سیستم شما آدرس آی پی متغییر برای این رابط استفاده می کند <0>{{interfaceName}}</0>. به منظور استفاده از سرور DHCP آدرس ثابت باید تعیین شود. آدرس آی پی فعلی شما هست <0>{{ipAddress}}</0>. اگر شما دکمه DHCP را فشار دهید ما این آدرس آی پی را بعنوان ثابت تنظیم می کنیم.",
|
||||
"dhcp_lease_added": "اجاره ایستا \"{{key}}\" با موفقیت اضافه شد",
|
||||
"dhcp_lease_deleted": "اجاره ایستا \"{{key}}\" با موفقیت حذف شد",
|
||||
"dhcp_new_static_lease": "اجاره ایستا جدید",
|
||||
"dhcp_static_leases_not_found": "هیچ اجاره DHCP ایستا یافت نشد",
|
||||
"dhcp_add_static_lease": "افزودن اجاره ایستا",
|
||||
"dhcp_reset": "آیا میخواهید پیکربندی DHCP را ریست کنید؟",
|
||||
"country": "کشور",
|
||||
"city": "شهر",
|
||||
"delete_confirm": "آیا میخواهید \"{{key}}\" را حذف کنید؟",
|
||||
@@ -95,14 +85,7 @@
|
||||
"top_clients": "بالاترین کلاینت ها",
|
||||
"no_clients_found": "کلاینتی یافت نشد",
|
||||
"general_statistics": "آمار عمومی",
|
||||
"number_of_dns_query_days": "تعداد جستار DNS پردازش شده در {{count}} روز آخر",
|
||||
"number_of_dns_query_days_plural": "تعداد جستار DNS پردازش شده در {{count}} روز گذشته",
|
||||
"number_of_dns_query_24_hours": "تعداد جستار DNS پردازش شده در 24 ساعت گذشته",
|
||||
"number_of_dns_query_blocked_24_hours": "تعداد درخواست DNS مسدود شده با فیلترهای مسدودساز تبلیغ و لیست سیاه میزبان",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "تعداد درخواست DNS مسدود شده با مدل امنیت وب گردی AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "تعداد وبسایت های غیر اخلاقی مسدود شده",
|
||||
"enforced_save_search": "جستجوی اَمن اجبار شده",
|
||||
"number_of_dns_query_to_safe_search": "تعداد درخواست های DNS برای موتور جستجو که جستجوی اَمن اجبار شده",
|
||||
"average_processing_time": "میانگین زمان پردازش",
|
||||
"average_processing_time_hint": "زمان میانگین بر هزارم ثانیه در پردازش درخواست DNS",
|
||||
"block_domain_use_filters_and_hosts": "مسدودسازی دامنه ها توسط فیلترها و فایل های میزبان",
|
||||
@@ -112,7 +95,6 @@
|
||||
"use_adguard_parental": "از سرویس وب نظارت والدین AdGuard استفاده کن",
|
||||
"use_adguard_parental_hint": "AdGuard Home بررسی می کند اگر دامنه حاوی موارد غیر اخلاقی است.آن از همان اِی پی آی دارای حریم خصوصی سرویس وب امنیت وب گردی استفاده می کند.",
|
||||
"enforce_safe_search": "اجبار جستجوی اَمن",
|
||||
"enforce_save_search_hint": "AdGuard Home میتواند جستجوی اَمن را در موتور جستجوهای زیر اعمال کند:گوگل،یوتوب،بینگ و یاندکس",
|
||||
"no_servers_specified": "سروری تعیین نشده است",
|
||||
"general_settings": "تنظیمات عمومی",
|
||||
"dns_settings": "تنظیمات DNS",
|
||||
@@ -248,7 +230,6 @@
|
||||
"install_settings_listen": "رابط گوش دادن",
|
||||
"install_settings_port": "پورت",
|
||||
"install_settings_interface_link": "رابط صفحه وب آدمین AdGuard Home شما در این آدرس قابل دسترسی خواهد بود:",
|
||||
"form_error_port": "مقدار پورت معتبر وارد کنید",
|
||||
"install_settings_dns": "سرور DNS",
|
||||
"install_settings_dns_desc": "نیاز است شما دستگاه یا روتر خود را برای استفاده از سرور DNS روی آدرس های زیر پیکربندی کنید:",
|
||||
"install_settings_all_interfaces": "همه رابط ها",
|
||||
@@ -267,10 +248,8 @@
|
||||
"install_devices_router": "روتر",
|
||||
"install_devices_router_desc": "این راه انداز خودکار همه دستگاه های متصل شده به روتر خانه را پوشش میدهد و نیازی نیست شما هر یک از آنها را دستی پیکربندی کنید.",
|
||||
"install_devices_address": "DNS سرور AdGuard Home به آدرس های زیر گوش میدهد",
|
||||
"install_devices_router_list_1": "اولویت ها را برای روتر خود باز کنید.معمولا میتوانید آن را ز طریق مرورگر از طریق آدرسی مانند ( http://192.168.0.1/ یا http://192.168.1.1/) دسترسی داشته باشید.ممکن است رمزعبور پرسیده شود،اگر آن را بخاطر ندارید،غالبا میتوان رمزعبور را با فشردن دکمه پشت روتر ریست کرد.برخی روترها برنامه خاصی نیاز دارد که باید در رایانه/گوشی نصب شده باشد.",
|
||||
"install_devices_router_list_2": "تنظیمات DHCP/DNS را بیابید.دنبال حروف DNS بگردید در فیلدی که اجازه دو یا سه گروه عدد را میدهد و هر کدام در چهار گروه سه عددی شکسته شده است",
|
||||
"install_devices_router_list_3": "آدرس سرور AdGuard Home خود را آنجا وارد کنید",
|
||||
"install_devices_router_list_4": "شما نمیتوانید DNS سرور سفارشی در برخی از روترها تنظیم کنید. در این مورد اگر شما AdGuard Home را بعنوان DHCP سرور راه اندازی کنید میتواند کمک کند. در غیر اینصورت باید راهنمای سفارشی سازی DNS سرورها برای مدل خاص روتر خود را انتخاب کنید.",
|
||||
"install_devices_windows_list_1": "کنترل پنل را از طریق استارت منو یا جستجوی ویندوز باز کنید.",
|
||||
"install_devices_windows_list_2": "بروید به شبکه و دسته اینترنت و سپس به شبکه و مرکز اشتراک گذاری",
|
||||
"install_devices_windows_list_3": "در سمت چپ صفحه تنظیمات آداپتور را تغییر داده و روی آن کلیک کنید",
|
||||
@@ -296,7 +275,6 @@
|
||||
"install_saved": "با موفقیت ذخیره نشد",
|
||||
"encryption_title": "رمزگُذاری",
|
||||
"encryption_desc": "پشتیبانی رمزگُذاری (HTTPS/TLS) برای DNS و رابط آدمین وب",
|
||||
"encryption_config_saved": "پیکربندی رمزگذاری ذخیره شد",
|
||||
"encryption_server": "نام سرور",
|
||||
"encryption_server_enter": "نام دامنه خود را وارد کنید",
|
||||
"encryption_redirect": "تغییر مسیر خودکار به HTTPS",
|
||||
@@ -324,13 +302,10 @@
|
||||
"encryption_reset": "آیا میخواهید تنظیمات رمزگُذاری به پیش فرض بازگردد؟",
|
||||
"topline_expiring_certificate": "گواهینامه اِس اِس اِل شما در صدد انقضاء است. <0>تنظیمات رمزگُذاری</0> را بروز رسانی کنید.",
|
||||
"topline_expired_certificate": "گواهینامه اِس اِس اِل شما منقضی شده است. <0>تنظیمات رمزگُذاری</0> را بروز رسانی کنید.",
|
||||
"form_error_port_range": "مقدار پورت را در محدوده 80-65535 وارد کنید",
|
||||
"form_error_port_unsafe": "این پورت غیر ایمن است",
|
||||
"form_error_equal": "نباید برابر باشد",
|
||||
"form_error_password": "رمزعبور تطبیق ندارد",
|
||||
"reset_settings": "ریست تنظیمات",
|
||||
"update_announcement": "AdGuard Home {{version}} در دسترس است! <0>اینجا کلیک</0> کنید برای اطلاعات بیشتر.",
|
||||
"setup_guide": "راهنمای راه اندازی",
|
||||
"dns_addresses": "آدرس های DNS",
|
||||
"dns_start": "سرور DNS در حال شروع است",
|
||||
"dns_status_error": "خطا در دریافت وضعیت DNS",
|
||||
@@ -374,7 +349,6 @@
|
||||
"access_disallowed_title": "کلاینت های غیرمجاز",
|
||||
"access_disallowed_desc": "یک لیست از CIDR یا آدرس های IP.اگر پیکربندی شود،AdGuard Home درخواست ها را از این آدرس های IP نمی پذیرد.",
|
||||
"access_blocked_title": "دامنه های مسدود شده",
|
||||
"access_blocked_desc": "این را با فیلتر ها به اشتباه نگیرید.AdGuard Home جستار DNS را با این دامنه ها در جستار سوال ها نمی پذیرد.",
|
||||
"access_settings_saved": "تنظیمات دسترسی با موفقیت ذخیره شد",
|
||||
"updates_checked": "بروز رسانی با موفقیت بررسی شد",
|
||||
"updates_version_equal": "AdGuard Home بروز است",
|
||||
@@ -468,7 +442,6 @@
|
||||
"disable_ipv6": "غیرفعالسازی IPv6",
|
||||
"disable_ipv6_desc": "اگر این ویژگی فعال شده، همه جستارهای DNS برای آدرس های IPv6 (نوع AAAA) رها میشود.",
|
||||
"fastest_addr": "سریعترین آدرس آی پی",
|
||||
"fastest_addr_desc": "جستار همه سرورهای DNS و بازگرداندن سریعترین آدرس IP از میان همه پاسخ ها",
|
||||
"autofix_warning_text": "اگر روی \"تعمیر\" کلیک کنید، AdGuardHome سیستم شما را برای استفاده از DNS سرور AdGuardHome پیکربندی می کند.",
|
||||
"autofix_warning_list": "این وظایف را اجرا میکند: <0>غیرفعالسازی DNSStubListener سیستم</0> <0>تنظیم آدرس DNS 127.0.0.1</0> سرور به <0>جایگزینی لینک نمادی هدف /etc/resolv.conf به/run/systemd/resolve/resolv.conf</0> <0>توقف DNSStubListener (بارگیری مجدد سرویس systemd-resolved)</0>",
|
||||
"autofix_warning_result": "در نتیجه همه درخواست های DNS از سیستم شما بطور پیش فرض با AdGuardHome پردازش خواهد شد.",
|
||||
@@ -495,7 +468,6 @@
|
||||
"set_static_ip": "تنظیم یک آدرس آی پی ثابت",
|
||||
"install_static_ok": "خبر خوب! آدرس آی پی ثابت از قبل پیکربندی شده است",
|
||||
"install_static_error": "AdGuard Home نمیتواند رابط این شبکه را خودکار پیکربندی کند. لطفا دستورالعمل چگونگی انجام دستی آن را مطالعه کنید.",
|
||||
"install_static_configure": "ما تشخیص دادیم از آدرس آی پی پویا استفاده شده است — <0>{{ip}}</0>. آیا میخواهید از آن بعنوان آدرس ثابت استفاده کنید؟",
|
||||
"confirm_static_ip": "AdGuard Home {{ip}} بعنوان آدرس آی پی ثابت شما پیکربندی می کند. ادامه میدهید؟",
|
||||
"list_updated": "{{count}} لیست بروز رسانی شد",
|
||||
"list_updated_plural": "{{count}} لیست بروز رسانی شد",
|
||||
@@ -514,4 +486,4 @@
|
||||
"safe_search": "جستجوی اَمن",
|
||||
"blocklist": "لیست سیاه",
|
||||
"milliseconds_abbreviation": "هـ ثـ"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
"client_settings": "Paramètres du client",
|
||||
"example_upstream_reserved": "Vous pouvez spécifier un DNS en amont <0>pour un/des domaine(s) spécifique(s)</0>",
|
||||
"example_upstream_comment": "Vous pouvez spécifier un commentaire",
|
||||
"upstream_parallel": "Utiliser des requêtes parallèles pour accélérer la résolution en requêtant simultanément tous les serveurs upstream",
|
||||
"upstream_parallel": "Utilisez des requêtes parallèles pour accélérer la résolution en requêtant simultanément tous les serveurs en amont.",
|
||||
"parallel_requests": "Demandes en parallèle",
|
||||
"load_balancing": "Équilibrage de charge",
|
||||
"load_balancing_desc": "Interroger un serveur à la fois. AdGuard Home utilisera l’algorithme aléatoire pondéré pour choisir le serveur afin que celui le plus rapide soit utilisé plus souvent.",
|
||||
"load_balancing_desc": "Interroger un serveur en amont à la fois. AdGuard Home utilisera l’algorithme aléatoire pondéré pour choisir le serveur afin que celui le plus rapide soit utilisé plus souvent.",
|
||||
"bootstrap_dns": "Serveurs DNS d'amorçage",
|
||||
"bootstrap_dns_desc": "Les serveurs DNS d'amorçage sont utilisés pour résoudre les adresses IP des résolveurs DoH/DoT que vous spécifiez comme upstream.",
|
||||
"local_ptr_title": "Serveurs DNS privés",
|
||||
"local_ptr_desc": "Les serveurs DNS utilisés par AdGuard Home pour les requêtes PTR servies localement. Ces serveurs sont utilisés pour résoudre les noms d'hôtes des clients pour les clients avec des adresses IP privées, par exemple \"192.168.12.34\", en utilisant rDNS. S'il n'est pas défini, AdGuard Home utilisera le résolveur DNS de votre OS par défaut automatiquement.",
|
||||
"local_ptr_placeholder": "Saisissez une adresse de serveur par ligne",
|
||||
"resolve_clients_title": "Activer la résolution inverse des adresses IP des clients",
|
||||
"resolve_clients_desc": "Lorsque activé, AdGuard Home tentera de résoudre de manière inverse les adresses IP des clients en leurs noms d'hôtes en envoyant des requêtes PTR aux résolveurs correspondants (serveurs DNS privés pour les clients locaux, serveur en amont pour les clients ayant des adresses IP publiques).",
|
||||
"check_dhcp_servers": "Rechercher les serveurs DHCP",
|
||||
"save_config": "Sauvegarder la configuration",
|
||||
"enabled_dhcp": "Serveur DHCP activé",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "Si votre routeur ne fonctionne pas avec les réglages DHCP, vous pouvez utiliser le serveur DHCP par défaut d'AdGuard.",
|
||||
"dhcp_enable": "Activer le serveur DHCP",
|
||||
"dhcp_disable": "Désactiver le serveur DHCP",
|
||||
"dhcp_not_found": "Aucun serveur DHCP actif trouvé sur le réseau. Vous pouvez activer le serveur DHCP intégré.",
|
||||
"dhcp_not_found": "C'est sécuritaire d'activer le serveur DHCP intégré car AdGuard Home n'a pas trouvé de serveur DHCP actif sur le réseau. Toutefois, il vaut mieux revérifier ça manuellement, comme le test automatique ne donne pas 100% de garantie.",
|
||||
"dhcp_found": "Il y a plusieurs serveurs DHCP actifs sur le réseau. Ce n'est pas prudent d'activer le serveur DHCP intégré en ce moment.",
|
||||
"dhcp_leases": "Locations des serveurs DHCP",
|
||||
"dhcp_static_leases": "Baux statiques DHCP",
|
||||
"dhcp_leases_not_found": "Aucun bail DHCP trouvé",
|
||||
"dhcp_config_saved": "La configuration du serveur DHCP est sauvegardée",
|
||||
"dhcp_config_saved": "Configuration du serveur DHCP sauvegardée",
|
||||
"dhcp_ipv4_settings": "Paramètres IPv4 du DHCP",
|
||||
"dhcp_ipv6_settings": "Paramètres IPv6 du DHCP",
|
||||
"form_error_required": "Champ requis",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Format MAC invalide",
|
||||
"form_error_client_id_format": "Format d'ID client non valide",
|
||||
"form_error_server_name": "Nom de serveur invalide",
|
||||
"form_error_subnet": "Le sous-réseau « {{cidr}} » ne contient pas l'adresse IP « {{ip}} »",
|
||||
"form_error_positive": "Doit être supérieur à 0",
|
||||
"form_error_negative": "Doit être égal à 0 ou supérieur",
|
||||
"range_end_error": "Doit être supérieur au début de la gamme",
|
||||
@@ -49,19 +55,19 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Nom de machine",
|
||||
"dhcp_table_expires": "Expire le",
|
||||
"dhcp_warning": "Si vous souhaitez tout de même activer le serveur DHCP, assurez-vous qu'il n'y a d'autre serveur DHCP actif sur votre réseau. Sinon, cela peut faire dysfonctionner Internet sur tous les appareils connectés au réseau !",
|
||||
"dhcp_error": "Nous ne pouvons pas déterminer s'il y a un autre serveur DHCP sur le réseau.",
|
||||
"dhcp_static_ip_error": "Pour utiliser un serveur DHCP, une adresse IP statique est requise. Nous ne sommes pas parvenus à déterminer si cette interface réseau est configurée via une adresse IP statique. Veuillez définir une adresse IP manuellement.",
|
||||
"dhcp_dynamic_ip_found": "Votre système utilise une configuration d'adresses IP dynamiques pour l'interface <0>{{interfaceName}}</0>. Pour utiliser un serveur DHCP, une adresse IP statique est requise. Votre adresse IP actuelle est <0>{{ipAddress}}</0>. Nous allons automatiquement définir une adresse IP comme statique si vous appuyez sur le bouton Activer DHCP.",
|
||||
"dhcp_lease_added": "\"{{key}}\" de bail statique ajoutée avec succès",
|
||||
"dhcp_lease_deleted": "\"{{key}}\" de bail statique supprimée avec succès",
|
||||
"dhcp_warning": "Si vous souhaitez tout de même activer le serveur DHCP, assurez-vous qu'il n'y a pas d'autre serveur DHCP actif sur votre réseau. Sinon, cela peut perturber la connexion Internet sur tous les appareils connectés au réseau !",
|
||||
"dhcp_error": "AdGuard Home ne peut pas déterminer s'il y a un autre serveur DHCP actif sur le réseau.",
|
||||
"dhcp_static_ip_error": "Pour utiliser un serveur DHCP, une adresse IP statique est requise. AdGuard Home n'a pas réussi à déterminer si cette interface réseau est configurée via une adresse IP statique. Veuillez définir une adresse IP statique manuellement.",
|
||||
"dhcp_dynamic_ip_found": "Votre système utilise une configuration d'adresses IP dynamiques pour l'interface <0>{{interfaceName}}</0>. Pour utiliser un serveur DHCP, une adresse IP statique est requise. Votre adresse IP actuelle est <0>{{ipAddress}}</0>. AdGuard Home va automatiquement définir cette adresse IP comme statique si vous appuyez sur le bouton « Activer le serveur DHCP ».",
|
||||
"dhcp_lease_added": "« {{key}} » de bail statique ajoutée avec succès",
|
||||
"dhcp_lease_deleted": "« {{key}} » de bail statique supprimée avec succès",
|
||||
"dhcp_new_static_lease": "Nouveau bail statique",
|
||||
"dhcp_static_leases_not_found": "Aucun bail statique DHCP trouvé",
|
||||
"dhcp_add_static_lease": "Ajoutez un bail statique",
|
||||
"dhcp_reset": "Voulez-vous vraiment réinitialiser votre configuration DHCP ?",
|
||||
"country": "Pays",
|
||||
"city": "Ville",
|
||||
"delete_confirm": "Voulez-vous vraiment supprimer \"{{key}}\" ?",
|
||||
"delete_confirm": "Voulez-vous vraiment supprimer « {{key}} »?",
|
||||
"form_enter_hostname": "Saisissez un nom d'hôte",
|
||||
"error_details": "Détails des erreurs",
|
||||
"response_details": "Détails de la réponse",
|
||||
@@ -107,12 +113,12 @@
|
||||
"general_statistics": "Statistiques générales",
|
||||
"number_of_dns_query_days": "Le nombre de requêtes DNS traitées pour les {{count}} derniers jours",
|
||||
"number_of_dns_query_days_plural": "Le nombre de requêtes DNS traitées ces {{count}} derniers jours",
|
||||
"number_of_dns_query_24_hours": "Un nombre de requêtes DNS quieries traitées pendant les 24 heures dernières",
|
||||
"number_of_dns_query_blocked_24_hours": "Un nombre de requêtes DNS bloquées par les filtres adblock et les listes de blocage des hosts",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Un nombre de requêtes DNS bloquées par le module Sécurité de navigation d'AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Un nombre de sites à contenu adulte bloqués",
|
||||
"number_of_dns_query_24_hours": "Le nombre de requêtes DNS traitées au cours des 24 dernières heures",
|
||||
"number_of_dns_query_blocked_24_hours": "Le nombre de requêtes DNS bloquées par les filtres adblock et les listes de blocage des hôtes",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Le nombre de requêtes DNS bloquées par le module Sécurité de navigation d'AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Le nombre de sites à contenu adulte bloqués",
|
||||
"enforced_save_search": "Recherche sécurisée forcée",
|
||||
"number_of_dns_query_to_safe_search": "Un nombre de requêtes DNS faites avec la Recherche securisée",
|
||||
"number_of_dns_query_to_safe_search": "Le nombre de requêtes DNS faites avec la Recherche securisée",
|
||||
"average_processing_time": "Temps moyen de traitement",
|
||||
"average_processing_time_hint": "Temps moyen (en millisecondes) de traitement d'une requête DNS",
|
||||
"block_domain_use_filters_and_hosts": "Bloquez les domaines à l'aide des filtres et fichiers hosts",
|
||||
@@ -122,7 +128,7 @@
|
||||
"use_adguard_parental": "Utiliser le contrôle parental d'AdGuard",
|
||||
"use_adguard_parental_hint": "AdGuard Home va vérifier s'il y a du contenu pour adultes sur le domaine. Ce sera fait par aide du même API discret que celui utilisé par le service de Sécurité de navigation.",
|
||||
"enforce_safe_search": "Renforcer la recherche sécurisée",
|
||||
"enforce_save_search_hint": "AdGuard Home peut renforcer la Recherche sécurisée dans les moteurs de recherche suivants : Google, Youtube, Bing, DuckDuckGo, Yandex, Pixabay.",
|
||||
"enforce_save_search_hint": "AdGuard Home peut forcer la recherche sécurisée pour les moteurs de recherche suivants : Google, YouTube, Bing, DuckDuckGo, Yandex, Pixabay.",
|
||||
"no_servers_specified": "Pas de serveurs spécifiés",
|
||||
"general_settings": "Paramètres généraux",
|
||||
"dns_settings": "Paramètres DNS",
|
||||
@@ -195,7 +201,7 @@
|
||||
"all_lists_up_to_date_toast": "Toutes les listes sont déjà à jour",
|
||||
"updated_upstream_dns_toast": "Les serveurs DNS upstream sont mis à jour",
|
||||
"dns_test_ok_toast": "Les serveurs DNS spécifiés fonctionnent correctement",
|
||||
"dns_test_not_ok_toast": "Impossible d'utiliser le serveur \"{{key}}\": veuillez vérifier si le nom saisi est bien correct",
|
||||
"dns_test_not_ok_toast": "Impossible d'utiliser le serveur « {{key}} »: veuillez vérifier si le nom saisi est bien correct",
|
||||
"unblock": "Débloquer",
|
||||
"block": "Bloquer",
|
||||
"disallow_this_client": "Interdire ce client",
|
||||
@@ -221,8 +227,8 @@
|
||||
"page_table_footer_text": "Page",
|
||||
"rows_table_footer_text": "lignes",
|
||||
"updated_custom_filtering_toast": "Règles de filtrage d'utilisateur mises à jour",
|
||||
"rule_removed_from_custom_filtering_toast": "Règle retirée des règles d'utilisateur: {{rule}}",
|
||||
"rule_added_to_custom_filtering_toast": "Règle ajoutée aux règles d'utilisateur: {{rule}}",
|
||||
"rule_removed_from_custom_filtering_toast": "Règle retirée des règles d'utilisateur : {{rule}}",
|
||||
"rule_added_to_custom_filtering_toast": "Règle ajoutée aux règles d'utilisateur : {{rule}}",
|
||||
"query_log_response_status": "Statut : {{value}}",
|
||||
"query_log_filtered": "Filtré par {{filter}}",
|
||||
"query_log_confirm_clear": "Êtes-vous sûr de vouloir effacer tout le journal des requêtes ?",
|
||||
@@ -263,13 +269,13 @@
|
||||
"rate_limit": "Limite de taux",
|
||||
"edns_enable": "Activer le sous-réseau du client EDNS",
|
||||
"edns_cs_desc": "Si activé, AdGuard Home enverra les sous-réseaux des clients aux serveurs DNS.",
|
||||
"rate_limit_desc": "Le nombre de requêtes par seconde qu’un seul client est autorisé à faire (le réglage 0 fait illimité)",
|
||||
"rate_limit_desc": "Le nombre de requêtes par seconde qu’un seul client est autorisé à faire. Le réglage 0 fait illimité.",
|
||||
"blocking_ipv4_desc": "Adresse IP à renvoyer pour une demande A bloquée",
|
||||
"blocking_ipv6_desc": "Adresse IP à renvoyer pour une demande AAAA bloquée",
|
||||
"blocking_mode_default": "Par défaut : Répondre avec adresse IP zéro (0.0.0.0 pour A; :: pour AAAA) lorsque bloqué par la règle de style Adblock; répondre avec l’adresse IP spécifiée dans la règle lorsque bloquée par la règle du style /etc/hosts",
|
||||
"blocking_mode_refused": "REFUSED: Répondre avec le code REFUSED",
|
||||
"blocking_mode_default": "Par défaut : Répondre avec adresse IP zéro (0.0.0.0 pour A ; :: pour AAAA) lorsque bloqué par la règle de style Adblock ; répondre avec l’adresse IP spécifiée dans la règle lorsque bloquée par la règle du style /etc/hosts",
|
||||
"blocking_mode_refused": "REFUSED : Répondre avec le code REFUSED",
|
||||
"blocking_mode_nxdomain": "NXDOMAIN : Répondre avec le code NXDOMAIN",
|
||||
"blocking_mode_null_ip": "IP nulle : Répondre avec une adresse IP nulle (0.0.0.0 pour A; :: pour AAAA)",
|
||||
"blocking_mode_null_ip": "IP nulle : Répondre avec une adresse IP nulle (0.0.0.0 pour A ; :: pour AAAA)",
|
||||
"blocking_mode_custom_ip": "IP personnalisée : Répondre avec une adresse IP définie manuellement",
|
||||
"upstream_dns_client_desc": "Si vous laissez ce champ vide, AdGuard Home utilisera les serveurs configurés dans les <0>paramètres DNS</0>.",
|
||||
"tracker_source": "Source du traceur",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Interface d'écoute",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Votre interface web administrateur AdGuard Home sera disponible sur les adresses suivantes :",
|
||||
"form_error_port": "Saisissez un port valide",
|
||||
"form_error_port": "Entrez un numéro de port valide",
|
||||
"install_settings_dns": "Serveur DNS",
|
||||
"install_settings_dns_desc": "Vous devrez configurer vos appareils et votre routeur pour utiliser le serveur DNS sur les adresses suivantes :",
|
||||
"install_settings_all_interfaces": "Toutes les interfaces",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Routeur",
|
||||
"install_devices_router_desc": "Cette installation impactera automatiquement tous les appareils connectés au routeur de votre maison et vous n'aurez pas besoin de configurer manuellement chaque appareil.",
|
||||
"install_devices_address": "Le serveur DNS AdGuard Home écoute sur les adresses suivantes",
|
||||
"install_devices_router_list_1": "Ouvrez les préférences de votre routeur. Normalement, vous pouvez y accéder depuis votre navigateur Web via une URL (exemple http://192.168.0.1/ ou http://192.168.1.1/). Vous devrez peut-être saisir le mot de passe. Si vous ne vous en rappelez plus, vous pouvez le réinitialiser en appuyant sur le bouton du routeur. Certains routeurs fonctionnent sous une application spécifique, qui devrait être déjà installée sur votre ordinateur/téléphone.",
|
||||
"install_devices_router_list_1": "Ouvrez les préférences de votre routeur. Normalement vous pouvez y accéder depuis votre navigateur web via une URL du type http://192.168.0.1/ ou http://192.168.1.1/. Vous devrez peut-être renseigner le mot de passe. Si vous ne vous en rappelez pas, vous pouvez normalement le réinitialiser en appuyant sur le bouton du routeur, mais attention : si vous choisissez cette procédure, toute la configuration de votre routeur sera probablement perdue. Si votre routeur requière une application spécifique, installez-la sur votre ordinateur/téléphone et utilisez-la pour accéder aux paramètres du routeur.",
|
||||
"install_devices_router_list_2": "Trouvez les paramètres DHCP/DNS. Recherchez les lettres DNS près d'une zone qui permet la saisie de 2 ou 3 blocs de chiffres, chacun composé de 4 parties de 1 à 3 chiffres.",
|
||||
"install_devices_router_list_3": "Saisissez vos adresses de serveur AdGuard Home ici.",
|
||||
"install_devices_router_list_4": "Vous ne pouvez pas définir un serveur DNS personnalisé sur certains types de routeurs. Dans ce cas, cela peut être utile si vous configurez AdGuard Home en tant que <0>serveur DHCP</0>. Sinon, vous devez rechercher le manuel sur la façon de personnaliser les serveurs DNS pour votre modèle de routeur particulier.",
|
||||
"install_devices_router_list_4": "Vous ne pouvez pas définir un serveur DNS personnalisé sur certains types de routeurs. Dans ce cas, la configuration de AdGuard Home en tant que <0>serveur DHCP</0> peut aider. Sinon, vous devez rechercher le manuel sur la façon de personnaliser les serveurs DNS pour votre modèle de routeur particulier.",
|
||||
"install_devices_windows_list_1": "Ouvrez votre Panneau de configuration depuis le menu Démarrer ou la recherche Windows.",
|
||||
"install_devices_windows_list_2": "Allez dans la catégorie Réseau et Internet et ensuite dans le Centre Réseau et Partage.",
|
||||
"install_devices_windows_list_3": "Sur la partie gauche de l'écran, recherchez Modifier les paramètres de la carte et cliquez dessus.",
|
||||
@@ -367,7 +373,7 @@
|
||||
"topline_expired_certificate": "Votre certificat SSL a expiré. Mettez à jour vos <0>Paramètres de chiffrement</0>.",
|
||||
"form_error_port_range": "Saisissez une valeur de port entre 80 et 65535",
|
||||
"form_error_port_unsafe": "C'est un port non fiable",
|
||||
"form_error_equal": "Ne devrait pas être égal",
|
||||
"form_error_equal": "Ne doit pas être égal",
|
||||
"form_error_password": "Mots de passe différents",
|
||||
"reset_settings": "Réinitialiser les paramètres",
|
||||
"update_announcement": "AdGuard Home {{version}} est disponible ! <0>Cliquez ici</0> pour plus d'informations.",
|
||||
@@ -395,17 +401,18 @@
|
||||
"ip_address": "Adresse IP",
|
||||
"client_identifier_desc": "Les clients peuvent être identifiés par les adresses IP, CIDR, MAC ou un ID client spécial (qui peut être utilisé pour DoT/DoH/DoQ). Vous trouverez plus d'information sur l'identification des clients <0>ici</0> .",
|
||||
"form_enter_ip": "Saisissez l'IP",
|
||||
"form_enter_subnet_ip": "Saisissez une adresse IP dans le sous-réseau « {{cidr}} »",
|
||||
"form_enter_mac": "Saisissez MAC",
|
||||
"form_enter_id": "Entrer identifiant",
|
||||
"form_add_id": "Ajouter identifiant",
|
||||
"form_client_name": "Saisissez le nom du client",
|
||||
"name": "Nom",
|
||||
"client_global_settings": "Utiliser les paramètres généraux",
|
||||
"client_deleted": "Le client \"{{key}}\" a été supprimé avec succès",
|
||||
"client_added": "Le client \"{{key}}\" a été ajouté",
|
||||
"client_updated": "Le client \"{{key}}\" a été mis à jour",
|
||||
"client_deleted": "Le client « {{key}} » a été supprimé avec succès",
|
||||
"client_added": "Le client « {{key}} » a été ajouté",
|
||||
"client_updated": "Le client « {{key}} » a été mis à jour",
|
||||
"clients_not_found": "Aucun client trouvé",
|
||||
"client_confirm_delete": "Voulez-vous vraiment supprimer le client \"{{key}}\" ?",
|
||||
"client_confirm_delete": "Voulez-vous vraiment supprimer le client « {{key}} »?",
|
||||
"list_confirm_delete": "Voulez-vous vraiment supprimer cette liste ?",
|
||||
"auto_clients_title": "Clients (exécution)",
|
||||
"auto_clients_desc": "Les données des clients qu'utilisent AdGuard Home, mais non stockées dans la configuration",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Clients non autorisés",
|
||||
"access_disallowed_desc": "Une liste d'adresses IP ou CIDR. Si configuré, AdGuard Home bloquera les requêtes provenant de ces adresses IP.",
|
||||
"access_blocked_title": "Domaines interdits",
|
||||
"access_blocked_desc": "Ne confondez pas ceci avec les filtres. AdGuard Home ignorera les requêtes DNS portant sur les domaines ci-dessous.",
|
||||
"access_blocked_desc": "Ne confondez pas ceci avec les filtres. AdGuard Home ignorera les requêtes DNS portant sur les domaines ci-dessous. Ici vous pouvez spécifier les noms exacts des domaines, les caractères génériques et les règles de filtrage des URL, par exemple \"exemple.org\", \"*.exemple.org\" ou \"||example.org^\".",
|
||||
"access_settings_saved": "Paramètres d'accès enregistrés avec succès",
|
||||
"updates_checked": "Mises à jour vérifiées",
|
||||
"updates_version_equal": "AdGuard Home est à jour",
|
||||
@@ -439,11 +446,11 @@
|
||||
"setup_dns_privacy_other_5": "Vous trouverez plus d'implémentations <0>ici</0> et <1>ici</1>.",
|
||||
"setup_dns_privacy_ioc_mac": "Configuration sur iOS et macOS",
|
||||
"setup_dns_notice": "Pour utiliser le <1>DNS-over-HTTPS</1> ou le <1>DNS-over-TLS</1>, vous devez <0>configurer le Chiffrement</0> dans les paramètres de AdGuard Home.",
|
||||
"rewrite_added": "Réécriture DNS pour \"{{key}}\" ajoutée",
|
||||
"rewrite_deleted": "Réécriture DNS pour \"{{key}}\" supprimée",
|
||||
"rewrite_added": "Réécriture DNS pour « {{key}} » ajoutée",
|
||||
"rewrite_deleted": "Réécriture DNS pour « {{key}} » supprimée",
|
||||
"rewrite_add": "Ajouter une réécriture DNS",
|
||||
"rewrite_not_found": "Aucune réécriture DNS trouvée",
|
||||
"rewrite_confirm_delete": "Voulez-vous vraiment supprimer la réécriture DNS pour \"{{key}}\" ?",
|
||||
"rewrite_confirm_delete": "Voulez-vous vraiment supprimer la réécriture DNS pour « {{key}} »?",
|
||||
"rewrite_desc": "Permet de configurer facilement la réponse DNS personnalisée pour un nom de domaine spécifique.",
|
||||
"rewrite_applied": "Règle de réécriture appliquée",
|
||||
"rewrite_hosts_applied": "Réécrit par la règle du fichier d’hôtes",
|
||||
@@ -519,8 +526,8 @@
|
||||
"disable_ipv6": "Désactiver IPv6",
|
||||
"disable_ipv6_desc": "Si cette fonctionnalité est activée, toutes les requêtes DNS visant des adresses IPv6 (type AAAA) seront annulées.",
|
||||
"fastest_addr": "Adresse IP la plus rapide",
|
||||
"fastest_addr_desc": "Rechercher tous les serveurs DNS et renvoyer l’adresse IP la plus rapide parmi toutes les réponses",
|
||||
"autofix_warning_text": "Si vous cliquez sur \"Réparer\", AdGuardHome configurera votre système pour utiliser le serveur DNS AdGuardHome.",
|
||||
"fastest_addr_desc": "Rechercher tous les serveurs DNS et renvoyer l’adresse IP la plus rapide parmi toutes les réponses. Cela ralentit les requêtes DNS car AdGuard Home doit attendre les réponses de tous les serveurs DNS, mais la connectivité globale s'améliore.",
|
||||
"autofix_warning_text": "Si vous cliquez sur « Réparer », AdGuardHome configurera votre système pour utiliser le serveur DNS AdGuardHome.",
|
||||
"autofix_warning_list": "Ceci effectuera les tâches suivantes : <0>Désactiver le système DNSStubListener</0> <0>Définir l’adresse du serveur DNS à 127.0.0.1 </0> <0>Remplacer la cible du lien symbolique de /etc/resolv.conf par /run/systemd/resolve/resolv.conf</0> <0>Arrêter DNSStubListener (recharger le service résolu par systemd)</0>",
|
||||
"autofix_warning_result": "Par conséquent, toutes les demandes DNS de votre système seront traitées par AdGuardHome par défaut.",
|
||||
"tags_title": "Mots clés",
|
||||
@@ -547,10 +554,10 @@
|
||||
"static_ip": "Adresse IP statique",
|
||||
"static_ip_desc": "AdGuard Home est un serveur, il a donc besoin d’une adresse IP statique pour fonctionner correctement. Autrement, à un moment donné, votre routeur pourrait attribuer une adresse IP différente à cet appareil.",
|
||||
"set_static_ip": "Définir une adresse IP statique",
|
||||
"install_static_ok": "Bonne nouvelle! L’adresse IP statique est déjà configurée",
|
||||
"install_static_ok": "Bonne nouvelle ! L’adresse IP statique est déjà configurée",
|
||||
"install_static_error": "AdGuard Home ne peut pas le configurer automatiquement pour cette interface réseau. Veuillez rechercher une instruction sur la façon de procéder manuellement.",
|
||||
"install_static_configure": "Nous avons détecté qu’une adresse IP dynamique est utilisée — <0>{{ip}}</0>. Voulez-vous l’utiliser comme votre adresse statique?",
|
||||
"confirm_static_ip": "AdGuard Home configurera {{ip}} pour être votre adresse IP statique. Voulez-vous poursuivre?",
|
||||
"install_static_configure": "AdGuard Home a détecté qu’une adresse IP dynamique est utilisée — <0>{{ip}}</0>. Souhaitez-vous l’utiliser comme votre adresse statique ?",
|
||||
"confirm_static_ip": "AdGuard Home configurera {{ip}} pour être votre adresse IP statique. Voulez-vous poursuivre ?",
|
||||
"list_updated": "{{count}} liste mise à jour",
|
||||
"list_updated_plural": "{{count}} listes mises à jour",
|
||||
"dnssec_enable": "Activer DNSSEC",
|
||||
@@ -594,4 +601,4 @@
|
||||
"adg_will_drop_dns_queries": "AdGuard Home ignorera toutes les requêtes DNS de ce client.",
|
||||
"client_not_in_allowed_clients": "Le client n’est pas autorisé car il ne figure pas dans la liste « Clients autorisés ».",
|
||||
"experimental": "Expérimental"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"client_settings": "Postavke klijenta",
|
||||
"example_upstream_reserved": "VI možete odrediti DNS upstream-ove <0>za određene domene</0>",
|
||||
"example_upstream_comment": "Možete odrediti komentar",
|
||||
"upstream_parallel": "Koristi paralelne upite kako bi ubrzali rješavanje istovremenim ispitavanjem svih upstream poslužitelja",
|
||||
"upstream_parallel": "Koristi paralelne upite kako bi ubrzali rješavanje istovremenim ispitavanjem svih upstream poslužitelja.",
|
||||
"parallel_requests": "Paralelni zahtjevi",
|
||||
"load_balancing": "Load-balancing",
|
||||
"load_balancing_desc": "Šaljite upite po jednom poslužitelju u isto vrijeme. AdGuard Home će koristiti ponderirani slučajni algoritam za odabir poslužitelja, tako da će se najbrži poslužitelj češće koristiti.",
|
||||
@@ -18,7 +18,7 @@
|
||||
"dhcp_description": "Ukoliko vaš router ne pruža DHCP postavke, možete koristiti AdGuardov ugrađeni DHCP poslužitelj.",
|
||||
"dhcp_enable": "Omogući DHCP poslužitelj",
|
||||
"dhcp_disable": "Onemogući DHCP poslužitelj",
|
||||
"dhcp_not_found": "Sigurno je omogućiti ugrađeni DHCP poslužitelj - nismo pronašli aktivne DHCP poslužitelje na mreži. Međutim, preporučujemo vam da ponovo provjerite ručno, jer naš automatski test trenutno ne daje 100% jamstvo.",
|
||||
"dhcp_not_found": "Sigurno je omogućiti ugrađeni DHCP poslužitelj jer AdGuard Home nije pronašao nijedan aktivni DHCP poslužitelj na mreži. Međutim, preporučujemo vam da ponovo provjerite ručno, jer naš automatski test trenutno ne daje 100% jamstvo.",
|
||||
"dhcp_found": "Aktivni DHCP poslužitelj je pronađen na mreži. Nije sigurno omogućiti ugrađeni DHCP poslužitelj.",
|
||||
"dhcp_leases": "DHCP leases",
|
||||
"dhcp_static_leases": "DHCP static leases",
|
||||
@@ -50,9 +50,9 @@
|
||||
"dhcp_table_hostname": "Naziv računala",
|
||||
"dhcp_table_expires": "Istječe",
|
||||
"dhcp_warning": "Ako svejedno želite omogućiti DHCP poslužitelj, provjerite da nema drugog aktivnog DHCP poslužitelja na vašoj mreži. Inače može pokvariti Internet za ostale povezane uređaje!",
|
||||
"dhcp_error": "Nismo mogli utvrditi postoji li drugi DHCP poslužitelj na mreži.",
|
||||
"dhcp_static_ip_error": "Za korištenje DHCP poslužitelja mora se postaviti statička IP adresa. Nismo uspjeli utvrditi je li to mrežno sučelje postavljeno pomoću statičke IP adrese. Ručno postavite statičku IP adresu.",
|
||||
"dhcp_dynamic_ip_found": "Vaš sustav koristi postavke dinamičke IP adrese za sučelje <0>{{interfaceName}}</0>. Za korištenje DHCP poslužitelja mora se postaviti statička IP adresa. Vaša trenutna IP adresa je <0>{{ipAddress}}</0>. Ovu IP adresu ćemo automatski postaviti kao statičku ukoliko pritisnete Omogući DHCP dugme.",
|
||||
"dhcp_error": "AdGuard Home nije mogao utvrditi postoji li drugi aktivni DHCP poslužitelj na mreži.",
|
||||
"dhcp_static_ip_error": "Da bi se koristio DHCP poslužitelj mora se postaviti statička IP adresa. AdGuard Home nije uspio utvrditi je li ovo mrežno sučelje konfigurirano pomoću statičke IP adrese. Ručno postavite statičku IP adresu.",
|
||||
"dhcp_dynamic_ip_found": "Vaš sustav koristi postavke dinamičke IP adrese za sučelje <0>{{interfaceName}}</0>. Za korištenje DHCP poslužitelja mora se postaviti statička IP adresa. Vaša trenutna IP adresa je <0>{{ipAddress}}</0>. AdGuard Home automatski će postaviti ovu IP adresu kao statičnu ako pritisnete gumb \"Omogući DHCP\".",
|
||||
"dhcp_lease_added": "Statični lease \"{{key}}\" je uspješno dodan",
|
||||
"dhcp_lease_deleted": "Statični lease \"{{key}}\" je uspješno uklonjen",
|
||||
"dhcp_new_static_lease": "Novi static lease",
|
||||
@@ -105,10 +105,10 @@
|
||||
"top_clients": "Top klijenti",
|
||||
"no_clients_found": "Nema pronađenih klijenata",
|
||||
"general_statistics": "Opća statistika",
|
||||
"number_of_dns_query_days": "Broj DNS upita obrađenih u posljednja {{count}} dana",
|
||||
"number_of_dns_query_days": "Broj DNS upita obrađenih u posljednja {{count}} dan",
|
||||
"number_of_dns_query_days_plural": "Broj DNS upita obrađenih u posljednja {{count}} dana",
|
||||
"number_of_dns_query_24_hours": "Broj DNS upita obrađenih u posljednja 24 sata",
|
||||
"number_of_dns_query_blocked_24_hours": "Broj DNS zahtjeva koji su blokirani od strane filtara za blokiranje oglasa i lista nedopuštenih poslužitelja",
|
||||
"number_of_dns_query_blocked_24_hours": "Broj DNS zahtjeva koji blokiraju filtri za blokiranje oglasa i popisi blokova hostova",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Broj DNS zahtjeva koje je blokirao modul AdGuard zaštita pregledavanja",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Broj blokiranih stranica s sadržajem za odrasle",
|
||||
"enforced_save_search": "Omogućeno sigurno pretraživanje",
|
||||
@@ -122,7 +122,7 @@
|
||||
"use_adguard_parental": "Koristi web uslugu AdGuard roditeljske zaštite",
|
||||
"use_adguard_parental_hint": "AdGuard Home provjeriti će sadrži li domena sadržaj za odrasle. Koristi isti API za zaštitu privatnosti kao i naša usluga zaštite pregledavanja.",
|
||||
"enforce_safe_search": "Omogući sigurno pretraživanje",
|
||||
"enforce_save_search_hint": "AdGuard Home može nametnuti sigurno pretraživanje na sljedećim tražilicama: Google, Youtube, Bing, DuckDuckGo i Yandex.",
|
||||
"enforce_save_search_hint": "AdGuard Home može nametnuti sigurno pretraživanje na sljedećim tražilicama: Google, Youtube, Bing, DuckDuckGo, Yandex i Pixabay.",
|
||||
"no_servers_specified": "Nije odabran nijedan poslužitelj",
|
||||
"general_settings": "Opće postavke",
|
||||
"dns_settings": "DNS postavke",
|
||||
@@ -251,10 +251,10 @@
|
||||
"dnscrypt": "DNSCrypt",
|
||||
"dns_over_https": "DNS-over-HTTPS",
|
||||
"dns_over_tls": "DNS-over-TLS",
|
||||
"dns_over_quic": "DNS-over-Quic",
|
||||
"dns_over_quic": "DNS-over-QUIC",
|
||||
"client_id": "ID klijenta",
|
||||
"client_id_placeholder": "Unesite ID klijenta",
|
||||
"client_id_desc": "Razni klijenti mogu biti prepoznati po specijalnom identifikatoru. <a>Ovdje</a> možete saznati više kako možete identificirati klijente.",
|
||||
"client_id_desc": "Različiti klijenti mogu se prepoznati pomoću posebnog ID-a klijenta. <a>Ovdje</a> možete saznati više o tome kako prepoznati klijente.",
|
||||
"download_mobileconfig_doh": "Preuzmi .mobileconfig za DNS-over-HTTPS",
|
||||
"download_mobileconfig_dot": "Preuzmi .mobileconfig za DNS-over-TLS",
|
||||
"download_mobileconfig": "Preuzmite konfiguracijsku datoteku",
|
||||
@@ -263,7 +263,7 @@
|
||||
"rate_limit": "Ograničenje",
|
||||
"edns_enable": "Omogući EDNS Client Subnet",
|
||||
"edns_cs_desc": "Ako je omogućeno, AdGuard Home će slati podmreže klijenata na DNS poslužitelje.",
|
||||
"rate_limit_desc": "Broj zahtjeva u sekundi koji su dopušteni po jednom klijentu (postavljanje na 0 znači neograničeno)",
|
||||
"rate_limit_desc": "Broj zahtjeva u sekundi koji su dopušteni po jednom klijentu. Postavljanje na 0 znači neograničeno.",
|
||||
"blocking_ipv4_desc": "Povratna IP adresa za blokirane A zahtjeve",
|
||||
"blocking_ipv6_desc": "Povratna IP adresa za blokirane AAAA zahtjeve",
|
||||
"blocking_mode_default": "Zadano: Odgovori s nultom IP adresom (0.0.0.0 za A; :: za AAAA) kada ga blokira Adblock slično pravilo; odgovorite s IP adresom definiranom u pravilu kada je blokirano od /etc/hosts sličnog pravila",
|
||||
@@ -276,7 +276,7 @@
|
||||
"source_label": "Izvor",
|
||||
"found_in_known_domain_db": "Pronađeno u bazi poznatih domena.",
|
||||
"category_label": "Kategorija",
|
||||
"rule_label": "Pravilo",
|
||||
"rule_label": "Pravilo/a",
|
||||
"list_label": "Popis",
|
||||
"unknown_filter": "Nepoznati filtar {{filterId}}",
|
||||
"known_tracker": "Poznati pratitelj",
|
||||
@@ -286,7 +286,7 @@
|
||||
"install_settings_listen": "Osluškuj sučelje",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Web administratorsko sučelje AdGuard Home-a će biti dostupno na sljedećim adresama:",
|
||||
"form_error_port": "Unesite važeću vrijednost za port",
|
||||
"form_error_port": "Unesite važeći broj porta",
|
||||
"install_settings_dns": "DNS poslužitelj",
|
||||
"install_settings_dns_desc": "Potrebno je postaviti uređaj ili router da koristi DNS poslužitelj na sljedećim adresama:",
|
||||
"install_settings_all_interfaces": "Sva sučelja",
|
||||
@@ -305,10 +305,10 @@
|
||||
"install_devices_router": "Usmjerivač (Router)",
|
||||
"install_devices_router_desc": "Ovo postavljanje će automatski pokriti sve uređaje povezane na vaš kućni router i nećete trebati ručno postavljati svaki od njih.",
|
||||
"install_devices_address": "AdGuard Home DNS poslužitelj osluškuje sljedeće adrese",
|
||||
"install_devices_router_list_1": "Otvorite postavke za router. Obično mu možete pristupiti iz preglednika putem URL-a (kao što je http://192.168.0.1/ ili http://192.168.1.1/). Od vas će se možda tražiti da unesete lozinku. Ako je se ne sjećate, lozinku možete često poništiti pritiskom na dumge na samom routeru. Neki routeri trebaju određenu aplikaciju, koja bi u tom slučaju trebala biti već instalirana na vašem računalu/telefonu.",
|
||||
"install_devices_router_list_1": "Otvorite postavke za router. Obično mu možete pristupiti iz preglednika putem URL-a, kao što je http://192.168.0.1/ ili http://192.168.1.1/. Od vas će se možda tražiti da unesete lozinku. Ako je se ne sjećate, lozinku možete često poništiti pritiskom na dumge na samom routeru. Neki routeri trebaju određenu aplikaciju, koja bi u tom slučaju trebala biti već instalirana na vašem računalu/telefonu.",
|
||||
"install_devices_router_list_2": "Pronađite DHCP/DNS postavke. Potražite DNS slova pored polja koje dopušta dva ili tri skupa brojeva, svaki razdvojen u četiri skupine od jedne do tri znamenke.",
|
||||
"install_devices_router_list_3": "Unesite adresu AdGuard Home poslužitelja ovdje.",
|
||||
"install_devices_router_list_4": "Ne možete postaviti prilagođeni DNS poslužitelj na nekim vrstama routera. U ovom slučaju, može vam pomoći ako postavite AdGuard Home kao <0>DHCP poslužitelj</0>. U suprotnom, trebali biste potražiti priručnik o tome kako prilagoditi DNS poslužitelje za vaš određeni model routera.",
|
||||
"install_devices_router_list_4": "Na nekim se vrstama usmjerivača ne može postaviti prilagođeni DNS poslužitelj. U ovom slučaju, može vam pomoći ako postavite AdGuard Home kao <0>DHCP poslužitelj</0>. U suprotnom, trebali biste potražiti priručnik o tome kako prilagoditi DNS poslužitelje za vaš određeni model routera.",
|
||||
"install_devices_windows_list_1": "Otvorite Upravljačku ploču putem Start izbornika ili Windows pretrage.",
|
||||
"install_devices_windows_list_2": "Idite na kategoriju Mreža i Internet i odaberite Centar za mreže i zajedničko korištenje.",
|
||||
"install_devices_windows_list_3": "Na lijevoj strani zaslona pronađite Promjeni postavke adaptera i pritisnite na to.",
|
||||
@@ -334,10 +334,10 @@
|
||||
"install_saved": "Uspješno spremljeno",
|
||||
"encryption_title": "Šifriranje",
|
||||
"encryption_desc": "Podrška šifriranja (HTTPS/TLS) za DNS i administratorsko web sučelje",
|
||||
"encryption_config_saved": "Spremljene postavke šifriranja",
|
||||
"encryption_config_saved": "Konfiguracija šifriranja spremljena",
|
||||
"encryption_server": "Naziv poslužitelja",
|
||||
"encryption_server_enter": "Unesite naziv domene",
|
||||
"encryption_server_desc": "Kako biste koristili HTTPS, morate unijeti naziv poslužitelja koji odgovara vašem SSL certifikatu.",
|
||||
"encryption_server_desc": "Da biste koristili HTTPS, morate unijeti ime poslužitelja koje odgovara vašem SSL certifikatu ili wildcard certifikatu. Ako polje nije postavljeno, prihvatit će TLS veze za bilo koju domenu.",
|
||||
"encryption_redirect": "Automatski preusmjeri na HTTPS",
|
||||
"encryption_redirect_desc": "Ako je omogućeno, AdGuard Home će vas automatski preusmjeravati s HTTP na HTTPS adrese.",
|
||||
"encryption_https": "HTTPS port",
|
||||
@@ -365,7 +365,7 @@
|
||||
"encryption_reset": "Jeste li sigurni da želite poništiti postavke šifriranja?",
|
||||
"topline_expiring_certificate": "Vaš SSL certifikat uskoro ističe. Ažurirajte <0>Postavke šifriranja</0>.",
|
||||
"topline_expired_certificate": "Vaš SSL certifikat je istekao. Ažurirajte <0>Postavke šifriranja</0>.",
|
||||
"form_error_port_range": "Unesite vrijednost porta od 80 do 65536",
|
||||
"form_error_port_range": "Unesite broj porta od 80 do 65536",
|
||||
"form_error_port_unsafe": "Ovo je nesigurna port",
|
||||
"form_error_equal": "Ne bi trebalo biti jednako",
|
||||
"form_error_password": "Lozinka se ne podudara",
|
||||
@@ -393,7 +393,7 @@
|
||||
"client_edit": "Uredi klijenta",
|
||||
"client_identifier": "Identifikator",
|
||||
"ip_address": "IP adresa",
|
||||
"client_identifier_desc": "Klijenti se mogu prepoznati po IP adresi, CIDR-u ili MAC adresi. Imajte na umu da je upotreba MAC-a kao identifikatora, moguća samo ako je AdGuard Home također i <0>DHCP poslužitelj</0>",
|
||||
"client_identifier_desc": "Klijenti se mogu identificirati prema IP adresi, CIDR-u, MAC adresi ili posebnom ID-u klijenta (može se koristiti za DoT/DoH/DoQ). <0>Ovdje</0> možete saznati više o tome kako prepoznati klijente.",
|
||||
"form_enter_ip": "Unesite IP adresu",
|
||||
"form_enter_mac": "Unesite MAC adresu",
|
||||
"form_enter_id": "Unesi identifikator",
|
||||
@@ -437,7 +437,7 @@
|
||||
"setup_dns_privacy_other_3": "<0>dnscrypt-proxy</0> podržava <1>DNS-over-HTTPS</1>.",
|
||||
"setup_dns_privacy_other_4": "<0>Mozilla Firefox</0> podržava <1>DNS-over-HTTPS</1>.",
|
||||
"setup_dns_privacy_other_5": "Možete pronaći više implementacija <0>ovdje</0> i <1>ovdje</1>.",
|
||||
"setup_dns_privacy_ioc_mac": "konfiguracija za iOS i macOS",
|
||||
"setup_dns_privacy_ioc_mac": "iOS i macOS konfiguracija",
|
||||
"setup_dns_notice": "Da biste koristili <1>DNS-over-HTTPS</1> ili <1>DNS-over-TLS</1>, morate <0>postaviti šifriranje</0> u AdGuard Home postavkama.",
|
||||
"rewrite_added": "DNS prijepis za \"{{key}}\" je uspješno dodan",
|
||||
"rewrite_deleted": "DNS prijepis za \"{{key}}\" je uspješno uklonjen",
|
||||
@@ -519,7 +519,7 @@
|
||||
"disable_ipv6": "Onemogući IPv6",
|
||||
"disable_ipv6_desc": "Ukoliko je ova značajka omogućena, svi DNS upiti za IPv6 adrese (AAAA tip) će biti odbačeni.",
|
||||
"fastest_addr": "Najbrža IP adresa",
|
||||
"fastest_addr_desc": "Ispitajte sve DNS poslužitelje i vratite najbržu IP adresu među svim odgovorima. Ovo će usporiti DNS upite jer moramo čekati odgovore sa svih DNS poslužitelja, ali će poboljšati cjelokupnu povezanost.",
|
||||
"fastest_addr_desc": "Ispitajte sve DNS poslužitelje i vratite najbržu IP adresu među svim odgovorima. To usporava DNS upite jer AdGuard Home mora čekati odgovore svih DNS poslužitelja, ali poboljšava ukupnu povezanost.",
|
||||
"autofix_warning_text": "Ako pritisnete \"Popravi\", AdGuard Home će postaviti vaš sustav da koristi AdGuardHome DNS poslužitelj.",
|
||||
"autofix_warning_list": "Izvodi sljedeće radnje: <0>Deaktiviraj DNSStubListener sustav</0> <0>Postavi adresu DNS poslužitelja na 127.0.0.1</0> <0>Zamijeni simbolički cilj veze iz /etc/resolv.conf u /run/systemd/resolve/resolv.conf</0> <0>Zaustavi DNSStubListener (ponovno pokreni systemd-resolved uslugu)</0>",
|
||||
"autofix_warning_result": "Kao rezultat toga, sve DNS zahtjeve iz vašeg sustava će AdGuard Home obraditi prema zadanim postavkama.",
|
||||
@@ -549,7 +549,7 @@
|
||||
"set_static_ip": "Postavite statičku IP adresu",
|
||||
"install_static_ok": "Dobre vijesti! Statička IP adresa već je postavljena",
|
||||
"install_static_error": "AdGuard Home ne može je automatski postaviti za ovo mrežno sučelje. Molimo potražite upute kako to učiniti ručno.",
|
||||
"install_static_configure": "Otkrili smo da se koristi dinamička IP adresa - <0>{{ip}}</0>. Želite li je koristiti kao svoju statičku adresu?",
|
||||
"install_static_configure": "AdGuard Home otkrio je da se koristi dinamička IP adresa <0>{{ip}}</0>. Želite li da bude postavljena kao vaša statička adresa?",
|
||||
"confirm_static_ip": "AdGuard Home će postaviti {{ip}} kao vašu statičku IP adresu. Želiš li nastaviti?",
|
||||
"list_updated": "{{count}} popis ažuriran",
|
||||
"list_updated_plural": "{{count}} popisa ažurirana",
|
||||
@@ -587,11 +587,11 @@
|
||||
"filter_category_security_desc": "Popisi koju su specijalizirani za blokiranje zlonamjernih programa, krađe identiteta ili domena za obmanu",
|
||||
"filter_category_regional_desc": "Popisi koji se fokusiraju na regionalne oglase i poslužitelje za praćenje",
|
||||
"filter_category_other_desc": "Ostali popisi nedopuštenih",
|
||||
"setup_config_to_enable_dhcp_server": "Postavite postavke za omogućavanje DHCP poslužitelja",
|
||||
"setup_config_to_enable_dhcp_server": "Postavite konfiguraciju za omogućavanje DHCP poslužitelja",
|
||||
"original_response": "Originalni odgovor",
|
||||
"click_to_view_queries": "Kliknite za pregled upita",
|
||||
"port_53_faq_link": "Port 53 često zauzimaju usluge \"DNSStubListener\" ili \"systemd-resolved\". Molimo pročitajte <0>ove upute</0> o tome kako to riješiti.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home odbaciti će sve DNS upite od ovog klijenta.",
|
||||
"client_not_in_allowed_clients": "Klijent nije dopušten jer nije na popisu \"Dopuštenih klijenata\".",
|
||||
"experimental": "Eksperimentalno"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
"client_settings": "Kliens beállítások",
|
||||
"example_upstream_reserved": "Megadhat egy DNS kiszolgálót <0>egy adott domainhez vagy domainekhez</0>",
|
||||
"example_upstream_comment": "Megadhat egy megjegyzést",
|
||||
"upstream_parallel": "Használjon párhuzamos lekéréseket a domainek feloldásának felgyorsításához az összes upstream kiszolgálóra való egyidejű lekérdezéssel",
|
||||
"upstream_parallel": "Használjon párhuzamos lekéréseket a domainek feloldásának felgyorsításához az összes upstream kiszolgálóra való egyidejű lekérdezéssel.",
|
||||
"parallel_requests": "Párhuzamos lekérések",
|
||||
"load_balancing": "Terheléselosztás",
|
||||
"load_balancing_desc": "Egyszerre csak egy szerverről történjen lekérdezés. Az AdGuard Home egy súlyozott, véletlenszerű algoritmust fog használni a megfelelő szerver kiválasztására, így a leggyorsabb szervert gyakrabban fogja használni.",
|
||||
"bootstrap_dns": "Bootstrap DNS kiszolgálók",
|
||||
"bootstrap_dns_desc": "A Bootstrap DNS szerverek a DoH/DoT feloldók IP-címeinek feloldására szolgálnak.",
|
||||
"local_ptr_title": "Privát DNS szerverek",
|
||||
"local_ptr_desc": "Azok a DNS szerverek, amiket az AdGuard Home a helyi PTR kérésekhez használ. Ezeket a szervereket arra használjuk, hogy az rDNS segítségével fel lehessen oldani a kliensek hosztneveit. Ha nincs beállítva ilyen, akkor az AdGuard Home alapértelmezés szerint az OS nevét fogja feloldani.",
|
||||
"local_ptr_placeholder": "Adjon meg soronként egy kiszolgáló címet",
|
||||
"resolve_clients_title": "Kliensek IP címeinek fordított feloldása",
|
||||
"resolve_clients_desc": "Ha engedélyezve van, az AdGuard Home megpróbálja átfordítani a kliensek IP címeit hosztnevekre, PTR lekérdezéseket küldve a megfelelő feloldóknak (privát DNS szerverek a helyi kliensek számára, upstream szerverek a nyilvános IP címmel rendelkező ügyfelek számára).",
|
||||
"check_dhcp_servers": "DHCP szerverek keresése",
|
||||
"save_config": "Konfiguráció mentése",
|
||||
"enabled_dhcp": "DHCP szerver engedélyezve",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "Ha a router nem nyújt DHCP beállításokat, akkor használhatja helyette az AdGuard saját, beépített DHCP szerverét.",
|
||||
"dhcp_enable": "DHCP szerver engedélyezése",
|
||||
"dhcp_disable": "DHCP szerver letiltása",
|
||||
"dhcp_not_found": "Biztonságos a beépített DHCP szerver engedélyezése - ugyanis nem találtunk aktív DHCP szervert a hálózaton. Javasoljuk azonban, hogy ellenőrizze kézileg is, mivel az automatikus tesztünk jelenleg nem ad 100%-os garanciát.",
|
||||
"dhcp_not_found": "Biztonságos a beépített DHCP-kiszolgáló engedélyezése, mert az AdGuard Home nem talált aktív DHCP-kiszolgálót a hálózaton. Javasoljuk azonban, hogy ellenőrizze kézileg is, mivel az automatikus tesztünk jelenleg nem ad 100%-os garanciát.",
|
||||
"dhcp_found": "Egy aktív DHCP szerver található a hálózaton. Nem biztonságos a beépített DHCP szerver engedélyezése.",
|
||||
"dhcp_leases": "DHCP bérletek",
|
||||
"dhcp_static_leases": "Statikus DHCP bérletek",
|
||||
"dhcp_leases_not_found": "Nem találhatóak DHCP bérletek",
|
||||
"dhcp_config_saved": "DHCP beállítások elmentve",
|
||||
"dhcp_config_saved": "DHCP beállítások sikeresen el lettek mentve",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4 Beállítások",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 Beállítások",
|
||||
"form_error_required": "Kötelező mező",
|
||||
@@ -32,6 +37,8 @@
|
||||
"form_error_ip_format": "Érvénytelen IP formátum",
|
||||
"form_error_mac_format": "Érvénytelen MAC formátum",
|
||||
"form_error_client_id_format": "Érvénytelen kliens ID formátum",
|
||||
"form_error_server_name": "Érvénytelen szervernév",
|
||||
"form_error_subnet": "A(z) \"{{cidr}}\" alhálózat nem tartalmazza a(z) \"{{ip}}\" IP címet",
|
||||
"form_error_positive": "0-nál nagyobbnak kell lennie",
|
||||
"form_error_negative": "Legalább 0-nak kell lennie",
|
||||
"range_end_error": "Nagyobbnak kell lennie, mint a tartomány kezdete",
|
||||
@@ -48,8 +55,8 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Hosztnév",
|
||||
"dhcp_table_expires": "Lejár",
|
||||
"dhcp_warning": "Ha mindenképpen engedélyezni szeretné a DHCP szervert, akkor győződjön meg arról, hogy nincs-e más aktív DHCP szerver a hálózaton. Ellenkező esetben tönkreteheti az eszközei internetkapcsolatát!",
|
||||
"dhcp_error": "Nem tudtuk meghatározni, hogy van-e másik DHCP szerver a hálózaton.",
|
||||
"dhcp_warning": "Ha engedélyezni szeretné a DHCP-kiszolgálót, ellenőrizze, hogy nincs-e más aktív DHCP-kiszolgáló a hálózaton, mert ez megszakíthatja a hálózati eszközök internetkapcsolatát.",
|
||||
"dhcp_error": "Az AdGuard Home nem tudta megállapítani, hogy van-e másik aktív DHCP-szerver a hálózaton.",
|
||||
"dhcp_static_ip_error": "A DHCP szerver használatához statikus IP-címet kell beállítani. Nem sikerült meghatározni, hogy ez a hálózati interfész statikus IP-cím használatával van-e beállítva. Állítson be kézzel egy statikus IP-címet.",
|
||||
"dhcp_dynamic_ip_found": "A rendszer dinamikus IP-cím konfigurációt használ az <0>{{interfaceName}}</0> interfészhez. A DHCP szerver használatához statikus IP-címet kell beállítani. Jelenlegi IP-címe: <0>{{ipAddress}}</0>. Automatikusan beállítjuk ezt az IP címet statikusnak, ha rányom a DHCP engedélyezése gombra.",
|
||||
"dhcp_lease_added": "Statikus bérlet \"{{key}}\" sikeresen hozzáadva",
|
||||
@@ -121,7 +128,7 @@
|
||||
"use_adguard_parental": "Használja az AdGuard szülői felügyelet webszolgáltatását",
|
||||
"use_adguard_parental_hint": "Az AdGuard Home ellenőrzi, hogy a domain tartalmaz-e felnőtteknek szóló anyagokat. Ugyanazokat az adatvédelmi API-kat használja, mint a böngésző biztonsági webszolgáltatás.",
|
||||
"enforce_safe_search": "Biztonságos keresés kényszerítése",
|
||||
"enforce_save_search_hint": "Az AdGuard Home a következő keresőmotorokban biztosíthatja a biztonságos keresést: Google, Youtube, Bing, DuckDuckGo és Yandex.",
|
||||
"enforce_save_search_hint": "Az AdGuard Home a következő keresőmotorokban biztosíthatja a biztonságos keresést: Google, Youtube, Bing, DuckDuckGo, Yandex és Pixabay.",
|
||||
"no_servers_specified": "Nincsenek megadott kiszolgálók",
|
||||
"general_settings": "Általános beállítások",
|
||||
"dns_settings": "DNS beállítások",
|
||||
@@ -247,16 +254,22 @@
|
||||
"custom_ip": "Egyedi IP",
|
||||
"blocking_ipv4": "IPv4 blokkolása",
|
||||
"blocking_ipv6": "IPv6 blokkolása",
|
||||
"dnscrypt": "DNSCrypt",
|
||||
"dns_over_https": "DNS-over-HTTPS",
|
||||
"dns_over_tls": "DNS-over-TLS",
|
||||
"dns_over_quic": "DNS-over-QUIC",
|
||||
"client_id": "Kliens azonosító",
|
||||
"client_id_placeholder": "Kliens azonosító megadása",
|
||||
"client_id_desc": "A különböző klienseket egy speciális kliens azonosító segítségével lehet azonosítani. <a>Itt</a> többet is megtudhat arról, hogyan lehet a klienseket azonosítani.",
|
||||
"download_mobileconfig_doh": ".mobileconfig letöltése DNS-over-HTTPS-hez",
|
||||
"download_mobileconfig_dot": ".mobileconfig letöltése DNS-over-TLS-hez",
|
||||
"download_mobileconfig": "Konfigurációs fájl letöltése",
|
||||
"plain_dns": "Egyszerű DNS",
|
||||
"form_enter_rate_limit": "Adja meg a kérések maximális számát",
|
||||
"rate_limit": "Kérések korlátozása",
|
||||
"edns_enable": "EDNS kliens alhálózat engedélyezése",
|
||||
"edns_cs_desc": "Ha engedélyezve van, az AdGuard Home a kliensek alhálózatait küldi el a DNS-kiszolgálóknak.",
|
||||
"rate_limit_desc": "Maximálisan hány kérést küldhet egy kliens másodpercenként (0: korlátlan)",
|
||||
"rate_limit_desc": "Maximálisan hány kérést küldhet egy kliens másodpercenkén. Ha 0-ra állítja, akkor nincs korlátozás.",
|
||||
"blocking_ipv4_desc": "A blokkolt A kéréshez visszaadandó IP-cím",
|
||||
"blocking_ipv6_desc": "A blokkolt AAAA kéréshez visszaadandó IP-cím",
|
||||
"blocking_mode_default": "Alapértelmezés: Válaszoljon nulla IP-címmel (vagyis 0.0.0.0 az A-hoz, :: pedig az AAAA-hoz), amikor a blokkolás egy adblock-stílusú szabállyal történik; illetve válaszoljon egy, a szabály által meghatározott IP címmel, amikor a blokkolás egy /etc/hosts stílusú szabállyal történik",
|
||||
@@ -269,6 +282,7 @@
|
||||
"source_label": "Forrás",
|
||||
"found_in_known_domain_db": "Benne van az ismert domainek listájában.",
|
||||
"category_label": "Kategória",
|
||||
"rule_label": "Szabály(ok)",
|
||||
"list_label": "Lista",
|
||||
"unknown_filter": "Ismeretlen szűrő: {{filterId}}",
|
||||
"known_tracker": "Ismert követő",
|
||||
@@ -278,7 +292,7 @@
|
||||
"install_settings_listen": "Figyelő felület",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Az AdGuard Home webes admin felülete elérhető a következő címe(ke)n:",
|
||||
"form_error_port": "Adjon meg egy érvényes portot",
|
||||
"form_error_port": "Írja be az érvényes portszámot",
|
||||
"install_settings_dns": "DNS szerver",
|
||||
"install_settings_dns_desc": "Be kell állítania az eszközeit vagy a routerét, hogy használni tudja a DNS szervert a következő címeken:",
|
||||
"install_settings_all_interfaces": "Minden felület",
|
||||
@@ -297,7 +311,7 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Ez a beállítás lefed minden eszközt, amik az Ön routeréhez csatlakoznak, így azokat nem kell külön, kézzel beállítania.",
|
||||
"install_devices_address": "Az AdGuard DNS szerver a következő címeket figyeli",
|
||||
"install_devices_router_list_1": "Nyissa meg a router beállításait. Ez általában a böngészőn keresztül történik egy URL megadásával (pl. http://192.168.0.1/ vagy http://192.168.1.1/). Ez az oldal valószínűleg felhasználónevet és jelszót fog kérni. Ha nem tudja a belépési adatokat, nézze meg a router dobozát, a router alján levő fehér címkét vagy a technikai dokumentációt az interneten, végső esetben pedig visszaállíthatja a routert. Néhány router speciális alkalmazást igényel, amik lehetséges, hogy már telepítve vannak a számítógépére vagy a mobil eszközére.",
|
||||
"install_devices_router_list_1": "Nyissa meg a router beállításait. Ez általában a böngészőn keresztül történik egy URL megadásával (pl. http://192.168.0.1/ vagy http://192.168.1.1/). Ez az oldal valószínűleg felhasználónevet és jelszót fog kérni. Ha nem tudja a belépési adatokat, ellenőrizze a router dobozát, a router alján levő fehér címkét vagy a technikai dokumentációt az interneten. Végső esetben visszaállíthatja a routert, azonban ne feledje, hogyha ezt az eljárást választja, akkor valószínűleg elveszíti annak összes beállítását. Ha a router beállításához alkalmazásra van szükség, telepítse az alkalmazást a telefonjára vagy a számítógépére, és használja azt az útválasztó beállításainak eléréséhez.",
|
||||
"install_devices_router_list_2": "Keresse meg a DHCP/DNS beállításokat. Keresse a DNS szót egy olyan mező mellett, amely egy 4 csoportból álló, 1-3 számjegyű számsort vár.",
|
||||
"install_devices_router_list_3": "Adja meg az AdGuard Home szerver címét itt.",
|
||||
"install_devices_router_list_4": "Bizonyos típusú routereknél nem állíthat be egyéni DNS-kiszolgálót. Ebben az esetben segíthet, ha az AdGuard Home-t DHCP-szerverként állítja be. Ellenkező esetben keresse meg az adott router kézikönyvében a DNS-kiszolgálók testreszabását.",
|
||||
@@ -329,6 +343,7 @@
|
||||
"encryption_config_saved": "Titkosítási beállítások mentve",
|
||||
"encryption_server": "Szerver neve",
|
||||
"encryption_server_enter": "Adja meg az Ön domain címét",
|
||||
"encryption_server_desc": "A HTTPS használatához meg kell adnia a szerver nevét, amely megegyezik az SSL tanúsítvánnyal vagy a helyettesítő tanúsítvánnyal. Ha a mező nincs beállítva, akkor bármely tartományhoz elfogadja a TLS kapcsolatokat.",
|
||||
"encryption_redirect": "Automatikus átirányítás HTTPS kapcsolatra",
|
||||
"encryption_redirect_desc": "Ha be van jelölve, az AdGuard Home automatikusan átirányítja a HTTP kapcsolatokat a biztonságos HTTPS protokollra.",
|
||||
"encryption_https": "HTTPS port",
|
||||
@@ -384,7 +399,9 @@
|
||||
"client_edit": "Kliens módosítása",
|
||||
"client_identifier": "Azonosító",
|
||||
"ip_address": "IP cím",
|
||||
"client_identifier_desc": "A klienseket az IP-cím, a CIDR, a MAC-cím vagy egy speciális kliens azonosító alapján lehet azonosítani (ez használható DoT/DoH /DoQ esetén). <0>Itt</0> többet is megtudhat a kliensek azonosításáról.",
|
||||
"form_enter_ip": "IP-cím megadása",
|
||||
"form_enter_subnet_ip": "Adjon meg egy IP címet az alhálózatban \"{{cidr}}\"",
|
||||
"form_enter_mac": "MAC-cím megadása",
|
||||
"form_enter_id": "Azonosító megadása",
|
||||
"form_add_id": "Azonosító hozzáadása",
|
||||
@@ -427,6 +444,7 @@
|
||||
"setup_dns_privacy_other_3": "A <0>dnscrypt-proxy</0> támogatja a <1>DNS-over-HTTPS</1>-t.",
|
||||
"setup_dns_privacy_other_4": "A <0>Mozilla Firefox</0> támogatja a <1>DNS-over-HTTPS</1>-t.",
|
||||
"setup_dns_privacy_other_5": "További megvalósításokat találhat <0>ide</0> és <1>ide</1> kattintva.",
|
||||
"setup_dns_privacy_ioc_mac": "iOS és macOS konfiguráció",
|
||||
"setup_dns_notice": "Ahhoz, hogy a <1>DNS-over-HTTPS</1> vagy a <1>DNS-over-TLS</1> valamelyikét használja, muszáj <0>beállítania a titkosítást</0> az AdGuard Home beállításaiban.",
|
||||
"rewrite_added": "DNS átírás a(z) \"{{key}}\" kulcshoz sikeresen hozzáadva",
|
||||
"rewrite_deleted": "DNS átírás a(z) \"{{key}}\" kulcshoz sikeresen törölve",
|
||||
@@ -583,4 +601,4 @@
|
||||
"adg_will_drop_dns_queries": "Az AdGuard Home eldobja az összes DNS kérést erről a kliensről.",
|
||||
"client_not_in_allowed_clients": "Ez a kliens nincs engedélyezve, mivel nincs rajta az \"Engedélyezett kliensek\" listáján.",
|
||||
"experimental": "Kísérleti"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
"load_balancing_desc": "Permintaan satu server pada satu waktu. AdGuard Home akan menggunakan algoritma acak tertimbang untuk memilih server sehingga server tercepat akan lebih sering digunakan.",
|
||||
"bootstrap_dns": "Server DNS bootstrap",
|
||||
"bootstrap_dns_desc": "Server Bootstrap DNS dapat digunakan untuk meresolve alamat IP pada DoH/DoT resolvers yang Anda tentukan sebagai upstreams.",
|
||||
"local_ptr_title": "Server DNS pribadi",
|
||||
"local_ptr_desc": "Server DNS yang digunakan AdGuard Home untuk kueri PTR lokal. Server ini digunakan untuk menetapkan nama host klien bersama alamat IP pribadi, sebagai contoh \"192.168.12.34\", menggunakan rDNS. Jika tidka diatur, AdGuard Home akan menggunakan resolver DNS bawaan/default OS Anda.",
|
||||
"local_ptr_placeholder": "Masukkan satu alamat server per baris",
|
||||
"resolve_clients_title": "Aktifkan resolusi hostname klien",
|
||||
"resolve_clients_desc": "Jika diaktifkan, AdGuard Home akan mencoba menyelesaikan hostname klien secara otomatis dari alamat IP mereka dengan mengirimkan kueri PTR ke penyelesai yang sesuai (server DNS pribadi untuk klien lokal, server upstream untuk klien dengan IP publik).",
|
||||
"check_dhcp_servers": "Cek untuk server DHCP",
|
||||
"save_config": "Simpan pengaturan",
|
||||
"enabled_dhcp": "Server DHCP diaktifkan",
|
||||
@@ -18,7 +23,7 @@
|
||||
"dhcp_description": "Jika router Anda tidak mendukung pengaturan DHCP, Anda dapat menggunakan server DHCP bawaan AdGuard.",
|
||||
"dhcp_enable": "Aktifkan server DHCP",
|
||||
"dhcp_disable": "Nonaktifkan server DHCP",
|
||||
"dhcp_not_found": "Tidak ditemukan server DHCP aktif dalam jaringan. Aman untuk mengaktifkan server DHCP bawaan.",
|
||||
"dhcp_not_found": "Aman untuk mengaktifkan server DHCP yang dibangun karena rumah AdGuard tidak menemukan server DHCP yang aktif pada jaringan. Namun, Anda harus memeriksa ulang secara manual sebagai penyelidikan otomatis tidak memberikan jaminan 100%.",
|
||||
"dhcp_found": "Ditemukan beberapa server DHCP aktif di dalam jaringan. Tidak aman untuk menyalakan server DHCP bawaan.",
|
||||
"dhcp_leases": "DHCP leases",
|
||||
"dhcp_static_leases": "DHCP static leases",
|
||||
@@ -32,6 +37,8 @@
|
||||
"form_error_ip_format": "Format IPv4 tidak valid",
|
||||
"form_error_mac_format": "Format MAC tidak valid",
|
||||
"form_error_client_id_format": "Format client ID tidak valid",
|
||||
"form_error_server_name": "Nama server tidak valid",
|
||||
"form_error_subnet": "Subnet \"{{cidr}}\" tidak berisi alamat IP \"{{ip}}\"",
|
||||
"form_error_positive": "Harus lebih dari 0",
|
||||
"form_error_negative": "Harus berjumlah 0 atau lebih besar dari 0",
|
||||
"range_end_error": "Harus lebih besar dari rentang awal",
|
||||
@@ -49,9 +56,9 @@
|
||||
"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_error": "Kami tidak dapat menentukan apakah tersedia server DHCP lainnya pada jaringan.",
|
||||
"dhcp_static_ip_error": "Jika ingin menggunakan server DHCP, alamat IP statis harus diatur. Kami 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}}</0>. Untuk menggunakan server DHCP, alamat IP statis harus ditetapkan. Alamat IP Anda saat ini adalah <0>{{ipAddress}}</0>. Kami akan secara otomatis menetapkan alamat IP ini sebagai statis jika Anda menekan tombol Aktifkan DHCP.",
|
||||
"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}}</0>. Untuk menggunakan server DHCP, alamat IP statis harus ditetapkan. Alamat IP Anda saat ini adalah <0>{{ipAddress}}</0>. AdGuard Home akan secara otomatis menetapkan alamat IP ini sebagai statis jika Anda menekan tombol Aktifkan DHCP.",
|
||||
"dhcp_lease_added": "Static lease \"{{key}}\" berhasil ditambahkan",
|
||||
"dhcp_lease_deleted": "Static lease \"{{key}}\" berhasil dihapus",
|
||||
"dhcp_new_static_lease": "Static lease baru",
|
||||
@@ -104,7 +111,7 @@
|
||||
"top_clients": "Klien teratas",
|
||||
"no_clients_found": "Tidak ditemukan klien",
|
||||
"general_statistics": "Statistik umum",
|
||||
"number_of_dns_query_days": "Jumlah kueri DNS diproses selama {{count}} hari terakhir",
|
||||
"number_of_dns_query_days": "Jumlah kueri DNS diproses selama {{value}} hari terakhir",
|
||||
"number_of_dns_query_days_plural": "Jumlah kueri DNS yang diproses selama {{count}} hari terakhir",
|
||||
"number_of_dns_query_24_hours": "Jumlah kueri DNS diproses selama 24 jam terakhir",
|
||||
"number_of_dns_query_blocked_24_hours": "Julah DNS diblokir oleh penyaring adblock dan daftar blokir hosts",
|
||||
@@ -121,7 +128,7 @@
|
||||
"use_adguard_parental": "Gunakan layanan web kontrol orang tua AdGuard",
|
||||
"use_adguard_parental_hint": "AdGuard Home akan mengecek jika domain mengandung materi dewasa. Akan menggunakan API yang ramah privasi yang sama sebagai layanan web keamanan penjelajahan.",
|
||||
"enforce_safe_search": "Paksa penelusuran aman",
|
||||
"enforce_save_search_hint": "AdGuard Home dapat memaksa penelusuran aman pada mesin pencari berikut: Google, Youtube, Bing, dan Yandex.",
|
||||
"enforce_save_search_hint": "AdGuard Home dapat memaksa penelusuran aman pada mesin pencari berikut: Google, Youtube, Bing, DuckDuckGo, Yandex, dan Pixabay.",
|
||||
"no_servers_specified": "Sever tidak disebutkan",
|
||||
"general_settings": "Pengaturan umum",
|
||||
"dns_settings": "Pengaturan DNS",
|
||||
@@ -247,16 +254,22 @@
|
||||
"custom_ip": "Custom IP",
|
||||
"blocking_ipv4": "Blokiran IPv4",
|
||||
"blocking_ipv6": "Blokiran IPv6",
|
||||
"dnscrypt": "DNSCrypt",
|
||||
"dns_over_https": "DNS-over-HTTPS",
|
||||
"dns_over_tls": "DNS-over-TLS",
|
||||
"dns_over_quic": "DNS-over-QUIC",
|
||||
"client_id": "ID Klien",
|
||||
"client_id_placeholder": "Masukkan ID klien",
|
||||
"client_id_desc": "Klien yang berbeda dapat diidentifikasi dengan ID klien khusus. <a>Di sini</a> Anda dapat mempelajari lebih lanjut tentang cara mengidentifikasi klien.",
|
||||
"download_mobileconfig_doh": "Unduh .mobileconfig untuk DNS-over-HTTPS",
|
||||
"download_mobileconfig_dot": "Unduh .mobileconfig untuk DNS-over-TLS",
|
||||
"download_mobileconfig": "Unduh berkas konfigurasi",
|
||||
"plain_dns": "Plain DNS",
|
||||
"form_enter_rate_limit": "Masukkan batas nilai",
|
||||
"rate_limit": "Batas nilai",
|
||||
"edns_enable": "Aktifkan EDNS Klien Subnet",
|
||||
"edns_cs_desc": "Apabila dinyalakan, AdGuard Home akan mengirim subnet klien ke server-server DNS.",
|
||||
"rate_limit_desc": "Jumlah permintaan per detik yang diperbolehkan untuk satu klien (atur ke 0 untuk tidak terbatas)",
|
||||
"rate_limit_desc": "Jumlah permintaan per detik yang diperbolehkan untuk satu klien. Atur ke 0 untuk tidak terbatas.",
|
||||
"blocking_ipv4_desc": "Alamat IP akan dikembalikan untuk permintaan A yang diblokir",
|
||||
"blocking_ipv6_desc": "Alamat IP akan dipulihkan untuk permintaan AAAA yang diblokir",
|
||||
"blocking_mode_default": "Default: Tanggapi dengan alamat IP nol (0.0.0.0 untuk A; :: untuk AAAA) saat diblokir oleh aturan gaya Adblock; tanggapi dengan alamat IP yang ditentukan dalam aturan ketika diblokir oleh aturan gaya host /etc/",
|
||||
@@ -269,6 +282,7 @@
|
||||
"source_label": "Sumber",
|
||||
"found_in_known_domain_db": "Ditemukan di database domain dikenal",
|
||||
"category_label": "Kategori",
|
||||
"rule_label": "Atura(n)",
|
||||
"list_label": "Daftar",
|
||||
"unknown_filter": "Penyaringan {{filterId}} tidak dikenal",
|
||||
"known_tracker": "Pelacak yang dikenal",
|
||||
@@ -278,7 +292,7 @@
|
||||
"install_settings_listen": "Antarmuka pengoperasian",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Laman administrasi AdGuard Home akan tersedia di alamat berikut ini",
|
||||
"form_error_port": "Masukkan nilai port yang valid",
|
||||
"form_error_port": "Masukkan nomor port yang valid",
|
||||
"install_settings_dns": "Server DNS",
|
||||
"install_settings_dns_desc": "Anda perlu mengkonfigurasi perangkat atau router anda untuk menggunakan server DNS berikut ini",
|
||||
"install_settings_all_interfaces": "Semua antarmuka",
|
||||
@@ -297,7 +311,7 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Pengaturan ini akan secara otomatis mencakup semua perangkat yang terhubung ke router rumah anda dan anda tak perlu mengkonfigurasikan 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 memasukkan kata sandi. Jika Anda tidak mengingatnya, Anda dapat mengatur ulang kata sandi dengan menekan tombol atur ulang (reset) pada router. Beberapa router ada yang memerlukan aplikasi tertentu, dalam hal ini harus sudah diinstal pada komputer / telepon Anda.",
|
||||
"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_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</0>. Jika tidak, Anda harus mencari petunjuk tentang cara mengkustomisasi server DNS untuk model router khusus Anda.",
|
||||
@@ -329,6 +343,7 @@
|
||||
"encryption_config_saved": "Pengaturan enkripsi telah tersimpan",
|
||||
"encryption_server": "Nama server",
|
||||
"encryption_server_enter": "Masukkan nama domain anda",
|
||||
"encryption_server_desc": "Untuk menggunakan HTTPS, Anda harus memasukkan nama server yang cocok dengan sertifikat SSL Anda. Bila ruas tak ditata, akan menerima koneksi TLS bagi domain manapun.",
|
||||
"encryption_redirect": "Alihkan ke HTTPS secara otomatis",
|
||||
"encryption_redirect_desc": "Jika dicentang, AdGuard Home akan secara otomatis mengarahkan anda dari HTTP ke alamat HTTPS.",
|
||||
"encryption_https": "Port HTTPS",
|
||||
@@ -356,7 +371,7 @@
|
||||
"encryption_reset": "Anda yakin ingin mengatur ulang pengaturan enkripsi?",
|
||||
"topline_expiring_certificate": "Sertifikat SSL Anda hampir kedaluwarsa. Perbarui <0>Pengaturan enkripsi</0>.",
|
||||
"topline_expired_certificate": "Sertifikat SSL Anda kedaluwarsa. Perbarui <0>Pengaturan enkripsi</0>.",
|
||||
"form_error_port_range": "Masukkan nilai port di kisaran 80-65535",
|
||||
"form_error_port_range": "Masukkan nomor port di kisaran 80-65535",
|
||||
"form_error_port_unsafe": "Ini adalah port yang tidak aman",
|
||||
"form_error_equal": "Seharusnya tidak sama",
|
||||
"form_error_password": "Kata sandi tidak cocok",
|
||||
@@ -384,7 +399,9 @@
|
||||
"client_edit": "Ubah Klien",
|
||||
"client_identifier": "Identifikasi",
|
||||
"ip_address": "Alamat IP",
|
||||
"client_identifier_desc": "Klien dapat diidentifikasi oleh alamat IP, CIDR, alamat MAC atau ID klien khusus (dapat digunakan untuk DoT/DoH/DoQ). <0>Di sini</0> Anda dapat mempelajari lebih lanjut tentang bagaimana mengidentifikasi klien.",
|
||||
"form_enter_ip": "Masukkan IP",
|
||||
"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",
|
||||
@@ -406,7 +423,7 @@
|
||||
"access_disallowed_title": "Klien yang tidak diizinkan",
|
||||
"access_disallowed_desc": "Daftar CIDR atau alamat IP. Jika dikonfigurasi, AdGuard Home akan membatalkan permintaan dari alamat IP ini.",
|
||||
"access_blocked_title": "Domain yang diblokir",
|
||||
"access_blocked_desc": "Jangan bingung antara ini dengan filter. AdGuard Home akan membatalkan kueri DNS dengan domain ini dalam pertanyaan kueri.",
|
||||
"access_blocked_desc": "Jangan bingung antara ini dengan filter. AdGuard Home akan membatalkan kueri DNS dengan domain ini dalam pertanyaan kueri. Di sini Anda dapat menentukan nama domain yang tepat, karakter pengganti, dan aturan filter URL, mis. \"example.org\", \"*.example.org\" atau \"||example.org^\".",
|
||||
"access_settings_saved": "Pengaturan akses berhasil disimpan",
|
||||
"updates_checked": "Pembaruan berhasil dicek",
|
||||
"updates_version_equal": "AdGuard Home sudah tebaru",
|
||||
@@ -427,6 +444,7 @@
|
||||
"setup_dns_privacy_other_3": "<0>dnscrypt-proxy</0> mendukung <1>DNS-over-HTTPS</1>.",
|
||||
"setup_dns_privacy_other_4": "<0>Mozilla Firefox</0> mendukung <1>DNS-over-HTTPS</1>.",
|
||||
"setup_dns_privacy_other_5": "Anda akan menemukan lebih banyak implementasi <0>di sini</0> dan <1>di sini</1>.",
|
||||
"setup_dns_privacy_ioc_mac": "Konfigurasi iOS dan macOS",
|
||||
"setup_dns_notice": "Jikalau ingin menggunakan <1>DNS-over-HTTPS</1> atau <1>DNS-over-TLS</1>, Anda perlu <0>mengatur Enkripsi</0> pada pengaturan AdGuard Home.",
|
||||
"rewrite_added": "DNS rewrite untuk \"{{key}}\" berhasil ditambahkan",
|
||||
"rewrite_deleted": "DNS rewrite untuk \"{{key}}\" berhasil dihapus",
|
||||
@@ -508,7 +526,7 @@
|
||||
"disable_ipv6": "Matikan IPv6",
|
||||
"disable_ipv6_desc": "Apabila fitur ini dinyalakan, semua permintaan DNS untuk alamat-alamat IPv6 (tipe AAAA) akan diputus.",
|
||||
"fastest_addr": "Alamat IP tercepat",
|
||||
"fastest_addr_desc": "Permintaan semua server DNS dan kembalinya alamat IP tercepat di antara semua respons",
|
||||
"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> <0> Atur alamat server DNS ke 127.0.0.1</0> <0>Ganti target tautan simbolis /etc/resolv.conf pakai /run/systemd/resolve/resolv.conf</0> <0>Hentikan DNSStubListener (muat ulang layanan sistemd-resolve service)</0>",
|
||||
"autofix_warning_result": "Hasilnya, semua permintaan DNS dari sistem anda akan diproses oleh AdGuardHome secara standar.",
|
||||
@@ -538,7 +556,7 @@
|
||||
"set_static_ip": "Atur alamat IP statik",
|
||||
"install_static_ok": "Kabar baik! Alamat IP statis sudah dikonfigurasi",
|
||||
"install_static_error": "AdGuard Home tidak dapat mengonfigurasinya secara otomatis untuk antarmuka jaringan ini. Silakan cari instruksi tentang cara melakukan ini secara manual.",
|
||||
"install_static_configure": "Kami mendeteksi alamat IP dinamis digunakan - <0>{{ip}}</0>. Anda ingin menggunakannya sebagai alamat statis Anda?",
|
||||
"install_static_configure": "AdGuard Home mendeteksi alamat IP dinamis <0>{{ip}}</0> digunakan. Anda ingin menggunakannya sebagai alamat statis Anda?",
|
||||
"confirm_static_ip": "AdGuard Home akan mengonfigurasi {{ip}} menjadi alamat IP statis Anda. Anda ingin melanjutkan?",
|
||||
"list_updated": "{{count}} daftar terbarui",
|
||||
"list_updated_plural": "{{count}} daftar terbarui",
|
||||
@@ -583,4 +601,4 @@
|
||||
"adg_will_drop_dns_queries": "AdGuard Home akan menghapus semua permintaan DNS dari klien ini.",
|
||||
"client_not_in_allowed_clients": "Klien tidak diizinkan karena tidak ada dalam daftar \"Klien yang diizinkan\".",
|
||||
"experimental": "Eksperimental"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
{
|
||||
"client_settings": "Impostazioni client",
|
||||
"example_upstream_reserved": "Puoi specificare un server DNS<0>per uno specifico dominio(i)</0>",
|
||||
"example_upstream_comment": "Puoi specificare il commento",
|
||||
"upstream_parallel": "Utilizza richieste parallele per accelerare la risoluzione interrogando simultaneamente tutti i server",
|
||||
"example_upstream_reserved": "Puoi specificare un upstream DNS<0>per lo specifico dominio(i)</0>",
|
||||
"example_upstream_comment": "Puoi specificare un commento",
|
||||
"upstream_parallel": "Utilizza richieste parallele per accelerare la risoluzione interrogando simultaneamente tutti i server upstream.",
|
||||
"parallel_requests": "Richieste parallele",
|
||||
"load_balancing": "Bilanciamento del carico",
|
||||
"load_balancing_desc": "Interroga un server per volta. AdGuard Home utilizzerà un algoritmo casuale per la selezione del server, in maniera tale da propendere il maggior numero di volte per quello più veloce.",
|
||||
"load_balancing_desc": "Interroga un server upstream per volta. AdGuard Home utilizzerà un algoritmo casuale ponderato per la selezione del server, optando più spesso per il più veloce.",
|
||||
"bootstrap_dns": "Server DNS bootstrap",
|
||||
"bootstrap_dns_desc": "Server DNS bootstrap sono utilizzati per risolvere gli indirizzi IP dei risolutori DoH/DoT specificati come upstream.",
|
||||
"bootstrap_dns_desc": "I server DNS di bootstrap sono utilizzati per risolvere gli indirizzi IP dei risolutori DoH/DoT specificati come upstream.",
|
||||
"local_ptr_title": "Server DNS privati",
|
||||
"local_ptr_desc": "I server DNS che AdGuard Home utilizzerà per richiedere le risorse PTR disponibili localmente. Ad esempio, questo server verrà utilizzato per risolvere i nomi host dei client con indirizzi IP privati, comò \"192.168.12.34\", utilizzando rDNS. Se non impostato, AdGuard Home utilizzerà automaticamente il risolutore DNS predefinito del tuo sistema operativo.",
|
||||
"local_ptr_placeholder": "Inserisci un indirizzo server per riga",
|
||||
"resolve_clients_title": "Attiva la risoluzione inversa degli indirizzi IP dei client",
|
||||
"resolve_clients_desc": "Se attivo, AdGuard Home tenterà di risolvere inversamente gli indirizzi IP dei client nei relativi nomi host inviando una richiesta PTR a un risolutore corrispondente (server DNS privato per client locali, server upstream per client con IP pubblico).",
|
||||
"check_dhcp_servers": "Controlla la presenza di server DHCP",
|
||||
"save_config": "Salva configurazione",
|
||||
"enabled_dhcp": "Server DHCP attivo",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "Se il tuo router non supporta la configurazione delle impostazioni del DHCP puoi utilizzare il server DHCP incluso in AdGuard.",
|
||||
"dhcp_enable": "Attiva server DHCP",
|
||||
"dhcp_disable": "Disattiva server DHCP",
|
||||
"dhcp_not_found": "Nessun server DHCP attivo trovato nella rete. Puoi attivare il server DHCP built-in senza problemi.",
|
||||
"dhcp_not_found": "È sicuro attivare il server DHCP integrato poiché AdGuard Home non ha rilevato alcun server DHCP attivo sulla rete. Tuttavia, dovresti effettuare un ricontrollo manuale poiché la ricerca automatica attualmente non garantisce un\\'affidabilità del 100%.",
|
||||
"dhcp_found": "Trovati server DHCP attivi nella rete. Non è consigliato attivare il server DHCP built-in",
|
||||
"dhcp_leases": "Leases DHCP",
|
||||
"dhcp_static_leases": "Leases DHCP statici",
|
||||
"dhcp_leases_not_found": "Nessun lease DHCP trovato",
|
||||
"dhcp_config_saved": "Configurazione server DHCP salvata",
|
||||
"dhcp_config_saved": "Salvataggio configurazione server DHCP riuscito",
|
||||
"dhcp_ipv4_settings": "Impostazioni DHCP IPv4",
|
||||
"dhcp_ipv6_settings": "Impostazioni DHCP IPv6",
|
||||
"form_error_required": "Campo richiesto",
|
||||
@@ -33,11 +38,12 @@
|
||||
"form_error_mac_format": "Formato MAC non valido",
|
||||
"form_error_client_id_format": "Formato ID cliente non valido",
|
||||
"form_error_server_name": "Nome server non valido",
|
||||
"form_error_subnet": "La subnet \"{{cidr}}\" non contiene l\\'indirizzo IP \"{{ip}}\"",
|
||||
"form_error_positive": "Deve essere maggiore di 0",
|
||||
"form_error_negative": "Deve essere maggiore o uguale a 0 (zero)",
|
||||
"range_end_error": "Deve essere maggiore dell'intervallo di inizio",
|
||||
"dhcp_form_gateway_input": "IP Gateway",
|
||||
"dhcp_form_subnet_input": "Subnet mask",
|
||||
"dhcp_form_subnet_input": "Maschera di sottorete",
|
||||
"dhcp_form_range_title": "Range indirizzi IP",
|
||||
"dhcp_form_range_start": "Inizio range",
|
||||
"dhcp_form_range_end": "Fine range",
|
||||
@@ -49,10 +55,10 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Nome host",
|
||||
"dhcp_table_expires": "Scaduto",
|
||||
"dhcp_warning": "Se si desidera attivare il server DHCP integrato, assicurarsi che non vi siano altri server DHCP attivi. Altrimenti, possono sussistere problemi di rete per i dispositivi collegati!",
|
||||
"dhcp_error": "Impossibile determinare se è presente un altro server DHCP nella rete.",
|
||||
"dhcp_static_ip_error": "Pe rutilizzare un server DHCP, bisogna impostare un indirizzo IP statico. Non siamo riusciti a determinare se questa interfaccia di rete sia configurata per utilizzare un indirizzo IP statico. Per favore impostare un indirizzo IP statico manualmente.",
|
||||
"dhcp_dynamic_ip_found": "Il tuo sistema utilizza indirizzi IP dinamici per questa interfaccia <0>{{interfaceName}}</0>. Per utilizzare un server DHCP bisogna impostare un indirizzo IP statico. Il tuo indirizzo attuale è <0>{{ipAddress}}</0>. Imposteremo automaticamente questo indirizzo come statico premendo il pulsante Attiva DHCP.",
|
||||
"dhcp_warning": "Se desideri attivare il server DHCP integrato, assicurati che non vi siano altri server DHCP attivi, ciò potrebbe causare problemi di connessione alla rete per i dispositivi collegati!",
|
||||
"dhcp_error": "AdGuard Home non può determinare se è presente un altro server DHCP attivo nella rete.",
|
||||
"dhcp_static_ip_error": "Per utilizzare il server DHCP è necessario impostare un indirizzo IP statico. AdGuard Home non è riuscito a determinare se questa interfaccia di rete è configurata utilizzando un indirizzo IP statico. Ti preghiamo di impostare manualmente un indirizzo IP statico.",
|
||||
"dhcp_dynamic_ip_found": "Il tuo sistema utilizza una configurazione di indirizzi IP dinamici per l\\'interfaccia <0>{{interfaceName}}</0>. Per poter utilizzare un server DHCP, è necessario impostare un indirizzo IP statico. Il tuo indirizzo IP attuale è <0>{{ipAddress}}</0>. AdGuard Home imposterà automaticamente questo indirizzo come statico quando cliccherai il pulsante \"Attiva server DHCP\".",
|
||||
"dhcp_lease_added": "Lease statici \"{{key}}\" aggiunti correttamente",
|
||||
"dhcp_lease_deleted": "Lease statico \"{{key}}\" eliminato correttamente",
|
||||
"dhcp_new_static_lease": "Nuovo lease statico",
|
||||
@@ -83,7 +89,7 @@
|
||||
"on": "ATTIVO",
|
||||
"off": "DISATTIVATO",
|
||||
"copyright": "Copyright",
|
||||
"homepage": "Pagina iniziale",
|
||||
"homepage": "Pagina principale",
|
||||
"report_an_issue": "Segnala un problema",
|
||||
"privacy_policy": "Politica sulla riservatezza",
|
||||
"enable_protection": "Attiva protezione",
|
||||
@@ -108,28 +114,28 @@
|
||||
"number_of_dns_query_days": "Numero di richieste DNS elaborate negli ultimi {{count}} giorni",
|
||||
"number_of_dns_query_days_plural": "Numero di richieste DNS elaborate negli ultimi {{count}} giorni",
|
||||
"number_of_dns_query_24_hours": "Numero di richieste DNS elaborate nelle ultime 24 ore",
|
||||
"number_of_dns_query_blocked_24_hours": "Numero di richieste DNS bloccate dai filtri per annunci e dalle liste di host bloccati",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Numero di richieste DNS bloccate dal modulo AdGuard \"sicurezza di navigazione\"",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Numero di siti per adulti bloccati",
|
||||
"number_of_dns_query_blocked_24_hours": "Numero di richieste DNS bloccate dai filtri per annunci e dalle liste di blocco host",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Numero di richieste DNS bloccate dal modulo sicurezza di navigazione di AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Numero di siti web per adulti bloccati",
|
||||
"enforced_save_search": "Ricerca sicura forzata",
|
||||
"number_of_dns_query_to_safe_search": "Numero di richieste DNS dai motori di ricerca per i quali la Ricerca Sicura è stata forzata",
|
||||
"average_processing_time": "Tempo di elaborazione medio",
|
||||
"average_processing_time_hint": "Tempo medio in millisecondi per elaborare una richiesta DNS",
|
||||
"block_domain_use_filters_and_hosts": "Blocca domini utilizzando filtri e file hosts",
|
||||
"filters_block_toggle_hint": "Puoi impostare le regole di blocco nelle impostazioni dei <a>Filtri</a>.",
|
||||
"use_adguard_browsing_sec": "Utilizza il servizio web AdGuard \"sicurezza di navigazione\"",
|
||||
"use_adguard_browsing_sec_hint": "AdGuard Home verificherà se il dominio è stato bloccato dal servizio web \"sicurezza di navigazione\". Per eseguire il controllo utilizzerà delle API privacy-friendly: verrà inviato al server solo un breve prefisso dell'hash SHA256 del nome del dominio.",
|
||||
"use_adguard_browsing_sec": "Utilizza il servizio web AdGuard 'sicurezza di navigazione'",
|
||||
"use_adguard_browsing_sec_hint": "AdGuard Home verificherà se il dominio è stato bloccato dal servizio web 'sicurezza di navigazione'. Per eseguire il controllo utilizzerà delle API privacy-friendly: verrà inviato al server solo un breve prefisso dell'hash SHA256 del nome del dominio.",
|
||||
"use_adguard_parental": "Utilizza il Controllo Parentale di AdGuard",
|
||||
"use_adguard_parental_hint": "AdGuard Home verificherà se il dominio contiene materiale per adulti. Utilizza le stesse API privacy-friendly del servizio web \"sicurezza di navigazione\".",
|
||||
"use_adguard_parental_hint": "AdGuard Home verificherà se il dominio contiene materiale per adulti. Utilizza le stesse API privacy-friendly del servizio web 'sicurezza di navigazione'.",
|
||||
"enforce_safe_search": "Forza ricerca sicura",
|
||||
"enforce_save_search_hint": "AdGuard Home può forzare la ricerca sicura sui seguenti motori di ricerca: Google, YouTube, Bing e Yandex",
|
||||
"enforce_save_search_hint": "AdGuard Home può forzare la ricerca sicura sui seguenti motori di ricerca: Google, Bing, DuckDuckGo, Yandex, Pixabay.",
|
||||
"no_servers_specified": "Nessun server specificato",
|
||||
"general_settings": "Impostazioni generali",
|
||||
"dns_settings": "Impostazioni DNS",
|
||||
"dns_blocklists": "Lista Nera DNS",
|
||||
"dns_allowlists": "Lista Bianca DNS",
|
||||
"dns_blocklists": "Lista nera DNS",
|
||||
"dns_allowlists": "Liste bianche DNS",
|
||||
"dns_blocklists_desc": "AdGuard Home bloccherà i domini che corrispondenti alla lista nera.",
|
||||
"dns_allowlists_desc": "I domini DNS consentiti saranno consentiti anche se sono nella lista di blocco.",
|
||||
"dns_allowlists_desc": "I domini DNS nelle liste bianche saranno consentiti anche fossero presenti in una delle liste nere.",
|
||||
"custom_filtering_rules": "Regole filtri personalizzati",
|
||||
"encryption_settings": "Impostazioni di crittografia",
|
||||
"dhcp_settings": "Impostazioni DHCP",
|
||||
@@ -145,8 +151,8 @@
|
||||
"enabled_safe_browsing_toast": "Attiva navigazione sicura",
|
||||
"disabled_parental_toast": "Disattiva il Controllo Parentale",
|
||||
"enabled_parental_toast": "Attiva Controllo Parentale",
|
||||
"disabled_safe_search_toast": "Disattiva Ricerca Sicura",
|
||||
"enabled_save_search_toast": "Attiva Ricerca Sicura",
|
||||
"disabled_safe_search_toast": "Ricerca sicura disattivata",
|
||||
"enabled_save_search_toast": "Attiva ricerca sicura",
|
||||
"enabled_table_header": "Attivo",
|
||||
"name_table_header": "Nome",
|
||||
"list_url_table_header": "Elenco URL",
|
||||
@@ -157,30 +163,30 @@
|
||||
"edit_table_action": "Modifica",
|
||||
"delete_table_action": "Elimina",
|
||||
"elapsed": "Trascorso",
|
||||
"filters_and_hosts_hint": "AdGuard Home è in grado di comprendere la sintassi delle regole di blocco per annunci o quelle dei file hosts.",
|
||||
"filters_and_hosts_hint": "AdGuard Home è in grado di comprendere la sintassi delle regole blocca-annunci o quelle dei file hosts.",
|
||||
"no_blocklist_added": "Non è stata aggiunta alcuna lista di blocco",
|
||||
"no_whitelist_added": "Non è stata aggiunta alcuna lista bianca",
|
||||
"add_blocklist": "Aggiungi lista di blocco",
|
||||
"add_allowlist": "Aggiungi lista dei consentiti",
|
||||
"add_allowlist": "Aggiungi lista bianca",
|
||||
"cancel_btn": "Annulla",
|
||||
"enter_name_hint": "Inserisci nome",
|
||||
"enter_url_or_path_hint": "Inmetti un URL o il percorso assoluto della lista",
|
||||
"check_updates_btn": "Controlla aggiornamenti",
|
||||
"check_updates_btn": "Ricerca aggiornamenti",
|
||||
"new_blocklist": "Nuova lista di blocco",
|
||||
"new_allowlist": "Nuova lista dei consentiti",
|
||||
"new_allowlist": "Nuova lista bianca",
|
||||
"edit_blocklist": "Modifica lista di blocco",
|
||||
"edit_allowlist": "Modifica lista dei consentiti",
|
||||
"edit_allowlist": "Modifica lista bianca",
|
||||
"choose_blocklist": "Scegli liste di blocco",
|
||||
"choose_allowlist": "Scegli liste di autorizzazione",
|
||||
"choose_allowlist": "Scegli liste bianche",
|
||||
"enter_valid_blocklist": "Inserisci un URL valido nella lista di blocco.",
|
||||
"enter_valid_allowlist": "Inserisci un URL valido nella lista dei consentiti.",
|
||||
"enter_valid_allowlist": "Inserisci un URL valido nella lista bianca.",
|
||||
"form_error_url_format": "Formato url non valido",
|
||||
"form_error_url_or_path_format": "URL o percorso assoluto della lista non valido",
|
||||
"custom_filter_rules": "Regole filtri personalizzate",
|
||||
"custom_filter_rules_hint": "Inserisci una regola per riga. Puoi utilizzare la sintassi delle regole di blocco per annunci o quelle dei file hosts.",
|
||||
"custom_filter_rules_hint": "Inserisci una regola per riga. Puoi utilizzare la sintassi delle regole blocca-annunci o quelle dei file hosts.",
|
||||
"examples_title": "Esempi",
|
||||
"example_meaning_filter_block": "blocca accesso al dominio example.org e a tutti i suoi sottodomini",
|
||||
"example_meaning_filter_whitelist": "permette l'accesso al dominio example.org e a tutti i suoi sottodimini",
|
||||
"example_meaning_filter_whitelist": "consente l\\'accesso al dominio esempio.org e a tutti i relativi sottodomini",
|
||||
"example_meaning_host_block": "AdGuard Home restituirà 127.0.0.1 come indirizzo per il dominio example.org (ma non per i suoi sottodomini)",
|
||||
"example_comment": "! Qui va un commento",
|
||||
"example_comment_meaning": "un commento",
|
||||
@@ -190,7 +196,7 @@
|
||||
"example_upstream_dot": "<0>DNS su TLS</0> crittografato",
|
||||
"example_upstream_doh": "<0>DNS su HTTPS</0> crittografato",
|
||||
"example_upstream_doq": "<0>DNS su QUIC</0> crittografato",
|
||||
"example_upstream_sdns": "puoi utilizzare <0>DNS Stamps</0> per <1>DNSCrypt</1> oppure dei resolver con <2>DNS su HTTPS</2>",
|
||||
"example_upstream_sdns": "puoi utilizzare <0>DNS Stamps</0> per <1>DNSCrypt</1> oppure dei risolutori <2>DNS-over-HTTPS</2>",
|
||||
"example_upstream_tcp": "DNS regolari (via TCP)",
|
||||
"all_lists_up_to_date_toast": "Tutte le liste sono aggiornate",
|
||||
"updated_upstream_dns_toast": "Server DNS upstream aggiornati",
|
||||
@@ -227,7 +233,7 @@
|
||||
"query_log_filtered": "Filtrato da {{filter}}",
|
||||
"query_log_confirm_clear": "Sei sicuro di voler eliminare il registro richieste?",
|
||||
"query_log_cleared": "Il registro richieste è stato correttamente cancellato",
|
||||
"query_log_updated": "Il registro richieste è stato aggiornato con successo",
|
||||
"query_log_updated": "Il registro richieste è stato correttamente aggiornato",
|
||||
"query_log_clear": "Cancella registri richieste",
|
||||
"query_log_retention": "Conservazione dei registri richieste",
|
||||
"query_log_enable": "Attiva registro",
|
||||
@@ -261,12 +267,12 @@
|
||||
"plain_dns": "DNS semplice",
|
||||
"form_enter_rate_limit": "Imposta limite delle richieste",
|
||||
"rate_limit": "Limite delle richieste",
|
||||
"edns_enable": "Attiva client di sottorete EDNS",
|
||||
"edns_enable": "Attiva Client di Sottorete EDNS",
|
||||
"edns_cs_desc": "Se attivato, AdGuard Home invierà le sottoreti dei client ai server DNS.",
|
||||
"rate_limit_desc": "Il numero di richieste al secondo che un singolo client può fare (0: illimitato)",
|
||||
"rate_limit_desc": "Il numero di richieste al secondo consentite da un singolo client. Impostare questo valore a 0 rimuove le limitazioni.",
|
||||
"blocking_ipv4_desc": "Indirizzo IP per una richiesta DNS IPv4 bloccata",
|
||||
"blocking_ipv6_desc": "Indirizzo IP restituito per una richiesta DNS IPv6 bloccata",
|
||||
"blocking_mode_default": "Predefinito: Rispondi con IP address zero (0.0.0.0 per A; :: per AAAA) quando bloccato da una regola di blocco annunci; rispondi con l'indirizzo IP specificato nella regola quando bloccato dalla regola /etc/hosts-style",
|
||||
"blocking_mode_default": "Risponde con un indirizzo IP pari a zero (0.0.0.0 per A; :: per AAAA) quando bloccato da una regola in stile Blocca-annunci; risponde con l\\'indirizzo IP specificato nella regola quando bloccato da una regola in stile /etc/hosts",
|
||||
"blocking_mode_refused": "REFUSED: Risposta con codice di REFUSED",
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Rispondi con il codice NXDOMAIN",
|
||||
"blocking_mode_null_ip": "IP nullo: Rispondi con indirizzo IP zero (0.0.0.0 per A; :: per AAAA)",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Questa configurazione coprirà automaticamente tutti i dispositivi collegati al router di casa e non sarà necessario configurarli manualmente.",
|
||||
"install_devices_address": "Il server DNS di AdGuard Home sta ascoltando sui seguenti indirizzi",
|
||||
"install_devices_router_list_1": "Apri le preferenze per il tuo router. Di solito, puoi accedervi dal tuo browser tramite un URL (come http://192.168.0.1/ o http://192.168.1.1/). Potrebbe essere richiesto di inserire la password. Se non lo ricordi, puoi spesso reimpostare la password premendo un pulsante sul router stesso. Alcuni router richiedono un'applicazione specifica, che in quel caso dovrebbe essere già installata sul tuo computer / telefono.",
|
||||
"install_devices_router_list_1": "Accedi alle preferenze del tuo router. Di solito, puoi farlo dal tuo browser tramite un URL, come http://192.168.0.1/ o http://192.168.1.1/. Potrebbe esserti chiesto di inserire una password. Se non dovessi ricordarla, puoi reimpostare la password premendo un pulsante presente sullo stesso router, ma tieni presente che scegliendo questa procedura, probabilmente perderai l\\'intera configurazione del router. Se il tuo router necessitasse di un\\'app per configurarlo, installala sul tuo telefono o PC e utilizzala per accedere alle impostazioni del router.",
|
||||
"install_devices_router_list_2": "Trova le impostazioni DHCP / DNS. Cerca le lettere DNS accanto a un campo che consente due o tre serie di numeri, ciascuno suddiviso in quattro gruppi di 1-3 cifre.",
|
||||
"install_devices_router_list_3": "Inserisci qui gli indirizzi del tuo server AdGuard Home.",
|
||||
"install_devices_router_list_4": "Non puoi impostare un server DNS personalizzato o alcun tipo di router. In questi casi potrebbe essere di aiuto impostare la pagina principale di AdGuard come <0>server DHCP</0>. In alternativa, dovresti cercare sul manuale il modo per personalizzare i server DNS per il tuo particolare modello di router.",
|
||||
"install_devices_router_list_4": "Su alcuni tipi di router, non è possibile configurare un server DNS personalizzato. In tal caso, configurare AdGuard Home come un <0>server DHCP</0> potrebbe aiutare. In alternativa, dovresti leggere il manuale di istruzioni per capire come personalizzare i server DNS sul tuo specifico modello di router.",
|
||||
"install_devices_windows_list_1": "Apri il Pannello di controllo tramite il menu Start o la ricerca di Windows.",
|
||||
"install_devices_windows_list_2": "Vai a Rete e categoria Internet e poi a Centro connessioni di rete e condivisione.",
|
||||
"install_devices_windows_list_3": "Sul lato sinistro dello schermo, trova le impostazioni della scheda Cambia e fai clic su di esso.",
|
||||
@@ -331,10 +337,10 @@
|
||||
"get_started": "Inizia",
|
||||
"next": "Prossimo",
|
||||
"open_dashboard": "Apri pannello di controllo",
|
||||
"install_saved": "Salvataggio riuscito con successo",
|
||||
"install_saved": "Salvataggio riuscito",
|
||||
"encryption_title": "crittografia",
|
||||
"encryption_desc": "Supporto di crittografia (HTTPS / TLS) per interfaccia web sia di DNS che di amministrazione",
|
||||
"encryption_config_saved": "Configurazione della crittografia salvata",
|
||||
"encryption_config_saved": "Configurazione crittografia salvata",
|
||||
"encryption_server": "Nome server",
|
||||
"encryption_server_enter": "Inserisci il tuo nome di dominio",
|
||||
"encryption_server_desc": "Per utilizzare HTTPS, è necessario immettere il nome del server che corrisponde al certificato SSL o al certificato wildcard. Se il campo risulterà vuoto, accetterà connessioni TLS per qualsiasi dominio.",
|
||||
@@ -365,7 +371,7 @@
|
||||
"encryption_reset": "Sei sicuro di voler ripristinare le impostazioni di crittografia?",
|
||||
"topline_expiring_certificate": "Il tuo certificato SSL sta per scadere. Aggiorna le<0> Impostazioni di crittografia </ 0>.",
|
||||
"topline_expired_certificate": "Il tuo certificato SSL è scaduto. Aggiorna le <0> Impostazioni di crittografia </ 0>.",
|
||||
"form_error_port_range": "Immettere il valore della porta nell'intervallo 80-65535",
|
||||
"form_error_port_range": "Immettere il valore della porta nell\\'intervallo 80-65535",
|
||||
"form_error_port_unsafe": "Questa è una porta non sicura",
|
||||
"form_error_equal": "Non dovrebbe essere uguale",
|
||||
"form_error_password": "Password non corrispondente",
|
||||
@@ -377,9 +383,9 @@
|
||||
"dns_status_error": "Errore nel recupero dello stato del server DNS",
|
||||
"down": "Spenta",
|
||||
"fix": "Risolvi",
|
||||
"dns_providers": "Qui c'è una <0>list di provider DNS</0> da cui scegliere",
|
||||
"dns_providers": "Qui c\\'è una <0>lista di provider DNS</0> da cui scegliere.",
|
||||
"update_now": "Aggiorna ora",
|
||||
"update_failed": "Aggiornamento automatico non riuscito. Si prega di <a>seguire questi passi</a>per aggiornare manualmente.",
|
||||
"update_failed": "Aggiornamento automatico non riuscito. Si prega di <a>seguire questi passaggi</a>per aggiornare manualmente.",
|
||||
"processing_update": "Perfavore aspetta, AdGuard Home si sta aggiornando",
|
||||
"clients_title": "Client",
|
||||
"clients_desc": "Configura i dispositivi connessi ad AdGuard Home",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "Indirizzo IP",
|
||||
"client_identifier_desc": "I client possono essere identificati dall'indirizzo IP, CIDR, indirizzo MAC o un ID speciale (che può essere utilizzato per DoT/DoH/DoQ). <0>Qui</0> potrai saperne di più sui metodi per identificarli.",
|
||||
"form_enter_ip": "Inserisci IP",
|
||||
"form_enter_subnet_ip": "Inserisci un indirizzo IP nella subnet \"{{cidr}}\"",
|
||||
"form_enter_mac": "Inserisci MAC",
|
||||
"form_enter_id": "Inserisci identificatore",
|
||||
"form_add_id": "Aggiungi identificatore",
|
||||
@@ -416,11 +423,11 @@
|
||||
"access_disallowed_title": "Client non permessi",
|
||||
"access_disallowed_desc": "Una lista in CIDR o indirizzi IP. Se configurata AdGuard Home non accetterà richieste da questi indirizzi ip.",
|
||||
"access_blocked_title": "Domini bloccati",
|
||||
"access_blocked_desc": "Non confondere questi elementi con i filtri. AdGuard Home eliminerà le richieste DNS con questi domini in fase di elaborazione della richiesta.",
|
||||
"access_blocked_desc": "Non confondere questi elementi con i filtri. AdGuard Home eliminerà le richieste DNS con questi domini in fase di elaborazione della richiesta. Qui puoi specificare gli esatti nomi di dominio, i caratteri jolly e le regole di filtro URL, ad esempio \"example.org\", \"*.example.org\" o \"|| example.org ^\".",
|
||||
"access_settings_saved": "Impostazioni di accesso salvate correttamente",
|
||||
"updates_checked": "Aggiornamenti controllati con successo",
|
||||
"updates_checked": "Verifica aggiornamenti riuscita",
|
||||
"updates_version_equal": "AdGuard Home è aggiornato",
|
||||
"check_updates_now": "Controlla aggiornamenti adesso",
|
||||
"check_updates_now": "Ricerca aggiornamenti ora",
|
||||
"dns_privacy": "Privacy DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS su TLS:</0> Utilizza la stringa <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS su HTTPS:</0> Utilizza la stringa <1>{{address}}</1>.",
|
||||
@@ -498,7 +505,7 @@
|
||||
"sign_in": "Accedi",
|
||||
"sign_out": "Esci",
|
||||
"forgot_password": "Hai perso la password?",
|
||||
"forgot_password_desc": "Per favore segui <0>questi punti</0> per creare una nuova password per il tuo account.",
|
||||
"forgot_password_desc": "Per favore segui <0>questi passaggi</0> per creare una nuova password per il tuo profilo.",
|
||||
"location": "Locazione",
|
||||
"orgname": "Nome dell'organizzazione",
|
||||
"netname": "Nome Network",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "Disattiva IPv6",
|
||||
"disable_ipv6_desc": "Se questa funzionalità attiva, tutte le richieste DNS per gli indirizzi IPv6 (tipo AAAA) verranno eliminate.",
|
||||
"fastest_addr": "Indirizzo IP più veloce",
|
||||
"fastest_addr_desc": "Interroga tutti i server DNS ed ottieni l'indirizzo IP più veloce tra tutte le risposte",
|
||||
"fastest_addr_desc": "Interroga tutti i server DNS e restituisci l\\'indirizzo IP più veloce tra tutte le risposte. Ciò rallenterà le richieste DNS poiché AdGuard Home dovrà attendere le risposte da tutti i server DNS, ma ciò migliorerà complessivamente la connettività.",
|
||||
"autofix_warning_text": "Se fai clic su \"Correggi\", AdGuardHome configurerà il tuo sistema per utilizzare il server DNS AdGuardHome.",
|
||||
"autofix_warning_list": "Eseguirà queste attività: <0> Disattiva DNSStubListener di sistema </0> <0> Imposta l'indirizzo del server DNS su 127.0.0.1 </0> <0> Sostituisci la destinazione del collegamento simbolico di /etc/resolv.conf su / run / systemd /resolve/resolv.conf </0> <0> Arresta DNSStubListener (ricarica il servizio systemd-resolved) </0>",
|
||||
"autofix_warning_result": "Di conseguenza, tutte le richieste DNS dal sistema verranno elaborate da AdGuardHome per impostazione predefinita.",
|
||||
@@ -533,7 +540,7 @@
|
||||
"filtered_custom_rules": "Filtrato dalle regole filtro personalizzate",
|
||||
"choose_from_list": "Scegli dalla lista",
|
||||
"add_custom_list": "Aggiungi lista personalizzata",
|
||||
"host_whitelisted": "L'host è stato aggiunto alla lista bianca",
|
||||
"host_whitelisted": "L\\'host è stato aggiunto alla lista bianca",
|
||||
"check_ip": "Indirizzi IP: {{ip}}",
|
||||
"check_cname": "CNAME: {{cname}}",
|
||||
"check_reason": "Motivo: {{reason}}",
|
||||
@@ -545,20 +552,20 @@
|
||||
"client_blocked": "Client \"{{ip}}\" bloccato correttamente",
|
||||
"client_unblocked": "Client \"{{ip}}\" sbloccato correttamente",
|
||||
"static_ip": "Indirizzo IP statico",
|
||||
"static_ip_desc": "AdGuard Home è un server quindi ha bisogno di un indirizzo IP statico per funzionare correttamente. Altrimenti, a un certo punto, il router potrebbe assegnare un indirizzo IP diverso a questo dispositivo.",
|
||||
"static_ip_desc": "AdGuard Home è un server quindi ha bisogno di un indirizzo IP statico per funzionare correttamente. In caso contrario, ad un certo punto, il router potrebbe assegnare un indirizzo IP differente a questo dispositivo.",
|
||||
"set_static_ip": "Imposta un indirizzo IP statico",
|
||||
"install_static_ok": "Buone notizie! L'indirizzo IP statico è già configurato",
|
||||
"install_static_error": "AdGuard Home non può configurarlo automaticamente per questa interfaccia di rete. Si prega di cercare un'istruzione su come farlo manualmente.",
|
||||
"install_static_configure": "Abbiamo rilevato l'utilizzo di un indirizzo IP dinamico - <0> {{ip}} </0>. Desideri impostarlo come indirizzo statico?",
|
||||
"install_static_configure": "AdGuard Home ha rilevato l\\'utilizzo dell\\'indirizzo IP dinamico <0> {{ip}} </0>. Desideri impostarlo come indirizzo statico?",
|
||||
"confirm_static_ip": "AdGuard Home configurerà {{ip}} come indirizzo IP statico. Desideri procedere?",
|
||||
"list_updated": "{{count}} lista aggiornata",
|
||||
"list_updated_plural": "{{count}} liste aggiornate",
|
||||
"dnssec_enable": "Attiva DNSSEC",
|
||||
"dnssec_enable_desc": "Spunta l'opzione DNSSEC nelle interrogazioni DNS in uscita e verifica il risultato (è richiesta l'attivazione del risolutore DNSSEC)",
|
||||
"dnssec_enable_desc": "Spunta l\\'opzione DNSSEC nelle interrogazioni DNS in uscita e verifica il risultato (è richiesta l'attivazione del risolutore DNSSEC)",
|
||||
"validated_with_dnssec": "Verificato con DNSSEC",
|
||||
"all_queries": "Tutte le richieste",
|
||||
"show_blocked_responses": "Bloccato",
|
||||
"show_whitelisted_responses": "Nella Lista Bianca",
|
||||
"show_whitelisted_responses": "Aggiunto alla Lista bianca",
|
||||
"show_processed_responses": "Processato",
|
||||
"blocked_safebrowsing": "Blocco Navigazione sicura",
|
||||
"blocked_adult_websites": "Siti per adulti bloccati",
|
||||
@@ -583,15 +590,15 @@
|
||||
"filter_category_security": "Sicurezza",
|
||||
"filter_category_regional": "Regionale",
|
||||
"filter_category_other": "Altro",
|
||||
"filter_category_general_desc": "Liste per blocco tracciamenti e annunci sulla maggioranza dei dispositivi",
|
||||
"filter_category_general_desc": "Liste per il blocco dei traccianti e degli annunci sulla maggioranza dei dispositivi",
|
||||
"filter_category_security_desc": "Liste specializzate sul blocco di malware, phishing o domini scam",
|
||||
"filter_category_regional_desc": "Liste focalizzate su annunci regionali e server traccianti",
|
||||
"filter_category_other_desc": "Altre liste di blocco",
|
||||
"setup_config_to_enable_dhcp_server": "Configurazione dell'installazione per abilitare il server DHCP",
|
||||
"setup_config_to_enable_dhcp_server": "Configurazione dell\\'installazione per l\\'attivazione del server DHCP",
|
||||
"original_response": "Responso originale",
|
||||
"click_to_view_queries": "Clicca per visualizzare le richieste",
|
||||
"port_53_faq_link": "La Porta 53 è spesso occupata dai servizi \"DNSStubListener\" o \"systemd-resolved\". Si prega di leggere <0>queste istruzioni</0> per risolvere il problema.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home eliminerà tutte le richieste DNS da questo client.",
|
||||
"client_not_in_allowed_clients": "Il client non è consentito perché non è nell'elenco \"Client consentiti\".",
|
||||
"experimental": "Sperimentale"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
{
|
||||
"client_settings": "クライアント設定",
|
||||
"example_upstream_reserved": "<0>特定のドメイン</0>に対してDNSアップストリームを指定できます",
|
||||
"example_upstream_comment": "コメントを指定できます",
|
||||
"upstream_parallel": "並列リクエストを使用する(すべてのアップストリームサーバーを同時に照会することで解決スピードが向上します)",
|
||||
"example_upstream_reserved": "<0>特定のドメイン</0>に対してDNSアップストリームを指定できます。",
|
||||
"example_upstream_comment": "コメントを指定できます。",
|
||||
"upstream_parallel": "並列リクエストを使用する(同時にすべてのアップストリームサーバーに処理要求することで解決スピードが向上)",
|
||||
"parallel_requests": "並列リクエスト",
|
||||
"load_balancing": "ロードバランシング",
|
||||
"load_balancing_desc": "一度に1つのサーバを照会します。 AdGuard Homeは、重み付きランダムアルゴリズムを使用してサーバを選択するため、最速のサーバがより頻繁に使用されます。",
|
||||
"load_balancing_desc": "一度に1つのサーバに処理要求します。 AdGuard Homeは、重み付きランダムアルゴリズム(weighted random algorithm)を使用してサーバを選択するため、最速のサーバがより頻繁に使用されます。",
|
||||
"bootstrap_dns": "ブートストラップDNSサーバ",
|
||||
"bootstrap_dns_desc": "ブートストラップDNSサーバは、上流として指定したDoH/DoTリゾルバのIPアドレスを解決するために使用されます。",
|
||||
"local_ptr_title": "プライベートDNSサーバー",
|
||||
"local_ptr_desc": "AdGuard HomeがローカルPTRクエリに使用するDNSサーバーです。これらのサーバーは、rDNSを使ってプライベートIPアドレス(例えば\"192.168.12.34\")を持つクライアントのホスト名を解決するために使用されます。設定されていない場合、AdGuard HomeはOSのデフォルトDNSリゾルバーを自動的に使用します。",
|
||||
"local_ptr_placeholder": "1行に1つのサーバを入力してください。",
|
||||
"resolve_clients_title": "クライアントのIPアドレスの逆解決を有効にする",
|
||||
"resolve_clients_desc": "有効にすると、AdGuard Homeは、対応するリゾルバー(ローカルクライアントの場合はプライベートDNSサーバ、パブリックIPを持つクライアントの場合は上流サーバ)にPTRクエリを送信することにより、クライアントのIPアドレスをホスト名に逆解決しようとします。",
|
||||
"check_dhcp_servers": "DHCPサーバをチェックする",
|
||||
"save_config": "設定を保存する",
|
||||
"save_config": "構成を保存する",
|
||||
"enabled_dhcp": "DHCPサーバを有効にしました",
|
||||
"disabled_dhcp": "DHCPサーバを無効にしました",
|
||||
"unavailable_dhcp": "DHCPは利用できません",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "あなたのルータがDHCPの設定を提供していないのなら、AdGuardに内蔵されているDHCPサーバを利用できます。",
|
||||
"dhcp_enable": "DHCPサーバを有効にする",
|
||||
"dhcp_disable": "DHCPサーバを無効にする",
|
||||
"dhcp_not_found": "ネットワーク内に動作しているDHCPサーバはありません。内蔵されているDHCPサーバを有効にしても安全です。",
|
||||
"dhcp_not_found": "AdGuard Homeはネットワーク上でアクティブなDHCPサーバーがないことを確認したため、内蔵DHCPサーバーを有効にしても安全です。ただし、現在の自動プロービング結果は100%保証ではないため、手動で再確認しておくことをお勧めします。",
|
||||
"dhcp_found": "ネットワーク内に動作しているDHCPサーバが見つかりました。内臓されているDHCPサーバを有効にするのは安全ではありません。",
|
||||
"dhcp_leases": "DHCP割り当て",
|
||||
"dhcp_static_leases": "DHCP静的割り当て",
|
||||
"dhcp_leases_not_found": "DHCP割当はありません",
|
||||
"dhcp_config_saved": "DHCP設定の保存に成功しました",
|
||||
"dhcp_config_saved": "DHCP構成が無事に保存されました。",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4 設定",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 設定",
|
||||
"form_error_required": "必須項目",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "MACフォーマットではありません",
|
||||
"form_error_client_id_format": "Client IDの形式が無効です",
|
||||
"form_error_server_name": "サーバ名が無効です",
|
||||
"form_error_subnet": "IPアドレス「{{ip}}」はサブネット「{{cidr}}」に含まれていません",
|
||||
"form_error_positive": "0より大きい必要があります",
|
||||
"form_error_negative": "0以上である必要があります",
|
||||
"range_end_error": "範囲開始よりも大きくなければなりません",
|
||||
@@ -49,16 +55,16 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "ホスト名",
|
||||
"dhcp_table_expires": "有効期限",
|
||||
"dhcp_warning": "内蔵しているDHCPサーバを有効にしたい場合は、稼働中のDHCPサーバがないことを確認してください。そうでなければ、接続されたデバイスのためにインターネットを壊すかもしれません!",
|
||||
"dhcp_error": "ネットワーク内に別のDHCPサーバがあるかどうかを判断できませんでした。",
|
||||
"dhcp_static_ip_error": "DHCPサーバを使用するには、静的IPアドレスを設定する必要があります。このネットワークインターフェイスが静的IPアドレスを使用するように設定されているかどうかを判断できませんでした。手動で静的IPアドレスを設定してください。",
|
||||
"dhcp_dynamic_ip_found": "ご使用のシステムは、インターフェース<0>{{interfaceName}}</0>に動的IPアドレス構成が使用されています。DHCPサーバを使用するには、静的IPアドレスで設定する必要があります。あなたの現在のIPアドレスは<0>{{ipAddress}}</0>です。「DHCPサーバを有効にする」ボタンを押すと、このIPアドレスを静的IPアドレスに自動設定されます。",
|
||||
"dhcp_warning": "ともかくDHCPサーバを有効にしたい場合は、ネットワーク内で他に稼働中のDHCPサーバがないことを確認してください。そうでなければ、ネットワーク上デバイスでインターネット接続を壊してしまう可能性があります!",
|
||||
"dhcp_error": "ネットワーク上に別の稼働中DHCPサーバがあるかどうか、AdGuard Homeは判断できませんでした。",
|
||||
"dhcp_static_ip_error": "DHCPサーバーを使用するには、静的IPアドレスを設定する必要があります。このネットワークインターフェースが静的IPアドレスを使用するように設定されているかどうかを、AdGuard Homeは判断できませんでした。手動で静的IPアドレスを設定してください。",
|
||||
"dhcp_dynamic_ip_found": "お使いのシステムは、インターフェース<0>{{interfaceName}}</0>用に動的IPアドレス構成を使用しています。DHCPサーバを使用するには、静的IPアドレスで設定する必要があります。あなたの現在のIPアドレスは<0>{{ipAddress}}</0>です。「DHCPサーバを有効にする」ボタンを押すと、AdGuard Homeは自動的にこのIPアドレスを静的IPアドレスとして設定します。",
|
||||
"dhcp_lease_added": "静的割り当て \"{{key}}\" の追加に成功しました",
|
||||
"dhcp_lease_deleted": "静的割り当て \"{{key}}\" の削除に成功しました",
|
||||
"dhcp_new_static_lease": "新規静的割り当て",
|
||||
"dhcp_static_leases_not_found": "DHCP静的割り当てはありません",
|
||||
"dhcp_add_static_lease": "静的割り当てを追加する",
|
||||
"dhcp_reset": "DHCP設定をリセットして良いですか?",
|
||||
"dhcp_reset": "DHCP構成をリセットしてよろしいですか?",
|
||||
"country": "国",
|
||||
"city": "街",
|
||||
"delete_confirm": "\"{{key}}\" を削除してもよろしいですか?",
|
||||
@@ -112,7 +118,7 @@
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "AdGuardブラウジングセキュリティモジュールによってブロックされたDNSリクエストの数",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "ブロックされたアダルトウェブサイトの数",
|
||||
"enforced_save_search": "強制されたセーフサーチ",
|
||||
"number_of_dns_query_to_safe_search": "セーフサーチが強制された検索エンジンに対するDNSリクエストの数",
|
||||
"number_of_dns_query_to_safe_search": "セーフサーチが強制適用された検索エンジンへのDNSリクエストの数",
|
||||
"average_processing_time": "平均処理時間",
|
||||
"average_processing_time_hint": "DNSリクエストの処理にかかる平均時間(ミリ秒単位)",
|
||||
"block_domain_use_filters_and_hosts": "フィルタとhostsファイルを使用してドメインをブロックする",
|
||||
@@ -122,7 +128,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の検索エンジンでセーフサーチを強制できます。",
|
||||
"enforce_save_search_hint": "AdGuard Homeは、 Google, YouTube, Bing, DuckDuckGo, Yandex, Pixabay という検索エンジンでセーフサーチを強制適用できます。",
|
||||
"no_servers_specified": "サーバが指定されていません",
|
||||
"general_settings": "一般設定",
|
||||
"dns_settings": "DNS設定",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "暗号化設定",
|
||||
"dhcp_settings": "DHCP設定",
|
||||
"upstream_dns": "上流DNSサーバ",
|
||||
"upstream_dns_help": "サーバのアドレスは1行に1つずつ入力してください。上流DNSサーバの構成についての詳細は<a>こちら</a>をご確認ください。",
|
||||
"upstream_dns_help": "サーバのアドレスは1行に1つずつ入力してください。上流DNSサーバの構成設定について詳しくは<a>こちら</a>でご確認いただけます。",
|
||||
"upstream_dns_configured_in_file": "{{path}} にて設定されています",
|
||||
"test_upstream_btn": "上流サーバをテストする",
|
||||
"upstreams": "上流",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "頻度制限",
|
||||
"edns_enable": "EDNSクライアント・サブネットを有効にする",
|
||||
"edns_cs_desc": "有効にすると、AdGuard HomeはクライアントのサブネットをDNSサーバへ送信します。",
|
||||
"rate_limit_desc": "単一のクライアントに対して許可される1秒あたりのリクエスト数(「0」に設定すると無制限になります)",
|
||||
"rate_limit_desc": "一つのクライアントに対して許可される1秒あたりのリクエスト数(「0」に設定すると、制限なしになります)",
|
||||
"blocking_ipv4_desc": "ブロックされたAリクエストに対して応答されるIPアドレス",
|
||||
"blocking_ipv6_desc": "ブロックされたAAAAリクエストに対して応答されるIPアドレス",
|
||||
"blocking_mode_default": "デフォルト:Adblock系ルールによってブロックされると、ゼロIPアドレス(Aに対しては「0.0.0.0」、AAAAに対しては「::」)で応答します。/etc/hosts系ルールによってブロックされると、ルールにて指定されているIPアドレスで応答します。",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "ルータ",
|
||||
"install_devices_router_desc": "この設定では、ルータに接続されているすべてのデバイスを自動的にカバーしますので、各デバイスを手動で設定する必要はありません。",
|
||||
"install_devices_address": "AdGuard HomeのDNSサーバは次のアドレスで待ち受けています",
|
||||
"install_devices_router_list_1": "ルータの設定を開きます。通常は、URL(http://192.168.0.1/ または http://192.168.1.1/ など)を介してブラウザからアクセスできます。パスワードの入力を求められることがあります。パスワードを覚えていない場合は、ルータにあるボタンを押してパスワードをリセットできます。一部のルータは特定のアプリケーションを必要とします。その場合、アプリケーションはあなたのコンピュータ/電話に既にインストールされているはずです。",
|
||||
"install_devices_router_list_1": "ルーターの設定を開きます(通常、URLの http://192.168.0.1/ または http://192.168.1.1/ などを入力してブラウザからアクセスできます)。\nパスワードの入力を求められることがあります。パスワードを覚えていない場合は、ルータにあるボタンを押してパスワードをリセットできます(※この場合、ルーターで設定されている構成が初期化される可能性が高いのでご注意ください)。\n一部のルーターは設定用アプリを必要とします。その場合、設定用アプリをお使いのコンピュータ/スマホにインストールして、そのアプリからルーターの設定にアクセスしてください。",
|
||||
"install_devices_router_list_2": "DHCP/DNSの設定を見つけます。DNSの文字のある入力欄を探します。それは、1〜3桁の数字で4つのグループに分けられた入力欄で、2〜3セットを許可されている欄です。",
|
||||
"install_devices_router_list_3": "そこにAdGuard Homeサーバのアドレスを入力します。",
|
||||
"install_devices_router_list_4": "一部のタイプのルータではカスタムDNSサーバを設定できません。この場合、AdGuard Homeを<0>DHCPサーバ</0>として設定するとお役に立ちます。それ以外の場合は、特定のルータモデルに合わせてDNSサーバをカスタマイズする方法に関するマニュアルを検索する必要があります。",
|
||||
"install_devices_router_list_4": "一部のルーターでは、カスタムDNSサーバーを設定できません。この場合、AdGuard Homeを<0>DHCPサーバ</0>として設定してみることがおすすめです。それ以外の場合は、特定のルータモデルにおいて、DNSサーバーをカスタマイズする方法に関するマニュアル等をご確認ください。",
|
||||
"install_devices_windows_list_1": "「スタート」メニューまたはWindowsの検索から「設定」を開きます。",
|
||||
"install_devices_windows_list_2": "「ネットワークとインターネット」カテゴリに移動し、さらに「ネットワークと共有センター」へ移動します。",
|
||||
"install_devices_windows_list_3": "画面の左側にある「アダプターの設定の変更」を見つけてクリックします。",
|
||||
@@ -334,7 +340,7 @@
|
||||
"install_saved": "保存に成功しました",
|
||||
"encryption_title": "暗号化",
|
||||
"encryption_desc": "DNSと管理ウェブインターフェースの両方に対する暗号化(HTTPS/TLS)をサポートします",
|
||||
"encryption_config_saved": "暗号化の設定を保存しました",
|
||||
"encryption_config_saved": "暗号化構成が保存されました。",
|
||||
"encryption_server": "サーバ名",
|
||||
"encryption_server_enter": "ドメイン名を入力してください",
|
||||
"encryption_server_desc": "HTTPSを使用するには、SSL証明書またはワイルドカード証明書と一致するサーバー名を入力する必要があります。このフィールドが設定されていない場合は、任意のドメインのTLS接続を受け入れます。",
|
||||
@@ -365,9 +371,9 @@
|
||||
"encryption_reset": "暗号化設定をリセットして良いですか?",
|
||||
"topline_expiring_certificate": "SSL証明書は期限切れになります。<0>暗号化設定</0>を更新します。",
|
||||
"topline_expired_certificate": "SSL証明書は期限切れです。<0>暗号化設定</0>を更新します。",
|
||||
"form_error_port_range": "80〜65535の範囲でポート番号を入力してください",
|
||||
"form_error_port_range": "80〜65535 の範囲でポート番号を入力してください",
|
||||
"form_error_port_unsafe": "これは危険なポートです",
|
||||
"form_error_equal": "等しくないはずです",
|
||||
"form_error_equal": "同じ値であってはなりません",
|
||||
"form_error_password": "パスワードが不一致です",
|
||||
"reset_settings": "設定をリセットする",
|
||||
"update_announcement": "AdGuard Home {{version}}がリリースされました。詳しくは<0>こちらをクリック</0>してください。",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IPアドレス",
|
||||
"client_identifier_desc": "クライアントは、IPアドレス、CIDR、MACアドレス、または特別なクライアントID(DoT/DoH/DoQで使用可能)によって識別することができます。<0>ここ</0>では、クライアントの識別方法についてより詳しく説明しています。",
|
||||
"form_enter_ip": "IPアドレスを入力してください",
|
||||
"form_enter_subnet_ip": "サブネット「{{cidr}}」内のIPアドレスを入力してください",
|
||||
"form_enter_mac": "MACアドレスを入力してください",
|
||||
"form_enter_id": "識別子を入力してください",
|
||||
"form_add_id": "識別子を追加する",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "拒否するクライアント",
|
||||
"access_disallowed_desc": "CIDRまたはIPアドレスのリスト。設定されると、AdGuard HomeはこれらのIPアドレスからのリクエストを破棄します。",
|
||||
"access_blocked_title": "拒否するドメイン",
|
||||
"access_blocked_desc": "これをフィルタと混同しないでください。AdGuard Homeは、これらのドメインを含むDNSクエリを破棄します。",
|
||||
"access_blocked_desc": "これをフィルタと混同しないでください。AdGuard Homeは、これらのドメインを含むDNSクエリを破棄します。ここでは、「example.org」、「*.example.org」、「 ||example.org^ 」など、特定のドメイン名、ワイルドカード、URLフィルタルールを指定できます。",
|
||||
"access_settings_saved": "アクセス設定の保存に成功しました",
|
||||
"updates_checked": "アップデートの確認に成功しました",
|
||||
"updates_version_equal": "AdGuard Homeは既に最新です",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "IPv6を無効にする",
|
||||
"disable_ipv6_desc": "チェックすると、IPv6アドレス(タイプAAAA)のすべてのDNSクエリは破棄されます。",
|
||||
"fastest_addr": "最速のIPアドレス",
|
||||
"fastest_addr_desc": "すべてのDNSサーバーを照会し、全応答の中で最速のIPアドレスを返します",
|
||||
"fastest_addr_desc": "すべてのDNSサーバーに処理要求し、全応答の中で最速のIPアドレスを返します。これにより、AdGuard HomeがすべてのDNSサーバーからの応答を待つ必要があるため、DNSクエリが遅くなりますが、全体的な接続性は向上します。",
|
||||
"autofix_warning_text": "\"改善\"をクリックすると、AdGuardHomeはAdGuardHome DNSサーバを使用するようにシステムを構成します。",
|
||||
"autofix_warning_list": "次のタスクを実行します:<0>システムDNSStubListenerを非アクティブ化します</0> <0>DNSサーバのアドレスを127.0.0.1に設定します</0> <0>/etc/resolv.confのシンボリックリンクの対象を/run/systemd/resolve/resolv.confに置換します</0> <0>DNSStubListenerを停止します(systemd-resolvedサービスをリロードします)</0>",
|
||||
"autofix_warning_result": "その結果、システムからのすべてのDNSリクエストは、デフォルトでAdGuard Homeによって処理されます。",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "静的IPアドレスを設定する",
|
||||
"install_static_ok": "良いニュースです! 既に静的IPアドレスで構成されています",
|
||||
"install_static_error": "AdGuard Homeは、このネットワークインターフェースを自動構成することはできません。手動で行う方法に関する取扱説明書を探してください。",
|
||||
"install_static_configure": "動的IPアドレスが使用されていることを検出しました— <0>{{ip}}</0>。静的アドレスとして使用しますか?",
|
||||
"install_static_configure": "動的IPアドレス <0>{{ip}}</0> が使用されていることをAdGuard Homeが検出しました。このアドレスをあなたの静的アドレスとして設定しますか?",
|
||||
"confirm_static_ip": "AdGuard Homeは、{{ip}}を静的IPアドレスとして設定します。よろしいですか?",
|
||||
"list_updated": "{{count}}個のリストが更新されました",
|
||||
"list_updated_plural": "{{count}}個のリストが更新されました",
|
||||
@@ -587,11 +594,11 @@
|
||||
"filter_category_security_desc": "マルウェア、フィッシング、詐欺ドメインのブロック専用リストです。",
|
||||
"filter_category_regional_desc": "それぞれの地域の広告と追跡サーバをターゲットするリストです。",
|
||||
"filter_category_other_desc": "その他のブロックリストです。",
|
||||
"setup_config_to_enable_dhcp_server": "DHCPサーバを有効にするには構成を設定してください",
|
||||
"setup_config_to_enable_dhcp_server": "DHCPサーバーを有効にするには構成を設定してください",
|
||||
"original_response": "当初の応答",
|
||||
"click_to_view_queries": "クエリを表示するにはクリックしてください",
|
||||
"port_53_faq_link": "多くの場合、ポート53は \"DNSStubListener\" または \"systemd-resolved\" サービスによって利用されています。これを解決する方法については、<0>この手順</0>をお読みください。",
|
||||
"adg_will_drop_dns_queries": "AdGuard Homeは、このクライアントからすべてのDNSクエリを落とします。",
|
||||
"client_not_in_allowed_clients": "「許可されたクライアント」リストにないため、このクライアントは許可されていません。",
|
||||
"experimental": "実験用"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
"load_balancing_desc": "한 번에 하나의 서버씩 질의합니다. AdGuard Home은 가중 랜덤 알고리즘를 사용해서 가장 빠른 서버가 자주 사용되도록 서버를 선택합니다.",
|
||||
"bootstrap_dns": "부트스트랩 DNS 서버",
|
||||
"bootstrap_dns_desc": "부트스트랩 DNS 서버는 업스트림으로 지정한 DoH/DoT 서버의 IP 주소를 확인하는 데 사용합니다.",
|
||||
"local_ptr_title": "프라이빗 DNS 서버",
|
||||
"local_ptr_desc": "AdGuard Home이 로컬 PTR 쿼리에 사용하는 DNS 서버입니다. 이러한 서버는 rDNS를 사용하여 개인 IP 주소(예: '192.168.12.34')가 있는 클라이언트의 호스트 이름을 확인하는 데 사용됩니다. 설정되지 않은 경우, AdGuard Home은 OS의 기본 DNS 리졸버를 사용합니다.",
|
||||
"local_ptr_placeholder": "한 줄에 하나씩 서버 주소 입력",
|
||||
"resolve_clients_title": "클라이언트 IP 주소에 대한 호스트명 확인 활성화",
|
||||
"resolve_clients_desc": "활성화된 경우 AdGuard Home은 PTR 쿼리를 해당 서버(로컬 클라이언트의 경우 프라이빗 DNS 서버, 공용 IP 주소가 있는 클라이언트의 경우 업스트림 서버)로 전송하여 IP 주소로부터 클라이언트의 호스트명을 역으로 확인하려고 시도합니다.",
|
||||
"check_dhcp_servers": "DHCP 서버 체크",
|
||||
"save_config": "구성 저장",
|
||||
"enabled_dhcp": "DHCP 서버 활성화됨",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "라우터가 DHCP 설정을 제공하지 않으면 AdGuard의 자체 기본 제공 DHCP 서버를 사용할 수 있습니다.",
|
||||
"dhcp_enable": "DHCP 서버 활성화",
|
||||
"dhcp_disable": "DHCP 서버 비활성화",
|
||||
"dhcp_not_found": "네트워크에 활성 DHCP 서버가 없습니다. 기본 제공 DHCP 서버를 안전하게 사용할 수 있습니다. 하지만 자동 테스트에서 100% 보증이 되지 않으므로 네트워크에 활성 DHCP 서버가 있는지없는지 수동으로 다시 확인해 보세요.",
|
||||
"dhcp_not_found": "AdGuard Home이 네트워크에서 활성화된 DHCP 서버를 찾지 못했기 때문에 DHCP 서버를 활성화하는 것이 안전합니다. 하지만 자동 검색이 완전히 안전하지 않기 때문에 수동으로 다시 확인하는 걸 권장합니다.",
|
||||
"dhcp_found": "네트워크에 활성 DHCP 서버가 있습니다. 기본 제공 DHCP 서버를 활성화하는 것은 안전하지 않습니다.",
|
||||
"dhcp_leases": "DHCP 임대",
|
||||
"dhcp_static_leases": "DHCP 고정 임대",
|
||||
"dhcp_leases_not_found": "DHCP 임대를 찾을 수 없음",
|
||||
"dhcp_config_saved": "DHCP 서버 설정 저장됨",
|
||||
"dhcp_config_saved": "DHCP 구성이 성공적으로 저장되었습니다",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4 설정",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 설정",
|
||||
"form_error_required": "필수 필드",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "잘못된 MAC 형식",
|
||||
"form_error_client_id_format": "잘못된 클라이언트 ID 형식",
|
||||
"form_error_server_name": "유효하지 않은 서버 이름입니다",
|
||||
"form_error_subnet": "서브넷 \"{{cidr}}\"에 \"{{ip}}\" IP 주소가 없습니다",
|
||||
"form_error_positive": "0보다 커야 합니다",
|
||||
"form_error_negative": "반드시 0 이상이여야 합니다",
|
||||
"range_end_error": "입력 값은 범위의 시작 지점보다 큰 값 이여야 합니다.",
|
||||
@@ -49,10 +55,10 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "호스트 이름",
|
||||
"dhcp_table_expires": "만료",
|
||||
"dhcp_warning": "DHCP 서버를 사용하려면 네트워크에 다른 활성 DHCP 서버가 없는지 확인해주세요. 다른 활성 DHCP 서버가 있다면, 연결된 장치의 인터넷을 끊을 수 있습니다.",
|
||||
"dhcp_error": "네트워크에 다른 DHCP 서버가 있는지 확인할 수 없습니다.",
|
||||
"dhcp_static_ip_error": "DHCP 서버를 사용하려면 고정 IP 주소를 설정해야 합니다. 이 네트워크 인터페이스가 고정 IP 주소를 사용하고 있는지 확인할 수 없습니다. 고정 IP 주소를 수동으로 설정해주세요.",
|
||||
"dhcp_dynamic_ip_found": "시스템은 <0>{{interfaceName}}</0> 인터페이스에 동적 IP 주소 구성을 사용합니다. DHCP 서버를 사용하기 위해서 고정 IP 주소를 설정해야합니다. <0>{{ipAddress}}</0> 현재 IP 주소입니다. DHCP 활성화 버튼을 누르면 이 IP 주소가 자동으로 고정 IP 주소로 설정됩니다.",
|
||||
"dhcp_warning": "DHCP 서버를 사용하려면 네트워크에 다른 활성화된 DHCP 서버가 없는지 확인해 주세요. 다른 활성 DHCP 서버가 있다면, 연결된 장치의 인터넷이 끊길 수 있습니다.",
|
||||
"dhcp_error": "AdGuard Home이 네트워크에 다른 활성 DHCP 서버가 있는지 확인할 수 없습니다.",
|
||||
"dhcp_static_ip_error": "DHCP 서버를 사용하려면 고정 IP 주소를 설정해야 합니다. AdGuard Home이 이 네트워크 인터페이스가 고정 IP 주소를 사용하는지 확인할 수 없습니다. 고정 IP 주소를 수동으로 설정하십시오.",
|
||||
"dhcp_dynamic_ip_found": "시스템은 <0>{{interfaceName}}</0> 인터페이스에 동적 IP 주소를 사용합니다. DHCP 서버를 사용하려면 고정 IP 주소를 설정해야 합니다. 현재 IP 주소는 <0>{{ipAddress}}</0>입니다. 'DHCP 서버 활성화' 버튼을 누르면 AdGuard Home이 이 IP 주소를 고정 IP 주소로 자동 설정합니다.",
|
||||
"dhcp_lease_added": "\"{{key}}\" 고정 임대 정상적으로 추가되었습니다",
|
||||
"dhcp_lease_deleted": "\"{{key}}\" 고정 임대 정상적으로 삭제되었습니다",
|
||||
"dhcp_new_static_lease": "새 고정 임대",
|
||||
@@ -105,14 +111,14 @@
|
||||
"top_clients": "클라이언트",
|
||||
"no_clients_found": "클라이언트가 없습니다",
|
||||
"general_statistics": "일반 통계",
|
||||
"number_of_dns_query_days": "최근 {{count}} 일 동안 처리된 DNS 쿼리의 수",
|
||||
"number_of_dns_query_days_plural": "최근 {{count}} 일 동안 처리된 DNS 쿼리 수",
|
||||
"number_of_dns_query_days": "최근 {{count}}일 동안 처리된 DNS 쿼리의 수",
|
||||
"number_of_dns_query_days_plural": "최근 {{count}}일 동안 처리된 DNS 쿼리의 수",
|
||||
"number_of_dns_query_24_hours": "최근 24시간 동안 처리된 DNS 쿼리의 수",
|
||||
"number_of_dns_query_blocked_24_hours": "애드블록 필터 및 호스트 차단 목록에 의해 차단된 DNS 요청수",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "AdGuard 브라우징 보안 모듈에 의해 차단된 DNS 요청수",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "여러 성인 웹 사이트가 차단됨",
|
||||
"number_of_dns_query_blocked_24_hours": "광고 차단 필터 및 호스트 차단 목록에 의해 차단된 DNS 요청 수",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "AdGuard 브라우징 보안 모듈에 의해 차단된 DNS 요청 수",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "차단된 성인 웹 사이트의 수",
|
||||
"enforced_save_search": "세이프 서치 강제",
|
||||
"number_of_dns_query_to_safe_search": "Safe Search가 적용된 검색 엔진에 대해 DNS 요청",
|
||||
"number_of_dns_query_to_safe_search": "세이프서치가 적용된 검색 엔진에 대해 DNS 요청 수",
|
||||
"average_processing_time": "평균처리 시간",
|
||||
"average_processing_time_hint": "DNS 요청 처리시 평균 시간(밀리초)",
|
||||
"block_domain_use_filters_and_hosts": "필터 및 호스트 파일을 사용하여 도메인 차단",
|
||||
@@ -122,7 +128,7 @@
|
||||
"use_adguard_parental": "AdGuard 자녀 보호 웹 서비스 사용",
|
||||
"use_adguard_parental_hint": "AdGuard Home은 도메인에 성인 자료가 포함되어 있는지 확인합니다. 브라우징 보안 웹 서비스와 동일한 개인정보 보호 API를 사용함.",
|
||||
"enforce_safe_search": "세이프서치 강제",
|
||||
"enforce_save_search_hint": "AdGuard Home은 다음과 같은 검색엔진(구글, 유투브, 빙, 덕덕고, 얀덱스)에서 안전검색이 가능합니다.",
|
||||
"enforce_save_search_hint": "AdGuard Home이 Google, YouTube, Bing, DuckDuckGo, Yandex, Pixabay와 같은 검색 엔진에서 안전 검색을 시행할 수 있습니다.",
|
||||
"no_servers_specified": "지정된 서버 없음",
|
||||
"general_settings": "일반 설정",
|
||||
"dns_settings": "DNS 설정",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "네트워크 인터페이스",
|
||||
"install_settings_port": "포트",
|
||||
"install_settings_interface_link": "AdGuard Home 관리자 웹 인터페이스는 다음 주소로 제공됨:",
|
||||
"form_error_port": "올바른 포트 값 입력",
|
||||
"form_error_port": "유효한 포트 번호를 입력하십시오",
|
||||
"install_settings_dns": "DNS 서버",
|
||||
"install_settings_dns_desc": "다음 주소의 DNS 서버를 사용하도록 장치 또는 라우터를 구성해야 합니다.",
|
||||
"install_settings_all_interfaces": "모든 인터페이스",
|
||||
@@ -305,7 +311,7 @@
|
||||
"install_devices_router": "라우터",
|
||||
"install_devices_router_desc": "이 설정은 이제 자동으로 당신의 집의 라우터에 연결된 모든 기기에 적용될 것이기에 수동으로 각각의 기기를 설정해줄 필요가 없습니다.",
|
||||
"install_devices_address": "AdGuard Home DNS 서버는 다음의 주소를 받고 있습니다.",
|
||||
"install_devices_router_list_1": "라우터의 환경 설정을 여세요. 환경 설정은 다음의 주소(http://192.168.0.1/ 혹은 http://192.168.1.1/)를 통해 브라우저로 접근 가능합니다. 비밀번호를 입력해야할 수 있습니다. 비밀번호를 잊었다면 대개 라우터 기기에 있는 버튼을 눌러 비밀번호를 초기화할 수 있습니다. 어떤 라우터들은 당신의 컴퓨터/핸드폰에 설치할 수 있는 특정 어플리케이션을 필요로합니다.",
|
||||
"install_devices_router_list_1": "라우터의 환경 설정을 여세요. 환경 설정은 다음의 주소(http://192.168.0.1/ 혹은 http://192.168.1.1/)를 통해 브라우저로 접근 가능합니다. 비밀번호를 입력해야 할 수 있습니다. 비밀번호를 잊었다면 라우터 기기에 있는 버튼을 눌러 비밀번호를 초기화할 수 있지만 라우터 설정이 손실될 수 있습니다. 라우터 설정에 앱이 필요한 경우, 휴대폰이나 컴퓨터에 앱을 설치하고 이를 사용하여 라우터 설정에 액세스하세요.",
|
||||
"install_devices_router_list_2": "각각 1~3자리 숫자의 네 그룹으로 분할된 두 세트의 숫자를 허용하는 필드 옆에 있는 DNS 문자를 찾으세요.",
|
||||
"install_devices_router_list_3": "AdGuard Home 서버 주소를 입력하세요",
|
||||
"install_devices_router_list_4": "일부 라우터 유형에서는 사용자 정의 DNS 서버를 설정할 수 없습니다. 이 경우에는 AdGuard Home을 <0>DHCP 서버</0>로 설정할 수 있습니다. 그렇지 않으면 특정 라우터 모델에 맞게 DNS 서버를 설정하는 방법을 찾아야 합니다.",
|
||||
@@ -334,7 +340,7 @@
|
||||
"install_saved": "성공적으로 저장되었습니다",
|
||||
"encryption_title": "암호화",
|
||||
"encryption_desc": "DNS 및 관리자 웹 인터페이스에 대한 암호화 (HTTPS/TLS) 지원입니다.",
|
||||
"encryption_config_saved": "암호화 구성이 저장되었습니다.",
|
||||
"encryption_config_saved": "암호화 구성이 저장되었습니다",
|
||||
"encryption_server": "서버 이름",
|
||||
"encryption_server_enter": "도메인 이름을 입력하세요.",
|
||||
"encryption_server_desc": "HTTPS를 사용하려면 SSL 인증서와 일치하는 서버 이름을 입력해야 합니다.",
|
||||
@@ -365,7 +371,7 @@
|
||||
"encryption_reset": "암호화 설정을 재설정하시겠습니까?",
|
||||
"topline_expiring_certificate": "SSL 인증서가 곧 만료됩니다. 업데이트<0> 암호화 설정</0>.",
|
||||
"topline_expired_certificate": "SSL 인증서가 만료되었습니다. 업데이트<0> 암호화 설정</0>.",
|
||||
"form_error_port_range": "80-65535 범위에서 포트 값을 입력해주세요.",
|
||||
"form_error_port_range": "80-65535 범위의 포트 번호를 입력하십시오",
|
||||
"form_error_port_unsafe": "안전하지 않은 포트입니다",
|
||||
"form_error_equal": "동일하지 않아야 함",
|
||||
"form_error_password": "비밀번호 불일치",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP 주소",
|
||||
"client_identifier_desc": "클라이언트는 IP 주소, CIDR, MAC 주소 또는 특수 클라이언트 ID로 식별할 수 있습니다 (DoT/DoH/DoQ에 사용 가능). <0>여기에서</0> 클라이언트를 식별하는 방법에 대한 자세한 내용은 확인하실 수 있습니다.",
|
||||
"form_enter_ip": "IP 입력",
|
||||
"form_enter_subnet_ip": "서브넷 \"{{cidr}}\" 내의 IP 주소 입력",
|
||||
"form_enter_mac": "MAC 입력",
|
||||
"form_enter_id": "식별자 입력",
|
||||
"form_add_id": "식별자 추가",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "차단된 클라이언트",
|
||||
"access_disallowed_desc": "CIDR 또는 IP 주소 목록입니다. 구성된 경우 AdGuard Home은 이러한 IP 주소의 요청을 삭제합니다.",
|
||||
"access_blocked_title": "차단된 도메인",
|
||||
"access_blocked_desc": "이 기능을 필터와 혼동하지 마세요. AdGuard Home은 지정된 도메인의 쿼리 요청에서 DNS 쿼리를 삭제합니다. 여기서 특정 도메인을 지정하거나, 와일드 카드 또는 URL 필터규칙을 설정해보세요. 예) 'example.org', '*.example.org' or '||example.org^'.",
|
||||
"access_blocked_desc": "이 기능을 필터와 혼동하지 마세요. AdGuard Home은 이러한 도메인에 대한 DNS 요청을 무시합니다. 여기서 특정 도메인을 지정하거나, 와일드 카드 또는 URL 필터 규칙을 설정해 보세요. 예) 'example.org', '*.example.org' 또는 '||example.org^'.",
|
||||
"access_settings_saved": "액세스 설정이 성공적으로 저장되었습니다.",
|
||||
"updates_checked": "업데이트가 성공적으로 확인되었습니다",
|
||||
"updates_version_equal": "AdGuard Home 최신 상태입니다.",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "IPv6 비활성화",
|
||||
"disable_ipv6_desc": "이 기능이 활성화되면 IPv6 (타입 AAAA) 의 모든 DNS 쿼리가 드랍됩니다.",
|
||||
"fastest_addr": "가장 빠른 IP 주소",
|
||||
"fastest_addr_desc": "반응이 가장 빠른 IP주소를 가진 DNS서버에 쿼리를 수행합니다.",
|
||||
"fastest_addr_desc": "모든 DNS 서버에 쿼리를 수행한 다음 반응이 가장 빠른 IP주소를 반송합니다. AdGuard Home이 모든 DNS 서버의 응답을 기다려야 하기 때문에 DNS 쿼리 속도가 느려지지만 전반적인 연결이 향상됩니다.",
|
||||
"autofix_warning_text": "\"Fix\"를 클릭한다면 AdGuard Home은 시스템이 AdGuard Home의 DNS 서버를 사용하도록 설정합니다.",
|
||||
"autofix_warning_list": "다음 작업을 진행합니다: <0>DNSStubListener 시스템 비활성화</0> <0>DNS 서버 주소를 127.0.0.1로 설정</0> <0>/etc/resolv.conf의 심볼릭 링크 타겟을 /run/systemd/resolve/resolv.conf로 변경</0> <0>DNSStubListener 중지 (systemd-resolved 서비스 새로고침)</0>",
|
||||
"autofix_warning_result": "결과적으로 시스템의 모든 DNS 요청은 기본적으로 AdGuard Home에 의해 처리됩니다.",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "고정 IP 주소 설정",
|
||||
"install_static_ok": "좋은 소식입니다! 고정 IP 주소가 이미 설정되어있네요",
|
||||
"install_static_error": "AdGuard Home는 이 네트워크 인터페이스에서 자동 설정할 수 없습니다. 여기에서 어떻게 이걸 수동으로 할 수 있는지 확인해주세요.",
|
||||
"install_static_configure": "동적 IP 주소를 사용하는 것을 감지했습니다 — <0>{{ip}}</0>. 정말로 이걸 고정 IP로 사용하시겠습니까?",
|
||||
"install_static_configure": "AdGuard Home이 동적 IP 주소를 사용하는 것을 감지했습니다 - <0>{{ip}}</0>. 정말로 이걸 고정 IP로 사용하시겠습니까?",
|
||||
"confirm_static_ip": "AdGuard Home이 {{ip}}를 고정 IP 주소로 설정하려고 합니다. 계속하시겠습니까?",
|
||||
"list_updated": "{{count}} 리스트 업데이트됨",
|
||||
"list_updated_plural": "{{count}} 리스트 업데이트됨",
|
||||
@@ -587,11 +594,11 @@
|
||||
"filter_category_security_desc": "멀웨어, 피싱 또는 사기 도메인을 차단하는 목록",
|
||||
"filter_category_regional_desc": "지역 광고 및 추적 서버에 중점을 둔 목록",
|
||||
"filter_category_other_desc": "기타 차단 목록",
|
||||
"setup_config_to_enable_dhcp_server": "DHCP 서버를 활성화하기 위한 초기 설정",
|
||||
"setup_config_to_enable_dhcp_server": "DHCP 서버를 활성화하기 위한 설정 구성",
|
||||
"original_response": "원래 응답",
|
||||
"click_to_view_queries": "쿼리를 보려면 클릭합니다",
|
||||
"port_53_faq_link": "53번 포트는 보통 \"DNSStubListener\"나 \"systemd-resolved\" 서비스가 이미 사용하고 있습니다. 이 문제에 대한 해결 방법을 <0>설명</0>에서 찾아보세요.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home은 이 클라이언트에서 모든 DNS 쿼리를 삭제합니다.",
|
||||
"client_not_in_allowed_clients": "이 클라이언트는 허용된 클라이언트 목록에 없으므로 허용되지 않습니다.",
|
||||
"experimental": "실험"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
{
|
||||
"client_settings": "Cliënt Instellingen",
|
||||
"example_upstream_reserved": "Je kan DNS upstream <0>specifiëren voor specifieke domein(en)</0>",
|
||||
"example_upstream_comment": "Het commentaar kan gespecificeerd worden",
|
||||
"upstream_parallel": "Gebruik parallelle verzoeken om te versnellen door gelijktijdig verzoeken te sturen naar alle upstream servers",
|
||||
"example_upstream_reserved": "Je kan een DNS upstream specifiëren <0>voor specifieke domein(en)</0>",
|
||||
"example_upstream_comment": "Je kan je commentaar specifiëren",
|
||||
"upstream_parallel": "Parallelle verzoeken gebruiken om te versnellen door gelijktijdig verzoeken te sturen naar alle upstream servers.",
|
||||
"parallel_requests": "Parallelle verzoeken",
|
||||
"load_balancing": "Volume balanceren",
|
||||
"load_balancing_desc": "Eén server per keer bevragen. AdGuard Home gebruikt hiervoor een gewogen willekeurig algoritme om de server te kiezen zodat de snelste server meer zal gebruikt worden.",
|
||||
"bootstrap_dns": "Bootstrap DNS-servers",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS-servers worden gebruikt om IP-adressen op te lossen van de DoH / DoT-resolvers die u opgeeft als upstreams.",
|
||||
"local_ptr_title": "Private DNS-servers",
|
||||
"local_ptr_desc": "De DNS-servers die AdGuard Home zal gebruiken voor zoekopdrachten naar lokaal aangeboden bronnen. Deze server zal bijvoorbeeld worden gebruikt om de hostnamen van de clients op te lossen voor de clients met private IP-adressen. Indien niet ingesteld, gebruikt AdGuard Home automatisch je standaard DNS-resolver.",
|
||||
"local_ptr_placeholder": "Voer één serveradres per regel in",
|
||||
"resolve_clients_title": "Omzetten van hostnamen van clients inschakelen",
|
||||
"resolve_clients_desc": "Indien ingeschakeld, zal AdGuard Home proberen om IP-adressen van apparaten te converteren in hun hostnamen door PTR-verzoeken te sturen naar overeenkomstige resolvers (privé-DNS-servers voor lokale apparaten, upstream-server voor apparaten met een openbaar IP-adres).",
|
||||
"check_dhcp_servers": "Zoek achter DHCP servers",
|
||||
"save_config": "Configuratie opslaan",
|
||||
"enabled_dhcp": "DHCP server inschakelen",
|
||||
@@ -18,7 +23,7 @@
|
||||
"dhcp_description": "Indien je router geen DHCP instellingen heeft,kan je AdGuard's eigen ingebouwde DHCP server gebruiken.",
|
||||
"dhcp_enable": "DHCP server inschakelen",
|
||||
"dhcp_disable": "DHCP server uitschakelen",
|
||||
"dhcp_not_found": "Geen actieve DHCP servers gevonden op het netwerk. Het is VEILIG om de ingebouwde DHCP server in te schakelen",
|
||||
"dhcp_not_found": "Het is veilig om de ingebouwde DHCP server in te schakelen omdat AdGuard Home geen actieve DHCP servers vond op het netwerk. We raden je echter aan om het handmatig opnieuw te controleren, omdat onze automatische test momenteel geen 100% garantie geeft.",
|
||||
"dhcp_found": "Actieve DHCP server(s) gevonden op het netwerk. het is NIET veilig om de ingebouwde DHCP server in te schakelen.",
|
||||
"dhcp_leases": "DHCP lease overzicht",
|
||||
"dhcp_static_leases": "DHCP statische lease",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Ongeldig MAC formaat.",
|
||||
"form_error_client_id_format": "Opmaak cliënt-ID is ongeldig",
|
||||
"form_error_server_name": "Ongeldige servernaam",
|
||||
"form_error_subnet": "Subnet “{{cidr}}” bevat niet het IP-adres “{{ip}}”",
|
||||
"form_error_positive": "Moet groter zijn dan 0",
|
||||
"form_error_negative": "Moet 0 of hoger dan 0 zijn",
|
||||
"range_end_error": "Moet groter zijn dan het startbereik",
|
||||
@@ -49,10 +55,10 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Host naam",
|
||||
"dhcp_table_expires": "Verloopt op",
|
||||
"dhcp_warning": "Indien je de ingebouwde DHCP server wilt inschakelen, let dan op dat er geen andere actieve DHCP server aanwezig is. Dit kan de internet verbinding instabiel maken!.",
|
||||
"dhcp_error": "We kunnen niet bepalen of er een andere DHCP server in het netwerk is.",
|
||||
"dhcp_static_ip_error": "Om de DHCP server te gebruiken, moet een statisch IP-adres worden ingesteld. We hebben niet kunnen vaststellen of de netwerkinterface is geconfigureerd met een statisch IP-adres. Stel handmatig een statisch IP-adres in.",
|
||||
"dhcp_dynamic_ip_found": "Om de DHCP server te gebruiken voor interface <0>{{interfaceName}}</0>, moet er een statisch IP-adres worden ingesteld. Uw huidige IP-adres is <0>{{ipAddress}}</0>. We stellen automatische dit IP-adres in, als statisch IP-adres, wanneer u op de knop DHCP inschakelen drukt.",
|
||||
"dhcp_warning": "Indien je de ingebouwde DHCP server wilt inschakelen, let dan op dat er geen andere actieve DHCP server aanwezig is in je netwerk. Dit kan de internetverbinding instabiel maken voor sommige apparaten in je netwerk!",
|
||||
"dhcp_error": "AdGuard Home kon niet bepalen of er een andere actieve DHCP server in je netwerk aanwezig is.",
|
||||
"dhcp_static_ip_error": "Om de DHCP server te gebruiken, moet een statisch IP-adres worden ingesteld. AdGuard Home heeft niet kunnen vaststellen of de netwerkinterface is geconfigureerd met een statisch IP-adres. Stel handmatig een statisch IP-adres in.",
|
||||
"dhcp_dynamic_ip_found": "Je systeem gebruikt dynamische IP-adres configuratie voor interface <0>{{interfaceName}}</0>. Om de DHCP server te gebruiken moet er een statisch IP-adres worden ingesteld. Je huidige IP-adres is <0>{{ipAddress}}</0>. AdGuard Home zal automatisch dit IP-adres als statisch IP-adres instellen wanneer je op de knop \"DHCP inschakelen\" drukt.",
|
||||
"dhcp_lease_added": "Statische uitgifte \"{{key}}\" met succes toegevoegd",
|
||||
"dhcp_lease_deleted": "Statische uitgifte \"{{key}}\" met succes verwijderd",
|
||||
"dhcp_new_static_lease": "Voeg static lease toe",
|
||||
@@ -105,12 +111,12 @@
|
||||
"top_clients": "Top gebruikers",
|
||||
"no_clients_found": "Geen gebruikers gevonden",
|
||||
"general_statistics": "Generieke statistieken",
|
||||
"number_of_dns_query_days": "Aantal verwerkte DNS aanvragen van de laatste {{count}} dagen",
|
||||
"number_of_dns_query_days": "Aantal verwerkte DNS aanvragen van de laatste {{count}} dag",
|
||||
"number_of_dns_query_days_plural": "Aantal verwerkte DNS aanvragen van de laatste {{count}} dagen",
|
||||
"number_of_dns_query_24_hours": "Aantal verwerkte aanvragen van de laatste 24 uur",
|
||||
"number_of_dns_query_24_hours": "Aantal verwerkte DNS aanvragen van de laatste 24 uur",
|
||||
"number_of_dns_query_blocked_24_hours": "Aantal geblokkeerde DNS aanvragen door advertentie blokkering en hosts blokkeerlijsten",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Aantal geblokkeerde DNS aanvragen door AdGuard browsing security module",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Opgevraagde 18+ websites",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Aantal geblokkeerde DNS aanvragen door AdGuard browsing beveiligingsmodule",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Aantal geblokkeerde 18+ websites",
|
||||
"enforced_save_search": "Geforceerd veilig zoeken",
|
||||
"number_of_dns_query_to_safe_search": "Aantal DNS aanvragen in zoekmachines dmv geforceerd veilig zoeken",
|
||||
"average_processing_time": "Gemiddelde procestijd",
|
||||
@@ -122,7 +128,7 @@
|
||||
"use_adguard_parental": "Gebruik AdGuard Ouderlijk toezicht web service",
|
||||
"use_adguard_parental_hint": "AdGuard Home controleert of het domein 18+ content bevat. Dit gebeurt dmv dezelfde privacy vriendelijke API als de Browsing Security web service.",
|
||||
"enforce_safe_search": "Forceer Veilig Zoeken",
|
||||
"enforce_save_search_hint": "AdGuard Home kan veilig zoeken forceren voor de volgende zoekmachines: Google, Youtube, Bing, en Yandex.",
|
||||
"enforce_save_search_hint": "AdGuard Home kan veilig zoeken forceren voor de volgende zoekmachines: Google, Youtube, Bing, en DuckDuckGo, Yandex, Pixabay.",
|
||||
"no_servers_specified": "Geen servers gespecificeerd",
|
||||
"general_settings": "Generieke instellingen",
|
||||
"dns_settings": "DNS Instellingen",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "Encryptie Instellingen",
|
||||
"dhcp_settings": "DHCP Instellingen",
|
||||
"upstream_dns": "Upstream DNS-servers",
|
||||
"upstream_dns_help": "Server adressen invoeren, een per regel. <a>Meer weten</a> over het configureren van upstream DNS-servers.",
|
||||
"upstream_dns_help": "Een server-adres per regel invoeren. <a>Meer weten</a> over het configureren van upstream DNS-servers.",
|
||||
"upstream_dns_configured_in_file": "Geconfigureerd in {{path}}",
|
||||
"test_upstream_btn": "Test upstream",
|
||||
"upstreams": "Upstreams",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Ratio limiet",
|
||||
"edns_enable": "Zet EDNS client subnet aan",
|
||||
"edns_cs_desc": "Indien ingeschakeld stuurt AdGuard Home het subnet van de client naar de DNS-servers.",
|
||||
"rate_limit_desc": "Het aantal verzoeken per seconde die een enkele client mag doen (0 betekent onbeperkt)",
|
||||
"rate_limit_desc": "Het aantal verzoeken per seconde toegelaten per toestel. 0 betekent onbeperkt.",
|
||||
"blocking_ipv4_desc": "IP-adres dat moet worden teruggegeven voor een geblokkeerd A-verzoek",
|
||||
"blocking_ipv6_desc": "IP-adres dat moet worden teruggegeven voor een geblokkeerd A-verzoek",
|
||||
"blocking_mode_default": "Standaard: Reageer met een nul IP adres (0.0.0.0 for A; :: voor AAAA) wanneer geblokkeerd door een Adblock-type regel; reageer met het IP-adres dat is opgegeven in de regel wanneer geblokkeerd door een /etc/hosts type regel",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Luister interface",
|
||||
"install_settings_port": "Poort",
|
||||
"install_settings_interface_link": "De webinterface van AdGuard Home admin is beschikbaar op de volgende adressen:",
|
||||
"form_error_port": "Voer geldige poortwaarde in",
|
||||
"form_error_port": "Geldige poortwaarde invoeren",
|
||||
"install_settings_dns": "DNS-server",
|
||||
"install_settings_dns_desc": "Je moet jouw apparaten of router configureren om de DNS-server te gebruiken op de volgende adressen:",
|
||||
"install_settings_all_interfaces": "Alle interfaces",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Deze setup zal automatisch alle apparaten die op uw thuisrouter zijn aangesloten dekken en u hoeft ze niet allemaal handmatig te configureren.",
|
||||
"install_devices_address": "AdGuard Home DNS-server luistert naar de volgende adressen",
|
||||
"install_devices_router_list_1": "Open de instellingen pagina voor uw router. Meestal kunt u deze vanuit uw browser openen via een URL (zoals http://192.168.0.1/ of http://192.168.1.1/). Mogelijk wordt u gevraagd om het wachtwoord in te voeren. Als u het niet meer weet, kunt u het wachtwoord vaak opnieuw instellen door op een knop op de router zelf te drukken. Voor sommige routers is een specifieke toepassing vereist, die in dat geval al op uw computer / telefoon moet zijn geïnstalleerd.",
|
||||
"install_devices_router_list_1": "Open de instellingen van jouw router. Meestal kan je deze vanuit jouw browser openen via een URL, zoals http://192.168.0.1/ of http://192.168.1.1/. Mogelijk wordt er gevraagd om een wachtwoord in te voeren. Als je het niet meer weet, kan je het wachtwoord vaak opnieuw instellen door op een knop op de router zelf te drukken, maar weet wel dat je dan de volledige routerconfiguratie kwijt bent (terug naar fabrieksinstellingen). Voor sommige routers is een specifieke toepassing/app vereist, die in dat geval op jouw computer/smartphone/tablet moet geïnstalleerd zijn.",
|
||||
"install_devices_router_list_2": "Zoek de DHCP/DNS-instellingen. Zoek naar de DNS-letters naast een veld dat twee of drie reeksen nummers toestaat, elk verdeeld in vier groepen van één tot drie cijfers.",
|
||||
"install_devices_router_list_3": "Voer je AdGuard Home server adressen daar in.",
|
||||
"install_devices_router_list_4": "Je kan de DNS-server niet aanpassen op sommige routers. In dat geval kan het een oplossing zijn om AdGuard Home te definiëren als een <0>DHCP-server</0>. Je kan ook in de handleiding van je router kijken hoe je een DNS-server aanpast.",
|
||||
"install_devices_router_list_4": "Je kan een DNS-server niet instellen op sommige routers. In dat geval kan het een oplossing zijn om AdGuard Home te definiëren als een <0>DHCP-server</0>. Je kan ook in de handleiding van je router kijken hoe je een DNS-server aanpast.",
|
||||
"install_devices_windows_list_1": "Open het Configuratiescherm via het menu Start of Windows zoeken.",
|
||||
"install_devices_windows_list_2": "Ga naar de categorie Netwerk en Internet en vervolgens naar Netwerkcentrum.",
|
||||
"install_devices_windows_list_3": "Zoek aan de linkerkant van het scherm Adapter-instellingen wijzigen en klik erop.",
|
||||
@@ -334,7 +340,7 @@
|
||||
"install_saved": "Succesvol opgeslagen",
|
||||
"encryption_title": "Encryptie",
|
||||
"encryption_desc": "Encryptie (HTTPS/TLS) ondersteuning voor DNS en admin web interface",
|
||||
"encryption_config_saved": "Encryptie configuratie opgeslagen",
|
||||
"encryption_config_saved": "Versleuteling configuratie opgeslagen",
|
||||
"encryption_server": "Server naam",
|
||||
"encryption_server_enter": "Voer domein naam in",
|
||||
"encryption_server_desc": "Om HTTPS te gebruiken, moet je de servernaam invoeren die overeenkomt met je SSL-certificaat of jokerteken-certificaat. Als het veld niet is ingesteld, accepteert het TLS-verbindingen voor elk domein.",
|
||||
@@ -365,9 +371,9 @@
|
||||
"encryption_reset": "Ben je zeker dat je de encryptie instellingen wil resetten?",
|
||||
"topline_expiring_certificate": "Jouw SSL certificaat vervalt binnenkort. Update <0>Encryptie instellingen</0>.",
|
||||
"topline_expired_certificate": "Jouw SSL certificaat is vervallen. Update <0>Encryptie instellingen</0>.",
|
||||
"form_error_port_range": "Vul poort in tussen 80 en 65535",
|
||||
"form_error_port_range": "Poort nummer invoeren tussen 80 en 65535",
|
||||
"form_error_port_unsafe": "Dit is een onveilige poort",
|
||||
"form_error_equal": "Zou niet gelijk mogen zijn",
|
||||
"form_error_equal": "Mag niet gelijk zijn",
|
||||
"form_error_password": "Wachtwoord komt niet overeen",
|
||||
"reset_settings": "Reset Instellingen",
|
||||
"update_announcement": "AdGuard Home{{version}} is nu beschikbaar! <0>klik hier</0> voor meer info.",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP adres",
|
||||
"client_identifier_desc": "Apparaten kunnen worden geïdentificeerd door hun IP-adres, CIDR, MAC-adres of een speciaal apparaat-ID (kan gebruikt worden voor DoT/DoH/DoQ). <0>Hier</0> kan je meer lezen over het identificeren van apparaten.",
|
||||
"form_enter_ip": "Vul IP in",
|
||||
"form_enter_subnet_ip": "Voer een IP-adres in voor het subnet “{{cidr}}”",
|
||||
"form_enter_mac": "Vul MAC in",
|
||||
"form_enter_id": "ID invoeren",
|
||||
"form_add_id": "ID toevoegen",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Verworpen gebruikers",
|
||||
"access_disallowed_desc": "Een lijst van CIDR of IP adressen. Indien ingesteld, zal AdGuard Home aanvragen van deze IP adressen verwerpen.",
|
||||
"access_blocked_title": "Niet toegelaten domeinen",
|
||||
"access_blocked_desc": "Verwar dit niet met filters. AdGuard Home zal deze DNS-zoekopdrachten niet uitvoeren die deze domeinen in de zoekopdracht bevatten. Hier kan je de domeinnamen, wildcards en url-filter-regels specifiëren, bijv. 'example.org', '*.example.org' or '||example.org^'.",
|
||||
"access_blocked_desc": "Verwar dit niet met filters. AdGuard Home zal deze DNS-zoekopdrachten niet uitvoeren die deze domeinen in de zoekopdracht bevatten. Hier kan je de exacte domeinnamen, wildcards en url-filter-regels specifiëren, bijv. \"example.org\", \"*.example.org\" of \"||example.org^\".",
|
||||
"access_settings_saved": "Toegangsinstellingen succesvol opgeslagen",
|
||||
"updates_checked": "Met succes op updates gecontroleerd",
|
||||
"updates_version_equal": "AdGuard Home is up-to-date",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "Zet IPv6 uit",
|
||||
"disable_ipv6_desc": "Als deze functie is ingeschakeld, worden alle DNS-query's voor IPv6-adressen (type AAAA) verwijderd.",
|
||||
"fastest_addr": "Snelste IP adres",
|
||||
"fastest_addr_desc": "Alle DNS-servers bevragen en het snelste IP adres terugkoppelen. Dit zal de DNS verzoeken vertragen omdat we moeten wachten op de antwoorden van alles DNS-servers, maar verbetert wel de connectiviteit.",
|
||||
"fastest_addr_desc": "Alle DNS-servers bevragen en het snelste IP adres terugkoppelen. Dit zal de DNS verzoeken vertragen omdat AdGuard Home moet wachten op de antwoorden van alles DNS-servers, maar verbetert wel de connectiviteit.",
|
||||
"autofix_warning_text": "Als je op \"Repareren\" klikt, configureert AdGuard Home jouw systeem om de AdGuard Home DNS-server te gebruiken.",
|
||||
"autofix_warning_list": "De volgende taken worden uitgevoerd: <0> Deactiveren van Systeem DNSStubListener</0> <0> DNS-serveradres instellen op 127.0.0.1 </0> <0> Symbolisch koppelingsdoel van /etc/resolv.conf vervangen door /run/systemd/resolve/resolv.conf </0> <0> Stop DNSStubListener (herlaad systemd-resolved service) </0>",
|
||||
"autofix_warning_result": "Als gevolg hiervan worden alle DNS-verzoeken van je systeem standaard door AdGuard Home verwerkt.",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "Stel een statisch IP-adres in",
|
||||
"install_static_ok": "Goed nieuws! Het statische IP-adres was al geconfigureerd",
|
||||
"install_static_error": "AdGuard Home kan dit niet automatisch configureren op deze netwerkinterface. Zoek een instructie om dit handmatig te doen.",
|
||||
"install_static_configure": "We hebben vastgesteld dat er een dynamisch IP-adres wordt gebruikt - <0> {{ip}} </0>. Wil je dit als je statische adres gebruiken?",
|
||||
"install_static_configure": "AdGuard Home heeft vastgesteld dat er een dynamisch IP-adres <0>{{ip}}</0> wordt gebruikt. Wil je dit als je statische adres gebruiken?",
|
||||
"confirm_static_ip": "AdGuard Home configureert {{ip}} als jouw statische IP-adres. Wil je doorgaan?",
|
||||
"list_updated": "{{count}} lijst geüpdatet",
|
||||
"list_updated_plural": "{{count}} lijsten geüpdatet",
|
||||
@@ -587,11 +594,11 @@
|
||||
"filter_category_security_desc": "Lijsten gespecialiseerd in het blokkeren van malware, phising of scam domeinen",
|
||||
"filter_category_regional_desc": "Lijsten die focussen op regionale ads en tracking servers",
|
||||
"filter_category_other_desc": "Overige blokkeerlijsten",
|
||||
"setup_config_to_enable_dhcp_server": "Configuratie instelling om DHCP-server in te schakelen",
|
||||
"setup_config_to_enable_dhcp_server": "Configuratie instellen om DHCP-server in te schakelen",
|
||||
"original_response": "Oorspronkelijke reactie",
|
||||
"click_to_view_queries": "Klik om queries te bekijken",
|
||||
"port_53_faq_link": "Poort 53 wordt vaak gebruikt door services als DNSStubListener- of de systeem DNS-resolver. Lees a.u.b. <0>deze instructie</0> hoe dit is op te lossen.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home zal alle DNS verzoeken van deze toepassing/dit systeem negeren.",
|
||||
"client_not_in_allowed_clients": "De toepassing is niet toegestaan omdat deze niet in de lijst \"Toegestane toepassingen\" voorkomt.",
|
||||
"experimental": "Experimenteel"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
{
|
||||
"client_settings": "Klientinnstillinger",
|
||||
"example_upstream_reserved": "du kan bestemme en oppstrøms-DNS <0>for et spesifikt domene(r)</0>",
|
||||
"example_upstream_comment": "Du kan spesifisere kommentaren",
|
||||
"upstream_parallel": "Bruk parallele forespørsler for å få oppfarten på behandlinger, ved å forespørre til alle oppstrømstjenerne samtidig",
|
||||
"parallel_requests": "Parallelle forespørsler",
|
||||
"load_balancing": "Pågangstrykk-utjevning",
|
||||
"load_balancing_desc": "Forespør én tjener om gangen. AdGuard Home vil bruke en 'vektlagt tilfeldig valg'-algoritme for å velge tjener, slik at den raskeste tjeneren blir brukt oftere.",
|
||||
"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.",
|
||||
"local_ptr_title": "Private DNS-tjenere",
|
||||
"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",
|
||||
"unavailable_dhcp": "DHCP er utilgjengelig",
|
||||
@@ -18,12 +14,10 @@
|
||||
"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",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4-innstillinger",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6-innstillinger",
|
||||
"form_error_required": "Påkrevd felt",
|
||||
@@ -49,16 +43,11 @@
|
||||
"ip": "IP-adresse",
|
||||
"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",
|
||||
"dhcp_reset": "Er du sikker på at du vil tilbakestille DHCP-oppsettet?",
|
||||
"country": "Land",
|
||||
"city": "By",
|
||||
"delete_confirm": "Er du sikker på at du vil slette «{{key}}»?",
|
||||
@@ -105,14 +94,7 @@
|
||||
"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",
|
||||
@@ -122,7 +104,6 @@
|
||||
"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",
|
||||
@@ -134,7 +115,6 @@
|
||||
"encryption_settings": "Krypteringsinnstillinger",
|
||||
"dhcp_settings": "DHCP-innstillinger",
|
||||
"upstream_dns": "Oppstrøms-DNS-tjenere",
|
||||
"upstream_dns_help": "Skriv inn tjeneradresser, én per linje. <a>Lær mer</a> om å konfigurere oppstrøms-DNS-tjenere.",
|
||||
"upstream_dns_configured_in_file": "Satt opp i {{path}}",
|
||||
"test_upstream_btn": "Test oppstrømstilkoblinger",
|
||||
"upstreams": "Oppstrømstjenere",
|
||||
@@ -260,7 +240,6 @@
|
||||
"rate_limit": "Forespørselsfrekvensgrense",
|
||||
"edns_enable": "Aktiver EDNS-klientundernett",
|
||||
"edns_cs_desc": "Hvis det er skrudd på, vil AdGuard Home sende klientenes undernett til DNS-tjenerne.",
|
||||
"rate_limit_desc": "Antallet forespørsler per sekund som én enkelt klient har lov til å be om (0: ubegrenset)",
|
||||
"blocking_ipv4_desc": "IP-adressen som det skal svares med for blokkerte A-forespørsler",
|
||||
"blocking_ipv6_desc": "IP-adressen som det skal svares med for blokkerte AAAA-forespørsler",
|
||||
"blocking_mode_default": "Standard: Svar med null-IP-adresse (0.0.0.0 for A; :: for AAAA) når den blokkeres av adblock-aktige oppføringer; svar med IP-adressen som er spesifisert i oppføringen når den blokkeres av /etc/hosts-typeoppføringer",
|
||||
@@ -282,7 +261,6 @@
|
||||
"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",
|
||||
@@ -301,10 +279,8 @@
|
||||
"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_router_list_4": "På noen rutertyper, f.eks. Altibox sine hjemmesentraler, kan man ikke velge en selvvalgt DNS-tjener. I så fall kan det hjelpe på saken om du setter opp AdGuard Home som en <0>DHCP-tjener</0>. Alternativt, burde du se i bruksanvisningen til din spesifikke rutermodell om hvordan man tilpasser DNS-tjenerne.",
|
||||
"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.",
|
||||
@@ -330,7 +306,6 @@
|
||||
"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_redirect": "Automatisk omdiriger til HTTPS",
|
||||
@@ -360,13 +335,10 @@
|
||||
"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>Krypteringsinnstillinger</0>.",
|
||||
"topline_expired_certificate": "SSL-sertifikatet har utløpt. Oppdater <0>Krypteringsinnstillinger</0>.",
|
||||
"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 her</0> for mere informasjon.",
|
||||
"setup_guide": "Oppsettsveiledning",
|
||||
"dns_addresses": "DNS-adresser",
|
||||
"dns_start": "DNS-tjeneren starter opp",
|
||||
"dns_status_error": "Feil ved sjekk av DNS-tjenerstatusen",
|
||||
@@ -410,7 +382,6 @@
|
||||
"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",
|
||||
@@ -511,7 +482,6 @@
|
||||
"disable_ipv6": "Skru av IPv6",
|
||||
"disable_ipv6_desc": "Hvis dette er skrudd på, vil alle DNS-forespørslene til IPv6-adresser (AAAA-type) bli droppet.",
|
||||
"fastest_addr": "Raskeste IP-adresse",
|
||||
"fastest_addr_desc": "Forespør alle DNS-tjenerne og hent den raskeste IP-adressen blant alle svarene. Dette vil gjøre DNS-forespørslene tregere, siden vi må vente på svar fra alle DNS-tjenerne, men det vil forbedre tilkoblingen generelt.",
|
||||
"autofix_warning_text": "Hvis du klikker på «Fiks», vil AdGuard Home sette opp systemet ditt til å bruke 'AdGuard Home'-DNS-tjeneren.",
|
||||
"autofix_warning_list": "Den vil utføre disse handlingene: <0>Skru av systemets DNSStubListener</0> <0>Sette DNS-tjeneradressen til 127.0.0.1</0> <0>Bytte ut det symbolske lenkemålet til /etc/resolv.conf med /run/systemd/resolve/resolv.conf</0> <0>Stoppe DNSStubListener (gjeninnlast 'systemd-resolved'-tjenesten)</0>",
|
||||
"autofix_warning_result": "Som følge av det vil alle DNS-forespørsler fra systemet ditt bli behandlet av AdGuard Home som standard.",
|
||||
@@ -541,7 +511,6 @@
|
||||
"set_static_ip": "Velg en statisk IP-adresse",
|
||||
"install_static_ok": "Gode nyheter! Den statiske IP-adressen er allerede satt opp",
|
||||
"install_static_error": "AdGuard Home kan ikke sette opp automatisk i dette nettverksgrensesnitt. Vennligst let opp anvisningen for hvordan man gjør det manuellt.",
|
||||
"install_static_configure": "Vi har oppdaget at det brukes en dynamisk IP-adresse — <0>{{ip}}</0>. Vil du bruke det som din statiske adresse?",
|
||||
"confirm_static_ip": "AdGuard Home vil sette opp {{ip}} til å bli din statiske IP-adresse. Vil du fortsette?",
|
||||
"list_updated": "{{count}} liste oppdatert",
|
||||
"list_updated_plural": "{{count}} lister oppdatert",
|
||||
@@ -579,11 +548,10 @@
|
||||
"filter_category_security_desc": "Lister som spesialiserer seg på å blokkere skadevare-, phishing- eller svindeldomener",
|
||||
"filter_category_regional_desc": "Lister som fokuserer på regionale reklamer og sporingstjenere",
|
||||
"filter_category_other_desc": "Andre blokkeringslister",
|
||||
"setup_config_to_enable_dhcp_server": "Oppsett for å skru på DHCP-tjeneren",
|
||||
"original_response": "Opprinnelig svar",
|
||||
"click_to_view_queries": "Klikk for å vise forespørsler",
|
||||
"port_53_faq_link": "Port 53 er ofte opptatt av «DNSStubListener»- eller «systemd-resolved»-tjenestene. Vennligst les <0>denne instruksjonen</0> om hvordan man løser dette.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home vil droppe alle DNS-forespørsler fra denne klienten.",
|
||||
"client_not_in_allowed_clients": "Klienten er ikke tillatt, fordi den ikke er i «Tillatte klienter»-listen.",
|
||||
"experimental": "Eksperimentell"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
{
|
||||
"client_settings": "Ustawienia klienta",
|
||||
"example_upstream_reserved": "możesz określić serwer DNS <0>dla konkretnych domen</0>",
|
||||
"example_upstream_comment": "Możesz wpisać komentarz",
|
||||
"upstream_parallel": "Używaj równoległych żądań, aby przyspieszyć rozwiązywanie adresów domen, jednocześnie wysyłając zapytania do wszystkich głównych serwerów DNS",
|
||||
"example_upstream_reserved": "Możesz określić nadrzędny serwer DNS <0>dla określonych domen</0>",
|
||||
"example_upstream_comment": "Możesz podać komentarz",
|
||||
"upstream_parallel": "Użyj zapytań równoległych, aby przyspieszyć rozwiązywanie przez jednoczesne wysyłanie zapytań do wszystkich serwerów nadrzędnych.",
|
||||
"parallel_requests": "Równoległe żądania",
|
||||
"load_balancing": "Równoważenie obciążenia",
|
||||
"load_balancing_desc": "Zapytaj jeden serwer na raz. AdGuard Home wykorzysta losowy algorytm, aby użyć najczęściej najszybszego serwera.",
|
||||
"load_balancing_desc": "Wysyłaj zapytania do jednego serwera nadrzędnego naraz. AdGuard Home użyje ważonego algorytmu losowego do wybrania serwera, tak aby najszybszy serwer był używany częściej.",
|
||||
"bootstrap_dns": "Serwery DNS Bootstrap",
|
||||
"bootstrap_dns_desc": "Serwery DNS Bootstrap są używane do ustalenia adresu IP serwerów DoH/DoT, które oznaczysz jako główne serwery DNS.",
|
||||
"local_ptr_title": "Prywatne serwery DNS",
|
||||
"local_ptr_desc": "Serwery DNS, których AdGuard Home używa do lokalnych zapytań PTR. Serwery te są używane do rozwiązywania nazw hostów klientów z prywatnymi adresami IP, na przykład \"192.168.12.34\", przy użyciu rDNS. Jeśli nie jest ustawiony, AdGuard Home używa domyślnych resolwerów DNS systemu operacyjnego.",
|
||||
"local_ptr_placeholder": "Wprowadź po jednym adresie serwera w każdym wierszu",
|
||||
"resolve_clients_title": "Włącz odwrotne rozpoznawanie adresów IP klientów",
|
||||
"resolve_clients_desc": "Jeśli jest włączona, AdGuard Home spróbuje odwrócić adresy IP klientów do ich nazw hostów, wysyłając zapytania PTR do odpowiednich resolverów (prywatne serwery DNS dla klientów lokalnych, serwer nadrzędny dla klientów z publicznymi adresami IP).",
|
||||
"check_dhcp_servers": "Sprawdź serwery DHCP",
|
||||
"save_config": "Zapisz konfigurację",
|
||||
"enabled_dhcp": "Serwer DHCP włączony",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "Jeśli router nie zapewnia ustawień DHCP, możesz użyć wbudowanego serwera DHCP AdGuard.",
|
||||
"dhcp_enable": "Włącz serwer DHCP",
|
||||
"dhcp_disable": "Wyłącz serwer DHCP",
|
||||
"dhcp_not_found": "Włączenie wbudowanego serwera DHCP jest bezpieczne - nie znaleźliśmy żadnych aktywnych serwerów DHCP w sieci. Sprawdź to jednak ręcznie, ponieważ nasz automatyczny test nie daje obecnie 100% gwarancji.",
|
||||
"dhcp_not_found": "Włączenie wbudowanego serwera DHCP jest bezpieczne, ponieważ AdGuard Home nie znalazł żadnych aktywnych serwerów DHCP w sieci. Powinieneś jednak ponownie sprawdzić to ręcznie, ponieważ automatyczne sondowanie nie daje obecnie 100% gwarancji.",
|
||||
"dhcp_found": "W sieci został znaleziony aktywny serwer DHCP. Włączenie wbudowanego serwera DHCP nie jest bezpieczne.",
|
||||
"dhcp_leases": "Dzierżawa DHCP",
|
||||
"dhcp_static_leases": "Dzierżawy statyczne DHCP",
|
||||
"dhcp_leases_not_found": "Nie znaleziono dzierżaw DHCP",
|
||||
"dhcp_config_saved": "Konfiguracja DHCP pomyślnie zapisana",
|
||||
"dhcp_config_saved": "Konfiguracja DHCP została pomyślnie zapisana",
|
||||
"dhcp_ipv4_settings": "Ustawienia serwera DHCP IPv4",
|
||||
"dhcp_ipv6_settings": "Ustawienia serwera DHCP IPv6",
|
||||
"form_error_required": "Pole jest wymagane",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Nieprawidłowy format MAC",
|
||||
"form_error_client_id_format": "Nieprawidłowy format identyfikatora klienta",
|
||||
"form_error_server_name": "Nieprawidłowa nazwa serwera",
|
||||
"form_error_subnet": "Podsieć \"{{cidr}}\" nie zawiera adresu IP \"{{ip}}\"",
|
||||
"form_error_positive": "Musi być większa niż 0",
|
||||
"form_error_negative": "Musi być równy 0 lub większy",
|
||||
"range_end_error": "Zakres musi być większy niż początkowy",
|
||||
@@ -49,10 +55,10 @@
|
||||
"ip": "Adres IP",
|
||||
"dhcp_table_hostname": "Nazwa hosta",
|
||||
"dhcp_table_expires": "Wygasa",
|
||||
"dhcp_warning": "Aby włączyć wbudowany serwer DHCP, upewnij się, że nie ma innego aktywnego serwera DHCP. W przeciwnym razie może przerwać połączenie internetowe dla podłączonych urządzeń!",
|
||||
"dhcp_error": "Nie udało się ustalić, czy w sieci jest inny serwer DHCP.",
|
||||
"dhcp_static_ip_error": "Aby korzystać z serwera DHCP, należy ustawić statyczny adres IP. Nie udało się ustalić, czy ten interfejs sieciowy jest skonfigurowany przy użyciu statycznego adresu IP. Ustaw statyczny adres IP ręcznie.",
|
||||
"dhcp_dynamic_ip_found": "Twój system używa dynamicznej konfiguracji adresu IP dla interfejsu <0>{{interfaceName}}</0>. Aby korzystać z serwera DHCP, należy ustawić statyczny adres IP. Twój aktualny adres IP to <0>{{ipAddress}}</0>. Automatycznie ustawimy ten adres IP jako statyczny, jeśli naciśniesz przycisk Włącz DHCP.",
|
||||
"dhcp_warning": "Jeśli mimo wszystko chcesz włączyć serwer DHCP, upewnij się, że w Twojej sieci nie ma innego aktywnego serwera DHCP, ponieważ może to spowodować przerwanie łączności z Internetem dla urządzeń w sieci!",
|
||||
"dhcp_error": "AdGuard Home nie mógł określić, czy w sieci jest inny aktywny serwer DHCP.",
|
||||
"dhcp_static_ip_error": "Aby korzystać z serwera DHCP musi być ustawiony statyczny adres IP. AdGuard Home nie udało się ustalić, czy ten interfejs sieciowy jest skonfigurowany przy użyciu statycznego adresu IP. Proszę ustawić statyczny adres IP ręcznie.",
|
||||
"dhcp_dynamic_ip_found": "Twój system używa dynamicznej konfiguracji adresu IP dla interfejsu <0>{{interfaceName}}</0>. Aby można było korzystać z serwera DHCP, należy ustawić statyczny adres IP. Twój obecny adres IP to <0>{{ipAddress}}</0>. AdGuard Home automatycznie ustawi ten adres IP jako statyczny, jeśli naciśniesz przycisk \"Włącz serwer DHCP\".",
|
||||
"dhcp_lease_added": "Dzierżawa statyczna \"{{key}}\" pomyślnie dodana",
|
||||
"dhcp_lease_deleted": "Dzierżawa statyczna \"{{key}}\" pomyślnie usunięta",
|
||||
"dhcp_new_static_lease": "Nowa dzierżawa statyczna",
|
||||
@@ -109,10 +115,10 @@
|
||||
"number_of_dns_query_days_plural": "Liczba przetworzonych zapytań DNS w ciągu ostatnich {{count}} dni",
|
||||
"number_of_dns_query_24_hours": "Liczba zapytań DNS przetworzonych w ciągu ostatnich 24 godzin",
|
||||
"number_of_dns_query_blocked_24_hours": "Liczba żądań DNS zablokowanych przez filtry blokowania reklam i listy zablokowanych hostów",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Liczba żądań DNS zablokowanych przez moduł AdGuard Bezpieczne Przeglądanie",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Liczba żądań DNS zablokowanych przez moduł Bezpiecznego przeglądania AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Liczba zablokowanych witryn dla dorosłych",
|
||||
"enforced_save_search": "Wymuszone bezpieczne wyszukiwanie",
|
||||
"number_of_dns_query_to_safe_search": "Liczba żądań DNS do wyszukiwarek, dla których zastosowano wymuszenie bezpiecznego wyszukiwania",
|
||||
"number_of_dns_query_to_safe_search": "Liczba żądań DNS kierowanych do wyszukiwarek, dla których wymuszono Bezpieczne wyszukiwanie",
|
||||
"average_processing_time": "Średni czas przetwarzania",
|
||||
"average_processing_time_hint": "Średni czas przetwarzania żądania DNS liczony w milisekundach",
|
||||
"block_domain_use_filters_and_hosts": "Zablokuj domeny za pomocą filtrów i plików host",
|
||||
@@ -122,7 +128,7 @@
|
||||
"use_adguard_parental": "Użyj usługi Kontrola Rodzicielska AdGuard",
|
||||
"use_adguard_parental_hint": "AdGuard Home sprawdzi, czy domena zawiera materiały dla dorosłych. Używa tego samego interfejsu API przyjaznego prywatności, co usługa sieciowa Bezpieczne Przeglądanie. ",
|
||||
"enforce_safe_search": "Wymuszaj bezpieczne wyszukiwanie",
|
||||
"enforce_save_search_hint": "AdGuard Home może wymusić bezpieczne wyszukiwanie w następujących wyszukiwarkach: Google, Youtube, Bing, DuckDuckGo, Yandex, Pixabay.",
|
||||
"enforce_save_search_hint": "AdGuard Home może wymusić bezpieczne wyszukiwanie w następujących wyszukiwarkach: Google, YouTube, Bing, DuckDuckGo, Yandex, Pixabay.",
|
||||
"no_servers_specified": "Nie określono serwerów",
|
||||
"general_settings": "Ustawienia główne",
|
||||
"dns_settings": "Ustawienia DNS",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "Ustawienia szyfrowania",
|
||||
"dhcp_settings": "Ustawienia DHCP",
|
||||
"upstream_dns": "Główne serwery DNS",
|
||||
"upstream_dns_help": "Wpisz adresy serwerów po jednym w każdym wierszu. <a>Dowiedz się więcej </a> o konfigurowaniu głównych serwerów DNS.",
|
||||
"upstream_dns_help": "Wprowadź po jednym adresie serwera w każdym wierszu. <a>Dowiedz się więcej</a> o konfigurowaniu nadrzędnych serwerów DNS.",
|
||||
"upstream_dns_configured_in_file": "Skonfigurowano w {{path}}",
|
||||
"test_upstream_btn": "Test głównych serwerów DNS",
|
||||
"upstreams": "Główne serwery DNS",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Limit ilościowy",
|
||||
"edns_enable": "Włącz podsieć klienta EDNS",
|
||||
"edns_cs_desc": "Po włączeniu AdGuard Home będzie wysyłał podsieci klientów na serwery DNS.",
|
||||
"rate_limit_desc": "Liczba żądań na sekundę, które może wykonać pojedynczy klient (ustawienie 0 oznacza nieograniczoną liczbę)",
|
||||
"rate_limit_desc": "Liczba żądań na sekundę dozwolona na klienta. Ustawienie wartości 0 oznacza brak ograniczeń.",
|
||||
"blocking_ipv4_desc": "Adres IP, który ma zostać zwrócony w przypadku zablokowanego żądania A",
|
||||
"blocking_ipv6_desc": "Adres IP, który ma zostać zwrócony w przypadku zablokowanego żądania AAAA",
|
||||
"blocking_mode_default": "Domyślna: Odpowiedz z zerowym adresem IP (0.0.0.0 dla A; :: dla AAAA) po zablokowaniu przez regułę Adblock; odpowiedź adresem IP wpisanym w regule, jeśli jest blokowany przez regułę w stylu /etc/hosts",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Interfejs sieciowy",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Twój interfejs www AdGuard Home Admin będzie dostępny pod następującymi adresami:",
|
||||
"form_error_port": "Wpisz poprawną wartość portu",
|
||||
"form_error_port": "Wprowadź prawidłowy numer portu",
|
||||
"install_settings_dns": "Serwer DNS",
|
||||
"install_settings_dns_desc": "Konieczne będzie skonfigurowanie urządzenia lub routera do korzystania z serwera DNS pod następującymi adresami:",
|
||||
"install_settings_all_interfaces": "Wszystkie interfejsy",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "To ustawienie automatycznie obejmuje wszystkie urządzenia podłączone do routera domowego i nie trzeba ich konfigurować ręcznie.",
|
||||
"install_devices_address": "Serwer DNS AdGuard Home używa następujących adresów",
|
||||
"install_devices_router_list_1": "Otwórz ustawienia routera. Zazwyczaj możesz uzyskać do niego dostęp przez przeglądarkę za pośrednictwem adresu URL (na przykład http://192.168.0.1/ lub http://192.168.1.1/). Możesz zostać poproszony o wpisanie hasła. Jeśli nie pamiętasz hasła, możesz je odzyskać, naciskając przycisk na samym routerze. Niektóre routery wymagają określonej aplikacji, która powinna być już zainstalowana na komputerze lub telefonie.",
|
||||
"install_devices_router_list_1": "Otwórz preferencje routera. Zazwyczaj można uzyskać do nich dostęp z przeglądarki za pośrednictwem adresu URL, takiego jak http://192.168.0.1/ lub http://192.168.1.1/. Możesz zostać poproszony o podanie hasła. Jeśli go nie pamiętasz, często można zresetować hasło przez naciśnięcie przycisku na samym routerze, ale należy pamiętać, że jeśli ta procedura jest wybrana, prawdopodobnie stracisz całą konfigurację routera. Jeśli Twój router wymaga aplikacji do jego konfiguracji, zainstaluj ją na swoim telefonie lub komputerze i użyj jej, aby uzyskać dostęp do ustawień routera.",
|
||||
"install_devices_router_list_2": "Znajdź ustawienia DHCP/DNS. Poszukaj skrótu DNS obok pola, które pozwala wstawić dwa lub trzy zestawy liczb, z których każdy jest podzielony na cztery grupy z jedną do trzech cyfr.",
|
||||
"install_devices_router_list_3": "Wpisz adresy swojego serwera AdGuard Home.",
|
||||
"install_devices_router_list_4": "Nie możesz ustawić niestandardowego serwera DNS na niektórych routerach. W takim przypadku może pomóc Ci skonfigurowanie AdGuard Home jako <0>serwera DHCP</0>. W przeciwnym razie musisz poszukać instrukcji ustawienia serwerów DNS dla konkretnego modelu routera.",
|
||||
"install_devices_router_list_4": "Na niektórych typach routerów nie można skonfigurować własnego serwera DNS. W takim przypadku pomocne może być skonfigurowanie AdGuard Home jako <0>serwera DHCP</0>. W przeciwnym razie należy sprawdzić w instrukcji obsługi routera, jak dostosować serwery DNS do konkretnego modelu routera.",
|
||||
"install_devices_windows_list_1": "Otwórz panel Ustawienia w menu Start lub w Windows.",
|
||||
"install_devices_windows_list_2": "Przejdź do kategorii Sieć i Internet, a następnie do Centrum sieci i udostępniania.",
|
||||
"install_devices_windows_list_3": "Po lewej stronie ekranu znajdź Zmień ustawienia adaptera i kliknij na niego.",
|
||||
@@ -334,7 +340,7 @@
|
||||
"install_saved": "Pomyślnie zapisany",
|
||||
"encryption_title": "Szyfrowanie",
|
||||
"encryption_desc": "Obsługa szyfrowania (HTTPS/TLS) dla interfejsu sieciowego DNS i administratora",
|
||||
"encryption_config_saved": "Zapisano konfigurację szyfrowania",
|
||||
"encryption_config_saved": "Konfiguracja szyfrowania została zapisana",
|
||||
"encryption_server": "Nazwa serwera",
|
||||
"encryption_server_enter": "Wpisz swoją nazwę domeny",
|
||||
"encryption_server_desc": "Aby korzystać z protokołu HTTPS, musisz wprowadzić nazwę serwera, która jest zgodna z certyfikatem SSL lub certyfikatem typu wildcard. Jeśli pole nie jest ustawione, będzie akceptować połączenia TLS dla dowolnej domeny.",
|
||||
@@ -365,9 +371,9 @@
|
||||
"encryption_reset": "Czy na pewno chcesz zresetować ustawienia szyfrowania?",
|
||||
"topline_expiring_certificate": "Twój certyfikat SSL wkrótce wygaśnie. Zaktualizuj <0>Ustawienia szyfrowania</0>.",
|
||||
"topline_expired_certificate": "Twój certyfikat SSL wygasł. Zaktualizuj <0>Ustawienia szyfrowania</0>.",
|
||||
"form_error_port_range": "Wpisz wartość portu z zakresu 80-65535",
|
||||
"form_error_port_range": "Wpisz numer portu z zakresu 80-65535",
|
||||
"form_error_port_unsafe": "To jest niebezpieczny port",
|
||||
"form_error_equal": "Nie powinien być równy",
|
||||
"form_error_equal": "Nie mogą być równe",
|
||||
"form_error_password": "Hasło nie pasuje",
|
||||
"reset_settings": "Resetowanie ustawień",
|
||||
"update_announcement": "AdGuard Home {{version}} jest już dostępny! <0>Kliknij tutaj</0> aby uzyskać więcej informacji.",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "Adres IP",
|
||||
"client_identifier_desc": "Klientów można zidentyfikować po adresie IP, CIDR, adresie MAC lub specjalnym identyfikatorze klienta (może służyć do DoT/DoH/DoQ). <0>Tutaj</0> możesz dowiedzieć się więcej o tym, jak identyfikować klientów.",
|
||||
"form_enter_ip": "Wpisz adres IP",
|
||||
"form_enter_subnet_ip": "Wprowadź adres IP w podsieci \"{{cidr}}\"",
|
||||
"form_enter_mac": "Wpisz adres MAC",
|
||||
"form_enter_id": "Wpisz identyfikator",
|
||||
"form_add_id": "Dodaj identyfikator",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Niedozwoleni klienci",
|
||||
"access_disallowed_desc": "Lista adresów CIDR lub IP. Po skonfigurowaniu AdGuard Home usunie żądania z tych adresów IP.",
|
||||
"access_blocked_title": "Niedozwolone domeny",
|
||||
"access_blocked_desc": "Nie myl go z filtrami. AdGuard Home zignoruje zapytanie DNS dotyczące tych domen w ramach przetwarzania zapytań. Tutaj możesz określić dokładne nazwy domen, subdomen i reguły adresów URL np. 'example.org', '*.example.org' lub '||example.org^'.",
|
||||
"access_blocked_desc": "Nie myl tego z filtrami. AdGuard Home będzie odrzucał zapytania DNS z tymi domenami w zapytaniach. Tutaj możesz określić dokładne nazwy domen, symbole wieloznaczne i reguły filtrowania adresów URL, np. \"example.org\", \"*.example.org\" lub \"||example.org^\".",
|
||||
"access_settings_saved": "Ustawienia dostępu zostały pomyślnie zapisane",
|
||||
"updates_checked": "Aktualizacje pomyślnie sprawdzone",
|
||||
"updates_version_equal": "AdGuard Home jest aktualny",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "Wyłącz IPv6",
|
||||
"disable_ipv6_desc": "Jeśli ta funkcja jest włączona, wszystkie zapytania DNS dotyczące adresów IPv6 (typ AAAA) zostaną usunięte.",
|
||||
"fastest_addr": "Najszybszy adres IP",
|
||||
"fastest_addr_desc": "Zapytaj wszystkie serwery DNS i zwróć najszybszy adres IP spośród wszystkich odpowiedzi. Ta czynność spowolni zapytania DNS, ponieważ odpowiedź musi nadejść ze wszystkich serwerów DNS, ale poprawi ogólną stabilność połączenia.",
|
||||
"fastest_addr_desc": "Zapytaj wszystkie serwery DNS i zwróć najszybszy adres IP spośród wszystkich odpowiedzi. Spowalnia to zapytania DNS, ponieważ AdGuard Home musi czekać na odpowiedzi ze wszystkich serwerów DNS, ale poprawia ogólną łączność.",
|
||||
"autofix_warning_text": "Jeśli klikniesz „Napraw”, AdGuardHome skonfiguruje system do korzystania z serwera DNS AdGuardHome.",
|
||||
"autofix_warning_list": "Wykona następujące zadania: <0>Dezaktywuj system DNSStubListener</0> <0>Ustaw adres serwera DNS na 127.0.0.1</0> <0>Zamień symboliczny cel łącza z /etc/resolv.conf na /run/systemd/resolve/resolv.conf</0> <0>Zatrzymaj DNSStubListener (przeładuj usługę systemową)</0>",
|
||||
"autofix_warning_result": "W rezultacie wszystkie żądania DNS z Twojego systemu będą domyślnie przetwarzane przez AdGuardHome.",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "Ustaw statyczny adres IP",
|
||||
"install_static_ok": "Dobre wieści! Statyczny adres IP jest już skonfigurowany",
|
||||
"install_static_error": "AdGuard Home nie może skonfigurować go automatycznie dla tego interfejsu sieciowego. Poszukaj instrukcji, jak to zrobić ręcznie.",
|
||||
"install_static_configure": "Wykryliśmy, że używany jest dynamiczny adres IP — <0>{{ip}}</0>. Czy chcesz użyć go jako adresu statycznego?",
|
||||
"install_static_configure": "AdGuard Home wykrył, że używany jest dynamiczny adres IP <0>{{ip}}</0>. Czy chcesz, aby został on ustawiony jako adres statyczny?",
|
||||
"confirm_static_ip": "AdGuard Home skonfiguruje {{ip}} aby był Twoim statycznym adresem IP. Czy chcesz kontynuować?",
|
||||
"list_updated": "{{count}} lista zaktualizowana",
|
||||
"list_updated_plural": "{{count}} list zaktualizowanych",
|
||||
@@ -587,11 +594,11 @@
|
||||
"filter_category_security_desc": "Listy, które specjalizują się w blokowaniu domen ze złośliwym oprogramowaniem, phishingiem lub oszustwami",
|
||||
"filter_category_regional_desc": "Listy, które koncentrują się na reklamach regionalnych i serwerach ze skryptami śledzącymi",
|
||||
"filter_category_other_desc": "Inne listy zablokowanych",
|
||||
"setup_config_to_enable_dhcp_server": "Ustaw konfigurację serwera DHCP, aby go włączyć",
|
||||
"setup_config_to_enable_dhcp_server": "Konfiguracja ustawień w celu włączenia serwera DHCP",
|
||||
"original_response": "Oryginalna odpowiedź",
|
||||
"click_to_view_queries": "Kliknij, aby wyświetlić zapytania",
|
||||
"port_53_faq_link": "Port 53 jest często zajęty przez usługi \"DNSStubListener\" lub \"systemd-resolved\". Przeczytaj <0>tę instrukcję</0> jak to rozwiązać.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home odrzuci zapytanie DNS od tego klienta.",
|
||||
"client_not_in_allowed_clients": "Klient nie jest dozwolony, ponieważ nie ma go na liście „Dozwoleni klienci”.",
|
||||
"experimental": "Funkcja eksperymentalna"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
"client_settings": "Configurações do cliente",
|
||||
"example_upstream_reserved": "Você pode especificar o DNS primário <0>para o domínio(s) especifico</0>",
|
||||
"example_upstream_comment": "Você pode especificar o comentário",
|
||||
"upstream_parallel": "Usar consultas paralelas para acelerar a resolução consultando simultaneamente todos os servidores upstream",
|
||||
"upstream_parallel": "Usar consultas paralelas para acelerar a resolução consultando simultaneamente todos oss servidores DNS primário",
|
||||
"parallel_requests": "Solicitações paralelas",
|
||||
"load_balancing": "Balanceamento de carga",
|
||||
"load_balancing_desc": "Consulta um servidor de cada vez. O AdGuard Home usará o algoritmo aleatório ponderado para escolher o servidor, para que o servidor mais rápido seja usado com mais frequência.",
|
||||
"load_balancing_desc": "Consulte um servidor DNS primário por vez. O AdGuard Home usará o algoritmo aleatório ponderado para escolher o servidor para que o servidor mais rápido seja usado com mais frequência.",
|
||||
"bootstrap_dns": "Servidores DNS de inicialização",
|
||||
"bootstrap_dns_desc": "Servidores DNS de inicialização são usados para resolver endereços IP dos resolvedores DoH/DoT que você especifica como upstreams.",
|
||||
"local_ptr_title": "Servidores DNS privados",
|
||||
"local_ptr_desc": "Os servidores DNS que o AdGuard Home usa para consultas PTR locais. Esses servidores são usados para resolver os nomes de host de clientes com endereços IP privados, por exemplo \"192.168.12.34\", usando rDNS. Se não for definido, o AdGuard Home usa os resolvedores DNS padrão do seu sistema operacional.",
|
||||
"local_ptr_placeholder": "Insira um endereço de servidor por linha",
|
||||
"resolve_clients_title": "Ativar resolução reversa de endereços IP de clientes",
|
||||
"resolve_clients_desc": "Se ativado, o AdGuard Home tentará resolver de forma reversa os endereços IP dos clientes em seus nomes de host, enviando consultas PTR aos resolvedores correspondentes (servidores DNS privados para clientes locais, servidor DNS primário para clientes com endereços IP públicos).",
|
||||
"check_dhcp_servers": "Verificar por servidores DHCP",
|
||||
"save_config": "Salvar configuração",
|
||||
"enabled_dhcp": "Servidor DHCP ativado",
|
||||
@@ -18,7 +23,7 @@
|
||||
"dhcp_description": "Se o seu roteador não fornecer configurações de DHCP, você poderá usar o servidor DHCP integrado do AdGuard.",
|
||||
"dhcp_enable": "Ativar servidor DHCP",
|
||||
"dhcp_disable": "Desativar servidor DHCP",
|
||||
"dhcp_not_found": "É seguro ativar o servidor DHCP integrado - não encontramos nenhum servidor DHCP ativo na rede. No entanto, recomendamos que você faça manualmente uma nova verificação, pois nosso teste automático não oferece 100% de garantia.",
|
||||
"dhcp_not_found": "É seguro ativar o servidor DHCP integrado porque o AdGuard Home não encontrou nenhum servidor DHCP ativo na rede. No entanto, você deve verificar isso manualmente, pois a verificação automática atualmente não oferece 100% de garantia.",
|
||||
"dhcp_found": "Um servidor DHCP ativo foi encontrado na rede. Não é seguro ativar o servidor DHCP incorporado.",
|
||||
"dhcp_leases": "Concessões DHCP",
|
||||
"dhcp_static_leases": "Concessões de DHCP estático",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Formato do endereço MAC inválido",
|
||||
"form_error_client_id_format": "Formato do ID de cliente inválido",
|
||||
"form_error_server_name": "Nome de servidor inválido",
|
||||
"form_error_subnet": "A sub-rede \"{{cidr}}\" não contém o endereço IP \"{{ip}}\"",
|
||||
"form_error_positive": "Deve ser maior que 0",
|
||||
"form_error_negative": "Deve ser igual ou superior a 0",
|
||||
"range_end_error": "Deve ser maior que o início do intervalo",
|
||||
@@ -49,10 +55,10 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Nome do servidor",
|
||||
"dhcp_table_expires": "Expira",
|
||||
"dhcp_warning": "Se você quiser ativar o servidor DHCP, verifique se não há outro servidor DHCP ativo na sua rede. Caso contrário, a internet pode parar de funcionar para outros dispositivos conectados!",
|
||||
"dhcp_error": "Não foi possível determinar se existe outro servidor DHCP na rede.",
|
||||
"dhcp_static_ip_error": "Para usar o servidor DHCP, você deve definir um endereço IP estático. Não conseguimos determinar se essa interface de rede está configurada usando o endereço de IP estático. Por favor, defina um endereço IP estático manualmente.",
|
||||
"dhcp_dynamic_ip_found": "Seu sistema usa a configuração de endereço IP dinâmico para a interface <0>{{interfaceName}}</0>. Para usar o servidor DHCP, você deve definir um endereço de IP estático. Seu endereço IP atual é <0> {{ipAddress}} </ 0>. Vamos definir automaticamente este endereço IP como estático se você pressionar o botão Ativar DHCP.",
|
||||
"dhcp_warning": "Se você quiser ativar o servidor DHCP de qualquer maneira, certifique-se de que não haja outro servidor DHCP ativo em sua rede, pois isso pode quebrar a conectividade com a Internet para dispositivos na rede!",
|
||||
"dhcp_error": "O AdGuard Home não conseguiu determinar se há outro servidor DHCP ativo na rede.",
|
||||
"dhcp_static_ip_error": "Para usar o servidor DHCP, você deve definir um endereço IP estático. AdGuard Home não conseguiu determinar se essa interface de rede está configurada usando o endereço de IP estático. Por favor, defina um endereço IP estático manualmente.",
|
||||
"dhcp_dynamic_ip_found": "Seu sistema usa a configuração de endereço IP dinâmico para a interface <0>{{interfaceName}}</0>. Para usar o servidor DHCP, você deve definir um endereço de IP estático. Seu endereço IP atual é <0> {{ipAddress}} </ 0>. AdGuard Home irá definir automaticamente este endereço IP como estático se você pressionar o botão \"Ativar servidor DHCP\".",
|
||||
"dhcp_lease_added": "Concessão estática \"{{key}}\" adicionada com sucesso",
|
||||
"dhcp_lease_deleted": "Concessão estática \"{{key}}\" excluída com sucesso",
|
||||
"dhcp_new_static_lease": "Nova concessão estática",
|
||||
@@ -110,9 +116,9 @@
|
||||
"number_of_dns_query_24_hours": "O número de consultas DNS processadas nas últimas 24 horas",
|
||||
"number_of_dns_query_blocked_24_hours": "Várias solicitações DNS bloqueadas por filtros de bloqueio de anúncios e listas de bloqueio de hosts",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Várias solicitações de DNS bloqueadas pelo módulo de segurança da navegação do AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Vários sites adultos bloqueados",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "O número de sites adultos bloqueados",
|
||||
"enforced_save_search": "Forçar pesquisa segura",
|
||||
"number_of_dns_query_to_safe_search": "Várias solicitações de DNS para motores de busca para os quais a pesquisa segura foi aplicada",
|
||||
"number_of_dns_query_to_safe_search": "O número de solicitações de DNS para mecanismos de pesquisa para os quais a pesquisa segura foi aplicada",
|
||||
"average_processing_time": "Tempo médio de processamento",
|
||||
"average_processing_time_hint": "Tempo médio em milissegundos no processamento de uma solicitação DNS",
|
||||
"block_domain_use_filters_and_hosts": "Bloquear domínios usando arquivos de filtros e hosts",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "Configurações de criptografia",
|
||||
"dhcp_settings": "Configurações de DHCP",
|
||||
"upstream_dns": "Servidores DNS primário",
|
||||
"upstream_dns_help": "Insira os endereços dos servidores, um por linha. <a>Saber mais</a> sobre a configuração de servidores DNS primários.",
|
||||
"upstream_dns_help": "Insira um endereço de servidor. um por linha. <a>Saber mais</a> sobre a configuração de servidores DNS primários.",
|
||||
"upstream_dns_configured_in_file": "Configurado em {{path}}",
|
||||
"test_upstream_btn": "Testar DNS primário",
|
||||
"upstreams": "DNS primário",
|
||||
@@ -190,7 +196,7 @@
|
||||
"example_upstream_dot": "<0>DNS-sobre-TLS</0> criptografado",
|
||||
"example_upstream_doh": "<0>DNS-sobre-HTTPS</0> criptografado",
|
||||
"example_upstream_doq": "<0>DNS-sobre-QUIC</0> criptografado",
|
||||
"example_upstream_sdns": "Você pode usar <0>DNS Stamps</0>para o <1>DNSCrypt</1>ou usar os resolvedores <2>DNS-sobre-HTTPS</2>",
|
||||
"example_upstream_sdns": "você pode usar <0>DNS Stamps</0> para o <1>DNSCrypt</1> ou usar os resolvedores <2>DNS-sobre-HTTPS</2>",
|
||||
"example_upstream_tcp": "DNS regular (através do TCP)",
|
||||
"all_lists_up_to_date_toast": "Todas as listas já estão atualizadas",
|
||||
"updated_upstream_dns_toast": "Atualizado os servidores DNS upstream",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Taxa limite",
|
||||
"edns_enable": "Ativar a sub-rede do cliente EDNS",
|
||||
"edns_cs_desc": "Se ativado, o AdGuard Home estará enviando as sub-redes dos clientes para os servidores DNS.",
|
||||
"rate_limit_desc": "O número de solicitações por segundo que um único cliente pode fazer (0: ilimitado)",
|
||||
"rate_limit_desc": "O número de solicitações por segundo permitidas por cliente. Definir como 0 significa que não há limite.",
|
||||
"blocking_ipv4_desc": "Endereço de IP a ser retornado para uma solicitação bloqueada",
|
||||
"blocking_ipv6_desc": "Endereço de IP a ser retornado para uma solicitação AAAA bloqueada",
|
||||
"blocking_mode_default": "Padrão: Responder com zero endereço IP (0.0.0.0 para A; :: para AAAA) quando bloqueado pela regra de estilo Adblock; responde com o endereço IP especificado na regra quando bloqueado pela regra /etc/hosts-style",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Interface de escuta",
|
||||
"install_settings_port": "Porta",
|
||||
"install_settings_interface_link": "A interface web de administrador do AdGuard estará disponível nos seguintes endereços:",
|
||||
"form_error_port": "Digite uma porta válida",
|
||||
"form_error_port": "Digite um numero de porta válida",
|
||||
"install_settings_dns": "Servidor DNS",
|
||||
"install_settings_dns_desc": "Você precisa configurar seu dispositivo ou roteador para usar o servidor DNS nos seguintes endereços:",
|
||||
"install_settings_all_interfaces": "Todas interfaces",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Roteador",
|
||||
"install_devices_router_desc": "Esta configuração cobrirá automaticamente todos os dispositivos conectados ao seu roteador doméstico e você não irá precisar configurar cada um deles manualmente.",
|
||||
"install_devices_address": "O servidor de DNS do AdGuard Home está capturando os seguintes endereços",
|
||||
"install_devices_router_list_1": "Abra as configurações do seu roteador\nNo navegador digite o IP do roteador, o padrão é (http://192.168.0.1/ ou http://192.168.1.1/), e o login e senha é admin/admin; Se você não se lembra da senha, você pode redefinir a senha rapidamente pressionando um botão no próprio roteador. Alguns roteadores têm um aplicativo específico que já deve estar instalado em seu computador/telefone.",
|
||||
"install_devices_router_list_1": "Abra as preferências do seu roteador. Normalmente, você pode acessá-lo de seu navegador por meio de um URL, como http://192.168.0.1/ ou http://192.168.1.1/. Você pode ser solicitado a inserir uma senha. Se você não se lembrar, muitas vezes você pode redefinir a senha pressionando um botão no próprio roteador, mas esteja ciente de que se esse procedimento for escolhido, você provavelmente perderá toda a configuração do roteador. Se o seu roteador requer um aplicativo para configurá-lo, instale o aplicativo no seu telefone ou PC e use-o para acessar as configurações do roteador.",
|
||||
"install_devices_router_list_2": "Encontre as Configurações de DNS. Procure as letras DNS ao lado de um campo que permite dois ou três conjuntos de números, cada um dividido em quatro grupos de um a três números.",
|
||||
"install_devices_router_list_3": "Digite aqui seu servidor do AdGuard Home.",
|
||||
"install_devices_router_list_4": "Você não pode definir um servidor DNS personalizado em alguns tipos de roteadores. Nesse caso, pode ajudar se você configurar o AdGuard Home como um <0>servidor DHCP</0>. Caso contrário, você deve procurar o manual sobre como personalizar os servidores DNS para o seu modelo de roteador específico.",
|
||||
"install_devices_router_list_4": "Em alguns tipos de roteador, um servidor DNS personalizado não pode ser configurado. Nesse caso, configurar o AdGuard Home como um <0>Servidor DHCP</0> pode ajudar. Caso contrário, você deve verificar o manual do roteador sobre como personalizar os servidores DNS em seu modelo de roteador específico.",
|
||||
"install_devices_windows_list_1": "Abra o Painel de Controle pelo Menu Iniciar ou pela Pesquisa do Windows.",
|
||||
"install_devices_windows_list_2": "Entre na categoria Rede e Internet e depois clique em Central de Rede e Compartilhamento.",
|
||||
"install_devices_windows_list_3": "No lado esquerdo da janela clique em Alterar as configurações do adaptador.",
|
||||
@@ -365,7 +371,7 @@
|
||||
"encryption_reset": "Você tem certeza de que deseja redefinir a configuração de criptografia?",
|
||||
"topline_expiring_certificate": "Seu certificado SSL está prestes a expirar. Atualize suas <0>configurações de criptografia</]0>",
|
||||
"topline_expired_certificate": "Seu certificado SSL está expirado. Atualize suas <0>configurações de criptografia</0>",
|
||||
"form_error_port_range": "Digite um porta entre 80 e 65535",
|
||||
"form_error_port_range": "Digite um número de porta entre 80 e 65535",
|
||||
"form_error_port_unsafe": "Esta porta não é segura",
|
||||
"form_error_equal": "Não deve ser igual",
|
||||
"form_error_password": "Senhas não coincidem",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "Endereço de IP",
|
||||
"client_identifier_desc": "Os clientes podem ser identificados pelo endereço IP, CIDR, Endereço MAC ou um ID de cliente especial (pode ser usado para DoT/DoH/DoQ). <0>Aqui</0> você pode aprender mais sobre como identificar clientes.",
|
||||
"form_enter_ip": "Digite o endereço de IP",
|
||||
"form_enter_subnet_ip": "Digite um endereço IP na sub-rede \"{{cidr}}\"",
|
||||
"form_enter_mac": "Digite o endereço MAC",
|
||||
"form_enter_id": "Inserir identificador",
|
||||
"form_add_id": "Adicionar identificador",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Clientes não permitidos",
|
||||
"access_disallowed_desc": "Uma lista de endereços IP ou CIDR. Ao configurar, o AdGuard Home irá descartar as solicitações desses endereços de IP.",
|
||||
"access_blocked_title": "Domínios bloqueados",
|
||||
"access_blocked_desc": "Não confunda isso com filtros. O AdGuard Home deixará de fazer consultas de DNS com esses domínios na questão das consultas. Aqui você pode especificar os nomes exatos de domínio, wildcards e regras do filtro por url, por exemplo: 'exemplo.org', '*.exemplo.org' ou '||example.org^'.",
|
||||
"access_blocked_desc": "Não confunda isso com filtros. O AdGuard Home deixará de fazer consultas DNS com esses domínios nas questões das consultas. Aqui você pode especificar os nomes de domínio exatos, caracteres curinga e regras de filtro de URL, por exemplo. \"example.org\", \"*.example.org\" ou \"||example.org^\".",
|
||||
"access_settings_saved": "Configurações de acesso foram salvas com sucesso",
|
||||
"updates_checked": "Atualizações verificadas com sucesso",
|
||||
"updates_version_equal": "O AdGuard Home está atualizado.",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "Desativar IPv6",
|
||||
"disable_ipv6_desc": "Se este recurso estiver ativado, todas as consultas de DNS para endereços IPv6 (tipo AAAA) serão ignoradas.",
|
||||
"fastest_addr": "Endereço de IP mais rápido",
|
||||
"fastest_addr_desc": "Consulta todos os servidores DNS e retorna o endereço IP mais rápido entre todas as respostas. Isso irá retardar as consultas ao DNS, pois temos que esperar por respostas de todos os servidores DNS, porém melhorando a conectividade em geral.",
|
||||
"fastest_addr_desc": "Consulta todos os servidores DNS e retorna o endereço IP mais rápido entre todas as respostas. Isso torna as consultas DNS mais lentas, pois o AdGuard Home tem que esperar pelas respostas de todos os servidores DNS, mas melhora a conectividade geral.",
|
||||
"autofix_warning_text": "Se clicar em \"Corrigir\", o AdGuardHome irá configurar o seu sistema para utilizar o servidor DNS do AdGuardHome.",
|
||||
"autofix_warning_list": "Ele irá realizar estas tarefas: <0>Desativar sistema DNSStubListener</0> <0>Definir endereço do servidor DNS para 127.0.0.1</0> <0>Substituir o alvo simbólico do link /etc/resolv.conf para /run/systemd/resolv.conf</0> <0>Parar DNSStubListener (recarregar serviço resolvido pelo sistema)</0>",
|
||||
"autofix_warning_result": "Como resultado, todos as solicitações DNS do seu sistema serão processadas pelo AdGuard Home por padrão.",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "Definir um endereço de IP estático",
|
||||
"install_static_ok": "Boas notícias! O endereço de IP estático já está configurado",
|
||||
"install_static_error": "O AdGuard Home não pode configurar automaticamente para esta interface de rede. Por favor, procure uma instrução sobre como fazer isso manualmente.",
|
||||
"install_static_configure": "Detectamos que um endereço de IP dinâmico é sendo usado — <0>{{ip}}</0>. Deseja utilizar como seu endereço estático?",
|
||||
"install_static_configure": "O AdGuard Home detectou que o endereço IP dinâmico <0>{{ip}}</0> está sendo usado. Você deseja que seja definido como seu endereço estático?",
|
||||
"confirm_static_ip": "O AdGuard Home irá configurar {{ip}} para ser seu endereço IP estático. Deseja continuar?",
|
||||
"list_updated": "{{count}} lista atualizada",
|
||||
"list_updated_plural": "{{count}} listas atualizadas",
|
||||
@@ -587,11 +594,11 @@
|
||||
"filter_category_security_desc": "Listas especializadas em bloquear domínios de malware, phishing ou fraude",
|
||||
"filter_category_regional_desc": "Listas focadas em anúncios regionais e servidores de rastreamento",
|
||||
"filter_category_other_desc": "Outras listas de bloqueio",
|
||||
"setup_config_to_enable_dhcp_server": "Configure a configuração para habilitar o servidor DHCP",
|
||||
"setup_config_to_enable_dhcp_server": "Configure a configuração para ativar o servidor DHCP",
|
||||
"original_response": "Resposta original",
|
||||
"click_to_view_queries": "Clique para ver as consultas",
|
||||
"port_53_faq_link": "A porta 53 é frequentemente ocupada por serviços \"DNSStubListener\" ou \"systemd-resolved\". Por favor leia <0>essa instrução</0> para resolver isso.",
|
||||
"adg_will_drop_dns_queries": "O AdGuard Home descartará todas as consultas DNS deste cliente.",
|
||||
"client_not_in_allowed_clients": "O cliente não é permitido porque não está na lista \"Clientes permitidos\".",
|
||||
"experimental": "Experimental"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
{
|
||||
"client_settings": "Definições do cliente",
|
||||
"example_upstream_reserved": "Podes especificar um DNS primário <0>para domínio(s) especifico(s)</0>",
|
||||
"example_upstream_reserved": "Podes especificar o DNS primário <0>para domínio(s) especifico(s)</0>",
|
||||
"example_upstream_comment": "Tu podes especificar o comentário",
|
||||
"upstream_parallel": "Usar consultas paralelas para acelerar a resolução consultando simultaneamente todos os servidores upstream",
|
||||
"upstream_parallel": "Usar consultas paralelas para acelerar a resolução consultando simultaneamente todos os servidores DNS",
|
||||
"parallel_requests": "Solicitações paralelas",
|
||||
"load_balancing": "Balanceamento de carga",
|
||||
"load_balancing_desc": "Consulta um servidor de cada vez. O AdGuard Home usará o algoritmo aleatório ponderado para escolher o servidor, para que o servidor mais rápido seja usado com mais frequência.",
|
||||
"load_balancing_desc": "Consulte um servidor DNS primário por vez. O AdGuard Home usará o algoritmo aleatório ponderado para escolher o servidor para que o servidor mais rápido seja usado com mais frequência.",
|
||||
"bootstrap_dns": "Servidores DNS de arranque",
|
||||
"bootstrap_dns_desc": "Servidores DNS de inicialização são usados para resolver endereços IP dos resolvedores DoH/DoT que especifica como upstreams.",
|
||||
"local_ptr_title": "Servidores DNS privados",
|
||||
"local_ptr_desc": "Os servidores DNS que o AdGuard Home usa para consultas PTR locais. Esses servidores são usados para resolver os nomes de host de clientes com endereços IP privados, por exemplo \"192.168.12.34\", usando rDNS. Se não for definido, o AdGuard Home usa os resolvedores DNS padrão do seu sistema operacional.",
|
||||
"local_ptr_placeholder": "Insira um endereço de servidor por linha",
|
||||
"resolve_clients_title": "Ativar resolução reversa de endereços IP de clientes",
|
||||
"resolve_clients_desc": "Se activado, o AdGuard Home tentará resolver de forma reversa os endereços IP dos clientes em seus nomes de host, enviando consultas PTR aos resolvedores correspondentes (servidores DNS privados para clientes locais, servidor DNS primário para clientes com endereços IP públicos).",
|
||||
"check_dhcp_servers": "Verificar por servidores DHCP",
|
||||
"save_config": "Guardar definição",
|
||||
"enabled_dhcp": "Servidor DHCP activado",
|
||||
@@ -16,10 +21,10 @@
|
||||
"unavailable_dhcp_desc": "O AdGuard Home não pode executar um servidor DHCP em seu sistema operacional",
|
||||
"dhcp_title": "Servidor DHCP (experimental)",
|
||||
"dhcp_description": "Se o seu router não fornecer configurações de DHCP, poderá usar o servidor DHCP integrado do AdGuard.",
|
||||
"dhcp_enable": "Activar servidor DHCP",
|
||||
"dhcp_disable": "Desactivar servidor DHCP",
|
||||
"dhcp_not_found": "É seguro activar o servidor DHCP integrado - não encontrámos nenhum servidor DHCP activo na rede. No entanto, recomendamos que faça manualmente uma nova verificação, pois o nosso teste automático não oferece 100% de garantia.",
|
||||
"dhcp_found": "Um servidor DHCP activo foi encontrado na rede. Não é seguro activar o servidor DHCP incorporado.",
|
||||
"dhcp_enable": "Ativar servidor DHCP",
|
||||
"dhcp_disable": "Desativar servidor DHCP",
|
||||
"dhcp_not_found": "É seguro ativar o servidor DHCP integrado porque o AdGuard Home não encontrou nenhum servidor DHCP ativo na rede. No entanto, você deve verificar isso manualmente, pois a verificação automática atualmente não oferece 100% de garantia.",
|
||||
"dhcp_found": "Um servidor DHCP ativo foi encontrado na rede. Não é seguro ativar o servidor DHCP incorporado.",
|
||||
"dhcp_leases": "Concessões DHCP",
|
||||
"dhcp_static_leases": "Concessões de DHCP estático",
|
||||
"dhcp_leases_not_found": "Nenhuma concessão DHCP encontrada",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Formato do endereço MAC inválido",
|
||||
"form_error_client_id_format": "Formato inválido",
|
||||
"form_error_server_name": "Nome de servidor inválido",
|
||||
"form_error_subnet": "A sub-rede \"{{cidr}}\" não contém o endereço IP \"{{ip}}\"",
|
||||
"form_error_positive": "Deve ser maior que 0",
|
||||
"form_error_negative": "Deve ser igual ou superior a 0",
|
||||
"range_end_error": "Deve ser maior que o início do intervalo",
|
||||
@@ -49,10 +55,10 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Nome do servidor",
|
||||
"dhcp_table_expires": "Expira",
|
||||
"dhcp_warning": "Se quiser activar o servidor DHCP, verifique se não há outro servidor DHCP activo na sua rede. Caso contrário, a internet pode parar de funcionar noutros dispositivos ligados!",
|
||||
"dhcp_error": "Não foi possível determinar se existe outro servidor DHCP na rede.",
|
||||
"dhcp_static_ip_error": "Para usar o servidor DHCP, deve definir um endereço IP estático. Não conseguimos determinar se essa interface de rede está configurada usando o endereço de IP estático. Por favor, defina um endereço IP estático manualmente.",
|
||||
"dhcp_dynamic_ip_found": "O seu sistema usa a configuração de endereço IP dinâmico para a interface <0>{{interfaceName}}</0>. Para usar o servidor DHCP, deve definir um endereço de IP estático. O seu endereço IP actual é <0> {{ipAddress}} </ 0>. Vamos definir automaticamente este endereço IP como estático se pressionar o botão Activar DHCP.",
|
||||
"dhcp_warning": "Se tu quiser ativar o servidor DHCP de qualquer maneira, certifique-se de que não haja outro servidor DHCP ativo em tua rede, pois isso pode quebrar a conectividade com a Internet para dispositivos na rede!",
|
||||
"dhcp_error": "O AdGuard Home não conseguiu determinar se há noutro servidor DHCP ativo na rede.",
|
||||
"dhcp_static_ip_error": "Para usar o servidor DHCP, deve definir um endereço IP estático. AdGuard Home não conseguiu determinar se essa interface de rede está configurada usando o endereço de IP estático. Por favor, defina um endereço IP estático manualmente.",
|
||||
"dhcp_dynamic_ip_found": "O seu sistema usa a configuração de endereço IP dinâmico para a interface <0>{{interfaceName}}</0>. Para usar o servidor DHCP, deve definir um endereço de IP estático. O seu endereço IP actual é <0> {{ipAddress}} </ 0>. AdGuard Home irá definir automaticamente este endereço IP como estático se pressionar o botão \"Ativar servidor DHCP\".",
|
||||
"dhcp_lease_added": "Concessão estática \"{{key}}\" adicionada com sucesso",
|
||||
"dhcp_lease_deleted": "Concessão estática \"{{key}}\" excluída com sucesso",
|
||||
"dhcp_new_static_lease": "Nova concessão estática",
|
||||
@@ -86,10 +92,10 @@
|
||||
"homepage": "Página inicial",
|
||||
"report_an_issue": "Comunicar um problema",
|
||||
"privacy_policy": "Política de Privacidade",
|
||||
"enable_protection": "Activar protecção",
|
||||
"enabled_protection": "Activar protecção",
|
||||
"disable_protection": "Desactivar protecção",
|
||||
"disabled_protection": "Desactivar protecção",
|
||||
"enable_protection": "Ativar protecção",
|
||||
"enabled_protection": "Ativar protecção",
|
||||
"disable_protection": "Desativar protecção",
|
||||
"disabled_protection": "Desativar protecção",
|
||||
"refresh_statics": "Repor estatísticas",
|
||||
"dns_query": "Consultas de DNS",
|
||||
"blocked_by": "<0>Bloqueado por filtros</0>",
|
||||
@@ -110,12 +116,12 @@
|
||||
"number_of_dns_query_24_hours": "O número de consultas DNS processadas nas últimas 24 horas",
|
||||
"number_of_dns_query_blocked_24_hours": "Várias solicitações DNS bloqueadas por filtros de bloqueio de anúncios e listas de bloqueio de hosts",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Várias solicitações de DNS bloqueadas pelo módulo de segurança da navegação do AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Vários sites adultos bloqueados",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "O número de sítios adultos bloqueados",
|
||||
"enforced_save_search": "Forçar pesquisa segura",
|
||||
"number_of_dns_query_to_safe_search": "Várias solicitações de DNS para motores de busca para os quais a pesquisa segura foi aplicada",
|
||||
"number_of_dns_query_to_safe_search": "O número de solicitações de DNS para motores de busca para os quais a pesquisa segura foi aplicada",
|
||||
"average_processing_time": "Tempo médio de processamento",
|
||||
"average_processing_time_hint": "Tempo médio em milissegundos no processamento de uma solicitação DNS",
|
||||
"block_domain_use_filters_and_hosts": "Bloquear domínios usando arquivos de filtros e hosts",
|
||||
"block_domain_use_filters_and_hosts": "Bloquear domínios usando ficheiros de filtros e hosts",
|
||||
"filters_block_toggle_hint": "Pode configurar as regras de bloqueio nas configurações de <a>Filtros</a>.",
|
||||
"use_adguard_browsing_sec": "Usar o serviço de segurança da navegação do AdGuard",
|
||||
"use_adguard_browsing_sec_hint": "O AdGuard Home irá verificar se o domínio está na lista negra do serviço de segurança da navegação. Usará a API de pesquisa de privacidade para executar a verificação: apenas um prefixo curto do hash do nome de domínio SHA256 é enviado para o servidor.",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "Definições de criptografia",
|
||||
"dhcp_settings": "Definições de DHCP",
|
||||
"upstream_dns": "Servidores DNS primário",
|
||||
"upstream_dns_help": "Insira os endereços dos servidores, um por linha. <a>Saber mais</a> sobre a definição de servidores DNS primários.",
|
||||
"upstream_dns_help": "Insira um endereço de servidor, um por linha. <a>Saber mais</a> sobre a definição de servidores DNS primários.",
|
||||
"upstream_dns_configured_in_file": "Configurado em {{path}}",
|
||||
"test_upstream_btn": "Testar DNS primário",
|
||||
"upstreams": "DNS primário",
|
||||
@@ -157,7 +163,7 @@
|
||||
"edit_table_action": "Editar",
|
||||
"delete_table_action": "Apagar",
|
||||
"elapsed": "Tempo decorrido",
|
||||
"filters_and_hosts_hint": "O AdGuard Home entende regras básicas de bloqueio de anúncios e a sintaxe de arquivos de hosts.",
|
||||
"filters_and_hosts_hint": "O AdGuard Home entende regras básicas de bloqueio de anúncios e a sintaxe de ficheiros de hosts.",
|
||||
"no_blocklist_added": "Nenhuma lista de bloqueio foi adicionada",
|
||||
"no_whitelist_added": "Nenhuma lista de permissões foi adicionada",
|
||||
"add_blocklist": "Adicionar lista de bloqueio",
|
||||
@@ -177,7 +183,7 @@
|
||||
"form_error_url_format": "Formato da URL inválida",
|
||||
"form_error_url_or_path_format": "URL ou local da lista inválida",
|
||||
"custom_filter_rules": "Regras de filtragem personalizadas",
|
||||
"custom_filter_rules_hint": "Insira uma regra por linha. Pode usar regras de bloqueio de anúncios ou a sintaxe de arquivos de hosts.",
|
||||
"custom_filter_rules_hint": "Insira uma regra por linha. Pode usar regras de bloqueio de anúncios ou a sintaxe de ficheiros de hosts.",
|
||||
"examples_title": "Exemplos",
|
||||
"example_meaning_filter_block": "bloqueia o acesso ao domínio exemplo.org e a todos os seus subdomínios",
|
||||
"example_meaning_filter_whitelist": "desbloqueia o acesso ao domínio exemplo.org e a todos os seus subdomínios",
|
||||
@@ -190,7 +196,7 @@
|
||||
"example_upstream_dot": "<0>DNS-sobre-TLS</0> criptografado",
|
||||
"example_upstream_doh": "<0>DNS-sobre-HTTPS</0> criptografado",
|
||||
"example_upstream_doq": "<0>DNS-sobre-QUIC</0> criptografado",
|
||||
"example_upstream_sdns": "pode usar <0>DNS Stamps</0>para o <1>DNSCrypt</1>ou usar os resolvedores <2>DNS-sobre-HTTPS</2>",
|
||||
"example_upstream_sdns": "pode usar <0>DNS Stamps</0> para o <1>DNSCrypt</1> ou usar os resolvedores <2>DNS-sobre-HTTPS</2>",
|
||||
"example_upstream_tcp": "dNS regular (através do TCP)",
|
||||
"all_lists_up_to_date_toast": "Todas as listas já estão atualizadas",
|
||||
"updated_upstream_dns_toast": "A actualizar os servidores DNS upstream",
|
||||
@@ -230,18 +236,18 @@
|
||||
"query_log_updated": "O registro da consulta foi actualizado com sucesso",
|
||||
"query_log_clear": "Limpar registos de consulta",
|
||||
"query_log_retention": "Retenção de registos de consulta",
|
||||
"query_log_enable": "Activar registo",
|
||||
"query_log_enable": "Ativar registo",
|
||||
"query_log_configuration": "Definições do registo",
|
||||
"query_log_disabled": "O registo de consulta está desactivado e pode ser configurado em <0>definições</0>",
|
||||
"query_log_strict_search": "Usar aspas duplas para uma pesquisa rigorosa",
|
||||
"query_log_retention_confirm": "Tem a certeza de que deseja alterar a retenção do registo de consulta? Se diminuir o valor do intervalo, alguns dados serão perdidos",
|
||||
"anonymize_client_ip": "Tornar anônimo o IP do cliente",
|
||||
"anonymize_client_ip": "Tornar anónimo o IP do cliente",
|
||||
"anonymize_client_ip_desc": "Não salva o endereço de IP completo do cliente em registros e estatísticas",
|
||||
"dns_config": "Definição do servidor DNS",
|
||||
"dns_cache_config": "Definição de cache DNS",
|
||||
"dns_cache_config_desc": "Aqui você pode configurar o cache do DNS",
|
||||
"blocking_mode": "Modo de bloqueio",
|
||||
"default": "Padrão",
|
||||
"default": "Predefinido",
|
||||
"nxdomain": "NXDOMAIN",
|
||||
"refused": "REFUSED",
|
||||
"null_ip": "IP nulo",
|
||||
@@ -257,16 +263,16 @@
|
||||
"client_id_desc": "Diferentes clientes podem ser identificados por um ID de cliente especial. <a>Aqui</a> você pode aprender mais sobre como identificar clientes.",
|
||||
"download_mobileconfig_doh": "Transferir .mobileconfig para DNS-sobre-HTTPS",
|
||||
"download_mobileconfig_dot": "Transferir .mobileconfig para DNS-sobre-TLS",
|
||||
"download_mobileconfig": "Transferir arquivo de configuração",
|
||||
"download_mobileconfig": "Transferir ficheiro de configuração",
|
||||
"plain_dns": "DNS simples",
|
||||
"form_enter_rate_limit": "Insira o limite de taxa",
|
||||
"rate_limit": "Limite de taxa",
|
||||
"edns_enable": "Activar sub-rede do cliente EDNS",
|
||||
"edns_enable": "Ativar sub-rede do cliente EDNS",
|
||||
"edns_cs_desc": "Se activado, o AdGuard Home enviará sub-redes dos clientes para os servidores DNS.",
|
||||
"rate_limit_desc": "O número de solicitações por segundo que um único cliente pode fazer (0: ilimitado)",
|
||||
"rate_limit_desc": "O número de solicitações por segundo permitido por cliente. Configurando para 0 significa sem limite.",
|
||||
"blocking_ipv4_desc": "Endereço IP a ser devolvido para uma solicitação A bloqueada",
|
||||
"blocking_ipv6_desc": "Endereço IP a ser devolvido para uma solicitação AAAA bloqueada",
|
||||
"blocking_mode_default": "Padrão: Responder com zero endereço IP (0.0.0.0 para A; :: para AAAA) quando bloqueado pela regra de estilo Adblock; responde com o endereço IP especificado na regra quando bloqueado pela regra /etc/hosts-style",
|
||||
"blocking_mode_default": "Predefinido: Responder com zero endereço IP (0.0.0.0 para A; :: para AAAA) quando bloqueado pela regra de estilo Adblock; responde com o endereço IP especificado na regra quando bloqueado pela regra /etc/hosts-style",
|
||||
"blocking_mode_refused": "REFUSED: responder com o código REFUSED",
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Responder com o código NXDOMAIN",
|
||||
"blocking_mode_null_ip": "IP nulo: Responder com endereço IP zero (0.0.0.0 para A; :: para AAAA)",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Interface de escuta",
|
||||
"install_settings_port": "Porta",
|
||||
"install_settings_interface_link": "A interface web de administrador do AdGuard estará disponível nos seguintes endereços:",
|
||||
"form_error_port": "Insira uma porta válida",
|
||||
"form_error_port": "Insira um número de porta válida",
|
||||
"install_settings_dns": "Servidor DNS",
|
||||
"install_settings_dns_desc": "Precisa de configurar o seu dispositivo ou router para usar o servidor DNS nos seguintes endereços:",
|
||||
"install_settings_all_interfaces": "Todas as interfaces",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Esta definição cobrirá automaticamente todos os dispositivos ligados ao seu router doméstico e não irá precisar de configurar cada um deles manualmente.",
|
||||
"install_devices_address": "O servidor de DNS do AdGuard Home está a capturar os seguintes endereços",
|
||||
"install_devices_router_list_1": "Abra as configurações do seu router. No navegador insira o IP do router, o padrão é (http://192.168.0.1/ ou http://192.168.1.1/), e o login e a palavra-passe é admin/admin; Se não se lembra da palavra-passe, pode repor a palavra-passe rapidamente pressionando um botão no próprio router. Alguns routers têm um aplicação específica que já deve estar instalada no seu computador/telefone.",
|
||||
"install_devices_router_list_1": "Abra as preferências do seu roteador. Normalmente, tu podes acessá-lo de teu navegador por meio de um URL, como http://192.168.0.1/ ou http://192.168.1.1/. Tu podes ser solicitado a inserir uma palavra-passe. Se tu não se lembrar, muitas vezes tu podes repor a palavra-passe pressionando um botão no próprio roteador, mas esteja ciente de que se esse procedimento for escolhido, tu provavelmente perderás toda a definição do roteador. Se o teu roteador requer uma aplicação para configurá-lo, instale a aplicação no seu telefone ou PC e use-o para acessar as definições do roteador.",
|
||||
"install_devices_router_list_2": "Encontre as configurações de DNS. Procure as letras DNS ao lado de um campo que permite dois ou três conjuntos de números, cada um dividido em quatro grupos de um a três números.",
|
||||
"install_devices_router_list_3": "Insira aqui seu servidor do AdGuard Home.",
|
||||
"install_devices_router_list_4": "Você não pode definir um servidor DNS personalizado em alguns tipos de roteadores. Nesse caso, pode ajudar se você configurar o AdGuard Home como um <0>servidor DHCP</0>. Caso contrário, você deve procurar o manual sobre como personalizar os servidores DNS para o seu modelo de roteador específico.",
|
||||
"install_devices_router_list_4": "Em alguns tipos de roteador, um servidor DNS personalizado não pode ser configurado. Nesse caso, configurar o AdGuard Home como um <0>Servidor DHCP</0> pode ajudar. Caso contrário, tu deve verificar o manual do router sobre como personalizar os servidores DNS em seu modelo de router específico.",
|
||||
"install_devices_windows_list_1": "Abra o Painel de Controlo através do Menu Iniciar ou pela Pesquisa do Windows.",
|
||||
"install_devices_windows_list_2": "Entre na categoria Rede e Internet e depois clique em Central de Rede e Partilha.",
|
||||
"install_devices_windows_list_3": "No lado esquerdo da janela clique em Alterar as definições do adaptador.",
|
||||
@@ -353,7 +359,7 @@
|
||||
"encryption_expire": "Expira",
|
||||
"encryption_key": "Chave privada",
|
||||
"encryption_key_input": "Copie/cole aqui a chave privada codificada em PEM para o seu certificado.",
|
||||
"encryption_enable": "Activar criptografia (HTTPS, DNS-sobre-HTTPS e DNS-sobre-TLS)",
|
||||
"encryption_enable": "Ativar criptografia (HTTPS, DNS-sobre-HTTPS e DNS-sobre-TLS)",
|
||||
"encryption_enable_desc": "Se a criptografia estiver activada, a interface administrativa do AdGuard Home funcionará em HTTPS, o servidor DNS irá capturar as solicitações por meio do DNS-sobre-HTTPS e DNS-sobre-TLS.",
|
||||
"encryption_chain_valid": "Cadeia de certificado válida",
|
||||
"encryption_chain_invalid": "A cadeia de certificado é inválida",
|
||||
@@ -365,7 +371,7 @@
|
||||
"encryption_reset": "Tem a certeza de que deseja repor a definição de criptografia?",
|
||||
"topline_expiring_certificate": "O seu certificado SSL está prestes a expirar. Actualize as suas <0>definições de criptografia</0>.",
|
||||
"topline_expired_certificate": "O seu certificado SSL está expirado. Actualize as suas <0>definições de criptografia</0>.",
|
||||
"form_error_port_range": "Digite um porta entre 80 e 65535",
|
||||
"form_error_port_range": "Digite um numero de porta entre 80 e 65535",
|
||||
"form_error_port_unsafe": "Esta porta não é segura",
|
||||
"form_error_equal": "Não deve ser igual",
|
||||
"form_error_password": "As palavras-passe não coincidem",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "Endereço de IP",
|
||||
"client_identifier_desc": "Os clientes podem ser identificados pelo endereço IP, CIDR, Endereço MAC ou um ID de cliente especial (pode ser usado para DoT/DoH/DoQ). <0>Aqui</0> você pode aprender mais sobre como identificar clientes.",
|
||||
"form_enter_ip": "Insira IP",
|
||||
"form_enter_subnet_ip": "Digite um endereço IP na sub-rede \"{{cidr}}\"",
|
||||
"form_enter_mac": "Insira o endereço MAC",
|
||||
"form_enter_id": "Inserir identificador",
|
||||
"form_add_id": "Adicionar identificador",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Clientes não permitidos",
|
||||
"access_disallowed_desc": "Uma lista de endereços IP ou CIDR. Ao configurar, o AdGuard Home irá descartar as solicitações desses endereços de IP.",
|
||||
"access_blocked_title": "Domínios bloqueados",
|
||||
"access_blocked_desc": "Não confunda isso com os filtros. O AdGuard Home irá descartar as consultas DNS com esses domínios.",
|
||||
"access_blocked_desc": "Não confunda isso com filtros. O AdGuard Home irá descartar as consultas DNS com esses domínios nas questões das consultas. Aqui tu podes especificar os nomes de domínio exatos, caracteres curinga e regras de filtro de URL, por exemplo. \"example.org\", \"*.example.org\" ou \"||example.org^\".",
|
||||
"access_settings_saved": "Definições de acesso foram guardadas com sucesso",
|
||||
"updates_checked": "Actualizações verificadas com sucesso",
|
||||
"updates_version_equal": "O AdGuard Home está actualizado",
|
||||
@@ -446,7 +453,7 @@
|
||||
"rewrite_confirm_delete": "Tem a certeza de que deseja excluir a reescrita de DNS para \"{{key}}\"?",
|
||||
"rewrite_desc": "Permite configurar uma resposta personalizada do DNS para um nome de domínio específico.",
|
||||
"rewrite_applied": "Regra de reescrita aplicada",
|
||||
"rewrite_hosts_applied": "Reescrito pela regra do arquivo de hosts",
|
||||
"rewrite_hosts_applied": "Reescrito pela regra do ficheiro de hosts",
|
||||
"dns_rewrites": "Reescritas de DNS",
|
||||
"form_domain": "Inserir domínio",
|
||||
"form_answer": "Insira o endereço de IP ou nome de domínio",
|
||||
@@ -464,9 +471,9 @@
|
||||
"unblock_all": "Desbloquear todos",
|
||||
"encryption_certificate_path": "Caminho do certificado",
|
||||
"encryption_private_key_path": "Caminho da chave privada",
|
||||
"encryption_certificates_source_path": "Definir um caminho do arquivo de certificados",
|
||||
"encryption_certificates_source_path": "Definir um caminho do ficheiro de certificados",
|
||||
"encryption_certificates_source_content": "Colar o conteúdo dos certificados",
|
||||
"encryption_key_source_path": "Definir um arquivo de chave privada",
|
||||
"encryption_key_source_path": "Definir um ficheiro de chave privada",
|
||||
"encryption_key_source_content": "Colar o conteúdo da chave privada",
|
||||
"stats_params": "Definição de estatísticas",
|
||||
"config_successfully_saved": "Definição guardada com sucesso",
|
||||
@@ -488,7 +495,7 @@
|
||||
"interval_hours": "{{count}} hora",
|
||||
"interval_hours_plural": "{{count}} horas",
|
||||
"filters_configuration": "Definição dos filtros",
|
||||
"filters_enable": "Activar filtros",
|
||||
"filters_enable": "Ativar filtros",
|
||||
"filters_interval": "Intervalo de actualização de filtros",
|
||||
"disabled": "Desactivado",
|
||||
"username_label": "Nome do utilizador",
|
||||
@@ -502,7 +509,7 @@
|
||||
"location": "Localização",
|
||||
"orgname": "Nome da organização",
|
||||
"netname": "Nome da rede",
|
||||
"network": "Network",
|
||||
"network": "Rede",
|
||||
"descr": "Descrição",
|
||||
"whois": "Whois",
|
||||
"filtering_rules_learn_more": "<0>Saiba mais</0>sobre como criar as suas próprias listas negras de servidores.",
|
||||
@@ -516,15 +523,15 @@
|
||||
"rewrite_domain_name": "Nome de domínio: adicione um registro CNAME",
|
||||
"rewrite_A": "<0>A</0>: valor especial, mantenha <0>A</0> nos registros do upstream",
|
||||
"rewrite_AAAA": "<0>AAAA</0>: valor especial, mantenha <0>AAAA</0> nos registros do servidor DNS primário",
|
||||
"disable_ipv6": "Desactivar IPv6",
|
||||
"disable_ipv6": "Desativar IPv6",
|
||||
"disable_ipv6_desc": "Se este recurso estiver ativado, todas as consultas de DNS para endereços IPv6 (tipo AAAA) serão ignoradas.",
|
||||
"fastest_addr": "Endereço de IP mais rápido",
|
||||
"fastest_addr_desc": "Consulta todos os servidores DNS e retorna o endereço IP mais rápido entre todas as respostas. Isso irá retardar as consultas ao DNS, pois temos que esperar por respostas de todos os servidores DNS, porém melhorando a conectividade em geral.",
|
||||
"fastest_addr_desc": "Consulta todos os servidores DNS e retorna o endereço IP mais rápido entre todas as respostas. Isso torna as consultas DNS mais lentas, pois o AdGuard Home tem que esperar pelas respostas de todos os servidores DNS, mas melhora a conectividade geral.",
|
||||
"autofix_warning_text": "Se clicar em \"Corrigir\", o AdGuardHome irá configurar o seu sistema para utilizar o servidor DNS do AdGuardHome.",
|
||||
"autofix_warning_list": "Ele irá realizar estas tarefas: <0>Desactivar sistema DNSStubListener</0> <0>Definir endereço do servidor DNS para 127.0.0.1</0> <0>Substituir o alvo simbólico do link /etc/resolv.conf para /run/systemd/resolv.conf</0> <0>Parar DNSStubListener (recarregar serviço resolvido pelo sistema)</0>",
|
||||
"autofix_warning_result": "Como resultado, todos as solicitações DNS do seu sistema serão processadas pelo AdGuard Home por padrão.",
|
||||
"autofix_warning_list": "Irá realizar estas tarefas: <0>Desativar sistema DNSStubListener</0> <0>Definir endereço do servidor DNS para 127.0.0.1</0> <0>Substituir o alvo simbólico do link /etc/resolv.conf para /run/systemd/resolv.conf</0> <0>Parar DNSStubListener (recarregar serviço resolvido pelo sistema)</0>",
|
||||
"autofix_warning_result": "Como resultado, todos as solicitações DNS do seu sistema serão processadas pelo AdGuard Home por predefinição.",
|
||||
"tags_title": "Etiquetas",
|
||||
"tags_desc": "Você pode selecionar as etiquetas que correspondem ao cliente. As tags podem ser incluídas nas regras de filtragem e permitir que você as aplique com mais precisão. <0>Saiba mais</0>",
|
||||
"tags_desc": "Tu podes seleccionar as etiquetas que correspondem ao cliente. As etiquetas podem ser incluídas nas regras de filtragem e permitir que tu as aplique com mais precisão. <0>Saiba mais</0>",
|
||||
"form_select_tags": "Seleccione as tags do cliente",
|
||||
"check_title": "Verifique a filtragem",
|
||||
"check_desc": "Verificar se o nome do host está sendo filtrado",
|
||||
@@ -549,11 +556,11 @@
|
||||
"set_static_ip": "Definir um endereço de IP estático",
|
||||
"install_static_ok": "Boas notícias! O endereço de IP estático já está configurado",
|
||||
"install_static_error": "O AdGuard Home não pode configurar automaticamente para esta interface de rede. Por favor, procure uma instrução sobre como fazer isso manualmente.",
|
||||
"install_static_configure": "Detectamos que um endereço de IP dinâmico é sendo usado — <0>{{ip}}</0>. Deseja utilizar como seu endereço estático?",
|
||||
"install_static_configure": "O AdGuard Home detectou que o endereço IP dinâmico <0>{{ip}}</0> está sendo usado. Tu desejas que seja definido como teu endereço estático?",
|
||||
"confirm_static_ip": "O AdGuard Home irá configurar {{ip}} para ser seu endereço IP estático. Deseja continuar?",
|
||||
"list_updated": "{{count}} lista actualizada",
|
||||
"list_updated_plural": "{{count}} listas actualizadas",
|
||||
"dnssec_enable": "Activar DNSSEC",
|
||||
"dnssec_enable": "Ativar DNSSEC",
|
||||
"dnssec_enable_desc": "Definir a flag DNSSEC nas consultas de DNS em andamento e verificar o resultado (é necessário um resolvedor DNSSEC ativado)",
|
||||
"validated_with_dnssec": "Validado com DNSSEC",
|
||||
"all_queries": "Todas as consultas",
|
||||
@@ -587,11 +594,11 @@
|
||||
"filter_category_security_desc": "Listas especializadas em bloquear domínios de malware, phishing ou fraude",
|
||||
"filter_category_regional_desc": "Listas focadas em anúncios regionais e servidores de monitorização",
|
||||
"filter_category_other_desc": "Outras listas de bloqueio",
|
||||
"setup_config_to_enable_dhcp_server": "Defina a definição para habilitar o servidor DHCP",
|
||||
"setup_config_to_enable_dhcp_server": "Defina a configuração para ativar o servidor DHCP",
|
||||
"original_response": "Resposta original",
|
||||
"click_to_view_queries": "Clique para ver as consultas",
|
||||
"port_53_faq_link": "A porta 53 é frequentemente ocupada por serviços \"DNSStubListener\" ou \"systemd-resolved\". Por favor leia <0>essa instrução</0> para resolver isso.",
|
||||
"adg_will_drop_dns_queries": "O AdGuard Home descartará todas as consultas DNS deste cliente.",
|
||||
"client_not_in_allowed_clients": "O cliente não é permitido porque não está na lista \"Clientes permitidos\".",
|
||||
"experimental": "Experimental"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
{
|
||||
"client_settings": "Setări client",
|
||||
"example_upstream_reserved": "Puteți preciza un DNS în amonte <0>de domeniu(ii) specific(e)</0>",
|
||||
"example_upstream_comment": "Puteți specifica comentariul",
|
||||
"upstream_parallel": "Folosiți interogări paralele pentru rezolvări rapide interogând simultan toate serverele în amonte",
|
||||
"parallel_requests": "Solicitări paralele",
|
||||
"load_balancing": "Echilibrare-sarcini",
|
||||
"load_balancing_desc": "Fiecare server este interogat aparte. AdGuard Home alege serverul folosind algoritmul ponderat aleatoriu, astfel încât cel mai rapid server să fie utilizat mai des.",
|
||||
"bootstrap_dns": "Serverele DNS Bootstrap",
|
||||
"bootstrap_dns_desc": "Serverele DNS Bootstrap sunt folosite pentru a rezolva adresele IP ale resolverelor DoH/DoT indicate ca upstreams.",
|
||||
"check_dhcp_servers": "Căutați servere DHCP",
|
||||
"save_config": "Salvare configurare",
|
||||
"enabled_dhcp": "Server DHCP activat",
|
||||
"disabled_dhcp": "Server DHCP dezactivat",
|
||||
"unavailable_dhcp": "DHCP este indisponibil",
|
||||
@@ -18,12 +13,10 @@
|
||||
"dhcp_description": "Dacă routerul dvs. nu furnizează setări DHCP, puteți utiliza serverul DHCP încorporat AdGuard.",
|
||||
"dhcp_enable": "Activați serverul DHCP",
|
||||
"dhcp_disable": "Dezactivați serverul DHCP",
|
||||
"dhcp_not_found": "Este sigur să activați serverul DHCP încorporat - nu am găsit servere DHCP active în rețea. Cu toate acestea, vă recomandăm să-l verificați manual, deoarece testul nostru automat nu oferă în prezent 100% garanție.",
|
||||
"dhcp_found": "În rețea se găsește un server DHCP activ. Nu este sigur să activați serverul DHCP încorporat.",
|
||||
"dhcp_leases": "DHCP închiriate",
|
||||
"dhcp_static_leases": "DHCP statice închiriate",
|
||||
"dhcp_leases_not_found": "Nu s-au găsit DHCP închiriate",
|
||||
"dhcp_config_saved": "Configurare DHCP salvată cu succes",
|
||||
"dhcp_ipv4_settings": "Setări DHCP IPv4",
|
||||
"dhcp_ipv6_settings": "Setări DHCP IPv6",
|
||||
"form_error_required": "Câmp necesar",
|
||||
@@ -49,16 +42,11 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Hostname",
|
||||
"dhcp_table_expires": "Expiră",
|
||||
"dhcp_warning": "Dacă doriți oricum să activați serverul DHCP, verificați că nu există un alt server DHCP activ în rețeaua dvs. Altfel, poate întrerupe Internetul pe toate aparatele conectate!",
|
||||
"dhcp_error": "Nu am putut determina dacă există un alt server DHCP în rețea.",
|
||||
"dhcp_static_ip_error": "Pentru a utiliza serverul DHCP trebuie setată o adresă IP statică. Nu am reușit să stabilim dacă această interfață de rețea este configurată folosind adresa IP statică. Vă rugăm să setați manual o adresă IP statică.",
|
||||
"dhcp_dynamic_ip_found": "Sistemul dvs. folosește configurația dinamică a adreselor IP pentru interfața <0>{{interfaceName}}</0>. Pentru a utiliza serverul DHCP trebuie setată o adresă IP statică. Adresa IP curentă este <0>{{ipAddress}}</0>. Vom seta automat această adresă IP ca statică dacă apăsați butonul Activați DHCP.",
|
||||
"dhcp_lease_added": "\"{{key}}\" statică închiriată adăugată cu succes",
|
||||
"dhcp_lease_deleted": "\"{{key}}\" statică închiriată eliminată cu succes",
|
||||
"dhcp_new_static_lease": "Închiriere statică nouă",
|
||||
"dhcp_static_leases_not_found": "Nu s-au găsit închirieri statice DHCP",
|
||||
"dhcp_add_static_lease": "Adăugați închiriere statică",
|
||||
"dhcp_reset": "Sunteți sigur că doriți să resetați configurația DHCP?",
|
||||
"country": "Țara",
|
||||
"city": "Oraș",
|
||||
"delete_confirm": "Sunteți sigur că doriți să ștergeți \"{{key}}\"?",
|
||||
@@ -105,14 +93,7 @@
|
||||
"top_clients": "Clienți de top",
|
||||
"no_clients_found": "Nu au fost găsiți clienți",
|
||||
"general_statistics": "Statistici generale",
|
||||
"number_of_dns_query_days": "Un număr de interogări DNS procesate în ultima {{count}} zi",
|
||||
"number_of_dns_query_days_plural": "Un număr de interogări DNS procesate în ultimele {{count}} zile",
|
||||
"number_of_dns_query_24_hours": "Un număr de interogări DNS procesate în ultimele 24 de ore",
|
||||
"number_of_dns_query_blocked_24_hours": "Un număr de solicitări DNS blocate de filtrele de blocare și lista de blocaje din hosts",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Un număr de solicitări DNS blocate de modulul de securitate de navigare AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Un număr de site-uri web pentru adulți blocate",
|
||||
"enforced_save_search": "Căutare protejată întărită",
|
||||
"number_of_dns_query_to_safe_search": "O serie de solicitări DNS făcute pe motoare de căutare cu Căutarea protejată activată",
|
||||
"average_processing_time": "Timpul mediu de procesare",
|
||||
"average_processing_time_hint": "Timp mediu în milisecunde la procesarea unei cereri DNS",
|
||||
"block_domain_use_filters_and_hosts": "Blocați domenii folosind filtre și fișiere hosts",
|
||||
@@ -122,7 +103,7 @@
|
||||
"use_adguard_parental": "Utilizați Controlul Parental AdGuard",
|
||||
"use_adguard_parental_hint": "AdGuard Home va verifica pentru conținut adult pe domeniu. Utilizează același API discret ca cel utilizat de serviciul de securitate de navigare.",
|
||||
"enforce_safe_search": "Căutare protejată întărită",
|
||||
"enforce_save_search_hint": "AdGuard Home poate impune căutarea protejată în următoarele motoare de căutare: Google, Youtube, Bing, DuckDuckGo, Yandex, Pixabay.",
|
||||
"enforce_save_search_hint": "AdGuard Home poate impune căutarea protejată în următoarele motoare de căutare: Google, YouTube, Bing, DuckDuckGo, Yandex, Pixabay.",
|
||||
"no_servers_specified": "Nu sunt specificate servere",
|
||||
"general_settings": "Setări Generale",
|
||||
"dns_settings": "Setări DNS",
|
||||
@@ -134,7 +115,6 @@
|
||||
"encryption_settings": "Setări de criptare",
|
||||
"dhcp_settings": "Setări DHCP",
|
||||
"upstream_dns": "Servere DNS în amonte",
|
||||
"upstream_dns_help": "Introduceți adresele serverelor una pe linie. <a>Aflați mai multe</a> despre configurarea serverelor DNS în amonte.",
|
||||
"upstream_dns_configured_in_file": "Configurat în {{path}}",
|
||||
"test_upstream_btn": "Testați upstreams",
|
||||
"upstreams": "Upstreams",
|
||||
@@ -263,7 +243,6 @@
|
||||
"rate_limit": "Limita ratei",
|
||||
"edns_enable": "Activați clientul subnet EDNS",
|
||||
"edns_cs_desc": "Dacă este activat, AdGuard Home va trimite subnet-ul clienților către serverele DNS.",
|
||||
"rate_limit_desc": "Numărul de solicitări pe secundă pe care un singur client este permis să le facă (setând-o la 0 înseamnă nelimitat)",
|
||||
"blocking_ipv4_desc": "Adresa IP de returnat pentru o cerere A de blocare",
|
||||
"blocking_ipv6_desc": "Adresa IP de returnat pentru o cerere AAAA de blocare",
|
||||
"blocking_mode_default": "Implicit: Răspunde cu adresa IP (0.0.0.0 for A; :: pentru AAAA) când sunt blocate de regulă tip Adblock; răspunde cu adresa IP specificată în regulă când sunt blocate de regula tip /etc/hosts",
|
||||
@@ -286,7 +265,6 @@
|
||||
"install_settings_listen": "Interfață de ascultare",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Interfața dvs. de administrare AdGuard Home va fi disponibilă pe următoarele adrese:",
|
||||
"form_error_port": "Introduceți un port valid",
|
||||
"install_settings_dns": "Server DNS",
|
||||
"install_settings_dns_desc": "Va trebui să configurați aparatele sau routerul pentru a utiliza serverul DNS pe următoarele adrese:",
|
||||
"install_settings_all_interfaces": "Toate interfețele",
|
||||
@@ -305,10 +283,8 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Această configurație va acoperi automat toate aparatele conectate la routerul de acasă și nu va trebui să le configurați manual pe fiecare.",
|
||||
"install_devices_address": "Serverul DNS AdGuard Home ascultă pe următoarele adrese",
|
||||
"install_devices_router_list_1": "Deschideți preferințele pentru routerul dvs. De obicei, îl puteți accesa din browserul dvs. printr-o adresă URL (cum ar fi http://192.168.0.1/ sau http://192.168.1.1/). Vi se poate cere să introduceți parola. Dacă nu v-o amintiți, puteți reseta adesea parola apăsând un buton de pe routerul propriu-zis. Unele routere necesită o aplicație specifică, care în acest caz ar trebui să fie deja instalată pe computerul/telefonul dvs.",
|
||||
"install_devices_router_list_2": "Găsiți setările DHCP/DNS. Căutați literele DNS lângă un câmp care să permită două sau trei seturi de numere, fiecare împărțit în patru grupuri de una până la trei cifre.",
|
||||
"install_devices_router_list_3": "Introduceți adresele serverului dvs. AdGuard Home aici.",
|
||||
"install_devices_router_list_4": "Unele routere nu permit setarea unui server DNS personalizat. În acest caz, vă poate ajuta dacă ați configura AdGuard Home ca <0>server DHCP</0>. Dacă nu, trebuie căutat manualul modelului dvs. de router ca să aflați cum se pot personaliza serverele DNS.",
|
||||
"install_devices_windows_list_1": "Deschideți panoul de control prin meniul Start sau căutare Windows.",
|
||||
"install_devices_windows_list_2": "Accesați categoria \"Rețea și Internet\", apoi la \"Centrul de Rețea și Partajare\".",
|
||||
"install_devices_windows_list_3": "În partea stângă a ecranului găsiți \"Schimbare setări adaptor\" și clicați pe el.",
|
||||
@@ -334,7 +310,6 @@
|
||||
"install_saved": "Salvat cu succes",
|
||||
"encryption_title": "Criptare",
|
||||
"encryption_desc": "Suport de Criptare (HTTPS/TLS) pentru DNS și interfața web administrator",
|
||||
"encryption_config_saved": "Configurația de criptare salvată",
|
||||
"encryption_server": "Nume de server",
|
||||
"encryption_server_enter": "Introduceți numele domeniului",
|
||||
"encryption_server_desc": "Pentru a utiliza HTTPS, trebuie să introduceți numele serverului care se potrivește cu certificatul SSL sau certificatul wildcard al dvs. În cazul în care câmpul nu este setat, va accepta conexiuni TLS pentru orice domeniu.",
|
||||
@@ -365,13 +340,10 @@
|
||||
"encryption_reset": "Sunteți sigur că doriți să resetați setările de criptare?",
|
||||
"topline_expiring_certificate": "Certificatul dvs. SSL este pe cale să expire. Actualizați <0>Setările de criptare</0>.",
|
||||
"topline_expired_certificate": "Certificatul dvs. SSL a expirat. Actualizați <0>Setările de criptare</0>.",
|
||||
"form_error_port_range": "Introduceți valoarea portului între 80-65535",
|
||||
"form_error_port_unsafe": "Acesta este un port nesigur",
|
||||
"form_error_equal": "Nu trebuie să fie egale",
|
||||
"form_error_password": "Parolele nu corespund",
|
||||
"reset_settings": "Resetare setări",
|
||||
"update_announcement": "AdGuard Home {{version}} este disponibil! <0>Clicați aici</0> pentru mai multe informații.",
|
||||
"setup_guide": "Ghid de instalare",
|
||||
"dns_addresses": "Adrese DNS",
|
||||
"dns_start": "Serverul DNS demarează",
|
||||
"dns_status_error": "Eroare la verificare statut server DNS",
|
||||
@@ -416,7 +388,6 @@
|
||||
"access_disallowed_title": "Clienți neautorizați",
|
||||
"access_disallowed_desc": "O listă de adrese CIDR sau IP. Dacă este configurat, AdGuard Home va elimina cererile de la aceste adrese IP.",
|
||||
"access_blocked_title": "Domenii blocate",
|
||||
"access_blocked_desc": "Nu confundați acest lucru cu filtrele. AdGuard Home va bloca interogări DNS cu aceste domenii în întrebare. Aici puteți specifica exact numele de domeniu, wildcard și reguli-urlfilter, de ex. 'exemplu.org', '*.exemplu.org' sau '||exemplu.org^'.",
|
||||
"access_settings_saved": "Setările de acces au fost salvate cu succes",
|
||||
"updates_checked": "Actualizările au fost verificate cu succes",
|
||||
"updates_version_equal": "AdGuard Home este la zi",
|
||||
@@ -519,7 +490,6 @@
|
||||
"disable_ipv6": "Dezactivați IPv6",
|
||||
"disable_ipv6_desc": "Dacă această opțiune este activată, toate interogările DNS pentru adrese IPv6 (tip AAAA) vor fi anulate.",
|
||||
"fastest_addr": "Cea mai rapidă adresă IP",
|
||||
"fastest_addr_desc": "Interogările la toate serverele DNS întorc adresa IP cea mai rapidă din răspunsuri. Așteptarea răspunsului tuturor serverelor DNS face interogările DNS mai lente dar se ameliorează conectivitatea generală.",
|
||||
"autofix_warning_text": "Dacă clicați pe \"Fix\", AdGuardHome va configura sistemul dvs. pentru a utiliza serverul DNS AdGuardHome.",
|
||||
"autofix_warning_list": "Va efectua aceste sarcini: <0>Dezactivare sistem DNSStubListener</0> <0>Setare adresă server DNS la 127.0.0.1</0> <0>Înlocuire link simbolic țintă /etc/resolv.conf cu /run/systemd/resolve/resolv.conf</0> <0>Oprire DNSStubListener (reîncărcare servici rezolvat prin sistem)</0>",
|
||||
"autofix_warning_result": "Ca urmare, toate cererile DNS ale sistemul dvs. vor fi procesate în mod implicit de AdGuardHome.",
|
||||
@@ -549,7 +519,6 @@
|
||||
"set_static_ip": "Setați o adresă IP statică",
|
||||
"install_static_ok": "Vești bune! Adresa IP statică este deja configurată",
|
||||
"install_static_error": "AdGuard Home nu o poate configura automat pentru această interfață de rețea. Vă rugăm să căutați instrucțiuni despre cum să faceți acest lucru manual.",
|
||||
"install_static_configure": "Am detectat că se folosește o adresă IP dinamică - <0>{{ip}}</0>. Vreți să o folosiți pe aceasta ca adresă statică?",
|
||||
"confirm_static_ip": "AdGuard Home va configura {{ip}} ca adresa dvs. IP statică. Doriți să continuați?",
|
||||
"list_updated": "{{count}} listă actualizată",
|
||||
"list_updated_plural": "{{count}} liste actualizate",
|
||||
@@ -587,11 +556,10 @@
|
||||
"filter_category_security_desc": "Liste specializate în blocarea domeniilor malware, phishing sau înșelătorie",
|
||||
"filter_category_regional_desc": "Liste focalizate pe reclame regionale și servere de urmărire",
|
||||
"filter_category_other_desc": "Alte liste de blocări",
|
||||
"setup_config_to_enable_dhcp_server": "Setați configurația pentru a activa serverul DHCP",
|
||||
"original_response": "Răspuns original",
|
||||
"click_to_view_queries": "Clicați pentru a vizualiza interogări",
|
||||
"port_53_faq_link": "Portul 53 este adesea ocupat de serviciile \"DNSStubListener\" sau \"systemd-resolved\". Vă rugăm să citiți <0>această instrucțiune</0> despre cum să rezolvați aceasta.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home va renunța la toate interogările DNS de la acest client.",
|
||||
"client_not_in_allowed_clients": "Clientul nu este permis deoarece nu este în lista de \"Clienți permiși\".",
|
||||
"experimental": "Experimental"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,23 +2,28 @@
|
||||
"client_settings": "Настройки клиентов",
|
||||
"example_upstream_reserved": "Вы можете указать DNS-сервер <0>для конкретного домена(-ов)</0>",
|
||||
"example_upstream_comment": "Вы можете указать комментарий",
|
||||
"upstream_parallel": "Использовать параллельные запросы ко всем серверам одновременно для ускорения обработки запроса",
|
||||
"upstream_parallel": "Использовать параллельные запросы ко всем серверам одновременно для ускорения обработки запроса.",
|
||||
"parallel_requests": "Параллельные запросы",
|
||||
"load_balancing": "Распределение нагрузки\n",
|
||||
"load_balancing_desc": "Запрашивайте по одному серверу за раз. AdGuard Home будет использовать случайный алгоритм для выбора сервера, так что самый быстрый сервер будет использоваться чаще.",
|
||||
"bootstrap_dns": "Bootstrap DNS-серверы",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS-серверы используются для поиска IP-адресов DoH/DoT серверов, которые вы указали.",
|
||||
"local_ptr_title": "Приватные DNS-серверы",
|
||||
"local_ptr_desc": "DNS-серверы, которые AdGuard Home использует для локальных PTR-запросов. Эти серверы используются, чтобы получить доменные имена клиентов с приватными IP-адресами, например «192.168.12.34», с помощью rDNS. Если список пуст, AdGuard Home использует DNS-серверы по умолчанию вашей ОС.",
|
||||
"local_ptr_placeholder": "Введите по одному адресу на строчку",
|
||||
"resolve_clients_title": "Включить запрашивание доменных имён для IP-адресов клиентов",
|
||||
"resolve_clients_desc": "AdGuard Home будет пытаться определить доменные имена клиентов через PTR-запросы к соответствующим серверам (приватные DNS-серверы для локальных клиентов, upstream-сервер для клиентов с публичным IP-адресом).",
|
||||
"check_dhcp_servers": "Проверить DHCP-серверы",
|
||||
"save_config": "Сохранить конфигурацию",
|
||||
"enabled_dhcp": "DHCP-сервер включен",
|
||||
"disabled_dhcp": "DHCP-сервер отключен",
|
||||
"enabled_dhcp": "DHCP-сервер включён",
|
||||
"disabled_dhcp": "DHCP-сервер отключён",
|
||||
"unavailable_dhcp": "DHCP недоступен",
|
||||
"unavailable_dhcp_desc": "AdGuard Home не может запустить DHCP-сервер на вашей ОС",
|
||||
"dhcp_title": "DHCP-сервер (экспериментальный!)",
|
||||
"dhcp_description": "Если ваш роутер не предоставляет настройки DHCP, вы можете использовать собственный встроенный DHCP-сервер AdGuard.",
|
||||
"dhcp_enable": "Включить DHCP-сервер",
|
||||
"dhcp_disable": "Отключить DHCP-сервер",
|
||||
"dhcp_not_found": "Активные DHCP-серверы в сети не найдены. Вы можете безопасно включить встроенный сервер DHCP.",
|
||||
"dhcp_not_found": "Можно безопасно включить DHCP-сервер, так как другие активные DHCP-серверы в сети не найдены. Однако, рекомендуется перепроверить их отсутствие вручную, так как автоматическая проверка не даёт 100% гарантии.",
|
||||
"dhcp_found": "Некоторые активные DHCP-серверы найдены в сети. Включение встроенного DHCP-сервера небезопасно.",
|
||||
"dhcp_leases": "Аренда DHCP",
|
||||
"dhcp_static_leases": "Статические аренды DHCP",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Некорректный формат MAC",
|
||||
"form_error_client_id_format": "Неверный формат ID клиента",
|
||||
"form_error_server_name": "Неверное имя сервера",
|
||||
"form_error_subnet": "Подсеть «{{cidr}}» не содержит IP-адрес «{{ip}}»",
|
||||
"form_error_positive": "Должно быть больше 0",
|
||||
"form_error_negative": "Должно быть не меньше 0",
|
||||
"range_end_error": "Должно превышать начало диапазона",
|
||||
@@ -49,19 +55,19 @@
|
||||
"ip": "IP-адрес",
|
||||
"dhcp_table_hostname": "Имя хоста",
|
||||
"dhcp_table_expires": "Истекает",
|
||||
"dhcp_warning": "Если вы все равно хотите включить DHCP-сервер, убедитесь, что в сети больше нет активных DHCP-серверов. Иначе это может сломать доступ в сеть для подключенных устройств!",
|
||||
"dhcp_error": "Мы не смогли определить присутствие других DHCP-серверов в сети.",
|
||||
"dhcp_static_ip_error": "Для того, чтобы использовать DHCP-сервер, должен быть установлен статический IP-адрес. Мы не смогли определить, использует ли этот сетевой интерфейс статический IP-адрес. Пожалуйста, установите его вручную.",
|
||||
"dhcp_dynamic_ip_found": "Ваша система использует динамический IP-адрес для интерфейса <0>{{interfaceName}}</0>. Чтобы использовать DHCP-сервер необходимо установить статический IP-адрес. Ваш текущий IP-адрес – <0>{{ipAddress}}</0>. Мы автоматически установим его как статический, если вы нажмете кнопку Включить DHCP.",
|
||||
"dhcp_lease_added": "Статическая аренда \"{{key}}\" успешно добавлена",
|
||||
"dhcp_lease_deleted": "Статическая аренда \"{{key}}\" успешно удалена",
|
||||
"dhcp_warning": "Если вы все равно хотите включить DHCP-сервер, убедитесь, что в сети больше нет активных DHCP-серверов. Иначе это может сломать доступ в сеть для подключённых устройств!",
|
||||
"dhcp_error": "AdGuard Home не смог определить присутствие других DHCP-серверов в сети.",
|
||||
"dhcp_static_ip_error": "Чтобы использовать DHCP-сервер, должен быть установлен статический IP-адрес. AdGuard Home не смог определить, использует ли этот сетевой интерфейс статический IP-адрес. Пожалуйста, установите его вручную.",
|
||||
"dhcp_dynamic_ip_found": "Ваша система использует динамический IP-адрес для интерфейса <0>{{interfaceName}}</0>. Чтобы использовать DHCP-сервер, необходимо установить статический IP-адрес. Ваш текущий IP-адрес – <0>{{ipAddress}}</0>. Мы автоматически установим его как статический, если вы нажмёте кнопку «Включить DHCP-сервер».",
|
||||
"dhcp_lease_added": "Статическая аренда «{{key}}» успешно добавлена",
|
||||
"dhcp_lease_deleted": "Статическая аренда «{{key}}» успешно удалена",
|
||||
"dhcp_new_static_lease": "Новая статическая аренда",
|
||||
"dhcp_static_leases_not_found": "Не найдено статических аренд DHCP",
|
||||
"dhcp_add_static_lease": "Добавить статическую аренду",
|
||||
"dhcp_reset": "Вы уверены, что хотите сбросить настройки DHCP?",
|
||||
"country": "Страна",
|
||||
"city": "Город",
|
||||
"delete_confirm": "Are you sure you want to delete \"{{key}}\"?",
|
||||
"delete_confirm": "Вы уверены, что хотите удалить «{{key}}»?",
|
||||
"form_enter_hostname": "Введите имя хоста",
|
||||
"error_details": "Детализация ошибки",
|
||||
"response_details": "Детали ответа",
|
||||
@@ -94,7 +100,7 @@
|
||||
"dns_query": "DNS-запросы",
|
||||
"blocked_by": "<0>Заблокировано фильтрами</0>",
|
||||
"stats_malware_phishing": "Заблокированные вредоносные и фишинговые сайты",
|
||||
"stats_adult": "Заблокированные \"взрослые\" сайты",
|
||||
"stats_adult": "Заблокированные «взрослые» сайты",
|
||||
"stats_query_domain": "Часто запрашиваемые домены",
|
||||
"for_last_24_hours": "за 24 часа",
|
||||
"for_last_days": "за последний {{count}} день",
|
||||
@@ -107,29 +113,29 @@
|
||||
"general_statistics": "Общая статистика",
|
||||
"number_of_dns_query_days": "Количество DNS-запросов за последний {{count}} день",
|
||||
"number_of_dns_query_days_plural": "Количество DNS запросов, обработанных за последние {{count}} дней",
|
||||
"number_of_dns_query_24_hours": "Количество DNS-запросов за 24 часа",
|
||||
"number_of_dns_query_24_hours": "Количество DNS-запросов за последние 24 часа",
|
||||
"number_of_dns_query_blocked_24_hours": "Количество DNS-запросов, заблокированных фильтрами и блок-списками",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Количество DNS-запросов, заблокированных модулем Антифишинга AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Количество заблокированных \"сайтов для взрослых\"",
|
||||
"enforced_save_search": "Применен безопасный поиск",
|
||||
"number_of_dns_query_to_safe_search": "Количество запросов DNS для поисковых систем, для которых был применен Безопасный поиск",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Количество заблокированных «сайтов для взрослых»",
|
||||
"enforced_save_search": "Применён безопасный поиск",
|
||||
"number_of_dns_query_to_safe_search": "Количество запросов DNS для поисковых систем, для которых был применён Безопасный поиск",
|
||||
"average_processing_time": "Среднее время обработки запроса",
|
||||
"average_processing_time_hint": "Среднее время для обработки запроса DNS в миллисекундах",
|
||||
"block_domain_use_filters_and_hosts": "Блокировать домены с использованием фильтров и файлов хостов",
|
||||
"filters_block_toggle_hint": "Вы можете настроить правила блокировки в <a>\"Фильтрах\"</a>.",
|
||||
"filters_block_toggle_hint": "Вы можете настроить правила блокировки в <a>«Фильтрах»</a>.",
|
||||
"use_adguard_browsing_sec": "Включить Безопасную навигацию AdGuard",
|
||||
"use_adguard_browsing_sec_hint": "AdGuard Home проверит, включен ли домен в веб-службу безопасности браузера. Он будет использовать API, чтобы выполнить проверку: на сервер отправляется только короткий префикс имени домена SHA256.",
|
||||
"use_adguard_browsing_sec_hint": "AdGuard Home проверит, включён ли домен в веб-службу безопасности браузера. Он будет использовать API, чтобы выполнить проверку: на сервер отправляется только короткий префикс имени домена SHA256.",
|
||||
"use_adguard_parental": "Включить модуль Родительского контроля AdGuard ",
|
||||
"use_adguard_parental_hint": "AdGuard Home проверит, содержит ли домен материалы 18+. Он использует тот же API для обеспечения конфиденциальности, что и веб-служба безопасности браузера.",
|
||||
"enforce_safe_search": "Включить безопасный поиск",
|
||||
"enforce_save_search_hint": "AdGuard Home может обеспечить безопасный поиск в следующих поисковых системах: Google, Youtube, Bing, DuckDuckGo, Yandex и Pixabay.",
|
||||
"enforce_save_search_hint": "AdGuard Home может обеспечить безопасный поиск в следующих поисковых системах: Google, YouTube, Bing, DuckDuckGo, Yandex и Pixabay.",
|
||||
"no_servers_specified": "Нет указанных серверов",
|
||||
"general_settings": "Основные настройки",
|
||||
"dns_settings": "Настройки DNS",
|
||||
"dns_blocklists": "Черные списки DNS",
|
||||
"dns_blocklists": "Чёрные списки DNS",
|
||||
"dns_allowlists": "Белые списки DNS",
|
||||
"dns_blocklists_desc": "AdGuard Home будет блокировать домены из черных списков.",
|
||||
"dns_allowlists_desc": "Домены из белых списков DNS будут разрешены, даже если они находятся в любом из черных списков.",
|
||||
"dns_blocklists_desc": "AdGuard Home будет блокировать домены из чёрных списков.",
|
||||
"dns_allowlists_desc": "Домены из белых списков DNS будут разрешены, даже если они находятся в любом из чёрных списков.",
|
||||
"custom_filtering_rules": "Пользовательские правила фильтрации",
|
||||
"encryption_settings": "Настройки шифрования",
|
||||
"dhcp_settings": "Настройки DHCP",
|
||||
@@ -158,21 +164,21 @@
|
||||
"delete_table_action": "Удалить",
|
||||
"elapsed": "Затрачено",
|
||||
"filters_and_hosts_hint": "AdGuard Home распознает базовые правила блокировки и синтаксис файлов hosts.",
|
||||
"no_blocklist_added": "Черные списки не добавлены",
|
||||
"no_blocklist_added": "Чёрные списки не добавлены",
|
||||
"no_whitelist_added": "Белые списки не добавлены",
|
||||
"add_blocklist": "Добавить черный список",
|
||||
"add_blocklist": "Добавить чёрный список",
|
||||
"add_allowlist": "Добавить белый список",
|
||||
"cancel_btn": "Отмена",
|
||||
"enter_name_hint": "Введите имя",
|
||||
"enter_url_or_path_hint": "Введите URL-адрес или абсолютный путь к списку",
|
||||
"check_updates_btn": "Проверить обновления",
|
||||
"new_blocklist": "Новый черный список",
|
||||
"new_blocklist": "Новый чёрный список",
|
||||
"new_allowlist": "Новый белый список",
|
||||
"edit_blocklist": "Редактировать черный список",
|
||||
"edit_blocklist": "Редактировать чёрный список",
|
||||
"edit_allowlist": "Редактировать белый список",
|
||||
"choose_blocklist": "Выберите списки блокировки",
|
||||
"choose_allowlist": "Выберите списки разрешённых",
|
||||
"enter_valid_blocklist": "Добавьте действующий URL-адрес в черный список.",
|
||||
"enter_valid_blocklist": "Добавьте действующий URL-адрес в чёрный список.",
|
||||
"enter_valid_allowlist": "Добавьте действующий URL-адрес в белый список.",
|
||||
"form_error_url_format": "Неверный формат URL",
|
||||
"form_error_url_or_path_format": "Неверный URL или абсолютный путь к списку",
|
||||
@@ -181,7 +187,7 @@
|
||||
"examples_title": "Примеры",
|
||||
"example_meaning_filter_block": "заблокировать доступ к домену example.org и всем его поддоменам",
|
||||
"example_meaning_filter_whitelist": "разблокировать доступ к домену example.org и всем его поддоменам",
|
||||
"example_meaning_host_block": "Теперь AdGuard Home вернет 127.0.0.1 для домена example.org (но не для его поддоменов).",
|
||||
"example_meaning_host_block": "Теперь AdGuard Home вернёт 127.0.0.1 для домена example.org (но не для его поддоменов).",
|
||||
"example_comment": "! Так можно добавлять описание",
|
||||
"example_comment_meaning": "комментарий",
|
||||
"example_comment_hash": "# И вот так тоже",
|
||||
@@ -189,13 +195,13 @@
|
||||
"example_upstream_regular": "обычный DNS (поверх UDP)",
|
||||
"example_upstream_dot": "зашифрованный <0>DNS-over-TLS</0>",
|
||||
"example_upstream_doh": "зашифрованный <0>DNS-over-HTTPS</0>",
|
||||
"example_upstream_doq": "зашифрован <0>DNS-over-QUIC</0>",
|
||||
"example_upstream_doq": "зашифрованный <0>DNS-over-QUIC</0>",
|
||||
"example_upstream_sdns": "вы можете использовать <0>DNS Stamps</0> для <1>DNSCrypt</1> или <2>DNS-over-HTTPS</2> резолверов",
|
||||
"example_upstream_tcp": "обычный DNS (поверх TCP)",
|
||||
"all_lists_up_to_date_toast": "Все списки уже обновлены",
|
||||
"updated_upstream_dns_toast": "Upstream DNS-серверы обновлены",
|
||||
"dns_test_ok_toast": "Указанные серверы DNS работают корректно",
|
||||
"dns_test_not_ok_toast": "Сервер \"{{key}}\": невозможно использовать, проверьте правильность написания",
|
||||
"dns_test_not_ok_toast": "Сервер «{{key}}»: невозможно использовать, проверьте правильность написания",
|
||||
"unblock": "Разблокировать",
|
||||
"block": "Заблокировать",
|
||||
"disallow_this_client": "Запретить доступ клиенту",
|
||||
@@ -217,7 +223,7 @@
|
||||
"refresh_btn": "Обновить",
|
||||
"previous_btn": "Назад",
|
||||
"next_btn": "Вперёд",
|
||||
"loading_table_status": "Загрузка...",
|
||||
"loading_table_status": "Загрузка…",
|
||||
"page_table_footer_text": "Страница",
|
||||
"rows_table_footer_text": "строк",
|
||||
"updated_custom_filtering_toast": "Внесены изменения в пользовательские правила",
|
||||
@@ -227,7 +233,7 @@
|
||||
"query_log_filtered": "Отфильтровано с помощью {{filter}}",
|
||||
"query_log_confirm_clear": "Вы уверены, что хотите очистить весь журнал запросов?",
|
||||
"query_log_cleared": "Журнал запросов успешно очищен",
|
||||
"query_log_updated": "Журнал запросов успешно обновлен",
|
||||
"query_log_updated": "Журнал запросов успешно обновлён",
|
||||
"query_log_clear": "Очистить журнал запросов",
|
||||
"query_log_retention": "Сохранение журнала запросов",
|
||||
"query_log_enable": "Включить журнал",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Rate limit",
|
||||
"edns_enable": "Включить отправку EDNS Client Subnet",
|
||||
"edns_cs_desc": "Если включить эту опцию, AdGuard Home будет отправлять подсети клиентов на DNS-сервера.",
|
||||
"rate_limit_desc": "Ограничение на количество запросов в секунду для каждого клиента (0 — неограниченно)",
|
||||
"rate_limit_desc": "Ограничение на количество запросов в секунду для каждого клиента (0 — неограниченно).",
|
||||
"blocking_ipv4_desc": "IP-адрес, возвращаемый при блокировке A-запроса",
|
||||
"blocking_ipv6_desc": "IP-адрес, возвращаемый при блокировке AAAA-запроса",
|
||||
"blocking_mode_default": "Стандартный: Отвечает с нулевым IP-адресом, (0.0.0.0 для A; :: для AAAA) когда заблокировано правилом в стиле Adblock; отвечает с IP-адресом, указанным в правиле, когда заблокировано правилом в стиле /etc/hosts-style",
|
||||
@@ -281,7 +287,7 @@
|
||||
"unknown_filter": "Неизвестный фильтр {{filterId}}",
|
||||
"known_tracker": "Известный трекер",
|
||||
"install_welcome_title": "Добро пожаловать в AdGuard Home!",
|
||||
"install_welcome_desc": "AdGuard Home – это DNS-сервер, блокирующий рекламу и трекинг. Его цель – дать вам возможность контролировать всю вашу сеть и все подключенные устройства. Он не требует установки клиентских программ.",
|
||||
"install_welcome_desc": "AdGuard Home – это DNS-сервер, блокирующий рекламу и трекинг. Его цель – дать вам возможность контролировать всю вашу сеть и все подключённые устройства. Он не требует установки клиентских программ.",
|
||||
"install_settings_title": "Веб-интерфейс администрирования",
|
||||
"install_settings_listen": "Сетевой интерфейс",
|
||||
"install_settings_port": "Порт",
|
||||
@@ -305,16 +311,16 @@
|
||||
"install_devices_router": "Роутер",
|
||||
"install_devices_router_desc": "Такая настройка автоматически покроет все устройства, использующие ваш домашний роутер, и вам не нужно будет настраивать каждое из них в отдельности.",
|
||||
"install_devices_address": "DNS-сервер AdGuard Home доступен по следующим адресам",
|
||||
"install_devices_router_list_1": "Откройте настройки вашего роутера. Обычно вы можете открыть их в вашем браузере (например, http://192.168.0.1/ или http://192.168.1.1/). Вас могут попросить ввести пароль. Если вы не помните его, пароль часто можно сбросить, нажав на кнопку на самом роутере. Некоторые роутеры требуют специального приложения, которое в этом случае должно быть уже установлено на ваш компьютер или телефон.",
|
||||
"install_devices_router_list_2": "Найдите настройки DHCP или DNS. Найдите буквы \"DNS\" рядом с текстовым полем, в которое можно ввести два или три ряда цифр, разделенных на 4 группы от одной до трёх цифр.",
|
||||
"install_devices_router_list_1": "Откройте настройки вашего роутера. Обычно вы можете открыть их в вашем браузере, например, http://192.168.0.1/ или http://192.168.1.1/. Вас могут попросить ввести пароль. Если вы не помните его, пароль часто можно сбросить, нажав на кнопку на самом роутере, но помните, что эта процедура может привести к потере всей конфигурации роутера. Если вашему роутеру необходимо приложение для настройки, установите его на свой телефон или ПК и воспользуйтесь им для настройки роутера.",
|
||||
"install_devices_router_list_2": "Найдите настройки DHCP или DNS. Найдите буквы «DNS» рядом с текстовым полем, в которое можно ввести два или три ряда цифр, разделенных на 4 группы от одной до трёх цифр.",
|
||||
"install_devices_router_list_3": "Введите туда адрес вашего AdGuard Home.",
|
||||
"install_devices_router_list_4": "Вы не можете установить собственный DNS-сервер на некоторых типах маршрутизаторов. В этом случае может помочь настройка AdGuard Home в качестве <0>DHCP-сервера</0>. В противном случае вам следует обратиться к руководству по настройке DNS-серверов для вашей конкретной модели маршрутизатора.",
|
||||
"install_devices_windows_list_1": "Откройте Панель управления через меню \"Пуск\" или через поиск Windows.",
|
||||
"install_devices_windows_list_2": "Перейдите в \"Сеть и интернет\", а затем в \"Центр управления сетями и общим доступом\"",
|
||||
"install_devices_windows_list_3": "В левой стороне экрана найдите \"Изменение параметров адаптера\" и кликните по нему.",
|
||||
"install_devices_windows_list_4": "Выделите ваше активное подключение, затем кликните по нему правой клавишей мыши и выберите \"Свойства\".",
|
||||
"install_devices_windows_list_5": "Найдите в списке пункт \"IP версии 4 (TCP/IP)\", выделите его и затем снова нажмите \"Свойства\".",
|
||||
"install_devices_windows_list_6": "Выберите \"Использовать следующие адреса DNS-серверов\" и введите адрес AdGuard Home.",
|
||||
"install_devices_windows_list_1": "Откройте Панель управления через меню «Пуск» или через поиск Windows.",
|
||||
"install_devices_windows_list_2": "Перейдите в «Сеть и интернет», а затем в «Центр управления сетями и общим доступом»",
|
||||
"install_devices_windows_list_3": "В левой стороне экрана найдите «Изменение параметров адаптера» и кликните по нему.",
|
||||
"install_devices_windows_list_4": "Выделите ваше активное подключение, затем кликните по нему правой клавишей мыши и выберите «Свойства».",
|
||||
"install_devices_windows_list_5": "Найдите в списке пункт «IP версии 4 (TCP/IP)», выделите его и затем снова нажмите «Свойства».",
|
||||
"install_devices_windows_list_6": "Выберите «Использовать следующие адреса DNS-серверов» и введите адрес AdGuard Home.",
|
||||
"install_devices_macos_list_1": "Кликните по иконке Apple и перейдите в «Системные настройки».",
|
||||
"install_devices_macos_list_2": "Кликните по иконке «Сеть».",
|
||||
"install_devices_macos_list_3": "Выберите первое подключение в списке и нажмите кнопку «Дополнительно».",
|
||||
@@ -345,7 +351,7 @@
|
||||
"encryption_dot": "Порт DNS-over-TLS",
|
||||
"encryption_dot_desc": "Если этот порт настроен, AdGuard Home запустит DNS-over-TLS-сервер на этому порту.",
|
||||
"encryption_doq": "Порт DNS-over-QUIC",
|
||||
"encryption_doq_desc": "Если этот порт настроен, AdGuard Home запустит сервер DNS-over-QUIC на этом порте. Это экспериментально и может быть ненадежно. Кроме того, не так много клиентов поддерживает этот способ в настоящий момент.",
|
||||
"encryption_doq_desc": "Если этот порт настроен, AdGuard Home запустит сервер DNS-over-QUIC на этом порте. Это экспериментально и может быть ненадёжно. Кроме того, не так много клиентов поддерживает этот способ в настоящий момент.",
|
||||
"encryption_certificates": "Сертификаты",
|
||||
"encryption_certificates_desc": "Для использования шифрования вам необходимо предоставить валидную цепочку SSL-сертификатов для вашего домена. Вы можете получить бесплатный сертификат на <0>{{link}}</0> или вы можете купить его у одного из доверенных Центров Сертификации.",
|
||||
"encryption_certificates_input": "Скопируйте сюда сертификаты в PEM-кодировке.",
|
||||
@@ -364,8 +370,8 @@
|
||||
"encryption_hostnames": "Имена хостов",
|
||||
"encryption_reset": "Вы уверены, что хотите сбросить настройки шифрования?",
|
||||
"topline_expiring_certificate": "Ваш SSL-сертификат скоро истекает. Обновите <0>Настройки шифрования</0>.",
|
||||
"topline_expired_certificate": "Ваш SSL-сертификат истек. Обновите <0>Настройки шифрования</0>.",
|
||||
"form_error_port_range": "Введите значение порта из интервала 80-65535",
|
||||
"topline_expired_certificate": "Ваш SSL-сертификат истёк. Обновите <0>Настройки шифрования</0>.",
|
||||
"form_error_port_range": "Введите номер порта из интервала 80-65535",
|
||||
"form_error_port_unsafe": "Это небезопасный порт",
|
||||
"form_error_equal": "Не должны быть равны",
|
||||
"form_error_password": "Пароли не совпадают",
|
||||
@@ -395,28 +401,29 @@
|
||||
"ip_address": "IP-адрес",
|
||||
"client_identifier_desc": "Клиенты могут быть идентифицированы по IP-адресу, CIDR или MAC-адресу или специальному ID (можно использовать для DoT/DoH/DoQ). <0>Здесь</0> вы можете узнать больше об идентификации клиентов.",
|
||||
"form_enter_ip": "Введите IP",
|
||||
"form_enter_subnet_ip": "Введите IP-адрес в подсети «{{cidr}}»",
|
||||
"form_enter_mac": "Введите MAC",
|
||||
"form_enter_id": "Введите идентификатор",
|
||||
"form_add_id": "Добавить идентификатор",
|
||||
"form_client_name": "Введите имя клиента",
|
||||
"name": "Имя",
|
||||
"client_global_settings": "Использовать глобальные настройки",
|
||||
"client_deleted": "Клиент \"{{key}}\" успешно удален",
|
||||
"client_added": "Клиент \"{{key}}\" успешно добавлен",
|
||||
"client_updated": "Клиент \"{{key}}\" успешно обновлен",
|
||||
"client_deleted": "Клиент «{{key}}» успешно удалён",
|
||||
"client_added": "Клиент «{{key}}» успешно добавлен",
|
||||
"client_updated": "Клиент «{{key}}» успешно обновлён",
|
||||
"clients_not_found": "Клиентов не найдено",
|
||||
"client_confirm_delete": "Вы уверены, что хотите удалить клиента \"{{key}}\"?",
|
||||
"client_confirm_delete": "Вы уверены, что хотите удалить клиента «{{key}}»?",
|
||||
"list_confirm_delete": "Вы уверены, что хотите удалить этот список?",
|
||||
"auto_clients_title": "Клиенты (runtime)",
|
||||
"auto_clients_desc": "Данные о клиентах, которые используют AdGuard Home, но не хранятся в настройках",
|
||||
"access_title": "Настройки доступа",
|
||||
"access_desc": "Здесь вы можете настроить правила доступа к DNS-серверу AdGuard Home.",
|
||||
"access_allowed_title": "Разрешенные клиенты",
|
||||
"access_allowed_title": "Разрешённые клиенты",
|
||||
"access_allowed_desc": "Список CIDR- или IP-адресов. Если он настроен, AdGuard Home будет принимать запросы только с этих IP-адресов.",
|
||||
"access_disallowed_title": "Запрещенные клиенты",
|
||||
"access_disallowed_title": "Запрещённые клиенты",
|
||||
"access_disallowed_desc": "Список CIDR- или IP-адресов. Если он настроен, AdGuard Home будет игнорировать запросы с этих IP-адресов.",
|
||||
"access_blocked_title": "Неразрешенные домены",
|
||||
"access_blocked_desc": "Не путайте это с фильтрами. AdGuard Home будет игнорировать DNS-запросы с этими доменами. Здесь вы можете уточнить точные имена доменов, шаблоны, правила URL-фильтрации, например, \"пример.org\", \"*.пример.org\" или \"||пример.org\".",
|
||||
"access_blocked_title": "Неразрешённые домены",
|
||||
"access_blocked_desc": "Не путайте это с фильтрами. AdGuard Home будет игнорировать DNS-запросы с этими доменами. Здесь вы можете уточнить точные имена доменов, шаблоны, правила URL-фильтрации, например, «пример.org», «*.пример.org» или «||пример.org».",
|
||||
"access_settings_saved": "Настройки доступа успешно сохранены",
|
||||
"updates_checked": "Проверка обновлений прошла успешно",
|
||||
"updates_version_equal": "Версия AdGuard Home актуальна",
|
||||
@@ -436,14 +443,14 @@
|
||||
"setup_dns_privacy_other_2": "<0>dnsproxy</0> поддерживает все известные зашифрованные DNS-протоколы.",
|
||||
"setup_dns_privacy_other_3": "<0>dnscrypt-proxy</0> поддерживает <1>DNS-over-HTTPS</1>.",
|
||||
"setup_dns_privacy_other_4": "<0>Mozilla Firefox</0> поддерживает <1>DNS-over-HTTPS</1>.",
|
||||
"setup_dns_privacy_other_5": "Вы можете найти еще варианты <0>тут</0> и <1>тут</1>.",
|
||||
"setup_dns_privacy_other_5": "Вы можете найти ещё варианты <0>тут</0> и <1>тут</1>.",
|
||||
"setup_dns_privacy_ioc_mac": "Конфигурация для iOS и macOS",
|
||||
"setup_dns_notice": "Чтобы использовать <1>DNS-over-HTTPS</1> или <1>DNS-over-TLS</1>, вам нужно <0>настроить шифрование</0> в настройках AdGuard Home.",
|
||||
"rewrite_added": "Правило перенаправления DNS для \"{{key}}\" успешно добавлено",
|
||||
"rewrite_deleted": "Правило перенаправления DNS для \"{{key}}\" успешно удалено",
|
||||
"rewrite_added": "Правило перенаправления DNS для «{{key}}» успешно добавлено",
|
||||
"rewrite_deleted": "Правило перенаправления DNS для «{{key}}» успешно удалено",
|
||||
"rewrite_add": "Добавить правило перенаправления DNS",
|
||||
"rewrite_not_found": "Не найдено правил перенаправления DNS",
|
||||
"rewrite_confirm_delete": "Вы уверены, что хотите удалить правило перенаправления DNS для \"{{key}}\"?",
|
||||
"rewrite_confirm_delete": "Вы уверены, что хотите удалить правило перенаправления DNS для «{{key}}»?",
|
||||
"rewrite_desc": "Позволяет легко настроить пользовательский DNS-ответ для определеннного домена.",
|
||||
"rewrite_applied": "Применено правило перенаправления",
|
||||
"rewrite_hosts_applied": "Переписано по правилу файла hosts",
|
||||
@@ -476,8 +483,8 @@
|
||||
"domain": "Домен",
|
||||
"answer": "Ответ",
|
||||
"filter_added_successfully": "Список успешно добавлен",
|
||||
"filter_removed_successfully": "Список успешно удален",
|
||||
"filter_updated": "Список успешно обновлен",
|
||||
"filter_removed_successfully": "Список успешно удалён",
|
||||
"filter_updated": "Список успешно обновлён",
|
||||
"statistics_configuration": "Конфигурация статистики",
|
||||
"statistics_retention": "Сохранение статистики",
|
||||
"statistics_retention_desc": "Если вы уменьшите значение интервала, некоторые данные могут быть утеряны",
|
||||
@@ -508,7 +515,7 @@
|
||||
"filtering_rules_learn_more": "<0>Узнайте больше</0> о создании собственных списков блокировки хостов.",
|
||||
"blocked_by_response": "Заблокировано по CNAME или IP в ответе",
|
||||
"blocked_by_cname_or_ip": "Заблокировано с помощью CNAME или IP",
|
||||
"try_again": "Попробовать еще раз",
|
||||
"try_again": "Попробовать ещё раз",
|
||||
"domain_desc": "Введите имя или маску домена, который вы хотите перенаправить.",
|
||||
"example_rewrite_domain": "перенаправляет ответы только для этого домена.",
|
||||
"example_rewrite_wildcard": "перенаправляет ответы для всех поддоменов <0>example.org</0>.",
|
||||
@@ -520,7 +527,7 @@
|
||||
"disable_ipv6_desc": "Если эта опция включена, все DNS-запросы адресов IPv6 (тип AAAA) будут игнорироваться.",
|
||||
"fastest_addr": "Самый быстрый IP-адрес",
|
||||
"fastest_addr_desc": "Опросить все DNS-серверы и вернуть самый быстрый IP-адрес из полученных ответов. Это замедлит DNS-запросы, так как нужно будет дождаться ответов со всех DNS-серверов, но улучшит соединение.",
|
||||
"autofix_warning_text": "При нажатии \"Исправить\" AdGuard Home настроит вашу систему на использование DNS-сервера AdGuard Home.",
|
||||
"autofix_warning_text": "При нажатии «Исправить» AdGuard Home настроит вашу систему на использование DNS-сервера AdGuard Home.",
|
||||
"autofix_warning_list": "Будут выполняться следующие задачи: <0>Деактивировать системный DNSStubListener</0> <0>Установить адрес сервера DNS на 127.0.0.1</0> <0>Создать символическую ссылку /etc/resolv.conf на /run/systemd/resolve/resolv.conf</0> <0>Остановить DNSStubListener (перезагрузить системную службу)</0>.",
|
||||
"autofix_warning_result": "В результате все DNS-запросы от вашей системы будут по умолчанию обрабатываться AdGuard Home.\n",
|
||||
"tags_title": "Теги",
|
||||
@@ -533,17 +540,17 @@
|
||||
"filtered_custom_rules": "Отфильтрованы с помощью пользовательских правил фильтрации",
|
||||
"choose_from_list": "Выбрать из списка",
|
||||
"add_custom_list": "Добавить свой список",
|
||||
"host_whitelisted": "Хост занесен в белый список",
|
||||
"host_whitelisted": "Хост занесён в белый список",
|
||||
"check_ip": "IP-адреса: {{ip}}",
|
||||
"check_cname": "CNAME: {{cname}}",
|
||||
"check_reason": "Причина: {{reason}}",
|
||||
"check_service": "Название сервиса: {{service}}",
|
||||
"service_name": "Имя сервиса",
|
||||
"check_not_found": "Не найдено в вашем списке фильтров",
|
||||
"client_confirm_block": "Вы уверены, что хотите заблокировать клиента \"{{ip}}\"?",
|
||||
"client_confirm_unblock": "Вы уверены, что хотите разблокировать клиента \"{{ip}}\"?",
|
||||
"client_blocked": "Клиент \"{{ip}}\" успешно заблокирован",
|
||||
"client_unblocked": "Клиент \"{{ip}}\" успешно разблокирован",
|
||||
"client_confirm_block": "Вы уверены, что хотите заблокировать клиента «{{ip}}»?",
|
||||
"client_confirm_unblock": "Вы уверены, что хотите разблокировать клиента «{{ip}}»?",
|
||||
"client_blocked": "Клиент «{{ip}}» успешно заблокирован",
|
||||
"client_unblocked": "Клиент «{{ip}}» успешно разблокирован",
|
||||
"static_ip": "Статический IP-адрес",
|
||||
"static_ip_desc": "AdGuard Home является сервером, поэтому для корректной работы ему необходим статический IP-адрес. В противном случае, в какой-то момент ваш роутер может присвоить этому устройству другой IP-адрес.",
|
||||
"set_static_ip": "Установить статический IP-адрес",
|
||||
@@ -551,7 +558,7 @@
|
||||
"install_static_error": "AdGuard Home не может автоматически настроить его для этого сетевого интерфейса. Пожалуйста, посмотрите инструкцию о том, как это сделать вручную.",
|
||||
"install_static_configure": "Мы обнаружили использование динамического IP-адреса — <0>{{ip}}</0>. Хотите использовать его в качестве статического адреса?",
|
||||
"confirm_static_ip": "AdGuard Home настроит {{ip}} в качестве вашего статического IP-адреса. Хотите продолжить?",
|
||||
"list_updated": "Обновлен {{count}} список",
|
||||
"list_updated": "Обновлён {{count}} список",
|
||||
"list_updated_plural": "Обновлено списков: {{count}}",
|
||||
"dnssec_enable": "Включить DNSSEC",
|
||||
"dnssec_enable_desc": "Установите флаг DNSSEC в исходящих DNS-запросах и проверьте результат (требуется резолвер с поддержкой DNSSEC)",
|
||||
@@ -561,13 +568,13 @@
|
||||
"show_whitelisted_responses": "В белом списке",
|
||||
"show_processed_responses": "Обработан",
|
||||
"blocked_safebrowsing": "Заблокировано согласно базе данных Safebrowsing",
|
||||
"blocked_adult_websites": "Заблокированные \"взрослые\" сайты",
|
||||
"blocked_adult_websites": "Заблокированные «взрослые» сайты",
|
||||
"blocked_threats": "Заблокировано угроз",
|
||||
"allowed": "Разрешенные",
|
||||
"allowed": "Разрешённые",
|
||||
"filtered": "Отфильтрованные",
|
||||
"rewritten": "Переписанные",
|
||||
"safe_search": "Безопасный поиск",
|
||||
"blocklist": "Черный список",
|
||||
"blocklist": "Чёрный список",
|
||||
"milliseconds_abbreviation": "мс",
|
||||
"cache_size": "Размер кеша",
|
||||
"cache_size_desc": "Размера кеша DNS (в байтах)",
|
||||
@@ -590,8 +597,8 @@
|
||||
"setup_config_to_enable_dhcp_server": "Настроить конфигурацию для включения DHCP-сервера",
|
||||
"original_response": "Первоначальный ответ",
|
||||
"click_to_view_queries": "Нажмите, чтобы просмотреть запросы",
|
||||
"port_53_faq_link": "Порт 53 часто занят службами \"DNSStubListener\" или \"systemd-resolved\". Ознакомьтесь с <0>инструкцией</0> о том, как это разрешить.",
|
||||
"port_53_faq_link": "Порт 53 часто занят службами «DNSStubListener» или «systemd-resolved». Ознакомьтесь с <0>инструкцией</0> о том, как это разрешить.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home AdGuard Home сбросит все DNS-запросы от этого клиента.",
|
||||
"client_not_in_allowed_clients": "Клиент не разрешён, так как его нет в списке \"Разрешённых клиентов\".",
|
||||
"client_not_in_allowed_clients": "Клиент не разрешён, так как его нет в списке «Разрешённых клиентов».",
|
||||
"experimental": "Экспериментальный"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
"example_upstream_comment": "ඔබට අදහසක් සඳහන් කළ හැකිය",
|
||||
"parallel_requests": "සමාන්තර ඉල්ලීම්",
|
||||
"load_balancing": "ධාරිතාව තුලනය",
|
||||
"local_ptr_title": "පෞද්ගලික ව.නා.ප. සේවාදායකයන්",
|
||||
"local_ptr_placeholder": "පේළියකට එක් සේවාදායක ලිපිනය බැගින් යොදන්න",
|
||||
"resolve_clients_title": "අනුග්රාහකවල අ.ජා. කෙ. ලිපින ප්රතිවර්ත විසඳීම සබල කරන්න",
|
||||
"check_dhcp_servers": "ග.ධා.වි.කෙ. සේවාදායකයන් සඳහා පරීක්ෂා කරන්න",
|
||||
"save_config": "වින්යාසය සුරකින්න",
|
||||
"enabled_dhcp": "ග.ධා.වි.කෙ. සේවාදායකය සබල කර ඇත",
|
||||
@@ -21,6 +24,7 @@
|
||||
"form_error_ip_format": "වලංගු නොවන අ.ජා. කෙ. (IP) ආකෘතියකි",
|
||||
"form_error_mac_format": "වලංගු නොවන මා.ප්ර.පා. ආකෘතියකි",
|
||||
"form_error_client_id_format": "වලංගු නොවන අනුග්රාහක හැඳුනුම් ආකෘතියකි",
|
||||
"form_error_server_name": "වලංගු නොවන සේවාදායක නාමයකි",
|
||||
"form_error_positive": "0 ට වඩා වැඩි විය යුතුය",
|
||||
"form_error_negative": "0 හෝ ඊට වැඩි විය යුතුය",
|
||||
"dhcp_form_range_title": "අ.ජා. කෙ. (IP) ලිපින පරාසය",
|
||||
@@ -32,10 +36,10 @@
|
||||
"ip": "අ.ජා. කෙ. (IP)",
|
||||
"dhcp_table_hostname": "ධාරක නාමය",
|
||||
"dhcp_table_expires": "කල් ඉකුත් වීම",
|
||||
"dhcp_warning": "ඔබට කෙසේ හෝ ග.ධා.වි.කෙ. සේවාදායකය සබල කිරීමට අවශ්ය නම්, ඔබේ ජාලයේ වෙනත් ක්රියාකාරී ග.ධා.වි.කෙ. සේවාදායකයක් නොමැති බව තහවුරු කරගන්න. එසේ නොමැති නම්, එය සම්බන්ධිත උපාංග සඳහා අන්තර්ජාලය බිඳ දැමිය හැකිය!",
|
||||
"dhcp_error": "ජාලයේ තවත් ග.ධා.වි.කෙ. සේවාදායකයක් තිබේද යන්න අපට තීරණය කළ නොහැකි විය.",
|
||||
"dhcp_static_ip_error": "ග.ධා.වි.කෙ. සේවාදායකය භාවිතා කිරීම සඳහා ස්ථිතික අන්තර්ජාල කෙටුම්පත් (IP) ලිපිනයක් සැකසිය යුතුය. මෙම ජාල අතුරුමුහුණත ස්ථිතික අ.ජා. කෙ. ලිපිනයක් භාවිතයෙන් වින්යාසගත කර තිබේද යන්න තීරණය කිරීමට අප අසමත් විය. කරුණාකර ස්ථිතික අ.ජා. කෙ. ලිපිනයක් අතින් සකසන්න.",
|
||||
"dhcp_dynamic_ip_found": "ඔබේ පද්ධතිය <0>{{interfaceName}}</0> අතුරු මුහුණත සඳහා ගතික අන්තර්ජාල කෙටුම්පත් (IP) ලිපින වින්යාසය භාවිතා කරයි. ග.ධා.වි.කෙ. සේවාදායකය භාවිතා කිරීම සඳහා ස්ථිතික අ.ජා. කෙ. ලිපිනයක් සැකසිය යුතුය. ඔබගේ වර්තමාන අ.ජා. කෙ. ලිපිනය <0>{{ipAddress}}</0> වේ. ඔබ ග.ධා.වි.කෙ. සබල කරන්න බොත්තම එබුවහොත් අපි ස්වයංක්රීයව මෙම අ.ජා. කෙ. ලිපිනය ස්ථිතික ලෙස සකසන්නෙමු.",
|
||||
"dhcp_warning": "ඔබට කෙසේ හෝ ග.ධා.වි.කෙ. සේවාදායකය සබල කිරීමට අවශ්ය නම්, ඔබේ ජාලයේ වෙනත් ක්රියාකාරී ග.ධා.වි.කෙ. සේවාදායකයක් නොමැති බව තහවුරු කරගන්න. මෙය සම්බන්ධිත උපාංග සඳහා අන්තර්ජාලය බිඳ දැමිය හැකිය!",
|
||||
"dhcp_error": "ජාලයේ තවත් ග.ධා.වි.කෙ. සේවාදායකයක් තිබේද යන්න නිශ්චය කළ නොහැකි විය.",
|
||||
"dhcp_static_ip_error": "ග.ධා.වි.කෙ. සේවාදායකය භාවිතා කිරීම සඳහා ස්ථිතික අන්තර්ජාල කෙටුම්පත් (IP) ලිපිනයක් සැකසිය යුතුය. මෙම ජාල අතුරුමුහුණත ස්ථිතික අ.ජා. කෙ. ලිපිනයක් භාවිතයෙන් වින්යාසගත කර තිබේද යන්න තීරණය කිරීමට ඇඩ්ගාර්ඩ් හෝම් අසමත් විය. කරුණාකර ස්ථිතික අ.ජා. කෙ. ලිපිනයක් අතින් සකසන්න.",
|
||||
"dhcp_dynamic_ip_found": "ඔබගේ පද්ධතිය <0>{{interfaceName}}</0> අතුරු මුහුණත සඳහා ගතික අන්තර්ජාල කෙටුම්පත් (IP) ලිපින වින්යාසය භාවිතා කරයි. ග.ධා.වි.කෙ. සේවාදායකය භාවිතා කිරීම සඳහා ස්ථිතික අ.ජා. කෙ. ලිපිනයක් සැකසිය යුතුය. ඔබගේ වර්තමාන අ.ජා. කෙ. ලිපිනය <0>{{ipAddress}}</0> වේ. ඔබ \"ග.ධා.වි.කෙ. සබල කරන්න\" බොත්තම එබුවහොත් ඇඩ්ගාර්ඩ් හෝම් ස්වයංක්රීයව මෙම අ.ජා. කෙ. ලිපිනය ස්ථිතික ලෙස සකසනු ඇත.",
|
||||
"dhcp_reset": "ග.ධා.වි.කෙ. වින්යාසය යළි පිහිටුවීමට අවශ්ය බව ඔබට විශ්වාස ද?",
|
||||
"country": "රට",
|
||||
"city": "නගරය",
|
||||
@@ -81,7 +85,11 @@
|
||||
"requests_count": "ඉල්ලීම් ගණන",
|
||||
"top_blocked_domains": "ජනප්රිය අවහිර කළ වසම්",
|
||||
"top_clients": "ජනප්රිය අනුග්රාහකයන්",
|
||||
"no_clients_found": "අනුග්රාහකයින් හමු නොවිණි",
|
||||
"general_statistics": "පොදු සංඛ්යාලේඛන",
|
||||
"number_of_dns_query_days": "පසුගිය දින {{count}} සඳහා සැකසූ ව.නා.ප. විමසුම් ගණන",
|
||||
"number_of_dns_query_days_plural": "පසුගිය දින {{count}} සඳහා සැකසූ ව.නා.ප. විමසුම් ගණන",
|
||||
"number_of_dns_query_24_hours": "පසුගිය හෝරා 24 සඳහා සැකසූ ව.නා.ප. විමසුම් ගණන",
|
||||
"number_of_dns_query_blocked_24_hours": "දැන්වීම් වාරණ පෙරහන් සහ ධාරක වාරණ ලැයිස්තු මගින් අවහිර කරන ලද ව.නා.ප. ඉල්ලීම් ගණන",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "ඇඩ්ගාර්ඩ් පිරික්සුම් ආරක්ෂණ ඒකකය මගින් අවහිර කරන ලද ව.නා.ප. ඉල්ලීම් ගණන",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "අවහිර කළ වැඩිහිටි වියමන අඩවි ගණන",
|
||||
@@ -108,6 +116,7 @@
|
||||
"dhcp_settings": "ග.ධා.වි.කෙ. සැකසුම්",
|
||||
"upstream_dns": "Upstream ව.නා.ප. සේවාදායකයන්",
|
||||
"upstream_dns_help": "පේළියකට එක් සේවාදායක ලිපිනය බැගින් ඇතුළත් කරන්න. upstream ව.නා.ප. (DNS) \n සේවාදායකයන් වින්යාසගත කිරීම ගැන <a>තව දැනගන්න</a>.",
|
||||
"upstream_dns_configured_in_file": "{{path}} හි වින්යාසගත කර ඇත",
|
||||
"apply_btn": "යොදන්න",
|
||||
"disabled_filtering_toast": "පෙරීම අබල කර ඇත",
|
||||
"enabled_filtering_toast": "පෙරීම සබල කර ඇත",
|
||||
@@ -180,6 +189,7 @@
|
||||
"client_table_header": "අනුග්රාහකය",
|
||||
"empty_response_status": "හිස්",
|
||||
"show_all_filter_type": "සියල්ල පෙන්වන්න",
|
||||
"show_filtered_type": "පෙරූ දෑ පෙන්වන්න",
|
||||
"refresh_btn": "නැවුම් කරන්න",
|
||||
"previous_btn": "පෙර",
|
||||
"next_btn": "ඊළඟ",
|
||||
@@ -192,6 +202,7 @@
|
||||
"query_log_response_status": "තත්ත්වය: {{value}}",
|
||||
"query_log_filtered": "{{filter}} මගින් පෙරහන් කරන ලදි",
|
||||
"query_log_confirm_clear": "සම්පූර්ණ විමසුම් ලොගය ඉවත් කිරීමට අවශ්ය යැයි ඔබට විශ්වාසද?",
|
||||
"query_log_updated": "විමසුම් ලොගය සාර්ථකව යාවත්කාලීන කරන ලදි",
|
||||
"query_log_clear": "විමසුම් ලොග ඉවත් කරන්න",
|
||||
"query_log_retention": "විමසුම් ලොග රඳවා තබා ගැනීම",
|
||||
"query_log_enable": "ලොගය සබල කරන්න",
|
||||
@@ -212,6 +223,10 @@
|
||||
"custom_ip": "අභිරුචි අ.ජා. කෙ.",
|
||||
"blocking_ipv4": "අයි.පී.වී.4 අවහිර කිරීම\n",
|
||||
"blocking_ipv6": "අයි.පී.වී.6 අවහිර කිරීම",
|
||||
"client_id": "අනුග්රාහකයේ හැඳුනුම",
|
||||
"client_id_placeholder": "අනුග්රාහකයේ හැඳුනුම යොදන්න",
|
||||
"download_mobileconfig": "වින්යාසගත ගොනුව බාගන්න",
|
||||
"plain_dns": "සරල ව.නා.ප.",
|
||||
"form_enter_rate_limit": "අනුපාත සීමාව ඇතුළත් කරන්න",
|
||||
"rate_limit": "අනුපාත සීමාව",
|
||||
"edns_enable": "EDNS අනුග්රාහක අනුජාලය සබල කරන්න",
|
||||
@@ -227,6 +242,7 @@
|
||||
"source_label": "මූලාශ්රය",
|
||||
"found_in_known_domain_db": "දැනුවත් වසම් දත්ත ගබඩාවේ හමු විය.",
|
||||
"category_label": "ප්රවර්ගය",
|
||||
"rule_label": "නීති(ය)",
|
||||
"list_label": "ලැයිස්තුව",
|
||||
"unknown_filter": "{{filterId}} නොදන්නා පෙරහනකි",
|
||||
"known_tracker": "දැනුවත් ලුහුබැඳීමක්",
|
||||
@@ -236,7 +252,7 @@
|
||||
"install_settings_listen": "සවන් දෙන අතුරු මුහුණත",
|
||||
"install_settings_port": "කවුළුව",
|
||||
"install_settings_interface_link": "ඔබගේ ඇඩ්ගාර්ඩ් හෝම් පරිපාලක වියමන අතුරු මුහුණත පහත ලිපිනයන්ගෙන් ප්රවේශ විය හැකිය:",
|
||||
"form_error_port": "වලංගු කවුළුවක අගයක් ඇතුළත් කරන්න",
|
||||
"form_error_port": "වලංගු කවුළුවක අගයක් යොදන්න",
|
||||
"install_settings_dns": "ව.නා.ප. සේවාදායකය",
|
||||
"install_settings_dns_desc": "පහත ලිපිනයන්හි ව.නා.ප. සේවාදායකය භාවිතා කිරීම සඳහා ඔබගේ උපාංග හෝ මාර්ගකාරකය වින්යාසගත කිරීමට අවශ්ය වනු ඇත:",
|
||||
"install_settings_all_interfaces": "සියලුම අතුරුමුහුණත්",
|
||||
@@ -255,10 +271,9 @@
|
||||
"install_devices_router": "මාර්ගකාරකය",
|
||||
"install_devices_router_desc": "මෙම පිහිටුම ඔබගේ නිවසේ මාර්ගකාරකයට සම්බන්ධ සියලුම උපාංග ස්වයංක්රීයව ආවරණය කරන අතර ඔබට ඒවා අතින් වින්යාසගත කිරීමට අවශ්ය නොවනු ඇත.",
|
||||
"install_devices_address": "ඇඩ්ගාර්ඩ් හෝම් ව.නා.ප. සේවාදායකය පහත ලිපිනයන්ට සවන් දෙමින් පවතී",
|
||||
"install_devices_router_list_1": "ඔබේ මාර්ගකාරකය සඳහා වූ මනාපයන් විවෘත කරන්න. සාමාන්යයෙන්, එය ඔබගේ අතිරික්සුවෙන් ඒ.ස.නි.(URL) ක් හරහා (http://192.168.0.1/ හෝ http://192.168.1.1/ වැනි) පිවිසිය හැකිය. මුර පදය ඇතුළත් කිරීමට ඔබෙන් ඉල්ලා සිටිය හැකිය. ඔබට එය මතක නැතිනම්, බොහෝ විට මාර්ගකාරකයේ බොත්තමක් එබීමෙන් මුරපදය නැවත සැකසිය හැක. සමහර මාර්ගකාරක සඳහා විශේෂිත යෙදුමක් අවශ්ය වන අතර, එය දැනටමත් ඔබේ පරිගණකයේ/දුරකථනයේ ස්ථාපනය කර තිබිය යුතුය.",
|
||||
"install_devices_router_list_2": "ග.ධා.වි.කෙ. (DHCP)/ ව.නා.ප. (DNS) සැකසුම් සොයා ගන්න. ඉලක්කම් කට්ටල දෙකකට හෝ තුනකට ඉඩ දෙන ක්ෂේත්රයක් අසල ඇති ව.නා.ප. අක්ෂර සොයන්න, සෑම එකක්ම ඉලක්කම් එකේ සිට තුන දක්වා කාණ්ඩ හතරකට බෙදා ඇත.",
|
||||
"install_devices_router_list_3": "ඔබගේ ඇඩ්ගාර්ඩ් හෝම් සේවාදායක ලිපින එහි ඇතුළත් කරන්න.",
|
||||
"install_devices_router_list_4": "ඔබට සමහර වර්ගයේ මාර්ගකාරකය වල අභිරුචි ව.නා.ප. සේවාදායකයක් සැකසිය නොහැක. මෙම අවස්ථාවේදී ඇඩ්ගාර්ඩ් හෝම් <0>ග.ධා.වි.කෙ. සේවාදායකයක්</0> ලෙස පිහිටුවන්නේ නම් එය උපකාර වනු ඇත. එසේ නොමැතිනම්, ඔබගේ විශේෂිත මාර්ගකාරක මාදිළිය සඳහා වූ ව.නා.ප. සේවාදායකයන් රිසිකරණය කරන්නේ කෙසේද යන්න පිළිබඳ අත්පොත සෙවිය යුතුය.",
|
||||
"install_devices_router_list_4": "ඔබට සමහර වර්ගයේ මාර්ගකාරකය වල අභිරුචි ව.නා.ප. සේවාදායකයක් සැකසිය නොහැක. මෙම අවස්ථාවේදී ඇඩ්ගාර්ඩ් හෝම් <0>ග.ධා.වි.කෙ. සේවාදායකයක්</0> ලෙස පිහිටුවන්නේ නම් එය උපකාර වනු ඇත. එසේ නොමැතිනම්, ඔබගේ විශේෂිත මාර්ගකාරක මාදිළිය සඳහා වූ ව.නා.ප. සේවාදායකයන් රිසිකරණය කරන්නේ කෙසේද යන්න පිළිබඳ අත්පොත පරීක්ෂා කළ යුතුය.",
|
||||
"install_devices_windows_list_1": "ආරම්භක මෙනුව හෝ වින්ඩෝස් සෙවුම හරහා පාලක පැනලය විවෘත කරන්න.",
|
||||
"install_devices_windows_list_2": "ජාල සහ අන්තර්ජාල ප්රවර්ගයට ගොස් පසුව ජාල සහ බෙදාගැනීමේ මධ්යස්ථානය වෙත යන්න.",
|
||||
"install_devices_windows_list_3": "උපයුක්තකයෙහි සැකසුම් වෙනස් කිරීම තිරයේ වම් පසින් සොයාගෙන එය මත ක්ලික් කරන්න.",
|
||||
@@ -303,6 +318,8 @@
|
||||
"encryption_key_input": "ඔබගේ සහතිකය සඳහා PEM-කේතාංකනය කළ පුද්ගලික යතුර පිටපත් කර මෙහි අලවන්න.",
|
||||
"encryption_enable": "සංකේතාංකනය සබල කරන්න (HTTPS, DNS-over-HTTPS සහ DNS-over-TLS)",
|
||||
"encryption_enable_desc": "සංකේතාංකනය සබල කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් පරිපාලක අතුරුමුහුණත HTTPS හරහා ක්රියා කරනු ඇති අතර ව.නා.ප. සේවාදායකය DNS-over-HTTPS සහ DNS-over-TLS හරහා ලැබෙන ඉල්ලීම් සඳහා සවන් දෙනු ඇත.",
|
||||
"encryption_chain_valid": "සහතික දාමය වලංගු ය",
|
||||
"encryption_chain_invalid": "සහතික දාමය වලංගු නොවේ",
|
||||
"encryption_key_valid": "මෙය වලංගු {{type}} පුද්ගලික යතුරකි",
|
||||
"encryption_key_invalid": "මෙය වලංගු නොවන {{type}} පුද්ගලික යතුරකි",
|
||||
"encryption_subject": "මාතෘකාව",
|
||||
@@ -311,7 +328,7 @@
|
||||
"encryption_reset": "සංකේතාංකන සැකසුම් යළි පිහිටුවීමට අවශ්ය බව ඔබට විශ්වාස ද?",
|
||||
"topline_expiring_certificate": "ඔබගේ SSL සහතිකය කල් ඉකුත්වීමට ආසන්න වී ඇත. <0>සංකේතාංකන සැකසුම්</0> යාවත්කාල කරන්න.",
|
||||
"topline_expired_certificate": "ඔබගේ SSL සහතිකය කල් ඉකුත් වී ඇත. <0>සංකේතාංකන සැකසුම්</0> යාවත්කාල කරන්න.",
|
||||
"form_error_port_range": "80-65535 පරාසයෙහි කවුළුවක අගයක් ඇතුළත් කරන්න",
|
||||
"form_error_port_range": "80-65535 පරාසය හි කවුළුවක අගයක් ඇතුළත් කරන්න",
|
||||
"form_error_port_unsafe": "මෙය අනාරක්ෂිත කවුළුවකි",
|
||||
"form_error_equal": "සමාන නොවිය යුතුය",
|
||||
"form_error_password": "මුරපදය නොගැලපුුුුුුණි",
|
||||
@@ -340,6 +357,7 @@
|
||||
"client_identifier": "හඳුන්වනය",
|
||||
"ip_address": "අ.ජා. කෙ. (IP) ලිපිනය",
|
||||
"form_enter_ip": "අ.ජා. කෙ. (IP) ඇතුළත් කරන්න",
|
||||
"form_enter_subnet_ip": "\"{{cidr}}\" අනුජාලයෙහි අ.ජා. කෙ. ලිපිනයක් යොදන්න.",
|
||||
"form_enter_mac": "මා.ප්ර.පා. (MAC) ඇතුළත් කරන්න",
|
||||
"form_enter_id": "හඳුන්වනය ඇතුළත් කරන්න",
|
||||
"form_add_id": "හඳුන්වනයක් එක් කරන්න",
|
||||
@@ -349,13 +367,14 @@
|
||||
"client_deleted": "\"{{key}}\" අනුග්රාහකය සාර්ථකව ඉවත් කරන ලදි",
|
||||
"client_added": "\"{{key}}\" අනුග්රාහකය සාර්ථකව එකතු කරන ලදි",
|
||||
"client_updated": "\"{{key}}\" අනුග්රාහකය සාර්ථකව යාවත්කාල කරන ලදි",
|
||||
"clients_not_found": "අනුග්රාහකයින් හමු නොවිණි",
|
||||
"client_confirm_delete": "\"{{key}}\" අනුග්රාහකය ඉවත් කිරීමට අවශ්ය බව ඔබට විශ්වාසද?",
|
||||
"list_confirm_delete": "මෙම ලැයිස්තුව ඉවත් කිරීමට අවශ්ය බව ඔබට විශ්වාස ද?",
|
||||
"auto_clients_desc": "ඇඩ්ගාර්ඩ් හෝම් භාවිතා කරන අනුග්රාහකයන්ගේ දත්ත, නමුත් වින්යාසය තුළ ගබඩා කර නොමැති",
|
||||
"access_title": "ප්රවේශවීමට සැකසුම්",
|
||||
"access_desc": "මෙහිදී ඔබට ඇඩ්ගාර්ඩ් හෝම් ව.නා.ප. සේවාදායකය සඳහා ප්රවේශ වීමේ නීති වින්යාසගත කළ හැකිය.",
|
||||
"access_allowed_title": "අවසර ලත් අනුග්රාහකයන්",
|
||||
"access_allowed_desc": "CIDR හෝ අ.ජා. කෙ. ලිපින ලැයිස්තුවක් වින්යාසගත කර ඇත්නම්, AdGuard Home විසින් එම අ.ජා. කෙ. ලිපින වලින් පමණක් ඉල්ලීම් පිළිගනු ඇත.",
|
||||
"access_allowed_desc": "CIDR හෝ අ.ජා. කෙ. ලිපින ලැයිස්තුවක් වින්යාසගත කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් එම අ.ජා. කෙ. ලිපින වලින් පමණක් ඉල්ලීම් පිළිගනු ඇත.",
|
||||
"access_disallowed_title": "අවසර නොලත් අනුග්රාහකයන්",
|
||||
"access_disallowed_desc": "CIDR හෝ අ.ජා. කෙ. ලිපින ලැයිස්තුවක් වින්යාසගත කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් එම අ.ජා. කෙ. ලිපින වලින් ඉල්ලීම් අත්හරිනු ඇත.",
|
||||
"access_blocked_title": "අවහිර කළ වසම්",
|
||||
@@ -365,9 +384,12 @@
|
||||
"check_updates_now": "යාවත්කාල කිරීම සඳහා දැන් පරීක්ෂා කරන්න",
|
||||
"dns_privacy": "ව.නා.ප. රහස්යතා",
|
||||
"setup_dns_privacy_3": "<0>මෙහි ඔබට භාවිතා කළ හැකි මෘදුකාංග ලැයිස්තුවක් ඇත.</0>",
|
||||
"setup_dns_privacy_other_title": "වෙනත් ක්රියාවට නැංවූ දෑ",
|
||||
"setup_dns_privacy_other_2": "<0>ඩීඑන්එස්ප්රොක්සි</0> දන්නා සියලුම ආරක්ෂිත ව.නා.ප. කෙටුම්පත් සඳහා සහය දක්වයි.",
|
||||
"setup_dns_privacy_other_3": "<1>DNS-over-HTTPS</1> සඳහා <0>dnscrypt-පෙරකලාසිය</0> සහය දක්වයි.",
|
||||
"setup_dns_privacy_other_4": "<1>DNS-over-HTTPS</1> සඳහා <0>මොසිල්ලා ෆයර්ෆොක්ස්</0> සහය දක්වයි.",
|
||||
"setup_dns_privacy_other_5": "<0>මෙහි</0> සහ <1>මෙහි</1> තවත් ක්රියාවට නැංවූ දෑ ඔබට හමුවනු ඇත.",
|
||||
"setup_dns_privacy_ioc_mac": "අයිඕඑස් සහ මැක්ඕඑස් වින්යාසය",
|
||||
"setup_dns_notice": "ඔබට <1>DNS-over-HTTPS</1> හෝ <1>DNS-over-TLS</1> භාවිතා කිරීම සඳහා ඇඩ්ගාර්ඩ් හෝම් සැකසුම් තුළ <0>සංකේතාංකනය වින්යාසගත</0> කිරීමට අවශ්ය වේ.",
|
||||
"rewrite_added": "\"{{key}}\" සඳහා ව.නා.ප. නැවත ලිවීම සාර්ථකව එකතු කරන ලදි",
|
||||
"rewrite_add": "ව.නා.ප. නැවත ලිවීමක් එකතු කරන්න",
|
||||
@@ -444,8 +466,9 @@
|
||||
"disable_ipv6": "IPv6 අබල කරන්න",
|
||||
"disable_ipv6_desc": "මෙම අංගය සක්රීය කර ඇත්නම්, IPv6 ලිපින සඳහා වන සියලුම ව.නා.ප. විමසුම් (AAAA වර්ගය) අතහැර දමනු ලැබේ.",
|
||||
"fastest_addr": "වේගවත්ම අන්තර්ජාල කෙටුම්පත් (IP) ලිපිනය",
|
||||
"fastest_addr_desc": "සියලුම ව.නා.ප. සේවාදායකයන් හරහා විමසා සියලු ප්රතිචාර අතරින් වේගවත්ම අ.ජා. කෙ. ලිපිනය ලබා දෙයි. සියලුම ව.නා.ප. සේවාදායකයන්ගේ ප්රතිචාර සඳහා අප බලා සිටිය යුතු බැවින් මෙය ව.නා.ප. විමසුම් මන්දගාමී කරන නමුත් සමස්ත සම්බන්ධතාවය වැඩි දියුණු කරයි.",
|
||||
"fastest_addr_desc": "සියලුම ව.නා.ප. සේවාදායකයන්ගෙන් විමසා සියලු ප්රතිචාර අතරින් වේගවත්ම අ.ජා. කෙ. ලිපිනය ලබා දෙයි. සියලුම ව.නා.ප. සේවාදායකයන්ගේ ප්රතිචාර සඳහා ඇඩ්ගාර්ඩ් හෝම් රැඳී සිටිය යුතු බැවින් මෙය ව.නා.ප. විමසුම් මන්දගාමී කරන නමුත් සමස්ත සම්බන්ධතාවය වැඩි දියුණු කරයි.",
|
||||
"autofix_warning_text": "ඔබ \"නිරාකරණය කරන්න\" බොත්තම එබුවහොත්, ඔබගේ පද්ධතිය ඇඩ්ගාර්ඩ් හෝම් ව.නා.ප. සේවාදායකය භාවිතා කිරීමට වින්යාසගත කරනු ඇත.",
|
||||
"autofix_warning_result": "ප්රතිඵලයක් ලෙස ඔබගේ පද්ධතියෙන් ලැබෙන සියලුම ව.නා.ප. ඉල්ලීම් මූලිකවම ඇඩ්ගාර්ඩ් හෝම් විසින් සකසනු ඇත.",
|
||||
"tags_title": "හැඳුනුම් සංකේත",
|
||||
"tags_desc": "අනුග්රාහකයට අනුරූප වන හැඳුනුම් සංකේත ඔබට තෝරා ගත හැකිය. පෙරහන් නීති වලට හැඳුනුම් සංකේත ඇතුළත් කළ හැකි අතර ඒවා වඩාත් නිවැරදිව යෙදීමට ඔබට ඉඩ සලසයි. <0>වැඩිදුර ඉගෙන ගන්න</0>",
|
||||
"form_select_tags": "අනුග්රාහක හැඳුනුම් සංකේත",
|
||||
@@ -472,13 +495,14 @@
|
||||
"set_static_ip": "ස්ථිතික අ.ජා. කෙ. (IP) ලිපිනයක් සකසන්න",
|
||||
"install_static_ok": "සුභ තොරතුරක්! ස්ථිතික අන්තර්ජාල කෙටුම්පත් (IP) ලිපිනය දැනටමත් වින්යාසගත කර ඇත",
|
||||
"install_static_error": "මෙම ජාල අතුරුමුහුණත සඳහා ඇඩ්ගාර්ඩ් හෝම් හට එය ස්වයංක්රීයව වින්යාසගත කළ නොහැක. කරුණාකර මෙය අතින් කරන්නේ කෙසේද යන්න පිළිබඳ උපදෙස් සොයා ගන්න.",
|
||||
"install_static_configure": "ගතික අ.ජා. කෙ. (IP) ලිපිනයක් භාවිතා කරන බව අපි අනාවරණය කර ගෙන ඇත්තෙමු - <0>{{ip}}</0>. එය ඔබගේ ස්ථිතික ලිපිනය ලෙස භාවිතා කිරීමට අවශ්යද?",
|
||||
"install_static_configure": "ගතික අ.ජා. කෙ. (IP) ලිපිනයක් භාවිතා කරන බව ඇඩ්ගාර්ඩ් හෝම් හඳුනාගෙන ඇත - <0>{{ip}}</0>. එය ඔබගේ ස්ථිතික ලිපිනය ලෙස භාවිතා කිරීමට අවශ්යද?",
|
||||
"confirm_static_ip": "ඇඩ්ගාර්ඩ් හෝම් ඔබේ ස්ථිතික අ.ජා. කෙ. (IP) ලිපිනය ලෙස {{ip}} වින්යාසගත කරනු ඇත. ඔබට ඉදිරියට යාමට අවශ්යද?",
|
||||
"list_updated": "{{count}} ලැයිස්තුව යාවත්කාලීන කරන ලදි",
|
||||
"list_updated_plural": "ලැයිස්තු {{count}} ක් යාවත්කාලීන කරන ලදි",
|
||||
"all_queries": "සියලුම විමසුම්",
|
||||
"show_blocked_responses": "අවහිර කර ඇත",
|
||||
"show_whitelisted_responses": "සුදු ලැයිස්තුගත කර ඇත",
|
||||
"show_processed_responses": "සකසා ඇත",
|
||||
"blocked_safebrowsing": "ආරක්ෂිත සෙවීම මගින් අවහිර කරන ලද",
|
||||
"blocked_adult_websites": "අවහිර කළ වැඩිහිටි වියමන අඩවි",
|
||||
"blocked_threats": "අවහිර කළ තර්ජන",
|
||||
@@ -512,4 +536,4 @@
|
||||
"adg_will_drop_dns_queries": "ඇඩ්ගාර්ඩ් හෝම් විසින් මෙම අනුග්රාහකයේ සියලුම ව.නා.ප. විමසුම් අතහැර දමනු ඇත.",
|
||||
"client_not_in_allowed_clients": "\"අවසර ලත් අනුග්රාහකයින්\" ලැයිස්තුවේ නොමැති නිසා අනුග්රාහකයට අවසර නැත.",
|
||||
"experimental": "පරීක්ෂණාත්මක"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
"client_settings": "Nastavenie klienta",
|
||||
"example_upstream_reserved": "Môžete zadať DNS upstream <0>pre konkrétnu doménu (domény)</0>",
|
||||
"example_upstream_comment": "Môžete napísať komentár",
|
||||
"upstream_parallel": "Používať paralelné dopyty na zrýchlenie súčasným dopytovaním všetkých serverov",
|
||||
"upstream_parallel": "Používať paralelné dopyty na zrýchlenie súčasným dopytovaním všetkých upstream serverov súčasne.",
|
||||
"parallel_requests": "Paralelné dopyty",
|
||||
"load_balancing": "Vyrovnávanie záťaže",
|
||||
"load_balancing_desc": "Dopytujte jeden server súčasne. AdGuard Home použije na výber servera vážený náhodný algoritmus, aby sa najrýchlejší server používal častejšie.",
|
||||
"load_balancing_desc": "Dopytovať len jeden server v danom čase. AdGuard Home použije na výber servera vážený náhodný algoritmus, aby sa najrýchlejší server používal častejšie.",
|
||||
"bootstrap_dns": "Bootstrap DNS servery",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS servery sa používajú na rozlíšenie IP adries DoH/DoT rezolverov, ktoré zadáte ako upstreams.",
|
||||
"local_ptr_title": "Súkromné DNS servery",
|
||||
"local_ptr_desc": "DNS servery, ktoré AdGuard Home použije na dopyty na lokálne poskytované zdroje. Napríklad tento server sa použije na preklad názvov hostiteľov klientov pre klientov so súkromnými adresami IP. Ak nie je nastavené, AdGuard Home automaticky použije Váš predvolený DNS prekladač.",
|
||||
"local_ptr_placeholder": "Na každý riadok zadajte adresu jedného servera",
|
||||
"resolve_clients_title": "Povoliť spätný preklad IP adries klientov",
|
||||
"resolve_clients_desc": "Ak je povolené, AdGuard Home sa pokúsi automaticky rozlíšiť hostiteľské mená klientov z ich IP adries zaslaním dopytu PTR príslušnému rezolveru (súkromný DNS server pre miestnych klientov, upstream server pre zákazníkov s verejnou IP adresou).",
|
||||
"check_dhcp_servers": "Skontrolovať DHCP servery",
|
||||
"save_config": "Uložiť konfiguráciu",
|
||||
"enabled_dhcp": "DHCP server zapnutý",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "Ak Váš smerovač neposkytuje možnosť nastaviť DHCP, môžete použiť vlastný zabudovaný DHCP server AdGuard.",
|
||||
"dhcp_enable": "Zapnúť DHCP server",
|
||||
"dhcp_disable": "Vypnúť DHCP server",
|
||||
"dhcp_not_found": "Je bezpečné zapnúť vstavaný DHCP server - v sieti sme nenašli žiadne aktívne DHCP servery. Odporúčame Vám však, aby ste ho znova manuálne skontrolovali, pretože náš automatický test momentálne neposkytuje 100% záruku.",
|
||||
"dhcp_not_found": "Je bezpečné zapnúť vstavaný DHCP server - AdGuard Home v sieti nenašiel žiadne aktívne DHCP servery. Odporúčame Vám však, aby ste ho znova manuálne skontrolovali, pretože náš automatický test momentálne neposkytuje 100% záruku.",
|
||||
"dhcp_found": "V sieti bol nájdený aktívny DHCP server. Nie je bezpečné povoliť vstavaný DHCP server.",
|
||||
"dhcp_leases": "DHCP prenájom",
|
||||
"dhcp_static_leases": "DHCP statické prenájmy",
|
||||
"dhcp_leases_not_found": "Neboli nájdené žiadne DHCP prenájmy",
|
||||
"dhcp_config_saved": "Konfigurácia DHCP servera uložená",
|
||||
"dhcp_config_saved": "Konfigurácia DHCP servera bola úspešne uložená",
|
||||
"dhcp_ipv4_settings": "Nastavenia DHCP IPv4",
|
||||
"dhcp_ipv6_settings": "Nastavenia DHCP IPv6",
|
||||
"form_error_required": "Povinná položka",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Nesprávny MAC formát",
|
||||
"form_error_client_id_format": "Neplatný formát client ID",
|
||||
"form_error_server_name": "Neplatné meno servera",
|
||||
"form_error_subnet": "Podsieť \"{{cidr}}\" neobsahuje IP adresu \"{{ip}}\"",
|
||||
"form_error_positive": "Musí byť väčšie ako 0",
|
||||
"form_error_negative": "Musí byť číslo 0 alebo viac",
|
||||
"range_end_error": "Musí byť väčšie ako začiatok rozsahu",
|
||||
@@ -49,16 +55,16 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Meno hostiteľa",
|
||||
"dhcp_table_expires": "Vyprší",
|
||||
"dhcp_warning": "Ak chcete server DHCP napriek tomu povoliť, uistite sa, že v sieti nie je žiadny iný aktívny DHCP server. V opačnom prípade sa môže prerušiť internet pre už pripojené zariadenia!",
|
||||
"dhcp_error": "Nebolo možné určiť, či je v sieti iný DHCP server.",
|
||||
"dhcp_static_ip_error": "Aby bolo možné používať DHCP server, musí byť nastavená statická IP adresa. Nepodarilo sa určiť, či je toto sieťové rozhranie nakonfigurované pomocou statickej adresy IP. Nastavte statickú IP adresu manuálne.",
|
||||
"dhcp_dynamic_ip_found": "Váš systém používa dynamickú konfiguráciu IP adresy pre rozhranie <0{{interfaceName}}</0>. Aby bolo možné používať DHCP server, musí byť nastavená statická IP adresa. Vaša aktuálna adresa IP je <0>{{ipAddress}}</0>. Automaticky nastavíme túto IP adresu ako statickú, ak stlačíte tlačidlo Povoliť DHCP.",
|
||||
"dhcp_warning": "Ak chcete server DHCP napriek tomu zapnúť, uistite sa, že v sieti nie je žiadny iný aktívny DHCP server. V opačnom prípade sa môže prerušiť internet pre už pripojené zariadenia!",
|
||||
"dhcp_error": "AdGuard Home nevie určiť, či je v sieti iný aktívny DHCP server.",
|
||||
"dhcp_static_ip_error": "Aby bolo možné používať DHCP server, musí byť nastavená statická IP adresa. AdGuard Home nedokázal určiť, či je toto sieťové rozhranie nakonfigurované pomocou statickej adresy IP. Nastavte statickú IP adresu manuálne.",
|
||||
"dhcp_dynamic_ip_found": "Váš systém používa pre rozhranie <0>{{interfaceName}}</0> dynamickú konfiguráciu IP adresy. Aby bolo možné používať DHCP server, musí byť nastavená statická IP adresa. Vaša aktuálna IP adresa je <0>{{ipAddress}}</0>. ak Ak stlačíte tlačidlo \"Povoliť DHCP server\", AdGuard Home automaticky nastaví túto IP adresu ako statickú.",
|
||||
"dhcp_lease_added": "Statický \"{{key}}\" prenájmu bol úspešne pridaný",
|
||||
"dhcp_lease_deleted": "Statický \"{{key}}\" prenájmu bol úspešne vymazaný",
|
||||
"dhcp_new_static_lease": "Nový statický prenájom",
|
||||
"dhcp_static_leases_not_found": "Nebol nájdený žiadny statický DHCP prenájom",
|
||||
"dhcp_add_static_lease": "Pridať statický prenájom",
|
||||
"dhcp_reset": "Naozaj chcete obnoviť konfiguráciu DHCP?",
|
||||
"dhcp_reset": "Naozaj chcete vymazať DHCP konfiguráciu?",
|
||||
"country": "Krajina",
|
||||
"city": "Mesto",
|
||||
"delete_confirm": "Naozaj chcete vymazať \"{{key}}\"?",
|
||||
@@ -108,7 +114,7 @@
|
||||
"number_of_dns_query_days": "Počet DNS dopytov spracovaných za posledný {{count}} deň",
|
||||
"number_of_dns_query_days_plural": "Počet DNS dopytov spracovaných za posledných {{count}} dní",
|
||||
"number_of_dns_query_24_hours": "Počet DNS dopytov spracovaných za posledných 24 hodín",
|
||||
"number_of_dns_query_blocked_24_hours": "Počet DNS dopytov zablokovaných filtrami reklamy a zoznamami adries",
|
||||
"number_of_dns_query_blocked_24_hours": "Počet DNS dopytov zablokovaných filtrami reklamy a zoznamami blokovaných hostov",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Počet DNS dopytov zablokovaných AdGuard modulom Bezpečné prehliadanie",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Počet zablokovaných stránok pre dospelých",
|
||||
"enforced_save_search": "Vynútené bezpečné vyhľadávanie",
|
||||
@@ -122,7 +128,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 a Yandex.",
|
||||
"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, Yandex a Pixabay.",
|
||||
"no_servers_specified": "Neboli špecifikované žiadne servery",
|
||||
"general_settings": "Všeobecné nastavenia",
|
||||
"dns_settings": "Nastavenia DNS",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "Nastavenia šifrovania",
|
||||
"dhcp_settings": "Nastavenia DHCP",
|
||||
"upstream_dns": "Upstream DNS servery",
|
||||
"upstream_dns_help": "Zadajte adresy serverov jednu na riadok. <a>Získajte viac informácií</a> o konfigurácii DNS serverov na strane servera.",
|
||||
"upstream_dns_help": "Zadajte jednu adresu server na každý riadok. <a>Získajte viac informácií</a> o konfigurácii upstream DNS serverov.",
|
||||
"upstream_dns_configured_in_file": "Konfigurované v {{path}}",
|
||||
"test_upstream_btn": "Test upstreamov",
|
||||
"upstreams": "Upstreams",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Rýchlostný limit",
|
||||
"edns_enable": "Povoliť klientsku podsiete EDNS",
|
||||
"edns_cs_desc": "Ak je zapnuté, program AdGuard Home bude odosielať podsiete klientov na DNS servery.",
|
||||
"rate_limit_desc": "Počet požiadaviek za sekundu, ktoré môže jeden klient vykonať (nastavenie na hodnotu 0 znamená neobmedzene)",
|
||||
"rate_limit_desc": "Počet požiadaviek za sekundu, ktoré môže jeden klient vykonať. Nastavenie na hodnotu 0 znamená neobmedzene.",
|
||||
"blocking_ipv4_desc": "IP adresa, ktorá sa má vrátiť v prípade blokovanej žiadosti A",
|
||||
"blocking_ipv6_desc": "IP adresa, ktorá sa má vrátiť v prípade blokovanej žiadosti AAAA",
|
||||
"blocking_mode_default": "Predvolené: Odpovedať nulovou adresou IP (0,0.0.0 pre A; :: pre AAAA), keď je blokovaná pravidlom v štýle Adblock; odpovedať IP adresou uvedenou v pravidle, keď je blokovaná pravidlom v štýle /etc/hosts",
|
||||
@@ -276,6 +282,7 @@
|
||||
"source_label": "Zdroj",
|
||||
"found_in_known_domain_db": "Nájdené v databáze známych domén.",
|
||||
"category_label": "Kategória",
|
||||
"rule_label": "Pravidlo (pravidlá)",
|
||||
"list_label": "Zoznam",
|
||||
"unknown_filter": "Neznámy filter {{filterId}}",
|
||||
"known_tracker": "Známy sledovač",
|
||||
@@ -304,10 +311,10 @@
|
||||
"install_devices_router": "Smerovač",
|
||||
"install_devices_router_desc": "Toto nastavenie automaticky pokryje všetky zariadenia pripojené k Vášmu domácemu smerovaču a nebudete ich musieť konfigurovať manuálne.",
|
||||
"install_devices_address": "DNS server AdGuard Home používa nasledujúce adresy",
|
||||
"install_devices_router_list_1": "Otvorte predvoľby Vášho smerovača. Zvyčajne ho môžete získať z prehliadača prostredníctvom adresy URL (napríklad http://192.168.0.1/ alebo http://192.168.1.1/). Možno bude potrebné zadať heslo. Ak si to nepamätáte, heslo môžete často obnoviť stlačením tlačidla na samotnom smerovači. Niektoré smerovače vyžadujú konkrétnu aplikáciu, ktorá by v takom prípade mala byť už nainštalovaná na Vašom počítači alebo telefóne.",
|
||||
"install_devices_router_list_1": "Otvorte predvoľby Vášho smerovača. Zvyčajne ho môžete získať z Vášho prehliadača prostredníctvom URL adresy, ako napr. http://192.168.0.1/ alebo http://192.168.1.1/. Možno bude potrebné zadať heslo. Ak si ho nepamätáte, môžete často resetovať heslo stlačením tlačidla na samotnom smerovači, uvedomte si však, že ak sa zvolíte tento postup, pravdepodobne stratíte celú konfiguráciu smerovača. Ak Váš smerovač vyžaduje na nastavenie vlastnú aplikáciu, nainštalujte si ju do telefónu alebo počítača a použite ju na prístup k nastaveniam smerovača.",
|
||||
"install_devices_router_list_2": "Nájdite nastavenia DHCP/DNS. Hľadajte skratku DNS vedľa poľa, ktoré umožňuje vložiť dve alebo tri sady čísel, každé rozdelené do štyroch skupín s jedným až tromi číslicami.",
|
||||
"install_devices_router_list_3": "Zadajte tam adresy Vášho AdGuard Home servera.",
|
||||
"install_devices_router_list_4": "Na niektorých typoch smerovačov nemôžete nastaviť vlastný DNS server. V takom prípade môže pomôcť, ak nastavíte domovskú stránku AdGuard ako <0>DHCP server</0>. V opačnom prípade by ste mali vyhľadať príručku, ako prispôsobiť servery DNS konkrétnemu modelu smerovača.",
|
||||
"install_devices_router_list_4": "Na niektorých typoch smerovačov nemôžete nastaviť vlastný DNS server. V takom prípade môže pomôcť, ak nastavíte AdGuard Home ako <0>DHCP server</0>. V opačnom prípade by ste mali vyhľadať príručku, ako prispôsobiť DNS servery konkrétnemu modelu smerovača.",
|
||||
"install_devices_windows_list_1": "Otvorte panel Nastavenia cez menu Štart alebo vyhľadávanie Windows.",
|
||||
"install_devices_windows_list_2": "Prejdite do kategórie Sieť a internet a potom do Centra sietí a zdieľania.",
|
||||
"install_devices_windows_list_3": "Vyhľadajte položku Zmeniť možnosti adaptéra a kliknite na ňu",
|
||||
@@ -336,6 +343,7 @@
|
||||
"encryption_config_saved": "Konfigurácia šifrovania uložená",
|
||||
"encryption_server": "Meno servera",
|
||||
"encryption_server_enter": "Zadajte meno Vašej domény",
|
||||
"encryption_server_desc": "Ak chcete používať protokol HTTPS, musíte zadať názov servera, ktorý zodpovedá Vášmu certifikátu SSL alebo certifikátu so zástupnými znakmi. Ak pole nie je nastavené, bude akceptovať TLS pripojenia pre ľubovoľnú doménu.",
|
||||
"encryption_redirect": "Automaticky presmerovať na HTTPS",
|
||||
"encryption_redirect_desc": "Ak je táto možnosť začiarknutá, služba AdGuard Home Vás automaticky presmeruje z adresy HTTP na adresy HTTPS.",
|
||||
"encryption_https": "HTTPS port",
|
||||
@@ -365,7 +373,7 @@
|
||||
"topline_expired_certificate": "Váš SSL certifikát vypršal. Aktualizujte <0>Nastavenia šifrovania</0>.",
|
||||
"form_error_port_range": "Zadajte číslo portu v rozsahu 80-65535",
|
||||
"form_error_port_unsafe": "Toto nie je bezpečný port",
|
||||
"form_error_equal": "Nemala by byť rovnaká",
|
||||
"form_error_equal": "Nesmie byť rovnaká",
|
||||
"form_error_password": "Heslo sa nezhoduje",
|
||||
"reset_settings": "Obnoviť nastavenia",
|
||||
"update_announcement": "AdGuard Home {{version}} je teraz k dispozícii! <0>Viac informácií nájdete tu</0>.",
|
||||
@@ -391,7 +399,9 @@
|
||||
"client_edit": "Upraviť klienta",
|
||||
"client_identifier": "Identifikátor",
|
||||
"ip_address": "IP adresa",
|
||||
"client_identifier_desc": "Klientov je možné identifikovať podľa IP adresy, CIDR a MAC adresy alebo špeciálneho ID klienta (možno použiť pre DoT/DoH/DoQ). <0>Tu</0> sa dozviete viac o tom, ako identifikovať klientov.",
|
||||
"form_enter_ip": "Zadajte IP adresu",
|
||||
"form_enter_subnet_ip": "Zadajte IP adresu do podsiete \"{{cidr}}\"",
|
||||
"form_enter_mac": "Zadajte MAC adresu",
|
||||
"form_enter_id": "Zadajte identifikátor",
|
||||
"form_add_id": "Pridajte identifikátor",
|
||||
@@ -413,7 +423,7 @@
|
||||
"access_disallowed_title": "Nepovolení klienti",
|
||||
"access_disallowed_desc": "Zoznam CIDR alebo IP adries. Ak je nakonfigurovaný, AdGuard Home bude ignorovať dopyty z týchto IP adries",
|
||||
"access_blocked_title": "Nepovolené domény",
|
||||
"access_blocked_desc": "Nezamieňajte si to s filtrami. Domovská stránka AdGuard zruší DNS dopyty obsahujúce tieto domény. Tu môžete zadať presné názvy domén, zástupné znaky a pravidlá URL adries, napr. 'example.org', '*.example.org' alebo '|| example.org ^'.",
|
||||
"access_blocked_desc": "Nezamieňajte si to s filtrami. AdGuard Home zruší DNS dopyty obsahujúce tieto domény. Tu môžete zadať presné názvy domén, zástupné znaky a pravidlá filtrácie URL adries, napr. 'example.org', '*.example.org' alebo '|| example.org ^'.",
|
||||
"access_settings_saved": "Nastavenia prístupu úspešne uložené",
|
||||
"updates_checked": "Aktualizácie úspešne skontrolované",
|
||||
"updates_version_equal": "AdGuard Home je aktuálny",
|
||||
@@ -516,7 +526,7 @@
|
||||
"disable_ipv6": "Vypnúť IPv6",
|
||||
"disable_ipv6_desc": "Ak je táto funkcia zapnutá, všetky dotazy DNS na adresy IPv6 (typ AAAA) budú zrušené.",
|
||||
"fastest_addr": "Najrýchlejšia IP adresa",
|
||||
"fastest_addr_desc": "Dopytovať všetky servery DNS a vrátiť najrýchlejšiu IP adresu zo všetkých odpovedí. Toto spomalí dotazy DNS, pretože musíme čakať na odpovede zo všetkých serverov DNS, ale zlepší sa celkové pripojenie.",
|
||||
"fastest_addr_desc": "Dopytovať všetky servery DNS a vrátiť najrýchlejšiu IP adresu zo všetkých odpovedí. Toto spomalí DNS dopyty, pretože AdGuard Home musí čakať na odpovede zo všetkých serverov DNS, ale zlepší sa celkové pripojenie.",
|
||||
"autofix_warning_text": "Ak kliknete na „Opraviť“, AdGuardHome nakonfiguruje Váš systém tak, aby používal DNS server AdGuardHome.",
|
||||
"autofix_warning_list": "Bude vykonávať tieto úlohy: <0>Deaktivovať systém DNSStubListener</0> <0>Nastaviť adresu servera DNS na 127.0.0.1</0> <0>Nahradiť cieľový symbolický odkaz /etc/resolv.conf na /run/systemd/resolve/resolv.conf</0> <0>Zastaviť službu DNSStubListener (znova načítať službu systemd-resolved)</0>",
|
||||
"autofix_warning_result": "Výsledkom bude, že všetky DNS dopyty z Vášho systému budú štandardne spracované službou AdGuard Home.",
|
||||
@@ -546,7 +556,7 @@
|
||||
"set_static_ip": "Nastaviť statickú IP adresu",
|
||||
"install_static_ok": "Dobré správy! Statická IP adresa je už nakonfigurovaná",
|
||||
"install_static_error": "AdGuard Home ho nemôže automaticky nakonfigurovať pre toto sieťové rozhranie. Vyhľadajte návod, ako to urobiť manuálne.",
|
||||
"install_static_configure": "Zistili sme, že sa používa dynamická IP adresa — <0>{{ip}}</0>. Chcete ju použiť ako svoju statickú adresu?",
|
||||
"install_static_configure": "AdGuard Home zistil, že sa používa dynamická IP adresa <0>{{ip}}</0>. Chcete ju použiť ako svoju statickú adresu?",
|
||||
"confirm_static_ip": "AdGuard Home nakonfiguruje {{ip}} ako statickú IP adresu. Chcete pokračovať?",
|
||||
"list_updated": "{{count}} zoznam aktualizovaný",
|
||||
"list_updated_plural": "{{count}} zoznamov aktualizovaných",
|
||||
@@ -591,4 +601,4 @@
|
||||
"adg_will_drop_dns_queries": "AdGuard Home zruší všetky DNS dopyty od tohto klienta.",
|
||||
"client_not_in_allowed_clients": "Klient nemá povolenie, pretože sa nenachádza v zozname „Povolení klienti“.",
|
||||
"experimental": "Experimentálne"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
{
|
||||
"client_settings": "Nastavitve odjemalca",
|
||||
"example_upstream_reserved": "lahko določite nazgornji DNS <0>za določene domene</0>",
|
||||
"example_upstream_reserved": "Lahko določite gorvodni DNS <0>za določene domene</0>",
|
||||
"example_upstream_comment": "Lahko določite komentar",
|
||||
"upstream_parallel": "Uporabite vzporedne zahteve za pospešitev reševanja s hkratnim poizvedovanjem vseh gorvodnih strežnikov",
|
||||
"upstream_parallel": "Uporabite vzporedne zahteve za pospešitev reševanja s hkratnim poizvedovanjem vseh gorvodnih strežnikov.",
|
||||
"parallel_requests": "Vzporedne zahteve",
|
||||
"load_balancing": "Uravnavanje obremenitve",
|
||||
"load_balancing_desc": "Poizvedujte po en strežnik. AdGuard Home bo uporabil uteženi naključni algoritem za izbiro strežnika, tako da bo najhitrejši strežnik uporabljen pogosteje.",
|
||||
"load_balancing_desc": "Poizvedujte po enem gorvodnem strežniku. AdGuard Home bo uporabil tehtani naključni algoritem za izbiro strežnika, tako da bo najhitrejši strežnik pogosteje uporabljen.",
|
||||
"bootstrap_dns": "Zagonski DNS strežniki",
|
||||
"bootstrap_dns_desc": "Zagonski DNS strežniki se uporabljajo za razreševanje IP naslovov DoH/DoT reševalcev, ki jih določite kot navzgornje.",
|
||||
"local_ptr_title": "Zasebni strežniki DNS",
|
||||
"local_ptr_desc": "Strežniki DNS, ki jih AdGuard Home uporablja za lokalne poizvedbe PTR. Ti strežniki se uporabljajo za razreševanje imen gostiteljev z zasebnimi naslovi IP, na primer \"192.168.12.34\" uporablja rDNS. Če ni nastavljen, AdGuard Home uporablja privzete rešitve DNS vašega OS.",
|
||||
"local_ptr_placeholder": "V vrstico vnesite en naslov strežnika",
|
||||
"resolve_clients_title": "Omogoči obratno reševanje naslovov IP gostiteljev",
|
||||
"resolve_clients_desc": "Če je omogočeno, bo AdGuard Home poskušal samodejno razrešiti gostiteljska imena odjemalcev iz njihovih naslovov IP tako, da pošlje poizvedbo PTR ustreznemu razreševalniku (zasebni strežniki DNS za lokalne odjemalce, gorvodni strežnik za odjemalce z javnimi naslovi IP).",
|
||||
"check_dhcp_servers": "Preveri strežnike DHCP",
|
||||
"save_config": "Shrani konfiguracijo",
|
||||
"save_config": "Shrani nastavitve",
|
||||
"enabled_dhcp": "Strežnik DHCP je omogočen",
|
||||
"disabled_dhcp": "Strežnik DHCP je onemogočen",
|
||||
"unavailable_dhcp": "DHCP ni na voljo",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "Če vaš usmerjevalnik ne nudi nastavitev DHCP, lahko uporabite AdGuardov vgrajen DHCP strežnik.",
|
||||
"dhcp_enable": "Omogoči strežnik DHCP",
|
||||
"dhcp_disable": "Onemogoči strežnik DHCP",
|
||||
"dhcp_not_found": "Vgrajeni DHCP strežnik lahko varno vklopite - v omrežju nismo našli nobenih aktivnih strežnikov DHCP. Priporočamo, da ga znova ročno preverite, saj samodejni preizkus trenutno ne zagotavlja 100% garancije.",
|
||||
"dhcp_not_found": "Varno je omogočiti vgrajeni strežnik DHCP, ker AdGuard Home v omrežju ni našel nobenega aktivnega strežnika DHCP. Vendar morate to ponovno preveriti ročno, saj samodejno sondiranje trenutno ne zagotavlja 100-odstotnega jamstva.",
|
||||
"dhcp_found": "V omrežju je bil najden aktivni DHCP strežnik. Vgrajenega AdGuardovega DHCP strežnika ni varno vključiti.",
|
||||
"dhcp_leases": "Najemi DHCP",
|
||||
"dhcp_static_leases": "DHCP statični najemi",
|
||||
"dhcp_leases_not_found": "Ni najdenih najemov DHCP",
|
||||
"dhcp_config_saved": "Shranjena konfiguracija DHCP strežnika",
|
||||
"dhcp_config_saved": "Nastavitve DHCP so bile uspešno shranjena",
|
||||
"dhcp_ipv4_settings": "Nastavitve DHCP IPv4",
|
||||
"dhcp_ipv6_settings": "Nastavitve DHCP IPv6",
|
||||
"form_error_required": "Zahtevano polje",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Neveljaven MAC format",
|
||||
"form_error_client_id_format": "Neveljaven format ID odjemalca",
|
||||
"form_error_server_name": "Neveljavno ime strežnika",
|
||||
"form_error_subnet": "Podomrežje \"{{cidr}}\" ne vsebuje naslova IP \"{{ip}}\"",
|
||||
"form_error_positive": "Mora biti večja od 0",
|
||||
"form_error_negative": "Mora biti enako ali več kot 0",
|
||||
"range_end_error": "Mora biti večji od začtka razpona",
|
||||
@@ -49,16 +55,16 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Ime gostitelja",
|
||||
"dhcp_table_expires": "Poteče",
|
||||
"dhcp_warning": "Če želite omogočiti DHCP strežnik, prepričajte se, da v vašem omrežju ni drugega aktivnega strežnika DHCP. V nasprotnem primeru lahko ta prekine internet za povezane naprave!",
|
||||
"dhcp_error": "Ni mogoče ugotoviti, ali je v omrežju še en strežnik DHCP.",
|
||||
"dhcp_static_ip_error": "Za uporabo strežnika DHCP, morate nastaviti statični naslov IP. Ni bilo mogoče ugotoviti, ali je ta omrežni vmesnik konfiguriran s statičnim naslovom IP. Ročno nastavite statični naslov IP.",
|
||||
"dhcp_dynamic_ip_found": "Vaš sistem uporablja dinamično konfiguracijo IP-naslova za vmesnik <0>{{interfaceName}}</0>. Za uporabo DHCP strežnika mora biti nastavljen statični naslov IP. Vaš trenutni naslov IP je <0>{{ipAddress}}</0>. Ta IP naslov bomo samodejno nastavili kot statični, če pritisnete na gumb 'Omogoči DHCP'.",
|
||||
"dhcp_warning": "Če želite vseeno omogočiti strežnik DHCP, se prepričajte, da v vašem omrežju ni nobenega drugega aktivnega strežnika DHCP, saj lahko to prekine internetno povezljivost naprav v omrežju!",
|
||||
"dhcp_error": "AdGuard Home ni mogel ugotoviti, ali je v omrežju še en aktivni strežnik DHCP.",
|
||||
"dhcp_static_ip_error": "Za uporabo strežnika DHCP mora biti nastavljen statični naslov IP. AdGuard Home ni uspel ugotoviti, ali je ta omrežni vmesnik nastavljen s statičnim naslovom IP. Prosimo, nastavite statični naslov IP ročno.",
|
||||
"dhcp_dynamic_ip_found": "Vaš sistem uporablja dinamično nastavitev naslova IP kartice <0>{{interfaceName}}</0>. Za uporabo strežnika DHCP morate nastaviti statični naslov IP. Vaš trenutni naslov IP je<0>{{ipAddress}}</0>. AdGuard Home bo samodejno nastavil ta naslov IP kot statičen, če pritisnete gumb 'Omogoči strežnik DHCP'.",
|
||||
"dhcp_lease_added": "Statičen najem \"{{key}}\" je uspešno dodan",
|
||||
"dhcp_lease_deleted": "Statičen najem \"{{key}}\" je uspešno izbrisan",
|
||||
"dhcp_new_static_lease": "Nov statični najem",
|
||||
"dhcp_static_leases_not_found": "Ni najdenih statičnih najemov DHCP",
|
||||
"dhcp_add_static_lease": "Dodaj statičen najem",
|
||||
"dhcp_reset": "Ali ste prepričani, da želite ponastaviti konfiguracijo DHCP?",
|
||||
"dhcp_reset": "Ali ste prepričani, da želite ponastaviti nastavitve DHCP?",
|
||||
"country": "Dežela",
|
||||
"city": "Mesto",
|
||||
"delete_confirm": "Ali ste prepričani, da želite izbrisati \"{{key}}\"?",
|
||||
@@ -105,14 +111,14 @@
|
||||
"top_clients": "Najpogostejši odjemalci",
|
||||
"no_clients_found": "Ni najdenih odjemalcev",
|
||||
"general_statistics": "Splošna statistika",
|
||||
"number_of_dns_query_days": "Število poizvedb DNS, obdelanih zadnji {{count}} dan",
|
||||
"number_of_dns_query_days_plural": "Število poizvedb DNS, obdelanih zadnjih {{count}} dni",
|
||||
"number_of_dns_query_24_hours": "Število opravljenih DNS poizvedb v zadnjih 24 urah",
|
||||
"number_of_dns_query_blocked_24_hours": "Število onemogočenih zahtev DNS s filtri oglasov, in seznami zaviranja gostiteljev",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Število onemogočenih zahtev DNS z AdGuardovim modulom varnosti brskanja",
|
||||
"number_of_dns_query_days": "Število obdelanih poizvedb DNS v zadnjem {{count}} dnevu",
|
||||
"number_of_dns_query_days_plural": "Število obdelanih poizvedb DNS v zadnjih {{count}} dneh",
|
||||
"number_of_dns_query_24_hours": "Število obdelanih poizvedb DNS v zadnjih 24 urah",
|
||||
"number_of_dns_query_blocked_24_hours": "Število zahtev DNS, ki so jih onemogočili filtri za zaviranje oglasov in seznami nedovoljenih, gostiteljev",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Število zahtev DNS, ki jih je blokiral AdGuard zaščitni modul brskanja",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Število onemogočenih spletnih strani za odrasle",
|
||||
"enforced_save_search": "Prisilno varno iskanje",
|
||||
"number_of_dns_query_to_safe_search": "Število zahtev DNS za iskalnike, ki jim je bilo vsiljeno varno iskanje",
|
||||
"number_of_dns_query_to_safe_search": "Število zahtev DNS za iskalnike, za katere je bilo uveljavljeno varno iskanje",
|
||||
"average_processing_time": "Povprečni čas obdelave",
|
||||
"average_processing_time_hint": "Povprečni čas v milisekundah pri obdelavi zahteve DNS",
|
||||
"block_domain_use_filters_and_hosts": "Onemogoči domene s filtri in gostiteljskimi datotekami",
|
||||
@@ -122,7 +128,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.",
|
||||
"enforce_save_search_hint": "AdGuard Home lahko prisili 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",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Omejitev hitrosti",
|
||||
"edns_enable": "Omogoči podmrežje odjemalcev EDNS",
|
||||
"edns_cs_desc": "Če je omogočeno, bo AdGuard Home pošiljal podmrežja odjemalca na strežnike DNS.",
|
||||
"rate_limit_desc": "Število zahtev na sekundo, ki jih sme narediti posamezen odjemalec (nastavitev na 0 pomeni neomejeno)",
|
||||
"rate_limit_desc": "Dovoljeno število zahtev na sekundo na odjemalca. Nastavitev na 0 pomeni brez omejitve.",
|
||||
"blocking_ipv4_desc": "IP naslov, ki mora biti vrnjen za onemogočeno zahtevo A",
|
||||
"blocking_ipv6_desc": "IP naslov, ki mora biti vrnjen za onemogočeno zahtevo AAAA",
|
||||
"blocking_mode_default": "Privzeto: odgovori z ničelnim naslovom IP (0.0.0.0 za A; :: za AAAA), ko je onemogočen s pravilom v slogu Adblocka; odgovor z naslovom IP, določenim v pravilu, ko je onemogočen s pravilom /etc/hosts",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Poslušaj vmesnik",
|
||||
"install_settings_port": "Vrata",
|
||||
"install_settings_interface_link": "Vaš AdGuard Home Skrbniški spletni vmesnik bo na voljo na naslednjih naslovih:",
|
||||
"form_error_port": "Vnesite veljavno vrednost vrat",
|
||||
"form_error_port": "Vnesite veljavno številko vrat",
|
||||
"install_settings_dns": "DNS strežnik",
|
||||
"install_settings_dns_desc": "Vaše naprave ali usmerjevalnik boste morali konfigurirati za uporabo strežnika DNS na naslednjih naslovih:",
|
||||
"install_settings_all_interfaces": "Vsi vmesniki",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Usmerjevalnik",
|
||||
"install_devices_router_desc": "Ta namestitev bo samodejno pokrila vse naprave, povezane z domačim usmerjevalnikom, zato vam jih ni treba ročno konfigurirati.",
|
||||
"install_devices_address": "AdGuard Home strežnik DNS posluša naslednje naslove",
|
||||
"install_devices_router_list_1": "Odprite nastavitve usmerjevalnika. Ponavadi lahko do nje dostopate iz brskalnika prek URL-ja (npr. http://192.168.0.1/ ali http://192.168.1.1/). Morda boste morali vnesti geslo. Če se ne spomnite gesla, lahko pogosto ponastavite geslo s pritiskom na gumb na samem usmerjevalniku. Nekateri usmerjevalniki zahtevajo posebno aplikacijo, ki bi morala biti v tem primeru že nameščena na vašem računalniku/telefonu.",
|
||||
"install_devices_router_list_1": "Odprite nastavitve vašega usmerjevalnika. Običajno lahko imate dostop do njega iz brskalnika prek URL naslova, kot je http://192.168.0.1/ ali http://192.168.1.1/. Morda boste pozvani, da vnesete geslo. Če se tega ne spomnite, lahko geslo pogosto ponastavite s pritiskom na gumb na samem usmerjevalniku, vendar se zavedajte, da če izberete ta postopek, boste verjetno izgubili celotne nastavitve usmerjevalnika. Nekateri usmerjevalniki zahtevajo posebno aplikacijo, ki mora v tem primeru biti že nameščena v vašem računalniku ali telefonu.",
|
||||
"install_devices_router_list_2": "Poiščite nastavitve DHCP/DNS. Poiščite črke DNS poleg polja, ki dovoljuje dva ali tri naborov številk, pri čemer je vsaka razdeljena na štiri skupine z enim do tremi števili.",
|
||||
"install_devices_router_list_3": "Tam vnesite svoje naslove strežnikov AdGuard Home.",
|
||||
"install_devices_router_list_4": "Na nekaterih vrstah usmerjevalnikov ne morete nastaviti strežnika DNS po meri. V tem primeru bo morda pomagalo, če boste AdGuard Home postavili kot <0>strežnik DHCP</0>. V nasprotnem primeru poiščite priročnik, kako prilagoditi strežnike DNS za vaš določen model usmerjevalnika.",
|
||||
"install_devices_router_list_4": "Pri nekaterih vrstah usmerjevalnikov strežnika DNS po meri ni mogoče nastaviti. V tem primeru vam lahko pomaga nastavitev AdGuard Home kot <0>strežnika DHCP</0>. V nasprotnem primeru bi morali v priročniku usmerjevalnika preveriti, kako prilagodite strežnike DNS na vašem določenem modelu usmerjevalnika.",
|
||||
"install_devices_windows_list_1": "Odprite 'Nadzorno ploščo' prek menija 'Začetek' ali 'Iskanja v sistemu Windows'.",
|
||||
"install_devices_windows_list_2": "Pojdite v 'Omrežje' in 'Kategorija interneta' in nato v 'Omrežje' in 'Središče za skupno rabo'.",
|
||||
"install_devices_windows_list_3": "Na levi strani zaslona poiščite 'Spremeni nastavitve kartice' in kliknite nanjo.",
|
||||
@@ -334,7 +340,7 @@
|
||||
"install_saved": "Shranjeno uspešno",
|
||||
"encryption_title": "Šifriranje",
|
||||
"encryption_desc": "Podpora za šifriranje (HTTPS/TLS) za DNS in skrbniški spletni vmesnik",
|
||||
"encryption_config_saved": "Konfiguracija šifriranja je shranjena",
|
||||
"encryption_config_saved": "Nastavitve šifriranja so shranjene",
|
||||
"encryption_server": "Ime strežnika",
|
||||
"encryption_server_enter": "Vnesite ime vaše domene",
|
||||
"encryption_server_desc": "Za uporabo HTTPS morate vnesti ime strežnika, ki se ujema z vašim digitalnim certifikatom SSL.\n",
|
||||
@@ -367,7 +373,7 @@
|
||||
"topline_expired_certificate": "Vaše digitalno potrdilo SSL je poteklo. Posodobi <0>Nastavitve šifriranja</0>.",
|
||||
"form_error_port_range": "Vnesite vrednost vrat v razponu med 80-65535",
|
||||
"form_error_port_unsafe": "To so nevarna vrata",
|
||||
"form_error_equal": "Ne bi smelo biti enako",
|
||||
"form_error_equal": "Ne sme biti enako",
|
||||
"form_error_password": "Geslo se ne ujema",
|
||||
"reset_settings": "Ponastavi nastavitve",
|
||||
"update_announcement": "Zdaj je na voljo AdGuard Home {{version}}! <0>Klinite tukaj</0> za več informacij.",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP naslov",
|
||||
"client_identifier_desc": "Odjemalce je mogoče prepoznati po naslovu IP, CIDR, naslovu MAC ali posebnem ID-ju odjemalca (lahko se uporablja za DoT/DoH/DoQ). <0>Tukaj</0> lahko izveste več o prepoznavanju odjemalcev.",
|
||||
"form_enter_ip": "Vnesite IP",
|
||||
"form_enter_subnet_ip": "V podomrežje \"{{cidr}}\" vnesite naslov IP",
|
||||
"form_enter_mac": "Vnesite MAC",
|
||||
"form_enter_id": "Vnesi identifikatorja",
|
||||
"form_add_id": "Dodaj identifikatorja",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "Zavrnjeni odjemalci",
|
||||
"access_disallowed_desc": "Seznam naslovov CIDR ali IP. Če je konfiguriran, bo AdGuard Home spustil zahteve iz teh IP naslovov.",
|
||||
"access_blocked_title": "Prepovedane domene",
|
||||
"access_blocked_desc": "Tega ne zamenjujte s filtri. AdGuard Home bo v spustil poizvedbe DNS s temi domenami v vprašanju poizvedbe. Tu lahko določite natančna imena domen, nadomestne znake in pravila urlfilter, npr. 'primer.org', '*.primer.org' or '||primer.org^'.",
|
||||
"access_blocked_desc": "Ne mešajte tega s filtri. AdGuard Home bo v vprašanjih o zahtevah spuščal zahteve DNS s temi domenami. Tu lahko določite natančna imena domen, nadomestne znake in pravila filtriranja URL-jev, npr. 'primer.org', '*.primer.org' ali '||primer.org^'.",
|
||||
"access_settings_saved": "Nastavitve dostopa so uspešno shranjene",
|
||||
"updates_checked": "Posodobitve so uspešno preverjene",
|
||||
"updates_version_equal": "AdGuard Home je posodobljen",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "Onemogoči IPv6",
|
||||
"disable_ipv6_desc": "Če je ta funkcija omogočena, bodo vse poizvedbe DNS za naslove IPv6 (vrste AAAA) izpadle.",
|
||||
"fastest_addr": "Najhitrejši IP naslov",
|
||||
"fastest_addr_desc": "Poizve vse strežnike DNS in vrne najhitrejši IP naslov med vsemi odgovori. To bo upočasnilo poizvedbe DNS, saj moramo čakati na odgovore vseh DNS strežnikov, vendar bo izboljšalo splošno povezljivost.",
|
||||
"fastest_addr_desc": "Zahtevajte vse strežnike DNS in vrne najhitrejši naslov IP med vsemi odgovori. To upočasni zahteve DNS, saj mora AdGuard Home čakati na odgovore vseh strežnikov DNS, vendar izboljša splošno povezljivost.",
|
||||
"autofix_warning_text": "Če kliknete 'Popravi', bo AdGuardHome konfiguriral vaš sistem za uporabo strežnika AdGuardHome DNS.",
|
||||
"autofix_warning_list": "To bo izvedlo naslednja opravila: <0>Deaktiviraj sistemski DNSStubListener</0> <0>Nastavi naslov strežnika DNS na 127.0.0.1</0> <0>Zamenjaj cilj simbolične povezave /etc/resolv.conf with /run/systemd/resolve/resolv.conf</0> <0>Zaustavi DNSStubListener (znova naloži storitev systemd-resolved)",
|
||||
"autofix_warning_result": "Kot rezultat, bo vse zahteve DNS iz vašega sistema privzeto obdelal AdGuard Home.",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "Nastavi statičen IP naslov",
|
||||
"install_static_ok": "Dobra novica! Statičen IP naslov je že konfiguriran",
|
||||
"install_static_error": "AdGuard Home tega omrežnega vmesnika ne more samodejno konfigurirati. Poiščite navodila, kako to storiti ročno.",
|
||||
"install_static_configure": "Zaznali smo, da je uporabljen dinamičen IP naslov — <0>{{ip}}</0>. Ali ga želite uporabiti kot svoj statičen naslov?",
|
||||
"install_static_configure": "AdGuard Home je zaznal, da se uporablja dinamični naslov IP <0>{{ip}}</0>. Ali želite, da je nastavljen kot vaš statični naslov?",
|
||||
"confirm_static_ip": "AdGuard Home bo konfiguriral {{ip}}, da bo postal vas statičen IP naslov. Ali želite nadaljevati?",
|
||||
"list_updated": "{{count}} posodobljen seznam",
|
||||
"list_updated_plural": "{{count}} posodobljenih seznamov",
|
||||
@@ -587,11 +594,11 @@
|
||||
"filter_category_security_desc": "Seznami, ki so specializirani za onemogočanje domen zlonamernih programov, lažnega predstavljanja ali prevar",
|
||||
"filter_category_regional_desc": "Seznami, ki so osredotočeni na področne oglase in strežnike za sledenje",
|
||||
"filter_category_other_desc": "Drugi seznami za zaviranje",
|
||||
"setup_config_to_enable_dhcp_server": "Nastavitve za omogočanje strežnika DHCP",
|
||||
"setup_config_to_enable_dhcp_server": "Nastavite nastavitve, da omogočite strežnik DHCP",
|
||||
"original_response": "Izviren odgovor",
|
||||
"click_to_view_queries": "Kliknite za prikaz poizvedb",
|
||||
"port_53_faq_link": "Vrata 53 pogosto zasedajo storitve 'DNSStubListener' ali 'Sistemsko razrešene storitve'. Preberite <0>to navodilo</0> o tem, kako to rešiti.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home bo izpustil vse poizvedbe DNS iz tega odjemalca.",
|
||||
"client_not_in_allowed_clients": "Odjemalec ni dovoljen, ker ga ni na seznamu \"Dovoljeni odjemalci\".",
|
||||
"experimental": "Eksperimentalno"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
{
|
||||
"client_settings": "Postavke klijenta",
|
||||
"example_upstream_reserved": "možete odrediti DNS upstream <0>za određene domene</0>",
|
||||
"example_upstream_comment": "Možete upisati komentar",
|
||||
"upstream_parallel": "Koristite paralelne zahteve da ubrzate rešavanje istovremenim zahtevanjem svih servera",
|
||||
"parallel_requests": "Paralelni zahtevi",
|
||||
"load_balancing": "Load-balancing",
|
||||
"load_balancing_desc": "Koristi jedan server. AdGuard Home će koristiti najnoviji nasumični algoritam da izabere server tako da će najbrži server biti češće korišćen.",
|
||||
"bootstrap_dns": "Bootstrap DNS serveri",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS serveri se koriste da reše IP adrese od DoH/DoT razrešivača koje ste odredili kao upstream.",
|
||||
"check_dhcp_servers": "Proveri DHCP servere",
|
||||
"save_config": "Sačuvaj konfiguraciju",
|
||||
"enabled_dhcp": "DHCP server uključen",
|
||||
"disabled_dhcp": "DHCP server isključen",
|
||||
"unavailable_dhcp": "DHCP nije dostupan",
|
||||
@@ -18,12 +13,10 @@
|
||||
"dhcp_description": "Ako vaš ruter nema DHCP postavke, možete koristiti AdGuard' ugrađen DHCP server.",
|
||||
"dhcp_enable": "Uključi DHCP server",
|
||||
"dhcp_disable": "Isključi DHCP server",
|
||||
"dhcp_not_found": "Bezbedno je da uključite ugrađeni DHCP server. Nismo pronašli nijedan aktivan DHCP server na mreži. međutim, ohrabrujemo vas da to ponovo proverite ručno, jer naš automatski test trenutno nije 100% pouzdan.",
|
||||
"dhcp_found": "Pronađen je aktivan DHCP server na mreži. Nije bezbedno da uključite ugrađeni DHCP server.",
|
||||
"dhcp_leases": "DHCP pozajmljivanja",
|
||||
"dhcp_static_leases": "DHCP statička pozajmljivanja",
|
||||
"dhcp_leases_not_found": "DHCP pozajmljivanja nisu pronađena",
|
||||
"dhcp_config_saved": "Sačuvaj DHCP konfiguraciju servera",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4 postavke",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 postavke",
|
||||
"form_error_required": "Obavezno polje",
|
||||
@@ -48,16 +41,11 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Ime hosta",
|
||||
"dhcp_table_expires": "Ističe",
|
||||
"dhcp_warning": "Ako svakako želite da uključite DHCP server, uverite se da nema drugih aktivnih DHCP servera u vašoj mreži. U suprotnom, to može pokvariti Internet za povezane uređaje!",
|
||||
"dhcp_error": "Ne možemo da odredimo da li ima drugih DHCP servera na mreži.",
|
||||
"dhcp_static_ip_error": "Kako biste koristili DHCP server, morate podesiti statičku IP adresu. Nismo mogli da odredimo da li je ovo mrežno okruženje podešeno za korišćenje statičke IP adrese. Molimo vas da podesite statičku IP adresu ručno.",
|
||||
"dhcp_dynamic_ip_found": "Vaš sistem koristi dinamičku IP adresu za okruženje <0>{{interfaceName}}</0>. Kako biste koristili DHCP server, morate podesiti statičku IP adresu. Vaša trenutna IP adresa je <0>{{ipAddress}}</0>. Automatski ćemo podesiti ovu IP adresu kao statičku ako pritisnete Uključi DHCP dugme.",
|
||||
"dhcp_lease_added": "Statičko iznajmljivanje \"{{key}}\" uspešno dodato",
|
||||
"dhcp_lease_deleted": "Statičko iznajmljivanje lease \"{{key}}\" uspešno izbrisano",
|
||||
"dhcp_new_static_lease": "Novo statičko iznajmljivanje",
|
||||
"dhcp_static_leases_not_found": "Nisu pronađena statička DHCP iznajmljivanja",
|
||||
"dhcp_add_static_lease": "Dodaj statičko iznajmljivanje",
|
||||
"dhcp_reset": "Jeste li sigurni da želite da resetujete DHCP konfiguraciju?",
|
||||
"country": "Zemlja",
|
||||
"city": "Grad",
|
||||
"delete_confirm": "Jeste li sigurni da želite da izbrišete \"{{key}}\"?",
|
||||
@@ -104,14 +92,7 @@
|
||||
"top_clients": "Najčešći klijenti",
|
||||
"no_clients_found": "Nema pronađenih klijenata",
|
||||
"general_statistics": "Opšte statistike",
|
||||
"number_of_dns_query_days": "Broj obrađenih DNS unosa u poslednjih {{count}} dan",
|
||||
"number_of_dns_query_days_plural": "Broj obrađenih DNS unosa u poslednjih {{count}} dana",
|
||||
"number_of_dns_query_24_hours": "Broj obrađenih DNS unosa u poslednja 24 časa",
|
||||
"number_of_dns_query_blocked_24_hours": "Broj DNS zahteva blokiranih od filtera blokatora reklama i blok liste hostova",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Broj DNS zahteva blokiranih od AdGuard-ovog podprograma za bezbedno pregledanje",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Broj blokiranih sajtova za odrasle",
|
||||
"enforced_save_search": "Nametni sigurno pretraživanje",
|
||||
"number_of_dns_query_to_safe_search": "Broj DNS zahteva ka pretraživačima za koje je nametnuto sigurno pretraživanje",
|
||||
"average_processing_time": "Prosečno vreme obrade",
|
||||
"average_processing_time_hint": "Prosečno vreme u milisekundama za obradu DNS zahteva",
|
||||
"block_domain_use_filters_and_hosts": "Blokiraj domene koristeći filtere i hosts datoteke",
|
||||
@@ -121,7 +102,6 @@
|
||||
"use_adguard_parental": "Koristi AdGuard-ovu uslugu roditeljske kontrole",
|
||||
"use_adguard_parental_hint": "AdGuard Home će proveriti da li domen sadrži sadržaj za odrasle. Koristi se isti privatni prijateljski API kao i kod usluge bezbednog pregledanja.",
|
||||
"enforce_safe_search": "Nametni sigurno pretraživanje",
|
||||
"enforce_save_search_hint": "AdGuard Home može nametnuti sigurno pretraživanje u sledećim pretraživačima: Google, Youtube, Bing, DuckDuckGo i Yandex.",
|
||||
"no_servers_specified": "Serveri nisu određeni",
|
||||
"general_settings": "Opšte postavke",
|
||||
"dns_settings": "DNS postavke",
|
||||
@@ -133,7 +113,6 @@
|
||||
"encryption_settings": "Postavke šifrovanja",
|
||||
"dhcp_settings": "DHCP postavke",
|
||||
"upstream_dns": "Upstream DNS serveri",
|
||||
"upstream_dns_help": "Unesite adrese servera, jednu po redu. <a>Saznajte više</a> o konfigurisanju upstream DNS servera.",
|
||||
"upstream_dns_configured_in_file": "Konfiguriši u {{path}}",
|
||||
"test_upstream_btn": "Testiraj upstreams",
|
||||
"upstreams": "Upstreams",
|
||||
@@ -256,7 +235,6 @@
|
||||
"rate_limit": "Ograničenje brzine",
|
||||
"edns_enable": "Uključi EDNS Client Subnet",
|
||||
"edns_cs_desc": "Ako je uključeno, AdGuard Home će slati klijente na DNS servere.",
|
||||
"rate_limit_desc": "Broj zahteva po sekundi koje pojedinačni klijent dozvoljava (0: neograničeno)",
|
||||
"blocking_ipv4_desc": "IP adresa koja će biti vraćena za blokirane zahteve",
|
||||
"blocking_ipv6_desc": "IP adresa koja će biti vraćena za blokirane AAAA zahteve",
|
||||
"blocking_mode_default": "Podrazumevano: Odgovara sa REFUSED kada je blokirano od Adblock-style pravila; odgovara sa IP adresom koja je određena u pravilu kada je blokiran od /etc/hosts-style pravila",
|
||||
@@ -278,7 +256,6 @@
|
||||
"install_settings_listen": "Okruženje slušanja",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Vaše AdGuard Home administratorsko web okruženje će biti dostupno na sledećim adresama:",
|
||||
"form_error_port": "Unesite važeću vrednost za port",
|
||||
"install_settings_dns": "DNS server",
|
||||
"install_settings_dns_desc": "Potrebno je da konfigurišete vaše uređaje ili ruter da koristi DNS server sa sledećim adresama:",
|
||||
"install_settings_all_interfaces": "Sva okruženja",
|
||||
@@ -297,10 +274,8 @@
|
||||
"install_devices_router": "Ruter",
|
||||
"install_devices_router_desc": "Ovo postavljanje će automatski pokriti sve uređaje koji su povezani na vaš kućni ruter pa nećete morati da konfigurišete svaki uređaj posebno.",
|
||||
"install_devices_address": "AdGuard Home DNS server sluša na sledećim adresama",
|
||||
"install_devices_router_list_1": "Otvorite podešavanja vašeg rutera. Obično im možete pristupiti iz vašeg preglednika preko URL (kao http://192.168.0.1/ ili http://192.168.1.1/). Možda će vam biti zatraženo da unesete lozinku. Ako je ne znate ili je se ne sećate, najčešće je možete resetovati pritiskom na dugme na samom ruteru. Neki ruteri zahtevaju određenu aplikaciju, koja bi u tom slučaju već trebalo da bude instalirana na vašem računaru ili telefonu.",
|
||||
"install_devices_router_list_2": "Pronađite DHCP ili DNS postavke. Potražite DNS slova pored polja koje dozvoljava dve ili tri skupine brojeva, a svaka može da sadrži četiri grupe od jedne do tri cifre.",
|
||||
"install_devices_router_list_3": "Tamo unesite adrese AdGuard home servera.",
|
||||
"install_devices_router_list_4": "Na nekim ruterima ne možete postaviti prilagođeni DNS server.",
|
||||
"install_devices_windows_list_1": "Otvorite kontrolnu tablu iz startnog menija ili kroz Windows pretragu.",
|
||||
"install_devices_windows_list_2": "Otvorite kategoriju mreža i internet a onda otiđite u centar za mrežu i deljenje.",
|
||||
"install_devices_windows_list_3": "Na levoj strani ekrana pronađite Promena postavke adaptera i kliknite tu.",
|
||||
@@ -326,7 +301,6 @@
|
||||
"install_saved": "Uspešno sačuvano",
|
||||
"encryption_title": "Šifrovanje",
|
||||
"encryption_desc": "Šifrovanje (HTTPS/TLS) podrška za oba DNS i administratorsko okruženje",
|
||||
"encryption_config_saved": "Konfiguracija šifrovanja je sačuvana",
|
||||
"encryption_server": "Ime servera",
|
||||
"encryption_server_enter": "Unesite vaše ime domena",
|
||||
"encryption_redirect": "Automatski preusmeri na HTTPS",
|
||||
@@ -356,13 +330,10 @@
|
||||
"encryption_reset": "Jeste li sigurni da želite dda resetujete postavke šifrovanja?",
|
||||
"topline_expiring_certificate": "Vaš SSL sertifikat uskoro ističe. Ažurirajte <0>postavke šifrovanja</0>.",
|
||||
"topline_expired_certificate": "Vaš SSL sertifikat je istekao. Ažurirajte <0>postavke šifrovanja</0>.",
|
||||
"form_error_port_range": "Unesite vrednost porta u opsegu od 80-65535",
|
||||
"form_error_port_unsafe": "Ovo nije siguran port",
|
||||
"form_error_equal": "Ne bi trebalo da bude jednako",
|
||||
"form_error_password": "Lozinke se ne podudaraju",
|
||||
"reset_settings": "Vrati postavke na podrazumevano",
|
||||
"update_announcement": "AdGuard Home {{version}} je sada dostupan! <0>Kliknite ovde</0> za više informacija.",
|
||||
"setup_guide": "Uputstvo za podešavanje",
|
||||
"dns_addresses": "DNS adrese",
|
||||
"dns_start": "DNS server se pokreće",
|
||||
"dns_status_error": "Greška prilikom pribavljanja stanja DNS servera",
|
||||
@@ -406,7 +377,6 @@
|
||||
"access_disallowed_title": "Zabranjeni klijenti",
|
||||
"access_disallowed_desc": "Lista CIDR ili IP adresa.. Ako je podešeno, AdGuard Home će odbijati zahteve od ovih IP adresa.",
|
||||
"access_blocked_title": "Blokirani domeni",
|
||||
"access_blocked_desc": "Nemojte ovo mešati sa filterima. AdGuard Home će odbijati DNS unose ka ovim domenima.",
|
||||
"access_settings_saved": "Postavke pristupa su uspešno sačuvane",
|
||||
"updates_checked": "Ažuriranja su uspešno proverena",
|
||||
"updates_version_equal": "AdGuard Home je ažuriran na najnoviju verziju",
|
||||
@@ -508,7 +478,6 @@
|
||||
"disable_ipv6": "Isključi IPv6",
|
||||
"disable_ipv6_desc": "Ako je ovo uključeno, svi DNS unosi za IPv6 adrese (type AAAA) će biti odbačeni.",
|
||||
"fastest_addr": "Najbrža IP adresa",
|
||||
"fastest_addr_desc": "Pretražuje sve DNS servere i vraća najbržu IP adresu među svim odgovorima. Ovo će usporiti DNS pretragu jer moramo da čekamo na odgovore od svih DNS servera, ali će poboljšati sveukupnu povezanost.",
|
||||
"autofix_warning_text": "Ako kliknete \"Popravi\", AdGuardHome će konfigurisati vaš sistem da koristi AdGuardHome DNS server.",
|
||||
"autofix_warning_list": "To će izvršiti sledeće zadatke: <0>Deaktiviranje system DNSStubListener</0> <0>Set DNS server address to 127.0.0.1</0> <0>Replace symbolic link target of /etc/resolv.conf to /run/systemd/resolve/resolv.conf</0> <0>Stop DNSStubListener (reload systemd-resolved service)</0>",
|
||||
"autofix_warning_result": "Kao rezultat, svi DNS zahtevi sa vašeg sistema će biti obrađeni od AdGuardHome.",
|
||||
@@ -538,7 +507,6 @@
|
||||
"set_static_ip": "Postavite statičku IP adresu",
|
||||
"install_static_ok": "Dobre vesti! Statička IP adresa je već konfigurisana",
|
||||
"install_static_error": "AdGuard Home se ne može automatski konfigurisati za ovo mrežno okruženje. Pogledajte uputstvo kako da to ručno uradite.",
|
||||
"install_static_configure": "Otkrili smo da se koristi dinamička IP adresa — <0>{{ip}}</0>. Želite li da je koristite kao vašu statičku adresu?",
|
||||
"confirm_static_ip": "AdGuard Home će konfigurisati {{ip}} da bude vaša statička IP adresa. Želite li da nastavite?",
|
||||
"list_updated": "{{count}} lista ažurirana",
|
||||
"list_updated_plural": "{{count}} lista ažurirano",
|
||||
@@ -576,11 +544,10 @@
|
||||
"filter_category_security_desc": "Lista specijalizovana za blokiranje štetnog softvera, štetnih i fišing domena",
|
||||
"filter_category_regional_desc": "Lista koja se usredsređuje na regionalne reklame i servere praćenja",
|
||||
"filter_category_other_desc": "Ostale liste blokiranja",
|
||||
"setup_config_to_enable_dhcp_server": "Podesite konfiguraciju kako biste omogućili DHCP server",
|
||||
"original_response": "Izvorni odgovor",
|
||||
"click_to_view_queries": "Kliknite da pogledate zahteve",
|
||||
"port_53_faq_link": "Port 53 je najčešće zauzet od \"DNSStubListener\" ili \"systemd-resolved\" usluga. Pročitajte <0>ovo uputstvo</0> kako da to rešite.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home će odbacivati sve DNS unose od ovog klijenta.",
|
||||
"client_not_in_allowed_clients": "Klijent nije dozvoljen zato što se ne nalazi na spisku dozvoljenih klijenata.",
|
||||
"experimental": "Eksperimentalno"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,18 @@
|
||||
{
|
||||
"client_settings": "Klientinställningar",
|
||||
"example_upstream_reserved": "du kan specificera DNS-uppström <0>för en specifik domän</0>",
|
||||
"upstream_parallel": "Använd parallella förfrågningar för att snabba upp dessa på uppströmsservrar.",
|
||||
"bootstrap_dns": "Bootstrap-DNS-servrar",
|
||||
"bootstrap_dns_desc": "Bootstrap-DNS-servrar används för att slå upp DoH/DoT-resolvrarnas IP-adresser som du specificerat som uppström.",
|
||||
"check_dhcp_servers": "Letar efter DHCP-servrar",
|
||||
"save_config": "Spara inställningar",
|
||||
"enabled_dhcp": "DHCP-server aktiverad",
|
||||
"disabled_dhcp": "Dhcp-server avaktiverad",
|
||||
"dhcp_title": "DHCP-server (experimentell)",
|
||||
"dhcp_description": "Om din router inte har inställningar för DHCP kan du använda AdGuards inbyggda server.",
|
||||
"dhcp_enable": "Aktivera DHCP.-server",
|
||||
"dhcp_disable": "Avaktivera DHCP-server",
|
||||
"dhcp_not_found": "Ingen aktiv DHCP-server hittades i nätverkat.",
|
||||
"dhcp_found": "Några aktiva DHCP-servar upptäcktes. Det är inte säkert att aktivera inbyggda DHCP-servrar.",
|
||||
"dhcp_leases": "DHCP-lease",
|
||||
"dhcp_static_leases": "Statiska DHCP-leases",
|
||||
"dhcp_leases_not_found": "Ingen DHCP-lease hittad",
|
||||
"dhcp_config_saved": "Sparade inställningar för DHCP-servern",
|
||||
"form_error_required": "Obligatoriskt fält",
|
||||
"form_error_ip_format": "Ogiltigt IPv4-format",
|
||||
"form_error_mac_format": "Ogiltigt MAC-format",
|
||||
@@ -34,10 +29,6 @@
|
||||
"dhcp_ip_addresses": "IP-adresser",
|
||||
"dhcp_table_hostname": "Värdnamn",
|
||||
"dhcp_table_expires": "Utgår",
|
||||
"dhcp_warning": "Om du vill använda den inbyggda DHCP-servern ändå, se till att det inte finns några andra aktiva DHCP-servrar. Annars kan den störa internetanslutningen för anslutna enheter!",
|
||||
"dhcp_error": "Vi kunde inte avgöra om det finns en till DHCP-server på nätverket.",
|
||||
"dhcp_static_ip_error": "För att kunna använda en DHCP-server måste det finnas en statisk IP-adress. Vi kunde inte avgöra om nätverksgränssnittet är konfigurerat med en statisk IP-adress. Ställ in en statistik IP-adress manuellt.",
|
||||
"dhcp_dynamic_ip_found": "Din enhet använder en dynamisk IP-adress för gränssnittet <0>{{interfaceName}}</0>. För att kunna använda DHCP-servern behövs en statisk IP-adress. Din nuvarande IP-adress är <0>{{ipAddress}}</0>. Vi kommer att göra denna IP-adress statisk automatiskt om du trycker på knappen \"Aktivera DHCP\".",
|
||||
"dhcp_lease_added": "Statisk lease \"{{key}}\" har lagts till",
|
||||
"dhcp_lease_deleted": "Statisk lease \"{{key}}\" har raderats",
|
||||
"dhcp_new_static_lease": "Ny statisk lease",
|
||||
@@ -67,36 +58,28 @@
|
||||
"refresh_statics": "Uppdatera statistik",
|
||||
"dns_query": "DNS-förfrågningar",
|
||||
"blocked_by": "<0>Blockerat av filter</0>",
|
||||
"stats_malware_phishing": "Blockerad skadekod/phising",
|
||||
"stats_malware_phishing": "Blockerad skadekod/phishing",
|
||||
"stats_adult": "Blockerade vuxensajter",
|
||||
"stats_query_domain": "Mest eftersökta domäner",
|
||||
"for_last_24_hours": "under de senaste 24 timamrna",
|
||||
"for_last_24_hours": "under de senaste 24 timmarna",
|
||||
"for_last_days": "för den senaste {{count}} dagen",
|
||||
"for_last_days_plural": "för de senaste {{count}} dagarna",
|
||||
"no_domains_found": "Inga domäner hittade",
|
||||
"requests_count": "Förfrågningsantal",
|
||||
"top_blocked_domains": "Flest blockerade domäner",
|
||||
"top_clients": "Toppklienter",
|
||||
"no_clients_found": "Inga hitatde klienter",
|
||||
"no_clients_found": "Inga klienter hittade",
|
||||
"general_statistics": "Allmän statistik",
|
||||
"number_of_dns_query_days": "Ett antal DNS-förfrågningar utfördes under den senaste {{count}} dagen",
|
||||
"number_of_dns_query_days_plural": "Ett antal DNS-förfrågningar utfördes under de senaste {{count}} dagarna",
|
||||
"number_of_dns_query_24_hours": "Ett antal DNS-förfrågningar utfördes under de senaste 244 timamrna",
|
||||
"number_of_dns_query_blocked_24_hours": "Ett antal DNS-förfrågningar blockerades av annonsfilter och värdens bloceringsklistor",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Ett antal DNS-förfrågningar blockerades av AdGuards modul för surfsäkerhet",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Ett anta vuxensajter blockerades",
|
||||
"enforced_save_search": "Aktivering av Säker surf",
|
||||
"number_of_dns_query_to_safe_search": "Ett antal DNS-förfrågningar genomfördes på sökmotorer med Säker surf aktiverat",
|
||||
"average_processing_time": "Genomsnittlig processtid",
|
||||
"average_processing_time_hint": "Genomsnittlig processtid i millisekunder för DNS-förfrågning",
|
||||
"block_domain_use_filters_and_hosts": "Blockera domäner med filter- och värdfiler",
|
||||
"filters_block_toggle_hint": "Du kan ställa in egna blockerings regler i <a>Filterinställningar</a>.",
|
||||
"use_adguard_browsing_sec": "Amvänd AdGuards webbservice för surfsäkerhet",
|
||||
"use_adguard_browsing_sec": "Använd AdGuards webbservice för surfsäkerhet",
|
||||
"use_adguard_browsing_sec_hint": "AdGuard Home kommer att kontrollera om en domän är svartlistad i webbservicens surfsäkerhet. Med en integritetsvänlig metod görs en API-lookup för att kontrollera : endast en kort prefix i domännamnet SHA256 hash skickas till servern.",
|
||||
"use_adguard_parental": "Använda AdGuards webbservice för färäldrakontroll",
|
||||
"use_adguard_parental": "Använda AdGuards webbservice för föräldrakontroll",
|
||||
"use_adguard_parental_hint": "AdGuard Home kommer att kontrollera domäner för innehåll av vuxenmaterial . Samma integritetsvänliga metod för API-lookup som tillämpas i webbservicens surfsäkerhet används.",
|
||||
"enforce_safe_search": "Tillämpa Säker surf",
|
||||
"enforce_save_search_hint": "AdGuard Home kan framtvinga säker surf i följande sökmoterer: Google, Youtube, Bing, och Yandex.",
|
||||
"no_servers_specified": "Inga servrar angivna",
|
||||
"general_settings": "Allmänna inställningar",
|
||||
"dns_settings": "DNS-inställningar",
|
||||
@@ -184,7 +167,6 @@
|
||||
"install_settings_listen": "Övervakningsgränssnitt",
|
||||
"install_settings_port": "Port",
|
||||
"install_settings_interface_link": "Din administratörssida för AdGuard Home finns på följande adresser:",
|
||||
"form_error_port": "Skriv in ett giltigt portnummer",
|
||||
"install_settings_dns": "DNS-server",
|
||||
"install_settings_dns_desc": "Du behöver ställa in dina enheter eller din router för att använda DNS-server på följande adresser.",
|
||||
"install_settings_all_interfaces": "Alla gränssnitt",
|
||||
@@ -197,13 +179,12 @@
|
||||
"install_auth_password_enter": "Skriv in lösenord",
|
||||
"install_step": "Steg",
|
||||
"install_devices_title": "Ställ in dina enheter",
|
||||
"install_devices_desc": "För att kunna använda AdGuard Home måste du sälla in dina enheter för att utnyttja den.",
|
||||
"install_devices_desc": "För att kunna använda AdGuard Home måste du ställa in dina enheter för att utnyttja den.",
|
||||
"install_submit_title": "Grattis!",
|
||||
"install_submit_desc": "Inställningsproceduren är klar och du kan börja använda AdGuard Home.",
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Den här anpassningen kommer att automatiskt täcka in alla de enheter som är anslutna till din hemmarouter och du behöver därför inte konfigurera var och en individuellt.",
|
||||
"install_devices_address": "AdGuard Home DNS-server täcker följande adresser",
|
||||
"install_devices_router_list_1": "Öppna routern Inställningar. Vanligtvis får man åtkomst via en URL (http://192.168.0.1 eller 192.168.1.1)- Du kommer att bli ombes att ange ett lösenord. Lösenordet kan stå angivet på routerns bak- eller undersida. Om lösenordet ändrats och du inte känner till det kan du återställa med Reset-knappen. En del routrar kräver en särskild applikation som skall finnas på antingen din dator eller i din mobil.",
|
||||
"install_devices_router_list_2": "Leta upp DHCP/DNS-inställningarna. Titta efter DNS-tecken intill ett fält med två eller tre uppsättningar siffror, var och en uppdelade i grupper om fyra med en eller tre siffror.",
|
||||
"install_devices_router_list_3": "Ange serveradressen till ditt AdGuard Home.",
|
||||
"install_devices_windows_list_1": "Öppna Kontrollpanelen via Start eller Windows Sök.",
|
||||
@@ -231,7 +212,6 @@
|
||||
"install_saved": "Sparat utan fel",
|
||||
"encryption_title": "Kryptering",
|
||||
"encryption_desc": "Krypteringsstöd (HTTPS/TLS) för både DNS och adminwebbgränssnitt.",
|
||||
"encryption_config_saved": "Krypteringsinställningar sparade",
|
||||
"encryption_server": "Servernamn",
|
||||
"encryption_server_enter": "Skriv in ditt domännamn",
|
||||
"encryption_redirect": "Omdirigera till HTTPS automatiskt",
|
||||
@@ -259,13 +239,10 @@
|
||||
"encryption_reset": "Är du säker på att du vill återställa krypteringsinställningarna?",
|
||||
"topline_expiring_certificate": "Ditt SSL-certifikat håller på att gå ut. <0>Krypteringsinställningar</0>.",
|
||||
"topline_expired_certificate": "Ditt SSL-certifikat har gått ut. Uppdatera <0>Krypteringsinställningar</0>-",
|
||||
"form_error_port_range": "Ange ett portnummer inom värdena 80-65535",
|
||||
"form_error_port_unsafe": "Det här är en osäker port",
|
||||
"form_error_equal": "Skall inte vara lika",
|
||||
"form_error_password": "Lösenorden överensstämmer inte",
|
||||
"reset_settings": "Återställ inställningar",
|
||||
"update_announcement": "AdGuard Home {{version}} är nu tillgänglig! <0>Klicka här</0> för mer information.",
|
||||
"setup_guide": "Inställningsguide",
|
||||
"dns_addresses": "DNS-adresser",
|
||||
"down": "Ner",
|
||||
"fix": "Fixa",
|
||||
@@ -303,7 +280,6 @@
|
||||
"access_disallowed_title": "Otillåtna klienter",
|
||||
"access_disallowed_desc": "En lista över CIDR eller IP-adresser. Om konfigurerad kommer AdGuard Home inte acceptera förfrågningar från dessa IP-adresser.",
|
||||
"access_blocked_title": "Blockerade domäner",
|
||||
"access_blocked_desc": "Ej att blandas ihop med filter. AdGuard Home kommer inte accepter DNS-förfrågningar innehållande dessa domäner.",
|
||||
"access_settings_saved": "Åtkomstinställningar sparade",
|
||||
"updates_checked": "Sökning efter uppdateringar genomförd",
|
||||
"updates_version_equal": "AdGuard Home är uppdaterat",
|
||||
@@ -337,7 +313,7 @@
|
||||
"interval_hours_plural": "{{count}} timmar",
|
||||
"filters_configuration": "Filterinställningar",
|
||||
"filters_enable": "Aktivera filter",
|
||||
"filters_interval": "Filterppdateringsintervall",
|
||||
"filters_interval": "Filteruppdateringsintervall",
|
||||
"disabled": "Avaktiverad",
|
||||
"username_label": "Användarnamn",
|
||||
"username_placeholder": "Skriv in användarnamn",
|
||||
@@ -356,4 +332,4 @@
|
||||
"show_blocked_responses": "Blockerade",
|
||||
"blocked_adult_websites": "Blockerade vuxensajter",
|
||||
"blocked_threats": "Blockerade hot"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,18 @@
|
||||
{
|
||||
"client_settings": "การตั้งค่าไคลเอนต์",
|
||||
"example_upstream_reserved": "คุณสามารถระบุ DNS อัปสตรีม <0>สำหรับโดเมนเฉพาะ</0>",
|
||||
"upstream_parallel": "ใช้การสืบค้นแบบขนานเพื่อเพิ่มความเร็วในการแก้ไขโดยการสอบถามเซิร์ฟเวอร์ upstream ทั้งหมดพร้อมกัน",
|
||||
"bootstrap_dns": "Bootstrap เซิร์ฟเวอร์ DNS",
|
||||
"bootstrap_dns_desc": "เซิร์ฟเวอร์ Bootstrap DNS ใช้เพื่อแก้ไขที่อยู่ IP ของตัวแก้ไข DoH / DoT ที่คุณระบุว่าเป็น upstreams",
|
||||
"check_dhcp_servers": "ตรวจสอบ DHCP servers",
|
||||
"save_config": "บันทึกการตั้งค่า",
|
||||
"enabled_dhcp": "เปิดการใช้งาน DHCP server แล้ว",
|
||||
"disabled_dhcp": "ปิดการใช้งาน DHCP server แล้ว",
|
||||
"dhcp_title": "DHCP server (ยังไม่สมบูรณ์)",
|
||||
"dhcp_description": "ถ้าหากเราเตอร์ของคุณไม่รองรับการตั้งค่า DHCP คุณสามารถใช้ ADGuard's ทำ DHCP server ได้",
|
||||
"dhcp_enable": "เปิด DHCP server",
|
||||
"dhcp_disable": "ปิด DHCP server",
|
||||
"dhcp_not_found": "มีความปลอดภัยในการเปิดใช้งานเซิร์ฟเวอร์ DHCP ในตัว - เราไม่พบเซิร์ฟเวอร์ DHCP ที่ใช้งานอยู่ในเครือข่าย อย่างไรก็ตามเราขอแนะนำให้คุณตรวจสอบด้วยตนเองอีกครั้งเนื่องจากการทดสอบอัตโนมัติของเราไม่ได้รับประกัน 100%",
|
||||
"dhcp_found": "พบเซิร์ฟเวอร์ DHCP ที่ใช้งานอยู่ในเครือข่าย ไม่ปลอดภัยที่จะเปิดใช้งานเซิร์ฟเวอร์ DHCP ในตัว",
|
||||
"dhcp_leases": "สัญญาเช่า DHCP",
|
||||
"dhcp_static_leases": "DHCP แบบกำหนด",
|
||||
"dhcp_leases_not_found": "ไม่พบสัญญาเช่า DHCP",
|
||||
"dhcp_config_saved": "บันทึกการกำหนดค่า DHCP สำเร็จแล้ว",
|
||||
"form_error_required": "ช่องที่ต้องกรอก",
|
||||
"form_error_ip4_format": "รูปแบบ IPv4 ไม่ถูกต้อง",
|
||||
"form_error_ip6_format": "รูปแบบ IPv6 ไม่ถูกต้อง",
|
||||
@@ -38,16 +33,11 @@
|
||||
"dhcp_ip_addresses": "ที่อยู่ IP",
|
||||
"dhcp_table_hostname": "ชื่อโฮสต์",
|
||||
"dhcp_table_expires": "วันที่หมดอายุ",
|
||||
"dhcp_warning": "หากคุณต้องการเปิดใช้งานเซิร์ฟเวอร์ DHCP ตรวจสอบให้แน่ใจว่าไม่มีเซิร์ฟเวอร์ DHCP ที่ใช้งานอยู่ในเครือข่ายของคุณ มิฉะนั้นจะทำให้อินเทอร์เน็ตสำหรับอุปกรณ์ที่เชื่อมต่อมีปัญหาได้!",
|
||||
"dhcp_error": "เราไม่สามารถระบุได้ว่ามีเซิร์ฟเวอร์ DHCP อื่นในเครือข่ายหรือไม่",
|
||||
"dhcp_static_ip_error": "ในการใช้เซิร์ฟเวอร์ DHCP จะต้องตั้งค่าที่อยู่ IP แบบคงที่ เราไม่สามารถระบุได้ว่ามีการกำหนดค่าอินเทอร์เฟซเครือข่ายนี้โดยใช้ที่อยู่ IP แบบคงที่หรือไม่ โปรดตั้งค่าที่อยู่ IP แบบคงที่ด้วยตนเอง",
|
||||
"dhcp_dynamic_ip_found": "ระบบของคุณใช้การกำหนดค่าที่อยู่ IP แบบไดนามิกสำหรับอินเทอร์เฟซ <0>{{interfaceName}}</0> ในการใช้เซิร์ฟเวอร์ DHCP จะต้องตั้งค่าที่อยู่ IP แบบคงที่ ที่อยู่ IP ปัจจุบันของคุณคือ <0>{{ipAddress}}</0> เราจะตั้งค่าที่อยู่ IP นี้เป็นแบบคงที่โดยอัตโนมัติหากคุณกดปุ่มเปิดใช้งาน DHCP",
|
||||
"dhcp_lease_added": "เพิ่มสัญญาเช่าคงที่ \"{{key}}\" สำเร็จแล้ว",
|
||||
"dhcp_lease_deleted": "ลบสัญญาเช่าคงที่ \"{{key}}\" สำเร็จแล้ว",
|
||||
"dhcp_new_static_lease": "เช่าใหม่คงที่",
|
||||
"dhcp_static_leases_not_found": "ไม่พบสัญญาเช่า DHCP แบบคงที่",
|
||||
"dhcp_add_static_lease": "เพิ่มสัญญาเช่าคงที่",
|
||||
"dhcp_reset": "คุณแน่ใจหรือว่าต้องการรีเซ็ตการกำหนดค่า DHCP?",
|
||||
"delete_confirm": "คุณแน่ใจหรือว่าต้องการลบ \"{{key}}\"?",
|
||||
"form_enter_hostname": "ป้อนชื่อโฮสต์",
|
||||
"error_details": "รายละเอียดข้อผิดพลาด",
|
||||
@@ -84,14 +74,7 @@
|
||||
"top_clients": "ลูกข่ายที่ใช้งานบ่อยสุด",
|
||||
"no_clients_found": "ไม่มีเครื่องลูกข่าย",
|
||||
"general_statistics": "สถิติทั่วไป",
|
||||
"number_of_dns_query_days": "จำนวนการสืบค้น DNS ที่ประมวลผลสำหรับ {{count}} วันล่าสุด",
|
||||
"number_of_dns_query_days_plural": "จำนวนการสืบค้น DNS ที่ดำเนินการในช่วง {{count}} วันล่าสุด",
|
||||
"number_of_dns_query_24_hours": "มีการสืบค้น DNS จำนวนมากใน 24 ชั่วโมงที่ผ่านมา",
|
||||
"number_of_dns_query_blocked_24_hours": "จำนวนคำขอ DNS ที่ถูกปิดกั้นโดยตัวกรองปิดกั้นและโฮสต์รายการปิดกั้น",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "คำขอ DNS จำนวนหนึ่งถูกปิดกั้นโดยโมดูลความปลอดภัยการเรียกดู AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "มีการปิดกั้นเว็บไซต์สำหรับผู้ใหญ่จำนวนหนึ่ง",
|
||||
"enforced_save_search": "บังคับใช้การค้นหาที่ปลอดภัย",
|
||||
"number_of_dns_query_to_safe_search": "จำนวนคำขอ DNS ไปยังเครื่องมือค้นหาที่บังคับใช้การค้นหาปลอดภัย",
|
||||
"average_processing_time": "เวลาประมวลผลโดยเฉลี่ย",
|
||||
"average_processing_time_hint": "เวลาเฉลี่ยเป็นมิลลิวินาทีในการประมวลผลคำขอ DNS",
|
||||
"block_domain_use_filters_and_hosts": "ปิดกั้นโดเมนโดยใช้ตัวกรองและไฟล์โฮสต์",
|
||||
@@ -101,7 +84,6 @@
|
||||
"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",
|
||||
@@ -207,7 +189,6 @@
|
||||
"install_settings_listen": "รูปแบบการดักจับ",
|
||||
"install_settings_port": "พอร์ต",
|
||||
"install_settings_interface_link": "เว็บอินเตอร์เฟสผู้ดูแลระบบ AdGuard Home ของคุณจะพร้อมใช้งานตามที่อยู่ต่อไปนี้:",
|
||||
"form_error_port": "ป้อนค่าพอร์ตที่ถูกต้อง",
|
||||
"install_settings_dns": "เซิรฟ์เวอร์ DNS",
|
||||
"install_settings_dns_desc": "คุณจะต้องกำหนดค่าอุปกรณ์หรือเราเตอร์ของคุณเพื่อใช้เซิร์ฟเวอร์ DNS ตามที่อยู่ต่อไปนี้:",
|
||||
"install_settings_all_interfaces": "อินเทอร์เฟซทั้งหมด",
|
||||
@@ -226,7 +207,6 @@
|
||||
"install_devices_router": "เราเตอร์",
|
||||
"install_devices_router_desc": "การตั้งค่านี้จะครอบคลุมอุปกรณ์ทั้งหมดที่เชื่อมต่อกับเราเตอร์ที่บ้านของคุณโดยอัตโนมัติและคุณไม่จำเป็นต้องกำหนดค่าแต่ละอุปกรณ์ด้วยตนเอง",
|
||||
"install_devices_address": "เซิร์ฟเวอร์ DNS ของ AdGuard Home กำลังรับฟังตามที่อยู่ต่อไปนี้",
|
||||
"install_devices_router_list_1": "เปิดการตั้งค่าสำหรับเราเตอร์ของคุณ โดยปกติแล้วคุณสามารถเข้าถึงได้จากเบราว์เซอร์ของคุณผ่าน URL (เช่น http://192.168.0.1/ หรือ http://192.168.1.1/) คุณอาจถูกขอให้ป้อนรหัสผ่าน หากคุณจำไม่ได้คุณสามารถรีเซ็ตรหัสผ่านได้บ่อยครั้งโดยกดปุ่มบนเราเตอร์เอง เราเตอร์บางตัวต้องการแอปพลิเคชั่นเฉพาะซึ่งในกรณีนี้ควรติดตั้งไว้ในคอมพิวเตอร์/โทรศัพท์ของคุณแล้ว",
|
||||
"install_devices_router_list_2": "ค้นหาการตั้งค่า DHCP/DNS ค้นหาตัวอักษร DNS ที่อยู่ถัดจากช่องที่อนุญาตให้มีตัวเลขสองหรือสามชุดโดยแต่ละกลุ่มแบ่งออกเป็นสี่กลุ่มหนึ่งถึงสามหลัก",
|
||||
"install_devices_router_list_3": "ป้อนที่อยู่เซิร์ฟเวอร์ AdGuard Home ของคุณที่นั่น",
|
||||
"install_devices_windows_list_1": "เปิด Control Panel โดยใช้ Start menu หรือ Windows search",
|
||||
@@ -254,7 +234,6 @@
|
||||
"install_saved": "บันทึกเรียบร้อยแล้ว",
|
||||
"encryption_title": "การเข้ารหัส",
|
||||
"encryption_desc": "การดข้ารหัส (HTTPS/TLS) รองรับทั้ง DNS และหน้าเว็บแอดมิน",
|
||||
"encryption_config_saved": "บันทึกการตั้งค่าเข้ารหัสเรียบร้อยแล้ว",
|
||||
"encryption_server": "ชื่อเซิร์ฟเวอร์",
|
||||
"encryption_server_enter": "ป้อนชื่อโดเมน",
|
||||
"encryption_redirect": "ไปเส้นทาง HTTPS อัตโนมัติ",
|
||||
@@ -282,13 +261,10 @@
|
||||
"encryption_reset": "คุณแน่ใจนะว่าจะล้างค่าการเข้ารหัส?",
|
||||
"topline_expiring_certificate": "ใบรับรอง SSL ของคุณกำลังจะหมดอายุ กรุณาอัปเดท <0>การตั้งค่าเข้ารหัส</0>.",
|
||||
"topline_expired_certificate": "ใบรับรอง SSL ของคุณหมดอายุแล้ว กรุณาอัปเดท <0>การตั้งค่าเข้ารหัส</0>.",
|
||||
"form_error_port_range": "ป้อนค่าพอร์ตในช่วง 80-65535",
|
||||
"form_error_port_unsafe": "เป็นพอร์ทที่ไม่ปลอดภัย",
|
||||
"form_error_equal": "ไม่ควรตรงกัน",
|
||||
"form_error_password": "รหัสผ่านไม่ตรงกัน",
|
||||
"reset_settings": "รีเซ็ตการตั้งค่า",
|
||||
"update_announcement": "AdGuard Home {{version}} พร้อมแล้ว <0>กดตรงนี้</0> สำหรับข้อมูลเพิ่มเติม",
|
||||
"setup_guide": "วิธีการตั้งค่า",
|
||||
"dns_addresses": "ที่อยู่ DNS",
|
||||
"dns_start": "เซิร์ฟเวอร์ DNS เริ่มทำงาน",
|
||||
"dns_status_error": "เกิดข้อผิดพลาดในการตรวจสอบสถานะเซิร์ฟเวอร์ DNS",
|
||||
@@ -408,4 +384,4 @@
|
||||
"check_title": "ตรวจสอบการกรอง",
|
||||
"check_desc": "ตรวจสอบว่าชื่อโฮสต์ถูกกรอง",
|
||||
"form_enter_host": "ป้อนชื่อโฮสต์"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
"client_settings": "İstemci ayarları",
|
||||
"example_upstream_reserved": "<0>Belirli alan adları için</0> DNS üst sunucusu tanımlayabilirsiniz.",
|
||||
"example_upstream_comment": "Bir yorum belirtebilirsiniz",
|
||||
"upstream_parallel": "Tüm üst sunucuları eş zamanlı sorgulayarak çözümü hızlandırmak için paralel istekleri kullan",
|
||||
"upstream_parallel": "Tüm üst sunucuları eş zamanlı sorgulayarak çözümlemeyi hızlandırmak için paralel sorgular kullanın.",
|
||||
"parallel_requests": "Paralel istekler",
|
||||
"load_balancing": "Yük dengeleme",
|
||||
"load_balancing_desc": "Her seferinde bir sunucuyu sorgulayın. AdGuard Home, sunucuyu seçmek için ağırlıklı rastgele algoritmayı kullanacak, böylece en hızlı sunucu daha sık kullanılacak.",
|
||||
"load_balancing_desc": "Her seferinde bir üst sunucusunu sorgulayın. AdGuard Home, en hızlı sunucunun daha sık kullanılması için sunucuyu seçmek için ağırlıklı rastgele algoritmayı kullanacaktır.",
|
||||
"bootstrap_dns": "DNS Önyükleme sunucuları",
|
||||
"bootstrap_dns_desc": "DNS Önyükleme sunucuları, seçtiğiniz üst sunucuların DoH/DoT çözücülerine ait ip adreslerinin çözülmesi için kullanılır.",
|
||||
"local_ptr_title": "Özel DNS sunucuları",
|
||||
"local_ptr_desc": "AdGuard Home'un yerel olarak sunulan kaynaklar için sorgular için kullanacağı DNS sunucuları. Örneğin, bu sunucu özel IP adreslerine sahip istemciler için istemcilerin ana bilgisayar adlarını çözümlemek için kullanılacak. Ayarlanmazsa, AdGuard Home otomatik olarak varsayılan DNS çözümleyicinizi kullanır.",
|
||||
"local_ptr_placeholder": "Her satıra bir sunucu adresi girin",
|
||||
"resolve_clients_title": "İstemcilerin IP adreslerinin ters çözümlenmesini etkinleştir",
|
||||
"resolve_clients_desc": "Etkinleştirilirse, AdGuard Home ilgili çözümleyicilere (yerel istemciler için özel DNS sunucuları, genel IP adreslerine sahip istemciler için üst sunucusu) PTR sorguları göndererek istemcilerin IP adreslerini ana bilgisayar adlarına ters olarak çözümlemeye çalışır.",
|
||||
"check_dhcp_servers": "DHCP sunucularını denetle",
|
||||
"save_config": "Yapılandırmayı kaydet",
|
||||
"enabled_dhcp": "DHCP sunucusu etkinleştirildi",
|
||||
@@ -18,12 +23,12 @@
|
||||
"dhcp_description": "Yönlendiriciniz DHCP ayarlarını sağlamıyorsa, AdGuard'ın kendi yerleşik DHCP sunucusunu kullanabilirsiniz.",
|
||||
"dhcp_enable": "DHCP sunucusunu etkinleştir",
|
||||
"dhcp_disable": "DHCP sunucusunu devre dışı bırak",
|
||||
"dhcp_not_found": "Yerleşik DHCP sunucusunu etkinleştirmek güvenlidir - Ağ üzerinde herhangi bir aktif DHCP sunucusu bulamadık. Ancak, otomatik testimiz şu anda %100 garanti vermediği için el ile tekrar kontrol etmenizi öneririz.",
|
||||
"dhcp_not_found": "Yerleşik DHCP sunucusunu etkinleştirmek güvenlidir, çünkü AdGuard Home ağ üzerinde herhangi bir etkin DHCP sunucusu bulmamıştır. Ancak, otomatik deneme şu anda %100 garanti sağlamadığından, bunu elle yeniden kontrol etmelisiniz.",
|
||||
"dhcp_found": "Ağ üzerinde bazı aktif DHCP sunucuları bulundu. Yerleşik DHCP sunucusunu aktif etmek sağlıklı olmayacaktır.",
|
||||
"dhcp_leases": "DHCP kiralamaları",
|
||||
"dhcp_static_leases": "Sabit DHCP kiralamaları",
|
||||
"dhcp_leases_not_found": "DHCP kiralaması bulunamadı",
|
||||
"dhcp_config_saved": "DHCP sunucusu yapılandırması kaydedildi",
|
||||
"dhcp_config_saved": "DHCP yapılandırması başarıyla kaydedildi",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4 Ayarları",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 Ayarları",
|
||||
"form_error_required": "Gerekli alan",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "Geçersiz MAC biçimi",
|
||||
"form_error_client_id_format": "Geçersiz istemci kimliği biçimi",
|
||||
"form_error_server_name": "Geçersiz sunucu adı",
|
||||
"form_error_subnet": "\"{{cidr}}\" alt ağı, \"{{ip}}\" IP adresini içermiyor",
|
||||
"form_error_positive": "0'dan büyük olmalı",
|
||||
"form_error_negative": "0 veya daha büyük olmalıdır",
|
||||
"range_end_error": "Başlangıç aralığından daha büyük olmalı",
|
||||
@@ -49,10 +55,10 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Ana bilgisayar Adı",
|
||||
"dhcp_table_expires": "Geçerlilik Tarihi",
|
||||
"dhcp_warning": "DHCP sunucusunu yine de etkinleştirmek istiyorsanız, ağınızda başka bir aktif DHCP sunucusu olmadığından emin olun. Aksi takdirde, bağlı cihazlar için interneti kırabilir!",
|
||||
"dhcp_error": "Ağda başka bir DHCP sunucusu olup olmadığını belirleyemedik.",
|
||||
"dhcp_static_ip_error": "DHCP sunucusunu kullanmak için statik bir IP adresi ayarlanmalıdır. Bu ağ arayüzünün statik IP adresi kullanılarak yapılandırılıp yapılandırılmadığını belirleyemedik. Lütfen statik bir IP adresini elle ayarlayın.",
|
||||
"dhcp_dynamic_ip_found": "Sisteminiz <0>{{interfaceName}}</0> arayüzü için dinamik IP adresi yapılandırması kullanıyor. DHCP sunucusunu kullanmak için statik bir IP adresi ayarlanmalıdır. Geçerli IP adresiniz <0>{{ipAddress}}</0>. DHCP'yi etkinleştir düğmesine basarsanız bu IP adresini statik IP adresiniz olarak ayarlayacağız.",
|
||||
"dhcp_warning": "DHCP sunucusunu yine de etkinleştirmek istiyorsanız, ağınızda başka aktif DHCP sunucusu olmadığından emin olun çünkü bu, ağdaki cihazların İnternet bağlantısını kesebilir!",
|
||||
"dhcp_error": "AdGuard Home, ağda başka bir etkin DHCP sunucusu olup olmadığını belirleyemedi.",
|
||||
"dhcp_static_ip_error": "DHCP sunucusunu kullanmak için statik bir IP adresi ayarlanmalıdır. AdGuard Home, bu ağ arayüzünün statik bir IP adresi kullanılarak yapılandırılıp yapılandırılmadığını belirleyemedi. Lütfen elle statik bir IP adresi ayarlayın.",
|
||||
"dhcp_dynamic_ip_found": "Sisteminiz <0>{{interfaceName}}</0> arayüzü için dinamik IP adresi yapılandırması kullanıyor. DHCP sunucusunu kullanmak için statik bir IP adresi ayarlanmalı. Geçerli IP adresiniz <0>{{ipAddress}}</0>. \"DHCP sunucusunu etkinleştir\" düğmesine basarsanız, AdGuard Home bu IP adresini otomatikman statik olarak ayarlayacak.",
|
||||
"dhcp_lease_added": "Sabit kiralama \"{{key}}\" başarıyla eklendi",
|
||||
"dhcp_lease_deleted": "Sabit kiralama \"{{key}}\" başarıyla silindi",
|
||||
"dhcp_new_static_lease": "Yeni sabit kiralama",
|
||||
@@ -83,7 +89,7 @@
|
||||
"on": "AÇIK",
|
||||
"off": "KAPALI",
|
||||
"copyright": "Telif hakkı",
|
||||
"homepage": "Anasayfa",
|
||||
"homepage": "Ana sayfa",
|
||||
"report_an_issue": "Bir sorun bildir",
|
||||
"privacy_policy": "Gizlilik politikası",
|
||||
"enable_protection": "Korumayı etkinleştir",
|
||||
@@ -108,9 +114,9 @@
|
||||
"number_of_dns_query_days": "Son {{count}} gün boyunca işlenen DNS sorgularının sayısı",
|
||||
"number_of_dns_query_days_plural": "Son {{count}} gün boyunca işlenen DNS sorgularının sayısı",
|
||||
"number_of_dns_query_24_hours": "Son 24 saat içinde işlenen DNS sorgularının sayısı",
|
||||
"number_of_dns_query_blocked_24_hours": "Reklam engelleme filtreleri ve ana bilgisayar engelleme listeleri tarafından engellenen DNS isteklerinin sayısı",
|
||||
"number_of_dns_query_blocked_24_hours": "Adblock filtreleri ve ana bilgisayar engelleme listeleri tarafından engellenen DNS isteklerinin sayısı",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "AdGuard gezinti koruması modülü tarafından engellenmiş DNS isteklerinin sayısı",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Engellenmiş yetişkin içerikli web sitelerinin sayısı",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Engellenen yetişkin sitelerinin sayısı",
|
||||
"enforced_save_search": "Zorunlu kılınmış güvenli arama",
|
||||
"number_of_dns_query_to_safe_search": "Güvenli Aramanın zorunlu kıldığı arama motorlarına gönderilen DNS isteklerinin sayısı",
|
||||
"average_processing_time": "Ortalama işlem süresi",
|
||||
@@ -122,7 +128,7 @@
|
||||
"use_adguard_parental": "AdGuard ebeveyn kontrolü web hizmetini kullan",
|
||||
"use_adguard_parental_hint": "AdGuard Home, alan adının yetişkin içerik bulundurup bulundurmadığını kontrol edecek. Gezinti güvenliği web hizmeti ile kullandığımız aynı gizlilik dostu API'yi kullanıyoruz.",
|
||||
"enforce_safe_search": "Güvenli aramayı zorunlu kıl",
|
||||
"enforce_save_search_hint": "AdGuard Home şu arama motorlarında güvenli aramayı zorunlu kılabilir: Google, Youtube, Bing, DuckDuckGo, Yandex ve Pixabay.",
|
||||
"enforce_save_search_hint": "AdGuard Home şu arama motorlarında güvenli aramayı zorunlu kılabilir: Google, YouTube, Bing, DuckDuckGo, Yandex ve Pixabay.",
|
||||
"no_servers_specified": "Sunucu adresi girilmedi",
|
||||
"general_settings": "Genel ayarlar",
|
||||
"dns_settings": "DNS ayarları",
|
||||
@@ -151,7 +157,7 @@
|
||||
"name_table_header": "İsim",
|
||||
"list_url_table_header": "Liste URL'si",
|
||||
"rules_count_table_header": "Kural sayısı",
|
||||
"last_time_updated_table_header": "Son güncelleme",
|
||||
"last_time_updated_table_header": "Son güncelleme zamanı",
|
||||
"actions_table_header": "Eylemler",
|
||||
"request_table_header": "İstek",
|
||||
"edit_table_action": "Düzenle",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "Sıklık limiti",
|
||||
"edns_enable": "EDNS İstemci Alt Ağını Etkinleştir",
|
||||
"edns_cs_desc": "Etkinleştirilirse, AdGuard Home, istemcilerin alt ağlarını DNS sunucularına gönderir.",
|
||||
"rate_limit_desc": "Tek bir istemcinin yapmasına izin verilen saniye başına istek sayısı (0'a ayarlamak sınırsız anlamına gelir)",
|
||||
"rate_limit_desc": "Tek bir istemcinin yapmasına izin verilen saniye başına istek sayısı 0 olarak ayarlamak, sınır olmadığı anlamına gelir.",
|
||||
"blocking_ipv4_desc": "Engellenen bir A isteği için geri döndürülecek IP adresi",
|
||||
"blocking_ipv6_desc": "Engellenen bir AAAA isteği için geri döndürülecek IP adresi",
|
||||
"blocking_mode_default": "Varsayılan: Reklam engelleme stili kuralı tarafından engellendiğinde sıfır IP adresiyle (A için 0.0.0.0; AAAA için) yanıt verin; /etc/hosts-style kuralı tarafından engellendiğinde, kuralda belirtilen IP adresiyle yanıt verin",
|
||||
@@ -286,7 +292,7 @@
|
||||
"install_settings_listen": "Dinleme arayüzü",
|
||||
"install_settings_port": "Bağlantı noktası",
|
||||
"install_settings_interface_link": "AdGuard Home yönetici web arayüzü sayfanız şu adresten erişilebilir olacaktır:",
|
||||
"form_error_port": "Geçerli bir bağlantı noktası değeri girin",
|
||||
"form_error_port": "Geçerli bağlantı noktası numarası girin",
|
||||
"install_settings_dns": "DNS sunucusu",
|
||||
"install_settings_dns_desc": "Cihazlarınızı veya yönlendiricinizi şu adresteki DNS sunucusunu kullanması için ayarlamanız gerekecek:",
|
||||
"install_settings_all_interfaces": "Tüm arayüzler",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "Yönlendirici",
|
||||
"install_devices_router_desc": "Bu kurulum evdeki yönlendiricinize bağlı tüm cihazlarınızı otomatik olarak kapsar ve her birini elle ayarlamanız gerekmez.",
|
||||
"install_devices_address": "AdGuard Home DNS sunucusu şu adresi dinleyecektir",
|
||||
"install_devices_router_list_1": "Yönlendiricinizin ayarlarına girin. Genelde internet tarayıcınızdan bir URL vasıtasıyla erişebilirsiniz (http://192.168.0.1/ veya http://192.168.1.1/ gibi). Sizden parola girmenizi isteyebilir. Hatırlamıyorsanız yönlendiricinizin arkasındaki 'reset' tuşuna basılı tutup fabrika ayarlarına sıfırlayabilirsiniz. Bazı yönlendiriciler belirli uygulamalarla çalışır, bu durumda bilgisayarınıza/telefonunuza kurulması gerekir.",
|
||||
"install_devices_router_list_1": "Yönlendiricinizin ayarlarına girin. Genellikle tarayıcınızdan http://192.168.0.1/ veya http://192.168.1.1/ gibi bir URL aracılığıyla erişebilirsiniz. Bir parola girmeniz istenebilir. Hatırlamıyorsanız, genellikle yönlendiricinin üzerindeki bir düğmeye basarak parolayı sıfırlayabilirsiniz, ancak bu yöntemin seçilmesi durumunda muhtemelen tüm yönlendirici yapılandırmasını kaybedeceğinizi unutmayın. Yönlendiricinizin kurulması için bir uygulama gerekiyorsa, lütfen uygulamayı telefonunuza veya PC'nize yükleyin ve yönlendiricinin ayarlarına erişmek için kullanın.",
|
||||
"install_devices_router_list_2": "DHCP/DNS ayarlarını bulun. DNS satırlarını arayın, genelde iki veya üç tanedir, üç rakam girilebilen dört ayrı grup içeren satırdır.",
|
||||
"install_devices_router_list_3": "AdGuard Home sunucusunun adresini o kısma yazın.",
|
||||
"install_devices_router_list_4": "Bazı yönlendirici tiplerinde özel bir DNS sunucusu ayarlayamazsınız. Bu durumda AdGuard Home'u bir DHCP sunucu olarak ayarlamanız yardımcı olabilir. Aksi halde, yönlendirici modeliniz için <0>DNS sunucularını</0> elle nasıl özelleştirebileceğinizi aramalısınız.",
|
||||
"install_devices_router_list_4": "Bazı yönlendirici türlerinde özel bir DNS sunucusu kurulamaz. Bu durumda, AdGuard Home'u bir <0>DHCP sunucusu</0> olarak kurmak yardımcı olabilir. Aksi takdirde, belirli yönlendirici modelinizdeki DNS sunucularını nasıl özelleştireceğiniz konusunda yönlendirici kılavuzunu kontrol etmelisiniz.",
|
||||
"install_devices_windows_list_1": "Başlat menüsünden veya Windows aramasıyla Denetim Masası'na girin.",
|
||||
"install_devices_windows_list_2": "Ağ ve Internet kategorisine girin, sonra Ağ ve Paylaşım Merkezi'ne girin.",
|
||||
"install_devices_windows_list_3": "Sol taraftaki Bağdaştırıcı ayarlarını değiştir ayarını bulun ve ona tıklayın.",
|
||||
@@ -322,7 +328,7 @@
|
||||
"install_devices_android_list_1": "Android cihazınızda Ayarlar simgesine dokunun.",
|
||||
"install_devices_android_list_2": "Wi-Fi menüsüne dokunun. Mevcut tüm ağlar listelenecektir (mobil bağlantı için isteğe bağlı DNS sunucusu ayarlanamaz).",
|
||||
"install_devices_android_list_3": "Bağlı olduğunuz ağa uzun basın ve Ağı Değiştir'e dokunun.",
|
||||
"install_devices_android_list_4": "Bazı cihazlarda diğer ayarları görmek için Gelişmiş kutucuğuna dokunmanız gerekebilir. Android cihazınızın DNS ayarlarını değiştirmek için IP ayarlarını DHCP yerine Statik olarak değiştirmeniz gerekebilir.",
|
||||
"install_devices_android_list_4": "Bazı cihazlarda, diğer ayarları görmek için Gelişmiş kutucuğu işaretlemeniz gerekebilir. Android DNS ayarlarınızı yapmak için IP ayarlarını DHCP'den Statik'e geçirmeniz gerekecektir.",
|
||||
"install_devices_android_list_5": "DNS 1 ve DNS 2 değerlerini AdGuard Home sunucusunun ip adresleri ile değiştirin.",
|
||||
"install_devices_ios_list_1": "Ana ekrandaki Ayarlar simgesine dokunun.",
|
||||
"install_devices_ios_list_2": "Sol menüdeki Wi-Fi bölümüne girin (mobil bağlantı için isteğe bağlı DNS sunucusu ayarlanamaz).",
|
||||
@@ -334,7 +340,7 @@
|
||||
"install_saved": "Başarıyla kaydedildi",
|
||||
"encryption_title": "Şifreleme",
|
||||
"encryption_desc": "Hem DNS ve hem de yönetici web arayüzü için şifreleme (HTTPS/TLS) desteği",
|
||||
"encryption_config_saved": "Şifreleme ayarı kaydedildi",
|
||||
"encryption_config_saved": "Şifreleme yapılandırması kaydedildi",
|
||||
"encryption_server": "Sunucu adı",
|
||||
"encryption_server_enter": "Alan adınızı girin",
|
||||
"encryption_server_desc": "HTTPS kullanmak için, SSL sertifikanız veya joker karakter sertifikanızla eşleşen sunucu adını girmeniz gerekir. Alan ayarlanmazsa, herhangi bir alan adı için TKG bağlantılarını kabul eder.",
|
||||
@@ -367,7 +373,7 @@
|
||||
"topline_expired_certificate": "SSL sertifikanızın süresi dolmuş. <0>Şifreleme ayarlarını</0> güncelleyin.",
|
||||
"form_error_port_range": "80-65535 aralığında geçerli bir bağlantı noktası değeri girin",
|
||||
"form_error_port_unsafe": "Bu güvenli olmayan bir bağlantı noktası",
|
||||
"form_error_equal": "Aynı olmamalı",
|
||||
"form_error_equal": "Eşit olmamalı",
|
||||
"form_error_password": "Şifreler uyuşmuyor",
|
||||
"reset_settings": "Ayarları sıfırla",
|
||||
"update_announcement": "AdGuard Home {{version}} şu an yüklenmeye hazır! Daha fazla bilgi için <0>buraya tıklayın.</0>",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP adresi",
|
||||
"client_identifier_desc": "İstemciler IP adresi, CIDR, MAC adresi veya özel bir istemci kimliği ile tanımlanabilir (DoT/DoH/DoQ için kullanılabilir). <0>Burada</0> istemcileri nasıl belirleyeceğiniz hakkında daha fazla bilgi edinebilirsiniz.",
|
||||
"form_enter_ip": "IP Girin",
|
||||
"form_enter_subnet_ip": "\"{{cidr}}\" alt ağına bir IP adresi girin",
|
||||
"form_enter_mac": "MAC Girin",
|
||||
"form_enter_id": "Tanımlayıcı girin",
|
||||
"form_add_id": "Tanımlayıcı ekle",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "İzin verilmeyen istemciler",
|
||||
"access_disallowed_desc": "CIDR veya IP adreslerinin listesi. Yapılandırılırsa, AdGuard Home yalnızca bu IP adreslerinden gelen istekleri cevapsız bırakacaktır.",
|
||||
"access_blocked_title": "Engellenmiş alan adları",
|
||||
"access_blocked_desc": "Bunu filtrelerle karıştırmayın. AdGuard Home, bu alan adları için gelen DNS sorgularını cevapsız bırakacaktır.",
|
||||
"access_blocked_desc": "Bunu filtrelerle karıştırmayın. AdGuard Home, sorguların sorularına bu alan adlarıyla DNS sorgularını bırakacaktır. Burada tam alan adlarını, joker karakterleri ve URL filtre kurallarını belirtebilirsiniz, örn. \"example.org\", \"*.example.org\" veya \"|| example.org^\".",
|
||||
"access_settings_saved": "Erişim ayarları başarıyla kaydedildi!",
|
||||
"updates_checked": "Güncelleme kontrolü başarılı",
|
||||
"updates_version_equal": "AdGuard Home yazılımı günceldir",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "IPv6'yı Devre Dışı Bırak",
|
||||
"disable_ipv6_desc": "Bu özelliği etkinleştirirseniz, IPv6 adresleri (AAAA tipi) için gönderilen tüm DNS istekleri cevapsız bırakılacaktır.",
|
||||
"fastest_addr": "En hızlı IP adresi",
|
||||
"fastest_addr_desc": "Tüm DNS sunucularını sorgulayın ve tüm yanıtlar arasından en hızlı IP adresini döndürün. Bu, tüm DNS sunucularından yanıt beklememiz gerektiğinden DNS sorgularını yavaşlatacak ancak genel bağlantıyı iyileştirecektir.",
|
||||
"fastest_addr_desc": "Tüm DNS sunucularını sorgulayın ve tüm yanıtlar arasında en hızlı IP adresini döndürün. AdGuard Home'un tüm DNS sunucularından yanıt beklemesi gerektiğinden, bu DNS sorgularını yavaşlatır ancak genel bağlantıyı iyileştirir.",
|
||||
"autofix_warning_text": "\"Düzelt\" i tıklatırsanız, AdGuardHome sisteminizi AdGuardHome DNS sunucusunu kullanacak şekilde yapılandırır.",
|
||||
"autofix_warning_list": "Bu görevleri gerçekleştirecek: <0>Sistem DNSStubListener'ı devre dışı bırakın</0> <0>DNS sunucusu adresini 127.0.0.1 olarak ayarlayın</0> <0>/etc/resolv.conf'un sembolik bağlantı hedefini /run/systemd/resolve/resolv.conf ile değiştirin<0> <0>DNSStubListener'ı durdurun (systemd çözümlenmiş hizmeti yeniden yükleyin)</0>",
|
||||
"autofix_warning_result": "Sonuç olarak, sisteminizden gelen tüm DNS istekleri varsayılan olarak AdGuard Home tarafından işlenecektir.",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "Statik IP adresi ayarlama",
|
||||
"install_static_ok": "İyi haberler! Statik IP adresi zaten yapılandırılmış",
|
||||
"install_static_error": "AdGuard Home, bu ağ arayüzü için otomatik olarak yapılandıramaz. Lütfen bunu manuel olarak nasıl yapacağınıza ilişkin bir talimat arayın.",
|
||||
"install_static_configure": "Dinamik bir IP adresi kullanıldığını tespit ettik - <0> {{ip}} </0>. Statik adresiniz olarak kullanmak ister misiniz?",
|
||||
"install_static_configure": "AdGuard Home, <0>{{ip}}</0> dinamik IP adresinin kullanıldığını tespit etti. Statik adresiniz olarak ayarlanmasını ister misiniz?",
|
||||
"confirm_static_ip": "AdGuard Home, {{ip}} adresini statik IP adresiniz olacak şekilde yapılandıracak. Devam etmek istiyor musunuz?",
|
||||
"list_updated": "{{count}} liste güncellendi",
|
||||
"list_updated_plural": "{{count}} liste güncellendi",
|
||||
@@ -594,4 +601,4 @@
|
||||
"adg_will_drop_dns_queries": "AdGuard Home, bu istemciden gelen tüm DNS sorgularını iptal eder.",
|
||||
"client_not_in_allowed_clients": "İstemciye \"İzin verilen istemciler\" listesinde olmadığı için izin verilmiyor.",
|
||||
"experimental": "Deneysel"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
{
|
||||
"client_settings": "Cài đặt máy khách",
|
||||
"example_upstream_reserved": "bạn có thể chỉ định DNS ngược tuyến <0>cho một tên miền cụ thể(hoặc nhiều)</0>",
|
||||
"example_upstream_comment": "Bạn có thể thêm chú thích cụ thể",
|
||||
"upstream_parallel": "Sử dụng truy vấn song song để tăng tốc độ giải quyết bằng cách truy vấn đồng thời tất cả các máy chủ ngược tuyến",
|
||||
"parallel_requests": "Yêu cầu song song",
|
||||
"load_balancing": "Cân bằng tải",
|
||||
"load_balancing_desc": "Chỉ truy xuất một máy chủ trong cùng thời điểm. AdGuard Home sẽ sử dụng thuật toán trọng số ngẫu nhiên để chọn một máy chủ nhanh nhất và sử dụng máy chủ đó thường xuyên hơn.",
|
||||
"bootstrap_dns": "Máy chủ DNS Bootstrap",
|
||||
"bootstrap_dns_desc": "Máy chủ DNS Bootstrap được sử dụng để phân giải địa chỉ IP của bộ phân giải DoH/DoT mà bạn chỉ định là ngược tuyến.",
|
||||
"local_ptr_desc": "Máy chủ DNS hoặc các máy chủ mà AdGuard Home sẽ sử dụng cho các truy vấn về tài nguyên được phân phối cục bộ. Ví dụ: máy chủ này sẽ được sử dụng để phân giải tên máy khách của máy khách cho các máy khách có địa chỉ IP riêng. Nếu không được cài đặt, AdGuard Home sẽ tự động sử dụng trình phân giải DNS mặc định của bạn.",
|
||||
"local_ptr_placeholder": "Nhập một địa chỉ máy chủ trên mỗi dòng",
|
||||
"resolve_clients_title": "Kích hoạt cho phép phân giải ngược về địa chỉ IP của máy khách",
|
||||
"check_dhcp_servers": "Kiểm tra máy chủ DHCP",
|
||||
"save_config": "Lưu thiết lập",
|
||||
"enabled_dhcp": "Máy chủ DHCP đã kích hoạt",
|
||||
"disabled_dhcp": "Máy chủ DHCP đã tắt",
|
||||
"unavailable_dhcp": "DHCP không khả dụng",
|
||||
@@ -18,12 +16,10 @@
|
||||
"dhcp_description": "Nếu bộ định tuyến không trợ cài đặt DHCP, bạn có thể dùng máy chủ DHCP dựng sẵn của AdGuard",
|
||||
"dhcp_enable": "Bật máy chủ DHCP",
|
||||
"dhcp_disable": "Tắt máy chủ DHCP",
|
||||
"dhcp_not_found": "Không có máy chủ DHCP nào được tìm thấy trong mạng. Có thể bật máy chủ DHCP một cách an toàn",
|
||||
"dhcp_found": "Đã tìm thấy máy chủ DHCP trong mạng. Có thể có rủi ro nếu kích hoạt máy chủ DHCP dựng sẵn",
|
||||
"dhcp_leases": "Thuê DHCP",
|
||||
"dhcp_static_leases": "Thuê DHCP tĩnh",
|
||||
"dhcp_leases_not_found": "Không tìm thấy DHCP cho thuê",
|
||||
"dhcp_config_saved": "Đã lưu cấu hình máy chủ DHCP",
|
||||
"dhcp_ipv4_settings": "Cài đặt DHCP IPv4",
|
||||
"dhcp_ipv6_settings": "Cài đặt DHCP IPv6",
|
||||
"form_error_required": "Trường bắt buộc",
|
||||
@@ -49,16 +45,11 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "Tên máy chủ",
|
||||
"dhcp_table_expires": "Hết hạn",
|
||||
"dhcp_warning": "Nếu bạn vẫn muốn bật máy chủ DHCP, hãy đảm bảo rằng không có máy chủ DHCP hoạt động nào khác trong mạng của bạn. Nếu không, nó có thể phá vỡ Internet cho các thiết bị được kết nối!",
|
||||
"dhcp_error": "Chúng tôi không thể xác định liệu có một máy chủ DHCP khác trong mạng hay không.",
|
||||
"dhcp_static_ip_error": "Để sử dụng máy chủ DHCP, phải đặt địa chỉ IP tĩnh. Chúng tôi không thể xác định xem giao diện mạng này có được cấu hình bằng địa chỉ IP tĩnh hay không. Vui lòng đặt địa chỉ IP tĩnh theo cách thủ công.",
|
||||
"dhcp_dynamic_ip_found": "Hệ thống của bạn sử dụng cấu hình địa chỉ IP động cho giao diện <0>{{interfaceName}}</0>. Để sử dụng máy chủ DHCP, phải đặt địa chỉ IP tĩnh. Địa chỉ IP hiện tại của bạn là <0>{{ipAddress}}</0>. Chúng tôi sẽ tự động đặt địa chỉ IP này thành tĩnh nếu bạn nhấn nút Bật DHCP.",
|
||||
"dhcp_lease_added": "Cho thuê tĩnh \"{{key}}\" đã được thêm thành công",
|
||||
"dhcp_lease_deleted": "Cho thuê tĩnh \"{{key}}\" đã xóa thành công",
|
||||
"dhcp_new_static_lease": "Cho thuê tĩnh mới",
|
||||
"dhcp_static_leases_not_found": "Không tìm thấy DHCP cho thuê tĩnh",
|
||||
"dhcp_add_static_lease": "Thêm thuê tĩnh",
|
||||
"dhcp_reset": "Bạn có chắc chắn muốn đặt lại thiết lập DHCP?",
|
||||
"country": "Quốc gia",
|
||||
"city": "Thành phố",
|
||||
"delete_confirm": "Bạn có chắc chắn muốn xóa \"{{key}}\" không?",
|
||||
@@ -105,14 +96,7 @@
|
||||
"top_clients": "Người dùng hàng đầu",
|
||||
"no_clients_found": "Không có người dùng",
|
||||
"general_statistics": "Thống kê chung",
|
||||
"number_of_dns_query_days": "Một số truy vấn DNS được xử lý trong {{count}} ngày qua",
|
||||
"number_of_dns_query_days_plural": "Một số truy vấn DNS được xử lý trong {{count}} ngày qua",
|
||||
"number_of_dns_query_24_hours": "Số yêu cầu DNS đã xử lý trong 24 giờ qua",
|
||||
"number_of_dns_query_blocked_24_hours": "Số yêu cầu DNS bị chặn bởi bộ lọc quảng cáo và danh sách chặn host",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "Số yêu cầu DNS bị chặn bởi chế độ bảo vệ duyệt web AdGuard",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Số website người lớn đã chặn",
|
||||
"enforced_save_search": "Bắt buộc tìm kiếm an toàn",
|
||||
"number_of_dns_query_to_safe_search": "Số yêu cầu DNS tới công cụ tìm kiếm đã chuyển thành tìm kiếm an toàn",
|
||||
"average_processing_time": "Thời gian xử lý trung bình",
|
||||
"average_processing_time_hint": "Thời gian trung bình cho một yêu cầu DNS tính bằng mili giây",
|
||||
"block_domain_use_filters_and_hosts": "Chặn tên miền sử dụng các bộ lọc và file hosts",
|
||||
@@ -122,7 +106,6 @@
|
||||
"use_adguard_parental": "Sử dụng dịch vụ quản lý của phụ huynh AdGuard",
|
||||
"use_adguard_parental_hint": "AdGuard Home sẽ kiểm tra nếu tên miền chứa từ khoá người lớn. Tính năng sử dụng API thân thiện với quyền riêng tư tương tự với dịch vụ bảo vệ duyệt web",
|
||||
"enforce_safe_search": "Bắt buộc tìm kiếm an toàn",
|
||||
"enforce_save_search_hint": "AdGuard Home có thể bắt buộc tìm kiếm an toàn với các dịch vụ tìm kiếm: Google, Youtube, Bing, Yandex.",
|
||||
"no_servers_specified": "Không có máy chủ nào được liệt kê",
|
||||
"general_settings": "Cài đặt chung",
|
||||
"dns_settings": "Cài đặt DNS",
|
||||
@@ -134,7 +117,6 @@
|
||||
"encryption_settings": "Cài đặt mã hóa",
|
||||
"dhcp_settings": "Cài đặt DHCP",
|
||||
"upstream_dns": "Máy chủ DNS tìm kiếm",
|
||||
"upstream_dns_help": "Nhập địa chỉ máy chủ một trên mỗi dòng. <a>Tìm hiểu thêm</a> về cách định cấu hình máy chủ DNS ngược dòng.",
|
||||
"upstream_dns_configured_in_file": "Cấu hình tại {{path}}",
|
||||
"test_upstream_btn": "Kiểm tra",
|
||||
"upstreams": "Nguồn",
|
||||
@@ -263,7 +245,6 @@
|
||||
"rate_limit": "Giới hạn yêu cầu",
|
||||
"edns_enable": "Bật mạng con EDNS Client",
|
||||
"edns_cs_desc": "Nếu được bật, AdGuard Home sẽ gửi các mạng con của khách hàng đến các máy chủ DNS.",
|
||||
"rate_limit_desc": "Số lượng yêu cầu mỗi giây mà một khách hàng được phép thực hiện (0: không giới hạn)",
|
||||
"blocking_ipv4_desc": "Địa chỉ IP được trả lại cho một yêu cầu A bị chặn",
|
||||
"blocking_ipv6_desc": "Địa chỉ IP được trả lại cho một yêu cầu AAA bị chặn",
|
||||
"blocking_mode_default": "Mặc định: Trả lời với NXDOMAIN khi bị chặn bởi quy tắc kiểu Adblock; phản hồi với địa chỉ IP được chỉ định trong quy tắc khi bị chặn bởi quy tắc / etc / hosts-style",
|
||||
@@ -285,7 +266,6 @@
|
||||
"install_settings_listen": "Giao diện nghe",
|
||||
"install_settings_port": "Cổng",
|
||||
"install_settings_interface_link": "Giao diện web quản trị viên AdGuard Home của bạn sẽ có sẵn trên các địa chỉ sau:",
|
||||
"form_error_port": "Nhập giá trị cổng hợp lệ",
|
||||
"install_settings_dns": "Máy chủ DNS",
|
||||
"install_settings_dns_desc": "Bạn sẽ cần định cấu hình thiết bị hoặc bộ định tuyến của mình để sử dụng máy chủ DNS trên các địa chỉ sau:",
|
||||
"install_settings_all_interfaces": "Tất cả các giao diện",
|
||||
@@ -304,10 +284,8 @@
|
||||
"install_devices_router": "Bộ định tuyến",
|
||||
"install_devices_router_desc": "Thiết lập này sẽ tự động bao gồm tất cả các thiết bị được kết nối với bộ định tuyến gia đình của bạn và bạn sẽ không cần phải định cấu hình từng thiết bị theo cách thủ công.",
|
||||
"install_devices_address": "Máy chủ DNS của AdGuard Home đang lắng nghe các địa chỉ sau",
|
||||
"install_devices_router_list_1": "Mở các tùy chọn cho bộ định tuyến của bạn. Thông thường, bạn có thể truy cập nó từ trình duyệt của mình thông qua một URL (như http://192.168.0.1/ hoặc http://192.168.1.1/). Bạn có thể được yêu cầu nhập mật khẩu. Nếu bạn không nhớ nó, bạn có thể thường xuyên đặt lại mật khẩu bằng cách nhấn một nút trên chính bộ định tuyến. Một số bộ định tuyến yêu cầu một ứng dụng cụ thể, trong trường hợp đó nên được cài đặt trên máy tính/điện thoại của bạn.",
|
||||
"install_devices_router_list_2": "Tìm cài đặt DHCP/DNS. Tìm các chữ cái DNS bên cạnh một trường cho phép hai hoặc ba bộ số, mỗi bộ được chia thành bốn nhóm từ một đến ba chữ số.",
|
||||
"install_devices_router_list_3": "Nhập địa chỉ máy chủ AdGuard Home của bạn ở đó.",
|
||||
"install_devices_router_list_4": "Bạn không thể đặt máy chủ DNS tùy chỉnh trên một số loại bộ định tuyến. Trong trường hợp này, có thể hữu ích nếu bạn thiết lập AdGuard Home làm <0> máy chủ DHCP </0>. Nếu không, bạn nên tìm kiếm hướng dẫn về cách tùy chỉnh máy chủ DNS cho kiểu bộ định tuyến cụ thể của mình.",
|
||||
"install_devices_windows_list_1": "Mở Control Panel thông qua Trình đơn Bắt đầu hoặc Tìm kiếm Windows.",
|
||||
"install_devices_windows_list_2": "Chuyển đến danh mục Mạng và Internet, sau đó đến Trung tâm Mạng và Chia sẻ.",
|
||||
"install_devices_windows_list_3": "Ở bên trái màn hình, tìm Thay đổi cài đặt bộ điều hợp và nhấp vào nó.",
|
||||
@@ -333,7 +311,6 @@
|
||||
"install_saved": "Lưu thành công",
|
||||
"encryption_title": "Mã hóa",
|
||||
"encryption_desc": "Hỗ trợ mã hóa (HTTPS/TLS) cho cả giao diện web quản trị viên và DNS",
|
||||
"encryption_config_saved": "Đã lưu cấu hình mã hóa",
|
||||
"encryption_server": "Tên máy chủ",
|
||||
"encryption_server_enter": "Nhập tên miền của bạn",
|
||||
"encryption_redirect": "Tự động chuyển hướng đến HTTPS",
|
||||
@@ -363,13 +340,10 @@
|
||||
"encryption_reset": "Bạn có chắc chắn muốn đặt lại cài đặt mã hóa?",
|
||||
"topline_expiring_certificate": "Chứng chỉ SSL của bạn sắp hết hạn. Cập nhật <0>Cài đặt mã hóa</0>.",
|
||||
"topline_expired_certificate": "Chứng chỉ SSL của bạn đã hết hạn. Cập nhật <0>Cài đặt mã hóa</0>.",
|
||||
"form_error_port_range": "Nhập giá trị cổng trong phạm vi 80-65535",
|
||||
"form_error_port_unsafe": "Đây là một cổng không an toàn",
|
||||
"form_error_equal": "Không nên bằng nhau",
|
||||
"form_error_password": "Mật khẩu không khớp",
|
||||
"reset_settings": "Đặt lại cài đặt",
|
||||
"update_announcement": "AdGuard Home {{version}} hiện có sẵn! <0>Chạm vào đây</0> để biết thêm thông tin.",
|
||||
"setup_guide": "Hướng dẫn thiết lập",
|
||||
"dns_addresses": "Địa chỉ DNS",
|
||||
"dns_start": "Máy chủ DNS đang khởi động",
|
||||
"dns_status_error": "Có lỗi khi kiểm tra trạng thái máy chủ DNS",
|
||||
@@ -413,7 +387,6 @@
|
||||
"access_disallowed_title": "Máy chủ không được phép",
|
||||
"access_disallowed_desc": "Một danh sách các địa chỉ CIDR hoặc IP. Nếu được định cấu hình, AdGuard Home sẽ bỏ yêu cầu từ các địa chỉ IP này.",
|
||||
"access_blocked_title": "Tên miền bị chặn",
|
||||
"access_blocked_desc": "Đừng nhầm lẫn điều này với các bộ lọc. AdGuard Home sẽ bỏ các truy vấn DNS với các tên miền này trong câu hỏi của truy vấn.",
|
||||
"access_settings_saved": "Cài đặt truy cập đã lưu thành công",
|
||||
"updates_checked": "Đã kiểm tra thành công cập nhật",
|
||||
"updates_version_equal": "AdGuard Home đã được cập nhật",
|
||||
@@ -516,7 +489,6 @@
|
||||
"disable_ipv6": "Tắt IPv6",
|
||||
"disable_ipv6_desc": "Nếu tính năng này được bật, tất cả các truy vấn DNS cho địa chỉ IPv6 (loại AAAA) sẽ bị loại bỏ.",
|
||||
"fastest_addr": "Địa chỉ IP nhanh nhất",
|
||||
"fastest_addr_desc": "Truy vấn tất cả các máy chủ DNS và trả về địa chỉ IP nhanh nhất trong số tất cả các phản hồi",
|
||||
"autofix_warning_text": "Nếu bạn nhấp vào \"Khắc phục\", AdGuard Home sẽ định cấu hình hệ thống của bạn để sử dụng máy chủ DNS của AdGuard Home.",
|
||||
"autofix_warning_list": "Nó sẽ thực hiện các tác vụ sau: <0> Hủy kích hoạt hệ thống DNSStubListener </0> <0> Đặt địa chỉ máy chủ DNS thành 127.0.0.1 </0> <0> Thay thế mục tiêu liên kết tượng trưng của /etc/resolv.conf bằng / run / systemd /resolve/resolv.conf </0> <0> Dừng DNSStubListener (tải lại dịch vụ do hệ thống phân giải) </0>",
|
||||
"autofix_warning_result": "Do đó, tất cả các yêu cầu DNS từ hệ thống của bạn sẽ được AdGuard Home xử lý theo mặc định.",
|
||||
@@ -546,7 +518,6 @@
|
||||
"set_static_ip": "Thiết lập địa chỉ IP tĩnh",
|
||||
"install_static_ok": "Địa chỉ IP tĩnh đã được thiết lập",
|
||||
"install_static_error": "AdGuard Home không thể cấu hình tự động cho giao diện mạng này. Vui lòng tìm hướng dẫn về cách thực hiện việc này theo cách thủ công.",
|
||||
"install_static_configure": "Chúng tôi đã phát hiện thấy rằng một địa chỉ IP động được sử dụng - <0> {{ip}} </0>. Bạn có muốn sử dụng nó làm địa chỉ tĩnh của mình không?",
|
||||
"confirm_static_ip": "AdGuard Home sẽ lấy {{ip}} làm địa chỉ IP tĩnh. Bạn có muốn tiếp tục?",
|
||||
"list_updated": "Đã cập nhật {{count}} bộ lọc",
|
||||
"list_updated_plural": "Đã cập nhật {{count}} bộ lọc",
|
||||
@@ -584,11 +555,10 @@
|
||||
"filter_category_security_desc": "Bộ lọc chuyên biệt chặn tên miền chứa mã độc và lừa đảo",
|
||||
"filter_category_regional_desc": "Bộ lọc tập trung vào từng khu vực",
|
||||
"filter_category_other_desc": "Bộ lọc chặn khác",
|
||||
"setup_config_to_enable_dhcp_server": "Thiết lập cấu hình để bật máy chủ DHCP",
|
||||
"original_response": "Phản hồi gốc",
|
||||
"click_to_view_queries": "Nhấp để xem truy xuất",
|
||||
"port_53_faq_link": "Cổng 53 thường được sử dụng \"DNSStubListener\" hoặc \"systemd-resolved\". Vui lòng đọc <0>hướng dẫn</0> để giải quyết vấn đề này.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home sẽ loại bỏ tất cả các truy vấn DNS từ ứng dụng khách này.",
|
||||
"client_not_in_allowed_clients": "Ứng dụng khách không được phép vì nó không có trong danh sách \"Ứng dụng khách được phép\".",
|
||||
"experimental": "Thử nghiệm"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
"client_settings": "客户端设置",
|
||||
"example_upstream_reserved": "您可以<0>为特定域名</0>指定上游 DNS 服务器",
|
||||
"example_upstream_comment": "您可以指定注解",
|
||||
"upstream_parallel": "通过同时查询所有上游服务器,使用并行请求以加速解析",
|
||||
"upstream_parallel": "使用并行请求以同时查询所有上游服务器来加快解析速度。",
|
||||
"parallel_requests": "并行请求",
|
||||
"load_balancing": "负载均衡",
|
||||
"load_balancing_desc": "一次查询一台服务器。 AdGuard Home将使用加权随机算法来选择服务器,以便更频繁地使用最快的服务器。",
|
||||
"load_balancing_desc": "一次查询一台服务器。AdGuard Home 将使用加权随机算法来选择服务器,以便更常使用最快的服务器。",
|
||||
"bootstrap_dns": "Bootstrap DNS 服务器",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS 服务器用于解析您指定为上游的 DoH / DoT 解析器的 IP 地址。",
|
||||
"local_ptr_title": "私人 DNS 服务器",
|
||||
"local_ptr_desc": "AdGuard Home 用于查询本地服务资源的 DNS 服务器。例如,该服务器将被用于解析具有私人 IP 地址的客户机的主机名,比如 \"192.168.12.34\"。如果没有设置,AdGuard Home 将自动使用您的默认 DNS 解析器。",
|
||||
"local_ptr_placeholder": "每行输入一个服务器地址",
|
||||
"resolve_clients_title": "启用客户端的 IP 地址的反向解析",
|
||||
"resolve_clients_desc": "如果启用,AdGuard Home 将尝试通过发送 PTR 查询到对应的解析器 (本地客户端的私人 DNS 服务器,公有 IP 客户端的上游服务器) 将 IP 地址反向解析成其客户端主机名。",
|
||||
"check_dhcp_servers": "检查 DHCP 服务器",
|
||||
"save_config": "保存配置",
|
||||
"enabled_dhcp": "DHCP 服务器已启用",
|
||||
@@ -18,21 +23,22 @@
|
||||
"dhcp_description": "如果你的路由器没有提供 DHCP (动态主机配置协议)设置,你可以使用 AdGuard 内置的 DHCP 服务器。",
|
||||
"dhcp_enable": "启用 DHCP 服务器",
|
||||
"dhcp_disable": "停用 DHCP 服务器",
|
||||
"dhcp_not_found": "您可以安全地启用内置 DHCP 服务器 - 在当前网络中未检测到任何起作用的 DHCP 服务器。然而,我们鼓励您以手动方式重新检测,因为当前我们的自动检测不能确保100%准确。",
|
||||
"dhcp_not_found": "您可以安全地启用内置 DHCP 服务器。在当前网络中 AdGuard Home 未检测到任何起作用的 DHCP 服务器。然而,我们推荐您以手动方式重新检测,因为当前我们的自动检测不能确保 100% 准确。",
|
||||
"dhcp_found": "在当前网络中检测到 DHCP 服务器。如果启用内置的 DHCP 服务器可能不安全。",
|
||||
"dhcp_leases": "DHCP 租约",
|
||||
"dhcp_static_leases": "DHCP 静态租约",
|
||||
"dhcp_leases_not_found": "未找到 DHCP 租约",
|
||||
"dhcp_config_saved": "已保存 DHCP 服务器配置",
|
||||
"dhcp_config_saved": "已成功保存 DHCP 服务器配置",
|
||||
"dhcp_ipv4_settings": "DHCP IPv4设置",
|
||||
"dhcp_ipv6_settings": "DHCP IPv6设置",
|
||||
"form_error_required": "必填字段",
|
||||
"form_error_ip4_format": "无效的 IPv4 格式",
|
||||
"form_error_ip6_format": "无效的 IPv6 格式",
|
||||
"form_error_ip_format": "无效的 IPv4 格式",
|
||||
"form_error_ip_format": "无效的 IP 格式",
|
||||
"form_error_mac_format": "无效的 MAC 格式",
|
||||
"form_error_client_id_format": "无效的客户端 ID 格式",
|
||||
"form_error_server_name": "无效的服务器名",
|
||||
"form_error_subnet": "子网 \"{{cidr}}\" 不包含 IP 地址 \"{{ip}}\"",
|
||||
"form_error_positive": "必须大于 0",
|
||||
"form_error_negative": "必须大于等于 0",
|
||||
"range_end_error": "必须大于范围起始值",
|
||||
@@ -46,19 +52,19 @@
|
||||
"dhcp_interface_select": "选择 DHCP 接口",
|
||||
"dhcp_hardware_address": "硬件地址",
|
||||
"dhcp_ip_addresses": "IP 地址",
|
||||
"ip": "IP地址",
|
||||
"ip": "IP 地址",
|
||||
"dhcp_table_hostname": "主机名",
|
||||
"dhcp_table_expires": "到期",
|
||||
"dhcp_warning": "如果你想要启用内置的 DHCP 服务器,请确保在当前网络中没有其它起作用的 DHCP 服务器。否则,此操作可能会破坏已连接设备的网络连接!",
|
||||
"dhcp_error": "我们无法确定在当前网络中是否存在其它 DHCP 服务器。",
|
||||
"dhcp_static_ip_error": "要使用 DHCP 服务器,则必须设置静态 IP 地址。我们无法确定此网络接口是否已被配置为使用静态 IP 地址。请手动为此网络接口设置静态 IP 地址。",
|
||||
"dhcp_dynamic_ip_found": "您的系统对网络接口 <0>{{interfaceName}}</0> 使用了动态 IP 地址配置。要使用 DHCP 服务器,则必须对此网络接口使用静态 IP 地址配置。此网络接口当前的 IP 地址为 <0>{{ipAddress}}</0>。如您点击 启用 DHCP 按钮,我们将自动修改此网络接口以使用静态 IP 地址配置。",
|
||||
"dhcp_error": "AdGuard Home 无法确定在当前网络中是否存在其它 DHCP 服务器。",
|
||||
"dhcp_static_ip_error": "要使用 DHCP 服务器,则必须设置静态 IP 地址。AdGuard Home 无法确定此网络接口是否已被配置为使用静态 IP 地址。请手动为此网络接口设置静态 IP 地址。",
|
||||
"dhcp_dynamic_ip_found": "您的系统对网络接口 <0>{{interfaceName}}</0> 使用了动态 IP 地址配置。要使用 DHCP 服务器,则必须对此网络接口使用静态 IP 地址配置。此网络接口当前的 IP 地址为 <0>{{ipAddress}}</0>。如您点击“启用 DHCP 服务器” 按钮,AdGuard Home 将自动修改此网络接口以使用静态 IP 地址。",
|
||||
"dhcp_lease_added": "静态租约 \"{{key}}\" 已成功添加",
|
||||
"dhcp_lease_deleted": "静态租约 \"{{key}}\" 已成功删除",
|
||||
"dhcp_new_static_lease": "新建静态租约",
|
||||
"dhcp_static_leases_not_found": "未找到 DHCP 静态租约",
|
||||
"dhcp_add_static_lease": "添加静态租约",
|
||||
"dhcp_reset": "您确定要重置DHCP设定么?",
|
||||
"dhcp_reset": "您确定要重置 DHCP 设定吗?",
|
||||
"country": "国家",
|
||||
"city": "城市",
|
||||
"delete_confirm": "您确定要删除 \"{{key}}\"?",
|
||||
@@ -105,12 +111,12 @@
|
||||
"top_clients": "客户端排行",
|
||||
"no_clients_found": "未找到客户端",
|
||||
"general_statistics": "概况统计",
|
||||
"number_of_dns_query_days": "过去 {{count}} 天内 处理的DNS 查询总数",
|
||||
"number_of_dns_query_days": "过去 {{count}} 天内处理的 DNS 查询总数",
|
||||
"number_of_dns_query_days_plural": "在过去的 {{count}} 天内处理了多少个 DNS 查询",
|
||||
"number_of_dns_query_24_hours": "过去 24 小时内处理的 DNS 请求总数",
|
||||
"number_of_dns_query_blocked_24_hours": "被广告过滤器和 Hosts 拦截清单拦截的 DNS 请求总数",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "被 AdGuard 安全浏览模块拦截的 DNS 请求总数",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "被拦截的成人网站总数",
|
||||
"number_of_dns_query_blocked_24_hours": "被广告过滤器和 Hosts 拦截清单阻止的 DNS 请求总数",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "被 AdGuard 安全浏览模块阻止的 DNS 请求总数",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "被阻止的成人网站总数",
|
||||
"enforced_save_search": "强制安全搜索",
|
||||
"number_of_dns_query_to_safe_search": "启用强制安全搜索后对搜索引擎的 DNS 请求总数",
|
||||
"average_processing_time": "平均处理时间",
|
||||
@@ -122,7 +128,7 @@
|
||||
"use_adguard_parental": "使用 AdGuard 【家长控制】服务",
|
||||
"use_adguard_parental_hint": "AdGuard Home 将使用与浏览安全服务相同的隐私性强的 API 来检查域名指向的网站是否包含成人内容。",
|
||||
"enforce_safe_search": "强制安全搜索",
|
||||
"enforce_save_search_hint": "AdGuard Home 将对以下搜索引擎强制启用安全搜索:Google、YouTube、Bing 和 Yandex。",
|
||||
"enforce_save_search_hint": "AdGuard Home 对以下搜索引擎可强制启用安全搜索:Google、YouTube、Bing、DuckDuckGo、Yandex、Pixabay。",
|
||||
"no_servers_specified": "未找到指定的服务器",
|
||||
"general_settings": "常规设置",
|
||||
"dns_settings": "DNS 设置",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "加密设置",
|
||||
"dhcp_settings": "DHCP 设置",
|
||||
"upstream_dns": "上游 DNS 服务器",
|
||||
"upstream_dns_help": "每行输入一个服务器地址。<a>了解更多</a>关于配置上游DNS服务器的内容",
|
||||
"upstream_dns_help": "每行输入一个服务器地址。<a>了解更多</a>关于配置上游 DNS 服务器的内容",
|
||||
"upstream_dns_configured_in_file": "配置路径{{path}}",
|
||||
"test_upstream_btn": "测试上游 DNS",
|
||||
"upstreams": "上游服务器",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "速度限制",
|
||||
"edns_enable": "使用客户端的子网地址(EDNS)",
|
||||
"edns_cs_desc": "启用后AdGuard Home将会向DNS服务器发送客户端的子网地址进行查询",
|
||||
"rate_limit_desc": "每个客户端每秒钟查询次数的限制 (设置为 0 意味着不限制)",
|
||||
"rate_limit_desc": "每个客户端每秒钟查询次数的限制。设置为 0 意味着不限制。",
|
||||
"blocking_ipv4_desc": "拦截 A 记录请求返回的 IP 地址",
|
||||
"blocking_ipv6_desc": "拦截 AAAA 记录请求返回的 IP 地址",
|
||||
"blocking_mode_default": "默认:被 Adblock 规则拦截时反应为零 IP 地址(A记录:0.0.0.0;AAAA记录:::);被/etc/hosts 规则拦截时反应为规则中指定 IP 地址",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "路由器",
|
||||
"install_devices_router_desc": "此设置将自动覆盖连接到您的家庭路由器的所有设备,您不需要手动配置它们。",
|
||||
"install_devices_address": "AdGuard Home DNS 服务器正在监听以下地址",
|
||||
"install_devices_router_list_1": "打开您的路由器配置界面。通常情况下,您可以通过浏览器访问地址(如 http://192.168.0.1/ 或 http://192.168.1.1 )。打开后您可能需要输入密码以进入配置界面。如果您不记得密码,通常可以通过按下路由器上的重置按钮来重设密码。一些路由器可能需要通过特定的应用来进行这一操作,请确保您已经在计算机或手机上安装了相关应用。",
|
||||
"install_devices_router_list_1": "打开您的路由器配置界面。通常情况下,您可以通过浏览器访问地址(如 http://192.168.0.1/ 或 http://192.168.1.1 )。打开后您可能需要输入密码以进入配置界面。如果您不记得密码,通常可以通过路由器上的重置按钮来重设密码。但是,请注意,如您进行此操作,您最可能会失去所有路由器的配置。如果您的路由器需要通过特定的应用进行这一操作,请将相关应用程序安装到您的手机或计算机上并使用它设置您的路由器。",
|
||||
"install_devices_router_list_2": "找到路由器的 DHCP/DNS 设置页面。您会在 DNS 这一单词旁边找到两到三行允许输入的输入框,每一行输入框分为四组,每组允许输入一到三个数字。",
|
||||
"install_devices_router_list_3": "请在此处输入您的 AdGuard Home 服务器地址。",
|
||||
"install_devices_router_list_4": "在某些类型的路由器上无法设置自定义 DNS 服务器。在此情况下将 AdGuard Home 设置为 DHCP 服务器,可能会有所帮助。否则您应该查找如何根据特定路由器型号设置 DNS 服务器的使用手册。\n",
|
||||
"install_devices_router_list_4": "在某些类型的路由器上无法设置自定义 DNS 服务器。在此情况下将 AdGuard Home 设置为 <0>DHCP 服务器</0>,可能会有所帮助。否则您应该查找如何根据特定路由器型号设置 DNS 服务器的使用手册。",
|
||||
"install_devices_windows_list_1": "通过开始菜单或 Windows 搜索功能打开控制面板。",
|
||||
"install_devices_windows_list_2": "点击进入 ”网络和 Internet“ 后,再次点击进入 “网络和共享中心”",
|
||||
"install_devices_windows_list_3": "在窗口的左侧找到 ”更改适配器设置“ 并点击进入。",
|
||||
@@ -367,7 +373,7 @@
|
||||
"topline_expired_certificate": "您的 SSL 证书已过期。请更新 <0>加密设置</0> 。",
|
||||
"form_error_port_range": "输入 80 - 65535 范围内的端口值",
|
||||
"form_error_port_unsafe": "这是一个不安全的端口",
|
||||
"form_error_equal": "不应该相同",
|
||||
"form_error_equal": "不可相同",
|
||||
"form_error_password": "密码不匹配",
|
||||
"reset_settings": "重置设置",
|
||||
"update_announcement": "AdGuard Home {{version}} 现已发布! <0>点击此处</0> 以获取详细信息。",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP 地址",
|
||||
"client_identifier_desc": "客户端可通过 IP 、MAC 地址、CIDR 或特殊 ID(可用于 DoT/DoH/DoQ)被识别。<0>这里</0>您可多了解如何识别客户端。",
|
||||
"form_enter_ip": "输入 IP",
|
||||
"form_enter_subnet_ip": "输入一个 IP 地址,其须位于子网\"{{cidr}}\"",
|
||||
"form_enter_mac": "输入 MAC",
|
||||
"form_enter_id": "输入标识符",
|
||||
"form_add_id": "添加标识符",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "不允许的客户端",
|
||||
"access_disallowed_desc": "CIDR 或 IP 地址列表。如配置,则 AdGuard Home 会放弃源自这些 IP 地址的请求。",
|
||||
"access_blocked_title": "不允许的域名",
|
||||
"access_blocked_desc": "不要将此功能与过滤器混淆。AdGuard Home 将在查询时删除具有这些网域的 DNS 查询。在此可以明确指定域名、通配符(wildcard)和网址过滤器规则,例如 'example.org'、'*.example.org' 或 '||example.org^'。",
|
||||
"access_blocked_desc": "不要将此功能与过滤器混淆。AdGuard Home 将在查询时删除具有这些网域的 DNS 查询。在此可以明确指定域名、通配符(wildcard)和网址过滤器的规则,例如 \"example.org\"、\"*.example.org\" 或 \"||example.org^\"。",
|
||||
"access_settings_saved": "访问设置保存成功",
|
||||
"updates_checked": "检查更新成功",
|
||||
"updates_version_equal": "AdGuard Home已经是最新版本",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "禁用 IPv6",
|
||||
"disable_ipv6_desc": "启用后,所有IPv6地址 (type AAAA) 的DNS查询都会被丢弃。",
|
||||
"fastest_addr": "最快的 IP 地址",
|
||||
"fastest_addr_desc": "查询所有DNS服务器并返回所有响应中速度最快的IP地址。因必须等待全部DNS服务器均有所回应,因而会降低DNS查询的速度,但同时此举将会改善总体的连接。",
|
||||
"fastest_addr_desc": "查询所有 DNS 服务器并返回所有响应中速度最快的 IP 地址。因 AdGuard Home 必须等待全部 DNS 服务器均有所回应,因而会降低 DNS 查询的速度,但同时,此举将会改善总体的连接。",
|
||||
"autofix_warning_text": "若您单击“修复”,AdGuardHome将会配置您的系统以使用AdGuardHome的DNS服务器",
|
||||
"autofix_warning_list": "其将会进行如下工作:<0>停用系统DNSStubListener</0><0>设置DNS服务器地址为127.0.0.1</0><0>将/etc/resolv.conf的符号链接目标替换为/run/systemd/resolv/resolv.conf</0><0>停止DNSStubListener(重新加载系统解析服务)</0>",
|
||||
"autofix_warning_result": "因此,默认情况下所有来自系统的DNS请求都将由AdGuardHome处理。",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "设置一个静态IP",
|
||||
"install_static_ok": "好消息!静态IP地址已经配置",
|
||||
"install_static_error": "AdGuard Home 无法为这个网络接口自动配置它。请参阅如何手动完成此操作的说明。",
|
||||
"install_static_configure": "我们检测到一个动态IP地址—<0>{{ip}}</0>被使用。您想把它作为您的静态地址吗?",
|
||||
"install_static_configure": "AdGuard Home 检测到一个动态 IP 地址 <0>{{ip}}</0> 被使用。您想把它作为您的静态地址吗?",
|
||||
"confirm_static_ip": "AdGuard Home 将把{{ip}} 配置为您的静态IP地址。您想要继续吗?",
|
||||
"list_updated": "{{count}} 列表已更新",
|
||||
"list_updated_plural": "{{count}} 条列表已更新",
|
||||
@@ -587,11 +594,11 @@
|
||||
"filter_category_security_desc": "专用于拦截恶意软件、钓鱼或欺诈域名的列表",
|
||||
"filter_category_regional_desc": "专注于区域广告和跟踪服务器的列表",
|
||||
"filter_category_other_desc": "其他阻止列表",
|
||||
"setup_config_to_enable_dhcp_server": "设置配置以启用DHCP服务器",
|
||||
"setup_config_to_enable_dhcp_server": "设置配置以启用 DHCP 服务器",
|
||||
"original_response": "原始响应",
|
||||
"click_to_view_queries": "点击查看查询",
|
||||
"port_53_faq_link": "53端口常被DNSStubListener或systemdn解析的服务占用。请阅读<0>这份关于如何解决这一问题的说明</0>",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home 会终止所有来自此客户端的DNS查询。",
|
||||
"client_not_in_allowed_clients": "此客户端不被允许,因为它不在“允许的客户端”列表中。",
|
||||
"experimental": "实验性的"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
"form_error_ip_format": "無效的 IP 格式",
|
||||
"form_error_mac_format": "無效的 「MAC 位址」格式",
|
||||
"form_error_client_id_format": "無效的「客戶端 ID」格式",
|
||||
"form_error_server_name": "無效伺服器名稱",
|
||||
"form_error_positive": "數值必須大於 0",
|
||||
"form_error_negative": "數值必須大於等於 0",
|
||||
"range_end_error": "必須大於起始值",
|
||||
@@ -247,10 +248,16 @@
|
||||
"custom_ip": "自訂 IP 位址",
|
||||
"blocking_ipv4": "封鎖 IPv4",
|
||||
"blocking_ipv6": "封鎖 IPv6",
|
||||
"dnscrypt": "DNSCrypt",
|
||||
"dns_over_https": "DNS-over-HTTPS",
|
||||
"dns_over_tls": "DNS-over-TLS",
|
||||
"dns_over_quic": "DNS-over-QUIC",
|
||||
"client_id": "用戶端 ID",
|
||||
"client_id_placeholder": "輸入用戶端 ID",
|
||||
"client_id_desc": "可通過建立不同用戶端 ID 來辨識不同裝置。您可以在<a>這裡</a>進一步了解如何辨識用戶端。",
|
||||
"download_mobileconfig_doh": "下載適用於 DNS-over-HTTPS 的 .mobileconfig",
|
||||
"download_mobileconfig_dot": "下載適用於 DNS-over-TLS 的 .mobileconfig",
|
||||
"download_mobileconfig": "下載描述檔",
|
||||
"plain_dns": "一般未加密 DNS",
|
||||
"form_enter_rate_limit": "輸入速率限制",
|
||||
"rate_limit": "速率限制",
|
||||
@@ -269,6 +276,7 @@
|
||||
"source_label": "來源",
|
||||
"found_in_known_domain_db": "在已知網域資料庫中找到。",
|
||||
"category_label": "類別",
|
||||
"rule_label": "規則",
|
||||
"list_label": "清單",
|
||||
"unknown_filter": "未知過濾器 {{filterId}}",
|
||||
"known_tracker": "已知追蹤器",
|
||||
@@ -290,7 +298,7 @@
|
||||
"install_auth_username_enter": "輸入用戶名",
|
||||
"install_auth_password_enter": "輸入密碼",
|
||||
"install_step": "步驟",
|
||||
"install_devices_title": "配置您的裝置",
|
||||
"install_devices_title": "設定您的裝置",
|
||||
"install_devices_desc": "要開始使用 AdGuard Home,您需要設定好裝置才能使用。",
|
||||
"install_submit_title": "恭喜!",
|
||||
"install_submit_desc": "安裝步驟已完成,現在已經可以開始使用 AdGuard Home",
|
||||
@@ -329,6 +337,7 @@
|
||||
"encryption_config_saved": "加密設定已儲存",
|
||||
"encryption_server": "伺服器名稱",
|
||||
"encryption_server_enter": "輸入您的網域名稱",
|
||||
"encryption_server_desc": "要使用 HTTPS,您必須輸入與您 SSL 憑證相符的伺服器名稱。",
|
||||
"encryption_redirect": "自動重新導向到 HTTPS",
|
||||
"encryption_redirect_desc": "如果啟用,AdGuard Home 將會自動導向 HTTP 到 HTTPS。",
|
||||
"encryption_https": "HTTPS 連接埠",
|
||||
@@ -384,6 +393,7 @@
|
||||
"client_edit": "編輯用戶端",
|
||||
"client_identifier": "識別碼",
|
||||
"ip_address": "IP 位址",
|
||||
"client_identifier_desc": "可通過 IP 地址、CIDR、MAC 地址來辨識使用者裝置。注意:必須使用 AdGuard Home 內建 <0>DHCP 伺服器</0> 才能偵測 MAC 地址。",
|
||||
"form_enter_ip": "輸入 IP",
|
||||
"form_enter_mac": "輸入 MAC 地址",
|
||||
"form_enter_id": "輸入識別碼",
|
||||
@@ -406,7 +416,7 @@
|
||||
"access_disallowed_title": "用戶端黑名單",
|
||||
"access_disallowed_desc": "輸入 CIDR 或 IP 位址格式的清單,設定後 AdGuard Home 將拒絕設定的 IP 位址查詢請求。",
|
||||
"access_blocked_title": "網域黑名單",
|
||||
"access_blocked_desc": "請不要與過濾器混淆,AdGuard Home 將對這些網域執行過濾檢查,而是直接拒絕查詢。您可以輸入特定網域名稱來使用設定,或使用萬用字元,例如:「example.org」、「*.example.org」或「||example.org^」。",
|
||||
"access_blocked_desc": "請不要與過濾器搞混,AdGuard Home 將對這些網域執行過濾檢查後丟棄 DNS 請求。您可以輸入特定網域名稱來使用設定,或使用萬用字元,例如:「example.org」、「*.example.org」或「||example.org^」。",
|
||||
"access_settings_saved": "存取設定已儲存",
|
||||
"updates_checked": "檢查更新成功",
|
||||
"updates_version_equal": "AdGuard Home 是最新的版本",
|
||||
@@ -427,6 +437,7 @@
|
||||
"setup_dns_privacy_other_3": "<0>dnscrypt-proxy</0> 支援 <1>DNS-over-HTTPS</1>。",
|
||||
"setup_dns_privacy_other_4": "<0>Mozilla Firefox</0> 支援 <1>DNS-over-HTTPS</1>。",
|
||||
"setup_dns_privacy_other_5": "您可以在<0>這裏</0>與<1>這裏</1>找到更多實作軟體。",
|
||||
"setup_dns_privacy_ioc_mac": "iOS 與 macOS 描述檔",
|
||||
"setup_dns_notice": "要使用 <1>DNS-over-HTTPS</1> 或 <1>DNS-over-TLS</1>,您必須先在 AdGuard Home 完成 <0>加密設定</0>。",
|
||||
"rewrite_added": "「{{key}}」的 DNS 覆寫新增成功",
|
||||
"rewrite_deleted": "「{{key}}」的 DNS 覆寫刪除成功",
|
||||
@@ -583,4 +594,4 @@
|
||||
"adg_will_drop_dns_queries": "AdGuard Home 將停止回應此用戶端的所有 DNS 查詢。",
|
||||
"client_not_in_allowed_clients": "此用戶端不被允許,它不在\"允許的用戶端\"列表中。",
|
||||
"experimental": "實驗性"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
"client_settings": "用戶端設定",
|
||||
"example_upstream_reserved": "您可<0>對於特定的網域</0>明確指定 DNS 上游",
|
||||
"example_upstream_comment": "您可明確指定註解",
|
||||
"upstream_parallel": "透過同時地查詢所有上游的伺服器,使用並行的查詢以加速解析網域",
|
||||
"upstream_parallel": "透過同時地查詢所有上游的伺服器,使用並行的查詢以加速解析。",
|
||||
"parallel_requests": "並行的請求",
|
||||
"load_balancing": "負載平衡",
|
||||
"load_balancing_desc": "每次查詢一個伺服器。AdGuard Home 將使用加權隨機的演算法來選擇伺服器,以便最快的伺服器將被更常使用。",
|
||||
"load_balancing_desc": "每次查詢一個上游伺服器。AdGuard Home 將使用加權隨機的演算法來選擇伺服器,以便最快的伺服器被更常使用。",
|
||||
"bootstrap_dns": "自我啟動(Bootstrap)DNS 伺服器",
|
||||
"bootstrap_dns_desc": "自我啟動(Bootstrap)DNS 伺服器被用於解析您明確指定作為上游的 DoH/DoT 解析器之 IP 位址。",
|
||||
"local_ptr_title": "私人 DNS 伺服器",
|
||||
"local_ptr_desc": "AdGuard Home 用於區域指標(PTR)查詢之 DNS 伺服器。這些伺服器被用於解析含私人 IP 位址的用戶端之主機名稱,例如,\"192.168.12.34\",使用反向的 DNS(rDNS)。如果未被設定,AdGuard Home 使用您的作業系統之預設 DNS 解析器。",
|
||||
"local_ptr_placeholder": "每行輸入一個伺服器位址",
|
||||
"resolve_clients_title": "啟用用戶端的 IP 位址之反向的解析",
|
||||
"resolve_clients_desc": "如果被啟用,透過傳送指標(PTR)查詢到對應的解析器(私人 DNS 伺服器供區域的用戶端,上游的伺服器供有公共 IP 位址的用戶端),AdGuard Home 將試圖反向地解析用戶端的 IP 位址變為它們的主機名稱。",
|
||||
"check_dhcp_servers": "檢查動態主機設定協定(DHCP)伺服器",
|
||||
"save_config": "儲存配置",
|
||||
"enabled_dhcp": "動態主機設定協定(DHCP)伺服器被啟用",
|
||||
@@ -18,7 +23,7 @@
|
||||
"dhcp_description": "如果您的路由器未提供動態主機設定協定(DHCP)設定,您可使用 AdGuard 自身內建的 DHCP 伺服器。",
|
||||
"dhcp_enable": "啟用動態主機設定協定(DHCP)伺服器",
|
||||
"dhcp_disable": "禁用動態主機設定協定(DHCP)伺服器",
|
||||
"dhcp_not_found": "啟用內建的動態主機設定協定(DHCP)伺服器為安全的 - 於該網路上,我們未發現任何現行的 DHCP 伺服器。然而,我們鼓勵您手動地重新檢查它,因為我們的自動之測試目前不予 100% 保證。",
|
||||
"dhcp_not_found": "因為 AdGuard Home 於該網路上未發現任何現行的 DHCP 伺服器,啟用內建的動態主機設定協定(DHCP)伺服器為安全的。然而,您應手動地重新檢查那個,因為自動的探查目前不予 100% 保證。",
|
||||
"dhcp_found": "於該網路上,一個現行的動態主機設定協定(DHCP)伺服器被發現。啟用內建的 DHCP 伺服器為不安全的。",
|
||||
"dhcp_leases": "動態主機設定協定(DHCP)租約",
|
||||
"dhcp_static_leases": "動態主機設定協定(DHCP)靜態租約",
|
||||
@@ -33,6 +38,7 @@
|
||||
"form_error_mac_format": "無效的媒體存取控制(MAC)格式",
|
||||
"form_error_client_id_format": "無效的用戶端 ID 格式",
|
||||
"form_error_server_name": "無效的伺服器名稱",
|
||||
"form_error_subnet": "子網路 \"{{cidr}}\" 不包含該 IP 位址 \"{{ip}}\"",
|
||||
"form_error_positive": "必須大於 0",
|
||||
"form_error_negative": "必須等於或大於 0",
|
||||
"range_end_error": "必須大於起始範圍",
|
||||
@@ -49,10 +55,10 @@
|
||||
"ip": "IP",
|
||||
"dhcp_table_hostname": "主機名稱",
|
||||
"dhcp_table_expires": "到期",
|
||||
"dhcp_warning": "如果您無論如何想要啟用動態主機設定協定(DHCP)伺服器,確保在您的網路中無其它現行的 DHCP 伺服器。否則,它可能會破壞供已連線的裝置之網際網路!",
|
||||
"dhcp_error": "我們無法確定在該網路是否有另外的動態主機設定協定(DHCP)伺服器。",
|
||||
"dhcp_static_ip_error": "為了使用動態主機設定協定(DHCP)伺服器,靜態 IP 位址必須被設定。我們未能確定該網路介面是否被配置使用靜態 IP 位址。請手動地設定靜態 IP 位址。",
|
||||
"dhcp_dynamic_ip_found": "您的系統使用動態 IP 位址配置供介面 <0>{{interfaceName}}</0>。為了使用動態主機設定協定(DHCP)伺服器,靜態 IP 位址必須被設定。您現行的 IP 位址為 <0>{{ipAddress}}</0>。如果您按啟用 DHCP 按鈕,我們將自動地設定此 IP 位址作為靜態。",
|
||||
"dhcp_warning": "如果您無論如何想要啟用動態主機設定協定(DHCP)伺服器,確保在您的網路中無其它現行的 DHCP 伺服器,因為對於該網路上的裝置,這可能破壞其網際網路連線!",
|
||||
"dhcp_error": "AdGuard Home 無法確定於該網路上是否有另外現行的動態主機設定協定(DHCP)伺服器。",
|
||||
"dhcp_static_ip_error": "為了使用動態主機設定協定(DHCP)伺服器,靜態 IP 位址必須被設定。AdGuard Home 未能確定此網路介面是否被配置使用靜態 IP 位址。請手動地設定靜態 IP 位址。",
|
||||
"dhcp_dynamic_ip_found": "您的系統使用動態 IP 位址配置供介面 <0>{{interfaceName}}</0>。為了使用動態主機設定協定(DHCP)伺服器,靜態 IP 位址必須被設定。您現行的 IP 位址為 <0>{{ipAddress}}</0>。如果您按\"啟用 DHCP 伺服器\" 按鈕,AdGuard Home 將自動地設定此 IP 位址作為靜態。",
|
||||
"dhcp_lease_added": "靜態租約 \"{{key}}\" 被成功地加入",
|
||||
"dhcp_lease_deleted": "靜態租約 \"{{key}}\" 被成功地刪除",
|
||||
"dhcp_new_static_lease": "新的靜態租約",
|
||||
@@ -134,7 +140,7 @@
|
||||
"encryption_settings": "加密設定",
|
||||
"dhcp_settings": "動態主機設定協定(DHCP)設定",
|
||||
"upstream_dns": "上游的 DNS 伺服器",
|
||||
"upstream_dns_help": "輸入伺服器位址,每行一個。<a>了解更多</a>有關配置上游的 DNS 伺服器。",
|
||||
"upstream_dns_help": "每行輸入一個伺服器位址。<a>了解更多</a>有關配置上游的 DNS 伺服器。",
|
||||
"upstream_dns_configured_in_file": "被配置在 {{path}}",
|
||||
"test_upstream_btn": "測試上行資料流",
|
||||
"upstreams": "上游",
|
||||
@@ -263,7 +269,7 @@
|
||||
"rate_limit": "速率限制",
|
||||
"edns_enable": "啟用對於 DNS 的擴充機制(EDNS)用戶端子網路",
|
||||
"edns_cs_desc": "如果被啟用,AdGuard Home 將持續傳送用戶端的子網路到 DNS 伺服器。",
|
||||
"rate_limit_desc": "單一的用戶端被允許傳送的每秒請求之數量(設定它為 0 表示無限制的)",
|
||||
"rate_limit_desc": "每個用戶端被允許的每秒請求之數量。設定它為 0 表示無限制。",
|
||||
"blocking_ipv4_desc": "要被返回給已封鎖的 A 請求之 IP 位址",
|
||||
"blocking_ipv6_desc": "要被返回給已封鎖的 AAAA 請求之 IP 位址",
|
||||
"blocking_mode_default": "預設:當被 AdBlock 樣式的規則封鎖時,以零值 IP 位址(0.0.0.0 供 A;:: 供 AAAA)回覆;當被 /etc/hosts 樣式的規則封鎖時,以在該規則中之已明確指定的 IP 位址回覆",
|
||||
@@ -286,12 +292,12 @@
|
||||
"install_settings_listen": "監聽介面",
|
||||
"install_settings_port": "連接埠",
|
||||
"install_settings_interface_link": "您的 AdGuard Home 管理員網路介面將於下列的位址上為可用的:",
|
||||
"form_error_port": "輸入有效的連接埠值",
|
||||
"form_error_port": "輸入有效的連接埠號碼",
|
||||
"install_settings_dns": "DNS 伺服器",
|
||||
"install_settings_dns_desc": "您將需要配置您的裝置或路由器以使用於下列的位址上之 DNS 伺服器:",
|
||||
"install_settings_all_interfaces": "所有的介面",
|
||||
"install_auth_title": "驗證",
|
||||
"install_auth_desc": "我們強烈建議您設定 AdGuard Home 管理員網路介面密碼。即使它僅能在您的區域網路中使用,保護它免於不受限制的存取仍然很重要。",
|
||||
"install_auth_desc": "配置屬於您的 AdGuard Home 管理員網路介面之密碼驗證是被非常建議的。即使它僅在您的區域網路中為可存取的,保護它免於不受限制的存取為仍然重要的。",
|
||||
"install_auth_username": "使用者名稱",
|
||||
"install_auth_password": "密碼",
|
||||
"install_auth_confirm": "確認密碼",
|
||||
@@ -305,10 +311,10 @@
|
||||
"install_devices_router": "路由器",
|
||||
"install_devices_router_desc": "此設置將自動地涵蓋所有被連線至您的家庭路由器之裝置,且您將無需手動地配置它們每個。",
|
||||
"install_devices_address": "AdGuard Home DNS 伺服器正在監聽下列的位址",
|
||||
"install_devices_router_list_1": "開啟關於您的路由器之偏好設定。通常地,您可透過網址(如 http://192.168.0.1/ 或 http://192.168.1.1/)從您的瀏覽器中存取它。您可能被要求輸入該密碼。如果您不記得它,您經常可透過按壓於該路由器本身上的按鈕來重置密碼。某些路由器需要特定的應用程式,既然如此其應已被安裝於您的電腦/手機上。",
|
||||
"install_devices_router_list_1": "開啟用於您的路由器之偏好設定。通常地,您可透過網址,諸如 http://192.168.0.1/ 或 http://192.168.1.1/,從您的瀏覽器中存取它。您可能被提醒輸入密碼。如果您不記得它,您經常可透過按壓於該路由器本身上的按鈕來重置密碼,但請明白如果此步驟被選擇,您將可能失去整個路由器配置。如果您的路由器需要應用程式去設置它,請於您的手機或個人電腦上安裝該應用程式,並使用它來存取該路由器的設定。",
|
||||
"install_devices_router_list_2": "找到 DHCP/DNS 設定。尋找緊鄰著允許兩組或三組數字集的欄位之 DNS 字母,每組被拆成四個含有一至三個數字的群集。",
|
||||
"install_devices_router_list_3": "在那裡輸入您的 AdGuard Home 伺服器位址。",
|
||||
"install_devices_router_list_4": "您無法於某些類型的路由器上設定自訂的 DNS 伺服器。在這種情況下,如果您設置 AdGuard Home 作為 <0>DHCP 伺服器</0>,其可能有所幫助。否則,您應搜尋有關如何為您的特定路由器型號自訂 DNS 伺服器之用法說明。",
|
||||
"install_devices_router_list_4": "於某些路由器機型上,自訂的 DNS 伺服器無法被設置。在這種情況下,設置 AdGuard Home 作為 <0>DHCP</0> 伺服器可能有所幫助。否則,您應查明有關如何對您的特定路由器型號自訂 DNS 伺服器之路由器用法說明。",
|
||||
"install_devices_windows_list_1": "通過開始功能表或 Windows 搜尋,開啟控制台。",
|
||||
"install_devices_windows_list_2": "去網路和網際網路類別,然後去網路和共用中心。",
|
||||
"install_devices_windows_list_3": "於畫面之左側上找到變更介面卡設定並向它點擊。",
|
||||
@@ -365,9 +371,9 @@
|
||||
"encryption_reset": "您確定您想要重置加密設定嗎?",
|
||||
"topline_expiring_certificate": "您的安全通訊端層(SSL)憑證即將到期。更新<0>加密設定</0>。",
|
||||
"topline_expired_certificate": "您的安全通訊端層(SSL)憑證為已到期的。更新<0>加密設定</0>。",
|
||||
"form_error_port_range": "在 80-65535 之範圍內輸入連接埠值",
|
||||
"form_error_port_range": "輸入在 80-65535 之範圍內的連接埠號碼",
|
||||
"form_error_port_unsafe": "此為不安全的連接埠",
|
||||
"form_error_equal": "不應為相等的",
|
||||
"form_error_equal": "必須為不相等的",
|
||||
"form_error_password": "不相符的密碼",
|
||||
"reset_settings": "重置設定",
|
||||
"update_announcement": "AdGuard Home {{version}} 現為可用的!關於更多的資訊,<0>點擊這裡</0>。",
|
||||
@@ -395,6 +401,7 @@
|
||||
"ip_address": "IP 位址",
|
||||
"client_identifier_desc": "用戶端可根據 IP 位址、無類別網域間路由(CIDR)、媒體存取控制(MAC)位址或特殊的用戶端 ID(可被用於 DoT/DoH/DoQ)被識別。<0>於此</0>,您可了解更多關於如何識別用戶端。",
|
||||
"form_enter_ip": "輸入 IP",
|
||||
"form_enter_subnet_ip": "在子網路 \"{{cidr}}\" 中輸入一組 IP 位址",
|
||||
"form_enter_mac": "輸入媒體存取控制(MAC)",
|
||||
"form_enter_id": "輸入識別碼",
|
||||
"form_add_id": "增加識別碼",
|
||||
@@ -416,7 +423,7 @@
|
||||
"access_disallowed_title": "不允許的用戶端",
|
||||
"access_disallowed_desc": "無類別網域間路由(CIDR)或 IP 位址之清單。如果被配置,AdGuard Home 將排除來自這些 IP 位址的請求。",
|
||||
"access_blocked_title": "不允許的網域",
|
||||
"access_blocked_desc": "不要把這個和過濾器混淆。AdGuard Home 將從查詢的詢問中排除有這些網域的 DNS 查詢。您可於此明確指定確切的域名、萬用字元(wildcard)和網址過濾器的規則,例如,'example.org'、'*.example.org' 或 '||example.org^'。",
|
||||
"access_blocked_desc": "不要把這個和過濾器混淆。AdGuard Home 將從查詢的詢問中排除有這些網域的 DNS 查詢。您可於此明確指定確切的域名、萬用字元(wildcard)和網址過濾器的規則,例如,\"example.org\"、\"*.example.org\" 或 \"||example.org^\"。",
|
||||
"access_settings_saved": "存取設定被成功地儲存",
|
||||
"updates_checked": "更新被成功地檢查",
|
||||
"updates_version_equal": "AdGuard Home 為最新的",
|
||||
@@ -519,7 +526,7 @@
|
||||
"disable_ipv6": "禁用 IPv6",
|
||||
"disable_ipv6_desc": "如果此功能被啟用,所有對於 IPv6 位址(類型 AAAA)的 DNS 查詢將被丟棄。",
|
||||
"fastest_addr": "最快的 IP 位址",
|
||||
"fastest_addr_desc": "查詢所有的 DNS 伺服器並返回在所有的回應之中最快的 IP 位址。因為我們必須等待來自所有的 DNS 伺服器之回應,這將使 DNS 查詢變慢,但改善總體的連線。",
|
||||
"fastest_addr_desc": "查詢所有的 DNS 伺服器並返回在所有的回應之中最快的 IP 位址。因為 AdGuard Home 必須等待來自所有的 DNS 伺服器之回應,這使 DNS 查詢變慢,但改善總體的連線。",
|
||||
"autofix_warning_text": "如果您點擊\"修復\",AdGuard Home 將配置您的系統使用 AdGuard Home DNS 伺服器。",
|
||||
"autofix_warning_list": "它將執行這些任務:<0>撤銷系統 DNSStubListener</0> <0>設定 DNS 伺服器位址為 127.0.0.1</0> <0>用 /run/systemd/resolve/resolv.conf 取代 /etc/resolv.conf 的符號連結目標</0> <0>停止 DNSStubListener(重新載入 systemd 已解析的服務)</0>",
|
||||
"autofix_warning_result": "因此,預設下,來自您的系統之所有的 DNS 請求將被 AdGuard Home 處理。",
|
||||
@@ -549,7 +556,7 @@
|
||||
"set_static_ip": "設定一組靜態 IP 位址",
|
||||
"install_static_ok": "好消息!該靜態 IP 位址已被配置",
|
||||
"install_static_error": "AdGuard Home 無法自動地配置它供此網路介面。請尋找有關如何手動地完成這個的用法說明。",
|
||||
"install_static_configure": "我們已偵測到一組動態 IP 位址被使用 — <0>{{ip}}</0>。您想要使用它作為您的靜態位址嗎?",
|
||||
"install_static_configure": "AdGuard Home 已偵測到動態 IP 位址 <0>{{ip}}</0> 被使用。您想要它被設定為您的靜態位址嗎?",
|
||||
"confirm_static_ip": "AdGuard Home 將配置 {{ip}} 為您的靜態 IP 位址。您想要繼續嗎?",
|
||||
"list_updated": "{{count}} 清單被更新",
|
||||
"list_updated_plural": "{{count}} 清單被更新",
|
||||
@@ -594,4 +601,4 @@
|
||||
"adg_will_drop_dns_queries": "AdGuard Home 將持續排除來自此用戶端之所有的 DNS 查詢。",
|
||||
"client_not_in_allowed_clients": "該用戶端未被允許,因為它不在\"已允許的用戶端\"清單中。",
|
||||
"experimental": "實驗性的"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { sortIp, countClientsStatistics, findAddressType } from '../helpers/helpers';
|
||||
import {
|
||||
sortIp,
|
||||
countClientsStatistics,
|
||||
findAddressType,
|
||||
subnetMaskToBitMask,
|
||||
} from '../helpers/helpers';
|
||||
import { ADDRESS_TYPES } from '../helpers/constants';
|
||||
|
||||
describe('sortIp', () => {
|
||||
@@ -406,3 +411,50 @@ describe('countClientsStatistics', () => {
|
||||
})).toStrictEqual(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('subnetMaskToBitMask', () => {
|
||||
const subnetMasks = [
|
||||
'0.0.0.0',
|
||||
'128.0.0.0',
|
||||
'192.0.0.0',
|
||||
'224.0.0.0',
|
||||
'240.0.0.0',
|
||||
'248.0.0.0',
|
||||
'252.0.0.0',
|
||||
'254.0.0.0',
|
||||
'255.0.0.0',
|
||||
'255.128.0.0',
|
||||
'255.192.0.0',
|
||||
'255.224.0.0',
|
||||
'255.240.0.0',
|
||||
'255.248.0.0',
|
||||
'255.252.0.0',
|
||||
'255.254.0.0',
|
||||
'255.255.0.0',
|
||||
'255.255.128.0',
|
||||
'255.255.192.0',
|
||||
'255.255.224.0',
|
||||
'255.255.240.0',
|
||||
'255.255.248.0',
|
||||
'255.255.252.0',
|
||||
'255.255.254.0',
|
||||
'255.255.255.0',
|
||||
'255.255.255.128',
|
||||
'255.255.255.192',
|
||||
'255.255.255.224',
|
||||
'255.255.255.240',
|
||||
'255.255.255.248',
|
||||
'255.255.255.252',
|
||||
'255.255.255.254',
|
||||
'255.255.255.255',
|
||||
];
|
||||
|
||||
test('correct for all subnetMasks', () => {
|
||||
expect(
|
||||
subnetMasks.map((subnetMask) => {
|
||||
const bitmask = subnetMaskToBitMask(subnetMask);
|
||||
return subnetMasks[bitmask] === subnetMask;
|
||||
}).every((res) => res === true),
|
||||
).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -33,6 +33,10 @@ export const setDnsConfig = (config) => async (dispatch) => {
|
||||
data.bootstrap_dns = splitByNewLine(config.bootstrap_dns);
|
||||
hasDnsSettings = true;
|
||||
}
|
||||
if (Object.prototype.hasOwnProperty.call(data, 'local_ptr_upstreams')) {
|
||||
data.local_ptr_upstreams = splitByNewLine(config.local_ptr_upstreams);
|
||||
hasDnsSettings = true;
|
||||
}
|
||||
if (Object.prototype.hasOwnProperty.call(data, 'upstream_dns')) {
|
||||
data.upstream_dns = splitByNewLine(config.upstream_dns);
|
||||
hasDnsSettings = true;
|
||||
|
||||
@@ -296,7 +296,7 @@ export const testUpstreamFailure = createAction('TEST_UPSTREAM_FAILURE');
|
||||
export const testUpstreamSuccess = createAction('TEST_UPSTREAM_SUCCESS');
|
||||
|
||||
export const testUpstream = (
|
||||
{ bootstrap_dns, upstream_dns }, upstream_dns_file,
|
||||
{ bootstrap_dns, upstream_dns, local_ptr_upstreams }, upstream_dns_file,
|
||||
) => async (dispatch) => {
|
||||
dispatch(testUpstreamRequest());
|
||||
try {
|
||||
@@ -304,6 +304,7 @@ export const testUpstream = (
|
||||
|
||||
const config = {
|
||||
bootstrap_dns: splitByNewLine(bootstrap_dns),
|
||||
private_upstream: splitByNewLine(local_ptr_upstreams),
|
||||
...(upstream_dns_file ? null : {
|
||||
upstream_dns: removeComments(upstream_dns),
|
||||
}),
|
||||
@@ -332,8 +333,17 @@ export const testUpstream = (
|
||||
|
||||
export const testUpstreamWithFormValues = () => async (dispatch, getState) => {
|
||||
const { upstream_dns_file } = getState().dnsConfig;
|
||||
const { bootstrap_dns, upstream_dns } = getState().form[FORM_NAME.UPSTREAM].values;
|
||||
return dispatch(testUpstream({ bootstrap_dns, upstream_dns }, upstream_dns_file));
|
||||
const {
|
||||
bootstrap_dns,
|
||||
upstream_dns,
|
||||
local_ptr_upstreams,
|
||||
} = getState().form[FORM_NAME.UPSTREAM].values;
|
||||
|
||||
return dispatch(testUpstream({
|
||||
bootstrap_dns,
|
||||
upstream_dns,
|
||||
local_ptr_upstreams,
|
||||
}, upstream_dns_file));
|
||||
};
|
||||
|
||||
export const changeLanguageRequest = createAction('CHANGE_LANGUAGE_REQUEST');
|
||||
|
||||
@@ -1,23 +1,12 @@
|
||||
import { createAction } from 'redux-actions';
|
||||
|
||||
import apiClient from '../api/Api';
|
||||
import { normalizeLogs, getParamsForClientsSearch, addClientInfo } from '../helpers/helpers';
|
||||
import { normalizeLogs } from '../helpers/helpers';
|
||||
import {
|
||||
DEFAULT_LOGS_FILTER, FORM_NAME, QUERY_LOGS_PAGE_LIMIT,
|
||||
} from '../helpers/constants';
|
||||
import { addErrorToast, addSuccessToast } from './toasts';
|
||||
|
||||
const enrichWithClientInfo = async (logs) => {
|
||||
const clientsParams = getParamsForClientsSearch(logs, 'client', 'client_id');
|
||||
|
||||
if (Object.keys(clientsParams).length > 0) {
|
||||
const clients = await apiClient.findClients(clientsParams);
|
||||
return addClientInfo(logs, clients, 'client_id', 'client');
|
||||
}
|
||||
|
||||
return logs;
|
||||
};
|
||||
|
||||
const getLogsWithParams = async (config) => {
|
||||
const { older_than, filter, ...values } = config;
|
||||
const rawLogs = await apiClient.getQueryLog({
|
||||
@@ -25,11 +14,9 @@ const getLogsWithParams = async (config) => {
|
||||
older_than,
|
||||
});
|
||||
const { data, oldest } = rawLogs;
|
||||
const normalizedLogs = normalizeLogs(data);
|
||||
const logs = await enrichWithClientInfo(normalizedLogs);
|
||||
|
||||
return {
|
||||
logs,
|
||||
logs: normalizeLogs(data),
|
||||
oldest,
|
||||
older_than,
|
||||
filter,
|
||||
@@ -92,10 +79,8 @@ export const updateLogs = () => async (dispatch, getState) => {
|
||||
try {
|
||||
const { logs, oldest, older_than } = getState().queryLogs;
|
||||
|
||||
const enrichedLogs = await enrichWithClientInfo(logs);
|
||||
|
||||
dispatch(getLogsSuccess({
|
||||
logs: enrichedLogs,
|
||||
logs,
|
||||
oldest,
|
||||
older_than,
|
||||
}));
|
||||
|
||||
@@ -17,11 +17,8 @@ import { updateLogs } from '../../../actions/queryLogs';
|
||||
const ClientCell = ({
|
||||
client,
|
||||
client_id,
|
||||
client_info,
|
||||
domain,
|
||||
info,
|
||||
info: {
|
||||
name, whois_info, disallowed, disallowed_rule,
|
||||
},
|
||||
reason,
|
||||
}) => {
|
||||
const { t } = useTranslation();
|
||||
@@ -33,18 +30,22 @@ const ClientCell = ({
|
||||
|
||||
const autoClient = autoClients.find((autoClient) => autoClient.name === client);
|
||||
const source = autoClient?.source;
|
||||
const whoisAvailable = whois_info && Object.keys(whois_info).length > 0;
|
||||
const clientName = name || client_id;
|
||||
const clientInfo = { ...info, name: clientName };
|
||||
const whoisAvailable = client_info && Object.keys(client_info.whois).length > 0;
|
||||
const clientName = client_info?.name || client_id;
|
||||
const clientInfo = client_info && {
|
||||
...client_info,
|
||||
whois_info: client_info?.whois,
|
||||
name: clientName,
|
||||
};
|
||||
|
||||
const id = nanoid();
|
||||
|
||||
const data = {
|
||||
address: client,
|
||||
name: clientName,
|
||||
country: whois_info?.country,
|
||||
city: whois_info?.city,
|
||||
network: whois_info?.orgname,
|
||||
country: client_info?.whois?.country,
|
||||
city: client_info?.whois?.city,
|
||||
network: client_info?.whois?.orgname,
|
||||
source_label: source,
|
||||
};
|
||||
|
||||
@@ -53,7 +54,7 @@ const ClientCell = ({
|
||||
const isFiltered = checkFiltered(reason);
|
||||
|
||||
const nameClass = classNames('w-90 o-hidden d-flex flex-column', {
|
||||
'mt-2': isDetailed && !name && !whoisAvailable,
|
||||
'mt-2': isDetailed && !client_info?.name && !whoisAvailable,
|
||||
'white-space--nowrap': isDetailed,
|
||||
});
|
||||
|
||||
@@ -69,7 +70,11 @@ const ClientCell = ({
|
||||
confirmMessage,
|
||||
buttonKey: blockingClientKey,
|
||||
isNotInAllowedList,
|
||||
} = getBlockClientInfo(client, disallowed, disallowed_rule);
|
||||
} = getBlockClientInfo(
|
||||
client,
|
||||
client_info?.disallowed || false,
|
||||
client_info?.disallowed_rule || '',
|
||||
);
|
||||
|
||||
const blockingForClientKey = isFiltered ? 'unblock_for_this_client_only' : 'block_for_this_client_only';
|
||||
const clientNameBlockingFor = getBlockingClientName(clients, client);
|
||||
@@ -85,7 +90,11 @@ const ClientCell = ({
|
||||
name: blockingClientKey,
|
||||
onClick: async () => {
|
||||
if (window.confirm(confirmMessage)) {
|
||||
await dispatch(toggleClientBlock(client, disallowed, disallowed_rule));
|
||||
await dispatch(toggleClientBlock(
|
||||
client,
|
||||
client_info?.disallowed || false,
|
||||
client_info?.disallowed_rule || '',
|
||||
));
|
||||
await dispatch(updateLogs());
|
||||
}
|
||||
},
|
||||
@@ -199,20 +208,18 @@ const ClientCell = ({
|
||||
ClientCell.propTypes = {
|
||||
client: propTypes.string.isRequired,
|
||||
client_id: propTypes.string,
|
||||
client_info: propTypes.shape({
|
||||
ids: propTypes.arrayOf(propTypes.string).isRequired,
|
||||
name: propTypes.string.isRequired,
|
||||
whois: propTypes.shape({
|
||||
country: propTypes.string,
|
||||
city: propTypes.string,
|
||||
orgname: propTypes.string,
|
||||
}).isRequired,
|
||||
disallowed: propTypes.bool.isRequired,
|
||||
disallowed_rule: propTypes.string.isRequired,
|
||||
}),
|
||||
domain: propTypes.string.isRequired,
|
||||
info: propTypes.oneOfType([
|
||||
propTypes.string,
|
||||
propTypes.shape({
|
||||
name: propTypes.string.isRequired,
|
||||
whois_info: propTypes.shape({
|
||||
country: propTypes.string,
|
||||
city: propTypes.string,
|
||||
orgname: propTypes.string,
|
||||
}),
|
||||
disallowed: propTypes.bool.isRequired,
|
||||
disallowed_rule: propTypes.string.isRequired,
|
||||
}),
|
||||
]),
|
||||
reason: propTypes.string.isRequired,
|
||||
};
|
||||
|
||||
|
||||
@@ -29,11 +29,12 @@ import DateCell from './DateCell';
|
||||
import DomainCell from './DomainCell';
|
||||
import ResponseCell from './ResponseCell';
|
||||
import ClientCell from './ClientCell';
|
||||
import '../Logs.css';
|
||||
import { toggleClientBlock } from '../../../actions/access';
|
||||
import { getBlockClientInfo, BUTTON_PREFIX } from './helpers';
|
||||
import { updateLogs } from '../../../actions/queryLogs';
|
||||
|
||||
import '../Logs.css';
|
||||
|
||||
const Row = memo(({
|
||||
style,
|
||||
rowProps,
|
||||
@@ -61,9 +62,7 @@ const Row = memo(({
|
||||
client,
|
||||
domain,
|
||||
elapsedMs,
|
||||
info,
|
||||
info: { disallowed, disallowed_rule },
|
||||
reason,
|
||||
client_info,
|
||||
response,
|
||||
time,
|
||||
tracker,
|
||||
@@ -82,11 +81,6 @@ const Row = memo(({
|
||||
const autoClient = autoClients
|
||||
.find((autoClient) => autoClient.name === client);
|
||||
|
||||
const { whois_info } = info;
|
||||
const country = whois_info?.country;
|
||||
const city = whois_info?.city;
|
||||
const network = whois_info?.orgname;
|
||||
|
||||
const source = autoClient?.source;
|
||||
|
||||
const formattedElapsedMs = formatElapsedMs(elapsedMs, t);
|
||||
@@ -111,7 +105,11 @@ const Row = memo(({
|
||||
confirmMessage,
|
||||
buttonKey: blockingClientKey,
|
||||
isNotInAllowedList,
|
||||
} = getBlockClientInfo(client, disallowed, disallowed_rule);
|
||||
} = getBlockClientInfo(
|
||||
client,
|
||||
client_info?.disallowed || false,
|
||||
client_info?.disallowed_rule || '',
|
||||
);
|
||||
|
||||
const blockingForClientKey = isFiltered ? 'unblock_for_this_client_only' : 'block_for_this_client_only';
|
||||
const clientNameBlockingFor = getBlockingClientName(clients, client);
|
||||
@@ -122,7 +120,13 @@ const Row = memo(({
|
||||
|
||||
const onBlockingClientClick = async () => {
|
||||
if (window.confirm(confirmMessage)) {
|
||||
await dispatch(toggleClientBlock(client, disallowed, disallowed_rule));
|
||||
await dispatch(
|
||||
toggleClientBlock(
|
||||
client,
|
||||
client_info?.disallowed || false,
|
||||
client_info?.disallowed_rule || '',
|
||||
),
|
||||
);
|
||||
await dispatch(updateLogs());
|
||||
setModalOpened(false);
|
||||
}
|
||||
@@ -177,10 +181,10 @@ const Row = memo(({
|
||||
response_code: status,
|
||||
client_details: 'title',
|
||||
ip_address: client,
|
||||
name: info?.name || client_id,
|
||||
country,
|
||||
city,
|
||||
network,
|
||||
name: client_info?.name || client_id,
|
||||
country: client_info?.whois?.country,
|
||||
city: client_info?.whois?.city,
|
||||
network: client_info?.whois?.orgname,
|
||||
source_label: source,
|
||||
validated_with_dnssec: dnssec_enabled ? Boolean(answer_dnssec) : false,
|
||||
original_response: originalResponse?.join('\n'),
|
||||
@@ -219,15 +223,6 @@ Row.propTypes = {
|
||||
client: propTypes.string.isRequired,
|
||||
domain: propTypes.string.isRequired,
|
||||
elapsedMs: propTypes.string.isRequired,
|
||||
info: propTypes.oneOfType([
|
||||
propTypes.string,
|
||||
propTypes.shape({
|
||||
whois_info: propTypes.shape({
|
||||
country: propTypes.string,
|
||||
city: propTypes.string,
|
||||
orgname: propTypes.string,
|
||||
}),
|
||||
})]),
|
||||
response: propTypes.array.isRequired,
|
||||
time: propTypes.string.isRequired,
|
||||
tracker: propTypes.object,
|
||||
@@ -235,6 +230,17 @@ Row.propTypes = {
|
||||
type: propTypes.string.isRequired,
|
||||
client_proto: propTypes.string.isRequired,
|
||||
client_id: propTypes.string,
|
||||
client_info: propTypes.shape({
|
||||
ids: propTypes.arrayOf(propTypes.string).isRequired,
|
||||
name: propTypes.string.isRequired,
|
||||
whois: propTypes.shape({
|
||||
country: propTypes.string,
|
||||
city: propTypes.string,
|
||||
orgname: propTypes.string,
|
||||
}).isRequired,
|
||||
disallowed: propTypes.bool.isRequired,
|
||||
disallowed_rule: propTypes.string.isRequired,
|
||||
}),
|
||||
rules: propTypes.arrayOf(propTypes.shape({
|
||||
text: propTypes.string.isRequired,
|
||||
filter_list_id: propTypes.number.isRequired,
|
||||
|
||||
@@ -56,13 +56,13 @@ const InfiniteTable = ({
|
||||
}, []);
|
||||
|
||||
const renderRow = (row, idx) => <Row
|
||||
key={idx}
|
||||
rowProps={row}
|
||||
isSmallScreen={isSmallScreen}
|
||||
setDetailedDataCurrent={setDetailedDataCurrent}
|
||||
setButtonType={setButtonType}
|
||||
setModalOpened={setModalOpened}
|
||||
/>;
|
||||
key={idx}
|
||||
rowProps={row}
|
||||
isSmallScreen={isSmallScreen}
|
||||
setDetailedDataCurrent={setDetailedDataCurrent}
|
||||
setButtonType={setButtonType}
|
||||
setModalOpened={setModalOpened}
|
||||
/>;
|
||||
|
||||
const isNothingFound = items.length === 0 && !processingGetLogs;
|
||||
|
||||
|
||||
@@ -3,8 +3,14 @@ import PropTypes from 'prop-types';
|
||||
import { Field, reduxForm } from 'redux-form';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { renderInputField } from '../../../../helpers/form';
|
||||
import { validateIpv4, validateMac, validateRequiredValue } from '../../../../helpers/validators';
|
||||
|
||||
import { renderInputField, normalizeMac } from '../../../../helpers/form';
|
||||
import {
|
||||
validateIpv4,
|
||||
validateMac,
|
||||
validateRequiredValue,
|
||||
validateIpv4InCidr,
|
||||
} from '../../../../helpers/validators';
|
||||
import { FORM_NAME } from '../../../../helpers/constants';
|
||||
import { toggleLeaseModal } from '../../../../actions';
|
||||
|
||||
@@ -14,6 +20,7 @@ const Form = ({
|
||||
pristine,
|
||||
submitting,
|
||||
processingAdding,
|
||||
cidr,
|
||||
}) => {
|
||||
const { t } = useTranslation();
|
||||
const dispatch = useDispatch();
|
||||
@@ -34,6 +41,7 @@ const Form = ({
|
||||
type="text"
|
||||
className="form-control"
|
||||
placeholder={t('form_enter_mac')}
|
||||
normalize={normalizeMac}
|
||||
validate={[validateRequiredValue, validateMac]}
|
||||
/>
|
||||
</div>
|
||||
@@ -44,8 +52,8 @@ const Form = ({
|
||||
component={renderInputField}
|
||||
type="text"
|
||||
className="form-control"
|
||||
placeholder={t('form_enter_ip')}
|
||||
validate={[validateRequiredValue, validateIpv4]}
|
||||
placeholder={t('form_enter_subnet_ip', { cidr })}
|
||||
validate={[validateRequiredValue, validateIpv4, validateIpv4InCidr]}
|
||||
/>
|
||||
</div>
|
||||
<div className="form__group">
|
||||
@@ -84,11 +92,18 @@ const Form = ({
|
||||
};
|
||||
|
||||
Form.propTypes = {
|
||||
initialValues: PropTypes.shape({
|
||||
mac: PropTypes.string.isRequired,
|
||||
ip: PropTypes.string.isRequired,
|
||||
hostname: PropTypes.string.isRequired,
|
||||
cidr: PropTypes.string.isRequired,
|
||||
}),
|
||||
pristine: PropTypes.bool.isRequired,
|
||||
handleSubmit: PropTypes.func.isRequired,
|
||||
reset: PropTypes.func.isRequired,
|
||||
submitting: PropTypes.bool.isRequired,
|
||||
processingAdding: PropTypes.bool.isRequired,
|
||||
cidr: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
export default reduxForm({ form: FORM_NAME.LEASE })(Form);
|
||||
|
||||
@@ -10,6 +10,7 @@ const Modal = ({
|
||||
isModalOpen,
|
||||
handleSubmit,
|
||||
processingAdding,
|
||||
cidr,
|
||||
}) => {
|
||||
const dispatch = useDispatch();
|
||||
|
||||
@@ -32,8 +33,15 @@ const Modal = ({
|
||||
</button>
|
||||
</div>
|
||||
<Form
|
||||
initialValues={{
|
||||
mac: '',
|
||||
ip: '',
|
||||
hostname: '',
|
||||
cidr,
|
||||
}}
|
||||
onSubmit={handleSubmit}
|
||||
processingAdding={processingAdding}
|
||||
cidr={cidr}
|
||||
/>
|
||||
</div>
|
||||
</ReactModal>
|
||||
@@ -44,6 +52,7 @@ Modal.propTypes = {
|
||||
isModalOpen: PropTypes.bool.isRequired,
|
||||
handleSubmit: PropTypes.func.isRequired,
|
||||
processingAdding: PropTypes.bool.isRequired,
|
||||
cidr: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
export default withTranslation()(Modal);
|
||||
|
||||
@@ -21,12 +21,14 @@ const StaticLeases = ({
|
||||
processingAdding,
|
||||
processingDeleting,
|
||||
staticLeases,
|
||||
cidr,
|
||||
}) => {
|
||||
const [t] = useTranslation();
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const handleSubmit = (data) => {
|
||||
dispatch(addStaticLease(data));
|
||||
const { mac, ip, hostname } = data;
|
||||
dispatch(addStaticLease({ mac, ip, hostname }));
|
||||
};
|
||||
|
||||
const handleDelete = (ip, mac, hostname = '') => {
|
||||
@@ -97,6 +99,7 @@ const StaticLeases = ({
|
||||
isModalOpen={isModalOpen}
|
||||
handleSubmit={handleSubmit}
|
||||
processingAdding={processingAdding}
|
||||
cidr={cidr}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
@@ -107,6 +110,7 @@ StaticLeases.propTypes = {
|
||||
isModalOpen: PropTypes.bool.isRequired,
|
||||
processingAdding: PropTypes.bool.isRequired,
|
||||
processingDeleting: PropTypes.bool.isRequired,
|
||||
cidr: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
cellWrap.propTypes = {
|
||||
|
||||
@@ -30,6 +30,7 @@ import Interfaces from './Interfaces';
|
||||
import {
|
||||
calculateDhcpPlaceholdersIpv4,
|
||||
calculateDhcpPlaceholdersIpv6,
|
||||
subnetMaskToBitMask,
|
||||
} from '../../../helpers/helpers';
|
||||
import './index.css';
|
||||
|
||||
@@ -59,6 +60,10 @@ const Dhcp = () => {
|
||||
const interface_name = useSelector(
|
||||
(state) => state.form[FORM_NAME.DHCP_INTERFACES]?.values?.interface_name,
|
||||
);
|
||||
const isInterfaceIncludesIpv4 = useSelector(
|
||||
(state) => !!state.dhcp?.interfaces?.[interface_name]?.ipv4_addresses,
|
||||
);
|
||||
const dhcp = useSelector((state) => state.form[FORM_NAME.DHCPv4], shallowEqual);
|
||||
|
||||
const [ipv4placeholders, setIpv4Placeholders] = useState(DHCP_DESCRIPTION_PLACEHOLDERS.ipv4);
|
||||
const [ipv6placeholders, setIpv6Placeholders] = useState(DHCP_DESCRIPTION_PLACEHOLDERS.ipv6);
|
||||
@@ -173,6 +178,12 @@ const Dhcp = () => {
|
||||
|
||||
const toggleDhcpButton = getToggleDhcpButton();
|
||||
|
||||
const inputtedIPv4values = dhcp?.values?.v4?.gateway_ip && dhcp?.values?.v4?.subnet_mask;
|
||||
const isEmptyConfig = !Object.values(dhcp?.values?.v4 ?? {}).some(Boolean);
|
||||
const disabledLeasesButton = dhcp?.syncErrors || interfaces?.syncErrors
|
||||
|| !isInterfaceIncludesIpv4 || isEmptyConfig || processingConfig || !inputtedIPv4values;
|
||||
const cidr = inputtedIPv4values ? `${dhcp?.values?.v4?.gateway_ip}/${subnetMaskToBitMask(dhcp?.values?.v4?.subnet_mask)}` : '';
|
||||
|
||||
return <>
|
||||
<PageTitle title={t('dhcp_settings')} subtitle={t('dhcp_description')} containerClass="page-title--dhcp">
|
||||
{toggleDhcpButton}
|
||||
@@ -256,6 +267,7 @@ const Dhcp = () => {
|
||||
isModalOpen={isModalOpen}
|
||||
processingAdding={processingAdding}
|
||||
processingDeleting={processingDeleting}
|
||||
cidr={cidr}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-12">
|
||||
@@ -263,6 +275,7 @@ const Dhcp = () => {
|
||||
type="button"
|
||||
className="btn btn-success btn-standard mt-3"
|
||||
onClick={toggleModal}
|
||||
disabled={disabledLeasesButton}
|
||||
>
|
||||
<Trans>dhcp_add_static_lease</Trans>
|
||||
</button>
|
||||
|
||||
@@ -5,7 +5,7 @@ import { Field, reduxForm } from 'redux-form';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
import classnames from 'classnames';
|
||||
import Examples from './Examples';
|
||||
import { renderRadioField, renderTextareaField } from '../../../../helpers/form';
|
||||
import { renderRadioField, renderTextareaField, CheckboxField } from '../../../../helpers/form';
|
||||
import {
|
||||
DNS_REQUEST_OPTIONS,
|
||||
FORM_NAME,
|
||||
@@ -28,11 +28,12 @@ const renderField = ({
|
||||
const processingTestUpstream = useSelector((state) => state.settings.processingTestUpstream);
|
||||
const processingSetConfig = useSelector((state) => state.dnsConfig.processingSetConfig);
|
||||
|
||||
return <div
|
||||
return (
|
||||
<div
|
||||
key={placeholder}
|
||||
className={classnames('col-12 mb-4', containerClass)}
|
||||
>
|
||||
<Field
|
||||
>
|
||||
<Field
|
||||
id={name}
|
||||
value={value}
|
||||
name={name}
|
||||
@@ -44,8 +45,9 @@ const renderField = ({
|
||||
disabled={processingSetConfig || processingTestUpstream}
|
||||
normalizeOnBlur={normalizeOnBlur}
|
||||
onScroll={onScroll}
|
||||
/>
|
||||
</div>;
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
renderField.propTypes = {
|
||||
@@ -160,10 +162,10 @@ const Form = ({
|
||||
{' '}
|
||||
<Trans components={[
|
||||
<a
|
||||
href="https://kb.adguard.com/general/dns-providers"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
key="0"
|
||||
href="https://kb.adguard.com/general/dns-providers"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
key="0"
|
||||
>
|
||||
DNS providers
|
||||
</a>,
|
||||
@@ -197,6 +199,40 @@ const Form = ({
|
||||
normalizeOnBlur={removeEmptyLines}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-12">
|
||||
<hr />
|
||||
</div>
|
||||
<div className="col-12 mb-4">
|
||||
<label
|
||||
className="form__label form__label--with-desc"
|
||||
htmlFor="local_ptr"
|
||||
>
|
||||
<Trans>local_ptr_title</Trans>
|
||||
</label>
|
||||
<div className="form__desc form__desc--top">
|
||||
<Trans>local_ptr_desc</Trans>
|
||||
</div>
|
||||
<Field
|
||||
id="local_ptr_upstreams"
|
||||
name="local_ptr_upstreams"
|
||||
component={renderTextareaField}
|
||||
type="text"
|
||||
className="form-control form-control--textarea form-control--textarea-small font-monospace"
|
||||
placeholder={t('local_ptr_placeholder')}
|
||||
disabled={processingSetConfig}
|
||||
normalizeOnBlur={removeEmptyLines}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-12 mb-4">
|
||||
<Field
|
||||
name="resolve_clients"
|
||||
type="checkbox"
|
||||
component={CheckboxField}
|
||||
placeholder={t('resolve_clients_title')}
|
||||
subtitle={t('resolve_clients_desc')}
|
||||
disabled={processingSetConfig}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="card-actions">
|
||||
<div className="btn-list">
|
||||
|
||||
@@ -12,6 +12,8 @@ const Upstream = () => {
|
||||
upstream_dns,
|
||||
bootstrap_dns,
|
||||
upstream_mode,
|
||||
resolve_clients,
|
||||
local_ptr_upstreams,
|
||||
} = useSelector((state) => state.dnsConfig, shallowEqual);
|
||||
|
||||
const upstream_dns_file = useSelector((state) => state.dnsConfig.upstream_dns_file);
|
||||
@@ -21,11 +23,15 @@ const Upstream = () => {
|
||||
bootstrap_dns,
|
||||
upstream_dns,
|
||||
upstream_mode,
|
||||
resolve_clients,
|
||||
local_ptr_upstreams,
|
||||
} = values;
|
||||
|
||||
const dnsConfig = {
|
||||
bootstrap_dns,
|
||||
upstream_mode,
|
||||
resolve_clients,
|
||||
local_ptr_upstreams,
|
||||
...(upstream_dns_file ? null : { upstream_dns }),
|
||||
};
|
||||
|
||||
@@ -45,6 +51,8 @@ const Upstream = () => {
|
||||
upstream_dns: upstreamDns,
|
||||
bootstrap_dns,
|
||||
upstream_mode,
|
||||
resolve_clients,
|
||||
local_ptr_upstreams,
|
||||
}}
|
||||
onSubmit={handleSubmit}
|
||||
/>
|
||||
|
||||
@@ -112,6 +112,8 @@
|
||||
}
|
||||
|
||||
.card-wrap {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ export const R_IPV6 = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1
|
||||
|
||||
export const R_CIDR = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$/;
|
||||
|
||||
export const R_MAC = /^((([a-fA-F0-9][a-fA-F0-9]+[-]){5}|([a-fA-F0-9][a-fA-F0-9]+[:]){5})([a-fA-F0-9][a-fA-F0-9])$)|(^([a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]+[.]){2}([a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]))$/;
|
||||
export const R_MAC = /^((([a-fA-F0-9][a-fA-F0-9]+[-:]){5})([a-fA-F0-9]{2})$)|^((([a-fA-F0-9][a-fA-F0-9]+[-:]){7})([a-fA-F0-9]{2})$)|^([a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]+[.]){2}([a-fA-F0-9]{4})$|^([a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]+[.]){3}([a-fA-F0-9]{4})$/;
|
||||
export const R_MAC_WITHOUT_COLON = /^([a-fA-F0-9]{2}){5}([a-fA-F0-9]{2})$|^([a-fA-F0-9]{2}){7}([a-fA-F0-9]{2})$/;
|
||||
|
||||
export const R_CIDR_IPV6 = /^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))$/;
|
||||
|
||||
@@ -646,6 +647,6 @@ export const isFirefox = navigator.userAgent.indexOf('Firefox') !== -1;
|
||||
export const COMMENT_LINE_DEFAULT_TOKEN = '#';
|
||||
|
||||
export const MOBILE_CONFIG_LINKS = {
|
||||
DOT: '/apple/dot.mobileconfig',
|
||||
DOH: '/apple/doh.mobileconfig',
|
||||
DOT: 'apple/dot.mobileconfig',
|
||||
DOH: 'apple/doh.mobileconfig',
|
||||
};
|
||||
|
||||
@@ -2,7 +2,7 @@ import React, { Fragment } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { Trans } from 'react-i18next';
|
||||
import { createOnBlurHandler } from './helpers';
|
||||
import { R_UNIX_ABSOLUTE_PATH, R_WIN_ABSOLUTE_PATH } from './constants';
|
||||
import { R_MAC_WITHOUT_COLON, R_UNIX_ABSOLUTE_PATH, R_WIN_ABSOLUTE_PATH } from './constants';
|
||||
|
||||
export const renderField = (props, elementType) => {
|
||||
const {
|
||||
@@ -260,7 +260,15 @@ renderServiceField.propTypes = {
|
||||
}).isRequired,
|
||||
};
|
||||
|
||||
export const getLastIpv4Octet = (ipv4) => parseInt(ipv4.slice(ipv4.lastIndexOf('.') + 1), 10);
|
||||
/**
|
||||
*
|
||||
* @param {string} ip
|
||||
* @returns {*}
|
||||
*/
|
||||
export const ip4ToInt = (ip) => {
|
||||
const intIp = ip.split('.').reduce((int, oct) => (int * 256) + parseInt(oct, 10), 0);
|
||||
return Number.isNaN(intIp) ? 0 : intIp;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
@@ -274,3 +282,15 @@ export const toNumber = (value) => value && parseInt(value, 10);
|
||||
*/
|
||||
export const isValidAbsolutePath = (value) => R_WIN_ABSOLUTE_PATH.test(value)
|
||||
|| R_UNIX_ABSOLUTE_PATH.test(value);
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
* @returns {*|string}
|
||||
*/
|
||||
export const normalizeMac = (value) => {
|
||||
if (value && R_MAC_WITHOUT_COLON.test(value)) {
|
||||
return value.match(/.{2}/g).join(':');
|
||||
}
|
||||
|
||||
return value;
|
||||
};
|
||||
|
||||
@@ -63,6 +63,7 @@ export const normalizeLogs = (logs) => logs.map((log) => {
|
||||
client,
|
||||
client_proto,
|
||||
client_id,
|
||||
client_info,
|
||||
elapsedMs,
|
||||
question,
|
||||
reason,
|
||||
@@ -101,6 +102,7 @@ export const normalizeLogs = (logs) => logs.map((log) => {
|
||||
client,
|
||||
client_proto,
|
||||
client_id,
|
||||
client_info,
|
||||
/* TODO 'filterId' and 'rule' are deprecated, will be removed in 0.106 */
|
||||
filterId,
|
||||
rule,
|
||||
@@ -549,6 +551,15 @@ export const isIpInCidr = (ip, cidr) => {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {string} subnetMask
|
||||
* @returns {*}
|
||||
*/
|
||||
export const subnetMaskToBitMask = (subnetMask) => subnetMask
|
||||
.split('.')
|
||||
.reduce((acc, cur) => acc - Math.log2(256 - Number(cur)), 32);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param ipOrCidr
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import i18next from 'i18next';
|
||||
import {
|
||||
MAX_PORT,
|
||||
R_CIDR,
|
||||
@@ -12,7 +13,8 @@ import {
|
||||
R_CLIENT_ID,
|
||||
R_DOMAIN,
|
||||
} from './constants';
|
||||
import { getLastIpv4Octet, isValidAbsolutePath } from './form';
|
||||
import { ip4ToInt, isValidAbsolutePath } from './form';
|
||||
import { isIpInCidr } from './helpers';
|
||||
|
||||
// Validation functions
|
||||
// https://redux-form.com/8.3.0/examples/fieldlevelvalidation/
|
||||
@@ -30,8 +32,9 @@ export const validateRequiredValue = (value) => {
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
* @returns {undefined|string}
|
||||
* @param _
|
||||
* @param allValues
|
||||
*/
|
||||
export const validateIpv4RangeEnd = (_, allValues) => {
|
||||
if (!allValues || !allValues.v4 || !allValues.v4.range_end || !allValues.v4.range_start) {
|
||||
@@ -40,7 +43,7 @@ export const validateIpv4RangeEnd = (_, allValues) => {
|
||||
|
||||
const { range_end, range_start } = allValues.v4;
|
||||
|
||||
if (getLastIpv4Octet(range_end) <= getLastIpv4Octet(range_start)) {
|
||||
if (ip4ToInt(range_end) <= ip4ToInt(range_start)) {
|
||||
return 'range_end_error';
|
||||
}
|
||||
|
||||
@@ -224,3 +227,15 @@ export const validatePath = (value) => {
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param cidr {string}
|
||||
* @returns {Function}
|
||||
*/
|
||||
|
||||
export const validateIpv4InCidr = (valueIp, allValues) => {
|
||||
if (!isIpInCidr(valueIp, allValues.cidr)) {
|
||||
return i18next.t('form_error_subnet', { ip: valueIp, cidr: allValues.cidr });
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
@@ -43,6 +43,9 @@ const resources = {
|
||||
en: {
|
||||
translation: en,
|
||||
},
|
||||
enUS: {
|
||||
translation: en,
|
||||
},
|
||||
vi: {
|
||||
translation: vi,
|
||||
},
|
||||
|
||||
@@ -27,6 +27,7 @@ const Form = (props) => {
|
||||
component={renderInputField}
|
||||
placeholder={t('username_placeholder')}
|
||||
autoComplete="username"
|
||||
autocapitalize="none"
|
||||
disabled={processing}
|
||||
validate={[validateRequiredValue]}
|
||||
/>
|
||||
|
||||
@@ -16,6 +16,7 @@ const dnsConfig = handleActions(
|
||||
blocking_ipv6,
|
||||
upstream_dns,
|
||||
bootstrap_dns,
|
||||
local_ptr_upstreams,
|
||||
...values
|
||||
} = payload;
|
||||
|
||||
@@ -26,6 +27,7 @@ const dnsConfig = handleActions(
|
||||
blocking_ipv6: blocking_ipv6 || DEFAULT_BLOCKING_IPV6,
|
||||
upstream_dns: (upstream_dns && upstream_dns.join('\n')) || '',
|
||||
bootstrap_dns: (bootstrap_dns && bootstrap_dns.join('\n')) || '',
|
||||
local_ptr_upstreams: (local_ptr_upstreams && local_ptr_upstreams.join('\n')) || '',
|
||||
processingGetConfig: false,
|
||||
};
|
||||
},
|
||||
|
||||
4
client/webpack.prod.js
vendored
4
client/webpack.prod.js
vendored
@@ -3,6 +3,10 @@ const merge = require('webpack-merge');
|
||||
const common = require('./webpack.common.js');
|
||||
|
||||
module.exports = merge(common, {
|
||||
stats: 'minimal',
|
||||
performance : {
|
||||
hints : false
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"name": "adguard-home",
|
||||
"version": "0.1.0",
|
||||
"scripts": {
|
||||
"build": "rm -rf ../build2 && yarn install && webpack --config ./scripts/webpack/webpack.config.prod.js",
|
||||
"build": "webpack --config ./scripts/webpack/webpack.config.prod.js",
|
||||
"start": "webpack serve --config ./scripts/webpack/webpack.config.dev.js",
|
||||
"generate": "rm -rf ./src/lib/entities ./src/lib/apis && ts-node --compiler-options '{ \"module\": \"CommonJS\" }' ./scripts/generator/index.ts",
|
||||
"translations:check": "ts-node --compiler-options '{ \"module\": \"CommonJS\" }' ./scripts/plugins/checkTranslations.ts",
|
||||
|
||||
@@ -10,6 +10,10 @@ const CopyPlugin = require('copy-webpack-plugin');
|
||||
module.exports = merge(baseConfig, {
|
||||
mode: 'production',
|
||||
devtool: 'source-map',
|
||||
stats: 'minimal',
|
||||
performance : {
|
||||
hints : false
|
||||
},
|
||||
output: {
|
||||
path: path.resolve(__dirname, '../../../build2/static'),
|
||||
filename: '[name].bundle.[hash:5].js',
|
||||
|
||||
51
go.mod
51
go.mod
@@ -1,42 +1,43 @@
|
||||
module github.com/AdguardTeam/AdGuardHome
|
||||
|
||||
go 1.14
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
github.com/AdguardTeam/dnsproxy v0.35.5
|
||||
github.com/AdguardTeam/golibs v0.4.4
|
||||
github.com/AdguardTeam/urlfilter v0.14.3
|
||||
github.com/AdguardTeam/dnsproxy v0.37.2
|
||||
github.com/AdguardTeam/golibs v0.4.5
|
||||
github.com/AdguardTeam/urlfilter v0.14.5
|
||||
github.com/NYTimes/gziphandler v1.1.1
|
||||
github.com/ameshkov/dnscrypt/v2 v2.0.1
|
||||
github.com/ameshkov/dnscrypt/v2 v2.1.3
|
||||
github.com/digineo/go-ipset/v2 v2.2.1
|
||||
github.com/fsnotify/fsnotify v1.4.9
|
||||
github.com/go-ping/ping v0.0.0-20201115131931-3300c582a663
|
||||
github.com/go-ping/ping v0.0.0-20210216210419-25d1413fb7bb
|
||||
github.com/gobuffalo/envy v1.9.0 // indirect
|
||||
github.com/gobuffalo/packr v1.30.1
|
||||
github.com/gobuffalo/packr/v2 v2.8.1 // indirect
|
||||
github.com/hugelgupf/socketpair v0.0.0-20190730060125-05d35a94e714
|
||||
github.com/insomniacslk/dhcp v0.0.0-20201112113307-4de412bc85d8
|
||||
github.com/google/go-cmp v0.5.5 // indirect
|
||||
github.com/google/renameio v1.0.1-0.20210406141108-81588dbe0453
|
||||
github.com/insomniacslk/dhcp v0.0.0-20210310193751-cfd4d47082c2
|
||||
github.com/kardianos/service v1.2.0
|
||||
github.com/karrick/godirwalk v1.16.1 // indirect
|
||||
github.com/lucas-clemente/quic-go v0.19.3
|
||||
github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7
|
||||
github.com/mdlayher/netlink v1.1.2-0.20201013204415-ded538f7f4be
|
||||
github.com/mdlayher/raw v0.0.0-20191009151244-50f2db8cc065
|
||||
github.com/miekg/dns v1.1.35
|
||||
github.com/rogpeppe/go-internal v1.6.2 // indirect
|
||||
github.com/lucas-clemente/quic-go v0.20.1
|
||||
github.com/mdlayher/netlink v1.4.0
|
||||
github.com/miekg/dns v1.1.40
|
||||
github.com/rogpeppe/go-internal v1.7.0 // indirect
|
||||
github.com/satori/go.uuid v1.2.0
|
||||
github.com/sirupsen/logrus v1.7.0 // indirect
|
||||
github.com/spf13/cobra v1.1.1 // indirect
|
||||
github.com/stretchr/testify v1.6.1
|
||||
github.com/sirupsen/logrus v1.8.1 // indirect
|
||||
github.com/spf13/cobra v1.1.3 // indirect
|
||||
github.com/stretchr/testify v1.7.0
|
||||
github.com/ti-mo/netfilter v0.4.0
|
||||
github.com/u-root/u-root v7.0.0+incompatible
|
||||
go.etcd.io/bbolt v1.3.5
|
||||
golang.org/x/crypto v0.0.0-20201217014255-9d1352758620
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 // indirect
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d // indirect
|
||||
golang.org/x/text v0.3.5 // indirect
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||
gopkg.in/yaml.v2 v2.3.0
|
||||
howett.net/plist v0.0.0-20201026045517-117a925f2150
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
howett.net/plist v0.0.0-20201203080718-1454fab16a06
|
||||
)
|
||||
|
||||
replace github.com/insomniacslk/dhcp => github.com/AdguardTeam/dhcp v0.0.0-20210420175708-50b0efd52063
|
||||
|
||||
173
go.sum
173
go.sum
@@ -18,16 +18,18 @@ dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBr
|
||||
dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=
|
||||
dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=
|
||||
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
|
||||
github.com/AdguardTeam/dnsproxy v0.35.5 h1:SsRF0eDzuLGaSUDKABIu9Mn1joi4v4kvEU1vju2DQPQ=
|
||||
github.com/AdguardTeam/dnsproxy v0.35.5/go.mod h1:dkI9VWh43XlOzF2XogDm1EmoVl7PANOR4isQV6X9LZs=
|
||||
github.com/AdguardTeam/dhcp v0.0.0-20210420175708-50b0efd52063 h1:RBsQppxEJEqHApY6WDBkM2H0UG5wt57RcT0El2WGdp8=
|
||||
github.com/AdguardTeam/dhcp v0.0.0-20210420175708-50b0efd52063/go.mod h1:TKl4jN3Voofo4UJIicyNhWGp/nlQqQkFxmwIFTvBkKI=
|
||||
github.com/AdguardTeam/dnsproxy v0.37.2 h1:3lgizD+lZI6uqxFiQykd1/hV7Ji4vSJBMejl1rbFAXU=
|
||||
github.com/AdguardTeam/dnsproxy v0.37.2/go.mod h1:xkJWEuTr550gPDmB9azsciKZzSXjf9wMn+Ji54PQ4gE=
|
||||
github.com/AdguardTeam/golibs v0.4.0/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4=
|
||||
github.com/AdguardTeam/golibs v0.4.2 h1:7M28oTZFoFwNmp8eGPb3ImmYbxGaJLyQXeIFVHjME0o=
|
||||
github.com/AdguardTeam/golibs v0.4.2/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4=
|
||||
github.com/AdguardTeam/golibs v0.4.4 h1:cM9UySQiYFW79zo5XRwnaIWVzfW4eNXmZktMrWbthpw=
|
||||
github.com/AdguardTeam/golibs v0.4.4/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4=
|
||||
github.com/AdguardTeam/golibs v0.4.5 h1:RRA9ZsmbJEN4OllAx0BcfvSbRBxxpWluJijBYmtp13U=
|
||||
github.com/AdguardTeam/golibs v0.4.5/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4=
|
||||
github.com/AdguardTeam/gomitmproxy v0.2.0/go.mod h1:Qdv0Mktnzer5zpdpi5rAwixNJzW2FN91LjKJCkVbYGU=
|
||||
github.com/AdguardTeam/urlfilter v0.14.3 h1:MBaLEXS0LRQNbHtLkDCYhHINDPtkevPrYWGiOUuLJU4=
|
||||
github.com/AdguardTeam/urlfilter v0.14.3/go.mod h1:klx4JbOfc4EaNb5lWLqOwfg+pVcyRukmoJRvO55lL5U=
|
||||
github.com/AdguardTeam/urlfilter v0.14.5 h1:WyF0hg0MwKevsqNPkoaZFH8f5WRi/yuy/7qePtYt5Ts=
|
||||
github.com/AdguardTeam/urlfilter v0.14.5/go.mod h1:klx4JbOfc4EaNb5lWLqOwfg+pVcyRukmoJRvO55lL5U=
|
||||
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
@@ -42,9 +44,8 @@ github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635 h1:52m0LGchQBBVqJRyY
|
||||
github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635/go.mod h1:lmLxL+FV291OopO93Bwf9fQLQeLyt33VJRUg5VJ30us=
|
||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/ameshkov/dnscrypt/v2 v2.0.1 h1:igNVNM6NLBOqYUzHXaDUxn8i+wJXOsosY0/xEBirixA=
|
||||
github.com/ameshkov/dnscrypt/v2 v2.0.1/go.mod h1:nbZnxJt4edIPx2Haa8n2XtC2g5AWcsdQiSuXkNH8eDI=
|
||||
github.com/ameshkov/dnsstamps v1.0.1 h1:LhGvgWDzhNJh+kBQd/AfUlq1vfVe109huiXw4JhnPug=
|
||||
github.com/ameshkov/dnscrypt/v2 v2.1.3 h1:DG4Uf7LSDg6XDj9sp3maxh3Ur26jeGQaP5MeYosn6v0=
|
||||
github.com/ameshkov/dnscrypt/v2 v2.1.3/go.mod h1:+8SbPbVXpxxcUsgGi8eodkqWPo1MyNHxKYC8hDpqLSo=
|
||||
github.com/ameshkov/dnsstamps v1.0.1/go.mod h1:Ii3eUu73dx4Vw5O4wjzmT5+lkCwovjzaEZZ4gKyIH5A=
|
||||
github.com/ameshkov/dnsstamps v1.0.3 h1:Srzik+J9mivH1alRACTbys2xOxs0lRH9qnTA7Y1OYVo=
|
||||
github.com/ameshkov/dnsstamps v1.0.3/go.mod h1:Ii3eUu73dx4Vw5O4wjzmT5+lkCwovjzaEZZ4gKyIH5A=
|
||||
@@ -92,7 +93,6 @@ github.com/fanliao/go-promise v0.0.0-20141029170127-1890db352a72/go.mod h1:Pjfxu
|
||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
|
||||
github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY=
|
||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
@@ -105,26 +105,22 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9
|
||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
||||
github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI=
|
||||
github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
|
||||
github.com/go-ping/ping v0.0.0-20201115131931-3300c582a663 h1:jI2GiiRh+pPbey52EVmbU6kuLiXqwy4CXZ4gwUBj8Y0=
|
||||
github.com/go-ping/ping v0.0.0-20201115131931-3300c582a663/go.mod h1:35JbSyV/BYqHwwRA6Zr1uVDm1637YlNOU61wI797NPI=
|
||||
github.com/go-ping/ping v0.0.0-20210216210419-25d1413fb7bb h1:2opwLSXqxE0Za64PdpskXuvLYDj/XHQAD8tLcYpSlvY=
|
||||
github.com/go-ping/ping v0.0.0-20210216210419-25d1413fb7bb/go.mod h1:35JbSyV/BYqHwwRA6Zr1uVDm1637YlNOU61wI797NPI=
|
||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||
github.com/go-test/deep v1.0.5 h1:AKODKU3pDH1RzZzm6YZu77YWtEAq6uh1rLIAQlay2qc=
|
||||
github.com/go-test/deep v1.0.5/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
|
||||
github.com/gobuffalo/envy v1.7.0 h1:GlXgaiBkmrYMHco6t4j7SacKO4XUjvh5pwXh0f4uxXU=
|
||||
github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=
|
||||
github.com/gobuffalo/envy v1.9.0 h1:eZR0DuEgVLfeIb1zIKt3bT4YovIMf9O9LXQeCZLXpqE=
|
||||
github.com/gobuffalo/envy v1.9.0/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w=
|
||||
github.com/gobuffalo/logger v1.0.0 h1:xw9Ko9EcC5iAFprrjJ6oZco9UpzS5MQ4jAwghsLHdy4=
|
||||
github.com/gobuffalo/logger v1.0.0/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs=
|
||||
github.com/gobuffalo/logger v1.0.3 h1:YaXOTHNPCvkqqA7w05A4v0k2tCdpr+sgFlgINbQ6gqc=
|
||||
github.com/gobuffalo/logger v1.0.3/go.mod h1:SoeejUwldiS7ZsyCBphOGURmWdwUFXs0J7TCjEhjKxM=
|
||||
github.com/gobuffalo/packd v0.3.0 h1:eMwymTkA1uXsqxS0Tpoop3Lc0u3kTfiMBE6nKtQU4g4=
|
||||
github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q=
|
||||
github.com/gobuffalo/packd v1.0.0 h1:6ERZvJHfe24rfFmA9OaoKBdC7+c9sydrytMg8SdFGBM=
|
||||
github.com/gobuffalo/packd v1.0.0/go.mod h1:6VTc4htmJRFB7u1m/4LeMTWjFoYrUiBkU9Fdec9hrhI=
|
||||
github.com/gobuffalo/packr v1.30.1 h1:hu1fuVR3fXEZR7rXNW3h8rqSML8EVAf6KNm0NKO/wKg=
|
||||
github.com/gobuffalo/packr v1.30.1/go.mod h1:ljMyFO2EcrnzsHsN99cvbq055Y9OhRrIaviy289eRuk=
|
||||
github.com/gobuffalo/packr/v2 v2.5.1 h1:TFOeY2VoGamPjQLiNDT3mn//ytzk236VMO2j7iHxJR4=
|
||||
github.com/gobuffalo/packr/v2 v2.5.1/go.mod h1:8f9c96ITobJlPzI44jj+4tHnEKNt0xXWSVlXRN9X1Iw=
|
||||
github.com/gobuffalo/packr/v2 v2.8.1 h1:tkQpju6i3EtMXJ9uoF5GT6kB+LMTimDWD8Xvbz6zDVA=
|
||||
github.com/gobuffalo/packr/v2 v2.8.1/go.mod h1:c/PLlOuTU+p3SybaJATW3H6lX/iK7xEz5OeMf+NnJpg=
|
||||
@@ -132,15 +128,13 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
|
||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=
|
||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
||||
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc=
|
||||
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
|
||||
github.com/golang/mock v1.5.0 h1:jlYHihg//f7RRwuPfptm04yp4s7O6Kw8EZiVYIGcH0g=
|
||||
github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
@@ -150,28 +144,28 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU
|
||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
||||
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
|
||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM=
|
||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
|
||||
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
|
||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/renameio v1.0.1-0.20210406141108-81588dbe0453 h1:vvZyWjAX9oDB+DWpMsZMyv6Q3NZtim2C5Zcdh+H0OmQ=
|
||||
github.com/google/renameio v1.0.1-0.20210406141108-81588dbe0453/go.mod h1:t/HQoYBZSsWSNK35C6CO/TpPLDVWvxOHboWUAweKUpk=
|
||||
github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
|
||||
github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg=
|
||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
||||
@@ -209,31 +203,31 @@ github.com/hugelgupf/socketpair v0.0.0-20190730060125-05d35a94e714 h1:/jC7qQFrv8
|
||||
github.com/hugelgupf/socketpair v0.0.0-20190730060125-05d35a94e714/go.mod h1:2Goc3h8EklBH5mspfHFxBnEoURQCGzQQH1ga9Myjvis=
|
||||
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
|
||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||
github.com/insomniacslk/dhcp v0.0.0-20201112113307-4de412bc85d8 h1:R1oP0/QEyvaL7dm+mBQouQ9V1X6gqQr5taZA1yaq5zQ=
|
||||
github.com/insomniacslk/dhcp v0.0.0-20201112113307-4de412bc85d8/go.mod h1:TKl4jN3Voofo4UJIicyNhWGp/nlQqQkFxmwIFTvBkKI=
|
||||
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
|
||||
github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
|
||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
|
||||
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
||||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
||||
github.com/joomcode/errorx v1.0.1 h1:CalpDWz14ZHd68fIqluJasJosAewpz2TFaJALrUxjrk=
|
||||
github.com/joomcode/errorx v1.0.1/go.mod h1:kgco15ekB6cs+4Xjzo7SPeXzx38PbJzBwbnu9qfVNHQ=
|
||||
github.com/joomcode/errorx v1.0.3 h1:3e1mi0u7/HTPNdg6d6DYyKGBhA5l9XpsfuVE29NxnWw=
|
||||
github.com/joomcode/errorx v1.0.3/go.mod h1:eQzdtdlNyN7etw6YCS4W4+lu442waxZYw5yvz0ULrRo=
|
||||
github.com/josharian/native v0.0.0-20200817173448-b6b71def0850 h1:uhL5Gw7BINiiPAo24A2sxkcDI0Jt/sqp1v5xQCniEFA=
|
||||
github.com/josharian/native v0.0.0-20200817173448-b6b71def0850/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod h1:WGuG/smIU4J/54PblvSbh+xvCZmpJnFgr3ds6Z55XMQ=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20201009170750-9c6f07d100c1/go.mod h1:hqoO/u39cqLeBLebZ8fWdE96O7FxrAsRYhnVOdgHxok=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20201110080708-d2c240429e6c h1:7cpGGTQO6+OuYQWkueqeXuErSjs1NZtpALpv1x7Mq4g=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20201110080708-d2c240429e6c/go.mod h1:huN4d1phzjhlOsNIjFsw2SVRbwIHj3fJDMEU2SDPTmg=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20201216134343-bde56ed16391/go.mod h1:cR77jAZG3Y3bsb8hF6fHJbFoyFukLFOkQ98S0pQz3xw=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20201220180245-69540ac93943/go.mod h1:z4c53zj6Eex712ROyh8WI0ihysb5j2ROyV42iNogmAs=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20210122163228-8d122574c736/go.mod h1:ZXpIyOK59ZnN7J0BV99cZUPmsqDRZ3eq5X+st7u/oSA=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20210212075122-66c871082f2b h1:c3NTyLNozICy8B4mlMXemD3z/gXgQzVXZS/HqT+i3do=
|
||||
github.com/jsimonetti/rtnetlink v0.0.0-20210212075122-66c871082f2b/go.mod h1:8w9Rh8m+aHZIG69YPGGem1i5VzoyRC8nw2kA8B+ik5U=
|
||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
||||
github.com/kardianos/service v1.2.0 h1:bGuZ/epo3vrt8IPC7mnKQolqFeYJb7Cs8Rk4PSOBB/g=
|
||||
github.com/kardianos/service v1.2.0/go.mod h1:CIMRFEJVL+0DS1a3Nx06NaMn4Dz63Ng6O7dl0qH0zVM=
|
||||
github.com/karrick/godirwalk v1.10.12 h1:BqUm+LuJcXjGv1d2mj3gBiQyrQ57a0rYoAmhvJQ7RDU=
|
||||
github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
|
||||
github.com/karrick/godirwalk v1.15.8/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
|
||||
github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw=
|
||||
@@ -241,7 +235,6 @@ github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1q
|
||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
@@ -250,8 +243,8 @@ github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/lucas-clemente/quic-go v0.19.3 h1:eCDQqvGBB+kCTkA0XrAFtNe81FMa0/fn4QSoeAbmiF4=
|
||||
github.com/lucas-clemente/quic-go v0.19.3/go.mod h1:ADXpNbTQjq1hIzCpB+y/k5iz4n4z4IwqoLb94Kh5Hu8=
|
||||
github.com/lucas-clemente/quic-go v0.20.1 h1:hb5m76V8QS/8Nw/suHvXqo3BMHAozvIkcnzpJdpanSk=
|
||||
github.com/lucas-clemente/quic-go v0.20.1/go.mod h1:fZq/HUDIM+mW6X6wtzORjC0E/WDBMKe5Hf9bgjISwLk=
|
||||
github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
|
||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
@@ -263,32 +256,39 @@ github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2
|
||||
github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI=
|
||||
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
|
||||
github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc=
|
||||
github.com/marten-seemann/qtls v0.10.0 h1:ECsuYUKalRL240rRD4Ri33ISb7kAQ3qGDlrrl55b2pc=
|
||||
github.com/marten-seemann/qtls v0.10.0/go.mod h1:UvMd1oaYDACI99/oZUYLzMCkBXQVT0aGm99sJhbT8hs=
|
||||
github.com/marten-seemann/qtls-go1-15 v0.1.1 h1:LIH6K34bPVttyXnUWixk0bzH6/N07VxbSabxn5A5gZQ=
|
||||
github.com/marten-seemann/qtls-go1-15 v0.1.1/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I=
|
||||
github.com/marten-seemann/qtls-go1-15 v0.1.4 h1:RehYMOyRW8hPVEja1KBVsFVNSm35Jj9Mvs5yNoZZ28A=
|
||||
github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I=
|
||||
github.com/marten-seemann/qtls-go1-16 v0.1.3 h1:XEZ1xGorVy9u+lJq+WXNE+hiqRYLNvJGYmwfwKQN2gU=
|
||||
github.com/marten-seemann/qtls-go1-16 v0.1.3/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk=
|
||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7 h1:lez6TS6aAau+8wXUP3G9I3TGlmPFEq2CTxBaRqY6AGE=
|
||||
github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7/go.mod h1:U6ZQobyTjI/tJyq2HG+i/dfSoFUt8/aZCM+GKtmFk/Y=
|
||||
github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43 h1:WgyLFv10Ov49JAQI/ZLUkCZ7VJS3r74hwFIGXJsgZlY=
|
||||
github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43/go.mod h1:+t7E0lkKfbBsebllff1xdTmyJt8lH37niI6kwFk9OTo=
|
||||
github.com/mdlayher/genetlink v1.0.0 h1:OoHN1OdyEIkScEmRgxLEe2M9U8ClMytqA5niynLtfj0=
|
||||
github.com/mdlayher/genetlink v1.0.0/go.mod h1:0rJ0h4itni50A86M2kHcgS85ttZazNt7a8H2a2cw0Gc=
|
||||
github.com/mdlayher/netlink v0.0.0-20190313131330-258ea9dff42c/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
|
||||
github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
|
||||
github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
|
||||
github.com/mdlayher/netlink v1.1.0/go.mod h1:H4WCitaheIsdF9yOYu8CFmCgQthAPIWZmcKp9uZHgmY=
|
||||
github.com/mdlayher/netlink v1.1.1 h1:VqG+Voq9V4uZ+04vjIrcSCWDpf91B1xxbP4QBUmUJE8=
|
||||
github.com/mdlayher/netlink v1.1.1/go.mod h1:WTYpFb/WTvlRJAyKhZL5/uy69TDDpHHu2VZmb2XgV7o=
|
||||
github.com/mdlayher/netlink v1.1.2-0.20201013204415-ded538f7f4be h1:7JeFwhE5SIdgKRd0qnqjOYJxY8AML8x/j+/qvFZ8R+c=
|
||||
github.com/mdlayher/netlink v1.1.2-0.20201013204415-ded538f7f4be/go.mod h1:WTYpFb/WTvlRJAyKhZL5/uy69TDDpHHu2VZmb2XgV7o=
|
||||
github.com/mdlayher/netlink v1.2.0/go.mod h1:kwVW1io0AZy9A1E2YYgaD4Cj+C+GPkU6klXCMzIJ9p8=
|
||||
github.com/mdlayher/netlink v1.2.1/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU=
|
||||
github.com/mdlayher/netlink v1.2.2-0.20210123213345-5cc92139ae3e/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU=
|
||||
github.com/mdlayher/netlink v1.3.0/go.mod h1:xK/BssKuwcRXHrtN04UBkwQ6dY9VviGGuriDdoPSWys=
|
||||
github.com/mdlayher/netlink v1.4.0 h1:n3ARR+Fm0dDv37dj5wSWZXDKcy+U0zwcXS3zKMnSiT0=
|
||||
github.com/mdlayher/netlink v1.4.0/go.mod h1:dRJi5IABcZpBD2A3D0Mv/AiX8I9uDEu5oGkAVrekmf8=
|
||||
github.com/mdlayher/raw v0.0.0-20190606142536-fef19f00fc18/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg=
|
||||
github.com/mdlayher/raw v0.0.0-20191009151244-50f2db8cc065 h1:aFkJ6lx4FPip+S+Uw4aTegFMct9shDvP+79PsSxpm3w=
|
||||
github.com/mdlayher/raw v0.0.0-20191009151244-50f2db8cc065/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg=
|
||||
github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
|
||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||
github.com/miekg/dns v1.1.29 h1:xHBEhR+t5RzcFJjBLJlax2daXOrTYtr9z4WdKEfWFzg=
|
||||
github.com/miekg/dns v1.1.29/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||
github.com/miekg/dns v1.1.35 h1:oTfOaDH+mZkdcgdIjH6yBajRGtIwcwcaR+rt23ZSrJs=
|
||||
github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||
github.com/miekg/dns v1.1.40 h1:pyyPFfGMnciYUk/mXpKkVmeMQjfXqt3FAJ2hy7tPiLA=
|
||||
github.com/miekg/dns v1.1.40/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
|
||||
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
@@ -341,13 +341,11 @@ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7z
|
||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.3.0 h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.5.2 h1:qLvObTrvO/XRCqmkKxUlOBc48bI3efyDuAZe25QiF0w=
|
||||
github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.6.2 h1:aIihoIOHCiLZHxyoNQ+ABL4NKhFTgKLBdMLyEAh98m0=
|
||||
github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.7.0 h1:3qqXGV8nn7GJT65debw77Dzrx9sfWYgP0DDo7xcMFRk=
|
||||
github.com/rogpeppe/go-internal v1.7.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||
@@ -381,10 +379,9 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeV
|
||||
github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4=
|
||||
github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw=
|
||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
|
||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||
github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=
|
||||
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
||||
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
||||
@@ -393,13 +390,11 @@ github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod
|
||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s=
|
||||
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
||||
github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
|
||||
github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4=
|
||||
github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
|
||||
github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M=
|
||||
github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
|
||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
|
||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
@@ -412,10 +407,10 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
|
||||
github.com/ti-mo/netfilter v0.2.0/go.mod h1:8GbBGsY/8fxtyIdfwy29JiluNcPK4K7wIT+x42ipqUU=
|
||||
@@ -436,7 +431,6 @@ go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
|
||||
go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=
|
||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
@@ -455,12 +449,10 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
|
||||
golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9 h1:sYNJzB4J8toYPQTM6pAkcmBRgw9SnQKP9oXCHfgy604=
|
||||
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20201217014255-9d1352758620 h1:3wPMTskHO3+O6jqTEXyFcsnuxMQOqYSaHsDxcbUXpqA=
|
||||
golang.org/x/crypto v0.0.0-20201217014255-9d1352758620/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g=
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
@@ -472,7 +464,6 @@ golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTk
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0=
|
||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
@@ -483,6 +474,7 @@ golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKG
|
||||
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
@@ -502,27 +494,25 @@ golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn
|
||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k=
|
||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201016165138-7b1cca2348c0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11 h1:lwlPPsmjDKK0J6eG6xDWd5XPehI0R024zxjDnw3esPA=
|
||||
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924 h1:QsnDpLLOKwHBBDa8nDws4DYNc/ryVW2vCpxCs09d4PY=
|
||||
golang.org/x/net v0.0.0-20201216054612-986b41b23924/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
@@ -535,10 +525,9 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a h1:WXEvlFVvvGxCJLG6REjsT03iWnKLEWinaScsxF2Vm2o=
|
||||
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -572,36 +561,35 @@ golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d h1:nc5K6ox/4lTFbMVSL9WRR81ixkcwXThoiF6yf+R9scA=
|
||||
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4=
|
||||
golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201017003518-b09fb700fbb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY=
|
||||
golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw=
|
||||
golang.org/x/sys v0.0.0-20201118182958-a01c418693c7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201214095126-aec9a390925b h1:tv7/y4pd+sR8bcNb2D6o7BNU6zjWm0VjQLac+w7fNNM=
|
||||
golang.org/x/sys v0.0.0-20201214095126-aec9a390925b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e h1:AyodaIpKjppX+cBfTASF2E1US3H2JFBj920Ot3rtDjs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM=
|
||||
golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201231184435-2d18734c6014/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210123111255-9b0068b26619/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210216163648-f7da38b97c65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44 h1:Bli41pIlzTzf3KEY06n+xnzK/BESIg2ze4Pgfh/aI8c=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE=
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
|
||||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ=
|
||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
@@ -627,12 +615,10 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn
|
||||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425 h1:VvQyQJN0tSuecqgcIxMWnnfG5kSmgy9KZR9sW3W5QeA=
|
||||
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -679,7 +665,6 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ
|
||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
|
||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
|
||||
@@ -702,10 +687,10 @@ gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bl
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
@@ -716,10 +701,8 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh
|
||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
howett.net/plist v0.0.0-20201026045517-117a925f2150 h1:s7O/9fwMNd6O1yXyQ8zv+U7dfl8k+zdiLWAY8h7XdVI=
|
||||
howett.net/plist v0.0.0-20201026045517-117a925f2150/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
|
||||
howett.net/plist v0.0.0-20201203080718-1454fab16a06 h1:QDxUo/w2COstK1wIBYpzQlHX/NqaQTcf9jyz347nI58=
|
||||
howett.net/plist v0.0.0-20201203080718-1454fab16a06/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||
sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck=
|
||||
sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0=
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
// Package agherr contains the extended error type, and the function for
|
||||
// wrapping several errors.
|
||||
// Package agherr contains AdGuard Home's error handling helpers.
|
||||
package agherr
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/AdguardTeam/golibs/log"
|
||||
)
|
||||
|
||||
// Error is the constant error type.
|
||||
@@ -23,8 +24,10 @@ type manyError struct {
|
||||
}
|
||||
|
||||
// Many wraps several errors and returns a single error.
|
||||
func Many(message string, underlying ...error) error {
|
||||
err := &manyError{
|
||||
//
|
||||
// TODO(a.garipov): Add formatting to message.
|
||||
func Many(message string, underlying ...error) (err error) {
|
||||
err = &manyError{
|
||||
message: message,
|
||||
underlying: underlying,
|
||||
}
|
||||
@@ -33,7 +36,7 @@ func Many(message string, underlying ...error) error {
|
||||
}
|
||||
|
||||
// Error implements the error interface for *manyError.
|
||||
func (e *manyError) Error() string {
|
||||
func (e *manyError) Error() (msg string) {
|
||||
switch len(e.underlying) {
|
||||
case 0:
|
||||
return e.message
|
||||
@@ -43,7 +46,8 @@ func (e *manyError) Error() string {
|
||||
b := &strings.Builder{}
|
||||
|
||||
// Ignore errors, since strings.(*Buffer).Write never returns
|
||||
// errors.
|
||||
// errors. We don't use aghstrings.WriteToBuilder here since
|
||||
// this package should be importable for any other.
|
||||
_, _ = fmt.Fprintf(b, "%s: %s (hidden: %s", e.message, e.underlying[0], e.underlying[1])
|
||||
for _, u := range e.underlying[2:] {
|
||||
// See comment above.
|
||||
@@ -58,7 +62,7 @@ func (e *manyError) Error() string {
|
||||
}
|
||||
|
||||
// Unwrap implements the hidden errors.wrapper interface for *manyError.
|
||||
func (e *manyError) Unwrap() error {
|
||||
func (e *manyError) Unwrap() (err error) {
|
||||
if len(e.underlying) == 0 {
|
||||
return nil
|
||||
}
|
||||
@@ -71,3 +75,54 @@ func (e *manyError) Unwrap() error {
|
||||
type wrapper interface {
|
||||
Unwrap() error
|
||||
}
|
||||
|
||||
// Annotate annotates the error with the message, unless the error is nil. This
|
||||
// is a helper function to simplify code like this:
|
||||
//
|
||||
// func (f *foo) doStuff(s string) (err error) {
|
||||
// defer func() {
|
||||
// if err != nil {
|
||||
// err = fmt.Errorf("bad foo string %q: %w", s, err)
|
||||
// }
|
||||
// }()
|
||||
//
|
||||
// // …
|
||||
// }
|
||||
//
|
||||
// Instead, write:
|
||||
//
|
||||
// func (f *foo) doStuff(s string) (err error) {
|
||||
// defer agherr.Annotate("bad foo string %q: %w", &err, s)
|
||||
//
|
||||
// // …
|
||||
// }
|
||||
//
|
||||
// msg must contain the final ": %w" verb.
|
||||
//
|
||||
// TODO(a.garipov): Clearify the function usage.
|
||||
func Annotate(msg string, errPtr *error, args ...interface{}) {
|
||||
if errPtr == nil {
|
||||
return
|
||||
}
|
||||
|
||||
err := *errPtr
|
||||
if err != nil {
|
||||
args = append(args, err)
|
||||
|
||||
*errPtr = fmt.Errorf(msg, args...)
|
||||
}
|
||||
}
|
||||
|
||||
// LogPanic is a convinient helper function to log a panic in a goroutine. It
|
||||
// should not be used where proper error handling is required.
|
||||
func LogPanic(prefix string) {
|
||||
if v := recover(); v != nil {
|
||||
if prefix != "" {
|
||||
log.Error("%s: recovered from panic: %v", prefix, v)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
log.Error("recovered from panic: %v", v)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +1,39 @@
|
||||
package agherr
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/aghtest"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestError_Error(t *testing.T) {
|
||||
testCases := []struct {
|
||||
err error
|
||||
name string
|
||||
want string
|
||||
err error
|
||||
}{{
|
||||
err: Many("a"),
|
||||
name: "simple",
|
||||
want: "a",
|
||||
err: Many("a"),
|
||||
}, {
|
||||
err: Many("a", errors.New("b")),
|
||||
name: "wrapping",
|
||||
want: "a: b",
|
||||
err: Many("a", errors.New("b")),
|
||||
}, {
|
||||
err: Many("a", errors.New("b"), errors.New("c"), errors.New("d")),
|
||||
name: "wrapping several",
|
||||
want: "a: b (hidden: c, d)",
|
||||
err: Many("a", errors.New("b"), errors.New("c"), errors.New("d")),
|
||||
}, {
|
||||
err: Many("a", Many("b", errors.New("c"), errors.New("d"))),
|
||||
name: "wrapping wrapper",
|
||||
want: "a: b: c (hidden: d)",
|
||||
err: Many("a", Many("b", errors.New("c"), errors.New("d"))),
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
assert.Equal(t, tc.want, tc.err.Error(), tc.name)
|
||||
}
|
||||
@@ -43,33 +47,114 @@ func TestError_Unwrap(t *testing.T) {
|
||||
errWrapped
|
||||
errNil
|
||||
)
|
||||
|
||||
errs := []error{
|
||||
errSimple: errors.New("a"),
|
||||
errWrapped: fmt.Errorf("err: %w", errors.New("nested")),
|
||||
errNil: nil,
|
||||
}
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
want error
|
||||
wrapped error
|
||||
name string
|
||||
}{{
|
||||
name: "simple",
|
||||
want: errs[errSimple],
|
||||
wrapped: Many("a", errs[errSimple]),
|
||||
name: "simple",
|
||||
}, {
|
||||
name: "nested",
|
||||
want: errs[errWrapped],
|
||||
wrapped: Many("b", errs[errWrapped]),
|
||||
name: "nested",
|
||||
}, {
|
||||
name: "nil passed",
|
||||
want: errs[errNil],
|
||||
wrapped: Many("c", errs[errNil]),
|
||||
name: "nil passed",
|
||||
}, {
|
||||
name: "nil not passed",
|
||||
want: nil,
|
||||
wrapped: Many("d"),
|
||||
name: "nil not passed",
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
assert.Equal(t, tc.want, errors.Unwrap(tc.wrapped), tc.name)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAnnotate(t *testing.T) {
|
||||
const s = "1234"
|
||||
const wantMsg = `bad string "1234": test`
|
||||
|
||||
// Don't use const, because we can't take a pointer of a constant.
|
||||
var errTest error = Error("test")
|
||||
|
||||
t.Run("nil", func(t *testing.T) {
|
||||
var errPtr *error
|
||||
assert.NotPanics(t, func() {
|
||||
Annotate("bad string %q: %w", errPtr, s)
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("non_nil", func(t *testing.T) {
|
||||
errPtr := &errTest
|
||||
assert.NotPanics(t, func() {
|
||||
Annotate("bad string %q: %w", errPtr, s)
|
||||
})
|
||||
|
||||
require.NotNil(t, errPtr)
|
||||
|
||||
err := *errPtr
|
||||
require.Error(t, err)
|
||||
|
||||
assert.Equal(t, wantMsg, err.Error())
|
||||
})
|
||||
|
||||
t.Run("defer", func(t *testing.T) {
|
||||
f := func() (err error) {
|
||||
defer Annotate("bad string %q: %w", &errTest, s)
|
||||
|
||||
return errTest
|
||||
}
|
||||
|
||||
err := f()
|
||||
require.Error(t, err)
|
||||
|
||||
assert.Equal(t, wantMsg, err.Error())
|
||||
})
|
||||
}
|
||||
|
||||
func TestLogPanic(t *testing.T) {
|
||||
buf := &bytes.Buffer{}
|
||||
aghtest.ReplaceLogWriter(t, buf)
|
||||
|
||||
t.Run("prefix", func(t *testing.T) {
|
||||
const (
|
||||
panicMsg = "spooky!"
|
||||
prefix = "packagename"
|
||||
errWithNoPrefix = "[error] recovered from panic: spooky!"
|
||||
errWithPrefix = "[error] packagename: recovered from panic: spooky!"
|
||||
)
|
||||
|
||||
panicFunc := func(prefix string) {
|
||||
defer LogPanic(prefix)
|
||||
|
||||
panic(panicMsg)
|
||||
}
|
||||
|
||||
panicFunc("")
|
||||
assert.Contains(t, buf.String(), errWithNoPrefix)
|
||||
buf.Reset()
|
||||
|
||||
panicFunc(prefix)
|
||||
assert.Contains(t, buf.String(), errWithPrefix)
|
||||
buf.Reset()
|
||||
})
|
||||
|
||||
t.Run("don't_panic", func(t *testing.T) {
|
||||
require.NotPanics(t, func() {
|
||||
defer LogPanic("")
|
||||
})
|
||||
|
||||
assert.Empty(t, buf.String())
|
||||
})
|
||||
}
|
||||
|
||||
@@ -13,21 +13,21 @@ import (
|
||||
|
||||
func TestLimitReadCloser(t *testing.T) {
|
||||
testCases := []struct {
|
||||
want error
|
||||
name string
|
||||
n int64
|
||||
want error
|
||||
}{{
|
||||
want: nil,
|
||||
name: "positive",
|
||||
n: 1,
|
||||
want: nil,
|
||||
}, {
|
||||
want: nil,
|
||||
name: "zero",
|
||||
n: 0,
|
||||
want: nil,
|
||||
}, {
|
||||
want: fmt.Errorf("aghio: invalid n in LimitReadCloser: -1"),
|
||||
name: "negative",
|
||||
n: -1,
|
||||
want: fmt.Errorf("aghio: invalid n in LimitReadCloser: -1"),
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
@@ -40,37 +40,37 @@ func TestLimitReadCloser(t *testing.T) {
|
||||
|
||||
func TestLimitedReadCloser_Read(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
limit int64
|
||||
rStr string
|
||||
want int
|
||||
err error
|
||||
name string
|
||||
rStr string
|
||||
limit int64
|
||||
want int
|
||||
}{{
|
||||
name: "perfectly_match",
|
||||
limit: 3,
|
||||
rStr: "abc",
|
||||
want: 3,
|
||||
err: nil,
|
||||
}, {
|
||||
name: "eof",
|
||||
limit: 3,
|
||||
rStr: "",
|
||||
want: 0,
|
||||
err: io.EOF,
|
||||
}, {
|
||||
name: "limit_reached",
|
||||
limit: 0,
|
||||
name: "perfectly_match",
|
||||
rStr: "abc",
|
||||
limit: 3,
|
||||
want: 3,
|
||||
}, {
|
||||
err: io.EOF,
|
||||
name: "eof",
|
||||
rStr: "",
|
||||
limit: 3,
|
||||
want: 0,
|
||||
}, {
|
||||
err: &LimitReachedError{
|
||||
Limit: 0,
|
||||
},
|
||||
}, {
|
||||
name: "truncated",
|
||||
limit: 2,
|
||||
name: "limit_reached",
|
||||
rStr: "abc",
|
||||
want: 2,
|
||||
limit: 0,
|
||||
want: 0,
|
||||
}, {
|
||||
err: nil,
|
||||
name: "truncated",
|
||||
rStr: "abc",
|
||||
limit: 2,
|
||||
want: 2,
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
@@ -79,7 +79,7 @@ func TestLimitedReadCloser_Read(t *testing.T) {
|
||||
buf := make([]byte, tc.limit+1)
|
||||
|
||||
lreader, err := LimitReadCloser(readCloser, tc.limit)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
n, err := lreader.Read(buf)
|
||||
require.Equal(t, tc.err, err)
|
||||
@@ -90,15 +90,15 @@ func TestLimitedReadCloser_Read(t *testing.T) {
|
||||
|
||||
func TestLimitedReadCloser_LimitReachedError(t *testing.T) {
|
||||
testCases := []struct {
|
||||
err error
|
||||
name string
|
||||
want string
|
||||
err error
|
||||
}{{
|
||||
name: "simplest",
|
||||
want: "attempted to read more than 0 bytes",
|
||||
err: &LimitReachedError{
|
||||
Limit: 0,
|
||||
},
|
||||
name: "simplest",
|
||||
want: "attempted to read more than 0 bytes",
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
|
||||
169
internal/aghnet/addr.go
Normal file
169
internal/aghnet/addr.go
Normal file
@@ -0,0 +1,169 @@
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/agherr"
|
||||
"golang.org/x/net/idna"
|
||||
)
|
||||
|
||||
// IsValidHostOuterRune returns true if r is a valid initial or final rune for
|
||||
// a hostname label.
|
||||
func IsValidHostOuterRune(r rune) (ok bool) {
|
||||
return (r >= 'a' && r <= 'z') ||
|
||||
(r >= 'A' && r <= 'Z') ||
|
||||
(r >= '0' && r <= '9')
|
||||
}
|
||||
|
||||
// isValidHostRune returns true if r is a valid rune for a hostname label.
|
||||
func isValidHostRune(r rune) (ok bool) {
|
||||
return r == '-' || IsValidHostOuterRune(r)
|
||||
}
|
||||
|
||||
// ValidateHardwareAddress returns an error if hwa is not a valid EUI-48,
|
||||
// EUI-64, or 20-octet InfiniBand link-layer address.
|
||||
func ValidateHardwareAddress(hwa net.HardwareAddr) (err error) {
|
||||
defer agherr.Annotate("validating hardware address %q: %w", &err, hwa)
|
||||
|
||||
switch l := len(hwa); l {
|
||||
case 0:
|
||||
return agherr.Error("address is empty")
|
||||
case 6, 8, 20:
|
||||
return nil
|
||||
default:
|
||||
return fmt.Errorf("bad len: %d", l)
|
||||
}
|
||||
}
|
||||
|
||||
// maxDomainLabelLen is the maximum allowed length of a domain name label
|
||||
// according to RFC 1035.
|
||||
const maxDomainLabelLen = 63
|
||||
|
||||
// maxDomainNameLen is the maximum allowed length of a full domain name
|
||||
// according to RFC 1035.
|
||||
//
|
||||
// See https://stackoverflow.com/a/32294443/1892060.
|
||||
const maxDomainNameLen = 253
|
||||
|
||||
// ValidateDomainNameLabel returns an error if label is not a valid label of
|
||||
// a domain name.
|
||||
func ValidateDomainNameLabel(label string) (err error) {
|
||||
defer agherr.Annotate("validating label %q: %w", &err, label)
|
||||
|
||||
l := len(label)
|
||||
if l > maxDomainLabelLen {
|
||||
return fmt.Errorf("label is too long, max: %d", maxDomainLabelLen)
|
||||
} else if l == 0 {
|
||||
return agherr.Error("label is empty")
|
||||
}
|
||||
|
||||
if r := label[0]; !IsValidHostOuterRune(rune(r)) {
|
||||
return fmt.Errorf("invalid char %q at index %d", r, 0)
|
||||
} else if l == 1 {
|
||||
return nil
|
||||
}
|
||||
|
||||
for i, r := range label[1 : l-1] {
|
||||
if !isValidHostRune(r) {
|
||||
return fmt.Errorf("invalid char %q at index %d", r, i+1)
|
||||
}
|
||||
}
|
||||
|
||||
if r := label[l-1]; !IsValidHostOuterRune(rune(r)) {
|
||||
return fmt.Errorf("invalid char %q at index %d", r, l-1)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ValidateDomainName validates the domain name in accordance to RFC 952, RFC
|
||||
// 1035, and with RFC-1123's inclusion of digits at the start of the host. It
|
||||
// doesn't validate against two or more hyphens to allow punycode and
|
||||
// internationalized domains.
|
||||
//
|
||||
// TODO(a.garipov): After making sure that this works correctly, port this into
|
||||
// module golibs.
|
||||
func ValidateDomainName(name string) (err error) {
|
||||
defer agherr.Annotate("validating domain name %q: %w", &err, name)
|
||||
|
||||
name, err = idna.ToASCII(name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
l := len(name)
|
||||
if l == 0 {
|
||||
return agherr.Error("domain name is empty")
|
||||
} else if l > maxDomainNameLen {
|
||||
return fmt.Errorf("too long, max: %d", maxDomainNameLen)
|
||||
}
|
||||
|
||||
labels := strings.Split(name, ".")
|
||||
for i, l := range labels {
|
||||
err = ValidateDomainNameLabel(l)
|
||||
if err != nil {
|
||||
return fmt.Errorf("invalid domain name label at index %d: %w", i, err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// The maximum lengths of generated hostnames for different IP versions.
|
||||
const (
|
||||
ipv4HostnameMaxLen = len("192-168-100-10-")
|
||||
ipv6HostnameMaxLen = len("ff80-f076-0000-0000-0000-0000-0000-0010")
|
||||
)
|
||||
|
||||
// generateIPv4Hostname generates the hostname for specific IP version.
|
||||
func generateIPv4Hostname(ipv4 net.IP) (hostname string) {
|
||||
hnData := make([]byte, 0, ipv4HostnameMaxLen)
|
||||
for i, part := range ipv4 {
|
||||
if i > 0 {
|
||||
hnData = append(hnData, '-')
|
||||
}
|
||||
hnData = strconv.AppendUint(hnData, uint64(part), 10)
|
||||
}
|
||||
|
||||
return string(hnData)
|
||||
}
|
||||
|
||||
// generateIPv6Hostname generates the hostname for specific IP version.
|
||||
func generateIPv6Hostname(ipv6 net.IP) (hostname string) {
|
||||
hnData := make([]byte, 0, ipv6HostnameMaxLen)
|
||||
for i, partsNum := 0, net.IPv6len/2; i < partsNum; i++ {
|
||||
if i > 0 {
|
||||
hnData = append(hnData, '-')
|
||||
}
|
||||
for _, val := range ipv6[i*2 : i*2+2] {
|
||||
if val < 10 {
|
||||
hnData = append(hnData, '0')
|
||||
}
|
||||
hnData = strconv.AppendUint(hnData, uint64(val), 16)
|
||||
}
|
||||
}
|
||||
|
||||
return string(hnData)
|
||||
}
|
||||
|
||||
// GenerateHostname generates the hostname from ip. In case of using IPv4 the
|
||||
// result should be like:
|
||||
//
|
||||
// 192-168-10-1
|
||||
//
|
||||
// In case of using IPv6, the result is like:
|
||||
//
|
||||
// ff80-f076-0000-0000-0000-0000-0000-0010
|
||||
//
|
||||
func GenerateHostname(ip net.IP) (hostname string) {
|
||||
if ipv4 := ip.To4(); ipv4 != nil {
|
||||
return generateIPv4Hostname(ipv4)
|
||||
} else if ipv6 := ip.To16(); ipv6 != nil {
|
||||
return generateIPv6Hostname(ipv6)
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
192
internal/aghnet/addr_test.go
Normal file
192
internal/aghnet/addr_test.go
Normal file
@@ -0,0 +1,192 @@
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"net"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestValidateHardwareAddress(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
wantErrMsg string
|
||||
in net.HardwareAddr
|
||||
}{{
|
||||
name: "success_eui_48",
|
||||
wantErrMsg: "",
|
||||
in: net.HardwareAddr{0x00, 0x01, 0x02, 0x03, 0x04, 0x05},
|
||||
}, {
|
||||
name: "success_eui_64",
|
||||
wantErrMsg: "",
|
||||
in: net.HardwareAddr{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07},
|
||||
}, {
|
||||
name: "success_infiniband",
|
||||
wantErrMsg: "",
|
||||
in: net.HardwareAddr{
|
||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
||||
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x10, 0x11, 0x12, 0x13,
|
||||
},
|
||||
}, {
|
||||
name: "error_nil",
|
||||
wantErrMsg: `validating hardware address "": address is empty`,
|
||||
in: nil,
|
||||
}, {
|
||||
name: "error_empty",
|
||||
wantErrMsg: `validating hardware address "": address is empty`,
|
||||
in: net.HardwareAddr{},
|
||||
}, {
|
||||
name: "error_bad",
|
||||
wantErrMsg: `validating hardware address "00:01:02:03": bad len: 4`,
|
||||
in: net.HardwareAddr{0x00, 0x01, 0x02, 0x03},
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
err := ValidateHardwareAddress(tc.in)
|
||||
if tc.wantErrMsg == "" {
|
||||
assert.NoError(t, err)
|
||||
} else {
|
||||
require.Error(t, err)
|
||||
|
||||
assert.Equal(t, tc.wantErrMsg, err.Error())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func repeatStr(b *strings.Builder, s string, n int) {
|
||||
for i := 0; i < n; i++ {
|
||||
_, _ = b.WriteString(s)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateDomainName(t *testing.T) {
|
||||
b := &strings.Builder{}
|
||||
repeatStr(b, "a", 255)
|
||||
longDomainName := b.String()
|
||||
|
||||
b.Reset()
|
||||
repeatStr(b, "a", 64)
|
||||
longLabel := b.String()
|
||||
|
||||
_, _ = b.WriteString(".com")
|
||||
longLabelDomainName := b.String()
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
in string
|
||||
wantErrMsg string
|
||||
}{{
|
||||
name: "success",
|
||||
in: "example.com",
|
||||
wantErrMsg: "",
|
||||
}, {
|
||||
name: "success_idna",
|
||||
in: "пример.рф",
|
||||
wantErrMsg: "",
|
||||
}, {
|
||||
name: "success_one",
|
||||
in: "e",
|
||||
wantErrMsg: "",
|
||||
}, {
|
||||
name: "empty",
|
||||
in: "",
|
||||
wantErrMsg: `validating domain name "": domain name is empty`,
|
||||
}, {
|
||||
name: "bad_symbol",
|
||||
in: "!!!",
|
||||
wantErrMsg: `validating domain name "!!!": invalid domain name label at index 0: ` +
|
||||
`validating label "!!!": invalid char '!' at index 0`,
|
||||
}, {
|
||||
name: "bad_length",
|
||||
in: longDomainName,
|
||||
wantErrMsg: `validating domain name "` + longDomainName + `": too long, max: 253`,
|
||||
}, {
|
||||
name: "bad_label_length",
|
||||
in: longLabelDomainName,
|
||||
wantErrMsg: `validating domain name "` + longLabelDomainName + `": ` +
|
||||
`invalid domain name label at index 0: validating label "` + longLabel +
|
||||
`": label is too long, max: 63`,
|
||||
}, {
|
||||
name: "bad_label_empty",
|
||||
in: "example..com",
|
||||
wantErrMsg: `validating domain name "example..com": ` +
|
||||
`invalid domain name label at index 1: ` +
|
||||
`validating label "": label is empty`,
|
||||
}, {
|
||||
name: "bad_label_first_symbol",
|
||||
in: "example.-aa.com",
|
||||
wantErrMsg: `validating domain name "example.-aa.com": ` +
|
||||
`invalid domain name label at index 1: ` +
|
||||
`validating label "-aa": invalid char '-' at index 0`,
|
||||
}, {
|
||||
name: "bad_label_last_symbol",
|
||||
in: "example-.aa.com",
|
||||
wantErrMsg: `validating domain name "example-.aa.com": ` +
|
||||
`invalid domain name label at index 0: ` +
|
||||
`validating label "example-": invalid char '-' at index 7`,
|
||||
}, {
|
||||
name: "bad_label_symbol",
|
||||
in: "example.a!!!.com",
|
||||
wantErrMsg: `validating domain name "example.a!!!.com": ` +
|
||||
`invalid domain name label at index 1: ` +
|
||||
`validating label "a!!!": invalid char '!' at index 1`,
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
err := ValidateDomainName(tc.in)
|
||||
if tc.wantErrMsg == "" {
|
||||
assert.NoError(t, err)
|
||||
} else {
|
||||
require.Error(t, err)
|
||||
|
||||
assert.Equal(t, tc.wantErrMsg, err.Error())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestGenerateHostName(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
want string
|
||||
ip net.IP
|
||||
}{{
|
||||
name: "good_ipv4",
|
||||
want: "127-0-0-1",
|
||||
ip: net.IP{127, 0, 0, 1},
|
||||
}, {
|
||||
name: "bad_ipv4",
|
||||
want: "",
|
||||
ip: net.IP{127, 0, 0, 1, 0},
|
||||
}, {
|
||||
name: "good_ipv6",
|
||||
want: "fe00-0000-0000-0000-0000-0000-0000-0001",
|
||||
ip: net.ParseIP("fe00::1"),
|
||||
}, {
|
||||
name: "bad_ipv6",
|
||||
want: "",
|
||||
ip: net.IP{
|
||||
0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff,
|
||||
},
|
||||
}, {
|
||||
name: "nil",
|
||||
want: "",
|
||||
ip: nil,
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
hostname := GenerateHostname(tc.ip)
|
||||
assert.Equal(t, tc.want, hostname)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,30 @@
|
||||
package util
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"errors"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/miekg/dns"
|
||||
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/aghos"
|
||||
"github.com/AdguardTeam/golibs/log"
|
||||
"github.com/fsnotify/fsnotify"
|
||||
"github.com/miekg/dns"
|
||||
)
|
||||
|
||||
type onChangedT func()
|
||||
|
||||
// AutoHosts - automatic DNS records
|
||||
type AutoHosts struct {
|
||||
// EtcHostsContainer - automatic DNS records
|
||||
//
|
||||
// TODO(e.burkov): Move the logic under interface. Refactor. Probably remove
|
||||
// the resolving logic.
|
||||
type EtcHostsContainer struct {
|
||||
// lock protects table and tableReverse.
|
||||
lock sync.RWMutex
|
||||
// table is the host-to-IPs map.
|
||||
@@ -40,62 +45,67 @@ type AutoHosts struct {
|
||||
}
|
||||
|
||||
// SetOnChanged - set callback function that will be called when the data is changed
|
||||
func (a *AutoHosts) SetOnChanged(onChanged onChangedT) {
|
||||
a.onChanged = onChanged
|
||||
func (ehc *EtcHostsContainer) SetOnChanged(onChanged onChangedT) {
|
||||
ehc.onChanged = onChanged
|
||||
}
|
||||
|
||||
// Notify other modules
|
||||
func (a *AutoHosts) notify() {
|
||||
if a.onChanged == nil {
|
||||
func (ehc *EtcHostsContainer) notify() {
|
||||
if ehc.onChanged == nil {
|
||||
return
|
||||
}
|
||||
a.onChanged()
|
||||
ehc.onChanged()
|
||||
}
|
||||
|
||||
// Init - initialize
|
||||
// hostsFn: Override default name for the hosts-file (optional)
|
||||
func (a *AutoHosts) Init(hostsFn string) {
|
||||
a.table = make(map[string][]net.IP)
|
||||
a.onlyWritesChan = make(chan fsnotify.Event, 2)
|
||||
func (ehc *EtcHostsContainer) Init(hostsFn string) {
|
||||
ehc.table = make(map[string][]net.IP)
|
||||
ehc.onlyWritesChan = make(chan fsnotify.Event, 2)
|
||||
|
||||
a.hostsFn = "/etc/hosts"
|
||||
ehc.hostsFn = "/etc/hosts"
|
||||
if runtime.GOOS == "windows" {
|
||||
a.hostsFn = os.ExpandEnv("$SystemRoot\\system32\\drivers\\etc\\hosts")
|
||||
ehc.hostsFn = os.ExpandEnv("$SystemRoot\\system32\\drivers\\etc\\hosts")
|
||||
}
|
||||
if len(hostsFn) != 0 {
|
||||
a.hostsFn = hostsFn
|
||||
ehc.hostsFn = hostsFn
|
||||
}
|
||||
|
||||
if IsOpenWRT() {
|
||||
a.hostsDirs = append(a.hostsDirs, "/tmp/hosts") // OpenWRT: "/tmp/hosts/dhcp.cfg01411c"
|
||||
if aghos.IsOpenWrt() {
|
||||
// OpenWrt: "/tmp/hosts/dhcp.cfg01411c".
|
||||
ehc.hostsDirs = append(ehc.hostsDirs, "/tmp/hosts")
|
||||
}
|
||||
|
||||
// Load hosts initially
|
||||
a.updateHosts()
|
||||
ehc.updateHosts()
|
||||
|
||||
var err error
|
||||
a.watcher, err = fsnotify.NewWatcher()
|
||||
ehc.watcher, err = fsnotify.NewWatcher()
|
||||
if err != nil {
|
||||
log.Error("AutoHosts: %s", err)
|
||||
log.Error("etchostscontainer: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Start - start module
|
||||
func (a *AutoHosts) Start() {
|
||||
log.Debug("Start AutoHosts module")
|
||||
func (ehc *EtcHostsContainer) Start() {
|
||||
if ehc == nil {
|
||||
return
|
||||
}
|
||||
|
||||
a.updateHosts()
|
||||
log.Debug("Start etchostscontainer module")
|
||||
|
||||
if a.watcher != nil {
|
||||
go a.watcherLoop()
|
||||
ehc.updateHosts()
|
||||
|
||||
err := a.watcher.Add(a.hostsFn)
|
||||
if ehc.watcher != nil {
|
||||
go ehc.watcherLoop()
|
||||
|
||||
err := ehc.watcher.Add(ehc.hostsFn)
|
||||
if err != nil {
|
||||
log.Error("Error while initializing watcher for a file %s: %s", a.hostsFn, err)
|
||||
log.Error("Error while initializing watcher for a file %s: %s", ehc.hostsFn, err)
|
||||
}
|
||||
|
||||
for _, dir := range a.hostsDirs {
|
||||
err = a.watcher.Add(dir)
|
||||
for _, dir := range ehc.hostsDirs {
|
||||
err = ehc.watcher.Add(dir)
|
||||
if err != nil {
|
||||
log.Error("Error while initializing watcher for a directory %s: %s", dir, err)
|
||||
}
|
||||
@@ -104,67 +114,71 @@ func (a *AutoHosts) Start() {
|
||||
}
|
||||
|
||||
// Close - close module
|
||||
func (a *AutoHosts) Close() {
|
||||
if a.watcher != nil {
|
||||
_ = a.watcher.Close()
|
||||
func (ehc *EtcHostsContainer) Close() {
|
||||
if ehc == nil {
|
||||
return
|
||||
}
|
||||
close(a.onlyWritesChan)
|
||||
|
||||
if ehc.watcher != nil {
|
||||
_ = ehc.watcher.Close()
|
||||
}
|
||||
close(ehc.onlyWritesChan)
|
||||
}
|
||||
|
||||
// Process returns the list of IP addresses for the hostname or nil if nothing
|
||||
// found.
|
||||
func (a *AutoHosts) Process(host string, qtype uint16) []net.IP {
|
||||
func (ehc *EtcHostsContainer) Process(host string, qtype uint16) []net.IP {
|
||||
if qtype == dns.TypePTR {
|
||||
return nil
|
||||
}
|
||||
|
||||
var ipsCopy []net.IP
|
||||
a.lock.RLock()
|
||||
defer a.lock.RUnlock()
|
||||
ehc.lock.RLock()
|
||||
defer ehc.lock.RUnlock()
|
||||
|
||||
if ips, ok := a.table[host]; ok {
|
||||
if ips, ok := ehc.table[host]; ok {
|
||||
ipsCopy = make([]net.IP, len(ips))
|
||||
copy(ipsCopy, ips)
|
||||
}
|
||||
|
||||
log.Debug("AutoHosts: answer: %s -> %v", host, ipsCopy)
|
||||
log.Debug("etchostscontainer: answer: %s -> %v", host, ipsCopy)
|
||||
return ipsCopy
|
||||
}
|
||||
|
||||
// ProcessReverse processes a PTR request. It returns nil if nothing is found.
|
||||
func (a *AutoHosts) ProcessReverse(addr string, qtype uint16) (hosts []string) {
|
||||
func (ehc *EtcHostsContainer) ProcessReverse(addr string, qtype uint16) (hosts []string) {
|
||||
if qtype != dns.TypePTR {
|
||||
return nil
|
||||
}
|
||||
|
||||
ipReal := DNSUnreverseAddr(addr)
|
||||
ipReal := UnreverseAddr(addr)
|
||||
if ipReal == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
ipStr := ipReal.String()
|
||||
|
||||
a.lock.RLock()
|
||||
defer a.lock.RUnlock()
|
||||
ehc.lock.RLock()
|
||||
defer ehc.lock.RUnlock()
|
||||
|
||||
hosts = a.tableReverse[ipStr]
|
||||
hosts = ehc.tableReverse[ipStr]
|
||||
|
||||
if len(hosts) == 0 {
|
||||
return nil // not found
|
||||
}
|
||||
|
||||
log.Debug("AutoHosts: reverse-lookup: %s -> %s", addr, hosts)
|
||||
log.Debug("etchostscontainer: reverse-lookup: %s -> %s", addr, hosts)
|
||||
|
||||
return hosts
|
||||
}
|
||||
|
||||
// List returns an IP-to-hostnames table. It is safe for concurrent use.
|
||||
func (a *AutoHosts) List() (ipToHosts map[string][]string) {
|
||||
a.lock.RLock()
|
||||
defer a.lock.RUnlock()
|
||||
func (ehc *EtcHostsContainer) List() (ipToHosts map[string][]string) {
|
||||
ehc.lock.RLock()
|
||||
defer ehc.lock.RUnlock()
|
||||
|
||||
ipToHosts = make(map[string][]string, len(a.tableReverse))
|
||||
for k, v := range a.tableReverse {
|
||||
ipToHosts = make(map[string][]string, len(ehc.tableReverse))
|
||||
for k, v := range ehc.tableReverse {
|
||||
ipToHosts[k] = v
|
||||
}
|
||||
|
||||
@@ -172,7 +186,7 @@ func (a *AutoHosts) List() (ipToHosts map[string][]string) {
|
||||
}
|
||||
|
||||
// update table
|
||||
func (a *AutoHosts) updateTable(table map[string][]net.IP, host string, ipAddr net.IP) {
|
||||
func (ehc *EtcHostsContainer) updateTable(table map[string][]net.IP, host string, ipAddr net.IP) {
|
||||
ips, ok := table[host]
|
||||
if ok {
|
||||
for _, ip := range ips {
|
||||
@@ -191,17 +205,17 @@ func (a *AutoHosts) updateTable(table map[string][]net.IP, host string, ipAddr n
|
||||
ok = true
|
||||
}
|
||||
if ok {
|
||||
log.Debug("AutoHosts: added %s -> %s", ipAddr, host)
|
||||
log.Debug("etchostscontainer: added %s -> %s", ipAddr, host)
|
||||
}
|
||||
}
|
||||
|
||||
// updateTableRev updates the reverse address table.
|
||||
func (a *AutoHosts) updateTableRev(tableRev map[string][]string, newHost string, ipAddr net.IP) {
|
||||
func (ehc *EtcHostsContainer) updateTableRev(tableRev map[string][]string, newHost string, ipAddr net.IP) {
|
||||
ipStr := ipAddr.String()
|
||||
hosts, ok := tableRev[ipStr]
|
||||
if !ok {
|
||||
tableRev[ipStr] = []string{newHost}
|
||||
log.Debug("AutoHosts: added reverse-address %s -> %s", ipStr, newHost)
|
||||
log.Debug("etchostscontainer: added reverse-address %s -> %s", ipStr, newHost)
|
||||
|
||||
return
|
||||
}
|
||||
@@ -213,30 +227,32 @@ func (a *AutoHosts) updateTableRev(tableRev map[string][]string, newHost string,
|
||||
}
|
||||
|
||||
tableRev[ipStr] = append(tableRev[ipStr], newHost)
|
||||
log.Debug("AutoHosts: added reverse-address %s -> %s", ipStr, newHost)
|
||||
log.Debug("etchostscontainer: added reverse-address %s -> %s", ipStr, newHost)
|
||||
}
|
||||
|
||||
// Read IP-hostname pairs from file
|
||||
// Multiple hostnames per line (per one IP) is supported.
|
||||
func (a *AutoHosts) load(table map[string][]net.IP, tableRev map[string][]string, fn string) {
|
||||
func (ehc *EtcHostsContainer) load(table map[string][]net.IP, tableRev map[string][]string, fn string) {
|
||||
f, err := os.Open(fn)
|
||||
if err != nil {
|
||||
log.Error("AutoHosts: %s", err)
|
||||
log.Error("etchostscontainer: %s", err)
|
||||
return
|
||||
}
|
||||
defer f.Close()
|
||||
r := bufio.NewReader(f)
|
||||
log.Debug("AutoHosts: loading hosts from file %s", fn)
|
||||
log.Debug("etchostscontainer: loading hosts from file %s", fn)
|
||||
|
||||
finish := false
|
||||
for !finish {
|
||||
line, err := r.ReadString('\n')
|
||||
for done := false; !done; {
|
||||
var line string
|
||||
line, err = r.ReadString('\n')
|
||||
if err == io.EOF {
|
||||
finish = true
|
||||
done = true
|
||||
} else if err != nil {
|
||||
log.Error("AutoHosts: %s", err)
|
||||
log.Error("etchostscontainer: %s", err)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
line = strings.TrimSpace(line)
|
||||
if len(line) == 0 || line[0] == '#' {
|
||||
continue
|
||||
@@ -247,46 +263,50 @@ func (a *AutoHosts) load(table map[string][]net.IP, tableRev map[string][]string
|
||||
continue
|
||||
}
|
||||
|
||||
ipAddr := net.ParseIP(fields[0])
|
||||
if ipAddr == nil {
|
||||
ip := net.ParseIP(fields[0])
|
||||
if ip == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
for i := 1; i != len(fields); i++ {
|
||||
host := fields[i]
|
||||
if len(host) == 0 {
|
||||
break
|
||||
}
|
||||
|
||||
sharp := strings.IndexByte(host, '#')
|
||||
if sharp == 0 {
|
||||
break // skip the rest of the line after #
|
||||
// Skip the comments.
|
||||
break
|
||||
} else if sharp > 0 {
|
||||
host = host[:sharp]
|
||||
}
|
||||
|
||||
a.updateTable(table, host, ipAddr)
|
||||
a.updateTableRev(tableRev, host, ipAddr)
|
||||
ehc.updateTable(table, host, ip)
|
||||
ehc.updateTableRev(tableRev, host, ip)
|
||||
if sharp >= 0 {
|
||||
break // skip the rest of the line after #
|
||||
// Skip the comments again.
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// onlyWrites is a filter for (*fsnotify.Watcher).Events.
|
||||
func (a *AutoHosts) onlyWrites() {
|
||||
for event := range a.watcher.Events {
|
||||
func (ehc *EtcHostsContainer) onlyWrites() {
|
||||
for event := range ehc.watcher.Events {
|
||||
if event.Op&fsnotify.Write == fsnotify.Write {
|
||||
a.onlyWritesChan <- event
|
||||
ehc.onlyWritesChan <- event
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Receive notifications from fsnotify package
|
||||
func (a *AutoHosts) watcherLoop() {
|
||||
go a.onlyWrites()
|
||||
func (ehc *EtcHostsContainer) watcherLoop() {
|
||||
go ehc.onlyWrites()
|
||||
for {
|
||||
select {
|
||||
case event, ok := <-a.onlyWritesChan:
|
||||
case event, ok := <-ehc.onlyWritesChan:
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
@@ -296,7 +316,7 @@ func (a *AutoHosts) watcherLoop() {
|
||||
repeat := true
|
||||
for repeat {
|
||||
select {
|
||||
case _, ok = <-a.onlyWritesChan:
|
||||
case _, ok = <-ehc.onlyWritesChan:
|
||||
repeat = ok
|
||||
default:
|
||||
repeat = false
|
||||
@@ -304,47 +324,48 @@ func (a *AutoHosts) watcherLoop() {
|
||||
}
|
||||
|
||||
if event.Op&fsnotify.Write == fsnotify.Write {
|
||||
log.Debug("AutoHosts: modified: %s", event.Name)
|
||||
a.updateHosts()
|
||||
log.Debug("etchostscontainer: modified: %s", event.Name)
|
||||
ehc.updateHosts()
|
||||
}
|
||||
|
||||
case err, ok := <-a.watcher.Errors:
|
||||
case err, ok := <-ehc.watcher.Errors:
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
log.Error("AutoHosts: %s", err)
|
||||
log.Error("etchostscontainer: %s", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// updateHosts - loads system hosts
|
||||
func (a *AutoHosts) updateHosts() {
|
||||
func (ehc *EtcHostsContainer) updateHosts() {
|
||||
table := make(map[string][]net.IP)
|
||||
tableRev := make(map[string][]string)
|
||||
|
||||
a.load(table, tableRev, a.hostsFn)
|
||||
ehc.load(table, tableRev, ehc.hostsFn)
|
||||
|
||||
for _, dir := range a.hostsDirs {
|
||||
for _, dir := range ehc.hostsDirs {
|
||||
fis, err := ioutil.ReadDir(dir)
|
||||
if err != nil {
|
||||
if !os.IsNotExist(err) {
|
||||
log.Error("AutoHosts: Opening directory: %s: %s", dir, err)
|
||||
if !errors.Is(err, os.ErrNotExist) {
|
||||
log.Error("etchostscontainer: Opening directory: %q: %s", dir, err)
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
for _, fi := range fis {
|
||||
a.load(table, tableRev, dir+"/"+fi.Name())
|
||||
ehc.load(table, tableRev, filepath.Join(dir, fi.Name()))
|
||||
}
|
||||
}
|
||||
|
||||
func() {
|
||||
a.lock.Lock()
|
||||
defer a.lock.Unlock()
|
||||
ehc.lock.Lock()
|
||||
defer ehc.lock.Unlock()
|
||||
|
||||
a.table = table
|
||||
a.tableReverse = tableRev
|
||||
ehc.table = table
|
||||
ehc.tableReverse = tableRev
|
||||
}()
|
||||
|
||||
a.notify()
|
||||
ehc.notify()
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package util
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
@@ -21,7 +21,7 @@ func TestMain(m *testing.M) {
|
||||
func prepareTestFile(t *testing.T) (f *os.File) {
|
||||
t.Helper()
|
||||
|
||||
dir := aghtest.PrepareTestDir(t)
|
||||
dir := t.TempDir()
|
||||
|
||||
f, err := ioutil.TempFile(dir, "")
|
||||
require.Nil(t, err)
|
||||
@@ -43,8 +43,8 @@ func assertWriting(t *testing.T, f *os.File, strs ...string) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestAutoHostsResolution(t *testing.T) {
|
||||
ah := &AutoHosts{}
|
||||
func TestEtcHostsContainerResolution(t *testing.T) {
|
||||
ehc := &EtcHostsContainer{}
|
||||
|
||||
f := prepareTestFile(t)
|
||||
|
||||
@@ -52,25 +52,25 @@ func TestAutoHostsResolution(t *testing.T) {
|
||||
" 127.0.0.1 host localhost # comment \n",
|
||||
" ::1 localhost#comment \n",
|
||||
)
|
||||
ah.Init(f.Name())
|
||||
ehc.Init(f.Name())
|
||||
|
||||
t.Run("existing_host", func(t *testing.T) {
|
||||
ips := ah.Process("localhost", dns.TypeA)
|
||||
ips := ehc.Process("localhost", dns.TypeA)
|
||||
require.Len(t, ips, 1)
|
||||
assert.Equal(t, net.IPv4(127, 0, 0, 1), ips[0])
|
||||
})
|
||||
|
||||
t.Run("unknown_host", func(t *testing.T) {
|
||||
ips := ah.Process("newhost", dns.TypeA)
|
||||
ips := ehc.Process("newhost", dns.TypeA)
|
||||
assert.Nil(t, ips)
|
||||
|
||||
// Comment.
|
||||
ips = ah.Process("comment", dns.TypeA)
|
||||
ips = ehc.Process("comment", dns.TypeA)
|
||||
assert.Nil(t, ips)
|
||||
})
|
||||
|
||||
t.Run("hosts_file", func(t *testing.T) {
|
||||
names, ok := ah.List()["127.0.0.1"]
|
||||
names, ok := ehc.List()["127.0.0.1"]
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, []string{"host", "localhost"}, names)
|
||||
})
|
||||
@@ -90,29 +90,29 @@ func TestAutoHostsResolution(t *testing.T) {
|
||||
require.Nil(t, err)
|
||||
|
||||
a = strings.TrimSuffix(a, ".")
|
||||
hosts := ah.ProcessReverse(a, dns.TypePTR)
|
||||
hosts := ehc.ProcessReverse(a, dns.TypePTR)
|
||||
require.Len(t, hosts, tc.wantLen)
|
||||
assert.Equal(t, tc.wantHost, hosts[0])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestAutoHostsFSNotify(t *testing.T) {
|
||||
ah := &AutoHosts{}
|
||||
func TestEtcHostsContainerFSNotify(t *testing.T) {
|
||||
ehc := &EtcHostsContainer{}
|
||||
|
||||
f := prepareTestFile(t)
|
||||
|
||||
assertWriting(t, f, " 127.0.0.1 host localhost \n")
|
||||
ah.Init(f.Name())
|
||||
ehc.Init(f.Name())
|
||||
|
||||
t.Run("unknown_host", func(t *testing.T) {
|
||||
ips := ah.Process("newhost", dns.TypeA)
|
||||
ips := ehc.Process("newhost", dns.TypeA)
|
||||
assert.Nil(t, ips)
|
||||
})
|
||||
|
||||
// Start monitoring for changes.
|
||||
ah.Start()
|
||||
t.Cleanup(ah.Close)
|
||||
ehc.Start()
|
||||
t.Cleanup(ehc.Close)
|
||||
|
||||
assertWriting(t, f, "127.0.0.2 newhost\n")
|
||||
require.Nil(t, f.Sync())
|
||||
@@ -122,51 +122,9 @@ func TestAutoHostsFSNotify(t *testing.T) {
|
||||
time.Sleep(50 * time.Millisecond)
|
||||
|
||||
t.Run("notified", func(t *testing.T) {
|
||||
ips := ah.Process("newhost", dns.TypeA)
|
||||
ips := ehc.Process("newhost", dns.TypeA)
|
||||
assert.NotNil(t, ips)
|
||||
require.Len(t, ips, 1)
|
||||
assert.True(t, net.IP{127, 0, 0, 2}.Equal(ips[0]))
|
||||
})
|
||||
}
|
||||
|
||||
func TestDNSReverseAddr(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
have string
|
||||
want net.IP
|
||||
}{{
|
||||
name: "good_ipv4",
|
||||
have: "1.0.0.127.in-addr.arpa",
|
||||
want: net.IP{127, 0, 0, 1},
|
||||
}, {
|
||||
name: "good_ipv6",
|
||||
have: "4.3.2.1.d.c.b.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa",
|
||||
want: net.ParseIP("::abcd:1234"),
|
||||
}, {
|
||||
name: "good_ipv6_case",
|
||||
have: "4.3.2.1.d.c.B.A.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa",
|
||||
want: net.ParseIP("::abcd:1234"),
|
||||
}, {
|
||||
name: "bad_ipv4_dot",
|
||||
have: "1.0.0.127.in-addr.arpa.",
|
||||
}, {
|
||||
name: "wrong_ipv4",
|
||||
have: ".0.0.127.in-addr.arpa",
|
||||
}, {
|
||||
name: "wrong_ipv6",
|
||||
have: ".3.2.1.d.c.b.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa",
|
||||
}, {
|
||||
name: "bad_ipv6_dot",
|
||||
have: "4.3.2.1.d.c.b.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0..ip6.arpa",
|
||||
}, {
|
||||
name: "bad_ipv6_space",
|
||||
have: "4.3.2.1.d.c.b. .0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa",
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
ip := DNSUnreverseAddr(tc.have)
|
||||
assert.True(t, tc.want.Equal(ip))
|
||||
})
|
||||
}
|
||||
}
|
||||
427
internal/aghnet/net.go
Normal file
427
internal/aghnet/net.go
Normal file
@@ -0,0 +1,427 @@
|
||||
// Package aghnet contains some utilities for networking.
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/agherr"
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/aghstrings"
|
||||
"github.com/AdguardTeam/golibs/log"
|
||||
)
|
||||
|
||||
// ErrNoStaticIPInfo is returned by IfaceHasStaticIP when no information about
|
||||
// the IP being static is available.
|
||||
const ErrNoStaticIPInfo agherr.Error = "no information about static ip"
|
||||
|
||||
// IfaceHasStaticIP checks if interface is configured to have static IP address.
|
||||
// If it can't give a definitive answer, it returns false and an error for which
|
||||
// errors.Is(err, ErrNoStaticIPInfo) is true.
|
||||
func IfaceHasStaticIP(ifaceName string) (has bool, err error) {
|
||||
return ifaceHasStaticIP(ifaceName)
|
||||
}
|
||||
|
||||
// IfaceSetStaticIP sets static IP address for network interface.
|
||||
func IfaceSetStaticIP(ifaceName string) (err error) {
|
||||
return ifaceSetStaticIP(ifaceName)
|
||||
}
|
||||
|
||||
// GatewayIP returns IP address of interface's gateway.
|
||||
func GatewayIP(ifaceName string) net.IP {
|
||||
cmd := exec.Command("ip", "route", "show", "dev", ifaceName)
|
||||
log.Tracef("executing %s %v", cmd.Path, cmd.Args)
|
||||
d, err := cmd.Output()
|
||||
if err != nil || cmd.ProcessState.ExitCode() != 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
fields := strings.Fields(string(d))
|
||||
// The meaningful "ip route" command output should contain the word
|
||||
// "default" at first field and default gateway IP address at third
|
||||
// field.
|
||||
if len(fields) < 3 || fields[0] != "default" {
|
||||
return nil
|
||||
}
|
||||
|
||||
return net.ParseIP(fields[2])
|
||||
}
|
||||
|
||||
// CanBindPort checks if we can bind to the given port.
|
||||
func CanBindPort(port int) (can bool, err error) {
|
||||
var addr *net.TCPAddr
|
||||
addr, err = net.ResolveTCPAddr("tcp", fmt.Sprintf("127.0.0.1:%d", port))
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
var listener *net.TCPListener
|
||||
listener, err = net.ListenTCP("tcp", addr)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
_ = listener.Close()
|
||||
return true, nil
|
||||
}
|
||||
|
||||
// NetInterface represents an entry of network interfaces map.
|
||||
type NetInterface struct {
|
||||
MTU int `json:"mtu"`
|
||||
Name string `json:"name"`
|
||||
HardwareAddr net.HardwareAddr `json:"hardware_address"`
|
||||
Flags net.Flags `json:"flags"`
|
||||
// Array with the network interface addresses.
|
||||
Addresses []net.IP `json:"ip_addresses,omitempty"`
|
||||
// Array with IP networks for this network interface.
|
||||
Subnets []*net.IPNet `json:"-"`
|
||||
}
|
||||
|
||||
// MarshalJSON implements the json.Marshaler interface for *NetInterface.
|
||||
func (iface *NetInterface) MarshalJSON() ([]byte, error) {
|
||||
type netInterface NetInterface
|
||||
return json.Marshal(&struct {
|
||||
HardwareAddr string `json:"hardware_address"`
|
||||
Flags string `json:"flags"`
|
||||
*netInterface
|
||||
}{
|
||||
HardwareAddr: iface.HardwareAddr.String(),
|
||||
Flags: iface.Flags.String(),
|
||||
netInterface: (*netInterface)(iface),
|
||||
})
|
||||
}
|
||||
|
||||
// GetValidNetInterfacesForWeb returns interfaces that are eligible for DNS and WEB only
|
||||
// we do not return link-local addresses here
|
||||
func GetValidNetInterfacesForWeb() ([]*NetInterface, error) {
|
||||
ifaces, err := net.Interfaces()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("couldn't get interfaces: %w", err)
|
||||
}
|
||||
if len(ifaces) == 0 {
|
||||
return nil, errors.New("couldn't find any legible interface")
|
||||
}
|
||||
|
||||
var netInterfaces []*NetInterface
|
||||
|
||||
for _, iface := range ifaces {
|
||||
var addrs []net.Addr
|
||||
addrs, err = iface.Addrs()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get addresses for interface %s: %w", iface.Name, err)
|
||||
}
|
||||
|
||||
netIface := &NetInterface{
|
||||
MTU: iface.MTU,
|
||||
Name: iface.Name,
|
||||
HardwareAddr: iface.HardwareAddr,
|
||||
Flags: iface.Flags,
|
||||
}
|
||||
|
||||
// Collect network interface addresses.
|
||||
for _, addr := range addrs {
|
||||
ipNet, ok := addr.(*net.IPNet)
|
||||
if !ok {
|
||||
// Should be net.IPNet, this is weird.
|
||||
return nil, fmt.Errorf("got iface.Addrs() element %s that is not net.IPNet, it is %T", addr, addr)
|
||||
}
|
||||
// Ignore link-local.
|
||||
if ipNet.IP.IsLinkLocalUnicast() {
|
||||
continue
|
||||
}
|
||||
netIface.Addresses = append(netIface.Addresses, ipNet.IP)
|
||||
netIface.Subnets = append(netIface.Subnets, ipNet)
|
||||
}
|
||||
|
||||
// Discard interfaces with no addresses.
|
||||
if len(netIface.Addresses) != 0 {
|
||||
netInterfaces = append(netInterfaces, netIface)
|
||||
}
|
||||
}
|
||||
|
||||
return netInterfaces, nil
|
||||
}
|
||||
|
||||
// GetInterfaceByIP returns the name of interface containing provided ip.
|
||||
func GetInterfaceByIP(ip net.IP) string {
|
||||
ifaces, err := GetValidNetInterfacesForWeb()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
for _, iface := range ifaces {
|
||||
for _, addr := range iface.Addresses {
|
||||
if ip.Equal(addr) {
|
||||
return iface.Name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
// GetSubnet returns pointer to net.IPNet for the specified interface or nil if
|
||||
// the search fails.
|
||||
func GetSubnet(ifaceName string) *net.IPNet {
|
||||
netIfaces, err := GetValidNetInterfacesForWeb()
|
||||
if err != nil {
|
||||
log.Error("Could not get network interfaces info: %v", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
for _, netIface := range netIfaces {
|
||||
if netIface.Name == ifaceName && len(netIface.Subnets) > 0 {
|
||||
return netIface.Subnets[0]
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CheckPortAvailable - check if TCP port is available
|
||||
func CheckPortAvailable(host net.IP, port int) error {
|
||||
ln, err := net.Listen("tcp", net.JoinHostPort(host.String(), strconv.Itoa(port)))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_ = ln.Close()
|
||||
|
||||
// It seems that net.Listener.Close() doesn't close file descriptors right away.
|
||||
// We wait for some time and hope that this fd will be closed.
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
return nil
|
||||
}
|
||||
|
||||
// CheckPacketPortAvailable - check if UDP port is available
|
||||
func CheckPacketPortAvailable(host net.IP, port int) error {
|
||||
ln, err := net.ListenPacket("udp", net.JoinHostPort(host.String(), strconv.Itoa(port)))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_ = ln.Close()
|
||||
|
||||
// It seems that net.Listener.Close() doesn't close file descriptors right away.
|
||||
// We wait for some time and hope that this fd will be closed.
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
return err
|
||||
}
|
||||
|
||||
// ErrorIsAddrInUse - check if error is "address already in use"
|
||||
func ErrorIsAddrInUse(err error) bool {
|
||||
errOpError, ok := err.(*net.OpError)
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
|
||||
errSyscallError, ok := errOpError.Err.(*os.SyscallError)
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
|
||||
errErrno, ok := errSyscallError.Err.(syscall.Errno)
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
|
||||
if runtime.GOOS == "windows" {
|
||||
const WSAEADDRINUSE = 10048
|
||||
return errErrno == WSAEADDRINUSE
|
||||
}
|
||||
|
||||
return errErrno == syscall.EADDRINUSE
|
||||
}
|
||||
|
||||
// SplitHost is a wrapper for net.SplitHostPort for the cases when the hostport
|
||||
// does not necessarily contain a port.
|
||||
func SplitHost(hostport string) (host string, err error) {
|
||||
host, _, err = net.SplitHostPort(hostport)
|
||||
if err != nil {
|
||||
// Check for the missing port error. If it is that error, just
|
||||
// use the host as is.
|
||||
//
|
||||
// See the source code for net.SplitHostPort.
|
||||
const missingPort = "missing port in address"
|
||||
|
||||
addrErr := &net.AddrError{}
|
||||
if !errors.As(err, &addrErr) || addrErr.Err != missingPort {
|
||||
return "", err
|
||||
}
|
||||
|
||||
host = hostport
|
||||
}
|
||||
|
||||
return host, nil
|
||||
}
|
||||
|
||||
// TODO(e.burkov): Inspect the charToHex, ipParseARPA6, ipReverse and
|
||||
// UnreverseAddr and maybe refactor it.
|
||||
|
||||
// charToHex converts character to a hexadecimal.
|
||||
func charToHex(n byte) int8 {
|
||||
if n >= '0' && n <= '9' {
|
||||
return int8(n) - '0'
|
||||
} else if (n|0x20) >= 'a' && (n|0x20) <= 'f' {
|
||||
return (int8(n) | 0x20) - 'a' + 10
|
||||
}
|
||||
return -1
|
||||
}
|
||||
|
||||
// ipParseARPA6 parse IPv6 reverse address
|
||||
func ipParseARPA6(s string) (ip6 net.IP) {
|
||||
if len(s) != 63 {
|
||||
return nil
|
||||
}
|
||||
|
||||
ip6 = make(net.IP, 16)
|
||||
|
||||
for i := 0; i != 64; i += 4 {
|
||||
// parse "0.1."
|
||||
n := charToHex(s[i])
|
||||
n2 := charToHex(s[i+2])
|
||||
if s[i+1] != '.' || (i != 60 && s[i+3] != '.') ||
|
||||
n < 0 || n2 < 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
ip6[16-i/4-1] = byte(n2<<4) | byte(n&0x0f)
|
||||
}
|
||||
return ip6
|
||||
}
|
||||
|
||||
// ipReverse inverts byte order of ip.
|
||||
func ipReverse(ip net.IP) (rev net.IP) {
|
||||
ipLen := len(ip)
|
||||
rev = make(net.IP, ipLen)
|
||||
for i, b := range ip {
|
||||
rev[ipLen-i-1] = b
|
||||
}
|
||||
|
||||
return rev
|
||||
}
|
||||
|
||||
// ARPA addresses' suffixes.
|
||||
const (
|
||||
arpaV4Suffix = ".in-addr.arpa"
|
||||
arpaV6Suffix = ".ip6.arpa"
|
||||
)
|
||||
|
||||
// UnreverseAddr tries to convert reversed ARPA to a normal IP address.
|
||||
func UnreverseAddr(arpa string) (unreversed net.IP) {
|
||||
// Unify the input data.
|
||||
arpa = strings.TrimSuffix(arpa, ".")
|
||||
arpa = strings.ToLower(arpa)
|
||||
|
||||
if strings.HasSuffix(arpa, arpaV4Suffix) {
|
||||
ip := strings.TrimSuffix(arpa, arpaV4Suffix)
|
||||
ip4 := net.ParseIP(ip).To4()
|
||||
if ip4 == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return ipReverse(ip4)
|
||||
|
||||
} else if strings.HasSuffix(arpa, arpaV6Suffix) {
|
||||
ip := strings.TrimSuffix(arpa, arpaV6Suffix)
|
||||
return ipParseARPA6(ip)
|
||||
}
|
||||
|
||||
// The suffix unrecognizable.
|
||||
return nil
|
||||
}
|
||||
|
||||
// The length of extreme cases of arpa formatted addresses.
|
||||
//
|
||||
// The example of IPv4 with maximum length:
|
||||
//
|
||||
// 49.91.20.104.in-addr.arpa
|
||||
//
|
||||
// The example of IPv6 with maximum length:
|
||||
//
|
||||
// 1.3.b.5.4.1.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.0.7.4.6.0.6.2.ip6.arpa
|
||||
//
|
||||
const (
|
||||
arpaV4MaxLen = len("000.000.000.000") + len(arpaV4Suffix)
|
||||
arpaV6MaxLen = len("0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0") +
|
||||
len(arpaV6Suffix)
|
||||
)
|
||||
|
||||
// ReverseAddr returns the ARPA hostname of the ip suitable for reverse DNS
|
||||
// (PTR) record lookups. This is the modified version of ReverseAddr from
|
||||
// github.com/miekg/dns package with no error among returned values.
|
||||
func ReverseAddr(ip net.IP) (arpa string) {
|
||||
const dot = "."
|
||||
|
||||
var strLen int
|
||||
var suffix string
|
||||
var writeByte func(val byte)
|
||||
b := &strings.Builder{}
|
||||
if ip4 := ip.To4(); ip4 != nil {
|
||||
strLen, suffix = arpaV4MaxLen, arpaV4Suffix[1:]
|
||||
ip = ip4
|
||||
writeByte = func(val byte) {
|
||||
aghstrings.WriteToBuilder(b, strconv.Itoa(int(val)), dot)
|
||||
}
|
||||
|
||||
} else if ip6 := ip.To16(); ip6 != nil {
|
||||
strLen, suffix = arpaV6MaxLen, arpaV6Suffix[1:]
|
||||
ip = ip6
|
||||
writeByte = func(val byte) {
|
||||
aghstrings.WriteToBuilder(
|
||||
b,
|
||||
strconv.FormatUint(uint64(val&0xF), 16),
|
||||
dot,
|
||||
strconv.FormatUint(uint64(val>>4), 16),
|
||||
dot,
|
||||
)
|
||||
}
|
||||
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
|
||||
b.Grow(strLen)
|
||||
for i := len(ip) - 1; i >= 0; i-- {
|
||||
writeByte(ip[i])
|
||||
}
|
||||
aghstrings.WriteToBuilder(b, suffix)
|
||||
|
||||
return b.String()
|
||||
}
|
||||
|
||||
// CollectAllIfacesAddrs returns the slice of all network interfaces IP
|
||||
// addresses without port number.
|
||||
func CollectAllIfacesAddrs() (addrs []string, err error) {
|
||||
var ifaces []net.Interface
|
||||
ifaces, err = net.Interfaces()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getting network interfaces: %w", err)
|
||||
}
|
||||
|
||||
for _, iface := range ifaces {
|
||||
var ifaceAddrs []net.Addr
|
||||
ifaceAddrs, err = iface.Addrs()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getting addresses for %q: %w", iface.Name, err)
|
||||
}
|
||||
|
||||
for _, addr := range ifaceAddrs {
|
||||
cidr := addr.String()
|
||||
var ip net.IP
|
||||
ip, _, err = net.ParseCIDR(cidr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("parsing cidr: %w", err)
|
||||
}
|
||||
|
||||
addrs = append(addrs, ip.String())
|
||||
}
|
||||
}
|
||||
|
||||
return addrs, nil
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
// +build darwin
|
||||
|
||||
package sysutil
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"errors"
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/util"
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/aghos"
|
||||
)
|
||||
|
||||
// hardwarePortInfo - information obtained using MacOS networksetup
|
||||
@@ -31,7 +31,7 @@ func ifaceHasStaticIP(ifaceName string) (bool, error) {
|
||||
return portInfo.static, nil
|
||||
}
|
||||
|
||||
// getCurrentHardwarePortInfo gets information the specified network interface.
|
||||
// getCurrentHardwarePortInfo gets information for the specified network interface.
|
||||
func getCurrentHardwarePortInfo(ifaceName string) (hardwarePortInfo, error) {
|
||||
// First of all we should find hardware port name
|
||||
m := getNetworkSetupHardwareReports()
|
||||
@@ -47,7 +47,7 @@ func getCurrentHardwarePortInfo(ifaceName string) (hardwarePortInfo, error) {
|
||||
// it returns a map where the key is the interface name, and the value is the "hardware port"
|
||||
// returns nil if it fails to parse the output
|
||||
func getNetworkSetupHardwareReports() map[string]string {
|
||||
_, out, err := util.RunCommand("networksetup", "-listallhardwareports")
|
||||
_, out, err := aghos.RunCommand("networksetup", "-listallhardwareports")
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
@@ -72,7 +72,7 @@ func getNetworkSetupHardwareReports() map[string]string {
|
||||
func getHardwarePortInfo(hardwarePort string) (hardwarePortInfo, error) {
|
||||
h := hardwarePortInfo{}
|
||||
|
||||
_, out, err := util.RunCommand("networksetup", "-getinfo", hardwarePort)
|
||||
_, out, err := aghos.RunCommand("networksetup", "-getinfo", hardwarePort)
|
||||
if err != nil {
|
||||
return h, err
|
||||
}
|
||||
@@ -116,7 +116,7 @@ func ifaceSetStaticIP(ifaceName string) (err error) {
|
||||
args = append(args, dnsAddrs...)
|
||||
|
||||
// Setting DNS servers is necessary when configuring a static IP
|
||||
code, _, err := util.RunCommand("networksetup", args...)
|
||||
code, _, err := aghos.RunCommand("networksetup", args...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -125,7 +125,7 @@ func ifaceSetStaticIP(ifaceName string) (err error) {
|
||||
}
|
||||
|
||||
// Actually configures hardware port to have static IP
|
||||
code, _, err = util.RunCommand("networksetup", "-setmanual",
|
||||
code, _, err = aghos.RunCommand("networksetup", "-setmanual",
|
||||
portInfo.name, portInfo.ip, portInfo.subnet, portInfo.gatewayIP)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -1,6 +1,6 @@
|
||||
// +build linux
|
||||
|
||||
package sysutil
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
@@ -13,8 +13,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/aghio"
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/util"
|
||||
"github.com/AdguardTeam/golibs/file"
|
||||
"github.com/google/renameio/maybe"
|
||||
)
|
||||
|
||||
// maxConfigFileSize is the maximum length of interfaces configuration file.
|
||||
@@ -132,7 +131,7 @@ func ifacesStaticConfig(r io.Reader, ifaceName string) (has bool, err error) {
|
||||
}
|
||||
|
||||
func ifaceSetStaticIP(ifaceName string) (err error) {
|
||||
ipNet := util.GetSubnet(ifaceName)
|
||||
ipNet := GetSubnet(ifaceName)
|
||||
if ipNet.IP == nil {
|
||||
return errors.New("can't get IP address")
|
||||
}
|
||||
@@ -146,9 +145,9 @@ func ifaceSetStaticIP(ifaceName string) (err error) {
|
||||
}
|
||||
|
||||
body = append(body, []byte(add)...)
|
||||
err = file.SafeWrite("/etc/dhcpcd.conf", body)
|
||||
err = maybe.WriteFile("/etc/dhcpcd.conf", body, 0o644)
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf("writing conf: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -1,6 +1,6 @@
|
||||
// +build linux
|
||||
|
||||
package sysutil
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@@ -49,7 +49,8 @@ func TestDHCPCDStaticConfig(t *testing.T) {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
r := bytes.NewReader(tc.data)
|
||||
has, err := dhcpcdStaticConfig(r, "wlan0")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, tc.want, has)
|
||||
})
|
||||
}
|
||||
@@ -86,7 +87,8 @@ func TestIfacesStaticConfig(t *testing.T) {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
r := bytes.NewReader(tc.data)
|
||||
has, err := ifacesStaticConfig(r, "enp0s3")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, tc.want, has)
|
||||
})
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
// +build !linux,!darwin
|
||||
|
||||
package sysutil
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
107
internal/aghnet/net_test.go
Normal file
107
internal/aghnet/net_test.go
Normal file
@@ -0,0 +1,107 @@
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"net"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestGetValidNetInterfacesForWeb(t *testing.T) {
|
||||
ifaces, err := GetValidNetInterfacesForWeb()
|
||||
require.NoErrorf(t, err, "cannot get net interfaces: %s", err)
|
||||
require.NotEmpty(t, ifaces, "no net interfaces found")
|
||||
for _, iface := range ifaces {
|
||||
require.NotEmptyf(t, iface.Addresses, "no addresses found for %s", iface.Name)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnreverseAddr(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
have string
|
||||
want net.IP
|
||||
}{{
|
||||
name: "good_ipv4",
|
||||
have: "1.0.0.127.in-addr.arpa",
|
||||
want: net.IP{127, 0, 0, 1},
|
||||
}, {
|
||||
name: "good_ipv6",
|
||||
have: "4.3.2.1.d.c.b.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa",
|
||||
want: net.ParseIP("::abcd:1234"),
|
||||
}, {
|
||||
name: "good_ipv6_case",
|
||||
have: "4.3.2.1.d.c.B.A.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.iP6.ArPa",
|
||||
want: net.ParseIP("::abcd:1234"),
|
||||
}, {
|
||||
name: "good_ipv4_dot",
|
||||
have: "1.0.0.127.in-addr.arpa.",
|
||||
want: net.IP{127, 0, 0, 1},
|
||||
}, {
|
||||
name: "good_ipv4_case",
|
||||
have: "1.0.0.127.In-Addr.Arpa",
|
||||
want: net.IP{127, 0, 0, 1},
|
||||
}, {
|
||||
name: "wrong_ipv4",
|
||||
have: ".0.0.127.in-addr.arpa",
|
||||
want: nil,
|
||||
}, {
|
||||
name: "wrong_ipv6",
|
||||
have: ".3.2.1.d.c.b.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa",
|
||||
want: nil,
|
||||
}, {
|
||||
name: "bad_ipv6_dot",
|
||||
have: "4.3.2.1.d.c.b.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0..ip6.arpa",
|
||||
want: nil,
|
||||
}, {
|
||||
name: "bad_ipv6_space",
|
||||
have: "4.3.2.1.d.c.b. .0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa",
|
||||
want: nil,
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
ip := UnreverseAddr(tc.have)
|
||||
assert.True(t, tc.want.Equal(ip))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestReverseAddr(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
want string
|
||||
ip net.IP
|
||||
}{{
|
||||
name: "valid_ipv4",
|
||||
want: "4.3.2.1.in-addr.arpa",
|
||||
ip: net.IP{1, 2, 3, 4},
|
||||
}, {
|
||||
name: "valid_ipv6",
|
||||
want: "1.3.b.5.4.1.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.0.7.4.6.0.6.2.ip6.arpa",
|
||||
ip: net.ParseIP("2606:4700:10::6814:5b31"),
|
||||
}, {
|
||||
name: "nil_ip",
|
||||
want: "",
|
||||
ip: nil,
|
||||
}, {
|
||||
name: "unspecified_ipv6",
|
||||
want: "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa",
|
||||
ip: net.IPv6unspecified,
|
||||
}, {
|
||||
name: "unspecified_ipv4",
|
||||
want: "0.0.0.0.in-addr.arpa",
|
||||
ip: net.IPv4zero,
|
||||
}, {
|
||||
name: "wrong_length_ip",
|
||||
want: "",
|
||||
ip: net.IP{1, 2, 3, 4, 5},
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
assert.Equal(t, tc.want, ReverseAddr(tc.ip))
|
||||
})
|
||||
}
|
||||
}
|
||||
156
internal/aghnet/subnetdetector.go
Normal file
156
internal/aghnet/subnetdetector.go
Normal file
@@ -0,0 +1,156 @@
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"net"
|
||||
)
|
||||
|
||||
// SubnetDetector describes IP address properties.
|
||||
type SubnetDetector struct {
|
||||
// spNets is the slice of special-purpose address registries as defined
|
||||
// by RFC-6890 (https://tools.ietf.org/html/rfc6890).
|
||||
spNets []*net.IPNet
|
||||
|
||||
// locServedNets is the slice of locally-served networks as defined by
|
||||
// RFC-6303 (https://tools.ietf.org/html/rfc6303).
|
||||
locServedNets []*net.IPNet
|
||||
}
|
||||
|
||||
// NewSubnetDetector returns a new IP detector.
|
||||
func NewSubnetDetector() (snd *SubnetDetector, err error) {
|
||||
spNets := []string{
|
||||
// "This" network.
|
||||
"0.0.0.0/8",
|
||||
// Private-Use Networks.
|
||||
"10.0.0.0/8",
|
||||
// Shared Address Space.
|
||||
"100.64.0.0/10",
|
||||
// Loopback.
|
||||
"127.0.0.0/8",
|
||||
// Link Local.
|
||||
"169.254.0.0/16",
|
||||
// Private-Use Networks.
|
||||
"172.16.0.0/12",
|
||||
// IETF Protocol Assignments.
|
||||
"192.0.0.0/24",
|
||||
// DS-Lite.
|
||||
"192.0.0.0/29",
|
||||
// TEST-NET-1
|
||||
"192.0.2.0/24",
|
||||
// 6to4 Relay Anycast.
|
||||
"192.88.99.0/24",
|
||||
// Private-Use Networks.
|
||||
"192.168.0.0/16",
|
||||
// Network Interconnect Device Benchmark Testing.
|
||||
"198.18.0.0/15",
|
||||
// TEST-NET-2.
|
||||
"198.51.100.0/24",
|
||||
// TEST-NET-3.
|
||||
"203.0.113.0/24",
|
||||
// Reserved for Future Use.
|
||||
"240.0.0.0/4",
|
||||
// Limited Broadcast.
|
||||
"255.255.255.255/32",
|
||||
|
||||
// Loopback.
|
||||
"::1/128",
|
||||
// Unspecified.
|
||||
"::/128",
|
||||
// IPv4-IPv6 Translation Address.
|
||||
"64:ff9b::/96",
|
||||
|
||||
// IPv4-Mapped Address. Since this network is used for mapping
|
||||
// IPv4 addresses, we don't include it.
|
||||
// "::ffff:0:0/96",
|
||||
|
||||
// Discard-Only Prefix.
|
||||
"100::/64",
|
||||
// IETF Protocol Assignments.
|
||||
"2001::/23",
|
||||
// TEREDO.
|
||||
"2001::/32",
|
||||
// Benchmarking.
|
||||
"2001:2::/48",
|
||||
// Documentation.
|
||||
"2001:db8::/32",
|
||||
// ORCHID.
|
||||
"2001:10::/28",
|
||||
// 6to4.
|
||||
"2002::/16",
|
||||
// Unique-Local.
|
||||
"fc00::/7",
|
||||
// Linked-Scoped Unicast.
|
||||
"fe80::/10",
|
||||
}
|
||||
|
||||
// TODO(e.burkov): It's a subslice of the slice above. Should be done
|
||||
// smarter.
|
||||
locServedNets := []string{
|
||||
// IPv4.
|
||||
"10.0.0.0/8",
|
||||
"172.16.0.0/12",
|
||||
"192.168.0.0/16",
|
||||
"127.0.0.0/8",
|
||||
"169.254.0.0/16",
|
||||
"192.0.2.0/24",
|
||||
"198.51.100.0/24",
|
||||
"203.0.113.0/24",
|
||||
"255.255.255.255/32",
|
||||
// IPv6.
|
||||
"::/128",
|
||||
"::1/128",
|
||||
"fe80::/10",
|
||||
"2001:db8::/32",
|
||||
"fd00::/8",
|
||||
}
|
||||
|
||||
snd = &SubnetDetector{
|
||||
spNets: make([]*net.IPNet, len(spNets)),
|
||||
locServedNets: make([]*net.IPNet, len(locServedNets)),
|
||||
}
|
||||
for i, ipnetStr := range spNets {
|
||||
var ipnet *net.IPNet
|
||||
_, ipnet, err = net.ParseCIDR(ipnetStr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
snd.spNets[i] = ipnet
|
||||
}
|
||||
for i, ipnetStr := range locServedNets {
|
||||
var ipnet *net.IPNet
|
||||
_, ipnet, err = net.ParseCIDR(ipnetStr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
snd.locServedNets[i] = ipnet
|
||||
}
|
||||
|
||||
return snd, nil
|
||||
}
|
||||
|
||||
// anyNetContains ranges through the given ipnets slice searching for the one
|
||||
// which contains the ip. For internal use only.
|
||||
//
|
||||
// TODO(e.burkov): Think about memoization.
|
||||
func anyNetContains(ipnets *[]*net.IPNet, ip net.IP) (is bool) {
|
||||
for _, ipnet := range *ipnets {
|
||||
if ipnet.Contains(ip) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// IsSpecialNetwork returns true if IP address is contained by any of
|
||||
// special-purpose IP address registries. It's safe for concurrent use.
|
||||
func (snd *SubnetDetector) IsSpecialNetwork(ip net.IP) (is bool) {
|
||||
return anyNetContains(&snd.spNets, ip)
|
||||
}
|
||||
|
||||
// IsLocallyServedNetwork returns true if IP address is contained by any of
|
||||
// locally-served IP address registries. It's safe for concurrent use.
|
||||
func (snd *SubnetDetector) IsLocallyServedNetwork(ip net.IP) (is bool) {
|
||||
return anyNetContains(&snd.locServedNets, ip)
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package home
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"net"
|
||||
@@ -8,12 +8,9 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestIPDetector_detectSpecialNetwork(t *testing.T) {
|
||||
var ipd *ipDetector
|
||||
var err error
|
||||
|
||||
ipd, err = newIPDetector()
|
||||
require.Nil(t, err)
|
||||
func TestSubnetDetector_DetectSpecialNetwork(t *testing.T) {
|
||||
snd, err := NewSubnetDetector()
|
||||
require.NoError(t, err)
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
@@ -139,7 +136,117 @@ func TestIPDetector_detectSpecialNetwork(t *testing.T) {
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
assert.Equal(t, tc.want, ipd.detectSpecialNetwork(tc.ip))
|
||||
assert.Equal(t, tc.want, snd.IsSpecialNetwork(tc.ip))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestSubnetDetector_DetectLocallyServedNetwork(t *testing.T) {
|
||||
snd, err := NewSubnetDetector()
|
||||
require.NoError(t, err)
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
ip net.IP
|
||||
want bool
|
||||
}{{
|
||||
name: "not_specific",
|
||||
ip: net.ParseIP("8.8.8.8"),
|
||||
want: false,
|
||||
}, {
|
||||
name: "private-Use",
|
||||
ip: net.ParseIP("10.0.0.0"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "loopback",
|
||||
ip: net.ParseIP("127.0.0.0"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "link_local",
|
||||
ip: net.ParseIP("169.254.0.0"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "private-use",
|
||||
ip: net.ParseIP("172.16.0.0"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "documentation_(test-net-1)",
|
||||
ip: net.ParseIP("192.0.2.0"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "private-use",
|
||||
ip: net.ParseIP("192.168.0.0"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "documentation_(test-net-2)",
|
||||
ip: net.ParseIP("198.51.100.0"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "documentation_(test-net-3)",
|
||||
ip: net.ParseIP("203.0.113.0"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "limited_broadcast",
|
||||
ip: net.ParseIP("255.255.255.255"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "loopback_address",
|
||||
ip: net.ParseIP("::1"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "unspecified_address",
|
||||
ip: net.ParseIP("::"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "documentation",
|
||||
ip: net.ParseIP("2001:db8::"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "linked-scoped_unicast",
|
||||
ip: net.ParseIP("fe80::"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "locally_assigned",
|
||||
ip: net.ParseIP("fd00::1"),
|
||||
want: true,
|
||||
}, {
|
||||
name: "not_locally_assigned",
|
||||
ip: net.ParseIP("fc00::1"),
|
||||
want: false,
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
assert.Equal(t, tc.want, snd.IsLocallyServedNetwork(tc.ip))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestSubnetDetector_Detect_parallel(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
snd, err := NewSubnetDetector()
|
||||
require.NoError(t, err)
|
||||
|
||||
testFunc := func() {
|
||||
for _, ip := range []net.IP{
|
||||
net.IPv4allrouter,
|
||||
net.IPv4allsys,
|
||||
net.IPv4bcast,
|
||||
net.IPv4zero,
|
||||
net.IPv6interfacelocalallnodes,
|
||||
net.IPv6linklocalallnodes,
|
||||
net.IPv6linklocalallrouters,
|
||||
net.IPv6loopback,
|
||||
net.IPv6unspecified,
|
||||
} {
|
||||
_ = snd.IsSpecialNetwork(ip)
|
||||
_ = snd.IsLocallyServedNetwork(ip)
|
||||
}
|
||||
}
|
||||
|
||||
const goroutinesNum = 50
|
||||
for i := 0; i < goroutinesNum; i++ {
|
||||
go testFunc()
|
||||
}
|
||||
}
|
||||
79
internal/aghnet/systemresolvers.go
Normal file
79
internal/aghnet/systemresolvers.go
Normal file
@@ -0,0 +1,79 @@
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/agherr"
|
||||
"github.com/AdguardTeam/golibs/log"
|
||||
)
|
||||
|
||||
// DefaultRefreshIvl is the default period of time between refreshing cached
|
||||
// addresses.
|
||||
// const DefaultRefreshIvl = 5 * time.Minute
|
||||
|
||||
// HostGenFunc is the signature for functions generating fake hostnames. The
|
||||
// implementation must be safe for concurrent use.
|
||||
type HostGenFunc func() (host string)
|
||||
|
||||
// SystemResolvers helps to work with local resolvers' addresses provided by OS.
|
||||
type SystemResolvers interface {
|
||||
// Get returns the slice of local resolvers' addresses.
|
||||
// It should be safe for concurrent use.
|
||||
Get() (rs []string)
|
||||
// refresh refreshes the local resolvers' addresses cache. It should be
|
||||
// safe for concurrent use.
|
||||
refresh() (err error)
|
||||
}
|
||||
|
||||
const (
|
||||
// errBadAddrPassed is returned when dialFunc can't parse an IP address.
|
||||
errBadAddrPassed agherr.Error = "the passed string is not a valid IP address"
|
||||
|
||||
// errFakeDial is an error which dialFunc is expected to return.
|
||||
errFakeDial agherr.Error = "this error signals the successful dialFunc work"
|
||||
|
||||
// errUnexpectedHostFormat is returned by validateDialedHost when the host has
|
||||
// more than one percent sign.
|
||||
errUnexpectedHostFormat agherr.Error = "unexpected host format"
|
||||
)
|
||||
|
||||
// refreshWithTicker refreshes the cache of sr after each tick form tickCh.
|
||||
func refreshWithTicker(sr SystemResolvers, tickCh <-chan time.Time) {
|
||||
defer agherr.LogPanic("systemResolvers")
|
||||
|
||||
// TODO(e.burkov): Implement a functionality to stop ticker.
|
||||
for range tickCh {
|
||||
err := sr.refresh()
|
||||
if err != nil {
|
||||
log.Error("systemResolvers: error in refreshing goroutine: %s", err)
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
log.Debug("systemResolvers: local addresses cache is refreshed")
|
||||
}
|
||||
}
|
||||
|
||||
// NewSystemResolvers returns a SystemResolvers with the cache refresh rate
|
||||
// defined by refreshIvl. It disables auto-resfreshing if refreshIvl is 0. If
|
||||
// nil is passed for hostGenFunc, the default generator will be used.
|
||||
func NewSystemResolvers(
|
||||
refreshIvl time.Duration,
|
||||
hostGenFunc HostGenFunc,
|
||||
) (sr SystemResolvers, err error) {
|
||||
sr = newSystemResolvers(refreshIvl, hostGenFunc)
|
||||
|
||||
// Fill cache.
|
||||
err = sr.refresh()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if refreshIvl > 0 {
|
||||
ticker := time.NewTicker(refreshIvl)
|
||||
|
||||
go refreshWithTicker(sr, ticker.C)
|
||||
}
|
||||
|
||||
return sr, nil
|
||||
}
|
||||
114
internal/aghnet/systemresolvers_others.go
Normal file
114
internal/aghnet/systemresolvers_others.go
Normal file
@@ -0,0 +1,114 @@
|
||||
// +build !windows
|
||||
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/agherr"
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/aghstrings"
|
||||
)
|
||||
|
||||
// defaultHostGen is the default method of generating host for Refresh.
|
||||
func defaultHostGen() (host string) {
|
||||
// TODO(e.burkov): Use strings.Builder.
|
||||
return fmt.Sprintf("test%d.org", time.Now().UnixNano())
|
||||
}
|
||||
|
||||
// systemResolvers is a default implementation of SystemResolvers interface.
|
||||
type systemResolvers struct {
|
||||
resolver *net.Resolver
|
||||
hostGenFunc HostGenFunc
|
||||
|
||||
// addrs is the set that contains cached local resolvers' addresses.
|
||||
addrs *aghstrings.Set
|
||||
addrsLock sync.RWMutex
|
||||
}
|
||||
|
||||
func (sr *systemResolvers) refresh() (err error) {
|
||||
defer agherr.Annotate("systemResolvers: %w", &err)
|
||||
|
||||
_, err = sr.resolver.LookupHost(context.Background(), sr.hostGenFunc())
|
||||
dnserr := &net.DNSError{}
|
||||
if errors.As(err, &dnserr) && dnserr.Err == errFakeDial.Error() {
|
||||
return nil
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func newSystemResolvers(refreshIvl time.Duration, hostGenFunc HostGenFunc) (sr SystemResolvers) {
|
||||
if hostGenFunc == nil {
|
||||
hostGenFunc = defaultHostGen
|
||||
}
|
||||
s := &systemResolvers{
|
||||
resolver: &net.Resolver{
|
||||
PreferGo: true,
|
||||
},
|
||||
hostGenFunc: hostGenFunc,
|
||||
addrs: aghstrings.NewSet(),
|
||||
}
|
||||
s.resolver.Dial = s.dialFunc
|
||||
|
||||
return s
|
||||
}
|
||||
|
||||
// validateDialedHost validated the host used by resolvers in dialFunc.
|
||||
func validateDialedHost(host string) (err error) {
|
||||
defer agherr.Annotate("parsing %q: %w", &err, host)
|
||||
|
||||
var ipStr string
|
||||
parts := strings.Split(host, "%")
|
||||
switch len(parts) {
|
||||
case 1:
|
||||
ipStr = host
|
||||
case 2:
|
||||
// Remove the zone and check the IP address part.
|
||||
ipStr = parts[0]
|
||||
default:
|
||||
return errUnexpectedHostFormat
|
||||
}
|
||||
|
||||
if net.ParseIP(ipStr) == nil {
|
||||
return errBadAddrPassed
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// dialFunc gets the resolver's address and puts it into internal cache.
|
||||
func (sr *systemResolvers) dialFunc(_ context.Context, _, address string) (_ net.Conn, err error) {
|
||||
// Just validate the passed address is a valid IP.
|
||||
var host string
|
||||
host, err = SplitHost(address)
|
||||
if err != nil {
|
||||
// TODO(e.burkov): Maybe use a structured errBadAddrPassed to
|
||||
// allow unwrapping of the real error.
|
||||
return nil, fmt.Errorf("%s: %w", err, errBadAddrPassed)
|
||||
}
|
||||
|
||||
err = validateDialedHost(host)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("validating dialed host: %w", err)
|
||||
}
|
||||
|
||||
sr.addrsLock.Lock()
|
||||
defer sr.addrsLock.Unlock()
|
||||
|
||||
sr.addrs.Add(host)
|
||||
|
||||
return nil, errFakeDial
|
||||
}
|
||||
|
||||
func (sr *systemResolvers) Get() (rs []string) {
|
||||
sr.addrsLock.RLock()
|
||||
defer sr.addrsLock.RUnlock()
|
||||
|
||||
return sr.addrs.Values()
|
||||
}
|
||||
86
internal/aghnet/systemresolvers_others_test.go
Normal file
86
internal/aghnet/systemresolvers_others_test.go
Normal file
@@ -0,0 +1,86 @@
|
||||
// +build !windows
|
||||
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func createTestSystemResolversImp(
|
||||
t *testing.T,
|
||||
refreshDur time.Duration,
|
||||
hostGenFunc HostGenFunc,
|
||||
) (imp *systemResolvers) {
|
||||
t.Helper()
|
||||
|
||||
sr := createTestSystemResolvers(t, refreshDur, hostGenFunc)
|
||||
|
||||
var ok bool
|
||||
imp, ok = sr.(*systemResolvers)
|
||||
require.True(t, ok)
|
||||
|
||||
return imp
|
||||
}
|
||||
|
||||
func TestSystemResolvers_Refresh(t *testing.T) {
|
||||
t.Run("expected_error", func(t *testing.T) {
|
||||
sr := createTestSystemResolvers(t, 0, nil)
|
||||
|
||||
assert.NoError(t, sr.refresh())
|
||||
})
|
||||
|
||||
t.Run("unexpected_error", func(t *testing.T) {
|
||||
_, err := NewSystemResolvers(0, func() string {
|
||||
return "127.0.0.1::123"
|
||||
})
|
||||
assert.Error(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
func TestSystemResolvers_DialFunc(t *testing.T) {
|
||||
imp := createTestSystemResolversImp(t, 0, nil)
|
||||
|
||||
testCases := []struct {
|
||||
want error
|
||||
name string
|
||||
address string
|
||||
}{{
|
||||
want: errFakeDial,
|
||||
name: "valid",
|
||||
address: "127.0.0.1",
|
||||
}, {
|
||||
want: errFakeDial,
|
||||
name: "valid_ipv6_port",
|
||||
address: "[::1]:53",
|
||||
}, {
|
||||
want: errFakeDial,
|
||||
name: "valid_ipv6_zone_port",
|
||||
address: "[::1%lo0]:53",
|
||||
}, {
|
||||
want: errBadAddrPassed,
|
||||
name: "invalid_split_host",
|
||||
address: "127.0.0.1::123",
|
||||
}, {
|
||||
want: errUnexpectedHostFormat,
|
||||
name: "invalid_ipv6_zone_port",
|
||||
address: "[::1%%lo0]:53",
|
||||
}, {
|
||||
want: errBadAddrPassed,
|
||||
name: "invalid_parse_ip",
|
||||
address: "not-ip",
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
conn, err := imp.dialFunc(context.Background(), "", tc.address)
|
||||
|
||||
require.Nil(t, conn)
|
||||
assert.ErrorIs(t, err, tc.want)
|
||||
})
|
||||
}
|
||||
}
|
||||
33
internal/aghnet/systemresolvers_test.go
Normal file
33
internal/aghnet/systemresolvers_test.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func createTestSystemResolvers(
|
||||
t *testing.T,
|
||||
refreshDur time.Duration,
|
||||
hostGenFunc HostGenFunc,
|
||||
) (sr SystemResolvers) {
|
||||
t.Helper()
|
||||
|
||||
var err error
|
||||
sr, err = NewSystemResolvers(refreshDur, hostGenFunc)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, sr)
|
||||
|
||||
return sr
|
||||
}
|
||||
|
||||
func TestSystemResolvers_Get(t *testing.T) {
|
||||
sr := createTestSystemResolvers(t, 0, nil)
|
||||
assert.NotEmpty(t, sr.Get())
|
||||
}
|
||||
|
||||
// TODO(e.burkov): Write tests for refreshWithTicker.
|
||||
//
|
||||
// See https://github.com/AdguardTeam/AdGuardHome/issues/2846.
|
||||
158
internal/aghnet/systemresolvers_windows.go
Normal file
158
internal/aghnet/systemresolvers_windows.go
Normal file
@@ -0,0 +1,158 @@
|
||||
// +build windows
|
||||
|
||||
package aghnet
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"os/exec"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/agherr"
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/aghio"
|
||||
"github.com/AdguardTeam/AdGuardHome/internal/aghos"
|
||||
"github.com/AdguardTeam/golibs/log"
|
||||
)
|
||||
|
||||
// systemResolvers implementation differs for Windows since Go's resolver
|
||||
// doesn't work there.
|
||||
//
|
||||
// See https://github.com/golang/go/issues/33097.
|
||||
type systemResolvers struct {
|
||||
// addrs is the slice of cached local resolvers' addresses.
|
||||
addrs []string
|
||||
addrsLock sync.RWMutex
|
||||
}
|
||||
|
||||
func newSystemResolvers(refreshIvl time.Duration, _ HostGenFunc) (sr SystemResolvers) {
|
||||
return &systemResolvers{}
|
||||
}
|
||||
|
||||
func (sr *systemResolvers) Get() (rs []string) {
|
||||
sr.addrsLock.RLock()
|
||||
defer sr.addrsLock.RUnlock()
|
||||
|
||||
addrs := sr.addrs
|
||||
rs = make([]string, len(addrs))
|
||||
copy(rs, addrs)
|
||||
|
||||
return rs
|
||||
}
|
||||
|
||||
// getAddrs gets local resolvers' addresses from OS in a special Windows way.
|
||||
//
|
||||
// TODO(e.burkov): This whole function needs more detailed research on getting
|
||||
// local resolvers addresses on Windows. We execute the external command for
|
||||
// now that is not the most accurate way.
|
||||
func (sr *systemResolvers) getAddrs() (addrs []string, err error) {
|
||||
cmd := exec.Command("nslookup")
|
||||
|
||||
var stdin io.WriteCloser
|
||||
stdin, err = cmd.StdinPipe()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getting the command's stdin pipe: %w", err)
|
||||
}
|
||||
|
||||
var stdout io.ReadCloser
|
||||
stdout, err = cmd.StdoutPipe()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getting the command's stdout pipe: %w", err)
|
||||
}
|
||||
|
||||
var stdoutLimited io.ReadCloser
|
||||
stdoutLimited, err = aghio.LimitReadCloser(stdout, aghos.MaxCmdOutputSize)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("limiting stdout reader: %w", err)
|
||||
}
|
||||
|
||||
go func() {
|
||||
defer agherr.LogPanic("systemResolvers")
|
||||
defer func() {
|
||||
derr := stdin.Close()
|
||||
if derr != nil {
|
||||
log.Error("systemResolvers: closing stdin pipe: %s", derr)
|
||||
}
|
||||
}()
|
||||
|
||||
_, werr := io.WriteString(stdin, "exit")
|
||||
if werr != nil {
|
||||
log.Error("systemResolvers: writing to command pipe: %s", werr)
|
||||
}
|
||||
}()
|
||||
|
||||
err = cmd.Start()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("start command executing: %w", err)
|
||||
}
|
||||
|
||||
// The output of nslookup looks like this:
|
||||
//
|
||||
// Default Server: 192-168-1-1.qualified.domain.ru
|
||||
// Address: 192.168.1.1
|
||||
|
||||
var possibleIPs []string
|
||||
s := bufio.NewScanner(stdoutLimited)
|
||||
for s.Scan() {
|
||||
line := s.Text()
|
||||
if len(line) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
fields := strings.Fields(line)
|
||||
if len(fields) != 2 || fields[0] != "Address:" {
|
||||
continue
|
||||
}
|
||||
|
||||
// If the address contains port then it is separated with '#'.
|
||||
ipStrs := strings.Split(fields[1], "#")
|
||||
if len(ipStrs) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
possibleIPs = append(possibleIPs, ipStrs[0])
|
||||
}
|
||||
|
||||
err = cmd.Wait()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("executing the command: %w", err)
|
||||
}
|
||||
|
||||
// Don't close StdoutPipe since Wait do it for us in ¿most? cases.
|
||||
//
|
||||
// See go doc os/exec.Cmd.StdoutPipe.
|
||||
|
||||
for _, addr := range possibleIPs {
|
||||
if net.ParseIP(addr) == nil {
|
||||
log.Debug("systemResolvers: %q is not a valid ip", addr)
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
addrs = append(addrs, addr)
|
||||
}
|
||||
|
||||
return addrs, nil
|
||||
}
|
||||
|
||||
func (sr *systemResolvers) refresh() (err error) {
|
||||
defer agherr.Annotate("systemResolvers: %w", &err)
|
||||
|
||||
got, err := sr.getAddrs()
|
||||
if err != nil {
|
||||
return fmt.Errorf("can't get addresses: %w", err)
|
||||
}
|
||||
if len(got) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
sr.addrsLock.Lock()
|
||||
defer sr.addrsLock.Unlock()
|
||||
|
||||
sr.addrs = got
|
||||
|
||||
return nil
|
||||
}
|
||||
7
internal/aghnet/systemresolvers_windows_test.go
Normal file
7
internal/aghnet/systemresolvers_windows_test.go
Normal file
@@ -0,0 +1,7 @@
|
||||
// +build windows
|
||||
|
||||
package aghnet
|
||||
|
||||
// TODO(e.burkov): Write tests for Windows implementation.
|
||||
//
|
||||
// See https://github.com/AdguardTeam/AdGuardHome/issues/2846.
|
||||
10
internal/aghos/endian_big.go
Normal file
10
internal/aghos/endian_big.go
Normal file
@@ -0,0 +1,10 @@
|
||||
// +build mips mips64
|
||||
|
||||
// This file is an adapted version of github.com/josharian/native.
|
||||
|
||||
package aghos
|
||||
|
||||
import "encoding/binary"
|
||||
|
||||
// NativeEndian is the native endianness of this system.
|
||||
var NativeEndian = binary.BigEndian
|
||||
10
internal/aghos/endian_little.go
Normal file
10
internal/aghos/endian_little.go
Normal file
@@ -0,0 +1,10 @@
|
||||
// +build amd64 386 arm arm64 mipsle mips64le ppc64le
|
||||
|
||||
// This file is an adapted version of github.com/josharian/native.
|
||||
|
||||
package aghos
|
||||
|
||||
import "encoding/binary"
|
||||
|
||||
// NativeEndian is the native endianness of this system.
|
||||
var NativeEndian = binary.LittleEndian
|
||||
52
internal/aghos/os.go
Normal file
52
internal/aghos/os.go
Normal file
@@ -0,0 +1,52 @@
|
||||
// Package aghos contains utilities for functions requiring system calls.
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os/exec"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// CanBindPrivilegedPorts checks if current process can bind to privileged
|
||||
// ports.
|
||||
func CanBindPrivilegedPorts() (can bool, err error) {
|
||||
return canBindPrivilegedPorts()
|
||||
}
|
||||
|
||||
// SetRlimit sets user-specified limit of how many fd's we can use
|
||||
// https://github.com/AdguardTeam/AdGuardHome/internal/issues/659.
|
||||
func SetRlimit(val uint) {
|
||||
setRlimit(val)
|
||||
}
|
||||
|
||||
// HaveAdminRights checks if the current user has root (administrator) rights.
|
||||
func HaveAdminRights() (bool, error) {
|
||||
return haveAdminRights()
|
||||
}
|
||||
|
||||
// SendProcessSignal sends signal to a process.
|
||||
func SendProcessSignal(pid int, sig syscall.Signal) error {
|
||||
return sendProcessSignal(pid, sig)
|
||||
}
|
||||
|
||||
// MaxCmdOutputSize is the maximum length of performed shell command output.
|
||||
const MaxCmdOutputSize = 2 * 1024
|
||||
|
||||
// RunCommand runs shell command.
|
||||
func RunCommand(command string, arguments ...string) (int, string, error) {
|
||||
cmd := exec.Command(command, arguments...)
|
||||
out, err := cmd.Output()
|
||||
if len(out) > MaxCmdOutputSize {
|
||||
out = out[:MaxCmdOutputSize]
|
||||
}
|
||||
if err != nil {
|
||||
return 1, "", fmt.Errorf("exec.Command(%s) failed: %v: %s", command, err, string(out))
|
||||
}
|
||||
|
||||
return cmd.ProcessState.ExitCode(), string(out), nil
|
||||
}
|
||||
|
||||
// IsOpenWrt returns true if host OS is OpenWrt.
|
||||
func IsOpenWrt() (ok bool) {
|
||||
return isOpenWrt()
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
// +build aix darwin dragonfly netbsd openbsd solaris
|
||||
// +build darwin
|
||||
|
||||
package sysutil
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"os"
|
||||
@@ -30,3 +30,7 @@ func haveAdminRights() (bool, error) {
|
||||
func sendProcessSignal(pid int, sig syscall.Signal) error {
|
||||
return syscall.Kill(pid, sig)
|
||||
}
|
||||
|
||||
func isOpenWrt() (ok bool) {
|
||||
return false
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
// +build freebsd
|
||||
|
||||
package sysutil
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"os"
|
||||
@@ -30,3 +30,7 @@ func haveAdminRights() (bool, error) {
|
||||
func sendProcessSignal(pid int, sig syscall.Signal) error {
|
||||
return syscall.Kill(pid, sig)
|
||||
}
|
||||
|
||||
func isOpenWrt() (ok bool) {
|
||||
return false
|
||||
}
|
||||
@@ -1,9 +1,13 @@
|
||||
// +build linux
|
||||
|
||||
package sysutil
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/AdguardTeam/golibs/log"
|
||||
@@ -37,3 +41,41 @@ func haveAdminRights() (bool, error) {
|
||||
func sendProcessSignal(pid int, sig syscall.Signal) error {
|
||||
return syscall.Kill(pid, sig)
|
||||
}
|
||||
|
||||
func isOpenWrt() (ok bool) {
|
||||
const etcDir = "/etc"
|
||||
|
||||
// TODO(e.burkov): Take care of dealing with fs package after updating
|
||||
// Go version to 1.16.
|
||||
fileInfos, err := ioutil.ReadDir(etcDir)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// fNameSubstr is a part of a name of the desired file.
|
||||
const fNameSubstr = "release"
|
||||
osNameData := []byte("OpenWrt")
|
||||
|
||||
for _, fileInfo := range fileInfos {
|
||||
if fileInfo.IsDir() {
|
||||
continue
|
||||
}
|
||||
|
||||
fn := fileInfo.Name()
|
||||
if !strings.Contains(fn, fNameSubstr) {
|
||||
continue
|
||||
}
|
||||
|
||||
var body []byte
|
||||
body, err = ioutil.ReadFile(filepath.Join(etcDir, fn))
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
if bytes.Contains(body, osNameData) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
// +build windows
|
||||
|
||||
package sysutil
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -40,3 +40,7 @@ func haveAdminRights() (bool, error) {
|
||||
func sendProcessSignal(pid int, sig syscall.Signal) error {
|
||||
return fmt.Errorf("not supported on Windows")
|
||||
}
|
||||
|
||||
func isOpenWrt() (ok bool) {
|
||||
return false
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package sysutil
|
||||
package aghos
|
||||
|
||||
// ConfigureSyslog reroutes standard logger output to syslog.
|
||||
func ConfigureSyslog(serviceName string) error {
|
||||
@@ -1,6 +1,6 @@
|
||||
// +build !windows,!plan9
|
||||
|
||||
package sysutil
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"log/syslog"
|
||||
@@ -1,6 +1,6 @@
|
||||
// +build windows plan9
|
||||
|
||||
package sysutil
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"strings"
|
||||
@@ -1,4 +1,4 @@
|
||||
package sysutil
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"testing"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user