Compare commits
422 Commits
v0.108.0-b
...
fix-templa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d49d284d4a | ||
|
|
9fda7bfd34 | ||
|
|
826b314f19 | ||
|
|
156c199bbb | ||
|
|
040596f3a0 | ||
|
|
fde082af44 | ||
|
|
329e144b4f | ||
|
|
367b319f10 | ||
|
|
d6fe0bd740 | ||
|
|
ae7bd79a6c | ||
|
|
0211424191 | ||
|
|
ea8d634f65 | ||
|
|
0fec990bcf | ||
|
|
a7680a593a | ||
|
|
cbc7985e75 | ||
|
|
941eb1dd73 | ||
|
|
fc64e0089e | ||
|
|
24b41100c3 | ||
|
|
b72a3d01b8 | ||
|
|
0393e41096 | ||
|
|
c77b2a0ce5 | ||
|
|
db52f7a3ac | ||
|
|
381f2f651d | ||
|
|
620b51e3ea | ||
|
|
757ddb06f8 | ||
|
|
d6043e2352 | ||
|
|
aeec9a86e2 | ||
|
|
584182e264 | ||
|
|
96cd512d32 | ||
|
|
11898a3f73 | ||
|
|
a91a257b15 | ||
|
|
76a74b271b | ||
|
|
1842f7d888 | ||
|
|
4afd39b22f | ||
|
|
e43ba17884 | ||
|
|
6d402dc86c | ||
|
|
18acdf9b09 | ||
|
|
5da7751463 | ||
|
|
7631ca4ab3 | ||
|
|
c6d4f2317e | ||
|
|
0ea224a9e4 | ||
|
|
d78a3edb22 | ||
|
|
bbbdea2635 | ||
|
|
6c8d89a4da | ||
|
|
f082312e49 | ||
|
|
ea03d1af93 | ||
|
|
67d8b7df90 | ||
|
|
b23ea0a690 | ||
|
|
a186b5c436 | ||
|
|
6da7392345 | ||
|
|
c1924a8b8a | ||
|
|
0376afb38e | ||
|
|
230d7b8c17 | ||
|
|
950ecb1f5e | ||
|
|
9e14d5f99f | ||
|
|
89bf3721b5 | ||
|
|
15bba281ee | ||
|
|
f9fe3172c4 | ||
|
|
5d5a729569 | ||
|
|
b1120221c7 | ||
|
|
f553eee842 | ||
|
|
61b4043775 | ||
|
|
a55cbbe79c | ||
|
|
10bffd89c9 | ||
|
|
91ecbede7d | ||
|
|
27dbb427a1 | ||
|
|
195300f56e | ||
|
|
2a0d062947 | ||
|
|
3575aa0570 | ||
|
|
f191cb07a5 | ||
|
|
1731ce9c63 | ||
|
|
2eb3bf6ea5 | ||
|
|
a0349b6c7e | ||
|
|
da9008aba3 | ||
|
|
c576d5059e | ||
|
|
487675b9ad | ||
|
|
132ec556dc | ||
|
|
d58772f177 | ||
|
|
0df32601bb | ||
|
|
fb7b8bba6a | ||
|
|
d859a33787 | ||
|
|
67c9abe119 | ||
|
|
2409282d51 | ||
|
|
9c48e96939 | ||
|
|
0bc3ef89ea | ||
|
|
8de994d077 | ||
|
|
59a8265e31 | ||
|
|
bea39934bd | ||
|
|
df61741f60 | ||
|
|
143616ca6e | ||
|
|
306c1983a2 | ||
|
|
194ead3479 | ||
|
|
c3edab4387 | ||
|
|
f736d85e6e | ||
|
|
1daabb97e5 | ||
|
|
dd2095e05d | ||
|
|
a0205a54ec | ||
|
|
48431f8b86 | ||
|
|
9f7a582dbc | ||
|
|
2b5e4850d0 | ||
|
|
c6706445c9 | ||
|
|
595484e0b3 | ||
|
|
a2053526c3 | ||
|
|
e616429d44 | ||
|
|
622181b88f | ||
|
|
1011b8f93d | ||
|
|
6b265c6488 | ||
|
|
c11a52d60c | ||
|
|
f23a0d4753 | ||
|
|
057804a459 | ||
|
|
012e5beb51 | ||
|
|
ae653f166f | ||
|
|
51b72a4cd8 | ||
|
|
f13dc59bfa | ||
|
|
bb226434f8 | ||
|
|
a772212d05 | ||
|
|
bb80a7c215 | ||
|
|
386add033b | ||
|
|
304f2ba2cc | ||
|
|
3a0b27e7e8 | ||
|
|
76a513cdaf | ||
|
|
ff9b24ad69 | ||
|
|
20531de760 | ||
|
|
91dee0986b | ||
|
|
a556ce8fb8 | ||
|
|
6f6ced33c1 | ||
|
|
be43ce1760 | ||
|
|
4d295a384b | ||
|
|
eb0d7d39d9 | ||
|
|
6575c068b8 | ||
|
|
3378d1c103 | ||
|
|
a50a8abb45 | ||
|
|
ff04b2a7d3 | ||
|
|
ec19a85ed0 | ||
|
|
b89105e3b5 | ||
|
|
137d280032 | ||
|
|
4baa6e6990 | ||
|
|
b8d55eaffe | ||
|
|
b31bab591d | ||
|
|
6a032bb821 | ||
|
|
a5f059b1f5 | ||
|
|
04f4993385 | ||
|
|
46382e8825 | ||
|
|
d52f1d0e70 | ||
|
|
6aa93f4ae7 | ||
|
|
99ec1d840c | ||
|
|
2ecf2a4c42 | ||
|
|
54a141abde | ||
|
|
6e8033750d | ||
|
|
46624c79de | ||
|
|
a7dca7aa56 | ||
|
|
cd76a30790 | ||
|
|
68bc9969b7 | ||
|
|
d8d7a5c335 | ||
|
|
bbdcc673a2 | ||
|
|
e7fc61a997 | ||
|
|
97af23b0af | ||
|
|
e481922d91 | ||
|
|
defde7d0fe | ||
|
|
0c03063c8a | ||
|
|
0ddd8e3dcc | ||
|
|
48cbc7bdf0 | ||
|
|
de08ef0077 | ||
|
|
cfab157146 | ||
|
|
ec05ee16fe | ||
|
|
c1b537c14b | ||
|
|
d77b743c7b | ||
|
|
8d453e75a4 | ||
|
|
de9f9e9eb8 | ||
|
|
fa49d74aa8 | ||
|
|
f0cf6cce9a | ||
|
|
6d1adf74b1 | ||
|
|
01652e6ab2 | ||
|
|
09f88cf21d | ||
|
|
e6f8aeeebe | ||
|
|
fafd7a1e82 | ||
|
|
53a366ed46 | ||
|
|
9c4bed31e7 | ||
|
|
23c16a13aa | ||
|
|
36d90b152e | ||
|
|
08282dc4d9 | ||
|
|
93882d6860 | ||
|
|
167b112511 | ||
|
|
98af0e000e | ||
|
|
2bfdcbbc10 | ||
|
|
8fdbcc005c | ||
|
|
464fbf0b54 | ||
|
|
a7d02fa935 | ||
|
|
af8f64ac00 | ||
|
|
c139287787 | ||
|
|
fa0fd90ddd | ||
|
|
c5565a9e4e | ||
|
|
ac7634da37 | ||
|
|
746e9df727 | ||
|
|
3dd7393b3f | ||
|
|
9c9d6b48e3 | ||
|
|
9951d861d1 | ||
|
|
8a935d4ffb | ||
|
|
bf10f157ab | ||
|
|
15f5876e33 | ||
|
|
04c8e3b288 | ||
|
|
cebbb69a4c | ||
|
|
a272b61ed6 | ||
|
|
b86250737e | ||
|
|
a149d816d9 | ||
|
|
67d89660ca | ||
|
|
2a85d7dd7e | ||
|
|
68d13fcc2b | ||
|
|
2de42284a5 | ||
|
|
d2a09e49ff | ||
|
|
e0080ffa3a | ||
|
|
8dba4ecd01 | ||
|
|
aaaa56fce3 | ||
|
|
ab79168b13 | ||
|
|
5ae826d8a9 | ||
|
|
a736f67205 | ||
|
|
fee81b31ec | ||
|
|
a1acfbbae4 | ||
|
|
4582b1c919 | ||
|
|
893358ea71 | ||
|
|
f109fb17a4 | ||
|
|
5604e33574 | ||
|
|
67da002391 | ||
|
|
d42d1a7ea4 | ||
|
|
e4a42bf233 | ||
|
|
0eba31ca03 | ||
|
|
f5602d9c46 | ||
|
|
f1dd33346a | ||
|
|
960a7a75ed | ||
|
|
a126f514ff | ||
|
|
c0c9d8adb0 | ||
|
|
7cac010573 | ||
|
|
51f426736c | ||
|
|
0c0340d63e | ||
|
|
330ac30324 | ||
|
|
2e0f6e5468 | ||
|
|
b7e815483e | ||
|
|
15b19ff726 | ||
|
|
f557339ca0 | ||
|
|
fe8be3701f | ||
|
|
c26ab190e7 | ||
|
|
6a62f704e2 | ||
|
|
24eb3476db | ||
|
|
8a924cb4ed | ||
|
|
6e7964c9e7 | ||
|
|
9d59be4269 | ||
|
|
bf792b83f6 | ||
|
|
0cce420261 | ||
|
|
61bd217eb3 | ||
|
|
739e0098ec | ||
|
|
27032ef79e | ||
|
|
5e626306d1 | ||
|
|
2ffea605cf | ||
|
|
4d404b887f | ||
|
|
7b48863041 | ||
|
|
756b14a61d | ||
|
|
b71a5d86de | ||
|
|
d45fa5801e | ||
|
|
47c9c946a3 | ||
|
|
690deb1c05 | ||
|
|
59d18c6598 | ||
|
|
91bbb744dc | ||
|
|
11e4f09165 | ||
|
|
c45c02de29 | ||
|
|
fe0c53ec43 | ||
|
|
4fc045de11 | ||
|
|
cc2388e0c8 | ||
|
|
ab6da05b51 | ||
|
|
8e89cc129c | ||
|
|
9ffe078703 | ||
|
|
27b0251b5b | ||
|
|
ed209daf8a | ||
|
|
95771c7aba | ||
|
|
42bd0615c2 | ||
|
|
3a88ef3be2 | ||
|
|
572fed9f35 | ||
|
|
663f0643f2 | ||
|
|
fc62796e2d | ||
|
|
b9e39c8cca | ||
|
|
fffa656758 | ||
|
|
b74b92fc27 | ||
|
|
bc1503af57 | ||
|
|
b79c08316f | ||
|
|
08799e9d0a | ||
|
|
bedfb47a9f | ||
|
|
53e2c1f7cd | ||
|
|
88812f05f5 | ||
|
|
10a8f79644 | ||
|
|
ccc4f1a2da | ||
|
|
451fd7c445 | ||
|
|
782de99a0a | ||
|
|
d4afd60b08 | ||
|
|
c8ace868d4 | ||
|
|
2b4158e5c9 | ||
|
|
53209bc42c | ||
|
|
da1ae33805 | ||
|
|
ab02c829ea | ||
|
|
3c0d2a9253 | ||
|
|
58512c3af9 | ||
|
|
78389e518e | ||
|
|
9c9169ac12 | ||
|
|
e545f3bdb7 | ||
|
|
c000d9f232 | ||
|
|
1fb043768e | ||
|
|
3660b4810e | ||
|
|
a9127c4a45 | ||
|
|
c098960b39 | ||
|
|
5cc2a2cd0c | ||
|
|
8733f55c2c | ||
|
|
a3750ffff1 | ||
|
|
9e0d3eb6e7 | ||
|
|
e0a57d2912 | ||
|
|
53e77cb2c0 | ||
|
|
8ecfef16eb | ||
|
|
d51110acb5 | ||
|
|
2348b8fafa | ||
|
|
7f0b16d074 | ||
|
|
a0c8aee3f7 | ||
|
|
d519929988 | ||
|
|
cb83f8b531 | ||
|
|
45bcc2c09a | ||
|
|
2410639123 | ||
|
|
d1525cf09d | ||
|
|
35c1d84b42 | ||
|
|
986124948a | ||
|
|
fa76ad2a3c | ||
|
|
57c0b1203e | ||
|
|
be1bc76cfa | ||
|
|
6913ebb29f | ||
|
|
e35eeacd74 | ||
|
|
bdcf345155 | ||
|
|
307654f648 | ||
|
|
970b6cf698 | ||
|
|
eccfbf6a6d | ||
|
|
1a1a48482a | ||
|
|
1afd73ad0b | ||
|
|
6856a80380 | ||
|
|
cf3a8991ea | ||
|
|
e3624ec588 | ||
|
|
64df882c5e | ||
|
|
06e4658da9 | ||
|
|
4a7b4d03a1 | ||
|
|
257d167002 | ||
|
|
e6ebb8efef | ||
|
|
7e80980ae4 | ||
|
|
50476cda31 | ||
|
|
ea5d165a70 | ||
|
|
2830f396c6 | ||
|
|
620ad13490 | ||
|
|
f54a2dc1da | ||
|
|
63f6844318 | ||
|
|
12edc05ab0 | ||
|
|
71b8e75138 | ||
|
|
0bcc6699e1 | ||
|
|
385a873b0f | ||
|
|
0daa6a107b | ||
|
|
72098d2255 | ||
|
|
572d2794e2 | ||
|
|
d4c3a43bcb | ||
|
|
6e63757fc7 | ||
|
|
721397cee3 | ||
|
|
fd1c841810 | ||
|
|
f58265ec98 | ||
|
|
14fd995ae9 | ||
|
|
50565bed3b | ||
|
|
70f85fca21 | ||
|
|
4293cf5945 | ||
|
|
4c6377c5cb | ||
|
|
9b3adac145 | ||
|
|
73f935f3f3 | ||
|
|
a481ff4c51 | ||
|
|
bbccd61614 | ||
|
|
8a3d5f046c | ||
|
|
eb8e8166c8 | ||
|
|
3420becce3 | ||
|
|
9ed8699c75 | ||
|
|
b59b82474a | ||
|
|
cce0e593c5 | ||
|
|
da32079516 | ||
|
|
ccf268baf4 | ||
|
|
053bb72a00 | ||
|
|
41f081d8da | ||
|
|
e0f2c3d170 | ||
|
|
f32da12a86 | ||
|
|
f5959a0dc6 | ||
|
|
0a5888f27a | ||
|
|
07d48af10c | ||
|
|
e58a415d10 | ||
|
|
ae43ca0605 | ||
|
|
9acb1f364b | ||
|
|
84cd528103 | ||
|
|
56519548f1 | ||
|
|
bdcd17a41a | ||
|
|
1eafb4e7cf | ||
|
|
bf024fb985 | ||
|
|
a832987f7c | ||
|
|
77e5e27d75 | ||
|
|
3505ce8739 | ||
|
|
14d8f58592 | ||
|
|
006cd98869 | ||
|
|
ce1b2bc4f1 | ||
|
|
8f4acce44a | ||
|
|
b04d1ed6c8 | ||
|
|
f987c25598 | ||
|
|
b9b93f1286 | ||
|
|
a7a5e50620 | ||
|
|
0edf71a4af | ||
|
|
5956b97e7f | ||
|
|
d3f39b0aa1 | ||
|
|
e738508d7a | ||
|
|
302faca32f | ||
|
|
1c1ca1c6e3 | ||
|
|
a497dc09ca | ||
|
|
3ce04f48ca | ||
|
|
b7eedb3feb | ||
|
|
56f78edb97 | ||
|
|
0f2a9f262e | ||
|
|
047970e5ee | ||
|
|
cd8206ad9b | ||
|
|
c346216424 | ||
|
|
b29f320fd4 | ||
|
|
975995a9c7 |
49
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
49
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
@@ -1,49 +0,0 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a bug report to help us improve AdGuard Home
|
||||
---
|
||||
|
||||
Have a question or an idea? Please search it [on our forum](https://github.com/AdguardTeam/AdGuardHome/discussions) to make sure it was not yet asked. If you cannot find what you had in mind, please [submit it here](https://github.com/AdguardTeam/AdGuardHome/discussions/new).
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Please answer the following questions for yourself before submitting an issue. **YOU MAY DELETE THE PREREQUISITES SECTION.**
|
||||
|
||||
- [ ] I am running the latest version
|
||||
- [ ] I checked the documentation and found no answer
|
||||
- [ ] I checked to make sure that this issue has not already been filed
|
||||
|
||||
### Issue Details
|
||||
|
||||
<!-- 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) -->
|
||||
* **How did you install AdGuard Home:**
|
||||
* <!-- (e.g. Built from source, Snapcraft, Docker, GitHub releases, etc.) -->
|
||||
* **How did you setup DNS configuration:**
|
||||
* <!-- (System/Router/IoT) -->
|
||||
* **If it's a router or IoT, please write device model:**
|
||||
* <!-- (e.g. Raspberry Pi 3 Model B) -->
|
||||
* **CPU architecture:**
|
||||
* <!-- (e.g. AMD64, MIPS, etc.) -->
|
||||
* **Operating system and version:**
|
||||
* <!-- (e.g. Ubuntu 18.04.1) -->
|
||||
|
||||
### Expected Behavior
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
### Actual Behavior
|
||||
<!-- A clear and concise description of what actually happened. -->
|
||||
|
||||
### Screenshots
|
||||
<!-- If applicable, add screenshots to help explain your problem. -->
|
||||
|
||||
<details><summary>Screenshot:</summary>
|
||||
|
||||
<!--- drag and drop, upload or paste your screenshot to this area-->
|
||||
|
||||
</details>
|
||||
|
||||
### Additional Information
|
||||
<!-- Add any other context about the problem here. -->
|
||||
26
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
26
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
@@ -1,26 +0,0 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest a feature request for AdGuard Home
|
||||
---
|
||||
|
||||
Have a question or an idea? Please search it [on our forum](https://github.com/AdguardTeam/AdGuardHome/discussions) to make sure it was not yet asked. If you cannot find what you had in mind, please [submit it here](https://github.com/AdguardTeam/AdGuardHome/discussions/new).
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Please answer the following questions for yourself before submitting an issue. **YOU MAY DELETE THE PREREQUISITES SECTION.**
|
||||
|
||||
- [ ] I am running the latest version
|
||||
- [ ] I checked the documentation and found no answer
|
||||
- [ ] I checked to make sure that this issue has not already been filed
|
||||
|
||||
### Problem Description
|
||||
<!-- Is your feature request related to a problem? Please add a clear and concise description of what the problem is. -->
|
||||
|
||||
### Proposed Solution
|
||||
<!-- Describe the solution you'd like in a clear and concise manner -->
|
||||
|
||||
### Alternatives Considered
|
||||
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
|
||||
|
||||
### Additional Information
|
||||
<!-- Add any other context about the problem here. -->
|
||||
142
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
142
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
@@ -0,0 +1,142 @@
|
||||
'body':
|
||||
- 'attributes':
|
||||
'description': >
|
||||
Please make sure that the issue is not a duplicate or a question.
|
||||
If it's a duplicate, please react to the original issue with a
|
||||
thumbs up. If it's a question, please post it to the GitHub
|
||||
Discussions page.
|
||||
'label': 'Prerequisites'
|
||||
'options':
|
||||
- 'label': >
|
||||
I have checked the
|
||||
[Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki) and
|
||||
[Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions)
|
||||
and found no answer
|
||||
'required': true
|
||||
- 'label': >
|
||||
I have searched other issues and found no duplicates
|
||||
'required': true
|
||||
- 'label': >
|
||||
I want to report a bug and not ask a question
|
||||
'required': true
|
||||
'id': 'prerequisites'
|
||||
'type': 'checkboxes'
|
||||
- 'attributes':
|
||||
'description': 'On which operating system type does the issue occur?'
|
||||
'label': 'Operating system type'
|
||||
'options':
|
||||
- 'FreeBSD'
|
||||
- 'Linux, OpenWrt'
|
||||
- 'Linux, Other (please mention the version in the description)'
|
||||
- 'macOS (aka Darwin)'
|
||||
- 'OpenBSD'
|
||||
- 'Windows'
|
||||
- 'Other (please mention in the description)'
|
||||
'id': 'os'
|
||||
'type': 'dropdown'
|
||||
'validations':
|
||||
'required': true
|
||||
- 'attributes':
|
||||
'description': 'On which CPU architecture does the issue occur?'
|
||||
'label': 'CPU architecture'
|
||||
'options':
|
||||
- 'AMD64'
|
||||
- 'x86'
|
||||
- '64-bit ARM'
|
||||
- 'ARMv5'
|
||||
- 'ARMv6'
|
||||
- 'ARMv7'
|
||||
- '64-bit MIPS'
|
||||
- '64-bit MIPS LE'
|
||||
- '32-bit MIPS'
|
||||
- '32-bit MIPS LE'
|
||||
- '64-bit PowerPC LE'
|
||||
- 'Other (please mention in the description)'
|
||||
'id': 'arch'
|
||||
'type': 'dropdown'
|
||||
'validations':
|
||||
'required': true
|
||||
- 'attributes':
|
||||
'description': 'How did you install AdGuard Home?'
|
||||
'label': 'Installation'
|
||||
'options':
|
||||
- 'GitHub releases or script from README'
|
||||
- 'Docker'
|
||||
- 'Snapcraft'
|
||||
- 'Custom port'
|
||||
- 'Other (please mention in the description)'
|
||||
'id': 'install'
|
||||
'type': 'dropdown'
|
||||
'validations':
|
||||
'required': true
|
||||
- 'attributes':
|
||||
'description': 'How did you setup AdGuard Home?'
|
||||
'label': 'Setup'
|
||||
'options':
|
||||
- 'On one machine'
|
||||
- 'On a router, DHCP is handled by the router'
|
||||
- 'On a router, DHCP is handled by AdGuard Home'
|
||||
- 'Other (please mention in the description)'
|
||||
'id': 'setup'
|
||||
'type': 'dropdown'
|
||||
'validations':
|
||||
'required': true
|
||||
- 'attributes':
|
||||
'description': 'What version of AdGuard Home are you using?'
|
||||
'label': 'AdGuard Home version'
|
||||
'id': 'version'
|
||||
'type': 'input'
|
||||
'validations':
|
||||
'required': true
|
||||
- 'attributes':
|
||||
'description': 'Please provide a set of steps to reproduce the issue'
|
||||
'label': 'Issue Details'
|
||||
'placeholder':
|
||||
'value': |
|
||||
Steps to reproduce:
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
'id': 'what-happened'
|
||||
'type': 'textarea'
|
||||
'validations':
|
||||
'required': true
|
||||
- 'attributes':
|
||||
'label': 'Expected Behavior'
|
||||
'description': 'Describe the expected behavior'
|
||||
'placeholder': |
|
||||
A clear and concise description of what you expected to happen.
|
||||
'id': 'expected-behavior'
|
||||
'type': 'textarea'
|
||||
'validations':
|
||||
'required': false
|
||||
- 'attributes':
|
||||
'label': 'Actual Behavior'
|
||||
'description': 'Describe the actual behavior'
|
||||
'placeholder': 'A clear description of what happened instead.'
|
||||
'id': 'actual-behavior'
|
||||
'type': 'textarea'
|
||||
'validations':
|
||||
'required': true
|
||||
- 'attributes':
|
||||
'label': 'Screenshots'
|
||||
'description': |
|
||||
If applicable add screenshots explaining your problem.
|
||||
You can drag and drop images or paste them from clipboard.
|
||||
Use `<details> </details>` tag to hide screenshots under the spoiler.
|
||||
'placeholder': 'If applicable add screenshots explaining your problem.'
|
||||
'value': |
|
||||
<details><summary>Screenshot 1:</summary>
|
||||
|
||||
<!-- paste screenshot here -->
|
||||
|
||||
</details>
|
||||
'id': 'screenshots'
|
||||
'type': 'textarea'
|
||||
'validations':
|
||||
'required': false
|
||||
'description': >
|
||||
Open a bug report. Please do not open bug reports for questions. If you
|
||||
want to ask a question, ask in in the Discussions section.
|
||||
'name': 'Bug report'
|
||||
'labels': [ 'bug' ]
|
||||
22
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
22
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
'blank_issues_enabled': false
|
||||
'contact_links':
|
||||
- 'about': >
|
||||
Please report filtering issues, for example advertising filters
|
||||
misfiring or safe browsing false positives, using the form on our
|
||||
website
|
||||
'name': 'AdGuard filters issues'
|
||||
'url': 'https://link.adtidy.org/forward.html?action=report&app=home&from=github'
|
||||
- 'about': >
|
||||
Please send requests for new blocked services and vetted filtering lists
|
||||
to the Hostlists Registry repository
|
||||
'name': 'Blocked services and vetted filtering rule lists: AdGuard Hostlists Registry'
|
||||
'url': 'https://github.com/AdguardTeam/HostlistsRegistry'
|
||||
- 'about': >
|
||||
Please use GitHub Discussions for questions
|
||||
'name': 'Q&A Discussions'
|
||||
'url': 'https://github.com/AdguardTeam/AdGuardHome/discussions'
|
||||
- 'about': >
|
||||
Please check our Wiki for configuration file description, frequently
|
||||
asked questions, and other documentation
|
||||
'name': 'Wiki'
|
||||
'url': 'https://github.com/AdguardTeam/AdGuardHome/wiki'
|
||||
54
.github/ISSUE_TEMPLATE/feature.yml
vendored
Normal file
54
.github/ISSUE_TEMPLATE/feature.yml
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
'body':
|
||||
- 'attributes':
|
||||
'description': >
|
||||
Please make sure that the issue is not a duplicate or a question.
|
||||
If it's a duplicate, please react to the original issue with a
|
||||
thumbs up. If it's a question, please post it to the GitHub
|
||||
Discussions page.
|
||||
'label': 'Prerequisites'
|
||||
'options':
|
||||
- 'label': >
|
||||
I have checked the
|
||||
[Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki) and
|
||||
[Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions)
|
||||
and found no answer
|
||||
'required': true
|
||||
- 'label': >
|
||||
I have searched other issues and found no duplicates
|
||||
'required': true
|
||||
- 'label': >
|
||||
I want to request a feature or enhancement and not ask a
|
||||
question
|
||||
'required': true
|
||||
'id': 'prerequisites'
|
||||
'type': 'checkboxes'
|
||||
- 'attributes':
|
||||
'description': 'What happened?'
|
||||
'placeholder': |
|
||||
Is your feature request related to a problem? Please add a clear and
|
||||
concise description of what the problem is.
|
||||
'label': 'Issue Details'
|
||||
'id': 'what-happened'
|
||||
'type': 'textarea'
|
||||
'validations':
|
||||
'required': true
|
||||
- 'attributes':
|
||||
'description': 'What do you propose to change in AdGuard Home?'
|
||||
'placeholder': |
|
||||
Describe the solution you'd like in a clear and concise manner.
|
||||
'label': 'Proposed solution'
|
||||
'id': 'proposed-solution'
|
||||
'type': 'textarea'
|
||||
'validations':
|
||||
'required': true
|
||||
- 'attributes':
|
||||
'description': 'Are there any other ways to solve the problem?'
|
||||
'placeholder': |
|
||||
A clear and concise description of any alternative solutions or features
|
||||
you've considered.
|
||||
'label': 'Alternative solution'
|
||||
'id': 'alternative-solution'
|
||||
'type': 'textarea'
|
||||
'description': 'Suggest a feature or an enhancement for AdGuard Home'
|
||||
'name': 'Feature request or enhancement'
|
||||
'labels': [ 'feature request' ]
|
||||
22
.github/stale.yml
vendored
22
.github/stale.yml
vendored
@@ -4,15 +4,17 @@
|
||||
'daysUntilClose': 15
|
||||
# Issues with these labels will never be considered stale.
|
||||
'exemptLabels':
|
||||
- 'bug'
|
||||
- 'documentation'
|
||||
- 'enhancement'
|
||||
- 'feature request'
|
||||
- 'help wanted'
|
||||
- 'localization'
|
||||
- 'needs investigation'
|
||||
- 'recurrent'
|
||||
- 'research'
|
||||
- 'bug'
|
||||
- 'documentation'
|
||||
- 'enhancement'
|
||||
- 'feature request'
|
||||
- 'help wanted'
|
||||
- 'localization'
|
||||
- 'needs investigation'
|
||||
- 'recurrent'
|
||||
- 'research'
|
||||
# Set to true to ignore issues in a milestone.
|
||||
'exemptMilestones': true
|
||||
# Label to use when marking an issue as stale.
|
||||
'staleLabel': 'wontfix'
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable.
|
||||
@@ -22,3 +24,5 @@
|
||||
for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable.
|
||||
'closeComment': false
|
||||
# Limit the number of actions per hour.
|
||||
'limitPerRun': 1
|
||||
|
||||
10
.github/workflows/build.yml
vendored
10
.github/workflows/build.yml
vendored
@@ -1,7 +1,7 @@
|
||||
'name': 'build'
|
||||
|
||||
'env':
|
||||
'GO_VERSION': '1.17'
|
||||
'GO_VERSION': '1.19.10'
|
||||
'NODE_VERSION': '14'
|
||||
|
||||
'on':
|
||||
@@ -31,7 +31,7 @@
|
||||
'with':
|
||||
'fetch-depth': 0
|
||||
- 'name': 'Set up Go'
|
||||
'uses': 'actions/setup-go@v2'
|
||||
'uses': 'actions/setup-go@v3'
|
||||
'with':
|
||||
'go-version': '${{ env.GO_VERSION }}'
|
||||
- 'name': 'Set up Node'
|
||||
@@ -72,7 +72,7 @@
|
||||
'with':
|
||||
'fetch-depth': 0
|
||||
- 'name': 'Set up Go'
|
||||
'uses': 'actions/setup-go@v2'
|
||||
'uses': 'actions/setup-go@v3'
|
||||
'with':
|
||||
'go-version': '${{ env.GO_VERSION }}'
|
||||
- 'name': 'Set up Node'
|
||||
@@ -112,7 +112,9 @@
|
||||
# Use always() to signal to the runner that this job must run even if the
|
||||
# previous ones failed.
|
||||
'if':
|
||||
${{ always() &&
|
||||
${{
|
||||
always() &&
|
||||
github.repository_owner == 'AdguardTeam' &&
|
||||
(
|
||||
github.event_name == 'push' ||
|
||||
github.event.pull_request.head.repo.full_name == github.repository
|
||||
|
||||
8
.github/workflows/lint.yml
vendored
8
.github/workflows/lint.yml
vendored
@@ -1,7 +1,7 @@
|
||||
'name': 'lint'
|
||||
|
||||
'env':
|
||||
'GO_VERSION': '1.17'
|
||||
'GO_VERSION': '1.19.10'
|
||||
|
||||
'on':
|
||||
'push':
|
||||
@@ -17,7 +17,7 @@
|
||||
'steps':
|
||||
- 'uses': 'actions/checkout@v2'
|
||||
- 'name': 'Set up Go'
|
||||
'uses': 'actions/setup-go@v2'
|
||||
'uses': 'actions/setup-go@v3'
|
||||
'with':
|
||||
'go-version': '${{ env.GO_VERSION }}'
|
||||
- 'name': 'run-lint'
|
||||
@@ -43,7 +43,9 @@
|
||||
# Use always() to signal to the runner that this job must run even if the
|
||||
# previous ones failed.
|
||||
'if':
|
||||
${{ always() &&
|
||||
${{
|
||||
always() &&
|
||||
github.repository_owner == 'AdguardTeam' &&
|
||||
(
|
||||
github.event_name == 'push' ||
|
||||
github.event.pull_request.head.repo.full_name == github.repository
|
||||
|
||||
34
.github/workflows/potential-duplicates.yml
vendored
Normal file
34
.github/workflows/potential-duplicates.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
'name': 'potential-duplicates'
|
||||
'on':
|
||||
'issues':
|
||||
'types': [ 'opened', 'edited' ]
|
||||
'jobs':
|
||||
'run':
|
||||
'runs-on': 'ubuntu-latest'
|
||||
'steps':
|
||||
- 'uses': 'wow-actions/potential-duplicates@v1'
|
||||
'with':
|
||||
'GITHUB_TOKEN': ${{ secrets.GITHUB_TOKEN }}
|
||||
# Issue title filter work with https://www.npmjs.com/package/anymatch.
|
||||
# Any matched issue will stop detection immediately.
|
||||
# You can specify multi filters in each line.
|
||||
# 'filter': ''
|
||||
# Exclude keywords in title before detecting.
|
||||
# 'exclude': ''
|
||||
# Label to set, when potential duplicates are detected.
|
||||
'label': 'potential-duplicate'
|
||||
# Get issues with state to compare. Supported state: 'all', 'closed',
|
||||
# 'open'.
|
||||
'state': 'all'
|
||||
# If similarity is higher than this threshold([0,1]), issue will be
|
||||
# marked as duplicate.
|
||||
'threshold': 0.6
|
||||
# Reactions to be add to comment when potential duplicates are
|
||||
# detected. Available reactions: "-1", "+1", "confused", "laugh",
|
||||
# "heart", "hooray", "rocket", "eyes".
|
||||
# 'reactions': 'eyes, confused'
|
||||
# Comment to post when potential duplicates are detected.
|
||||
'comment': >
|
||||
Potential duplicates: {{#issues}}
|
||||
- [#{{ number }}] {{ title }} ({{ accuracy }}%)
|
||||
{{/issues}}
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -12,7 +12,6 @@
|
||||
/agh-backup/
|
||||
/bin/
|
||||
/build/*
|
||||
/build2/*
|
||||
/data/
|
||||
/dist/
|
||||
/filtering/tests/filtering.TestLotsOfRules*.pprof
|
||||
@@ -22,8 +21,6 @@
|
||||
/snapcraft_login
|
||||
AdGuardHome*
|
||||
coverage.txt
|
||||
leases.db
|
||||
node_modules/
|
||||
|
||||
!/build/gitkeep
|
||||
!/build2/gitkeep
|
||||
|
||||
@@ -2,8 +2,11 @@
|
||||
{
|
||||
"project_id": "home",
|
||||
"base_locale": "en",
|
||||
"localizable_files": ["client/src/__locales/en.json"],
|
||||
"localizable_files": [
|
||||
"client/src/__locales/en.json"
|
||||
],
|
||||
"languages": {
|
||||
"ar": "العربية",
|
||||
"be": "Беларуская",
|
||||
"bg": "Български",
|
||||
"cs": "Český",
|
||||
|
||||
@@ -399,6 +399,7 @@ Response:
|
||||
"protection_enabled":true,
|
||||
"running":true,
|
||||
"dhcp_available":true,
|
||||
"protection_disabled_duration":0
|
||||
"version":"undefined"
|
||||
}
|
||||
|
||||
@@ -1355,6 +1356,19 @@ Internally, all supported services are stored as a map:
|
||||
service name -> list of rules
|
||||
|
||||
|
||||
### API: Get blocked services list of available services
|
||||
|
||||
Request:
|
||||
|
||||
GET /control/blocked_services/services
|
||||
|
||||
Response:
|
||||
|
||||
200 OK
|
||||
|
||||
[ "name1", ... ]
|
||||
|
||||
|
||||
### API: Get blocked services list
|
||||
|
||||
Request:
|
||||
|
||||
1129
CHANGELOG.md
1129
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
49
Makefile
49
Makefile
@@ -4,18 +4,26 @@
|
||||
# See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html.
|
||||
.POSIX:
|
||||
|
||||
CHANNEL = development
|
||||
CLIENT_BETA_DIR = client2
|
||||
CLIENT_DIR = client
|
||||
COMMIT = $$( git rev-parse --short HEAD )
|
||||
DIST_DIR = dist
|
||||
# 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.
|
||||
# This comment is used to simplify checking local copies of the
|
||||
# Makefile. Bump this number every time a significant change is made to
|
||||
# this Makefile.
|
||||
#
|
||||
# AdGuard-Project-Version: 2
|
||||
|
||||
# Don't name these macros "GO" etc., because GNU Make apparently makes
|
||||
# them exported environment variables with the literal value of
|
||||
# "${GO:-go}" and so on, 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.
|
||||
#
|
||||
# See https://unix.stackexchange.com/q/646255/105635.
|
||||
GO.MACRO = $${GO:-go}
|
||||
VERBOSE.MACRO = $${VERBOSE:-0}
|
||||
|
||||
CHANNEL = development
|
||||
CLIENT_DIR = client
|
||||
COMMIT = $$( git rev-parse --short HEAD )
|
||||
DIST_DIR = dist
|
||||
GOPROXY = https://goproxy.cn|https://proxy.golang.org|direct
|
||||
GOSUMDB = sum.golang.google.cn
|
||||
GPG_KEY = devteam@adguard.com
|
||||
@@ -26,22 +34,17 @@ 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
|
||||
|
||||
V1API = 0
|
||||
NEXTAPI = 0
|
||||
|
||||
# Macros for the build-release target. If FRONTEND_PREBUILT is 0, the
|
||||
# default, the macro $(BUILD_RELEASE_DEPS_$(FRONTEND_PREBUILT)) expands
|
||||
# into BUILD_RELEASE_DEPS_0, and so both frontend and backend
|
||||
# dependencies are fetched and the frontend is built. Otherwise, if
|
||||
# FRONTEND_PREBUILT is 1, only backend dependencies are fetched and the
|
||||
# frontend isn't reuilt.
|
||||
# frontend isn't rebuilt.
|
||||
#
|
||||
# TODO(a.garipov): We could probably do that from .../build-release.sh,
|
||||
# but that would mean either calling make from inside make or
|
||||
@@ -63,14 +66,14 @@ ENV = env\
|
||||
PATH="$${PWD}/bin:$$( "$(GO.MACRO)" env GOPATH )/bin:$${PATH}"\
|
||||
RACE='$(RACE)'\
|
||||
SIGN='$(SIGN)'\
|
||||
V1API='$(V1API)'\
|
||||
VERBOSE='$(VERBOSE)'\
|
||||
NEXTAPI='$(NEXTAPI)'\
|
||||
VERBOSE="$(VERBOSE.MACRO)"\
|
||||
VERSION='$(VERSION)'\
|
||||
|
||||
# Keep the line above blank.
|
||||
|
||||
# Keep this target first, so that a naked make invocation triggers
|
||||
# a full build.
|
||||
# Keep this target first, so that a naked make invocation triggers a
|
||||
# full build.
|
||||
build: deps quick-build
|
||||
|
||||
quick-build: js-build go-build
|
||||
@@ -93,17 +96,13 @@ init: ; git config core.hooksPath ./scripts/hooks
|
||||
|
||||
js-build:
|
||||
$(NPM) $(NPM_FLAGS) run build-prod
|
||||
$(YARN) $(YARN_FLAGS) build
|
||||
js-deps:
|
||||
$(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.
|
||||
js-lint: ; $(NPM) $(NPM_FLAGS) run lint
|
||||
js-test: ; $(NPM) $(NPM_FLAGS) run test
|
||||
js-beta-lint: ; $(YARN) $(YARN_FLAGS) lint
|
||||
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
|
||||
@@ -128,4 +127,4 @@ go-os-check:
|
||||
openapi-lint: ; cd ./openapi/ && $(YARN) test
|
||||
openapi-show: ; cd ./openapi/ && $(YARN) start
|
||||
|
||||
txt-lint: ; $(ENV) "$(SHELL)" ./scripts/make/txt-lint.sh
|
||||
txt-lint: ; $(ENV) "$(SHELL)" ./scripts/make/txt-lint.sh
|
||||
|
||||
595
README.md
595
README.md
@@ -1,144 +1,195 @@
|
||||
|
||||
<p align="center">
|
||||
<img src="https://cdn.adguard.com/public/Adguard/Common/adguard_home.svg" width="300px" alt="AdGuard Home" />
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="doc/adguard_home_darkmode.svg">
|
||||
<img alt="AdGuard Home" src="doc/adguard_home_lightmode.svg" width="300px">
|
||||
</picture>
|
||||
</p>
|
||||
<h3 align="center">Privacy protection center for you and your devices</h3>
|
||||
<p align="center">
|
||||
Free and open source, powerful network-wide ads & trackers blocking DNS server.
|
||||
Free and open source, powerful network-wide ads & trackers blocking DNS
|
||||
server.
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://adguard.com/">AdGuard.com</a> |
|
||||
<a href="https://github.com/AdguardTeam/AdGuardHome/wiki">Wiki</a> |
|
||||
<a href="https://reddit.com/r/Adguard">Reddit</a> |
|
||||
<a href="https://twitter.com/AdGuard">Twitter</a> |
|
||||
<a href="https://t.me/adguard_en">Telegram</a>
|
||||
<br /><br />
|
||||
<br/><br/>
|
||||
<a href="https://codecov.io/github/AdguardTeam/AdGuardHome?branch=master">
|
||||
<img src="https://img.shields.io/codecov/c/github/AdguardTeam/AdGuardHome/master.svg" alt="Code Coverage" />
|
||||
<img src="https://img.shields.io/codecov/c/github/AdguardTeam/AdGuardHome/master.svg" alt="Code Coverage"/>
|
||||
</a>
|
||||
<a href="https://goreportcard.com/report/AdguardTeam/AdGuardHome">
|
||||
<img src="https://goreportcard.com/badge/github.com/AdguardTeam/AdGuardHome" alt="Go Report Card" />
|
||||
<img src="https://goreportcard.com/badge/github.com/AdguardTeam/AdGuardHome" alt="Go Report Card"/>
|
||||
</a>
|
||||
<a href="https://hub.docker.com/r/adguard/adguardhome">
|
||||
<img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/adguard/adguardhome.svg?maxAge=604800" />
|
||||
<img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/adguard/adguardhome.svg?maxAge=604800"/>
|
||||
</a>
|
||||
<a href="https://hub.docker.com/r/adguard/adguardhome">
|
||||
<img alt="Docker Stars" src="https://img.shields.io/docker/stars/adguard/adguardhome.svg?maxAge=604800" />
|
||||
</a>
|
||||
<br />
|
||||
<br/>
|
||||
<a href="https://github.com/AdguardTeam/AdGuardHome/releases">
|
||||
<img src="https://img.shields.io/github/release/AdguardTeam/AdGuardHome/all.svg" alt="Latest release" />
|
||||
<img src="https://img.shields.io/github/release/AdguardTeam/AdGuardHome/all.svg" alt="Latest release"/>
|
||||
</a>
|
||||
<a href="https://snapcraft.io/adguard-home">
|
||||
<img alt="adguard-home" src="https://snapcraft.io/adguard-home/badge.svg" />
|
||||
<img alt="adguard-home" src="https://snapcraft.io/adguard-home/badge.svg"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<br />
|
||||
|
||||
<br/>
|
||||
<p align="center">
|
||||
<img src="https://cdn.adguard.com/public/Adguard/Common/adguard_home.gif" width="800" />
|
||||
<img src="https://cdn.adtidy.org/public/Adguard/Common/adguard_home.gif" width="800"/>
|
||||
</p>
|
||||
<hr/>
|
||||
|
||||
<hr />
|
||||
AdGuard Home is a network-wide software for blocking ads and tracking. After you
|
||||
set it up, it'll cover ALL your home devices, and you don't need any client-side
|
||||
software for that.
|
||||
|
||||
AdGuard Home is a network-wide software for blocking ads & tracking. After you set it up, it'll cover ALL your home devices, and you don't need any client-side software for that.
|
||||
It operates as a DNS server that re-routes tracking domains to a “black hole”,
|
||||
thus preventing your devices from connecting to those servers. It's based on
|
||||
software we use for our public [AdGuard DNS] servers, and both share a lot of
|
||||
code.
|
||||
|
||||
It operates as a DNS server that re-routes tracking domains to a "black hole", thus preventing your devices from connecting to those servers. It's based on software we use for our public [AdGuard DNS](https://adguard.com/en/adguard-dns/overview.html) servers -- both share a lot of common code.
|
||||
[AdGuard DNS]: https://adguard-dns.io/
|
||||
|
||||
* [Getting Started](#getting-started)
|
||||
* [Comparing AdGuard Home to other solutions](#comparison)
|
||||
* [How is this different from public AdGuard DNS servers?](#comparison-adguard-dns)
|
||||
* [How does AdGuard Home compare to Pi-Hole](#comparison-pi-hole)
|
||||
* [How does AdGuard Home compare to traditional ad blockers](#comparison-adblock)
|
||||
* [How to build from source](#how-to-build)
|
||||
* [Contributing](#contributing)
|
||||
* [Test unstable versions](#test-unstable-versions)
|
||||
* [Reporting issues](#reporting-issues)
|
||||
* [Help with translations](#translate)
|
||||
* [Other](#help-other)
|
||||
* [Projects that use AdGuard Home](#uses)
|
||||
* [Acknowledgments](#acknowledgments)
|
||||
* [Privacy](#privacy)
|
||||
|
||||
<a id="getting-started"></a>
|
||||
## Getting Started
|
||||
|
||||
### Automated install (Linux and Mac)
|
||||
Run the following command in your terminal:
|
||||
```
|
||||
* [Getting Started](#getting-started)
|
||||
* [Automated install (Unix)](#automated-install-linux-and-mac)
|
||||
* [Alternative methods](#alternative-methods)
|
||||
* [Guides](#guides)
|
||||
* [API](#api)
|
||||
* [Comparing AdGuard Home to other solutions](#comparison)
|
||||
* [How is this different from public AdGuard DNS servers?](#comparison-adguard-dns)
|
||||
* [How does AdGuard Home compare to Pi-Hole](#comparison-pi-hole)
|
||||
* [How does AdGuard Home compare to traditional ad blockers](#comparison-adblock)
|
||||
* [Known limitations](#comparison-limitations)
|
||||
* [How to build from source](#how-to-build)
|
||||
* [Prerequisites](#prerequisites)
|
||||
* [Building](#building)
|
||||
* [Contributing](#contributing)
|
||||
* [Test unstable versions](#test-unstable-versions)
|
||||
* [Reporting issues](#reporting-issues)
|
||||
* [Help with translations](#translate)
|
||||
* [Other](#help-other)
|
||||
* [Projects that use AdGuard Home](#uses)
|
||||
* [Acknowledgments](#acknowledgments)
|
||||
* [Privacy](#privacy)
|
||||
|
||||
|
||||
|
||||
## <a href="#getting-started" id="getting-started" name="getting-started">Getting Started</a>
|
||||
|
||||
### <a href="#automated-install-linux-and-mac" id="automated-install-linux-and-mac" name="automated-install-linux-and-mac">Automated install (Unix)</a>
|
||||
|
||||
To install with `curl` run the following command:
|
||||
|
||||
```sh
|
||||
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
|
||||
```
|
||||
|
||||
To install with `wget` run the following command:
|
||||
|
||||
```sh
|
||||
wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
|
||||
```
|
||||
|
||||
To install with `fetch` run the following command:
|
||||
|
||||
```sh
|
||||
fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
|
||||
```
|
||||
|
||||
The script also accepts some options:
|
||||
* `-c <channel>` to use specified channel.
|
||||
* `-r` to reinstall AdGuard Home;
|
||||
* `-u` to uninstall AdGuard Home;
|
||||
* `-v` for verbose output;
|
||||
|
||||
* `-c <channel>` to use specified channel;
|
||||
* `-r` to reinstall AdGuard Home;
|
||||
* `-u` to uninstall AdGuard Home;
|
||||
* `-v` for verbose output.
|
||||
|
||||
Note that options `-r` and `-u` are mutually exclusive.
|
||||
|
||||
### Alternative methods
|
||||
|
||||
#### Manual installation
|
||||
|
||||
Please read the **[Getting Started](https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started)** article on our Wiki to learn how to install AdGuard Home manually, and how to configure your devices to use it.
|
||||
### <a href="#alternative-methods" id="alternative-methods" name="alternative-methods">Alternative methods</a>
|
||||
|
||||
#### Docker
|
||||
#### <a href="#manual-installation" id="manual-installation" name="manual-installation">Manual installation</a>
|
||||
|
||||
You can use our [official Docker image](https://hub.docker.com/r/adguard/adguardhome).
|
||||
Please read the **[Getting Started][wiki-start]** article on our Wiki to learn
|
||||
how to install AdGuard Home manually, and how to configure your devices to use
|
||||
it.
|
||||
|
||||
#### Snap Store
|
||||
#### <a href="#docker" id="docker" name="docker">Docker</a>
|
||||
|
||||
If you're running **Linux**, there's a secure and easy way to install AdGuard Home - you can get it from the [Snap Store](https://snapcraft.io/adguard-home).
|
||||
You can use our official Docker image on [Docker Hub].
|
||||
|
||||
### Guides
|
||||
#### <a href="#snap-store" id="snap-store" name="snap-store">Snap Store</a>
|
||||
|
||||
* [Getting Started](https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started)
|
||||
* [FAQ](https://github.com/AdguardTeam/AdGuardHome/wiki/FAQ)
|
||||
* [How to Write Hosts Blocklists](https://github.com/AdguardTeam/AdGuardHome/wiki/Hosts-Blocklists)
|
||||
* [Comparing AdGuard Home to Other Solutions](https://github.com/AdguardTeam/AdGuardHome/wiki/Comparison)
|
||||
* Configuring AdGuard
|
||||
* [Configuration](https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration)
|
||||
* [Configuring AdGuard Home Clients](https://github.com/AdguardTeam/AdGuardHome/wiki/Clients)
|
||||
* [AdGuard Home as a DoH, DoT, or DoQ Server](https://github.com/AdguardTeam/AdGuardHome/wiki/Encryption)
|
||||
* [AdGuard Home as a DNSCrypt Server](https://github.com/AdguardTeam/AdGuardHome/wiki/DNSCrypt)
|
||||
* [AdGuard Home as a DHCP Server](https://github.com/AdguardTeam/AdGuardHome/wiki/DHCP)
|
||||
* Installing AdGuard Home
|
||||
* [Docker](https://github.com/AdguardTeam/AdGuardHome/wiki/Docker)
|
||||
* [How to Install and Run AdGuard Home on a Raspberry Pi](https://github.com/AdguardTeam/AdGuardHome/wiki/Raspberry-Pi)
|
||||
* [How to Install and Run AdGuard Home on a Virtual Private Server](https://github.com/AdguardTeam/AdGuardHome/wiki/VPS)
|
||||
* [Verifying Releases](https://github.com/AdguardTeam/AdGuardHome/wiki/Verify-Releases)
|
||||
If you're running **Linux,** there's a secure and easy way to install AdGuard
|
||||
Home: get it from the [Snap Store].
|
||||
|
||||
### API
|
||||
[Docker Hub]: https://hub.docker.com/r/adguard/adguardhome
|
||||
[Snap Store]: https://snapcraft.io/adguard-home
|
||||
[wiki-start]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started
|
||||
|
||||
If you want to integrate with AdGuard Home, you can use our [REST API](https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi).
|
||||
Alternatively, you can use this [python client](https://pypi.org/project/adguardhome/), which is used to build the [AdGuard Home Hass.io Add-on](https://community.home-assistant.io/t/community-hass-io-add-on-adguard-home).
|
||||
|
||||
<a id="comparison"></a>
|
||||
## Comparing AdGuard Home to other solutions
|
||||
|
||||
<a id="comparison-adguard-dns"></a>
|
||||
### How is this different from public AdGuard DNS servers?
|
||||
### <a href="#guides" id="guides" name="guides">Guides</a>
|
||||
|
||||
Running your own AdGuard Home server allows you to do much more than using a public DNS server. It's a completely different level. See for yourself:
|
||||
See our [Wiki][wiki].
|
||||
|
||||
* Choose what exactly the server blocks and permits.
|
||||
* Monitor your network activity.
|
||||
* Add your own custom filtering rules.
|
||||
* **Most importantly, this is your own server, and you are the only one who's in control.**
|
||||
[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki
|
||||
|
||||
<a id="comparison-pi-hole"></a>
|
||||
### How does AdGuard Home compare to Pi-Hole
|
||||
|
||||
At this point, AdGuard Home has a lot in common with Pi-Hole. Both block ads and trackers using "DNS sinkholing" method, and both allow customizing what's blocked.
|
||||
|
||||
> We're not going to stop here. DNS sinkholing is not a bad starting point, but this is just the beginning.
|
||||
### <a href="#api" id="api" name="api">API</a>
|
||||
|
||||
AdGuard Home provides a lot of features out-of-the-box with no need to install and configure additional software. We want it to be simple to the point when even casual users can set it up with minimal effort.
|
||||
If you want to integrate with AdGuard Home, you can use our [REST API][openapi].
|
||||
Alternatively, you can use this [python client][pyclient], which is used to
|
||||
build the [AdGuard Home Hass.io Add-on][hassio].
|
||||
|
||||
> Disclaimer: some of the listed features can be added to Pi-Hole by installing additional software or by manually using SSH terminal and reconfiguring one of the utilities Pi-Hole consists of. However, in our opinion, this cannot be legitimately counted as a Pi-Hole's feature.
|
||||
[hassio]: https://www.home-assistant.io/integrations/adguard/
|
||||
[openapi]: https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi
|
||||
[pyclient]: https://pypi.org/project/adguardhome/
|
||||
|
||||
|
||||
|
||||
## <a href="#comparison" id="comparison" name="comparison">Comparing AdGuard Home to other solutions</a>
|
||||
|
||||
### <a href="#comparison-adguard-dns" id="comparison-adguard-dns" name="comparison-adguard-dns">How is this different from public AdGuard DNS servers?</a>
|
||||
|
||||
Running your own AdGuard Home server allows you to do much more than using a
|
||||
public DNS server. It's a completely different level. See for yourself:
|
||||
|
||||
* Choose what exactly the server blocks and permits.
|
||||
|
||||
* Monitor your network activity.
|
||||
|
||||
* Add your own custom filtering rules.
|
||||
|
||||
* **Most importantly, it's your own server, and you are the only one who's in
|
||||
control.**
|
||||
|
||||
|
||||
|
||||
### <a href="#comparison-pi-hole" id="comparison-pi-hole" name="comparison-pi-hole">How does AdGuard Home compare to Pi-Hole</a>
|
||||
|
||||
At this point, AdGuard Home has a lot in common with Pi-Hole. Both block ads
|
||||
and trackers using the so-called “DNS sinkholing” method and both allow
|
||||
customizing what's blocked.
|
||||
|
||||
<aside>
|
||||
We're not going to stop here. DNS sinkholing is not a bad starting point, but
|
||||
this is just the beginning.
|
||||
</aside>
|
||||
|
||||
AdGuard Home provides a lot of features out-of-the-box with no need to install
|
||||
and configure additional software. We want it to be simple to the point when
|
||||
even casual users can set it up with minimal effort.
|
||||
|
||||
**Disclaimer:** some of the listed features can be added to Pi-Hole by
|
||||
installing additional software or by manually using SSH terminal and
|
||||
reconfiguring one of the utilities Pi-Hole consists of. However, in our
|
||||
opinion, this cannot be legitimately counted as a Pi-Hole's feature.
|
||||
|
||||
| Feature | AdGuard Home | Pi-Hole |
|
||||
|-------------------------------------------------------------------------|-------------------|-----------------------------------------------------------|
|
||||
@@ -154,221 +205,325 @@ AdGuard Home provides a lot of features out-of-the-box with no need to install a
|
||||
| Force Safe search on search engines | ✅ | ❌ |
|
||||
| Per-client (device) configuration | ✅ | ✅ |
|
||||
| Access settings (choose who can use AGH DNS) | ✅ | ❌ |
|
||||
| Running [without root privileges](https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser) | ✅ | ❌ |
|
||||
| Running [without root privileges][wiki-noroot] | ✅ | ❌ |
|
||||
|
||||
<a id="comparison-adblock"></a>
|
||||
### How does AdGuard Home compare to traditional ad blockers
|
||||
[wiki-noroot]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser
|
||||
|
||||
|
||||
|
||||
### <a href="#comparison-adblock" id="comparison-adblock" name="comparison-adblock">How does AdGuard Home compare to traditional ad blockers</a>
|
||||
|
||||
It depends.
|
||||
|
||||
"DNS sinkholing" is capable of blocking a big percentage of ads, but it lacks flexibility and power of traditional ad blockers. You can get a good impression about the difference between these methods by reading [this article](https://adguard.com/en/blog/adguard-vs-adaway-dns66/). It compares AdGuard for Android (a traditional ad blocker) to hosts-level ad blockers (which are almost identical to DNS-based blockers in their capabilities). This level of protection is enough for some users.
|
||||
DNS sinkholing is capable of blocking a big percentage of ads, but it lacks
|
||||
the flexibility and the power of traditional ad blockers. You can get a good
|
||||
impression about the difference between these methods by reading [this
|
||||
article][blog-adaway], which compares AdGuard for Android (a traditional ad
|
||||
blocker) to hosts-level ad blockers (which are almost identical to DNS-based
|
||||
blockers in their capabilities). This level of protection is enough for some
|
||||
users.
|
||||
|
||||
Additionally, using a DNS-based blocker can help to block ads, tracking and analytics requests on other types of devices, such as SmartTVs, smart speakers or other kinds of IoT devices (on which you can't install traditional ad blockers).
|
||||
Additionally, using a DNS-based blocker can help to block ads, tracking and
|
||||
analytics requests on other types of devices, such as SmartTVs, smart speakers
|
||||
or other kinds of IoT devices (on which you can't install traditional ad
|
||||
blockers).
|
||||
|
||||
**Known limitations**
|
||||
|
||||
|
||||
### <a href="#comparison-limitations" id="comparison-limitations" name="comparison-limitations">Known limitations</a>
|
||||
|
||||
Here are some examples of what cannot be blocked by a DNS-level blocker:
|
||||
|
||||
* YouTube, Twitch ads
|
||||
* Facebook, Twitter, Instagram sponsored posts
|
||||
* YouTube, Twitch ads;
|
||||
|
||||
Essentially, any advertising that shares a domain with content cannot be blocked by a DNS-level blocker.
|
||||
* Facebook, Twitter, Instagram sponsored posts.
|
||||
|
||||
Is there a chance to handle this in the future? DNS will never be enough to do this. Our only option is to use a content blocking proxy like what we do in the standalone AdGuard applications. We're [going to bring](https://github.com/AdguardTeam/AdGuardHome/issues/1228) this feature support to AdGuard Home in the future. Unfortunately, even in this case, there still will be cases when this won't be enough or would require quite a complicated configuration.
|
||||
Essentially, any advertising that shares a domain with content cannot be blocked
|
||||
by a DNS-level blocker.
|
||||
|
||||
<a id="how-to-build"></a>
|
||||
## How to build from source
|
||||
Is there a chance to handle this in the future? DNS will never be enough to do
|
||||
this. Our only option is to use a content blocking proxy like what we do in the
|
||||
standalone AdGuard applications. We're [going to bring][issue-1228] this
|
||||
feature support to AdGuard Home in the future. Unfortunately, even in this
|
||||
case, there still will be cases when this won't be enough or would require quite
|
||||
a complicated configuration.
|
||||
|
||||
### Prerequisites
|
||||
[blog-adaway]: https://adguard.com/blog/adguard-vs-adaway-dns66.html
|
||||
[issue-1228]: https://github.com/AdguardTeam/AdGuardHome/issues/1228
|
||||
|
||||
|
||||
|
||||
## <a href="#how-to-build" id="how-to-build" name="how-to-build">How to build from source</a>
|
||||
|
||||
### <a href="#prerequisites" id="prerequisites" name="prerequisites">Prerequisites</a>
|
||||
|
||||
Run `make init` to prepare the development environment.
|
||||
|
||||
You will need this to build AdGuard Home:
|
||||
|
||||
* [go](https://golang.org/dl/) v1.17 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.
|
||||
* [Go](https://golang.org/dl/) v1.19 or later;
|
||||
* [Node.js](https://nodejs.org/en/download/) v10.16.2 or later;
|
||||
* [npm](https://www.npmjs.com/) v6.14 or later;
|
||||
* [yarn](https://yarnpkg.com/) v1.22.5 or later.
|
||||
|
||||
### Building
|
||||
|
||||
Open Terminal and execute these commands:
|
||||
|
||||
```bash
|
||||
### <a href="#building" id="building" name="building">Building</a>
|
||||
|
||||
Open your terminal and execute these commands:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/AdguardTeam/AdGuardHome
|
||||
cd AdGuardHome
|
||||
make
|
||||
```
|
||||
|
||||
Please note, that the non-standard `-j` flag is currently not supported, so
|
||||
building with `make -j 4` or setting your `MAKEFLAGS` to include, for example,
|
||||
`-j 4` is likely to break the build. If you do have your `MAKEFLAGS` set to
|
||||
that, and you don't want to change it, you can override it by running
|
||||
`make -j 1`.
|
||||
**NOTE:** The non-standard `-j` flag is currently not supported, so building
|
||||
with `make -j 4` or setting your `MAKEFLAGS` to include, for example, `-j 4` is
|
||||
likely to break the build. If you do have your `MAKEFLAGS` set to that, and you
|
||||
don't want to change it, you can override it by running `make -j 1`.
|
||||
|
||||
Check the [`Makefile`](https://github.com/AdguardTeam/AdGuardHome/blob/master/Makefile) to learn about other commands.
|
||||
Check the [`Makefile`][src-makefile] to learn about other commands.
|
||||
|
||||
**Building for a different platform.** You can build AdGuard for any OS/ARCH just like any other Go project.
|
||||
In order to do this, specify `GOOS` and `GOARCH` env variables before running make.
|
||||
#### <a href="#building-cross" id="building-cross" name="building-cross">Building for a different platform</a>
|
||||
|
||||
You can build AdGuard Home for any OS/ARCH that Go supports. In order to do
|
||||
this, specify `GOOS` and `GOARCH` environment variables as macros when running
|
||||
`make`.
|
||||
|
||||
For example:
|
||||
```
|
||||
|
||||
```sh
|
||||
env GOOS='linux' GOARCH='arm64' make
|
||||
```
|
||||
Or:
|
||||
```
|
||||
|
||||
or:
|
||||
|
||||
```sh
|
||||
make GOOS='linux' GOARCH='arm64'
|
||||
```
|
||||
|
||||
#### Preparing release
|
||||
#### <a href="#preparing-releases" id="preparing-releases" name="preparing-releases">Preparing releases</a>
|
||||
|
||||
You'll need this to prepare a release build:
|
||||
You'll need [`snapcraft`] to prepare a release build. Once installed, run the
|
||||
following command:
|
||||
|
||||
* [snapcraft](https://snapcraft.io/)
|
||||
|
||||
Commands:
|
||||
|
||||
```
|
||||
```sh
|
||||
make build-release CHANNEL='...' VERSION='...'
|
||||
```
|
||||
|
||||
#### Docker image
|
||||
See the [`build-release` target documentation][targ-release].
|
||||
|
||||
* Run `make build-docker` to build the Docker image locally (the one that we publish to DockerHub).
|
||||
#### <a href="#docker-image" id="docker-image" name="docker-image">Docker image</a>
|
||||
|
||||
Please note, that we're using [Docker Buildx](https://docs.docker.com/buildx/working-with-buildx/) to build our official image.
|
||||
Run `make build-docker` to build the Docker image locally (the one that we
|
||||
publish to DockerHub). Please note, that we're using [Docker Buildx][buildx] to
|
||||
build our official image.
|
||||
|
||||
You may need to prepare before using these builds:
|
||||
|
||||
* (Linux-only) Install Qemu: `docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes`
|
||||
* Prepare builder: `docker buildx create --name buildx-builder --driver docker-container --use`
|
||||
* (Linux-only) Install Qemu:
|
||||
|
||||
```sh
|
||||
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes
|
||||
```
|
||||
|
||||
* Prepare the builder:
|
||||
|
||||
```sh
|
||||
docker buildx create --name buildx-builder --driver docker-container --use
|
||||
```
|
||||
|
||||
See the [`build-docker` target documentation][targ-docker].
|
||||
|
||||
#### <a href="#debugging-the-frontend" id="debugging-the-frontend" name="debugging-the-frontend">Debugging the frontend</a>
|
||||
|
||||
When you need to debug the frontend without recompiling the production version
|
||||
every time, for example to check how your labels would look on a form, you can
|
||||
run the frontend build a development environment.
|
||||
|
||||
1. In a separate terminal, run:
|
||||
|
||||
```sh
|
||||
( cd ./client/ && env NODE_ENV='development' npm run watch )
|
||||
```
|
||||
|
||||
2. Run your `AdGuardHome` binary with the `--local-frontend` flag, which
|
||||
instructs AdGuard Home to ignore the built-in frontend files and use those
|
||||
from the `./build/` directory.
|
||||
|
||||
3. Now any changes you make in the `./client/` directory should be recompiled
|
||||
and become available on the web UI. Make sure that you disable the browser
|
||||
cache to make sure that you actually get the recompiled version.
|
||||
|
||||
[`snapcraft`]: https://snapcraft.io/
|
||||
[buildx]: https://docs.docker.com/buildx/working-with-buildx/
|
||||
[src-makefile]: https://github.com/AdguardTeam/AdGuardHome/blob/master/Makefile
|
||||
[targ-docker]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image
|
||||
[targ-release]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-releasesh-build-a-release-for-all-platforms
|
||||
|
||||
|
||||
### Resources that we update periodically
|
||||
|
||||
* `scripts/translations`
|
||||
* `scripts/whotracksme`
|
||||
## <a href="#contributing" id="contributing" name="contributing">Contributing</a>
|
||||
|
||||
<a id="contributing"></a>
|
||||
## Contributing
|
||||
You are welcome to fork this repository, make your changes and [submit a pull
|
||||
request][pr]. Please make sure you follow our [code guidelines][guide] though.
|
||||
|
||||
You are welcome to fork this repository, make your changes and submit a pull request — https://github.com/AdguardTeam/AdGuardHome/pulls
|
||||
Please note that we don't expect people to contribute to both UI and backend
|
||||
parts of the program simultaneously. Ideally, the backend part is implemented
|
||||
first, i.e. configuration, API, and the functionality itself. The UI part can
|
||||
be implemented later in a different pull request by a different person.
|
||||
|
||||
Please note that we don't expect people to contribute to both UI and golang parts of the program simultaneously. Ideally, the golang part is implemented first, i.e. configuration, API, and the functionality itself. The UI part can be implemented later in a different pull request by a different person.
|
||||
[guide]: https://github.com/AdguardTeam/CodeGuidelines/
|
||||
[pr]: https://github.com/AdguardTeam/AdGuardHome/pulls
|
||||
|
||||
<a id="test-unstable-versions"></a>
|
||||
### Test unstable versions
|
||||
|
||||
|
||||
### <a href="#test-unstable-versions" id="test-unstable-versions" name="test-unstable-versions">Test unstable versions</a>
|
||||
|
||||
There are two update channels that you can use:
|
||||
|
||||
* `beta` - beta version of AdGuard Home. More or less stable versions.
|
||||
* `edge` - the newest version of AdGuard Home. New updates are pushed to this channel daily and it is the closest to the master branch you can get.
|
||||
* `beta`: beta versions of AdGuard Home. More or less stable versions,
|
||||
usually released every two weeks or more often.
|
||||
|
||||
* `edge`: the newest version of AdGuard Home from the development branch. New
|
||||
updates are pushed to this channel daily.
|
||||
|
||||
There are three options how you can install an unstable version:
|
||||
|
||||
1. [Snap Store](https://snapcraft.io/adguard-home) -- look for "beta" and "edge" channels there.
|
||||
2. [Docker Hub](https://hub.docker.com/r/adguard/adguardhome) -- look for "beta" and "edge" tags there.
|
||||
3. Standalone builds. Use the automated installation script or look for the available builds below.
|
||||
1. [Snap Store]: look for the `beta` and `edge` channels.
|
||||
|
||||
Beta:
|
||||
```
|
||||
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta
|
||||
```
|
||||
2. [Docker Hub]: look for the `beta` and `edge` tags.
|
||||
|
||||
Edge:
|
||||
```
|
||||
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge
|
||||
```
|
||||
3. Standalone builds. Use the automated installation script or look for the
|
||||
available builds [on the Wiki][wiki-platf].
|
||||
|
||||
* Beta channel builds
|
||||
* Linux: [64-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_amd64.tar.gz), [32-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_386.tar.gz)
|
||||
* Linux ARM: [32-bit ARMv6](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_armv6.tar.gz) (recommended for Raspberry Pi OS stable), [64-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_arm64.tar.gz), [32-bit ARMv5](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_armv5.tar.gz), [32-bit ARMv7](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_armv7.tar.gz)
|
||||
* Linux MIPS: [32-bit MIPS](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_mips_softfloat.tar.gz), [32-bit MIPSLE](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_mipsle_softfloat.tar.gz), [64-bit MIPS](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_mips64_softfloat.tar.gz), [64-bit MIPSLE](https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_mips64le_softfloat.tar.gz)
|
||||
* Windows: [64-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_windows_amd64.zip), [32-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_windows_386.zip)
|
||||
* macOS: [64-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_darwin_amd64.zip), [32-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_darwin_386.zip)
|
||||
* macOS ARM: [64-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_darwin_arm64.zip)
|
||||
* FreeBSD: [64-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_freebsd_amd64.tar.gz), [32-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_freebsd_386.tar.gz)
|
||||
* FreeBSD ARM: [64-bit](https://static.adguard.com/adguardhome/beta/AdGuardHome_freebsd_arm64.tar.gz), [32-bit ARMv5](https://static.adguard.com/adguardhome/beta/AdGuardHome_freebsd_armv5.tar.gz), [32-bit ARMv6](https://static.adguard.com/adguardhome/beta/AdGuardHome_freebsd_armv6.tar.gz), [32-bit ARMv7](https://static.adguard.com/adguardhome/beta/AdGuardHome_freebsd_armv7.tar.gz)
|
||||
* OpenBSD: (coming soon)
|
||||
* OpenBSD ARM: (coming soon)
|
||||
Script to install a beta version:
|
||||
|
||||
* Edge channel builds
|
||||
* Linux: [64-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_amd64.tar.gz), [32-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_386.tar.gz)
|
||||
* Linux ARM: [32-bit ARMv6](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_armv6.tar.gz) (recommended for Raspberry Pi OS stable), [64-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_arm64.tar.gz), [32-bit ARMv5](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_armv5.tar.gz), [32-bit ARMv7](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_armv7.tar.gz)
|
||||
* Linux MIPS: [32-bit MIPS](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_mips_softfloat.tar.gz), [32-bit MIPSLE](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_mipsle_softfloat.tar.gz), [64-bit MIPS](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_mips64_softfloat.tar.gz), [64-bit MIPSLE](https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_mips64le_softfloat.tar.gz)
|
||||
* Windows: [64-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_windows_amd64.zip), [32-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_windows_386.zip)
|
||||
* macOS: [64-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_darwin_amd64.zip), [32-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_darwin_386.zip)
|
||||
* macOS ARM: [64-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_darwin_arm64.zip)
|
||||
* FreeBSD: [64-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_freebsd_amd64.tar.gz), [32-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_freebsd_386.tar.gz)
|
||||
* FreeBSD ARM: [64-bit](https://static.adguard.com/adguardhome/edge/AdGuardHome_freebsd_arm64.tar.gz), [32-bit ARMv5](https://static.adguard.com/adguardhome/edge/AdGuardHome_freebsd_armv5.tar.gz), [32-bit ARMv6](https://static.adguard.com/adguardhome/edge/AdGuardHome_freebsd_armv6.tar.gz), [32-bit ARMv7](https://static.adguard.com/adguardhome/edge/AdGuardHome_freebsd_armv7.tar.gz)
|
||||
* OpenBSD: [64-bit (experimental)](https://static.adguard.com/adguardhome/edge/AdGuardHome_openbsd_amd64.tar.gz)
|
||||
* OpenBSD ARM: [64-bit (experimental)](https://static.adguard.com/adguardhome/edge/AdGuardHome_openbsd_arm64.tar.gz)
|
||||
```sh
|
||||
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta
|
||||
```
|
||||
|
||||
Script to install an edge version:
|
||||
|
||||
```sh
|
||||
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge
|
||||
```
|
||||
[wiki-platf]: https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms
|
||||
|
||||
|
||||
<a id="reporting-issues"></a>
|
||||
### Report issues
|
||||
|
||||
If you run into any problem or have a suggestion, head to [this page](https://github.com/AdguardTeam/AdGuardHome/issues) and click on the `New issue` button.
|
||||
### <a href="#reporting-issues" id="reporting-issues" name="reporting-issues">Report issues</a>
|
||||
|
||||
<a id="translate"></a>
|
||||
### Help with translations
|
||||
If you run into any problem or have a suggestion, head to [this page][iss] and
|
||||
click on the “New issue” button.
|
||||
|
||||
If you want to help with AdGuard Home translations, please learn more about translating AdGuard products here: https://kb.adguard.com/en/general/adguard-translations
|
||||
[iss]: https://github.com/AdguardTeam/AdGuardHome/issues
|
||||
|
||||
Here is a link to AdGuard Home project: https://crowdin.com/project/adguard-applications/en#/adguard-home
|
||||
|
||||
<a id="help-other"></a>
|
||||
### Other
|
||||
|
||||
Here's what you can also do to contribute:
|
||||
### <a href="#translate" id="translate" name="translate">Help with translations</a>
|
||||
|
||||
1. [Look for issues][helpissues] marked as "help wanted".
|
||||
2. Actualize the list of *Blocked services*. It can be found in
|
||||
[filtering/blocked.go][blocked.go].
|
||||
3. Actualize the list of known *trackers*. It it can be found in [this repo]
|
||||
[companiesdb].
|
||||
4. Actualize the list of vetted *blocklists*. It it can be found in
|
||||
[client/src/helpers/filters/filters.json][filters.json].
|
||||
If you want to help with AdGuard Home translations, please learn more about
|
||||
translating AdGuard products [in our Knowledge Base][kb-trans]. You can
|
||||
contribute to the [AdGuardHome project on CrowdIn][crowdin].
|
||||
|
||||
[helpissues]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+
|
||||
[blocked.go]: https://github.com/AdguardTeam/AdGuardHome/blob/master/internal/filtering/blocked.go
|
||||
[companiesdb]: https://github.com/AdguardTeam/companiesdb
|
||||
[filters.json]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/src/helpers/filters/filters.json
|
||||
[crowdin]: https://crowdin.com/project/adguard-applications/en#/adguard-home
|
||||
[kb-trans]: https://kb.adguard.com/en/general/adguard-translations
|
||||
|
||||
<a id="uses"></a>
|
||||
## Projects that use AdGuard Home
|
||||
|
||||
* [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740) - iOS app by [Joost](https://rocketscience-it.nl/)
|
||||
* [Python library](https://github.com/frenck/python-adguardhome) by [@frenck](https://github.com/frenck)
|
||||
* [Home Assistant add-on](https://github.com/hassio-addons/addon-adguard-home) by [@frenck](https://github.com/frenck)
|
||||
* [OpenWrt LUCI app](https://github.com/kongfl888/luci-app-adguardhome) by [@kongfl888](https://github.com/kongfl888) (originally by [@rufengsuixing](https://github.com/rufengsuixing))
|
||||
* [Prometheus exporter for AdGuard Home](https://github.com/ebrianne/adguard-exporter) by [@ebrianne](https://github.com/ebrianne)
|
||||
* [AdGuard Home on GLInet routers](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664) by [Gl-Inet](https://gl-inet.com/)
|
||||
* [Cloudron app](https://git.cloudron.io/cloudron/adguard-home-app) by [@gramakri](https://github.com/gramakri)
|
||||
|
||||
<a id="acknowledgments"></a>
|
||||
## Acknowledgments
|
||||
### <a href="#help-other" id="help-other" name="help-other">Other</a>
|
||||
|
||||
Another way you can contribute is by [looking for issues][iss-help] marked as
|
||||
`help wanted`, asking if the issue is up for grabs, and sending a PR fixing the
|
||||
bug or implementing the feature.
|
||||
|
||||
[iss-help]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
|
||||
|
||||
|
||||
|
||||
## <a href="#uses" id="uses" name="uses">Projects that use AdGuard Home</a>
|
||||
|
||||
<!--
|
||||
TODO(a.garipov): Use reference links.
|
||||
-->
|
||||
|
||||
* [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740):
|
||||
iOS app by [Joost](https://rocketscience-it.nl/).
|
||||
|
||||
* [Python library](https://github.com/frenck/python-adguardhome) by
|
||||
[@frenck](https://github.com/frenck).
|
||||
|
||||
* [Home Assistant add-on](https://github.com/hassio-addons/addon-adguard-home)
|
||||
by [@frenck](https://github.com/frenck).
|
||||
|
||||
* [OpenWrt LUCI app](https://github.com/kongfl888/luci-app-adguardhome) by
|
||||
[@kongfl888](https://github.com/kongfl888) (originally by
|
||||
[@rufengsuixing](https://github.com/rufengsuixing)).
|
||||
|
||||
* [Prometheus exporter for AdGuard
|
||||
Home](https://github.com/ebrianne/adguard-exporter) by
|
||||
[@ebrianne](https://github.com/ebrianne).
|
||||
|
||||
* [Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home
|
||||
instance](https://github.com/Lissy93/AdGuardian-Term) by
|
||||
[@Lissy93](https://github.com/Lissy93)
|
||||
|
||||
* [AdGuard Home on GLInet
|
||||
routers](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664) by
|
||||
[Gl-Inet](https://gl-inet.com/).
|
||||
|
||||
* [Cloudron app](https://git.cloudron.io/cloudron/adguard-home-app) by
|
||||
[@gramakri](https://github.com/gramakri).
|
||||
|
||||
* [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer)
|
||||
by [@jumpsmm7](https://github.com/jumpsmm7) aka
|
||||
[@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/).
|
||||
|
||||
* [Node.js library](https://github.com/Andrea055/AdguardHomeAPI) by
|
||||
[@Andrea055](https://github.com/Andrea055/).
|
||||
|
||||
|
||||
|
||||
## <a href="#acknowledgments" id="acknowledgments" name="acknowledgments">Acknowledgments</a>
|
||||
|
||||
<!--
|
||||
TODO(a.garipov): Use reference links.
|
||||
-->
|
||||
|
||||
This software wouldn't have been possible without:
|
||||
|
||||
* [Go](https://golang.org/dl/) and its libraries:
|
||||
* [gcache](https://github.com/bluele/gcache)
|
||||
* [miekg's dns](https://github.com/miekg/dns)
|
||||
* [go-yaml](https://github.com/go-yaml/yaml)
|
||||
* [service](https://godoc.org/github.com/kardianos/service)
|
||||
* [dnsproxy](https://github.com/AdguardTeam/dnsproxy)
|
||||
* [urlfilter](https://github.com/AdguardTeam/urlfilter)
|
||||
* [Node.js](https://nodejs.org/) and its libraries:
|
||||
* [React.js](https://reactjs.org)
|
||||
* [Tabler](https://github.com/tabler/tabler)
|
||||
* And many more node.js packages.
|
||||
* [whotracks.me data](https://github.com/cliqz-oss/whotracks.me)
|
||||
* [Go](https://golang.org/dl/) and its libraries:
|
||||
* [gcache](https://github.com/bluele/gcache)
|
||||
* [miekg's dns](https://github.com/miekg/dns)
|
||||
* [go-yaml](https://github.com/go-yaml/yaml)
|
||||
* [service](https://godoc.org/github.com/kardianos/service)
|
||||
* [dnsproxy](https://github.com/AdguardTeam/dnsproxy)
|
||||
* [urlfilter](https://github.com/AdguardTeam/urlfilter)
|
||||
* [Node.js](https://nodejs.org/) and its libraries:
|
||||
* And many more Node.js packages.
|
||||
* [React.js](https://reactjs.org)
|
||||
* [Tabler](https://github.com/tabler/tabler)
|
||||
* [whotracks.me data](https://github.com/cliqz-oss/whotracks.me)
|
||||
|
||||
You might have seen that [CoreDNS](https://coredns.io) was mentioned here before — we've stopped using it in AdGuard Home. While we still use it on our servers for [AdGuard DNS](https://adguard.com/adguard-dns/overview.html) service, it seemed like an overkill for Home as it impeded Home features that we plan to implement.
|
||||
You might have seen that [CoreDNS] was mentioned here before, but we've stopped
|
||||
using it in AdGuard Home.
|
||||
|
||||
For a full list of all node.js packages in use, please take a look at [client/package.json](https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json) file.
|
||||
For the full list of all Node.js packages in use, please take a look at
|
||||
[`client/package.json`][src-packagejson] file.
|
||||
|
||||
<a id="privacy"></a>
|
||||
## Privacy
|
||||
[CoreDNS]: https://coredns.io
|
||||
[src-packagejson]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json
|
||||
|
||||
Our main idea is that you are the one, who should be in control of your data. So it is only natural, that AdGuard Home does not collect any usage statistics, and does not use any web services unless you configure it to do so. Full policy with every bit that _could in theory be_ sent by AdGuard Home is available [here](https://adguard.com/en/privacy/home.html).
|
||||
|
||||
|
||||
## <a href="#privacy" id="privacy" name="privacy">Privacy</a>
|
||||
|
||||
Our main idea is that you are the one, who should be in control of your data.
|
||||
So it is only natural, that AdGuard Home does not collect any usage statistics,
|
||||
and does not use any web services unless you configure it to do so. See also
|
||||
the [full privacy policy][privacy] with every bit that *could in theory be sent*
|
||||
by AdGuard Home is available.
|
||||
|
||||
[privacy]: https://adguard.com/en/privacy/home.html
|
||||
|
||||
18
SECURITY.md
Normal file
18
SECURITY.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please send your vulnerability reports to <security@adguard.com>. To make sure
|
||||
that your report reaches us, please:
|
||||
|
||||
1. Include the words “AdGuard Home” and “vulnerability” to the subject line as
|
||||
well as a short description of the vulnerability. For example:
|
||||
|
||||
> AdGuard Home API vulnerability: possible XSS attack
|
||||
|
||||
2. Make sure that the message body contains a clear description of the
|
||||
vulnerability.
|
||||
|
||||
If you have not received a reply to your email within 7 days, please make sure
|
||||
to follow up with us again at <security@adguard.com>. Once again, make sure
|
||||
that the word “vulnerability” is in the subject line.
|
||||
@@ -7,9 +7,15 @@
|
||||
# Make sure to sync any changes with the branch overrides below.
|
||||
'variables':
|
||||
'channel': 'edge'
|
||||
'dockerGo': 'adguard/golang-ubuntu:4.4'
|
||||
'dockerGo': 'adguard/golang-ubuntu:6.7'
|
||||
|
||||
'stages':
|
||||
- 'Build frontend':
|
||||
'manual': false
|
||||
'final': false
|
||||
'jobs':
|
||||
- 'Build frontend'
|
||||
|
||||
- 'Make release':
|
||||
'manual': false
|
||||
'final': false
|
||||
@@ -22,11 +28,11 @@
|
||||
'jobs':
|
||||
- 'Make and publish docker'
|
||||
|
||||
- 'Publish to static.adguard.com':
|
||||
- 'Publish to static storage':
|
||||
'manual': false
|
||||
'final': false
|
||||
'jobs':
|
||||
- 'Publish to static.adguard.com'
|
||||
- 'Publish to static storage'
|
||||
|
||||
- 'Publish to Snapstore':
|
||||
'manual': false
|
||||
@@ -40,11 +46,41 @@
|
||||
'jobs':
|
||||
- 'Publish to GitHub Releases'
|
||||
|
||||
'Make release':
|
||||
'Build frontend':
|
||||
'docker':
|
||||
'image': '${bamboo.dockerGo}'
|
||||
'volumes':
|
||||
'${system.YARN_DIR}': '${bamboo.cacheYarn}'
|
||||
'key': 'BF'
|
||||
'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}"
|
||||
|
||||
make js-deps js-build
|
||||
'artifacts':
|
||||
- 'name': 'AdGuardHome frontend'
|
||||
'pattern': 'build*/**'
|
||||
'shared': true
|
||||
'required': true
|
||||
'requirements':
|
||||
- 'adg-docker': 'true'
|
||||
|
||||
'Make release':
|
||||
'docker':
|
||||
'image': '${bamboo.dockerGo}'
|
||||
'volumes':
|
||||
'${system.GO_CACHE_DIR}': '${bamboo.cacheGo}'
|
||||
'${system.GO_PKG_CACHE_DIR}': '${bamboo.cacheGoPkg}'
|
||||
'key': 'MR'
|
||||
@@ -65,14 +101,16 @@
|
||||
git checkout "${bamboo.repository.revision.number}"
|
||||
|
||||
# Run the build with the specified channel.
|
||||
echo "${bamboo.gpgSecretKey}"\
|
||||
echo "${bamboo.gpgSecretKeyPart1}${bamboo.gpgSecretKeyPart2}"\
|
||||
| awk '{ gsub(/\\n/, "\n"); print; }'\
|
||||
| gpg --import --batch --yes
|
||||
|
||||
make\
|
||||
CHANNEL=${bamboo.channel}\
|
||||
GPG_KEY_PASSPHRASE=${bamboo.gpgPassword}\
|
||||
VERBOSE=1\
|
||||
FRONTEND_PREBUILT=1\
|
||||
PARALLELISM=1\
|
||||
VERBOSE=2\
|
||||
build-release
|
||||
# TODO(a.garipov): Use more fine-grained artifact rules.
|
||||
'artifacts':
|
||||
@@ -98,8 +136,12 @@
|
||||
|
||||
set -e -f -u -x
|
||||
|
||||
COMMIT="${bamboo.repository.revision.number}"
|
||||
export COMMIT
|
||||
readonly COMMIT
|
||||
|
||||
# Explicitly checkout the revision that we need.
|
||||
git checkout "${bamboo.repository.revision.number}"
|
||||
git checkout "$COMMIT"
|
||||
|
||||
# Install Qemu, create builder.
|
||||
docker version -f '{{ .Server.Experimental }}'
|
||||
@@ -119,12 +161,13 @@
|
||||
docker info
|
||||
|
||||
# Prepare and push the build.
|
||||
make\
|
||||
env\
|
||||
CHANNEL="${bamboo.channel}"\
|
||||
DIST_DIR='dist'\
|
||||
DOCKER_IMAGE_NAME='adguard/adguardhome'\
|
||||
DOCKER_OUTPUT="type=image,name=adguard/adguardhome,push=true"\
|
||||
VERBOSE='1'\
|
||||
build-docker
|
||||
sh ./scripts/make/build-docker.sh
|
||||
'environment':
|
||||
DOCKER_CLI_EXPERIMENTAL=enabled
|
||||
'final-tasks':
|
||||
@@ -132,7 +175,7 @@
|
||||
'requirements':
|
||||
- 'adg-docker': 'true'
|
||||
|
||||
'Publish to static.adguard.com':
|
||||
'Publish to static storage':
|
||||
'key': 'PUB'
|
||||
'other':
|
||||
'clean-working-dir': true
|
||||
@@ -185,28 +228,28 @@
|
||||
|
||||
channel="${bamboo.channel}"
|
||||
readonly channel
|
||||
|
||||
case "$channel"
|
||||
in
|
||||
('release')
|
||||
snapchannel='candidate'
|
||||
;;
|
||||
snapchannel='candidate'
|
||||
;;
|
||||
('beta')
|
||||
snapchannel='beta'
|
||||
;;
|
||||
snapchannel='beta'
|
||||
;;
|
||||
('edge')
|
||||
snapchannel='edge'
|
||||
;;
|
||||
snapchannel='edge'
|
||||
;;
|
||||
(*)
|
||||
echo "invalid channel '$channel'"
|
||||
exit 1
|
||||
;;
|
||||
echo "invalid channel '$channel'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
env\
|
||||
SNAPCRAFT_CHANNEL="$snapchannel"\
|
||||
SNAPCRAFT_EMAIL="${bamboo.snapcraftEmail}"\
|
||||
SNAPCRAFT_MACAROON="${bamboo.snapcraftMacaroonPassword}"\
|
||||
SNAPCRAFT_UBUNTU_DISCHARGE="${bamboo.snapcraftUbuntuDischargePassword}"\
|
||||
SNAPCRAFT_STORE_CREDENTIALS="${bamboo.snapcraftMacaroonPassword}"\
|
||||
../bamboo-deploy-publisher/deploy.sh adguard-home-snap
|
||||
'final-tasks':
|
||||
- 'clean'
|
||||
@@ -231,12 +274,14 @@
|
||||
|
||||
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"
|
||||
channel="${bamboo.channel}"
|
||||
readonly channel
|
||||
|
||||
exit 0
|
||||
if [ "$channel" != 'release' ] && [ "${channel}" != 'beta' ]
|
||||
then
|
||||
echo "don't publish to GitHub Releases for this channel"
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
cd ./dist/
|
||||
@@ -285,7 +330,7 @@
|
||||
# need to build a few of these.
|
||||
'variables':
|
||||
'channel': 'beta'
|
||||
'dockerGo': 'adguard/golang-ubuntu:4.4'
|
||||
'dockerGo': 'adguard/golang-ubuntu:6.7'
|
||||
# release-vX.Y.Z branches are the branches from which the actual final release
|
||||
# is built.
|
||||
- '^release-v[0-9]+\.[0-9]+\.[0-9]+':
|
||||
@@ -300,4 +345,4 @@
|
||||
# are the ones that actually get released.
|
||||
'variables':
|
||||
'channel': 'release'
|
||||
'dockerGo': 'adguard/golang-ubuntu:4.4'
|
||||
'dockerGo': 'adguard/golang-ubuntu:6.7'
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
'key': 'AHBRTSPECS'
|
||||
'name': 'AdGuard Home - Build and run tests'
|
||||
'variables':
|
||||
'dockerGo': 'adguard/golang-ubuntu:4.4'
|
||||
'dockerGo': 'adguard/golang-ubuntu:6.7'
|
||||
|
||||
'stages':
|
||||
- 'Tests':
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Keep this file non-hidden for Go's embedding to work.
|
||||
2
client/dev.eslintrc
vendored
2
client/dev.eslintrc
vendored
@@ -3,4 +3,4 @@
|
||||
"rules": {
|
||||
"no-debugger":"warn",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,11 +12,40 @@
|
||||
<link rel="mask-icon" href="assets/safari-pinned-tab.svg" color="#67B279">
|
||||
<link rel="icon" type="image/png" href="assets/favicon.png" sizes="48x48">
|
||||
<title>AdGuard Home</title>
|
||||
<style>
|
||||
.wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
[data-theme="DARK"] .wrapper {
|
||||
background-color: #f5f7fb;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
You need to enable JavaScript to run this app.
|
||||
</noscript>
|
||||
<div id="root"></div>
|
||||
<div id="root">
|
||||
<div class="wrapper"></div>
|
||||
</div>
|
||||
<script>
|
||||
(function() {
|
||||
var LOCAL_STORAGE_THEME_KEY = 'account_theme';
|
||||
var theme = 'light';
|
||||
|
||||
try {
|
||||
theme = window.localStorage.getItem(LOCAL_STORAGE_THEME_KEY);
|
||||
} catch(e) {
|
||||
console.error(e);
|
||||
}
|
||||
|
||||
document.body.dataset.theme = theme;
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -17,5 +17,12 @@
|
||||
You need to enable JavaScript to run this app.
|
||||
</noscript>
|
||||
<div id="root"></div>
|
||||
<script>
|
||||
(function() {
|
||||
var prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
var currentTheme = prefersDark ? 'dark' : 'light';
|
||||
document.body.dataset.theme = currentTheme;
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
640
client/src/__locales/ar.json
Normal file
640
client/src/__locales/ar.json
Normal file
@@ -0,0 +1,640 @@
|
||||
{
|
||||
"client_settings": "إعدادات العميل",
|
||||
"example_upstream_reserved": "يمكنك تحديد <0> DNS upstream لنطاق معين (نطاقات) </0>",
|
||||
"example_upstream_comment": "يمكنك تحديد تعليق",
|
||||
"upstream_parallel": "استخدام الاستعلامات المتوازية لتسريع الحل عن طريق الاستعلام في وقت واحد عن جميع خوادم المنبع",
|
||||
"parallel_requests": "طلبات موازية",
|
||||
"load_balancing": "توزيع الحمل",
|
||||
"load_balancing_desc": "الاستعلام عن خادم واحد في كل مرة سيستخدم AdGuard الرئيسية الخوارزمية العشوائية الموزونة لاختيار الخادم بحيث يتم استخدام أسرع خادم في كثير من الأحيان",
|
||||
"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\" ، باستخدام DNS العكسي. في حالة عدم التعيين ، يستخدم AdGuard Home عناوين محللات DNS الافتراضية لنظام التشغيل الخاص بك باستثناء عناوين AdGuard Home نفسها.",
|
||||
"local_ptr_default_resolver": "بشكل افتراضي ، يستخدم AdGuard Home محللات DNS العكسية التالية: {{ip}}.",
|
||||
"local_ptr_no_default_resolver": "لم يتمكن AdGuard Home من تحديد محللات DNS العكسية المناسبة لهذا النظام.",
|
||||
"local_ptr_placeholder": "أدخل عنوان خادم واحد لكل سطر",
|
||||
"resolve_clients_title": "تفعيل التحليل العكسي لعناوين IP للعملاء",
|
||||
"resolve_clients_desc": "حل عكسيًا لعناوين IP للعملاء في أسماء مضيفيهم عن طريق إرسال استعلامات PTR إلى أدوات الحل المقابلة (خوادم DNS الخاصة للعملاء المحليين ، والخوادم الأولية للعملاء الذين لديهم عناوين IP عامة).",
|
||||
"use_private_ptr_resolvers_title": "استخدم محللات DNS العكسية الخاصة",
|
||||
"use_private_ptr_resolvers_desc": "قم بإجراء عمليات بحث DNS عكسية عن العناوين التي يتم تقديمها محليًا باستخدام هذه الخوادم الأولية. في حالة التعطيل ، يستجيب AdGuard Home مع NXDOMAIN لجميع طلبات PTR هذه باستثناء العملاء المعروفين من DHCP و / etc / hosts وما إلى ذلك.",
|
||||
"check_dhcp_servers": "تحقق من خوادم DHCP",
|
||||
"save_config": "حفظ الإعدادات",
|
||||
"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 نشطة على الشبكة. ومع ذلك ، نشجعك على إعادة التحقق يدويًا لأن اختبارنا التلقائي في الوقت الحالي لا يوفر ضمانًا بنسبة 100٪.",
|
||||
"dhcp_found": "تم العثور على خادم DHCP نشط على الشبكة. وبالتالي لا ينصح بتفعيل خادم DHCP المدمج.",
|
||||
"dhcp_leases": "عقود إيجار DHCP",
|
||||
"dhcp_static_leases": "إيجارات DHCP الثابتة",
|
||||
"dhcp_leases_not_found": "لم يتم العثور على عقود إيجار 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_ip4_gateway_format": "عنوان IPv4 غير صالح للبوابة",
|
||||
"form_error_ip6_format": "عنوان IPv6 غير صالح",
|
||||
"form_error_ip_format": "عنوان IP غير صحيح",
|
||||
"form_error_mac_format": "عنوان MAC غير صالح",
|
||||
"form_error_client_id_format": "يجب أن يحتوي معرف العميل على الأرقام والأحرف الصغيرة والواصلات فقط",
|
||||
"form_error_server_name": "اسم الخادم غير صالح",
|
||||
"form_error_subnet": "لا تحتوي الشبكة الفرعية \"{{cidr}}\" على عنوان IP \"{{ip}}\"",
|
||||
"form_error_positive": "يجب أن يكون أكبر من 0",
|
||||
"form_error_gateway_ip": "لا يمكن الحصول على عنوان IP الخاص بالبوابة",
|
||||
"out_of_range_error": "يجب أن يكون خارج النطاق \"{{start}}\" - \"{{end}}\"",
|
||||
"lower_range_start_error": "يجب أن يكون أقل من نطاق البداية",
|
||||
"greater_range_start_error": "يجب أن يكون أكبر من نطاق البداية",
|
||||
"subnet_error": "يجب أن تكون العناوين في شبكة فرعية واحدة",
|
||||
"gateway_or_subnet_invalid": "قناع الشبكة الفرعية غير صالح",
|
||||
"dhcp_form_gateway_input": "IP البوابة",
|
||||
"dhcp_form_subnet_input": "قناع الشبكة الفرعية",
|
||||
"dhcp_form_range_title": "مجموعة عناوين IP",
|
||||
"dhcp_form_range_start": "نطاق البداية",
|
||||
"dhcp_form_range_end": "نطاق النهاية",
|
||||
"dhcp_form_lease_title": "مدة تأجير DHCP (بالثواني)",
|
||||
"dhcp_form_lease_input": "مدة الإيجار",
|
||||
"dhcp_interface_select": "حدد واجهة DHCP",
|
||||
"dhcp_hardware_address": "عناوين الأجهزة",
|
||||
"dhcp_ip_addresses": "عناوين الـ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": "يستخدم نظامك عنوان IP الديناميكي للواجهة <0>{{interfaceName}}</0>. من أجل استعمال خادم DHCP ، يجب تعيين عنوان IP ثابت. عنوان IP الحالي الخاص بك هو <0>{{ipAddress}}</0>. إذا ضغطت على زر تفعيل DHCP سنقوم تلقائيًا بتعيين عنوان ال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_leases": "إعادة تعيين كافة عقود الإيجار",
|
||||
"dhcp_reset_leases_confirm": "هل أنت متأكد أنك تريد إعادة تعيين كافة عقود الإيجار؟",
|
||||
"dhcp_reset_leases_success": "إعادة تعيين تأجير DHCP بنجاح",
|
||||
"dhcp_reset": "هل أنت متأكد من أنك تريد إعادة تعيين تكوين DHCP؟",
|
||||
"country": "الدولة",
|
||||
"city": "المدينة",
|
||||
"delete_confirm": "هل أنت متأكد من أنك تريد حذف \"{{key}}\"؟",
|
||||
"form_enter_hostname": "أدخل اسم الhostname",
|
||||
"error_details": "مزيد من التفاصيل حول الخطأ",
|
||||
"response_details": "تفاصيل الاستجابة",
|
||||
"request_details": "تفاصيل الطلب",
|
||||
"client_details": "تفاصيل العميل",
|
||||
"details": "التفاصيل",
|
||||
"back": "رجوع",
|
||||
"dashboard": "لوحة القيادة",
|
||||
"settings": "الإعدادات",
|
||||
"filters": "الفلاتر",
|
||||
"filter": "فلتر",
|
||||
"query_log": "سجل الQuery",
|
||||
"compact": "المدمج",
|
||||
"nothing_found": "لم يتم العثور علي شيء...",
|
||||
"faq": "أسئلة مكررة",
|
||||
"version": "الإصدار",
|
||||
"address": "العناوين",
|
||||
"protocol": "البروتوكول",
|
||||
"on": "ON",
|
||||
"off": "OFF",
|
||||
"copyright": "حقوق النشر",
|
||||
"homepage": "الصفحة الرئيسية",
|
||||
"report_an_issue": "الإبلاغ عن مشكلة",
|
||||
"privacy_policy": "سياسة الخصوصية",
|
||||
"enable_protection": "تفعيل الحماية",
|
||||
"enabled_protection": "الحماية مفعلة",
|
||||
"disable_protection": "تعطيل الحماية",
|
||||
"disabled_protection": "الحماية غير مفعلة",
|
||||
"refresh_statics": "تحيين الإحصائيات",
|
||||
"dns_query": "DNS Queries",
|
||||
"blocked_by": "<0>تم حظره بواسطة الفلاتر</0>",
|
||||
"stats_malware_phishing": "حسر البرامج الضارة / والتصيّد",
|
||||
"stats_adult": "حظر مواقع الويب الخاصة بالبالغين",
|
||||
"stats_query_domain": "اعلى النطاقات التي تم الاستعلام عنها",
|
||||
"for_last_24_hours": "لأخر 24 ساعة",
|
||||
"for_last_days": "لآخر {{value}} يوم",
|
||||
"for_last_days_plural": "لآخر {{count}} ايام",
|
||||
"stats_disabled": "تم تعطيل الإحصائيات. يمكنك تشغيله من <0> صفحة الإعدادات </0>.",
|
||||
"stats_disabled_short": "تم تعطيل الإحصائيات",
|
||||
"no_domains_found": "لم يتم العثور على النطاق",
|
||||
"requests_count": "عدد الطلبات",
|
||||
"top_blocked_domains": "اعلى الدومينات المحظورة",
|
||||
"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 المحظورة بواسطة فلاتر adblock وقوائم حظر المضيفين",
|
||||
"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": "حظر النطاقات باستخدام عوامل التصفية وملفات المضيفين",
|
||||
"filters_block_toggle_hint": "يمكنك إعداد قواعد حظر في <a>المرشحات</a> اعدادات.",
|
||||
"use_adguard_browsing_sec": "استخدم خدمة الويب الأمنية لتصفح AdGuard",
|
||||
"use_adguard_browsing_sec_hint": "سيتحقق AdGuard Home مما إذا كان النطاق محظورًا بواسطة خدمة الويب الخاصة بأمان التصفح. سيستخدم واجهة برمجة تطبيقات بحث صديقة للخصوصية لإجراء الفحص: يتم إرسال بادئة قصيرة فقط من تجزئة اسم المجال SHA256 إلى الخادم.",
|
||||
"use_adguard_parental": "استخدام خدمة AdGuard للرقابة الأبوية على الويب",
|
||||
"use_adguard_parental_hint": "سيتحقق AdGuard Home مما إذا كان النطاق يحتوي على محتوى للبالغين. إنه يستخدم نفس واجهة برمجة التطبيقات الصديقة للخصوصية مثل خدمة الويب الأمنية للتصفح.",
|
||||
"enforce_safe_search": "استخدم البحث الآمن",
|
||||
"enforce_save_search_hint": "سيفرض AdGuard Home البحث الآمن في محركات البحث التالية: Google وYouTube وBing وDuckDuckGo وYandex وPixabay.",
|
||||
"no_servers_specified": "لم يتم تحديد خوادم",
|
||||
"general_settings": "الإعدادات العامة",
|
||||
"dns_settings": "إعدادات الـ DNS",
|
||||
"dns_blocklists": "قوائم حظر DNS",
|
||||
"dns_allowlists": "قوائم السماح لـ DNS",
|
||||
"dns_blocklists_desc": "سيقوم AdGuard Home بحظر النطاقات المطابقة لقوائم الحظر",
|
||||
"dns_allowlists_desc": "سيتم السماح بالنطاقات من قوائم DNS المسموحة حتى لو كانت في أي من قوائم الحظر",
|
||||
"custom_filtering_rules": "قواعد التصفية المخصصة",
|
||||
"encryption_settings": "إعدادات التعمية",
|
||||
"dhcp_settings": "إعدادات DHCP",
|
||||
"upstream_dns": "خادم DNS لـ Upstream",
|
||||
"upstream_dns_help": "أدخل عنوان خادم واحد في كل سطر. <a>تعرف على المزيد</a> حول تكوين خوادم DNS الأولية.",
|
||||
"upstream_dns_configured_in_file": "تم اعداده في {{path}}",
|
||||
"test_upstream_btn": "اختبار upstream",
|
||||
"upstreams": "Upstreams",
|
||||
"apply_btn": "تطبيق",
|
||||
"disabled_filtering_toast": "تم تعطيل الفلترة",
|
||||
"enabled_filtering_toast": "تم تمكين الفلترة",
|
||||
"disabled_safe_browsing_toast": "تم تعطيل التصفح الآمن",
|
||||
"enabled_safe_browsing_toast": "تم تمكين التصفح الآمن",
|
||||
"disabled_parental_toast": "تعطيل الرقابة الأبوية",
|
||||
"enabled_parental_toast": "تفعيل الرقابة الأبوية",
|
||||
"disabled_safe_search_toast": "تعطيل البحث الآمن",
|
||||
"enabled_save_search_toast": "تفعيل البحث الآمن",
|
||||
"enabled_table_header": "تمكين",
|
||||
"name_table_header": "الاسم",
|
||||
"list_url_table_header": "قائمة الروابط",
|
||||
"rules_count_table_header": "عدد القواعد",
|
||||
"last_time_updated_table_header": "آخر تحديث",
|
||||
"actions_table_header": "الإجراءات",
|
||||
"request_table_header": "طلب",
|
||||
"edit_table_action": "تحرير",
|
||||
"delete_table_action": "حذف",
|
||||
"elapsed": "المنقضي",
|
||||
"filters_and_hosts_hint": "يفهم AdGuard Home قواعد حظر الإعلانات الاساسية وملفات الهوست.",
|
||||
"no_blocklist_added": "لم يتم إضافة قوائم الحظر",
|
||||
"no_whitelist_added": "لم تتم إضافة قوائم السماح",
|
||||
"add_blocklist": "إضافة قائمة الحظر",
|
||||
"add_allowlist": "إضافة قائمة السماح",
|
||||
"cancel_btn": "إلغاء",
|
||||
"enter_name_hint": "أدخل الاسم",
|
||||
"enter_url_or_path_hint": "إدخال عنوان URL أو مسار مطلق للقائمة",
|
||||
"check_updates_btn": "تحقق من وجود تحديثات",
|
||||
"new_blocklist": "قائمة حظر جديدة",
|
||||
"new_allowlist": "قائمة السماح الجديدة",
|
||||
"edit_blocklist": "تحرير قائمة الحظر",
|
||||
"edit_allowlist": "تحرير قائمة السماح",
|
||||
"choose_blocklist": "اختر قوائم الحظر",
|
||||
"choose_allowlist": "اختر قوائم السماح",
|
||||
"enter_valid_blocklist": "إدخال عنوان URL صالح إلى قائمة الحظر",
|
||||
"enter_valid_allowlist": "أدخل عنوان URL صالحًا لقائمة السماح",
|
||||
"form_error_url_format": "تنسيق رابط غير صالح",
|
||||
"form_error_url_or_path_format": "عنوان URL أو المسار المطلق للقائمة غير صالح",
|
||||
"custom_filter_rules": "قواعد التصفية المخصصة",
|
||||
"custom_filter_rules_hint": "أدخل قاعدة واحدة على السطر يمكنك استخدام قواعد adblock أو بناء جملة ملفات المضيفين",
|
||||
"system_host_files": "ملفات الهوست للنظام",
|
||||
"examples_title": "أمثلة",
|
||||
"example_meaning_filter_block": "منع الوصول إلى نطاق example.org وجميع نطاقاته الفرعية",
|
||||
"example_meaning_filter_whitelist": "إلغاء حظر الوصول إلى نطاق example.org وجميع نطاقاته الفرعية",
|
||||
"example_meaning_host_block": "الرد ب 127.0.0.1 على example.org (ولكن ليس لنطاقاته الفرعية);",
|
||||
"example_comment": "! ها هو التعليق.",
|
||||
"example_comment_meaning": "فقط تعليق;",
|
||||
"example_comment_hash": "# تعليق أيضًا",
|
||||
"example_regex_meaning": "منع الوصول إلى النطاقات المطابقة للتعبير العادي المحدد.",
|
||||
"example_upstream_regular": "regular DNS (over UDP);",
|
||||
"example_upstream_regular_port": "DNS عادي (عبر UDP ، مع المنفذ) ؛",
|
||||
"example_upstream_udp": "regular DNS (over UDP, hostname);",
|
||||
"example_upstream_dot": "مشفر<0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "مشفر <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doq": "encrypted <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS Stamps</0> for <1>DNSCrypt</1> or <2>DNS-over-HTTPS</2> resolvers;",
|
||||
"example_upstream_tcp": "regular DNS (over TCP);",
|
||||
"example_upstream_tcp_port": "DNS عادي (عبر TCP ، مع منفذ) ؛",
|
||||
"example_upstream_tcp_hostname": "regular DNS (over TCP, hostname);",
|
||||
"all_lists_up_to_date_toast": "جميع القوائم محدثة بالفعل",
|
||||
"updated_upstream_dns_toast": "تم حفظ خوادم Upstream بنجاح",
|
||||
"dns_test_ok_toast": "تعمل خوادم DNS المحددة بشكل صحيح",
|
||||
"dns_test_not_ok_toast": "خادم \"{{key}}\": لا يمكن استخدامه يرجى التحقق من كتابته بشكل صحيح",
|
||||
"dns_test_warning_toast": "المنبع \"{{key}}\" لا يستجيب لطلبات الاختبار وقد لا يعمل بشكل صحيح",
|
||||
"unblock": "إلغاء الحظر",
|
||||
"block": "حظر",
|
||||
"disallow_this_client": "منع هذا العميل",
|
||||
"allow_this_client": "السماح لهذا العميل",
|
||||
"block_for_this_client_only": "احجب هذا العميل فقط",
|
||||
"unblock_for_this_client_only": "إلغاء حجب هذا العميل فقط",
|
||||
"time_table_header": "وقت",
|
||||
"date": "التاريخ",
|
||||
"domain_name_table_header": "اسم النطاق",
|
||||
"domain_or_client": "الدومين أو العميل",
|
||||
"type_table_header": "النوع",
|
||||
"response_table_header": "استجابة",
|
||||
"response_code": "كود الاستجابة",
|
||||
"client_table_header": "عميل",
|
||||
"empty_response_status": "فارغ",
|
||||
"show_all_filter_type": "إظهار الكل",
|
||||
"show_filtered_type": "إظهار ماتمت تصفيته",
|
||||
"no_logs_found": "لم يتم العثور على سجلات",
|
||||
"refresh_btn": "تحديث",
|
||||
"previous_btn": "السابق",
|
||||
"next_btn": "التالي",
|
||||
"loading_table_status": "جار التحميل...",
|
||||
"page_table_footer_text": "الصفحة",
|
||||
"rows_table_footer_text": "صفوف",
|
||||
"updated_custom_filtering_toast": "تحديث قواعد الفلترة المخصصة",
|
||||
"rule_removed_from_custom_filtering_toast": "تم إزالة قاعدة من قواعد الفلترة المخصصة: {{rule}}",
|
||||
"rule_added_to_custom_filtering_toast": "تم إضافة إلى قواعد الفلترة المخصصة: {{rule}}",
|
||||
"query_log_response_status": "الحالات: {{value}}",
|
||||
"query_log_filtered": "تم الفلترة بواسطة {{filter}}",
|
||||
"query_log_confirm_clear": "هل أنت متأكد من أنك تريد محو كامل سجل التصفية؟",
|
||||
"query_log_cleared": "تم مسح سجل الاستعلام بنجاح",
|
||||
"query_log_updated": "تم تحديث سجل الاستعلام بنجاح",
|
||||
"query_log_clear": "مسح سجلات الاستعلام",
|
||||
"query_log_retention": "الاحتفاظ بسجلات الاستعلام",
|
||||
"query_log_enable": "تمكين السجل",
|
||||
"query_log_configuration": "تكوين السجلات",
|
||||
"query_log_disabled": "سجل الاستعلام معطل ويمكن تهيئته من<0>الاعدادات</0>",
|
||||
"query_log_strict_search": "استخدم علامات الاقتباس المزدوجة للبحث الدقيق",
|
||||
"query_log_retention_confirm": "هل أنت متأكد من أنك تريد تغيير الاحتفاظ بسجل الاستعلام؟ إذا قمت بتقليل قيمة الفاصل الزمني سيتم فقدان بعض البيانات",
|
||||
"anonymize_client_ip": "إخفاء عنوان IP العميل",
|
||||
"anonymize_client_ip_desc": "لا تقم بحفظ كامل عنوان IP العميل في السجلات والإحصائيات",
|
||||
"dns_config": "إعداد خادم DNS",
|
||||
"dns_cache_config": "ضبط الملفات المؤقتة لـ DNS",
|
||||
"dns_cache_config_desc": "هنا تستطيع ضبط اعدادات الـ DNS وملفاته",
|
||||
"blocking_mode": "وضع الحجب",
|
||||
"default": "إفتراضي",
|
||||
"nxdomain": "NXDOMAIN",
|
||||
"refused": "مرفوض",
|
||||
"null_ip": "عنوان IP فارغ",
|
||||
"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": "عنوان العميل الشخصي",
|
||||
"client_id_placeholder": "ادخل عنوان العميل الشخصي",
|
||||
"client_id_desc": "يمكن تحديد هوية العميل. اعرف المزيد عن كيفية تحديد هوية العملاء <a> هنا</a>.",
|
||||
"download_mobileconfig_doh": "حمّل .mobileconfig for DNS-over-HTTPS",
|
||||
"download_mobileconfig_dot": "حمل .mobileconfig for DNS-over-TLS",
|
||||
"download_mobileconfig": "حمّل ملف الإعدادات",
|
||||
"plain_dns": "عنوان DNS العادي",
|
||||
"form_enter_rate_limit": "ادخل حد التقييم",
|
||||
"rate_limit": "حدود التقييم",
|
||||
"edns_enable": "فعل EDNS client subnet",
|
||||
"edns_cs_desc": "أضف EDNS الشبكة الفرعية للعميل (ECS) إلى الطلبات الأولية وقم بتسجيل القيم المرسلة من قبل العملاء في سجل الاستعلام.",
|
||||
"rate_limit_desc": "عدد الطلبات في الثانية المسموح بها لكل عميل. جعله على 0 يعني عدم وجود حد.",
|
||||
"blocking_ipv4_desc": "سيتم إرجاع عنوان IP لطلب محظور",
|
||||
"blocking_ipv6_desc": "سيتم إرجاع عنوان IP لطلب AAAA محظور",
|
||||
"blocking_mode_default": "الافتراضي: الرد بعنوان IP صفري (0.0.0.0 لـ A ؛ :: لـ AAAA) عند حظره بواسطة قاعدة نمط Adblock ؛ الرد بعنوان IP المحدد في القاعدة عند حظره بواسطة / etc / hosts-style rule",
|
||||
"blocking_mode_refused": "مرفوض: رد برمز مرفوض",
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: الرد باستخدام رمز NXDOMAIN",
|
||||
"blocking_mode_null_ip": "IP Null: الاستجابة بعنوان IP صفري (0.0.0.0 لـ A ؛ :: لـ AAAA)",
|
||||
"blocking_mode_custom_ip": "استجابة IP مخصصة بعنوان IP تم تعيينه يدويًا",
|
||||
"theme_light": "فاتح",
|
||||
"theme_dark": "ليلي",
|
||||
"upstream_dns_client_desc": "إذا احتفظت بهذا الحقل فارغًا ، فسيستخدم AdGuard Home الخوادم التي تم تكوينها في<0>DNS إعدادات</0>.",
|
||||
"tracker_source": "مصدر المتعقب",
|
||||
"source_label": "المصدر",
|
||||
"found_in_known_domain_db": "تم العثور عليه في قاعدة بيانات دومينات معروفة.",
|
||||
"category_label": "الفئة",
|
||||
"rule_label": "قواعد",
|
||||
"list_label": "قائمه",
|
||||
"unknown_filter": "فلتر غير معروف {{filterId}}",
|
||||
"known_tracker": "متعقب معروف",
|
||||
"install_welcome_title": "مرحبًا بك في AdGuard Home!",
|
||||
"install_welcome_desc": "AdGuard Home هو إعلان ومتتبع على مستوى الشبكة يمنع خادم DNS. الغرض منه هو السماح لك بالتحكم في شبكتك بأكملها وجميع أجهزتك، ولا يتطلب استخدام برنامج من جانب العميل.",
|
||||
"install_settings_title": "واجهة ويب المسؤول",
|
||||
"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": "جميع الواجهات",
|
||||
"install_auth_title": "المصادقة",
|
||||
"install_auth_desc": "يجب إعداد مصادقة كلمة المرور لواجهة ويب مسؤول AdGuard Home. في حال كان AdGuard Home لا يمكن الوصول إليه إلا في شبكتك المحلية ، فلا يزال من المهم حمايته من الوصول غير المقيد.",
|
||||
"install_auth_username": "اسم المستخدم",
|
||||
"install_auth_password": "الكلمة السرية",
|
||||
"install_auth_confirm": "تاكيد كلمه المرور",
|
||||
"install_auth_username_enter": "أدخل اسم المستخدم",
|
||||
"install_auth_password_enter": "أدخل كلمة المرور",
|
||||
"install_step": "خطوة",
|
||||
"install_devices_title": "قم بإعداد أجهزتك",
|
||||
"install_devices_desc": "لبدء استخدام AdGuard Home، تحتاج إلى إعداد أجهزتك لاستخدامها.",
|
||||
"install_submit_title": "تهانينا!",
|
||||
"install_submit_desc": "انتهى إجراء الإعداد وأنت على استعداد لبدء استخدام AdGuard Home",
|
||||
"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. ابحث عن أحرف DNS بجوار الحقل الذي يسمح بمجموعتين أو ثلاث مجموعات من الأرقام ، كل واحدة مقسمة إلى أربع مجموعات من واحد إلى ثلاثة أرقام.",
|
||||
"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": "ابحث عن \"Internet Protocol Version 4 (TCP / IPv4)\" (أو ، لـ IPv6 ، \"Internet Protocol Version 6 (TCP / IPv6)\") في القائمة ، حدده ثم انقر فوق خصائص مرة أخرى.",
|
||||
"install_devices_windows_list_6": "اختر \"استخدام عناوين خادم DNS التالية\" وأدخل عناوين خادم AdGuard Home.",
|
||||
"install_devices_macos_list_1": "انقر فوق أيقونة Apple وانتقل إلى تفضيلات النظام.",
|
||||
"install_devices_macos_list_2": "اضغط على الشبكة.",
|
||||
"install_devices_macos_list_3": "حدد الاتصال الأول في قائمتك وانقر فوق خيارات متقدمة.",
|
||||
"install_devices_macos_list_4": "حدد علامة التبويب DNS وأدخل عناوين خادم AdGuard Home.",
|
||||
"install_devices_android_list_1": "من الشاشة الرئيسية لقائمة Android ، انقر فوق الإعدادات.",
|
||||
"install_devices_android_list_2": "اضغط على Wi-Fi في القائمة. ستظهر الشاشة التي تسرد جميع الشبكات المتاحة (من المستحيل تعيين DNS مخصص لاتصال المحمول).",
|
||||
"install_devices_android_list_3": "اضغط لفترة طويلة على الشبكة التي تتصل بها ثم اضغط على تعديل الشبكة",
|
||||
"install_devices_android_list_4": "في بعض الأجهزة قد تحتاج إلى تحديد المربع المتقدم لرؤية المزيد من الإعدادات لضبط إعدادات DNS لنظام اندرويد ستحتاج إلى تبديل إعدادات IP من DHCP إلى ثابت.",
|
||||
"install_devices_android_list_5": "قم بتغيير قيم DNS 1 و DNS 2 المعينة لعناوين خادم AdGuard Home",
|
||||
"install_devices_ios_list_1": "من الشاشة الرئيسية انقر فوق الإعدادات",
|
||||
"install_devices_ios_list_2": "اختر Wi-Fi في القائمة اليسرى (من المستحيل ضبط الـ DNS لشبكات الجوال).",
|
||||
"install_devices_ios_list_3": "اضغط على اسم الشبكة النشطة حاليًا.",
|
||||
"install_devices_ios_list_4": "في حقل DNS ، أدخل عناوين خادم AdGuard Home.",
|
||||
"get_started": "أبدأ",
|
||||
"next": "التالي",
|
||||
"open_dashboard": "افتح لوحة التحكم",
|
||||
"install_saved": "تم الحفظ بنجاح",
|
||||
"encryption_title": "التعمية",
|
||||
"encryption_desc": "دعم التشفير (HTTPS / TLS) لكل من DNS وواجهة ويب المسؤول",
|
||||
"encryption_config_saved": "تم حفظ اعدادات التشفير",
|
||||
"encryption_server": "اسم الخادم",
|
||||
"encryption_server_enter": "ادخل عنوان النطاق الخاص بك",
|
||||
"encryption_server_desc": "من أجل استخدام HTTPS ، تحتاج إلى إدخال اسم الخادم الذي يتطابق مع شهادة SSL أو شهادة البدل. إذا لم يتم تعيين الحقل ، فسيقبل اتصالات TLS لأي مجال.",
|
||||
"encryption_redirect": "إعادة التوجيه إلى HTTPS تلقائيًا",
|
||||
"encryption_redirect_desc": "إذا تم تحديده ، فسيقوم AdGuard Home بإعادة توجيهك تلقائيًا من عناوين HTTP إلى عناوين HTTPS.",
|
||||
"encryption_https": "منفذ HTTPS",
|
||||
"encryption_https_desc": "إذا تم تكوين منفذ HTTPS ، فسيتم الوصول إلى واجهة مشرف AdGuard Home عبر HTTPS ، وستوفر أيضًا DNS-over-HTTPS على موقع '/dns-query'.",
|
||||
"encryption_dot": "منفذ DNS-over-TLS",
|
||||
"encryption_dot_desc": "إذا تم ضبط هذا المنفذ ، فسيقوم AdGuard Home بتشغيل خادم DNS-over-TLS على هذا المنفذ.",
|
||||
"encryption_doq": "DNS-over-QUIC port",
|
||||
"encryption_doq_desc": "إذا تم ضبط هذا المنفذ، فسيقوم AdGuard Home بتشغيل خادم DNS-over-QUIC على هذا المنفذ.",
|
||||
"encryption_certificates": "الشهادات",
|
||||
"encryption_certificates_desc": "من أجل استخدام التشفير ، تحتاج إلى تقديم سلسلة شهادات SSL صالحة لنطاقك. يمكنك الحصول على شهادة مجانية على <0>{{link}}</0> أو يمكنك شرائها من أحد المراجع المصدقة الموثوقة.",
|
||||
"encryption_certificates_input": "انسخ / الصق الشهادات المشفرة PEM هنا.",
|
||||
"encryption_status": "الحالة",
|
||||
"encryption_expire": "يتنهي في",
|
||||
"encryption_key": "مفتاح خاص",
|
||||
"encryption_key_input": "انسخ / الصق مفتاحك الخاص المشفر بـ PEM لشهادتك هنا",
|
||||
"encryption_enable": "تمكين التشفير (HTTPS و DNS-over-HTTPS و DNS-over-TLS)",
|
||||
"encryption_enable_desc": "إذا تم تمكين التشفير فستعمل واجهة مسؤول AdGuard Home عبر HTTPS وسيستمع خادم DNS للطلبات عبر DNS-over-HTTPS و DNS-over-TLS.",
|
||||
"encryption_chain_valid": "سلسلة الشهادات صالحة",
|
||||
"encryption_chain_invalid": "سلسلة الشهادات غير صالحة",
|
||||
"encryption_key_valid": "هذا مفتاح خاص {{type}} صالح",
|
||||
"encryption_key_invalid": "هذا مفتاح خاص {{type}} غير صالح",
|
||||
"encryption_subject": "الموضوع",
|
||||
"encryption_issuer": "المصدر",
|
||||
"encryption_hostnames": "اسم المستضيف",
|
||||
"encryption_reset": "هل أنت متأكد أنك تريد إعادة تعيين إعدادات التشفير؟",
|
||||
"encryption_warning": "تحذير",
|
||||
"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",
|
||||
"down": "تحت",
|
||||
"fix": "يصلح",
|
||||
"dns_providers": "فيما يلي قائمة <0> بموفري DNS المعروفين </0> للاختيار من بينها.",
|
||||
"update_now": "تحديث الآن",
|
||||
"update_failed": "فشل التحديث التلقائي. الرجاء <a> اتباع هذه الخطوات </a> للتحديث يدويًا.",
|
||||
"manual_update": "الرجاء <a> اتباع هذه الخطوات </a> للتحديث يدويًا.",
|
||||
"processing_update": "يُرجى الانتظار ، يتم تحديث صفحة AdGuard الرئيسية",
|
||||
"clients_title": "العملاء الدائمين",
|
||||
"clients_desc": "قم بضبط سجلات العميل الدائمة للأجهزة المتصلة بـ AdGuard Home",
|
||||
"settings_global": "عالمي",
|
||||
"settings_custom": "مخصص",
|
||||
"table_client": "العميل",
|
||||
"table_name": "الاسم",
|
||||
"save_btn": "حفظ",
|
||||
"client_add": "إضافة عميل",
|
||||
"client_new": "عميل جديد",
|
||||
"client_edit": "تعديل العميل",
|
||||
"client_identifier": "المعّرف",
|
||||
"ip_address": "عنوان IP",
|
||||
"client_identifier_desc": "يمكن التعرف على العملاء من خلال عنوان IP أو CIDR أو عنوان MAC أو ClientID (يمكن استخدامه في 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}}\" بنجاح",
|
||||
"clients_not_found": "لم يتم العثور على عملاء",
|
||||
"client_confirm_delete": "هل أنت متأكد من أنك تريد حذف العميل \"{{key}}\"?",
|
||||
"list_confirm_delete": "هل أنت متأكد أنك تريد حذف هذه القائمة؟",
|
||||
"auto_clients_title": "Runtime clients",
|
||||
"auto_clients_desc": "الأجهزة غير المدرجة في قائمة العملاء الدائمين الذين قد لا يزالون يستخدمون AdGuard Home",
|
||||
"access_title": "إعدادات الوصول",
|
||||
"access_desc": "هنا يمكنك ضبط قواعد الوصول لخادم AdGuard Home DNS",
|
||||
"access_allowed_title": "العملاء المسموحين",
|
||||
"access_allowed_desc": "قائمة CIDRs أو عناوين IP أو <a> ClientIDs </a>. إذا كانت هذه القائمة تحتوي على إدخالات ، فسيقبل AdGuard Home الطلبات من هؤلاء العملاء فقط.",
|
||||
"access_disallowed_title": "العملاء غير المسموحين",
|
||||
"access_disallowed_desc": "قائمة CIDRs أو عناوين IP أو <a> ClientIDs </a>. إذا كانت هذه القائمة تحتوي على إدخالات ، فسيقوم AdGuard Home بإسقاط الطلبات من هؤلاء العملاء. يتم تجاهل هذا الحقل إذا كانت هناك إدخالات في العملاء المسموح لهم.",
|
||||
"access_blocked_title": "النطاقات غير المسموح بها",
|
||||
"access_blocked_desc": "لا ينبغي الخلط بينه وبين المرشحات. يسقط AdGuard Home استعلامات DNS المطابقة لهذه المجالات ، ولا تظهر هذه الاستعلامات حتى في سجل الاستعلام. يمكنك تحديد أسماء النطاقات الدقيقة أو أحرف البدل أو قواعد تصفية عناوين URL ، على سبيل المثال \"example.org\" أو \"*.example.org\" أو \"|| example.org ^\" في المقابل.",
|
||||
"access_settings_saved": "تم حفظ إعدادات الوصول بنجاح",
|
||||
"updates_checked": "يتوفر إصدار جديد من AdGuard Home",
|
||||
"updates_version_equal": "AdGuard Home محدث",
|
||||
"check_updates_now": "تحقق من وجود تحديثات الآن",
|
||||
"dns_privacy": "خصوصية DNS",
|
||||
"setup_dns_privacy_1": "<0> DNS-over-TLS: </0> استخدم سلسلة <1> {{address}} </1>.",
|
||||
"setup_dns_privacy_2": "<0> DNS-over-HTTPS: </0> استخدم سلسلة <1> {{address}} </1>.",
|
||||
"setup_dns_privacy_3": "<0> فيما يلي قائمة بالبرامج التي يمكنك استخدامها. </0>",
|
||||
"setup_dns_privacy_4": "على جهاز iOS 14 أو macOS Big Sur ، يمكنك تنزيل ملف \".mobileconfig\" خاص يضيف خوادم <highlight> DNS-over-HTTPS </highlight> أو <highlight> DNS-over-TLS </highlight> إلى إعدادات DNS.",
|
||||
"setup_dns_privacy_android_1": "يدعم Android 9 DNS-over-TLS أصلاً. لتكوينه ، انتقل إلى الإعدادات → الشبكة والإنترنت → متقدم → DNS الخاص وأدخل اسم المجال الخاص بك هناك.",
|
||||
"setup_dns_privacy_android_2": "<0> AdGuard لنظام Android </0> يدعم <1> DNS-over-HTTPS </1> و <1> DNS-over-TLS </1>.",
|
||||
"setup_dns_privacy_android_3": "<0> Intra </0> يضيف دعم <1> DNS-over-HTTPS </1> إلى Android.",
|
||||
"setup_dns_privacy_ios_1": "<0> DNSCloak </0> يدعم <1> DNS-over-HTTPS </1> ، ولكن من أجل تكوينه لاستخدام الخادم الخاص بك ، ستحتاج إلى إنشاء <2> DNS Stamp </2> لذلك.",
|
||||
"setup_dns_privacy_ios_2": "<0> AdGuard لنظام iOS </0> يدعم إعداد <1> DNS-over-HTTPS </1> و <1> DNS-over-TLS </1> الإعداد.",
|
||||
"setup_dns_privacy_other_title": "تطبيقات أخرى",
|
||||
"setup_dns_privacy_other_1": "يمكن أن يكون AdGuard Home نفسه عميل DNS آمنًا على أي نظام أساسي.",
|
||||
"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_ioc_mac": "اعدادات iOS و macOS",
|
||||
"setup_dns_notice": "من أجل استخدام <0> DNS-over-HTTPS </0> أو <1> DNS-over-TLS </1> ، تحتاج إلى <1> تكوين التشفير </1> في إعدادات AdGuard Home.",
|
||||
"rewrite_added": "تمت إضافة إعادة كتابة DNS لـ \"{{key}}\" بنجاح",
|
||||
"rewrite_deleted": "تم حذف إعادة كتابة DNS لـ \"{{key}}\" بنجاح",
|
||||
"rewrite_add": "إضافة إعادة كتابة DNS",
|
||||
"rewrite_not_found": "لم يتم العثور على إعادة كتابة DNS",
|
||||
"rewrite_confirm_delete": "هل أنت متأكد من أنك تريد حذف إعادة كتابة DNS لـ \"{{key}}\"؟",
|
||||
"rewrite_desc": "يسمح بتكوين استجابة DNS المخصصة بسهولة لاسم نطاق معين.",
|
||||
"rewrite_applied": "يتم تطبيق قاعدة إعادة الكتابة",
|
||||
"rewrite_hosts_applied": "أعيد كتابتها بواسطة قاعدة ملف المضيفين",
|
||||
"dns_rewrites": "إعادة كتابة DNS",
|
||||
"form_domain": "أدخل اسم النطاق أو حرف البدل",
|
||||
"form_answer": "أدخل عنوان IP أو اسم النطاق",
|
||||
"form_error_domain_format": "تنسيق النطاق غير صالح",
|
||||
"form_error_answer_format": "تنسيق إجابة غير صالح",
|
||||
"configure": "ضبط",
|
||||
"main_settings": "الاعدادات الرئيسية",
|
||||
"block_services": "حظر خدمات معينة",
|
||||
"blocked_services": "الخوادم المحجوبة",
|
||||
"blocked_services_desc": "يسمح بحجب المواقع والخدمات الشعبية بسرعة.",
|
||||
"blocked_services_saved": "تم حفظ الخوادم المحجوبة بنجاح",
|
||||
"blocked_services_global": "استخدام خدمات الحظر العالمية",
|
||||
"blocked_service": "الخدمات المحجوبة",
|
||||
"block_all": "حجب الكل",
|
||||
"unblock_all": "إلغاء حجب الكل",
|
||||
"encryption_certificate_path": "مسار الشهادة",
|
||||
"encryption_private_key_path": "مسار المفتاح الخاص",
|
||||
"encryption_certificates_source_path": "قم بتعيين مسار ملف الشهادات",
|
||||
"encryption_certificates_source_content": "الصق محتويات الشهادات",
|
||||
"encryption_key_source_path": "قم بتعيين ملف مفتاح خاص",
|
||||
"encryption_key_source_content": "الصق محتويات المفتاح الخاص",
|
||||
"stats_params": "ضبط الاحصائيات",
|
||||
"config_successfully_saved": "تم حفظ الاعدادات بنجاح",
|
||||
"interval_6_hour": "ساعات6",
|
||||
"interval_24_hour": "24 ساعة",
|
||||
"interval_days": "{{count}} يوم",
|
||||
"interval_days_plural": "{{count}} الأيام",
|
||||
"domain": "النطاق",
|
||||
"ecs": "ECS",
|
||||
"punycode": "Punycode",
|
||||
"answer": "الإجابة",
|
||||
"filter_added_successfully": "تم إضافة القائمة بنجاح",
|
||||
"filter_removed_successfully": "تم ازالته من القائمة بنجاح",
|
||||
"filter_updated": "تم تحديث القائمة بنجاح",
|
||||
"statistics_configuration": "ضبط الاحصائيات",
|
||||
"statistics_retention": "الاحتفاظ بالإحصاءات",
|
||||
"statistics_retention_desc": "إذا قمت بتقليل قيمة الفاصل الزمني ، فستفقد بعض البيانات",
|
||||
"statistics_clear": "إعادة تعيين الإحصائيات",
|
||||
"statistics_clear_confirm": "هل أنت متأكد من أنك تريد مسح الإحصاءات؟",
|
||||
"statistics_retention_confirm": "هل أنت متأكد أنك تريد تغيير الاحتفاظ بالإحصاءات؟ إذا قمت بتقليل قيمة الفاصل الزمني ، فستفقد بعض البيانات",
|
||||
"statistics_cleared": "تم مسح الإحصائيات بنجاح",
|
||||
"statistics_enable": "تفعيل الاحصائيات",
|
||||
"interval_hours": "{{count}} ساعة",
|
||||
"interval_hours_plural": "{{count}} ساعات",
|
||||
"filters_configuration": "اضبط الفلاتر",
|
||||
"filters_enable": "تفعيل الفلاتر",
|
||||
"filters_interval": "الفاصل الزمني لتحديث الفلاتر",
|
||||
"disabled": "معطلة",
|
||||
"username_label": "اسم المستخدم",
|
||||
"username_placeholder": "ادخل اسم المستخدم",
|
||||
"password_label": "كلمة المرور",
|
||||
"password_placeholder": "ادخل كلمة المرور",
|
||||
"sign_in": "تسجيل الدخول",
|
||||
"sign_out": "تسجيل الخروج",
|
||||
"forgot_password": "نسيت كلمة المرور؟",
|
||||
"forgot_password_desc": "يرجى اتباع <0> هذه الخطوات </0> لإنشاء كلمة مرور جديدة لحساب المستخدم الخاص بك.",
|
||||
"location": "الموقع",
|
||||
"orgname": "اسم المنظمة",
|
||||
"netname": "اسم الشبكة",
|
||||
"network": "الشبكة",
|
||||
"descr": "الوصف",
|
||||
"whois": "WHOIS",
|
||||
"filtering_rules_learn_more": "<0> اعرف المزيد </0> حول إنشاء قوائم المضيفين الخاصة بك.",
|
||||
"blocked_by_response": "حظر بواسطة CNAME or IP in response",
|
||||
"blocked_by_cname_or_ip": "حظر بواسطة CNAME or IP",
|
||||
"try_again": "حاول مرة أخرى",
|
||||
"domain_desc": "أدخل اسم النطاق أو حرف البدل الذي تريد إعادة كتابته.",
|
||||
"example_rewrite_domain": "أعد كتابة الردود لاسم النطاق هذا فقط.",
|
||||
"example_rewrite_wildcard": "أعد كتابة الردود لجميع النطاقات الفرعية <0> example.org </0>.",
|
||||
"rewrite_ip_address": "عنوان IP: استخدم عنوان IP هذا في استجابة A أو AAAA",
|
||||
"rewrite_domain_name": "اسم النطاق: أضف سجل CNAME",
|
||||
"rewrite_A": "<0> A </0>: قيمة خاصة ، احتفظ بسجلات <0> A </0> من upstream",
|
||||
"rewrite_AAAA": "<0> AAAA </0>: قيمة خاصة ، احتفظ بسجلات <0> AAAA </0> من upstream",
|
||||
"disable_ipv6": "قم بتعطيل تحليل عناوين IPv6",
|
||||
"disable_ipv6_desc": "قم بإسقاط جميع استعلامات DNS لعناوين IPv6 (اكتب AAAA).",
|
||||
"fastest_addr": "أسرع عنوان IP",
|
||||
"fastest_addr_desc": "استعلم عن جميع خوادم DNS وأعد عنوان IP الأسرع بين جميع الاستجابات. يؤدي هذا إلى إبطاء استعلامات DNS حيث يتعين على AdGuard Home انتظار الاستجابات من جميع خوادم DNS ، ولكنه يحسن الاتصال الكلي.",
|
||||
"autofix_warning_text": "إذا قمت بالنقر فوق \"إصلاح\" ، فسيقوم 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 (إعادة تحميل خدمة حل نظام d) </0>",
|
||||
"autofix_warning_result": "نتيجة لذلك ، ستتم معالجة جميع طلبات DNS من نظامك بواسطة AdGuard Home افتراضيًا.",
|
||||
"tags_title": "وسوم",
|
||||
"tags_desc": "يمكنك تحديد العلامات التي تتوافق مع العميل. قم بتضمين العلامات في قواعد التصفية لتطبيقها بدقة أكبر. <0> معرفة المزيد </0>.",
|
||||
"form_select_tags": "حدد علامات العميل",
|
||||
"check_title": "تحقق من الفلترة",
|
||||
"check_desc": "تحقق مما إذا تم فلترة اسم المضيف.",
|
||||
"check": "تحقق",
|
||||
"form_enter_host": "ادخل اسم المضيف",
|
||||
"filtered_custom_rules": "تمت تصفيتها حسب قواعد التصفية المخصصة",
|
||||
"choose_from_list": "اختر من القائمة",
|
||||
"add_custom_list": "أضف قائمة مخصصة",
|
||||
"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}}\" بنجاح",
|
||||
"static_ip": "عنوان IP ثابت",
|
||||
"static_ip_desc": "AdGuard Home هو خادم لذلك يحتاج إلى عنوان IP ثابت ليعمل بشكل صحيح. خلاف ذلك ، في مرحلة ما ، قد يقوم جهاز التوجيه الخاص بك بتعيين عنوان IP مختلف لهذا الجهاز.",
|
||||
"set_static_ip": "قم بتعيين عنوان IP ثابت",
|
||||
"install_static_ok": "أخبار جيدة! تم ضبط عنوان IP الثابت بالفعل",
|
||||
"install_static_error": "لا يمكن لـ AdGuard Home تكوينه تلقائيًا لواجهة الشبكة هذه. الرجاء البحث عن تعليمات حول كيفية القيام بذلك يدويًا.",
|
||||
"install_static_configure": "اكتشف AdGuard Home استخدام عنوان IP الديناميكي <0> {{ip}} </0>. هل تريد تعيينه كعنوان ثابت؟",
|
||||
"confirm_static_ip": "سيقوم AdGuard Home بتهيئة {{ip}} ليكون عنوان IP الثابت الخاص بك. هل تريد المتابعة؟",
|
||||
"list_updated": "قائمة {{count}} محدثة",
|
||||
"list_updated_plural": "قوائم {{count}} محدثة",
|
||||
"dnssec_enable": "تفعيل DNSSEC",
|
||||
"dnssec_enable_desc": "قم بتعيين علامة DNSSEC في استعلامات DNS الواردة وتحقق من النتيجة (مطلوب محلل يدعم DNSSEC).",
|
||||
"validated_with_dnssec": "تم التحقق من صحتها باستخدام DNSSEC",
|
||||
"all_queries": "كافة الاستفسارات",
|
||||
"show_blocked_responses": "حظر",
|
||||
"show_whitelisted_responses": "القائمة البيضاء",
|
||||
"show_processed_responses": "المعالجة",
|
||||
"blocked_safebrowsing": "محظور بواسطة التصفح الآمن",
|
||||
"blocked_adult_websites": "محظور بواسطة الرقابة الأبوية",
|
||||
"blocked_threats": "التهديدات المحظورة",
|
||||
"allowed": "القائمة البيضاء",
|
||||
"filtered": "تمت الفلترة",
|
||||
"rewritten": "أعيدت كتابته",
|
||||
"safe_search": "البحث الأمن",
|
||||
"blocklist": "قائمة الحظر",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "حجم ذاكرة التخزين المؤقت",
|
||||
"cache_size_desc": "حجم ذاكرة التخزين المؤقت لنظام أسماء النطاقات (بالبايت).",
|
||||
"cache_ttl_min_override": "تجاوز الحد الأدنى من مدة البقاء TTL",
|
||||
"cache_ttl_max_override": "تجاوز الحد الاقصى من مدة البقاء TTL",
|
||||
"enter_cache_size": "أدخل حجم ذاكرة التخزين المؤقت (بايت)",
|
||||
"enter_cache_ttl_min_override": "أدخل الحد الأدنى من مدة البقاء (بالثواني)",
|
||||
"enter_cache_ttl_max_override": "أدخل الحد الاقصى من مدة البقاء (بالثواني)",
|
||||
"cache_ttl_min_override_desc": "قم بتمديد قيم فترة البقاء القصيرة (بالثواني) المستلمة من الخادم الرئيسي عند تخزين استجابات DNS مؤقتًا.",
|
||||
"cache_ttl_max_override_desc": "قم بتعيين الحد الأقصى لقيمة الوقت للعيش (بالثواني) للإدخالات في ذاكرة التخزين المؤقت لنظام أسماء النطاقات.",
|
||||
"ttl_cache_validation": "يجب أن يكون الحد الأدنى لتجاوز TTL لذاكرة التخزين المؤقت أقل من أو يساوي الحد الأقصى",
|
||||
"cache_optimistic": "متفائل التخزين المؤقت",
|
||||
"cache_optimistic_desc": "اجعل AdGuard Home يستجيب من ذاكرة التخزين المؤقت حتى عندما تنتهي صلاحية الإدخالات وحاول أيضًا تحديثها.",
|
||||
"filter_category_general": "General",
|
||||
"filter_category_security": "الامان",
|
||||
"filter_category_regional": "إقليمي",
|
||||
"filter_category_other": "أخرى",
|
||||
"filter_category_general_desc": "القوائم التي تمنع التتبع والإعلان على معظم الأجهزة",
|
||||
"filter_category_security_desc": "القوائم المصممة خصيصًا لحظر النطاقات الخبيثة والتصيد الاحتيالي والخداع",
|
||||
"filter_category_regional_desc": "القوائم التي تركز على الإعلانات الإقليمية وخوادم التتبع",
|
||||
"filter_category_other_desc": "قوائم حظر أخرى",
|
||||
"setup_config_to_enable_dhcp_server": "أضبط الاعدادات لتمكين خادم DHCP",
|
||||
"original_response": "الرد الأصلي",
|
||||
"click_to_view_queries": "انقر لعرض الـ queries",
|
||||
"port_53_faq_link": "غالبًا ما يتم احتلال المنفذ 53 بواسطة خدمات \"DNSStubListener\" أو \"حل النظام\". يرجى قراءة <0> هذه التعليمات </0> حول كيفية حل هذه المشكلة.",
|
||||
"adg_will_drop_dns_queries": "سيقوم AdGuard Home بإسقاط جميع استعلامات DNS من هذا العميل.",
|
||||
"filter_allowlist": "تحذير: سيؤدي هذا الإجراء أيضًا إلى استبعاد القاعدة \"{{disallowed_rule}}\" من قائمة العملاء المسموح لهم.",
|
||||
"last_rule_in_allowlist": "لا يمكن منع هذا العميل لأن استبعاد القاعدة \"{{disallowed_rule}}\" سيؤدي إلى تعطيل قائمة \"العملاء المسموح لهم\".",
|
||||
"use_saved_key": "استخدم المفتاح المحفوظ مسبقًا",
|
||||
"parental_control": "الرقابة الابويه",
|
||||
"safe_browsing": "تصفح آمن",
|
||||
"served_from_cache": "{{value}} <i>(يتم تقديمه من ذاكرة التخزين المؤقت)</i>",
|
||||
"form_error_password_length": "يجب أن تتكون كلمة المرور من {{value}} من الأحرف على الأقل",
|
||||
"protection_section_label": "الحماية"
|
||||
}
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Налады DHCP IPv6",
|
||||
"form_error_required": "Абавязковае поле",
|
||||
"form_error_ip4_format": "Няслушны IPv4-адрас",
|
||||
"form_error_ip4_range_start_format": "Няслушны IPv4-адрас пачатку дыяпазону",
|
||||
"form_error_ip4_range_end_format": "Няслушны IPv4-адрас канца дыяпазону",
|
||||
"form_error_ip4_gateway_format": "Няслушны IPv4-адрас шлюза",
|
||||
"form_error_ip6_format": "Няслушны IPv6-адрас",
|
||||
"form_error_ip_format": "Няслушны IP-адрас",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "Няслушнае імя сервера",
|
||||
"form_error_subnet": "Падсетка «{{cidr}}» не ўтрымвае IP-адраса «{{ip}}»",
|
||||
"form_error_positive": "Павінна быць больш 0",
|
||||
"form_error_gateway_ip": "Арэнда не можа мець IP-адрас шлюза",
|
||||
"out_of_range_error": "Павінна быць па-за дыяпазонам «{{start}}»-«{{end}}»",
|
||||
"lower_range_start_error": "Павінна быць менш за пачатак дыяпазону",
|
||||
"greater_range_start_error": "Павінна быць больш за пачатак дыяпазону",
|
||||
"greater_range_end_error": "Павінна быць больш за канец дыяпазону",
|
||||
"subnet_error": "Адрасы павінны быць усярэдзіне адной падсеткі",
|
||||
"gateway_or_subnet_invalid": "Некарэктная маска падсеткі",
|
||||
"dhcp_form_gateway_input": "IP-адрас шлюза",
|
||||
@@ -69,9 +67,9 @@
|
||||
"dhcp_warning": "Калі вы ўсё адно хочаце ўключыць DHCP-сервер, пераканайцеся, што ў сеціве больш няма актыўных DHCP-сервераў. Інакш гэта можа зламаць доступ у сеціва для падлучаных прылад!",
|
||||
"dhcp_error": "AdGuard Home не можа вызначыць, ці ёсць у сетцы іншы актыўны 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_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": "Дадаць статычную арэнду",
|
||||
@@ -81,7 +79,7 @@
|
||||
"dhcp_reset": "Вы ўпэўнены, што хочаце скінуць налады DHCP?",
|
||||
"country": "Краіна",
|
||||
"city": "Горад",
|
||||
"delete_confirm": "Вы ўпэўнены, што хочаце выдаліць \"{{key}}\"?",
|
||||
"delete_confirm": "Вы ўпэўнены, што хочаце выдаліць «{{key}}»?",
|
||||
"form_enter_hostname": "Увядзіце імя хаста",
|
||||
"error_details": "Дэталізацыя памылкі",
|
||||
"response_details": "Дэталі адказу",
|
||||
@@ -114,7 +112,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}} дзень",
|
||||
@@ -132,13 +130,13 @@
|
||||
"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": "Колькасць заблакаваных \"сайтаў для дарослых\"",
|
||||
"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_parental": "Ужывайце модуль Бацькоўскага кантролю AdGuard ",
|
||||
@@ -152,7 +150,7 @@
|
||||
"dns_allowlists": "Белыя спісы DNS",
|
||||
"dns_blocklists_desc": "AdGuard Home будзе блакаваць дамены з чорных спісаў.",
|
||||
"dns_allowlists_desc": "Дамены з белых спісаў DNS будуць дазволены, нават калі яны знаходзяцца ў любым з чорных спісаў.",
|
||||
"custom_filtering_rules": "Карыстацкія правілы фільтрацыі",
|
||||
"custom_filtering_rules": "Карыстальніцкія правілы фільтрацыі",
|
||||
"encryption_settings": "Налады шыфравання",
|
||||
"dhcp_settings": "Налады DHCP",
|
||||
"upstream_dns": "Upstream DNS-серверы",
|
||||
@@ -210,17 +208,21 @@
|
||||
"example_comment_hash": "# І вось так таксама.",
|
||||
"example_regex_meaning": "блакаваць доступ да даменаў, якія адпавядаюць зададзенаму рэгулярнаму выразу.",
|
||||
"example_upstream_regular": "звычайны DNS (наўзверх UDP);",
|
||||
"example_upstream_regular_port": "звычайны DNS (праз UDP, імя хаста);",
|
||||
"example_upstream_udp": "звычайны DNS (праз UDP, імя хаста);",
|
||||
"example_upstream_dot": "зашыфраваны <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "зашыфраваны <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "зашыфраваны DNS-над-HTTPS з прымусовым <0>HTTP/3</0> і без вяртання да HTTP/2 або ніжэй;",
|
||||
"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);",
|
||||
"example_upstream_tcp_port": "звычайны DNS (праз TCP, імя хаста);",
|
||||
"example_upstream_tcp_hostname": "звычайны 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}}»: немагчыма выкарыстоўваць, праверце слушнасць напісання",
|
||||
"dns_test_warning_toast": "Upstream «{{key}}» не адказвае на тэставыя запыты і можа не працаваць належным чынам",
|
||||
"unblock": "Адблакаваць",
|
||||
"block": "Заблакаваць",
|
||||
"disallow_this_client": "Забараніць доступ гэтаму кліенту",
|
||||
@@ -245,7 +247,7 @@
|
||||
"loading_table_status": "Загрузка...",
|
||||
"page_table_footer_text": "Старонка",
|
||||
"rows_table_footer_text": "радкоў",
|
||||
"updated_custom_filtering_toast": "Занесены змены ў карыстацкія правілы",
|
||||
"updated_custom_filtering_toast": "Карыстальніцкія правілы паспяхова захаваны",
|
||||
"rule_removed_from_custom_filtering_toast": "Карыстацкае правіла выдалена: {{rule}}",
|
||||
"rule_added_to_custom_filtering_toast": "Карыстацкае правіла дададзена: {{rule}}",
|
||||
"query_log_response_status": "Статус: {{value}}",
|
||||
@@ -259,7 +261,7 @@
|
||||
"query_log_configuration": "Налада часопіса",
|
||||
"query_log_disabled": "Часопіс запытаў выключаны, яго можна ўключыць у <0>наладах</0>",
|
||||
"query_log_strict_search": "Ужывайце падвойныя двукоссі для строгага пошуку",
|
||||
"query_log_retention_confirm": "Вы ўпэўнены, што хочаце змяніць тэрмін захоўвання запытаў? Пры скарачэнні інтэрвалу дадзеныя могуць быць згублены",
|
||||
"query_log_retention_confirm": "Вы ўпэўнены, што хочаце змяніць тэрмін захоўвання запытаў? Пры памяншэнні інтэрвалу, некаторыя даныя могуць быць страчаны",
|
||||
"anonymize_client_ip": "Ананімізацыя IP-адрасы кліента",
|
||||
"anonymize_client_ip_desc": "Не захоўвайце поўныя IP-адрасы гэтых удзельнікаў у часопісах або статыстыцы",
|
||||
"dns_config": "Налады DNS-сервера",
|
||||
@@ -296,6 +298,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Адказвае з кодам NXDOMAIN\n",
|
||||
"blocking_mode_null_ip": "Нулёвы IP: Адказвае з нулёвым IP-адрасам (0.0.0.0 для A; :: для AAAA)",
|
||||
"blocking_mode_custom_ip": "Карыстацкі IP: Адказвае з ручна наладжаным IP-адрасам",
|
||||
"theme_auto": "Аўто",
|
||||
"theme_light": "Светлая",
|
||||
"theme_dark": "Цёмная",
|
||||
"upstream_dns_client_desc": "Калі пакінуць поле пустым, AdGuard Home будзе звяртацца да сервераў, паказаных у <0>наладах DNS</0>.",
|
||||
"tracker_source": "Крыніца трэкінгу",
|
||||
"source_label": "Крыніца",
|
||||
@@ -331,15 +336,15 @@
|
||||
"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_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-сервераў для вашай пэўнай мадэлі маршрутызатара.",
|
||||
"install_devices_windows_list_1": "Адкрыйце Панэль кіравання праз меню \"Пуск\" ці праз пошук Windows.",
|
||||
"install_devices_windows_list_2": "Перайдзіце ў \"Сеціва і інтэрнэт\", а потым у \"Цэнтр кіравання сеціва і агульным доступам\"",
|
||||
"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/IPv4)\", вылучыце яго і потым ізноў націсніце \"Уласцівасці\".",
|
||||
"install_devices_windows_list_6": "Абярыце \"Выкарыстаць наступныя адрасы DNS-сервераў\" і ўвядзіце адрас AdGuard Home.",
|
||||
"install_devices_windows_list_5": "Знайдзіце ў спісе пункт «IP версіі 4 (TCP/IPv4)», вылучыце яго і потым ізноў націсніце «Уласцівасці».",
|
||||
"install_devices_windows_list_6": "Абярыце «Выкарыстаць наступныя адрасы DNS-сервераў» і ўвядзіце адрас AdGuard Home.",
|
||||
"install_devices_macos_list_1": "Клікніце па абразку Apple і перайдзіце ў Сістэмныя налады.",
|
||||
"install_devices_macos_list_2": "Клікніце па іконцы Сеціва.",
|
||||
"install_devices_macos_list_3": "Абярыце першае падлучэнне ў спісе і націсніце кнопку «Дадаткова».",
|
||||
@@ -351,7 +356,7 @@
|
||||
"install_devices_android_list_5": "Зараз можна змяніць палі «DNS 1» і «DNS 2». Увядзіце ў іх адрасы AdGuard Home.",
|
||||
"install_devices_ios_list_1": "Увайдзіце ў меню налад прылады.",
|
||||
"install_devices_ios_list_2": "Абярыце пункт «Wi-Fi» (для мабільных сетак ручная наладка DNS немагчыма).",
|
||||
"install_devices_ios_list_3": "Націсніце на назву сетцы, да якой прылада падлучана ў дадзены момант.",
|
||||
"install_devices_ios_list_3": "Націсніце на назву актыўнай у дадзены момант сеткі.",
|
||||
"install_devices_ios_list_4": "У поле «DNS» увядзіце ўвядзіце адрасы AdGuard Home.",
|
||||
"get_started": "Паехалі",
|
||||
"next": "Далей",
|
||||
@@ -362,7 +367,7 @@
|
||||
"encryption_config_saved": "Налады шыфравання захаваны",
|
||||
"encryption_server": "Імя сервера",
|
||||
"encryption_server_enter": "Увядзіце ваша даменавае імя",
|
||||
"encryption_server_desc": "Для выкарыстання HTTPS вам трэба ўвесці імя сервера, якое падыходзіць вашаму SSL-сертыфікату.",
|
||||
"encryption_server_desc": "Калі ўстаноўлена, AdGuard Home вызначае ClientID, адказвае на запыты DDR і выконвае дадатковыя праверкі злучэння. Калі не ўстаноўлена, гэтыя функцыі адключаны. Павінна адпавядаць аднаму з імёнаў DNS у сертыфікаце.",
|
||||
"encryption_redirect": "Аўтаматычна перанакіроўваць на HTTPS",
|
||||
"encryption_redirect_desc": "Калі ўлучана, AdGuard Home будзе аўтаматычна перанакіроўваць вас з HTTP на HTTPS адрас.",
|
||||
"encryption_https": "Порт HTTPS",
|
||||
@@ -388,6 +393,7 @@
|
||||
"encryption_issuer": "Выдавец",
|
||||
"encryption_hostnames": "Імёны хастоў",
|
||||
"encryption_reset": "Вы ўпэўнены, што хочаце скінуць налады шыфравання?",
|
||||
"encryption_warning": "Папярэджанне",
|
||||
"topline_expiring_certificate": "Ваш SSL-сертыфікат хутка мінае. Абновіце <0>Налады шыфравання</0>.",
|
||||
"topline_expired_certificate": "Ваш SSL-сертыфікат мінуў. Абновіце <0>Налады шыфравання</0>.",
|
||||
"form_error_port_range": "Увядзіце нумар порта з інтэрвалу 80-65535",
|
||||
@@ -428,11 +434,11 @@
|
||||
"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",
|
||||
@@ -443,11 +449,12 @@
|
||||
"access_disallowed_title": "Забароненыя кліенты",
|
||||
"access_disallowed_desc": "Спіс CIDR, IP-адрасоў або <a>ClientID</a>. Калі ў гэтым спісе ёсць запісы, AdGuard Home выдаліць запыты ад гэтых кліентаў. Гэта поле ігнаруецца, калі ёсць запісы ў Дазволеныя кліенты.",
|
||||
"access_blocked_title": "Заблакаваныя дамены",
|
||||
"access_blocked_desc": "Не блытайце гэта з фільтрамі. AdGuard Home будзе ігнараваць DNS-запыты з гэтымі даменамі.",
|
||||
"access_blocked_desc": "Не блытаць з фільтрамі. AdGuard Home выдаляе запыты DNS, якія адпавядаюць гэтым даменам, і гэтыя запыты нават не з'яўляюцца ў журнале запытаў. Вы можаце ўказаць дакладныя даменныя імёны, падстаноўныя знакі або правілы фільтрацыі URL-адрасоў, напрыклад, «example.org», «*.example.org» ці «||example.org^» адпаведна.",
|
||||
"access_settings_saved": "Налады доступу паспяхова захаваны",
|
||||
"updates_checked": "Праверка абнаўленняў прайшла паспяхова",
|
||||
"updates_checked": "Даступная новая версія AdGuard Home",
|
||||
"updates_version_equal": "Версія AdGuard Home актуальная",
|
||||
"check_updates_now": "Праверыць абнаўленні",
|
||||
"version_request_error": "Памылка пры праверцы наяўнасці абнаўленняў. Праверце ваша інтэрнэт-злучэнне.",
|
||||
"dns_privacy": "Зашыфраваны DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Ужывайце радок <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Ужывайце радок <1>{{address}}</1>.",
|
||||
@@ -466,11 +473,11 @@
|
||||
"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",
|
||||
@@ -510,10 +517,10 @@
|
||||
"filter_updated": "Спіс паспяхова абноўлены",
|
||||
"statistics_configuration": "Канфігурацыя статыстыкі",
|
||||
"statistics_retention": "Захаванне статыстыкі",
|
||||
"statistics_retention_desc": "Калі вы зменшыце значэнне інтэрвалу, некаторыя дадзеныя могуць быць згублены",
|
||||
"statistics_retention_desc": "Калі вы паменшыце значэнне інтэрвалу, некаторыя даныя могуць быць страчаны",
|
||||
"statistics_clear": "Ачысціць статыстыку",
|
||||
"statistics_clear_confirm": "Вы ўпэўнены, што хочаце ачысціць статыстыку?",
|
||||
"statistics_retention_confirm": "Вы ўпэўнены, што хочаце змяніць тэрмін захоўвання статыстыкі? Пры скарачэнні інтэрвалу дадзеныя могуць быць згублены",
|
||||
"statistics_retention_confirm": "Вы ўпэўнены, што хочаце змяніць тэрмін захоўвання статыстыкі? Пры памяншэнні інтэрвалу, некаторыя даныя могуць быць страчаны",
|
||||
"statistics_cleared": "Статыстыка паспяхова вычышчана",
|
||||
"statistics_enable": "Уключыць статыстыку",
|
||||
"interval_hours": "{{count}} гадзіна",
|
||||
@@ -551,7 +558,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": "Тэгі",
|
||||
@@ -561,7 +568,7 @@
|
||||
"check_desc": "Праверыць фільтрацыю імя хаста",
|
||||
"check": "Праверыць",
|
||||
"form_enter_host": "Увядзіце імя хаста",
|
||||
"filtered_custom_rules": "Адфільтраваны з дапамогай карыстацкіх правілаў фільтрацыі",
|
||||
"filtered_custom_rules": "Адфільтраваны з дапамогай карыстальніцкіх правіл фільтрацыі",
|
||||
"choose_from_list": "Абраць са спіса",
|
||||
"add_custom_list": "Дадаць свой спіс",
|
||||
"host_whitelisted": "Хост занесены ў белы спіс",
|
||||
@@ -571,10 +578,10 @@
|
||||
"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-адрас",
|
||||
@@ -591,7 +598,7 @@
|
||||
"show_blocked_responses": "Заблакавана",
|
||||
"show_whitelisted_responses": "Белы спіс",
|
||||
"show_processed_responses": "Апрацавана",
|
||||
"blocked_safebrowsing": "Заблакавана згодна базе дадзеных Safe Browsing",
|
||||
"blocked_safebrowsing": "Заблакіравана згодна з базай даных Safe Browsing",
|
||||
"blocked_adult_websites": "Заблакавана Бацькоўскім кантролем",
|
||||
"blocked_threats": "Заблакавана пагроз",
|
||||
"allowed": "Дазволены",
|
||||
@@ -601,7 +608,7 @@
|
||||
"blocklist": "Чорны спіс",
|
||||
"milliseconds_abbreviation": "мс",
|
||||
"cache_size": "Памер кэша",
|
||||
"cache_size_desc": "Памер кэша DNS (у байтах).",
|
||||
"cache_size_desc": "Памер кэша DNS (у байтах). Каб адключыць кэшаванне, пакіньце пустым.",
|
||||
"cache_ttl_min_override": "Перавызначыць мінімальны TTL",
|
||||
"cache_ttl_max_override": "Перавызначыць максімальны TTL",
|
||||
"enter_cache_size": "Увядзіце памер кэша (байты)",
|
||||
@@ -623,7 +630,7 @@
|
||||
"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 скіне ўсе DNS-запыты ад гэтага кліента.",
|
||||
"filter_allowlist": "УВАГА: Гэта дзеянне таксама выключыць правіла «{{disallowed_rule}}» са спіса дазволеных кліентаў.",
|
||||
"last_rule_in_allowlist": "Няможна заблакаваць гэтага кліента, бо вынятак правіла «{{disallowed_rule}}» АДКЛЮЧЫЦЬ рэжым белага спіса.",
|
||||
@@ -631,5 +638,10 @@
|
||||
"parental_control": "Бацькоўскі кантроль",
|
||||
"safe_browsing": "Бяспечны інтэрнэт",
|
||||
"served_from_cache": "{{value}} <i>(атрымана з кэша)</i>",
|
||||
"form_error_password_length": "Пароль павінен быць не менш за {{value}} сімвалаў"
|
||||
"form_error_password_length": "Пароль павінен быць не менш за {{value}} сімвалаў",
|
||||
"anonymizer_notification": "<0>Заўвага:</0> Ананімізацыя IP уключана. Вы можаце адключыць яе ў <1>Агульных наладах</1>.",
|
||||
"confirm_dns_cache_clear": "Вы ўпэўнены, што хочаце ачысціць кэш DNS?",
|
||||
"cache_cleared": "Кэш DNS паспяхова ачышчаны",
|
||||
"clear_cache": "Ачысціць кэш",
|
||||
"protection_section_label": "Ахова"
|
||||
}
|
||||
|
||||
@@ -244,6 +244,7 @@
|
||||
"encryption_issuer": "Изпълнител",
|
||||
"encryption_hostnames": "Имена на хоста",
|
||||
"encryption_reset": "Сигурни ли сте че искате да изтриете настройките за криптиране?",
|
||||
"encryption_warning": "Внимание",
|
||||
"topline_expiring_certificate": "Вашият SSL сертификат изтича. Обнови <0>Настройки за криптиране</0>.",
|
||||
"topline_expired_certificate": "Вашият SSL сертификат е изтекъл. Обнови <0>Настройки за криптиране</0>.",
|
||||
"form_error_port_range": "Въведете порт в диапазона 80-65535",
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Nastavení DHCP IPv6",
|
||||
"form_error_required": "Povinné pole",
|
||||
"form_error_ip4_format": "Neplatná adresa IPv4",
|
||||
"form_error_ip4_range_start_format": "Neplatná adresa IPv4 na začátku rozsahu",
|
||||
"form_error_ip4_range_end_format": "Neplatná adresa IPv4 na konci rozsahu",
|
||||
"form_error_ip4_gateway_format": "Neplatná adresa IPv4 brány",
|
||||
"form_error_ip6_format": "Neplatná adresa IPv6",
|
||||
"form_error_ip_format": "Neplatná IP adresa",
|
||||
@@ -47,10 +45,10 @@
|
||||
"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_gateway_ip": "Pronájem nemůže mít IP adresu brány",
|
||||
"out_of_range_error": "Musí být mimo rozsah \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Musí být menší než začátek rozsahu",
|
||||
"greater_range_start_error": "Musí být větší než začátek rozsahu",
|
||||
"greater_range_end_error": "Musí být větší než konec rozsahu",
|
||||
"subnet_error": "Adresy musí být v jedné podsíti",
|
||||
"gateway_or_subnet_invalid": "Neplatná maska podsítě",
|
||||
"dhcp_form_gateway_input": "IP brána",
|
||||
@@ -167,8 +165,9 @@
|
||||
"enabled_safe_browsing_toast": "Zapnuté bezpečné prohlížení",
|
||||
"disabled_parental_toast": "Vypnutá Rodičovská kontrola",
|
||||
"enabled_parental_toast": "Zapnutá Rodičovská kontrola",
|
||||
"disabled_safe_search_toast": "Zapnuté bezpečné vyhledávání",
|
||||
"enabled_save_search_toast": "Vypnuté bezpečné vyhledávání",
|
||||
"disabled_safe_search_toast": "Vypnuté bezpečné vyhledávání",
|
||||
"enabled_save_search_toast": "Zapnuté bezpečné vyhledávání",
|
||||
"updated_save_search_toast": "Nastavení Bezpečného vyhledávání aktualizováno",
|
||||
"enabled_table_header": "Zapnuto",
|
||||
"name_table_header": "Název",
|
||||
"list_url_table_header": "Seznam URL",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Také komentář.",
|
||||
"example_regex_meaning": "blokuje přístup doménám, které vyhovují regulárnímu výrazu.",
|
||||
"example_upstream_regular": "obvyklý DNS (přes UDP);",
|
||||
"example_upstream_regular_port": "obvyklý DNS (skrze UDP, s portem);",
|
||||
"example_upstream_udp": "obvyklý DNS (skrze UDP, název hostitele);",
|
||||
"example_upstream_dot": "šifrovaný <0>DNS skrze TLS</0>;",
|
||||
"example_upstream_doh": "šifrovaný <0>DNS skrze HTTPS</0>;",
|
||||
"example_upstream_doh3": "šifrovaný DNS skrze HTTPS s vynuceným <0>HTTP/3</0> a bez možnosti zpětného přechodu na HTTP/2 nebo nižší;",
|
||||
"example_upstream_doq": "šifrovaný <0>DNS skrze QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS razítka</0> pro <1>DNSCrypt</1> nebo <2>DNS skrze HTTPS</2> řešitele;",
|
||||
"example_upstream_tcp": "obvyklý DNS (přes TCP);",
|
||||
"example_upstream_tcp_port": "obvyklý DNS (skrze TCP, s portem);",
|
||||
"example_upstream_tcp_hostname": "obvyklý DNS (skrze TCP, název hostitele);",
|
||||
"all_lists_up_to_date_toast": "Všechny seznamy jsou již aktuální",
|
||||
"updated_upstream_dns_toast": "Odchozí servery byly úspěšně uloženy",
|
||||
"dns_test_ok_toast": "Specifikované DNS servery pracují správně",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": nemohl být použit, zkontrolujte, zda jste ho správně napsali",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" neodpovídá na testovací požadavky a nemusí fungovat správně",
|
||||
"unblock": "Odblokovat",
|
||||
"block": "Blokovat",
|
||||
"disallow_this_client": "Blokovat tohoto klienta",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Protokol dotazů byl úspěšně vymazán",
|
||||
"query_log_updated": "Protokol dotazů byl úspěšně aktualizován",
|
||||
"query_log_clear": "Vymazat protokoly dotazů",
|
||||
"query_log_retention": "Uchování protokolů dotazů",
|
||||
"query_log_retention": "Rotace protokolů dotazů",
|
||||
"query_log_enable": "Povolit protokol",
|
||||
"query_log_configuration": "Konfigurace protokolů",
|
||||
"query_log_disabled": "Protokol dotazu je zakázán a lze jej nakonfigurovat v <0>nastavení</0>",
|
||||
"query_log_strict_search": "Pro striktní vyhledávání použijte dvojité uvozovky",
|
||||
"query_log_retention_confirm": "Opravdu chcete změnit uchovávání protokolu dotazů? Pokud snížíte hodnotu intervalu, některá data budou ztracena",
|
||||
"query_log_retention_confirm": "Opravdu chcete změnit rotaci protokolu dotazů? Pokud snížíte hodnotu intervalu, některá data budou ztracena",
|
||||
"anonymize_client_ip": "Anonymizovat IP klienta",
|
||||
"anonymize_client_ip_desc": "Neukládat úplnou IP adresu klienta do protokolů a statistik",
|
||||
"dns_config": "Konfigurace DNS serveru",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Rychlostní limit",
|
||||
"edns_enable": "Povolit klientskou podsíť EDNS",
|
||||
"edns_cs_desc": "Přidá možnost podsítě klienta EDNS (ECS) do odchozích požadavků a zaznamá hodnoty odeslané klienty do protokolu dotazů.",
|
||||
"edns_use_custom_ip": "Použít vlastní IP pro EDNS",
|
||||
"edns_use_custom_ip_desc": "Povolit použití vlastní IP pro EDNS",
|
||||
"rate_limit_desc": "Počet požadavků za sekundu, které smí jeden klient provádět (0: neomezeno)",
|
||||
"blocking_ipv4_desc": "IP adresa, která se má vrátit v případě blokovaného požadavku typu A",
|
||||
"blocking_ipv6_desc": "IP adresa, která se má vrátit v případě blokovaného požadavku typu AAAA",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Odezva s kódem NXDOMAIN",
|
||||
"blocking_mode_null_ip": "Nulová IP: Odezva s nulovou IP adresou (0.0.0.0 pro A; :: pro AAAA)",
|
||||
"blocking_mode_custom_ip": "Vlastní IP. odezva s ručně nastavenou IP adresou",
|
||||
"theme_auto": "Autom.",
|
||||
"theme_light": "Světlý",
|
||||
"theme_dark": "Tmavý",
|
||||
"upstream_dns_client_desc": "Pokud toto pole ponecháte prázdné, AdGuard Home použije servery nakonfigurované v<0>DNS nastavení</0>.",
|
||||
"tracker_source": "Zdroj slídiče",
|
||||
"source_label": "Zdroj",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "Konfigurace šifrování byla uložena",
|
||||
"encryption_server": "Název serveru",
|
||||
"encryption_server_enter": "Zadejte název domény",
|
||||
"encryption_server_desc": "Abyste mohli používat HTTPS, musíte zadat název serveru, který odpovídá vašemu certifikátu SSL nebo zástupnému certifikátu. Pokud není pole nastaveno, bude přijímat připojení TLS pro libovolnou doménu.",
|
||||
"encryption_server_desc": "Pokud je nastaveno, AdGuard Home detekuje ClientID, odpovídá na dotazy DDR a provádí další ověření připojení. Pokud není nastaveno, jsou tyto funkce vypnuty. Musí odpovídat jednomu z názvů DNS v certifikátu.",
|
||||
"encryption_redirect": "Automaticky přesměrovat na HTTPS",
|
||||
"encryption_redirect_desc": "Pokud je zaškrtnuto, AdGuard Home vás automaticky přesměruje z adres HTTP na HTTPS.",
|
||||
"encryption_https": "HTTPS port",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Vydavatel",
|
||||
"encryption_hostnames": "Názvy hostitelů",
|
||||
"encryption_reset": "Opravdu chcete obnovit nastavení šifrování?",
|
||||
"encryption_warning": "Varová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 číslo portu v rozmezí 80-65535",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Blokované domény",
|
||||
"access_blocked_desc": "Nezaměňujte to s filtry. AdGuard Home zruší dotazy DNS odpovídající těmto doménám a tyto dotazy se neobjeví ani v protokolu dotazů. 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\" nebo \"||example.org^\".",
|
||||
"access_settings_saved": "Nastavení přístupu bylo úspěšně uloženo",
|
||||
"updates_checked": "Aktualizace úspěšně zkontrolovány",
|
||||
"updates_checked": "Nová verze AdGuard Home je k dispozici\n",
|
||||
"updates_version_equal": "AdGuard Home je aktuální",
|
||||
"check_updates_now": "Zkontrolovat aktualizace nyní",
|
||||
"version_request_error": "Kontrola aktualizace se nezdařila. Zkontrolujte prosím připojení k Internetu.",
|
||||
"dns_privacy": "Soukromí DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS skrze TLS:</0> Použít <1>{{address}}</1> řetězec.",
|
||||
"setup_dns_privacy_2": "<0>DNS skrze HTTPS:</0> Použít <1>{{address}}</1> řetězec.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Opravdu chcete změnit uchovávání statistik? Pokud snížíte hodnotu intervalu, některá data budou ztracena",
|
||||
"statistics_cleared": "Statistiky úspěšně vyčištěny",
|
||||
"statistics_enable": "Povolit statistiky",
|
||||
"ignore_domains": "Ignorované domény (oddělené novým řádkem)",
|
||||
"ignore_domains_title": "Ignorované domény",
|
||||
"ignore_domains_desc_stats": "Dotazy pro tyto domény se do statistik nezapisují",
|
||||
"ignore_domains_desc_query": "Dotazy pro tyto domény se do záznamu dotazů nezapisují",
|
||||
"interval_hours": "Hodiny: {{count}}",
|
||||
"interval_hours_plural": "Hodiny: {{count}}",
|
||||
"filters_configuration": "Konfigurace filtrů",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Zakázaný",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Velikost mezipaměti",
|
||||
"cache_size_desc": "Velikost mezipaměti DNS (v bajtech).",
|
||||
"cache_size_desc": "Velikost mezipaměti DNS (v bajtech). Chcete-li ukládání do mezipaměti zakázat, ponechte prázdné.",
|
||||
"cache_ttl_min_override": "Přepsat minimální hodnotu TTL",
|
||||
"cache_ttl_max_override": "Přepsat maximální hodnotu TTL",
|
||||
"enter_cache_size": "Zadejte velikost mezipaměti (v bajtech)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Rodičovská ochrana",
|
||||
"safe_browsing": "Bezpečné prohlížení",
|
||||
"served_from_cache": "{{value}} <i>(převzato z mezipaměti)</i>",
|
||||
"form_error_password_length": "Heslo musí být alespoň {{value}} znaků dlouhé"
|
||||
"form_error_password_length": "Heslo musí být alespoň {{value}} znaků dlouhé",
|
||||
"anonymizer_notification": "<0>Poznámka:</0> Anonymizace IP je zapnuta. Můžete ji vypnout v <1>Obecných nastaveních</1>.",
|
||||
"confirm_dns_cache_clear": "Opravdu chcete vymazat mezipaměť DNS?",
|
||||
"cache_cleared": "Mezipaměť DNS úspěšně vymazána",
|
||||
"clear_cache": "Vymazat mezipaměť",
|
||||
"make_static": "Nastavit jako statickou",
|
||||
"theme_auto_desc": "Automatický (podle barevného motivu vašeho zařízení)",
|
||||
"theme_dark_desc": "Tmavý motiv",
|
||||
"theme_light_desc": "Světlý motiv",
|
||||
"disable_for_seconds": "Na {{count}} sek.",
|
||||
"disable_for_seconds_plural": "Na {{count}} sek.",
|
||||
"disable_for_minutes": "Na {{count}} min.",
|
||||
"disable_for_minutes_plural": "Na {{count}} min.",
|
||||
"disable_for_hours": "Na {{count}} hod.",
|
||||
"disable_for_hours_plural": "Na {{count}} hod.",
|
||||
"disable_until_tomorrow": "Do zítřka",
|
||||
"disable_notify_for_seconds": "Vypnout ochranu na {{count}} sek.",
|
||||
"disable_notify_for_seconds_plural": "Vypnout ochranu na {{count}} sek.",
|
||||
"disable_notify_for_minutes": "Vypnout ochranu na {{count}} min.",
|
||||
"disable_notify_for_minutes_plural": "Vypnout ochranu na {{count}} min.",
|
||||
"disable_notify_for_hours": "Vypnout ochranu na {{count}} hod.",
|
||||
"disable_notify_for_hours_plural": "Vypnout ochranu na {{count}} hod.",
|
||||
"disable_notify_until_tomorrow": "Vypnout ochranu do zítřka",
|
||||
"enable_protection_timer": "Ochrana bude zapnuta za {{time}}",
|
||||
"custom_retention_input": "Zadejte retenci v hodinách",
|
||||
"custom_rotation_input": "Zadejte rotaci v hodinách",
|
||||
"protection_section_label": "Ochrana",
|
||||
"log_and_stats_section_label": "Protokol dotazů a statistiky",
|
||||
"ignore_query_log": "Ignorovat tohoto klienta v protokolu dotazů",
|
||||
"ignore_statistics": "Ignorovat tohoto klienta ve statistikách"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6-indstillinger",
|
||||
"form_error_required": "Obligatorisk felt",
|
||||
"form_error_ip4_format": "Ugyldig IPv4-adresse",
|
||||
"form_error_ip4_range_start_format": "Ugyldig IPv4-startadresse for området",
|
||||
"form_error_ip4_range_end_format": "Ugyldig IPv4-slutadresse for området",
|
||||
"form_error_ip4_gateway_format": "Ugyldig IPv4 gateway-adresse",
|
||||
"form_error_ip6_format": "Ugyldig IPv6-adresse",
|
||||
"form_error_ip_format": "Ugyldig IP-adresse",
|
||||
@@ -47,12 +45,12 @@
|
||||
"form_error_server_name": "Ugyldigt servernavn",
|
||||
"form_error_subnet": "Undernet \"{{cidr}}\" indeholder ikke IP-adressen \"{{ip}}\"",
|
||||
"form_error_positive": "Skal være større end 0",
|
||||
"form_error_gateway_ip": "Lease kan ikke have gatewayens IP-adresse",
|
||||
"out_of_range_error": "Skal være uden for området \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Skal være mindre end starten på området",
|
||||
"greater_range_start_error": "Skal være større end starten på området",
|
||||
"greater_range_end_error": "Skal være større end områdeslutning",
|
||||
"subnet_error": "Adresser ska være i ét undernet",
|
||||
"gateway_or_subnet_invalid": "Undernetmaske ugyldig",
|
||||
"gateway_or_subnet_invalid": "Ugyldig undernetmaske",
|
||||
"dhcp_form_gateway_input": "Gateway IP",
|
||||
"dhcp_form_subnet_input": "Undernetmaske",
|
||||
"dhcp_form_range_title": "Interval af IP-adresser",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Forældrekontrol aktiveret",
|
||||
"disabled_safe_search_toast": "Sikker søgning deaktiveret",
|
||||
"enabled_save_search_toast": "Sikker søgning aktiveret",
|
||||
"updated_save_search_toast": "Sikker søgning opdateret",
|
||||
"enabled_table_header": "Aktiveret",
|
||||
"name_table_header": "Navn",
|
||||
"list_url_table_header": "Liste-URL",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Også en kommentar.",
|
||||
"example_regex_meaning": "blokér adgang til domæner matchernde det angivne regulære udtryk",
|
||||
"example_upstream_regular": "almindelig DNS (over UDP)",
|
||||
"example_upstream_regular_port": "almindelig DNS (over UDP, med port);",
|
||||
"example_upstream_udp": "almindelig DNS (over UDP, værtsnavn);",
|
||||
"example_upstream_dot": "krypteret <0>DNS-over-TLS</0>",
|
||||
"example_upstream_doh": "krypteret <0>DNS-over-HTTPS</0>",
|
||||
"example_upstream_doh3": "krypteret DNS-over-HTTPS med tvungen <0>HTTP/3</0> uden fallback til HTTP/2 eller lavere;",
|
||||
"example_upstream_doq": "krypteret <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS Stamps</0> til <1>DNSCrypt</1> eller <2>DNS-over-HTTPS</2>-opløsere;",
|
||||
"example_upstream_tcp": "almindelig DNS (over TCP)",
|
||||
"example_upstream_tcp_port": "almindelig DNS (over TCP, med port);",
|
||||
"example_upstream_tcp_hostname": "almindelig DNS (over TCP, værtsnavn);",
|
||||
"all_lists_up_to_date_toast": "Alle lister er allerede opdaterede",
|
||||
"updated_upstream_dns_toast": "Upstream-servere er gemt",
|
||||
"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",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" svarer ikke på testforespørgsler og fungerer muligvis ikke korrekt",
|
||||
"unblock": "Afblokering",
|
||||
"block": "Blokering",
|
||||
"disallow_this_client": "Afvis denne klient",
|
||||
@@ -254,12 +257,12 @@
|
||||
"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": "Opbevar forespørgselslogger i",
|
||||
"query_log_retention": "Rotation af forespørgselslog",
|
||||
"query_log_enable": "Aktivér log",
|
||||
"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",
|
||||
"query_log_retention_confirm": "Sikker på, at forespørgselsloggens rotationstid skal ændres? Mindskes intervalværdien, mistes nogle data",
|
||||
"anonymize_client_ip": "Anonymisér klient-IP",
|
||||
"anonymize_client_ip_desc": "Gem ikke fuld klient IP-adresse i logfiler eller statistikker",
|
||||
"dns_config": "DNS-serveropsætning",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Hyppighedsgrænse",
|
||||
"edns_enable": "Aktivér EDNS-klientundernet",
|
||||
"edns_cs_desc": "Tilføj indstillingen EDNS Client Subnet (ECS) til upstream-forespørgsler og log de af klienterne sendte værdier i forespørgselsloggen.",
|
||||
"edns_use_custom_ip": "Brug tilpasset IP til EDNS",
|
||||
"edns_use_custom_ip_desc": "Tillad brug af tilpasset IP til EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"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": "Tilpasset IP: Svar med en manuelt indstillet IP-adresse",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Lyst",
|
||||
"theme_dark": "Mørkt",
|
||||
"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",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "Krypteringsopsætning gemt",
|
||||
"encryption_server": "Servernavn",
|
||||
"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_server_desc": "Hvis indstillet, registrerer AdGuard Home ClientID'er, svarer på DDR-forespørgsler og udfører yderligere forbindelsesvalideringer. Hvis ikke er indstillet, er disse funktioner deaktiveret. Skal matche et af DNS-navnene i certifikatet.",
|
||||
"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",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Udsteder",
|
||||
"encryption_hostnames": "Værtsnavne",
|
||||
"encryption_reset": "Sikker på, at du vil nulstille krypteringsindstillingerne?",
|
||||
"encryption_warning": "Advarsel",
|
||||
"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",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Ikke tilladte domæner",
|
||||
"access_blocked_desc": "Ikke at forveksle med filtre. AdGuard Home dropper DNS-forespørgsler matchende disse domæner, ej heller vil forespørgslerne optræde i forespørgselsloggen. Der kan angives præcise domænenavne, jokertegn eller URL-filterregler, f.eks. \"eksempel.org\", \"*.eksempel.org\", \"||eksempel.org^\" eller tilsvarende.",
|
||||
"access_settings_saved": "Adgangsindstillinger gemt",
|
||||
"updates_checked": "Opdateringstjek foretaget",
|
||||
"updates_checked": "En ny version af AdGuard Home er tilgængelig\n",
|
||||
"updates_version_equal": "AdGuard Home er opdateret",
|
||||
"check_updates_now": "Søg efter opdateringer nu",
|
||||
"version_request_error": "Opdateringstjek mislykkedes. Tjek internetforbindelsen.",
|
||||
"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.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Sikker på, at du vil ændre på statistikbevaring? Mindskes intervalværdien, vil nogle data gå tabt",
|
||||
"statistics_cleared": "Statistikkerne er ryddet",
|
||||
"statistics_enable": "Aktivér statistikker",
|
||||
"ignore_domains": "Ignorerede domæner (adskilt af ny linje)",
|
||||
"ignore_domains_title": "Ignorerede domæner",
|
||||
"ignore_domains_desc_stats": "Forespørgsler til disse domæner opføres ikke i statistikken",
|
||||
"ignore_domains_desc_query": "Forespørgsler til disse domæner opføres ikke i forespørgselsloggen",
|
||||
"interval_hours": "{{count}} time",
|
||||
"interval_hours_plural": "{{count}} timer",
|
||||
"filters_configuration": "Filteropsætninger",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Sortliste",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Cache-størrelse",
|
||||
"cache_size_desc": "DNS cache-størrelse (i bytes).",
|
||||
"cache_size_desc": "DNS cache-størrelse (i bytes). Lad stå tomt for at deaktivere cache.",
|
||||
"cache_ttl_min_override": "Tilsidesæt minimum TTL",
|
||||
"cache_ttl_max_override": "Tilsidesæt maksimal TTL",
|
||||
"enter_cache_size": "Angiv cache-størrelse (bytes)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Forældrekontrol",
|
||||
"safe_browsing": "Sikker Browsing",
|
||||
"served_from_cache": "{{value}} <i>(leveret fra cache)</i>",
|
||||
"form_error_password_length": "Adgangskoden skal udgøre mindst {{value}} tegn."
|
||||
"form_error_password_length": "Adgangskoden skal udgøre mindst {{value}} tegn.",
|
||||
"anonymizer_notification": "<0>Bemærk:</0> IP-anonymisering er aktiveret. Det kan deaktiveres via <1>Generelle indstillinger</1>.",
|
||||
"confirm_dns_cache_clear": "Sikker på, at DNS-cache skal ryddes?",
|
||||
"cache_cleared": "DNS-cache hermed ryddet",
|
||||
"clear_cache": "Ryd cache",
|
||||
"make_static": "Gør statisk",
|
||||
"theme_auto_desc": "Auto (baseret på enhedens farveskema)",
|
||||
"theme_dark_desc": "Mørkt tema",
|
||||
"theme_light_desc": "Lyst tema",
|
||||
"disable_for_seconds": "I {{count}} sekund",
|
||||
"disable_for_seconds_plural": "I {{count}} sekunder",
|
||||
"disable_for_minutes": "I {{count}} minut",
|
||||
"disable_for_minutes_plural": "I {{count}} minutter",
|
||||
"disable_for_hours": "I {{count}} time",
|
||||
"disable_for_hours_plural": "I {{count}} timer",
|
||||
"disable_until_tomorrow": "Indtil i morgen",
|
||||
"disable_notify_for_seconds": "Deaktivere beskyttelse i {{count}} sekund",
|
||||
"disable_notify_for_seconds_plural": "Deaktivere beskyttelse i {{count}} sekunder",
|
||||
"disable_notify_for_minutes": "Deaktivere beskyttelse i {{count}} minut",
|
||||
"disable_notify_for_minutes_plural": "Deaktivere beskyttelse i {{count}} minutter",
|
||||
"disable_notify_for_hours": "Deaktivere beskyttelse i {{count}} time",
|
||||
"disable_notify_for_hours_plural": "Deaktivere beskyttelse i {{count}} timer",
|
||||
"disable_notify_until_tomorrow": "Deaktiver beskyttelse indtil i morgen",
|
||||
"enable_protection_timer": "Beskyttelse deaktiveres om {{time}}",
|
||||
"custom_retention_input": "Angiv opbevaringstid i timer",
|
||||
"custom_rotation_input": "Angiv rotationstid i timer",
|
||||
"protection_section_label": "Beskyttelse",
|
||||
"log_and_stats_section_label": "Forespørgselslog og statistik",
|
||||
"ignore_query_log": "Ignorér denne klient i forespørgselslog",
|
||||
"ignore_statistics": "Ignorér denne klient i statistik"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP-IPv6-Einstellungen",
|
||||
"form_error_required": "Pflichtfeld",
|
||||
"form_error_ip4_format": "Ungültige IPv4-Adresse",
|
||||
"form_error_ip4_range_start_format": "Ungültiger Bereichsbeginn der IPv4-Adresse",
|
||||
"form_error_ip4_range_end_format": "Ungültiges Bereichsende der IPv4-Adresse",
|
||||
"form_error_ip4_gateway_format": "Ungültige IPv4-Adresse des Gateways",
|
||||
"form_error_ip6_format": "Ungültige IPv6-Adresse",
|
||||
"form_error_ip_format": "Ungültige IP-Adresse",
|
||||
@@ -47,10 +45,10 @@
|
||||
"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_gateway_ip": "Lease kann nicht die IP-Adresse des Gateways haben",
|
||||
"out_of_range_error": "Muss außerhalb des Bereichs „{{start}}“-„{{end}}“ liegen",
|
||||
"lower_range_start_error": "Muss niedriger als der Bereichsbeginn sein",
|
||||
"greater_range_start_error": "Muss größer als der Bereichsbeginn sein",
|
||||
"greater_range_end_error": "Muss größer als das Bereichsende sein",
|
||||
"subnet_error": "Die Adressen müssen innerhalb eines Subnetzes liegen",
|
||||
"gateway_or_subnet_invalid": "Ungültige Subnetzmaske",
|
||||
"dhcp_form_gateway_input": "Gateway-IP",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Kindersicherung aktiviert",
|
||||
"disabled_safe_search_toast": "Sichere Suche deaktiviert",
|
||||
"enabled_save_search_toast": "Sichere Suche aktiviert",
|
||||
"updated_save_search_toast": "Einstellungen für die sichere Suche aktualisiert",
|
||||
"enabled_table_header": "Aktiviert",
|
||||
"name_table_header": "Name",
|
||||
"list_url_table_header": "Adressliste",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Auch ein Kommentar.",
|
||||
"example_regex_meaning": "Zugriff auf die Domains sperren, die dem angegebenen regulären Ausdruck entsprechen.",
|
||||
"example_upstream_regular": "reguläres DNS (over UDP);",
|
||||
"example_upstream_regular_port": "normales DNS (über UDP, mit Port);",
|
||||
"example_upstream_udp": "normales DNS (über UDP, Hostname);",
|
||||
"example_upstream_dot": "verschlüsseltes <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "verschlüsseltes <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "verschlüsseltes DNS-over-HTTPS mit erzwungenem <0>HTTP/3</0> und keinem Fallback zu HTTP/2 oder darunter;",
|
||||
"example_upstream_doq": "verschlüsseltes <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS-Stempel</0> für <1>DNSCrypt</1> oder <2>DNS-over-HTTPS</2> Resolver;",
|
||||
"example_upstream_tcp": "reguläres DNS (over TCP);",
|
||||
"example_upstream_tcp_port": "normales DNS (über TCP, mit Port);",
|
||||
"example_upstream_tcp_hostname": "normales DNS (über TCP, Hostname);",
|
||||
"all_lists_up_to_date_toast": "Alle Listen sind bereits auf dem neuesten Stand",
|
||||
"updated_upstream_dns_toast": "Upstream-Server erfolgreich gespeichert",
|
||||
"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_warning_toast": "Upstream „{{key}}“ reagiert nicht auf Testanfragen und funktioniert möglicherweise nicht fehlerfrei",
|
||||
"unblock": "Entsperren",
|
||||
"block": "Sperren",
|
||||
"disallow_this_client": "Diesen Client sperren",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Das Abfrageprotokoll wurde erfolgreich gelöscht",
|
||||
"query_log_updated": "Das Abfrageprotokoll wurde erfolgreich aktualisiert",
|
||||
"query_log_clear": "Abfrageprotokolle leeren",
|
||||
"query_log_retention": "Abfrageprotokolle aufbewahren",
|
||||
"query_log_retention": "Rotation der Abfrageprotokolle",
|
||||
"query_log_enable": "Protokoll aktivieren",
|
||||
"query_log_configuration": "Konfiguration der Protokolle",
|
||||
"query_log_disabled": "Das Abfrageprotokoll ist deaktiviert und kann in den <0>Einstellungen</0> konfiguriert werden.",
|
||||
"query_log_strict_search": "Doppelte Anführungszeichen für die strikte Suche verwenden",
|
||||
"query_log_retention_confirm": "Möchten Sie die Aufbewahrung des Abfrageprotokolls wirklich ändern? Wenn Sie den Zeitabstand verringern, gehen einige Daten verloren.",
|
||||
"query_log_retention_confirm": "Möchten Sie die Abfrageprotokollrotation wirklich ändern? Wenn Sie den Intervallwert verringern, gehen einige Daten verloren",
|
||||
"anonymize_client_ip": "Client-IP anonymisieren",
|
||||
"anonymize_client_ip_desc": "Vollständige IP-Adresse des Clients nicht in Protokollen und Statistiken speichern",
|
||||
"dns_config": "DNS-Serverkonfiguration",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Begrenzungswert",
|
||||
"edns_enable": "EDNS Client Subnetz aktivieren",
|
||||
"edns_cs_desc": "Die Option EDNS Client Subnetz (ECS) zu Upstream-Anfragen hinzufügen und die von Clients gesendeten Werte protokollieren.",
|
||||
"edns_use_custom_ip": "Benutzerdefinierte IP für EDNS verwenden",
|
||||
"edns_use_custom_ip_desc": "Benutzerdefinierte IP für EDNS zulassen",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Mit NXDOMAIN-Code antworten",
|
||||
"blocking_mode_null_ip": "Null-IP: Antworten mit Null-IP-Adresse (0.0.0.0.0 für A; :: für AAAA)",
|
||||
"blocking_mode_custom_ip": "Benutzerdefinierte IP: Mit einer manuell eingestellten IP-Adresse antworten",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Hell",
|
||||
"theme_dark": "Dunkel",
|
||||
"upstream_dns_client_desc": "Wenn Sie dieses Feld leer lassen, verwendet AdGuard Home die Server, die in den <0>DNS-Einstellungen</0> konfiguriert sind.",
|
||||
"tracker_source": "Tracker-Quelle",
|
||||
"source_label": "Quelle",
|
||||
@@ -362,7 +370,7 @@
|
||||
"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.",
|
||||
"encryption_server_desc": "Wenn diese Option aktiviert ist, erkennt AdGuard Home ClientIDs, antwortet auf DDR-Anfragen und führt zusätzliche Verbindungsüberprüfungen durch. Wenn sie nicht gesetzt ist, sind diese Funktionen deaktiviert. Muss mit einem der DNS-Namen im Zertifikat übereinstimmen.",
|
||||
"encryption_redirect": "Automatisch auf HTTPS umleiten",
|
||||
"encryption_redirect_desc": "Wenn aktiviert, leitet AdGuard Home Sie automatisch von HTTP- auf HTTPS-Adressen um.",
|
||||
"encryption_https": "HTTPS-Port",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Ausgestellt von",
|
||||
"encryption_hostnames": "Hostnamen",
|
||||
"encryption_reset": "Möchten Sie die Verschlüsselungseinstellungen wirklich zurücksetzen?",
|
||||
"encryption_warning": "Warnhinweis",
|
||||
"topline_expiring_certificate": "Ihr SSL-Zertifikat läuft demnächst ab. Aktualisieren Sie Ihre <0>Verschlüsselungseinstellungen</0>.",
|
||||
"topline_expired_certificate": "Ihr SSL-Zertifikat ist abgelaufen. Aktualisieren Sie Ihre <0>Verschlüsselungseinstellungen</0>.",
|
||||
"form_error_port_range": "Geben Sie die Portnummer zwischen 80 und 65535 ein",
|
||||
@@ -443,11 +452,12 @@
|
||||
"access_disallowed_title": "Nicht zugelassene Clients",
|
||||
"access_disallowed_desc": "Eine Liste von CIDRs, IP-Adressen oder <a>ClientIDs</a>. Wenn diese Liste gefüllt ist, weist AdGuard Home Anfragen von diesen Clients zurück. Dieses Feld wird ignoriert, wenn es Einträge in der Liste „Zugelassene Clients“ gibt.",
|
||||
"access_blocked_title": "Nicht zugelassene Domains",
|
||||
"access_blocked_desc": "Verwechseln Sie dies nicht mit Filtern. AdGuard Home verwirft DNS-Abfragen, die mit diesen Domänen übereinstimmen, und diese Abfragen erscheinen nicht einmal im Abfrageprotokoll. 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": "Nicht zu verwechseln mit Filtern. AdGuard Home verwirft DNS-Anfragen, die mit diesen Domains übereinstimmen, und diese Abfragen werden nicht einmal im Abfrageprotokoll angezeigt. Sie können exakte Domainnamen, Wildcards oder URL-Filterregeln angeben, z. B. „example.org“, „*.example.org“ oder „||example.org^“.",
|
||||
"access_settings_saved": "Zugriffseinstellungen erfolgreich gespeichert",
|
||||
"updates_checked": "Erfolgreich auf Aktualisierungen geprüft",
|
||||
"updates_checked": "Neue Version von AdGuard Home ist jetzt verfügbar",
|
||||
"updates_version_equal": "AdGuard Home ist aktuell",
|
||||
"check_updates_now": "Jetzt nach Aktualisierungen suchen",
|
||||
"version_request_error": "Aktualisierungsprüfung fehlgeschlagen. Bitte überprüfen Sie Ihre Internetverbindung.",
|
||||
"dns_privacy": "DNS-Datenschutz",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Zeichenkette <1>{{address}}</1> verwenden.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Zeichenkette <1>{{address}}</1> verwenden.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Möchten Sie wirklich die Aufbewahrung der Statistiken ändern? Wenn Sie den Zeitabstand verringern, gehen einige Daten verloren.",
|
||||
"statistics_cleared": "Statistiken wurden erfolgreich gelöscht",
|
||||
"statistics_enable": "Statistiken aktivieren",
|
||||
"ignore_domains": "Ignorierte Domains (durch Zeilenumbruch getrennt)",
|
||||
"ignore_domains_title": "Ignorierte Domains",
|
||||
"ignore_domains_desc_stats": "Abfragen für diese Domains werden nicht in die Statistik aufgenommen",
|
||||
"ignore_domains_desc_query": "Abfragen für diese Domains werden nicht in das Abfrageprotokoll aufgenommen",
|
||||
"interval_hours": "{{count}} Stunde",
|
||||
"interval_hours_plural": "{{count}} Stunden",
|
||||
"filters_configuration": "Filterkonfiguration",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Sperrliste",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Größe des Cache",
|
||||
"cache_size_desc": "Größe des DNS-Zwischenspeichers (in Bytes).",
|
||||
"cache_size_desc": "Größe des DNS-Zwischenspeichers (in Bytes)",
|
||||
"cache_ttl_min_override": "TTL-Minimalwert überschreiben",
|
||||
"cache_ttl_max_override": "TTL-Höchstwert überschreiben",
|
||||
"enter_cache_size": "Größe des Cache (Bytes) eingeben",
|
||||
@@ -623,7 +637,7 @@
|
||||
"setup_config_to_enable_dhcp_server": "Einrichten der Konfiguration zur Aktivierung des DHCP-Servers",
|
||||
"original_response": "Ursprüngliche Antwort",
|
||||
"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.",
|
||||
"port_53_faq_link": "Port 53 wird oft von Diensten wie „DNSStubListener“ oder „system-resolved“ 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.",
|
||||
"filter_allowlist": "Warnhinweis: Durch diese Aktion wird außerdem die Regel „{{disallowed_rule}}“ aus der Liste der zugelassenen Clients ausgeschlossen.",
|
||||
"last_rule_in_allowlist": "Dieser Client kann nicht gesperrt werden, da das Ausschließen der Regel „{{disallowed_rule}}“ die Liste „Zugelassene Clients“ deaktivieren würde.",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Kindersicherung",
|
||||
"safe_browsing": "Internetsicherheit",
|
||||
"served_from_cache": "{{value}} <i>(aus dem Cache abgerufen)</i>",
|
||||
"form_error_password_length": "Das Passwort muss mindestens {{value}} Zeichen enthalten"
|
||||
"form_error_password_length": "Das Passwort muss mindestens {{value}} Zeichen enthalten",
|
||||
"anonymizer_notification": "<0>Hinweis:</0> Die IP-Anonymisierung ist aktiviert. Sie können sie in den <1>Allgemeinen Einstellungen</1> deaktivieren.",
|
||||
"confirm_dns_cache_clear": "Möchten Sie den DNS-Cache wirklich leeren?",
|
||||
"cache_cleared": "DNS-Cache erfolgreich geleert",
|
||||
"clear_cache": "Cache leeren",
|
||||
"make_static": "Statisch machen",
|
||||
"theme_auto_desc": "Automatisch (basierend auf dem Farbschema Ihres Geräts)",
|
||||
"theme_dark_desc": "Dunkles Farbschema",
|
||||
"theme_light_desc": "Helles Farbschema",
|
||||
"disable_for_seconds": "Für {{count}} Sekunde",
|
||||
"disable_for_seconds_plural": "Für {{count}} Sekunden",
|
||||
"disable_for_minutes": "Für {{count}} Minute",
|
||||
"disable_for_minutes_plural": "Für {{count}} Minuten",
|
||||
"disable_for_hours": "Für {{count}} Stunde",
|
||||
"disable_for_hours_plural": "Für {{count}} Stunden",
|
||||
"disable_until_tomorrow": "Bis morgen",
|
||||
"disable_notify_for_seconds": "Schutz für {{count}} Sekunde deaktivieren",
|
||||
"disable_notify_for_seconds_plural": "Schutz für {{count}} Sekunden deaktivieren",
|
||||
"disable_notify_for_minutes": "Schutz für {{count}} Minute deaktivieren",
|
||||
"disable_notify_for_minutes_plural": "Schutz für {{count}} Minuten deaktivieren",
|
||||
"disable_notify_for_hours": "Schutz für {{count}} Stunde deaktivieren",
|
||||
"disable_notify_for_hours_plural": "Schutz für {{count}} Stunden deaktivieren",
|
||||
"disable_notify_until_tomorrow": "Schutz bis morgen deaktivieren",
|
||||
"enable_protection_timer": "Der Schutz wird in {{time}} wieder aktiviert",
|
||||
"custom_retention_input": "Rückhaltezeit in Stunden eingeben",
|
||||
"custom_rotation_input": "Rotation in Stunden eingeben",
|
||||
"protection_section_label": "Schutz",
|
||||
"log_and_stats_section_label": "Abfrageprotokoll und Statistik",
|
||||
"ignore_query_log": "Diesen Client im Abfrageprotokoll ignorieren",
|
||||
"ignore_statistics": "Diesen Client in der Statistik ignorieren"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 Settings",
|
||||
"form_error_required": "Required field",
|
||||
"form_error_ip4_format": "Invalid IPv4 address",
|
||||
"form_error_ip4_range_start_format": "Invalid IPv4 address of the range start",
|
||||
"form_error_ip4_range_end_format": "Invalid IPv4 address of the range end",
|
||||
"form_error_ip4_gateway_format": "Invalid IPv4 address of the gateway",
|
||||
"form_error_ip6_format": "Invalid IPv6 address",
|
||||
"form_error_ip_format": "Invalid IP address",
|
||||
@@ -47,12 +45,12 @@
|
||||
"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_gateway_ip": "Lease can't have the IP address of the gateway",
|
||||
"out_of_range_error": "Must be out of range \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Must be lower than range start",
|
||||
"greater_range_start_error": "Must be greater than range start",
|
||||
"greater_range_end_error": "Must be greater than range end",
|
||||
"subnet_error": "Addresses must be in one subnet",
|
||||
"gateway_or_subnet_invalid": "Subnet mask invalid",
|
||||
"gateway_or_subnet_invalid": "Invalid subnet mask",
|
||||
"dhcp_form_gateway_input": "Gateway IP",
|
||||
"dhcp_form_subnet_input": "Subnet mask",
|
||||
"dhcp_form_range_title": "Range of IP addresses",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Enabled Parental Control",
|
||||
"disabled_safe_search_toast": "Disabled Safe Search",
|
||||
"enabled_save_search_toast": "Enabled Safe Search",
|
||||
"updated_save_search_toast": "Safe Search settings updated",
|
||||
"enabled_table_header": "Enabled",
|
||||
"name_table_header": "Name",
|
||||
"list_url_table_header": "List URL",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Also a comment.",
|
||||
"example_regex_meaning": "block access to domains matching the specified regular expression.",
|
||||
"example_upstream_regular": "regular DNS (over UDP);",
|
||||
"example_upstream_regular_port": "regular DNS (over UDP, with port);",
|
||||
"example_upstream_udp": "regular DNS (over UDP, hostname);",
|
||||
"example_upstream_dot": "encrypted <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "encrypted <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "encrypted DNS-over-HTTPS with forced <0>HTTP/3</0> and no fallback to HTTP/2 or below;",
|
||||
"example_upstream_doq": "encrypted <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS Stamps</0> for <1>DNSCrypt</1> or <2>DNS-over-HTTPS</2> resolvers;",
|
||||
"example_upstream_tcp": "regular DNS (over TCP);",
|
||||
"example_upstream_tcp_port": "regular DNS (over TCP, with port);",
|
||||
"example_upstream_tcp_hostname": "regular DNS (over TCP, hostname);",
|
||||
"all_lists_up_to_date_toast": "All lists are already up-to-date",
|
||||
"updated_upstream_dns_toast": "Upstream servers successfully saved",
|
||||
"dns_test_ok_toast": "Specified DNS servers are working correctly",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": could not be used, please check that you've written it correctly",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" does not respond to test requests and may not work properly",
|
||||
"unblock": "Unblock",
|
||||
"block": "Block",
|
||||
"disallow_this_client": "Disallow this client",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "The query log has been successfully cleared",
|
||||
"query_log_updated": "The query log has been successfully updated",
|
||||
"query_log_clear": "Clear query logs",
|
||||
"query_log_retention": "Query logs retention",
|
||||
"query_log_retention": "Query logs rotation",
|
||||
"query_log_enable": "Enable log",
|
||||
"query_log_configuration": "Logs configuration",
|
||||
"query_log_disabled": "The query log is disabled and can be configured in the <0>settings</0>",
|
||||
"query_log_strict_search": "Use double quotes for strict search",
|
||||
"query_log_retention_confirm": "Are you sure you want to change query log retention? If you decrease the interval value, some data will be lost",
|
||||
"query_log_retention_confirm": "Are you sure you want to change query log rotation? If you decrease the interval value, some data will be lost",
|
||||
"anonymize_client_ip": "Anonymize client IP",
|
||||
"anonymize_client_ip_desc": "Don't save the client's full IP address to logs or statistics",
|
||||
"dns_config": "DNS server configuration",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Rate limit",
|
||||
"edns_enable": "Enable EDNS client subnet",
|
||||
"edns_cs_desc": "Add the EDNS Client Subnet option (ECS) to upstream requests and log the values sent by the clients in the query log.",
|
||||
"edns_use_custom_ip": "Use custom IP for EDNS",
|
||||
"edns_use_custom_ip_desc": "Allow to use custom IP for EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Respond with NXDOMAIN code",
|
||||
"blocking_mode_null_ip": "Null IP: Respond with zero IP address (0.0.0.0 for A; :: for AAAA)",
|
||||
"blocking_mode_custom_ip": "Custom IP: Respond with a manually set IP address",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Light",
|
||||
"theme_dark": "Dark",
|
||||
"upstream_dns_client_desc": "If you keep this field empty, AdGuard Home will use the servers configured in the <0>DNS settings</0>.",
|
||||
"tracker_source": "Tracker source",
|
||||
"source_label": "Source",
|
||||
@@ -362,7 +370,7 @@
|
||||
"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.",
|
||||
"encryption_server_desc": "If set, AdGuard Home detects ClientIDs, responds to DDR queries, and performs additional connection validations. If not set, these features are disabled. Must match one of the DNS Names in the certificate.",
|
||||
"encryption_redirect": "Redirect to HTTPS automatically",
|
||||
"encryption_redirect_desc": "If checked, AdGuard Home will automatically redirect you from HTTP to HTTPS addresses.",
|
||||
"encryption_https": "HTTPS port",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Issuer",
|
||||
"encryption_hostnames": "Hostnames",
|
||||
"encryption_reset": "Are you sure you want to reset encryption settings?",
|
||||
"encryption_warning": "Warning",
|
||||
"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 number in the range of 80-65535",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Disallowed domains",
|
||||
"access_blocked_desc": "Not to be confused with filters. AdGuard Home drops DNS queries matching these domains, and these queries don't even appear in the query log. You can specify exact domain names, wildcards, or URL filter rules, e.g. \"example.org\", \"*.example.org\", or \"||example.org^\" correspondingly.",
|
||||
"access_settings_saved": "Access settings successfully saved",
|
||||
"updates_checked": "Updates successfully checked",
|
||||
"updates_checked": "A new version of AdGuard Home is available",
|
||||
"updates_version_equal": "AdGuard Home is up-to-date",
|
||||
"check_updates_now": "Check for updates now",
|
||||
"version_request_error": "Update check failed. Please check your Internet connection.",
|
||||
"dns_privacy": "DNS Privacy",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Use <1>{{address}}</1> string.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Use <1>{{address}}</1> string.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Are you sure you want to change statistics retention? If you decrease the interval value, some data will be lost",
|
||||
"statistics_cleared": "Statistics successfully cleared",
|
||||
"statistics_enable": "Enable statistics",
|
||||
"ignore_domains": "Ignored domains (separated by newline)",
|
||||
"ignore_domains_title": "Ignored domains",
|
||||
"ignore_domains_desc_stats": "Queries for these domains are not written to the statistics",
|
||||
"ignore_domains_desc_query": "Queries for these domains are not written to the query log",
|
||||
"interval_hours": "{{count}} hour",
|
||||
"interval_hours_plural": "{{count}} hours",
|
||||
"filters_configuration": "Filters configuration",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Blocklist",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Cache size",
|
||||
"cache_size_desc": "DNS cache size (in bytes).",
|
||||
"cache_size_desc": "DNS cache size (in bytes). To disable caching, leave empty.",
|
||||
"cache_ttl_min_override": "Override minimum TTL",
|
||||
"cache_ttl_max_override": "Override maximum TTL",
|
||||
"enter_cache_size": "Enter cache size (bytes)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Parental Control",
|
||||
"safe_browsing": "Safe Browsing",
|
||||
"served_from_cache": "{{value}} <i>(served from cache)</i>",
|
||||
"form_error_password_length": "Password must be at least {{value}} characters long"
|
||||
"form_error_password_length": "Password must be at least {{value}} characters long",
|
||||
"anonymizer_notification": "<0>Note:</0> IP anonymization is enabled. You can disable it in <1>General settings</1>.",
|
||||
"confirm_dns_cache_clear": "Are you sure you want to clear DNS cache?",
|
||||
"cache_cleared": "DNS cache successfully cleared",
|
||||
"clear_cache": "Clear cache",
|
||||
"make_static": "Make static",
|
||||
"theme_auto_desc": "Auto (based on the color scheme of your device)",
|
||||
"theme_dark_desc": "Dark theme",
|
||||
"theme_light_desc": "Light theme",
|
||||
"disable_for_seconds": "For {{count}} second",
|
||||
"disable_for_seconds_plural": "For {{count}} seconds",
|
||||
"disable_for_minutes": "For {{count}} minute",
|
||||
"disable_for_minutes_plural": "For {{count}} minutes",
|
||||
"disable_for_hours": "For {{count}} hour",
|
||||
"disable_for_hours_plural": "For {{count}} hours",
|
||||
"disable_until_tomorrow": "Until tomorrow",
|
||||
"disable_notify_for_seconds": "Disable protection for {{count}} second",
|
||||
"disable_notify_for_seconds_plural": "Disable protection for {{count}} seconds",
|
||||
"disable_notify_for_minutes": "Disable protection for {{count}} minute",
|
||||
"disable_notify_for_minutes_plural": "Disable protection for {{count}} minutes",
|
||||
"disable_notify_for_hours": "Disable protection for {{count}} hour",
|
||||
"disable_notify_for_hours_plural": "Disable protection for {{count}} hours",
|
||||
"disable_notify_until_tomorrow": "Disable protection until tomorrow",
|
||||
"enable_protection_timer": "Protection will be enabled in {{time}}",
|
||||
"custom_retention_input": "Enter retention in hours",
|
||||
"custom_rotation_input": "Enter rotation in hours",
|
||||
"protection_section_label": "Protection",
|
||||
"log_and_stats_section_label": "Query log and statistics",
|
||||
"ignore_query_log": "Ignore this client in query log",
|
||||
"ignore_statistics": "Ignore this client in statistics"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Configuración DHCP IPv6",
|
||||
"form_error_required": "Campo obligatorio",
|
||||
"form_error_ip4_format": "Dirección IPv4 no válida",
|
||||
"form_error_ip4_range_start_format": "Dirección IPv4 no válida del inicio de rango",
|
||||
"form_error_ip4_range_end_format": "Dirección IPv4 no válida del final de rango",
|
||||
"form_error_ip4_gateway_format": "Dirección IPv4 no válida de la puerta de enlace",
|
||||
"form_error_ip6_format": "Dirección IPv6 no válida",
|
||||
"form_error_ip_format": "Dirección IP no válida",
|
||||
@@ -47,10 +45,10 @@
|
||||
"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_gateway_ip": "La asignación no puede tener la dirección IP de la puerta de enlace",
|
||||
"out_of_range_error": "Debe estar fuera del rango \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Debe ser inferior que el inicio de rango",
|
||||
"greater_range_start_error": "Debe ser mayor que el inicio de rango",
|
||||
"greater_range_end_error": "Debe ser mayor que el final de rango",
|
||||
"subnet_error": "Las direcciones deben estar en una subred",
|
||||
"gateway_or_subnet_invalid": "Máscara de subred no válida",
|
||||
"dhcp_form_gateway_input": "IP de puerta de enlace",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Control parental habilitado",
|
||||
"disabled_safe_search_toast": "Búsqueda segura deshabilitada",
|
||||
"enabled_save_search_toast": "Búsqueda segura habilitada",
|
||||
"updated_save_search_toast": "Configuración de búsqueda segura actualizada",
|
||||
"enabled_table_header": "Habilitado",
|
||||
"name_table_header": "Nombre",
|
||||
"list_url_table_header": "URL de la lista",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# También un comentario.",
|
||||
"example_regex_meaning": "bloquea el acceso a los dominios que coincidan con la expresión regular especificada.",
|
||||
"example_upstream_regular": "DNS regular (mediante UDP).",
|
||||
"example_upstream_regular_port": "DNS regular (mediante UDP, con puerto).",
|
||||
"example_upstream_udp": "DNS regular (mediante UDP, nombre del host).",
|
||||
"example_upstream_dot": "cifrado <0>DNS mediante TLS</0>.",
|
||||
"example_upstream_doh": "cifrado <0>DNS mediante HTTPS</0>.",
|
||||
"example_upstream_doh3": "cifrado DNS mediante HTTPS con <0>HTTP/3</0> forzado y sin alternativa a HTTP/2 o inferior.",
|
||||
"example_upstream_doq": "cifrado <0>DNS mediante QUIC</0>.",
|
||||
"example_upstream_sdns": "<0>DNS Stamps</0> para <1>DNSCrypt</1> o resolutores <2>DNS mediante HTTPS</2>.",
|
||||
"example_upstream_tcp": "DNS regular (mediante TCP).",
|
||||
"example_upstream_tcp_port": "DNS regular (mediante TCP, con puerto).",
|
||||
"example_upstream_tcp_hostname": "DNS regular (mediante TCP, nombre del host).",
|
||||
"all_lists_up_to_date_toast": "Todas las listas ya están actualizadas",
|
||||
"updated_upstream_dns_toast": "Servidores DNS de subida guardados correctamente",
|
||||
"dns_test_ok_toast": "Los servidores DNS especificados funcionan correctamente",
|
||||
"dns_test_not_ok_toast": "Servidor \"{{key}}\": no se puede utilizar, por favor revisa si lo has escrito correctamente",
|
||||
"dns_test_warning_toast": "DNS de subida \"{{key}}\" no responde a las peticiones de prueba y es posible que no funcione correctamente",
|
||||
"unblock": "Desbloquear",
|
||||
"block": "Bloquear",
|
||||
"disallow_this_client": "No permitir a este cliente",
|
||||
@@ -254,12 +257,12 @@
|
||||
"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",
|
||||
"query_log_retention": "Retención de registros de consultas",
|
||||
"query_log_retention": "Rotanción de registros de consultas",
|
||||
"query_log_enable": "Habilitar registro",
|
||||
"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ás seguro de que deseas cambiar la retención del registro de consultas? Si disminuye el valor del intervalo, se perderán algunos datos",
|
||||
"query_log_retention_confirm": "¿Está seguro de que deseas cambiar la rotación del registro de consultas? Si reduces 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 o estadísticas",
|
||||
"dns_config": "Configuración del servidor DNS",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Límite de cantidad",
|
||||
"edns_enable": "Habilitar subred de cliente EDNS",
|
||||
"edns_cs_desc": "Añade la opción subred de cliente EDNS (ECS) a las peticiones del DNS de subida y registra los valores enviados por los clientes en el registro de consultas.",
|
||||
"edns_use_custom_ip": "Usar IP personalizada para EDNS",
|
||||
"edns_use_custom_ip_desc": "Permitir el uso de IP personalizadas para EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Responde con el código NXDOMAIN",
|
||||
"blocking_mode_null_ip": "IP nulo: Responde con dirección IP cero (0.0.0.0 para A; :: para AAAA)",
|
||||
"blocking_mode_custom_ip": "IP personalizada: Responde con una dirección IP establecida manualmente",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Claro",
|
||||
"theme_dark": "Oscuro",
|
||||
"upstream_dns_client_desc": "Si se mantiene este campo vacío, AdGuard Home utilizará los servidores configurados en la <0>configuración del DNS</0>.",
|
||||
"tracker_source": "Fuente del rastreador",
|
||||
"source_label": "Fuente",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "Configuración de cifrado guardado",
|
||||
"encryption_server": "Nombre del servidor",
|
||||
"encryption_server_enter": "Ingresa el nombre del dominio",
|
||||
"encryption_server_desc": "Para utilizar HTTPS, debes ingresar el nombre del servidor que coincida con tu certificado SSL o certificado comodín. Si el campo no está establecido, el servidor aceptará conexiones TLS para cualquier dominio.",
|
||||
"encryption_server_desc": "Si se configura, AdGuard Home detecta los ID de clientes, responde a las consultas DDR y realiza validaciones de conexión adicionales. Si no se configura, estas funciones se deshabilitarán. Debe coincidir con uno de los nombres DNS del certificado.",
|
||||
"encryption_redirect": "Redireccionar a HTTPS automáticamente",
|
||||
"encryption_redirect_desc": "Si está marcado, AdGuard Home redireccionará automáticamente de HTTP a las direcciones HTTPS.",
|
||||
"encryption_https": "Puerto HTTPS",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Emisor",
|
||||
"encryption_hostnames": "Nombres de hosts",
|
||||
"encryption_reset": "¿Estás seguro de que deseas restablecer la configuración de cifrado?",
|
||||
"encryption_warning": "Advertencia",
|
||||
"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 número del puerto en el rango de 80 a 65535",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Dominios no permitidos",
|
||||
"access_blocked_desc": "No debe confundirse con filtros. AdGuard Home descartará las consultas DNS que coincidan con estos dominios, y estas consultas ni siquiera aparecerán en el registro de consultas. Puedes especificar nombres de dominio exactos, comodines o reglas de filtrado de URL, por ejemplo: \"ejemplo.org\", \"*.ejemplo.org\" o \"||ejemplo.org^\" correspondientemente.",
|
||||
"access_settings_saved": "Configuración de acceso guardado correctamente",
|
||||
"updates_checked": "Actualizaciones comprobadas correctamente",
|
||||
"updates_checked": "La nueva versión de AdGuard Home está disponible",
|
||||
"updates_version_equal": "AdGuard Home está actualizado",
|
||||
"check_updates_now": "Buscar actualizaciones ahora",
|
||||
"version_request_error": "Error buscar la actualización. Comprueba tu conexión a Internet.",
|
||||
"dns_privacy": "DNS cifrado",
|
||||
"setup_dns_privacy_1": "<0>DNS mediante TLS:</0> Utiliza la cadena <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS mediante HTTPS:</0> Utiliza la cadena <1>{{address}}</1>.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"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",
|
||||
"statistics_enable": "Habilitar estadísticas",
|
||||
"ignore_domains": "Dominios ignorados (separados por una nueva línea)",
|
||||
"ignore_domains_title": "Dominios ignorados",
|
||||
"ignore_domains_desc_stats": "Las consultas para estos dominios no aparecen en las estadísticas",
|
||||
"ignore_domains_desc_query": "Las consultas para estos dominios no aparecen en el registro de consultas",
|
||||
"interval_hours": "{{count}} hora",
|
||||
"interval_hours_plural": "{{count}} horas",
|
||||
"filters_configuration": "Configuración de filtros",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Lista de bloqueo",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Tamaño de la caché",
|
||||
"cache_size_desc": "Tamaño de la caché DNS (en bytes).",
|
||||
"cache_size_desc": "Tamaño de la caché DNS (en bytes). Para deshabilitar el almacenamiento en caché, déjalo vacío.",
|
||||
"cache_ttl_min_override": "Anular TTL mínimo",
|
||||
"cache_ttl_max_override": "Anular TTL máximo",
|
||||
"enter_cache_size": "Ingresa el tamaño de la caché (bytes)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Control parental",
|
||||
"safe_browsing": "Navegación segura",
|
||||
"served_from_cache": "{{value}} <i>(servido desde la caché)</i>",
|
||||
"form_error_password_length": "La contraseña debe tener al menos {{value}} caracteres"
|
||||
"form_error_password_length": "La contraseña debe tener al menos {{value}} caracteres",
|
||||
"anonymizer_notification": "<0>Nota:</0> La anonimización de IP está habilitada. Puedes deshabilitarla en <1>Configuración general</1>.",
|
||||
"confirm_dns_cache_clear": "¿Estás seguro de que deseas borrar la caché DNS?",
|
||||
"cache_cleared": "Caché DNS borrado correctamente",
|
||||
"clear_cache": "Borrar caché",
|
||||
"make_static": "Hacer estático",
|
||||
"theme_auto_desc": "Automático (basado en el esquema de colores de tu dispositivo)",
|
||||
"theme_dark_desc": "Tema oscuro",
|
||||
"theme_light_desc": "Tema claro",
|
||||
"disable_for_seconds": "Por {{count}} segundo",
|
||||
"disable_for_seconds_plural": "Por {{count}} segundos",
|
||||
"disable_for_minutes": "Por {{count}} minuto",
|
||||
"disable_for_minutes_plural": "Por {{count}} minutos",
|
||||
"disable_for_hours": "Por {{count}} hora",
|
||||
"disable_for_hours_plural": "Por {{count}} horas",
|
||||
"disable_until_tomorrow": "Hasta mañana",
|
||||
"disable_notify_for_seconds": "Desactivar la protección por {{count}} segundo",
|
||||
"disable_notify_for_seconds_plural": "Desactivar la protección por {{count}} segundos",
|
||||
"disable_notify_for_minutes": "Desactivar la protección por {{count}} minuto",
|
||||
"disable_notify_for_minutes_plural": "Desactivar la protección por {{count}} minutos",
|
||||
"disable_notify_for_hours": "Desactivar la protección por {{count}} hora",
|
||||
"disable_notify_for_hours_plural": "Desactivar la protección por {{count}} horas",
|
||||
"disable_notify_until_tomorrow": "Desactivar la protección hasta mañana",
|
||||
"enable_protection_timer": "La protección se activará en {{time}}",
|
||||
"custom_retention_input": "Ingresa la retención en horas",
|
||||
"custom_rotation_input": "Ingresa la rotación en horas",
|
||||
"protection_section_label": "Protección",
|
||||
"log_and_stats_section_label": "Registro de consultas y estadísticas",
|
||||
"ignore_query_log": "Ignorar este cliente en el registro de consultas",
|
||||
"ignore_statistics": "Ignorar este cliente en las estadísticas"
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
{
|
||||
"client_settings": "تنظیمات کلاینت",
|
||||
"example_upstream_reserved": "میتوانید جریان ارسالی DNS <0> را برای یک دامنه مشخص تعیین کنید </0>",
|
||||
"example_upstream_comment": "یک نظر.",
|
||||
"upstream_parallel": "استفاده از جستار موازی برای سرعت دادن به تفکیک با جستار همزمان همه جریان های ارسالی",
|
||||
"parallel_requests": "درخواست های موازی",
|
||||
"load_balancing": "متعادل کننده بار",
|
||||
"bootstrap_dns": "خودراه انداز سرورهای DNS",
|
||||
"bootstrap_dns_desc": "خودراه انداز سرورهای DNS برای تفکیک آدرس آی پی تفکیک کننده های DoH/DoT که شما بعنوان جریان ارسالی تعیین کردید استفاده میشود.",
|
||||
"local_ptr_title": "سرورهای خصوصی DNS",
|
||||
@@ -30,8 +32,6 @@
|
||||
"dhcp_config_saved": "پیکربندی سرور DHCP ذخیره شده است",
|
||||
"form_error_required": "فیلد مورد نیاز",
|
||||
"form_error_ip4_format": "فرمت نامعتبر IPv4",
|
||||
"form_error_ip4_range_start_format": "قالب IPv4 شروع دامنه نامعتبر است",
|
||||
"form_error_ip4_range_end_format": "قالب IPv4 پایان دامنه نامعتبر است",
|
||||
"form_error_ip4_gateway_format": "قالب IPv4 درگاه نامعتبر است",
|
||||
"form_error_ip6_format": "فرمت نامعتبر IPv6",
|
||||
"form_error_ip_format": "فرمت IPv4 نامعتبر است",
|
||||
@@ -42,7 +42,6 @@
|
||||
"out_of_range_error": "باید خارج از دامنه باشد\"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "باید کمتر از شروع دامنه باشد",
|
||||
"greater_range_start_error": "باید بیشتر از شروع دامنه باشد",
|
||||
"greater_range_end_error": "باید بیشتر از پایان دامنه باشد",
|
||||
"subnet_error": "آدرس ها باید در یک زیرشبکه باشند",
|
||||
"gateway_or_subnet_invalid": "پوشش زیرشبکه نامعتبر است",
|
||||
"dhcp_form_gateway_input": "آی پی دروازه",
|
||||
@@ -208,6 +207,9 @@
|
||||
"dns_test_not_ok_toast": "سرور \"{{key}}\": نمیتواند مورد استفاده قرار گیرد،لطفا بررسی کنید آن را بدرستی نوشته اید",
|
||||
"unblock": "رفع انسداد",
|
||||
"block": "مسدود کردن",
|
||||
"disallow_this_client": "این مشتری را رد کنید",
|
||||
"allow_this_client": "به این مشتری اجازه دهید",
|
||||
"block_for_this_client_only": "مسدود کردن فقط برای این مشتری",
|
||||
"time_table_header": "زمان",
|
||||
"date": "تاریخ",
|
||||
"domain_name_table_header": "نام دامنه",
|
||||
@@ -266,6 +268,8 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: پاسخ با کُد NXDOMAIN",
|
||||
"blocking_mode_null_ip": "Null IP: پاسخ با آدرس آی پی صفر(0.0.0.0 برای A; :: برای AAAA)",
|
||||
"blocking_mode_custom_ip": "آی پی دستی: پاسخ با آدرس آی پی دستی تنظیم شده",
|
||||
"theme_light": "پوسته روشن",
|
||||
"theme_dark": "پوسته تیره",
|
||||
"upstream_dns_client_desc": "اگر این فیلد را خالی نگه دارید، AdGuard Home از سرور پیکربندی شده در <0> تنظیماتDNS </0> استفاده می کند.",
|
||||
"tracker_source": "منبع ردیاب",
|
||||
"source_label": "منبع",
|
||||
@@ -356,6 +360,7 @@
|
||||
"encryption_issuer": "صادر کننده",
|
||||
"encryption_hostnames": "نام میزبان",
|
||||
"encryption_reset": "آیا میخواهید تنظیمات رمزگُذاری به پیش فرض بازگردد؟",
|
||||
"encryption_warning": "هشدار",
|
||||
"topline_expiring_certificate": "گواهینامه اِس اِس اِل شما در صدد انقضاء است. <0>تنظیمات رمزگُذاری</0> را بروز رسانی کنید.",
|
||||
"topline_expired_certificate": "گواهینامه اِس اِس اِل شما منقضی شده است. <0>تنظیمات رمزگُذاری</0> را بروز رسانی کنید.",
|
||||
"form_error_port_range": "مقدار پورت را در محدوده 80-65535 وارد کنید",
|
||||
@@ -413,9 +418,10 @@
|
||||
"access_blocked_title": "دامنه های مسدود شده",
|
||||
"access_blocked_desc": "این را با فیلتر ها به اشتباه نگیرید.AdGuard Home جستار DNS را با این دامنه ها در جستار سوال ها نمی پذیرد.",
|
||||
"access_settings_saved": "تنظیمات دسترسی با موفقیت ذخیره شد",
|
||||
"updates_checked": "بروز رسانی با موفقیت بررسی شد",
|
||||
"updates_checked": "نسخه جدیدی از AdGuard Home در دسترس است",
|
||||
"updates_version_equal": "AdGuard Home بروز است",
|
||||
"check_updates_now": "حالا بررسی برای بروز رسانی",
|
||||
"version_request_error": "بررسی بروزرسانی موفق نشد.لطفا ارتباط اینترنتی خود را بررسی کنید",
|
||||
"dns_privacy": "حریم خصوصی DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> استفاده از<1>{{address}}</1> .",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> استفاده از <1>{{address}}</1> .",
|
||||
@@ -554,6 +560,7 @@
|
||||
"safe_search": "جستجوی اَمن",
|
||||
"blocklist": "لیست سیاه",
|
||||
"milliseconds_abbreviation": "هـ ثـ",
|
||||
"cache_size": "اندازه کش",
|
||||
"cache_optimistic": "حالت ویژه پردازش",
|
||||
"cache_optimistic_desc": "AdGuard Home را وادار می کند که از سمت حافظه پنهان پاسخ دهد حتی وقتی که موارد وارد شده منقضی شده باشد و همچنین سعی بر تازه کردن آنها می کند.",
|
||||
"filter_category_general": "General",
|
||||
@@ -562,5 +569,6 @@
|
||||
"use_saved_key": "از کلید ذخیره شده قبلی استفاده کنید",
|
||||
"parental_control": "نظارت والدین",
|
||||
"safe_browsing": "وب گردی اَمن",
|
||||
"form_error_password_length": "رمزعبور باید حداقل {{value}} کاراکتر باشد."
|
||||
"form_error_password_length": "رمزعبور باید حداقل {{value}} کاراکتر باشد.",
|
||||
"protection_section_label": "حفاظت"
|
||||
}
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
"bootstrap_dns": "Bootstrap DNS-palvelimet",
|
||||
"bootstrap_dns_desc": "Bootstrap DNS-palvelimia käytetään ylävirroiksi määritettyjen DoH/DoT-resolvereiden IP-osoitteiden selvitykseen.",
|
||||
"local_ptr_title": "Yksityiset käänteiset DNS-palvelimet",
|
||||
"local_ptr_desc": "DNS-palvelimet, joita AdGuard Home käyttää paikallisille PTR-kyselyille. Näitä palvelimia käytetään yksityistä IP-osoitetta käyttävien PTR-kyselyiden osoitteiden, kuten \"192.168.12.34\", selvitykseen käänteisen DNS:n avulla. Jos ei käytössä, AdGuard Home käyttää käyttöjärjestelmän oletusarvoisia DNS-resolvereita, poislukien AdGuard Homen omat osoitteet.",
|
||||
"local_ptr_desc": "DNS-palvelimet, joita AdGuard Home käyttää paikallisille PTR-pyynnöille. Näitä palvelimia käytetään yksityistä IP-osoitetta käyttävien PTR-pyyntöjen osoitteiden, kuten \"192.168.12.34\", selvitykseen käänteisen DNS:n avulla. Jos ei käytössä, AdGuard Home käyttää käyttöjärjestelmän oletusarvoisia DNS-resolvereita, poislukien AdGuard Homen omat osoitteet.",
|
||||
"local_ptr_default_resolver": "Oletusarvoisesti AdGuard Home käyttää seuraavia käänteisiä DNS-resolvereita: {{ip}}.",
|
||||
"local_ptr_no_default_resolver": "AdGuard Home ei voinut määrittää tälle järjestelmälle sopivaa yksityistä käänteistä DNS-resolveria.",
|
||||
"local_ptr_placeholder": "Syötä yksi palvelimen osoite per rivi",
|
||||
"resolve_clients_title": "Käytä päätelaitteiden IP-osoitteille käänteistä selvitystä",
|
||||
"resolve_clients_desc": "Selvitä päätelaitteiden IP-osoitteiden isäntänimet käänteisesti lähettämällä PTR-kyselyt sopiville resolvereille (yksityiset DNS-palvelimet paikallisille päätelaitteille, lähtevät palvelimet päätelaitteille, joilla on julkiset IP-osoitteet).",
|
||||
"resolve_clients_desc": "Selvitä päätelaitteiden IP-osoitteiden isäntänimet käänteisesti lähettämällä PTR-pyynnöt sopiville resolvereille (yksityiset DNS-palvelimet paikallisille päätelaitteille, lähtevät palvelimet päätelaitteille, joilla on julkiset IP-osoitteet).",
|
||||
"use_private_ptr_resolvers_title": "Käytä yksityisiä käänteisiä DNS-resolvereita",
|
||||
"use_private_ptr_resolvers_desc": "Suorita käänteiset DNS-selvitykset paikallisesti tarjotuille osoitteille käyttäen näitä ylävirran palvelimia. Jos ei käytössä, vastaa AdGuard Home kaikkiin sen tyyppisiin PTR-pyyntöihin NXDOMAIN-arvolla, pois lukien DHCP, /etc/hosts, yms. -tiedoista tunnistettut päätelaitteet.",
|
||||
"check_dhcp_servers": "Etsi DHCP-palvelimia",
|
||||
@@ -24,7 +24,7 @@
|
||||
"unavailable_dhcp": "DHCP ei ole käytettävissä",
|
||||
"unavailable_dhcp_desc": "AdGuard Home ei voi suorittaa DHCP-palvelinta käyttöjärjestelmässäsi",
|
||||
"dhcp_title": "DHCP-palvelin (kokeellinen!)",
|
||||
"dhcp_description": "Jos reitittimessäsi ei ole DHCP-asetuksia, voit käyttää AdGuard Homen omaa sisäänrakennettua DHCP-palvelinta.",
|
||||
"dhcp_description": "Jollei reitittimesi tarjoa DHCP-asetuksia, voit käyttää AdGuard Homen omaa sisäänrakennettua DHCP-palvelinta.",
|
||||
"dhcp_enable": "Ota DHCP-palvelin käyttöön",
|
||||
"dhcp_disable": "Poista DHCP-palvelin käytöstä",
|
||||
"dhcp_not_found": "On turvallista ottaa sisäänrakennettu DHCP-palvelin käyttöön, koska AdGuard Home ei havainnut verkossa muita aktiivisia DHCP-palvelimia. Suosittelemme, että varmistat tämän vielä itse, koska automaattinen tunnistus ei ole 100% varma.",
|
||||
@@ -37,20 +37,18 @@
|
||||
"dhcp_ipv6_settings": "DHCP:n IPv6-asetukset",
|
||||
"form_error_required": "Pakollinen kenttä",
|
||||
"form_error_ip4_format": "Virheellinen IPv4-osoite",
|
||||
"form_error_ip4_range_start_format": "Virheellinen IPv4-osoitealueen aloitusosoite",
|
||||
"form_error_ip4_range_end_format": "Virheellinen IPv4-osoitealueen päätösosoite",
|
||||
"form_error_ip4_gateway_format": "Virheellinen yhdyskäytävän IPv4-osoite",
|
||||
"form_error_ip6_format": "Virheellinen IPv6-osoite",
|
||||
"form_error_ip_format": "Virheellinen IP-osoite",
|
||||
"form_error_mac_format": "Virheellinen MAC-osoite",
|
||||
"form_error_client_id_format": "Päätelaitteen ID voi sisältää ainoastaan numeroita, pieniä kirjaimia sekä yhdysviivoja",
|
||||
"form_error_client_id_format": "ClientID-tunniste voi sisältää ainoastaan numeroita, pieniä kirjaimia sekä yhdysviivoja",
|
||||
"form_error_server_name": "Virheellinen palvelimen nimi",
|
||||
"form_error_subnet": "Aliverkko \"{{cidr}}\" ei sisällä IP-osoitetta \"{{ip}}\"",
|
||||
"form_error_positive": "Oltava suurempi kuin 0",
|
||||
"form_error_gateway_ip": "Lainalla ei voi olla yhdyskäytävän IP-osoitetta",
|
||||
"out_of_range_error": "Oltava alueen \"{{start}}\" - \"{{end}}\" ulkopuolella",
|
||||
"lower_range_start_error": "Oltava alueen aloitusarvoa pienempi",
|
||||
"greater_range_start_error": "Oltava alueen aloitusarvoa suurempi",
|
||||
"greater_range_end_error": "Oltava alueen päätösarvoa pienempi",
|
||||
"subnet_error": "Osoitteiden tulee olla yhdessä aliverkossa",
|
||||
"gateway_or_subnet_invalid": "Virheellinen aliverkon peite",
|
||||
"dhcp_form_gateway_input": "Yhdyskäytävän IP-osoite",
|
||||
@@ -70,14 +68,14 @@
|
||||
"dhcp_error": "AdGuard Home ei voinut tunnistaa, onko verkossa toista aktiivista DHCP-palvelinta",
|
||||
"dhcp_static_ip_error": "Jotta DHCP-palvelinta voidaan käyttää, on määritettävä kiinteä IP-osoite. AdGuard Home ei voinut tunnistaa, onko tälle verkkosovittimelle määritetty IP-osoite kiinteä. Määritä kiinteä IP-osoite itse.",
|
||||
"dhcp_dynamic_ip_found": "Järjestelmäsi käyttää verkkosovittimelle <0>{{interfaceName}}</0> dynaamista IP-osoitetta. Jotta voit käyttää DHCP-palvelinta, on sovittimelle määritettävä kiinteä IP-osoite. Nykyinen IP-osoitteesi on <0>{{ipAddress}}</0>. Tämä osoite määritetään automaattisesti kiinteäksi, jos painat \"Ota DHCP-palvelin käyttöön\" -painiketta.",
|
||||
"dhcp_lease_added": "Kiinteä laina \"{{key}}\" on lisätty",
|
||||
"dhcp_lease_added": "Kiinteä laina \"{{key}}\" lisättiin",
|
||||
"dhcp_lease_deleted": "Kiinteä laina \"{{key}}\" poistettiin",
|
||||
"dhcp_new_static_lease": "Uusi kiinteä laina",
|
||||
"dhcp_static_leases_not_found": "Kiinteitä DHCP-lainoja ei löytynyt",
|
||||
"dhcp_add_static_lease": "Lisää kiinteä laina",
|
||||
"dhcp_reset_leases": "Tyhjennä kaikki lainat",
|
||||
"dhcp_reset_leases_confirm": "Haluatko varmasti tyhjentää kaikki lainat?",
|
||||
"dhcp_reset_leases_success": "DHCP-lainat tyhjennettiin",
|
||||
"dhcp_reset_leases_success": "DHCP-lainojen tyhjennys onnistui",
|
||||
"dhcp_reset": "Haluatko varmasti palauttaa DHCP-asetukset?",
|
||||
"country": "Maa",
|
||||
"city": "Kaupunki",
|
||||
@@ -87,8 +85,8 @@
|
||||
"response_details": "Vastauksen tiedot",
|
||||
"request_details": "Pyynnön tiedot",
|
||||
"client_details": "Päätelaitteen tiedot",
|
||||
"details": "Tiedot",
|
||||
"back": "Takaisin",
|
||||
"details": "Yksityiskohdat",
|
||||
"back": "Palaa takaisin",
|
||||
"dashboard": "Tila",
|
||||
"settings": "Asetukset",
|
||||
"filters": "Suodattimet",
|
||||
@@ -148,8 +146,8 @@
|
||||
"no_servers_specified": "Palvelimia ei ole määritetty",
|
||||
"general_settings": "Yleiset asetukset",
|
||||
"dns_settings": "DNS-asetukset",
|
||||
"dns_blocklists": "DNS-estolistat",
|
||||
"dns_allowlists": "DNS-sallittujen listat",
|
||||
"dns_blocklists": "DNS-estot",
|
||||
"dns_allowlists": "DNS-sallinnat",
|
||||
"dns_blocklists_desc": "AdGuard Home estää estolistalla olevat verkkotunnukset.",
|
||||
"dns_allowlists_desc": "DNS-sallittujen listalla olevat verkkotunnukset sallitaan myös silloin, jos ne ovat jollain muulla estolistalla.",
|
||||
"custom_filtering_rules": "Omat suodatussäännöt",
|
||||
@@ -169,10 +167,11 @@
|
||||
"enabled_parental_toast": "Lapsilukko otettiin käyttöön",
|
||||
"disabled_safe_search_toast": "Turvallinen haku poistettiin käytöstä",
|
||||
"enabled_save_search_toast": "Turvallinen haku otettiin käyttöön",
|
||||
"updated_save_search_toast": "Turvallisen haun asetukset päivitettiin",
|
||||
"enabled_table_header": "Käytössä",
|
||||
"name_table_header": "Nimi",
|
||||
"list_url_table_header": "Listan URL",
|
||||
"rules_count_table_header": "Sääntöjä",
|
||||
"rules_count_table_header": "Sääntöjen määrä",
|
||||
"last_time_updated_table_header": "Viimeisin päivitys",
|
||||
"actions_table_header": "Toiminnot",
|
||||
"request_table_header": "Pyyntö",
|
||||
@@ -209,18 +208,22 @@
|
||||
"example_comment_meaning": "vain kommentti;",
|
||||
"example_comment_hash": "# Tämäkin on kommentti.",
|
||||
"example_regex_meaning": "estä pääsy määritettyä säännöllistä lauseketta vastaaviin verkkotunnuksiin.",
|
||||
"example_upstream_regular": "tavallinen DNS (UDP:n välityksellä);",
|
||||
"example_upstream_regular": "tavallinen DNS (UDP);",
|
||||
"example_upstream_regular_port": "tavallinen DNS (UDP, portti);",
|
||||
"example_upstream_udp": "tavallinen DNS (UDP, isäntänimi);",
|
||||
"example_upstream_dot": "salattu <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "salattu <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "salattu DNS-over-HTTPS <0>HTTP/3</0>-pakotuksella, ilman HTTP/2 (tai alempi) -varmistusta;",
|
||||
"example_upstream_doq": "salattu <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS Stamp</0> -merkinnät <1>DNSCrypt</1> tai <2>DNS-over-HTTPS</2> -resolvereille;",
|
||||
"example_upstream_tcp": "tavallinen DNS (TCP:n välityksellä);",
|
||||
"example_upstream_tcp": "tavallinen DNS (TCP);",
|
||||
"example_upstream_tcp_port": "tavallinen DNS (TCP, portti);",
|
||||
"example_upstream_tcp_hostname": "tavallinen DNS (TCP, isäntänimi);",
|
||||
"all_lists_up_to_date_toast": "Kaikki listat ovat ajan tasalla",
|
||||
"updated_upstream_dns_toast": "Ylävirtojen palvelimet tallennettiin",
|
||||
"dns_test_ok_toast": "Määritetyt DNS-palvelimet toimivat oikein",
|
||||
"dns_test_not_ok_toast": "Palvelin \"{{key}}\": ei voitu käyttää, tarkista sen oikeinkirjoitus",
|
||||
"dns_test_warning_toast": "Datavuon \"{{key}}\" ei vastaa testipyyntöihin eikä välttämättä toimi kunnolla",
|
||||
"unblock": "Salli",
|
||||
"block": "Estä",
|
||||
"disallow_this_client": "Estä tämä päätelaite",
|
||||
@@ -251,15 +254,15 @@
|
||||
"query_log_response_status": "Tila: {{value}}",
|
||||
"query_log_filtered": "Suodattanut {{filter}}",
|
||||
"query_log_confirm_clear": "Haluatko varmasti tyhjentää pyyntöhistorian?",
|
||||
"query_log_cleared": "Pyyntöhistoria tyhjennettiin",
|
||||
"query_log_updated": "Pyyntöhistoria päivitettiin",
|
||||
"query_log_cleared": "Pyyntöhistorian tyhjennys onnistui",
|
||||
"query_log_updated": "Pyyntöhistorian päivitys onnistui",
|
||||
"query_log_clear": "Tyhjennä pyyntöhistoria",
|
||||
"query_log_retention": "Pyyntöhistorian säilytys",
|
||||
"query_log_retention": "Kyselylokien kierto",
|
||||
"query_log_enable": "Käytä historiaa",
|
||||
"query_log_configuration": "Historian määritys",
|
||||
"query_log_disabled": "Pyyntöhistoria ei ole käytössä. Voit ottaa sen käyttöön <0>asetuksissa</0>",
|
||||
"query_log_strict_search": "Käytä tarkalle haulle lainausmerkkejä",
|
||||
"query_log_retention_confirm": "Haluatko varmasti muuttaa pyyntöhistoriasi säilytysaikaa? Jos lyhennät aikaa, joitakin tietoja menetetään",
|
||||
"query_log_retention_confirm": "Haluatko varmasti muuttaa kyselylokin kiertoa? Jos pienennät intervalliarvoa, osa tiedoista menetetään",
|
||||
"anonymize_client_ip": "Piilota päätelaitteen IP-osoite",
|
||||
"anonymize_client_ip_desc": "Älä tallenna päätelaitteen täydellistä IP-osoitetta historiaan ja tilastoihin.",
|
||||
"dns_config": "DNS-palvelimen määritys",
|
||||
@@ -270,16 +273,16 @@
|
||||
"nxdomain": "NXDOMAIN",
|
||||
"refused": "REFUSED",
|
||||
"null_ip": "Tyhjä IP",
|
||||
"custom_ip": "Oma IP",
|
||||
"custom_ip": "Mukautettu IP-osoite",
|
||||
"blocking_ipv4": "IPv4-esto",
|
||||
"blocking_ipv6": "IPv6-esto",
|
||||
"dnscrypt": "DNSCrypt",
|
||||
"dns_over_https": "DNS-over-HTTPS",
|
||||
"dns_over_tls": "DNS-over-TLS",
|
||||
"dns_over_quic": "DNS-over-QUIC",
|
||||
"client_id": "Päätelaitteen ID",
|
||||
"client_id_placeholder": "Syötä päätelaitteen ID",
|
||||
"client_id_desc": "Päätelaitteet voidaan tunnistaa erityisillä ID-tunnisteilla. Lue lisää päätelaitteiden tunnistuksesta <a>täältä</a>.",
|
||||
"client_id": "ClientID",
|
||||
"client_id_placeholder": "Syötä ClientID",
|
||||
"client_id_desc": "Päätelaitteet voidaan tunnistaa erityisillä ClientID-tunnisteilla. Lue lisää päätelaitteiden tunnistuksesta <a>täältä</a>.",
|
||||
"download_mobileconfig_doh": "Lataa .mobileconfig-tiedosto DNS-over-HTTPS -käytölle",
|
||||
"download_mobileconfig_dot": "Lataa .mobileconfig-tiedosto DNS-over-TLS -käytölle",
|
||||
"download_mobileconfig": "Lataa asetustiedosto",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Pyyntöjen ajoitus",
|
||||
"edns_enable": "Käytä EDNS-päätelaitealivekkoa",
|
||||
"edns_cs_desc": "Lähetä päätelaitteiden aliverkot DNS-palvelimille.",
|
||||
"edns_use_custom_ip": "Käytä omaa IP-osoitetta EDNS:lle",
|
||||
"edns_use_custom_ip_desc": "Salli oman IP-osoitteen käyttö EDNS-mekanismille.",
|
||||
"rate_limit_desc": "Päätelaitteelle sallittu pyyntöjen enimmäismäärä sekunnissa. Arvo 0 tarkoittaa rajatonta.",
|
||||
"blocking_ipv4_desc": "Estettyyn A-pyyntöön palautettava IP-osoite",
|
||||
"blocking_ipv6_desc": "Estettyyn AAAA-pyyntöön palautettava IP-osoite",
|
||||
@@ -295,7 +300,10 @@
|
||||
"blocking_mode_refused": "REFUSED: Vastaa REFUSED-koodilla",
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Vastaa NXDOMAIN-koodilla",
|
||||
"blocking_mode_null_ip": "Tyhjä IP: Vastaa IP-nollaosoitteella (0.0.0.0 korvaa A; :: korvaa AAAA)",
|
||||
"blocking_mode_custom_ip": "Oma IP: Vastaa itse määritetyllä IP-osoitteella",
|
||||
"blocking_mode_custom_ip": "Mukautettu IP: Vastaa manuaalisesti määritetyllä IP-osoitteella",
|
||||
"theme_auto": "Automaattinen",
|
||||
"theme_light": "Vaalea",
|
||||
"theme_dark": "Tumma",
|
||||
"upstream_dns_client_desc": "Jos tämä on tyhjä, käyttää AdGuard Home <0>DNS-asetuksissa</0> määritettyjä palvelimia.",
|
||||
"tracker_source": "Seurannan lähde",
|
||||
"source_label": "Lähde",
|
||||
@@ -344,12 +352,12 @@
|
||||
"install_devices_macos_list_2": "Paina \"Verkko\".",
|
||||
"install_devices_macos_list_3": "Valitse listan ensimmäinen yhteys ja paina \"Lisävalinnat\".",
|
||||
"install_devices_macos_list_4": "Valitse DNS-välilehti ja syötä AdGuard Home -palvelimesi osoitteet.",
|
||||
"install_devices_android_list_1": "Napauta Android-laitteesi aloitusnäytöstä tai sovellusvalikosta \"Asetukset\".",
|
||||
"install_devices_android_list_2": "Napauta \"Yhteydet\" ja sitten \"Wi-Fi\". Näytetään kaikki käytettävissä olevat langattomat verkot (mobiiliverkolle ei ole mahdollista määrittää omaa DNS-palvelinta).",
|
||||
"install_devices_android_list_3": "Napauta yhdistetyn verkon vieressä olevaa asetuskuvaketta tai paina verkkoa pitkään ja valitse \"Muokkaa verkkoa\".",
|
||||
"install_devices_android_list_4": "Saatat joutua napauttamaan \"Lisäasetukset\" nähdäksesi lisää valintoja. Muuttaaksesi DNS-asetuksia, on \"IP-asetukset\" -kohdan \"DHCP\" -valinta vaihdettava \"Staattinen\" -valintaan.",
|
||||
"install_devices_android_list_1": "Paina Android-laitteesi aloitusnäytöstä tai sovellusvalikosta \"Asetukset\".",
|
||||
"install_devices_android_list_2": "Paina \"Yhteydet\" ja sitten \"Wi-Fi\". Kaikki käytettävissä olevat langattomat verkot näytetään (mobiiliverkolle ei ole mahdollista määrittää omaa DNS-palvelinta).",
|
||||
"install_devices_android_list_3": "Paina yhdistetyn verkon vieressä olevaa asetuskuvaketta tai paina verkkoa pitkään ja valitse \"Muokkaa verkkoa\".",
|
||||
"install_devices_android_list_4": "Saatat joutua painamaan \"Lisäasetukset\" nähdäksesi enemmän valintoja. Muuttaaksesi DNS-asetuksia, on \"IP-asetukset\" -kohdan \"DHCP\" -valinta vaihdettava \"Staattinen\" -valintaan.",
|
||||
"install_devices_android_list_5": "Syötä \"DNS 1\" ja \"DNS 2\" -kenttiin AdGuard Home -palvelimesi osoitteet.",
|
||||
"install_devices_ios_list_1": "Napauta aloitusnäytöstä \"Asetukset\".",
|
||||
"install_devices_ios_list_1": "Paina aloitusnäytöstä \"Asetukset\".",
|
||||
"install_devices_ios_list_2": "Valitse vasemmalta \"Wi-Fi\" (mobiiliverkolle ei ole mahdollista määrittää omaa DNS-palvelinta).",
|
||||
"install_devices_ios_list_3": "Valitse tällä hetkellä aktiivinen verkko.",
|
||||
"install_devices_ios_list_4": "Syötä \"DNS\" -kenttään AdGuard Home -palvelimesi osoitteet.",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "Salausasetukset tallennettiin",
|
||||
"encryption_server": "Palvelimen nimi",
|
||||
"encryption_server_enter": "Syötä verkkotunnuksesi",
|
||||
"encryption_server_desc": "HTTPS-yhteyden käyttöä varten, on syötettävä SSL- tai jokerivarmennetta vastaava palvelimen nimi. Jos kenttä on tyhjä, sallitaan kaikkien verkkotunnusten TLS-yhteydet.",
|
||||
"encryption_server_desc": "Jos määritetty, AdGuard Home tunnistaa ClientID-tunnisteet, vastaa DDR-pyyntöihin ja suorittaa yhteyden lisätarkistuksia. Jos ei määritetty, nämä ominaisuudet eivät ole käytössä. On vastattava yhtä varmenteen DNS-nimistä.",
|
||||
"encryption_redirect": "Automaattinen HTTPS-ohjaus",
|
||||
"encryption_redirect_desc": "Jos käytössä, AdGuard Home ohjaa HTTP-osoitteet automaattisesti HTTPS-osoitteisiin.",
|
||||
"encryption_https": "HTTPS-portti",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Toimittaja",
|
||||
"encryption_hostnames": "Isäntänimet",
|
||||
"encryption_reset": "Haluatko varmasti palauttaa salausasetukset?",
|
||||
"encryption_warning": "Varoitus",
|
||||
"topline_expiring_certificate": "SSL-varmenteesi on erääntymässä. Päivitä <0>Salausasetukset</0>.",
|
||||
"topline_expired_certificate": "SSL-varmenteesi on erääntynyt. Päivitä <0>Salausasetukset</0>.",
|
||||
"form_error_port_range": "Syötä portti väliltä 80-65535",
|
||||
@@ -410,8 +419,8 @@
|
||||
"clients_title": "Pysyvät päätelaitteet",
|
||||
"clients_desc": "Määritä pysyvät AdGuard Homeen yhdistetyt päätelaitetiedot.",
|
||||
"settings_global": "Yleinen",
|
||||
"settings_custom": "Oma",
|
||||
"table_client": "Päätelaite",
|
||||
"settings_custom": "Mukautettu",
|
||||
"table_client": "Asiakas",
|
||||
"table_name": "Nimi",
|
||||
"save_btn": "Tallenna",
|
||||
"client_add": "Lisää päätelaite",
|
||||
@@ -419,7 +428,7 @@
|
||||
"client_edit": "Muokkaa päätelaitetta",
|
||||
"client_identifier": "Tunniste",
|
||||
"ip_address": "IP-osoite",
|
||||
"client_identifier_desc": "Päätelaitteet voidaan tunnistaa IP- tai MAC-osoitteista, CIDR-merkinnöistä tai erityisistä päätelaite ID -tunnisteista (voidaan käyttää DoT/DoH/DoQ yhteydessä). Lue lisää päätelaitteiden tunnistuksesta <0>täältä</0>.",
|
||||
"client_identifier_desc": "Päätelaitteet voidaan tunnistaa IP- tai MAC-osoitteista, CIDR-merkinnöistä tai erityisistä ClientID-tunnisteista (voidaan käyttää DoT/DoH/DoQ yhteydessä). Lue lisää päätelaitteiden tunnistuksesta <0>täältä</0>.",
|
||||
"form_enter_ip": "Syötä IP-osoite",
|
||||
"form_enter_subnet_ip": "Syötä aliverkossa \"{{cidr}}\" oleva IP-osoite",
|
||||
"form_enter_mac": "Syötä MAC-osoite",
|
||||
@@ -439,15 +448,16 @@
|
||||
"access_title": "Käytön asetukset",
|
||||
"access_desc": "Tässä voidaan määrittää AdGuard Homen DNS-palvelimen käyttöoikeussääntöjä.",
|
||||
"access_allowed_title": "Sallitut päätelaitteet",
|
||||
"access_allowed_desc": "Lista CIDR-merkinnöistä, IP-osoitteista tai <a>päätelaite ID</a> -tunnisteista. Jos listalla on kohteita, hyväksyy AdGuard Home pyyntöjä vain näiltä päätelaitteilta.",
|
||||
"access_allowed_desc": "Lista CIDR-merkinnöistä, IP-osoitteista tai <a>ClientID</a>-tunnisteista. Jos listalla on kohteita, hyväksyy AdGuard Home pyyntöjä vain näiltä päätelaitteilta.",
|
||||
"access_disallowed_title": "Kielletyt päätelaitteet",
|
||||
"access_disallowed_desc": "Lista CIDR-merkinnöistä, IP-osoitteista tai <a>päätelaite ID</a> -tunnisteista. Jos listalla on kohteita, hylkää AdGuard Home näiden päätelaitteiden pyynnöt. Tätä kenttää ei huomioida, jos sallittuja päätelaitteita on määritetty.",
|
||||
"access_disallowed_desc": "Lista CIDR-merkinnöistä, IP-osoitteista tai <a>ClientID</a>-tunnisteista. Jos listalla on kohteita, hylkää AdGuard Home näiden päätelaitteiden pyynnöt. Tätä kenttää ei huomioida, jos sallittuja päätelaitteita on määritetty.",
|
||||
"access_blocked_title": "Kielletyt verkkotunnukset",
|
||||
"access_blocked_desc": "Ei pidä sekoittaa suodattimiin. AdGuard Home hylkää näiden verkkotunnusten DNS-pyynnöt, eivätkä nämä pyynnöt näy edes pyyntöhistoriassa. Tähän voidaan syöttää tarkkoja verkkotunnuksia, jokerimerkkejä tai URL-suodatussääntöjä, kuten \"example.org\", \"*.example.org\" tai \"||example.org^\".",
|
||||
"access_settings_saved": "Käytön asetukset tallennettiin",
|
||||
"updates_checked": "Päivitykset tarkastettiin",
|
||||
"updates_checked": "Uusi versio AdGuard Home -ohjelmasta on saatavana\n",
|
||||
"updates_version_equal": "AdGuard Home on ajan tasalla",
|
||||
"check_updates_now": "Tarkista päivitykset nyt",
|
||||
"version_request_error": "Päivitystarkistus epäonnistui. Tarkista Internet-yhteytesi.",
|
||||
"dns_privacy": "DNS-tietosuoja",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Käytä merkkijonoa <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Käytä merkkijonoa <1>{{address}}</1>.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Haluatko varmasti muuttaa tilastojen säilytysaikaa? Jos aikaa lyhennetään, joitakin tietoja menetetään.",
|
||||
"statistics_cleared": "Tilastot tyhjennettiin",
|
||||
"statistics_enable": "Ota tilastointi käyttöön",
|
||||
"ignore_domains": "Ohitettavat verkkotunnukset (erotettu rivinvaihdolla)",
|
||||
"ignore_domains_title": "Ohitettavat verkkotunnukset",
|
||||
"ignore_domains_desc_stats": "Näihin verkkotunnuksiin lähetettyjä pyyntöjä ei tallenneta tilastoihin.",
|
||||
"ignore_domains_desc_query": "Näihin verkkotunnuksiin lähetettyjä pyyntöjä ei tallenneta pyyntöhistoriaan.",
|
||||
"interval_hours": "{{count}} tunti",
|
||||
"interval_hours_plural": "{{count}} tuntia",
|
||||
"filters_configuration": "Suodatinten määritys",
|
||||
@@ -537,8 +551,8 @@
|
||||
"descr": "Kuvaus",
|
||||
"whois": "WHOIS",
|
||||
"filtering_rules_learn_more": "<0>Lue lisää</0> omien hosts-listojesi luonnista.",
|
||||
"blocked_by_response": "Vastauksen sisältämän CNAME:n tai IP:n estämä",
|
||||
"blocked_by_cname_or_ip": "CNAME:n tai IP:n estämä",
|
||||
"blocked_by_response": "Estetty vastauksen CNAME:n tai IP:n perusteella",
|
||||
"blocked_by_cname_or_ip": "Estetty CNAME:n tai IP:n perusteella",
|
||||
"try_again": "Yritä uudelleen",
|
||||
"domain_desc": "Syötä korvattava verkkotunnus tai jokerimerkki.",
|
||||
"example_rewrite_domain": "korvaa vain tämän verkkotunnuksen vastaukset",
|
||||
@@ -592,7 +606,7 @@
|
||||
"show_whitelisted_responses": "Sallitut",
|
||||
"show_processed_responses": "Käsitelty",
|
||||
"blocked_safebrowsing": "Turvallisen selauksen estämät",
|
||||
"blocked_adult_websites": "Lapsilukon estämät",
|
||||
"blocked_adult_websites": "Estetty lapsilukolla",
|
||||
"blocked_threats": "Estetyt uhat",
|
||||
"allowed": "Sallitut",
|
||||
"filtered": "Suodatetut",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Estolista",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Välimuistin koko",
|
||||
"cache_size_desc": "DNS-välimuistin koko (tavuina).",
|
||||
"cache_size_desc": "DNS-välimuistin koko (tavuina). Jätä tyhjäksi poistaaksesi välimuistin käytöstä.",
|
||||
"cache_ttl_min_override": "Korvaa vähimmäis-TTL",
|
||||
"cache_ttl_max_override": "Korvaa enimmäis-TTL",
|
||||
"enter_cache_size": "Syötä välimuistin koko (tavuina)",
|
||||
@@ -611,9 +625,9 @@
|
||||
"cache_ttl_max_override_desc": "Määritä DNS-välimuistin kohteiden enimmäiselinaika (sekunteina).",
|
||||
"ttl_cache_validation": "Välimuistin vähimmäiselinajan on oltava pienempi tai sama kuin enimmäiselinajan",
|
||||
"cache_optimistic": "Optimistinen välimuisti",
|
||||
"cache_optimistic_desc": "Pakota AdGuard Home vastaamaan välimuistista vaikka sen tiedot olisivat vanhentuneet. Pyri samalla myös päivittämään tiedot.",
|
||||
"cache_optimistic_desc": "Pakota AdGuard Home vastaamaan välimuistista vaikka tiedot olisivat vanhentuneet. Pyri samalla myös päivittämään tiedot.",
|
||||
"filter_category_general": "Yleiset",
|
||||
"filter_category_security": "Turvallisuus",
|
||||
"filter_category_security": "Tietoturva",
|
||||
"filter_category_regional": "Alueelliset",
|
||||
"filter_category_other": "Muut",
|
||||
"filter_category_general_desc": "Listat, jotka estävät seurannan ja mainokset useimmilla laitteilla",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Lapsilukko",
|
||||
"safe_browsing": "Turvallinen selaus",
|
||||
"served_from_cache": "{{value}} <i>(jaettu välimuistista)</i>",
|
||||
"form_error_password_length": "Salasanan on oltava ainakin {{value}} merkkiä"
|
||||
"form_error_password_length": "Salasanan on oltava ainakin {{value}} merkkiä",
|
||||
"anonymizer_notification": "<0>Huomioi:</0> IP-osoitteen anonymisointi on käytössä. Voit poistaa sen käytöstä <1>Yleisistä asetuksista</1>.",
|
||||
"confirm_dns_cache_clear": "Haluatko varmasti tyhjentää DNS-välimuistin?",
|
||||
"cache_cleared": "DNS-välimuistin tyhjennys onnistui",
|
||||
"clear_cache": "Tyhjennä välimuisti",
|
||||
"make_static": "Tallenna kiinteäksi",
|
||||
"theme_auto_desc": "Automaattinen (seuraa laitteen väriteemaa)",
|
||||
"theme_dark_desc": "Tumma teema",
|
||||
"theme_light_desc": "Vaalea teema",
|
||||
"disable_for_seconds": "{{count}} sekunniksi",
|
||||
"disable_for_seconds_plural": "{{count}} sekunniksi",
|
||||
"disable_for_minutes": "{{count}} minuutiksi",
|
||||
"disable_for_minutes_plural": "{{count}} minuutiksi",
|
||||
"disable_for_hours": "{{count}} tunniksi",
|
||||
"disable_for_hours_plural": "{{count}} tunniksi",
|
||||
"disable_until_tomorrow": "Huomiseen asti",
|
||||
"disable_notify_for_seconds": "Poista suojaus käytöstä {{count}} sekunniksi",
|
||||
"disable_notify_for_seconds_plural": "Poista suojaus käytöstä {{count}} sekunniksi",
|
||||
"disable_notify_for_minutes": "Poista suojaus käytöstä {{count}} minuutiksi",
|
||||
"disable_notify_for_minutes_plural": "Poista suojaus käytöstä {{count}} minuutiksi",
|
||||
"disable_notify_for_hours": "Poista suojaus käytöstä {{count}} tunniksi",
|
||||
"disable_notify_for_hours_plural": "Poista suojaus käytöstä {{count}} tunniksi",
|
||||
"disable_notify_until_tomorrow": "Poista suojaus käytöstä huomiseen asti",
|
||||
"enable_protection_timer": "Suojaus otetaan käyttöön {{time}} kuluttua",
|
||||
"custom_retention_input": "Syötä säilytysaika tunteina",
|
||||
"custom_rotation_input": "Syötä uudistusaika tunteina",
|
||||
"protection_section_label": "Suojaus",
|
||||
"log_and_stats_section_label": "Kyselyhistoria ja tilastot",
|
||||
"ignore_query_log": "Älä huomioi tätä päätettä kyselyhistoriassa",
|
||||
"ignore_statistics": "Älä huomioi tätä päätettä tilastoissa"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Paramètres IPv6 du DHCP",
|
||||
"form_error_required": "Champ requis",
|
||||
"form_error_ip4_format": "Adresse IPv4 invalide",
|
||||
"form_error_ip4_range_start_format": "Adresse de début de plage IPv4 incorrecte",
|
||||
"form_error_ip4_range_end_format": "Adresse de fin de plage IPv4 incorrecte",
|
||||
"form_error_ip4_gateway_format": "Adresse de passerelle IPv4 invalide",
|
||||
"form_error_ip6_format": "Adresse IPv6 invalide",
|
||||
"form_error_ip_format": "Adresse IP invalide",
|
||||
@@ -47,12 +45,12 @@
|
||||
"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_gateway_ip": "Le bail ne peut pas avoir d'adresse IP de la passerelle",
|
||||
"out_of_range_error": "Doit être hors plage « {{start}} » - « {{end}} »",
|
||||
"lower_range_start_error": "Doit être inférieur au début de plage",
|
||||
"greater_range_start_error": "Doit être supérieur au début de plage",
|
||||
"greater_range_end_error": "Doit être supérieur à la fin de plage",
|
||||
"subnet_error": "Les adresses doivent être dans le même sous-réseau",
|
||||
"gateway_or_subnet_invalid": "Masque de sous-réseau invalide",
|
||||
"gateway_or_subnet_invalid": "Masque de sous-réseau invalide.",
|
||||
"dhcp_form_gateway_input": "IP de la passerelle",
|
||||
"dhcp_form_subnet_input": "Masque de sous-réseau",
|
||||
"dhcp_form_range_title": "Rangée des adresses IP",
|
||||
@@ -70,8 +68,8 @@
|
||||
"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_lease_added": "« {{key}} » de bail statique ajoutée",
|
||||
"dhcp_lease_deleted": "« {{key}} » de bail statique supprimée",
|
||||
"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",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Contrôle Parental activé",
|
||||
"disabled_safe_search_toast": "Recherche Sécurisée désactivée",
|
||||
"enabled_save_search_toast": "Recherche Sécurisée activée",
|
||||
"updated_save_search_toast": "Les paramètres de Recherche sécurisée sont mis à jour",
|
||||
"enabled_table_header": "Activé",
|
||||
"name_table_header": "Nom",
|
||||
"list_url_table_header": "URL de la liste",
|
||||
@@ -205,22 +204,26 @@
|
||||
"example_meaning_filter_block": "bloque l’accès au domaine example.org et à tous ses sous-domaines ;",
|
||||
"example_meaning_filter_whitelist": "débloque l’accès au domaine example.org et à tous ses sous-domaines ;",
|
||||
"example_meaning_host_block": "AdGuard Home va retourner l'adresse 127.0.0.1 au domaine example.org (mais pas aux sous-domaines) ;",
|
||||
"example_comment": "! Voici comment ajouter une déscription.",
|
||||
"example_comment": "! Voici un commentaire.",
|
||||
"example_comment_meaning": "juste un commentaire ;",
|
||||
"example_comment_hash": "# Aussi un commentaire.",
|
||||
"example_regex_meaning": "bloque l’accès aux domaines correspondants à l'expression régulière spécifiée .",
|
||||
"example_upstream_regular": "DNS classique (au-dessus de UDP) ;",
|
||||
"example_upstream_regular_port": "DNS normal (sur UDP, avec port) ;",
|
||||
"example_upstream_udp": "DNS normal (sur UDP, nom d’hôte) ;",
|
||||
"example_upstream_dot": "<0>DNS-over-TLS</0> chiffré ;",
|
||||
"example_upstream_doh": "<0>DNS-over-HTTPS</0> chiffré ;",
|
||||
"example_upstream_doh3": "DNS-over-HTTPS chiffré avec <0>HTTP/3</0> forcé sans repli sur HTTP/2 ou inférieur ;",
|
||||
"example_upstream_doq": "<0>DNS-over-QUIC</0> chiffré;",
|
||||
"example_upstream_sdns": "vous pouvez utiliser <0>DNS Stamps</0> pour <1>DNSCrypt</1> ou les résolveurs <2>DNS_over_HTTPS</2> ;",
|
||||
"example_upstream_tcp": "DNS classique (au-dessus de TCP) ;",
|
||||
"example_upstream_tcp_port": "DNS normal (sur TCP, avec port) ;",
|
||||
"example_upstream_tcp_hostname": "DNS normal (sur TCP, nom d’hôte) ;",
|
||||
"all_lists_up_to_date_toast": "Toutes les listes sont déjà à jour",
|
||||
"updated_upstream_dns_toast": "Serveurs en amont enregistrés",
|
||||
"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_warning_toast": "L'amont « {{key}} » ne répond pas aux demandes de test et peut ne pas fonctionner correctement",
|
||||
"unblock": "Débloquer",
|
||||
"block": "Bloquer",
|
||||
"disallow_this_client": "Interdire ce client",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Le journal des requêtes a été effacé",
|
||||
"query_log_updated": "Le journal des requêtes a été mis à jour",
|
||||
"query_log_clear": "Effacer journal des requêtes",
|
||||
"query_log_retention": "Rétention du journal des requêtes",
|
||||
"query_log_retention": "Rotation des journaux de requêtes",
|
||||
"query_log_enable": "Activer le journal",
|
||||
"query_log_configuration": "Configuration du journal",
|
||||
"query_log_disabled": "Le journal des requêtes est désactivé et peut être configuré dans les <0>paramètres</0>",
|
||||
"query_log_strict_search": "Utilisez les doubles guillemets pour une recherche stricte",
|
||||
"query_log_retention_confirm": "Êtes-vous sûr de vouloir modifier la rétention des journaux de requêtes ? Si vous diminuez la valeur de l'intervalle, certaines données seront perdues",
|
||||
"query_log_retention_confirm": "Êtes-vous sûr de souhaiter modifier la rotation des journaux de requêtes ? Si vous diminuez la valeur de l'intervalle, certaines données seront perdues",
|
||||
"anonymize_client_ip": "Anonymiser l’IP du client",
|
||||
"anonymize_client_ip_desc": "Ne pas enregistrer l’adresse IP complète du client dans les journaux et statistiques",
|
||||
"dns_config": "Configuration du serveur DNS",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Limite de taux",
|
||||
"edns_enable": "Activer le sous-réseau du client EDNS",
|
||||
"edns_cs_desc": "Ajouter l'option du sous-réseau Client EDNS (ECS) au requêtes en amont et enregistrer les valeurs envoyées par les clients dans le journal des requêtes.",
|
||||
"edns_use_custom_ip": "Utiliser une IP personnalisée pour EDNS",
|
||||
"edns_use_custom_ip_desc": "Autoriser l'utilisation d'une adresse IP personnalisée pour EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"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_custom_ip": "IP personnalisée : Répondre avec une adresse IP définie manuellement",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Thème clair",
|
||||
"theme_dark": "Thème sombre",
|
||||
"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",
|
||||
"source_label": "Source",
|
||||
@@ -336,7 +344,7 @@
|
||||
"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": "Dans le panneau de gauche, cliquez sur \"Modifier les paramètres de l'adaptateur\".",
|
||||
"install_devices_windows_list_3": "Cliquez « Modifier les paramètres de l'adaptateur » sur le panneau à gauche.",
|
||||
"install_devices_windows_list_4": "Cliquez avec le bouton droit de la souris sur votre connexion active et sélectionnez Propriétés.",
|
||||
"install_devices_windows_list_5": "Recherchez « Protocole Internet Version 4 (TCP/IPv4) » (soit, pour IPv6, « Protocole Internet Version 6 (TCP/IPv6) ») dans la liste, sélectionnez-la puis cliquez à nouveau sur Propriétés.",
|
||||
"install_devices_windows_list_6": "Sélectionnez « Utiliser l’adresse de serveur DNS suivante » et saisissez votre adresse de serveur AdGuard Home.",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "Configuration de chiffrement enregistrée",
|
||||
"encryption_server": "Nom du serveur",
|
||||
"encryption_server_enter": "Entrez votre nom de domaine",
|
||||
"encryption_server_desc": "Pour utiliser HTTPS, vous devez saisir le nom du serveur qui correspond à votre certificat SSL ou wildcard. Si le champ n'est pas configuré, les connexions TLS pour tous les domaines seront acceptées.",
|
||||
"encryption_server_desc": "Si cette option est définie, AdGuard Home détecte les ClientID, répond aux requêtes DDR et effectue des validations de connexion supplémentaires. Si elle n'est pas définie, ces fonctions sont désactivées. Doit correspondre à l'un des noms DNS du certificat.",
|
||||
"encryption_redirect": "Redirection automatiquement vers HTTPS",
|
||||
"encryption_redirect_desc": "Si coché, AdGuard Home vous redirigera automatiquement d'adresses HTTP vers HTTPS.",
|
||||
"encryption_https": "Port HTTPS",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Émetteur",
|
||||
"encryption_hostnames": "Noms d'hôte",
|
||||
"encryption_reset": "Voulez-vous vraiment réinitialiser les paramètres de chiffrement ?",
|
||||
"encryption_warning": "Attention",
|
||||
"topline_expiring_certificate": "Votre certificat SSL est sur le point d'expirer. Mettez à jour vos <0>Paramètres de chiffrement</0>.",
|
||||
"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",
|
||||
@@ -428,11 +437,11 @@
|
||||
"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_deleted": "Le client « {{key}} » a été supprimé",
|
||||
"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 d'exécution",
|
||||
"auto_clients_desc": "Appareils ne figurant pas sur la liste des clients persistants qui peuvent encore utiliser AdGuard Home.",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Domaines interdits",
|
||||
"access_blocked_desc": "A ne pas confondre avec les filtres. AdGuard Home rejette les requêtes DNS correspondant à ces domaines, et ces requêtes n'apparaissent même pas dans le journal des requêtes. Vous pouvez spécifier des noms de domaine exacts, des caractères génériques ou des règles de filtrage d'URL, par exemple « exemple.org », « *.exemple.org » ou « ||example.org^ » de manière correspondante.",
|
||||
"access_settings_saved": "Paramètres d'accès enregistrés avec succès",
|
||||
"updates_checked": "Mises à jour vérifiées",
|
||||
"updates_checked": "Une nouvelle version de AdGuard Home est disponible",
|
||||
"updates_version_equal": "AdGuard Home est à jour",
|
||||
"check_updates_now": "Vérifier les mises à jour",
|
||||
"version_request_error": "Impossible de vérifier les mises à jour. Veuillez vérifier votre connexion internet.",
|
||||
"dns_privacy": "Confidentialité DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS :</0> Utiliser le string <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS :</0> Utiliser le string <1>{{address}}</1>.",
|
||||
@@ -470,7 +480,7 @@
|
||||
"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",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Êtes-vous sûr de vouloir modifier le maintien des statistiques ? Si vous diminuez la valeur de l'intervalle, certaines données seront perdues",
|
||||
"statistics_cleared": "Statistiques effacées",
|
||||
"statistics_enable": "Activer les statistiques",
|
||||
"ignore_domains": "Domaines ignorés (séparés par une nouvelle ligne)",
|
||||
"ignore_domains_title": "Domaines ignorés",
|
||||
"ignore_domains_desc_stats": "Les requêtes pour ces domaines ne sont pas écrites dans les statistiques",
|
||||
"ignore_domains_desc_query": "Les requêtes pour ces domaines ne sont pas écrites dans le journal des requêtes",
|
||||
"interval_hours": "{{count}} heure",
|
||||
"interval_hours_plural": "{{count}} heures",
|
||||
"filters_configuration": "Configuration des filtres",
|
||||
@@ -551,11 +565,11 @@
|
||||
"disable_ipv6_desc": "Abandonner toutes les requêtes DNS pour les adresses IPv6 (type AAAA).",
|
||||
"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. 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_text": "Si vous cliquez sur « Réparer », AdGuard Home configurera votre système pour utiliser le serveur DNS AdGuard Home.",
|
||||
"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",
|
||||
"tags_desc": "Vous pouvez sélectionner les mots clés qui correspondent au client. Les mots clés peuvent être inclus dans les règles de filtrage et vous permettent de les appliquer plus précisément. <0>En savoir plus</0> .",
|
||||
"tags_desc": "Vous pouvez sélectionner les mots clés qui correspondent au client. Les mots clés peuvent être inclus dans les règles de filtrage et vous permettent de les appliquer plus précisément. <0>En savoir plus</0>.",
|
||||
"form_select_tags": "Sélectionner les mots clés du client",
|
||||
"check_title": "Vérification du filtrage",
|
||||
"check_desc": "Vérifier si le nom d’hôte est filtré .",
|
||||
@@ -571,10 +585,10 @@
|
||||
"check_service": "Nom du service : {{service}}",
|
||||
"service_name": "Nom du service",
|
||||
"check_not_found": "Introuvable dans vos listes de filtres",
|
||||
"client_confirm_block": "Voulez-vous vraiment bloquer le client « {{ip}} »?",
|
||||
"client_confirm_unblock": "Voulez-vous vraiment débloquer le client « {{ip}} »?",
|
||||
"client_blocked": "Client « {{ip}} » bloqué avec succès",
|
||||
"client_unblocked": "Client « {{ip}} » débloqué avec succès",
|
||||
"client_confirm_block": "Voulez-vous vraiment bloquer le client « {{ip}} » ?",
|
||||
"client_confirm_unblock": "Voulez-vous vraiment débloquer le client « {{ip}} » ?",
|
||||
"client_blocked": "Client « {{ip}} » bloqué",
|
||||
"client_unblocked": "Client « {{ip}} » débloqué",
|
||||
"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",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Liste de blocage",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Taille du cache",
|
||||
"cache_size_desc": "Taille du cache DNS (en bytes) .",
|
||||
"cache_size_desc": "Taille du cache DNS (en octets). Pour désactiver la mise en cache, laissez vide.",
|
||||
"cache_ttl_min_override": "Remplacer le TTL minimum",
|
||||
"cache_ttl_max_override": "Remplacer le TTL maximum",
|
||||
"enter_cache_size": "Entrer la taille du cache (octets)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Contrôle parental",
|
||||
"safe_browsing": "Navigation sécurisée",
|
||||
"served_from_cache": "{{value}} <i>(depuis le cache)</i>",
|
||||
"form_error_password_length": "Le mot de passe doit comporter au moins {{value}} caractères"
|
||||
"form_error_password_length": "Le mot de passe doit comporter au moins {{value}} caractères",
|
||||
"anonymizer_notification": "<0>Note :</0> L'anonymisation IP est activée. Vous pouvez la désactiver dans les <1>paramètres généraux</1>.",
|
||||
"confirm_dns_cache_clear": "Voulez-vous vraiment vider le cache DNS ?",
|
||||
"cache_cleared": "Le cache DNS a été vidé",
|
||||
"clear_cache": "Vider le cache",
|
||||
"make_static": "Rendre statique",
|
||||
"theme_auto_desc": "Auto (en fonction de la palette de couleurs de votre appareil)",
|
||||
"theme_dark_desc": "Thème sombre",
|
||||
"theme_light_desc": "Thème clair",
|
||||
"disable_for_seconds": "Pendant {{count}} seconde",
|
||||
"disable_for_seconds_plural": "Pendant {{count}} secondes",
|
||||
"disable_for_minutes": "Pendant {{count}} minute",
|
||||
"disable_for_minutes_plural": "Pendant {{count}} minutes",
|
||||
"disable_for_hours": "Pendant {{count}} heure",
|
||||
"disable_for_hours_plural": "Pendant {{count}} heures",
|
||||
"disable_until_tomorrow": "Jusqu'à demain",
|
||||
"disable_notify_for_seconds": "Désactiver la protection pendant {{count}} seconde",
|
||||
"disable_notify_for_seconds_plural": "Désactiver la protection pendant {{count}} secondes",
|
||||
"disable_notify_for_minutes": "Désactiver la protection pendant {{count}} minute",
|
||||
"disable_notify_for_minutes_plural": "Désactiver la protection pendant {{count}} minutes",
|
||||
"disable_notify_for_hours": "Désactiver la protection pendant {{count}} heure",
|
||||
"disable_notify_for_hours_plural": "Désactiver la protection pendant {{count}} heures",
|
||||
"disable_notify_until_tomorrow": "Désactiver la protection jusqu'à demain",
|
||||
"enable_protection_timer": "La protection sera activée dans {{time}}",
|
||||
"custom_retention_input": "Saisir la rétention en heures",
|
||||
"custom_rotation_input": "Saisir la rotation en heures",
|
||||
"protection_section_label": "Protection",
|
||||
"log_and_stats_section_label": "Journal des requêtes et statistiques",
|
||||
"ignore_query_log": "Ignorer ce client dans le journal des requêtes",
|
||||
"ignore_statistics": "Ignorer ce client dans les statistiques"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 postavke",
|
||||
"form_error_required": "Obavezno polje",
|
||||
"form_error_ip4_format": "Nevažeća IPv4 adresa",
|
||||
"form_error_ip4_range_start_format": "Nepravilan početak ranga IPv4 adresa",
|
||||
"form_error_ip4_range_end_format": "Nepravilan kraj ranga IPv4 adresa",
|
||||
"form_error_ip4_gateway_format": "Nepravilna IPV4 adresa čvora",
|
||||
"form_error_ip6_format": "Nevažeći IPv6 adresa",
|
||||
"form_error_ip_format": "Nepravilna IP adresa",
|
||||
@@ -47,12 +45,12 @@
|
||||
"form_error_server_name": "Nevažeće ime poslužitelja",
|
||||
"form_error_subnet": "Podmrežu \"{{cidr}}\" ne sadrži IP adresu \"{{ip}}\"",
|
||||
"form_error_positive": "Mora biti veće od 0",
|
||||
"form_error_gateway_ip": "Najam ne može imati IP adresu pristupnika",
|
||||
"out_of_range_error": "Mora biti izvan ranga \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Mora biti niže od početnog ranga",
|
||||
"greater_range_start_error": "Mora biti veće od krajnjeg ranga",
|
||||
"greater_range_end_error": "Mora biti veće od krajnjeg ranga",
|
||||
"subnet_error": "Adrese moraju biti iz iste podmreže",
|
||||
"gateway_or_subnet_invalid": "Maska podmreže je neprvilna",
|
||||
"gateway_or_subnet_invalid": "Nevažeća podmrežna maska",
|
||||
"dhcp_form_gateway_input": "Gateway IP",
|
||||
"dhcp_form_subnet_input": "Subnet maskiranje",
|
||||
"dhcp_form_range_title": "Raspon IP adresa",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Omogućen roditeljski nadzor",
|
||||
"disabled_safe_search_toast": "Onemogućeno sigurno pretraživanje",
|
||||
"enabled_save_search_toast": "Omogućeno sigurno pretraživanje",
|
||||
"updated_save_search_toast": "Ažurirane postavke sigurnog pretraživanja",
|
||||
"enabled_table_header": "Omogućeno",
|
||||
"name_table_header": "Naziv",
|
||||
"list_url_table_header": "URL popisa",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Također komentar.",
|
||||
"example_regex_meaning": "blokira pristup domenama koje se podudaraju s regularnim izrazom.",
|
||||
"example_upstream_regular": "zadani DNS (putem UDP);",
|
||||
"example_upstream_regular_port": "obični DNS (preko UDP-a, s portom);",
|
||||
"example_upstream_udp": "obični DNS (preko UDP-a, ime hosta);",
|
||||
"example_upstream_dot": "šifrirano <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "šifrirano <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "šifrirani DNS-over-HTTPS s prisilnim <0>HTTP/3</0> i nema povratka na HTTP/2 ili niže;",
|
||||
"example_upstream_doq": "šifrirano <0>DNS-over-QUIC</0> (eksperimentalno);",
|
||||
"example_upstream_sdns": "<0>DNS Stamps</0> za <1>DNSCrypt</1> ili <2>DNS-over-HTTPS</2> rezolvere;",
|
||||
"example_upstream_tcp": "zadani DNS (putem TCP);",
|
||||
"example_upstream_tcp_port": "obični DNS (preko TCP-a, s portom);",
|
||||
"example_upstream_tcp_hostname": "obični DNS (preko TCP-a, ime hosta);",
|
||||
"all_lists_up_to_date_toast": "Svi popisi su ažurirani",
|
||||
"updated_upstream_dns_toast": "Uzvodni poslužitelji uspješno su spremljeni",
|
||||
"dns_test_ok_toast": "Odabrani DNS poslužitelji su trenutno aktivni",
|
||||
"dns_test_not_ok_toast": "\"{{key}}\" poslužitelja: ne može se upotrijebiti, provjerite jeste li to ispravno napisali",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" ne odgovara na zahtjeve za testiranje i možda neće raditi ispravno",
|
||||
"unblock": "Odblokiraj",
|
||||
"block": "Blokiraj",
|
||||
"disallow_this_client": "Onemogući ovog klijenta",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Zapisnik upita je uspješno uklonjen",
|
||||
"query_log_updated": "Zapisnik upita je uspješno ažuriran",
|
||||
"query_log_clear": "Očisti zapisnik upita",
|
||||
"query_log_retention": "Spremanje zapisnika upita",
|
||||
"query_log_retention": "Rotacija dnevnika upita",
|
||||
"query_log_enable": "Omogući zapise",
|
||||
"query_log_configuration": "Postavke zapisa",
|
||||
"query_log_disabled": "Zapisnik upita je onemogućen i može se postaviti u <0>postavkama</0>",
|
||||
"query_log_strict_search": "Koristite dvostruke navodnike za strogo pretraživanje",
|
||||
"query_log_retention_confirm": "Jeste li sigurni da želite promijeniti zadržavanje zapisnika upita? Ako smanjite vrijednost intervala, neki će podaci biti izgubljeni",
|
||||
"query_log_retention_confirm": "Jeste li sigurni da želite promijeniti rotaciju dnevnika upita? Ako smanjite vrijednost intervala, neki će se podaci izgubiti",
|
||||
"anonymize_client_ip": "Anonimiraj IP klijenta",
|
||||
"anonymize_client_ip_desc": "Ne spremajte cijelu IP adresu klijenta u zapisnike i statistike",
|
||||
"dns_config": "DNS postavke poslužitelja",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Ograničenje",
|
||||
"edns_enable": "Omogući podmrežu klijenta EDNS-a",
|
||||
"edns_cs_desc": "Dodajte opciju EDNS klijentske podmreže (ECS) uzvodnim zahtjevima i zabilježite vrijednosti koje su klijenti poslali u dnevnik upita.",
|
||||
"edns_use_custom_ip": "Koristi prilagođeni IP za EDNS",
|
||||
"edns_use_custom_ip_desc": "Dopusti korištenje prilagođenog IP-a za EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Odgovor s NXDOMAIN kôdom",
|
||||
"blocking_mode_null_ip": "Nuliran IP: Odgovor s nuliranom IP adresom (0.0.0.0 za A; :: za AAAA)",
|
||||
"blocking_mode_custom_ip": "Prilagođeni IP: Odgovor s ručno postavljenom IP adresom",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Svijetla",
|
||||
"theme_dark": "Tamna",
|
||||
"upstream_dns_client_desc": "Ako ovo polje ostane prazno, AdGuard Home će upotrijebiti poslužitelje postavljene u <0>DNS postavkama</0>.",
|
||||
"tracker_source": "Izvor pratitelja",
|
||||
"source_label": "Izvor",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "Konfiguracija šifriranja spremljena",
|
||||
"encryption_server": "Naziv poslužitelja",
|
||||
"encryption_server_enter": "Unesite naziv domene",
|
||||
"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_server_desc": "Ako je postavljeno, AdGuard Home otkriva ClientID-ove, odgovara na DDR upite i provodi dodatne provjere valjanosti veze. Ako nije postavljeno, ove značajke su onemogućene. Mora odgovarati jednom od DNS naziva u certifikatu.",
|
||||
"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",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Izdavač",
|
||||
"encryption_hostnames": "Nazivi računala",
|
||||
"encryption_reset": "Jeste li sigurni da želite poništiti postavke šifriranja?",
|
||||
"encryption_warning": "Upozorenje",
|
||||
"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 broj porta od 80 do 65536",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Nedopuštene domene",
|
||||
"access_blocked_desc": "Ne smije se miješati s filterima. AdGuard Home ispušta DNS upite koji odgovaraju tim domenama, a ti se upiti čak i ne pojavljuju u zapisniku upita. Možete navesti točne nazive domena, zamjenske znakove ili pravila filtriranja URL-a, npr || example.org example.org. example.org^\" u skladu s tim.",
|
||||
"access_settings_saved": "Postavke pristupa su uspješno spremljene",
|
||||
"updates_checked": "Uspješna provjera ažuriranja",
|
||||
"updates_checked": "Dostupna je nova verzija AdGuard Home-a",
|
||||
"updates_version_equal": "AdGuard Home je ažuriran",
|
||||
"check_updates_now": "Provjeri ažuriranja sada",
|
||||
"version_request_error": "Ne uspješna provjera ažuriranja. Provjerite vašu Internetsku vezu.",
|
||||
"dns_privacy": "DNS privatnost",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Koristite <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Koristite <1>{{address}}</1>.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Jeste li sigurni da želite promijeniti zadržavanje statistike? Ako smanjite vrijednost intervala, neki će podaci biti izgubljeni",
|
||||
"statistics_cleared": "Statistika je uspješno uklonjenja",
|
||||
"statistics_enable": "Omogući statistiku",
|
||||
"ignore_domains": "Zanemarene domene (odvojene novim retkom)",
|
||||
"ignore_domains_title": "Zanemarene domene",
|
||||
"ignore_domains_desc_stats": "Upiti za ove domene ne upisuju se u statistiku",
|
||||
"ignore_domains_desc_query": "Upiti za te domene nisu zapisani u zapisnik upita",
|
||||
"interval_hours": "{{count}} sata/i",
|
||||
"interval_hours_plural": "{{count}} sata/i",
|
||||
"filters_configuration": "Postavke filtara",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Popis nedopuštenih",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Veličina predmemorije",
|
||||
"cache_size_desc": "Veličina DNS predmemorije (u bajtovima).",
|
||||
"cache_size_desc": "Veličina DNS predmemorije (u bajtovima). Da biste onemogućili predmemoriju, ostavite prazno.",
|
||||
"cache_ttl_min_override": "Nadjačaj minimum TTL-a",
|
||||
"cache_ttl_max_override": "Nadjačaj maksimum TTL-a",
|
||||
"enter_cache_size": "Unesite veličinu predmemorije (u bajtovima)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Roditeljska zaštita",
|
||||
"safe_browsing": "Sigurno surfanje",
|
||||
"served_from_cache": "{{value}} <i>(dohvaćeno iz predmemorije)</i>",
|
||||
"form_error_password_length": "Lozinka mora imati najmanje {{value}} znakova"
|
||||
"form_error_password_length": "Lozinka mora imati najmanje {{value}} znakova",
|
||||
"anonymizer_notification": "<0>Napomena:</0>IP anonimizacija je omogućena. Možete ju onemogućiti u <1>općim postavkama</1>.",
|
||||
"confirm_dns_cache_clear": "Jeste li sigurni da želite očistiti DNS predmemoriju?",
|
||||
"cache_cleared": "DNS predmemorija je uspješno izbrisana",
|
||||
"clear_cache": "Očisti predmemoriju",
|
||||
"make_static": "Učini statičnim",
|
||||
"theme_auto_desc": "Automatski (na temelju sheme boja vašeg uređaja)",
|
||||
"theme_dark_desc": "Tamna tema",
|
||||
"theme_light_desc": "Svijetla tema",
|
||||
"disable_for_seconds": "Za {{count}} sekundi",
|
||||
"disable_for_seconds_plural": "Za {{count}} sekundi",
|
||||
"disable_for_minutes": "Za {{count}} minuta",
|
||||
"disable_for_minutes_plural": "Za {{count}} minuta",
|
||||
"disable_for_hours": "Za {{count}} sati",
|
||||
"disable_for_hours_plural": "Za {{count}} sati",
|
||||
"disable_until_tomorrow": "Do sutra",
|
||||
"disable_notify_for_seconds": "Isključi zaštitu na {{count}} sekundi",
|
||||
"disable_notify_for_seconds_plural": "Onemogući zaštitu na {{count}} sekundi",
|
||||
"disable_notify_for_minutes": "Isključi zaštitu na {{count}} minuta",
|
||||
"disable_notify_for_minutes_plural": "Isključi zaštitu na {{count}} minuta",
|
||||
"disable_notify_for_hours": "Isključi zaštitu na {{count}} sati",
|
||||
"disable_notify_for_hours_plural": "Isključi zaštitu na {{count}} sati",
|
||||
"disable_notify_until_tomorrow": "Isključi zaštitu do sutra",
|
||||
"enable_protection_timer": "Zaštita će biti omogućena u {{time}}",
|
||||
"custom_retention_input": "Unesite zadržavanje u satima",
|
||||
"custom_rotation_input": "Unesite rotaciju u satima",
|
||||
"protection_section_label": "Zaštita",
|
||||
"log_and_stats_section_label": "Zapisnik upita i statistika",
|
||||
"ignore_query_log": "Zanemari ovog klijenta u zapisniku upita",
|
||||
"ignore_statistics": "Ignorirajte ovog klijenta u statistici"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 Beállítások",
|
||||
"form_error_required": "Kötelező mező",
|
||||
"form_error_ip4_format": "Érvénytelen IPv4 cím",
|
||||
"form_error_ip4_range_start_format": "Érvénytelen IPv4-cím a tartomány kezdetéhez",
|
||||
"form_error_ip4_range_end_format": "Érvénytelen IPv4-cím a tartomány végén",
|
||||
"form_error_ip4_gateway_format": "Az átjáróhoz (gateway) érvénytelen IPv4 cím lett megadva",
|
||||
"form_error_ip6_format": "Érvénytelen IPv6 cím",
|
||||
"form_error_ip_format": "Érvénytelen IP-cím",
|
||||
@@ -47,10 +45,10 @@
|
||||
"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_gateway_ip": "A bérleti szerződés nem tartalmazhatja az átjáró IP-címét",
|
||||
"out_of_range_error": "A következő tartományon kívül legyen: \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Kisebb legyen, mint a tartomány kezdete",
|
||||
"greater_range_start_error": "Nagyobbnak kell lennie, mint a tartomány kezdete",
|
||||
"greater_range_end_error": "Nagyobb legyen, mint a tartomány vége",
|
||||
"subnet_error": "A címeknek egy alhálózatban kell lenniük",
|
||||
"gateway_or_subnet_invalid": "Az alhálózati maszk érvénytelen",
|
||||
"dhcp_form_gateway_input": "Átjáró IP",
|
||||
@@ -210,17 +208,21 @@
|
||||
"example_comment_hash": "# Ez is egy megjegyzés.",
|
||||
"example_regex_meaning": "blokkolja a hozzáférést azokhoz a domainekhez, amik illeszkednek a megadott reguláris kifejezésre.",
|
||||
"example_upstream_regular": "hagyományos DNS (UDP felett);",
|
||||
"example_upstream_regular_port": "normál DNS (UDP-n keresztül, porttal);",
|
||||
"example_upstream_udp": "normál DNS (UDP felett, hostnév);",
|
||||
"example_upstream_dot": "titkosított <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "titkosított <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "titkosított DNS-over-HTTPS kényszerített <0>HTTP/3-mal</0> és nincs visszalépés a HTTP/2-re vagy az alább;",
|
||||
"example_upstream_doq": "titkosított <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS Stamps</0> a <1>DNSCrypt</1> vagy <2>DNS-over-HTTPS</2> feloldókhoz;",
|
||||
"example_upstream_tcp": "hagyományos DNS (TCP felett);",
|
||||
"example_upstream_tcp_port": "normál DNS (TCP-n keresztül, porttal);",
|
||||
"example_upstream_tcp_hostname": "normál DNS (TCP felett, hostnév);",
|
||||
"all_lists_up_to_date_toast": "Már minden lista naprakész",
|
||||
"updated_upstream_dns_toast": "Upstream szerverek sikeresen mentve",
|
||||
"dns_test_ok_toast": "A megadott DNS-kiszolgálók megfelelően működnek",
|
||||
"dns_test_not_ok_toast": "Szerver \"{{key}}\": nem használható, ellenőrizze, hogy helyesen írta-e be",
|
||||
"dns_test_warning_toast": "A \"{{key}}\" feltöltés nem válaszol a tesztkérelmekre, és lehet, hogy nem működik megfelelően",
|
||||
"unblock": "Feloldás",
|
||||
"block": "Blokkolás",
|
||||
"disallow_this_client": "Tiltás ennek a kliensnek",
|
||||
@@ -296,6 +298,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Az NXDOMAIN kóddal fog válaszolni",
|
||||
"blocking_mode_null_ip": "Null IP: Nullákból álló IP-címmel válaszol (0.0.0.0 for A; :: for AAAA)",
|
||||
"blocking_mode_custom_ip": "Egyedi IP: Válasz egy kézzel beállított IP címmel",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Világos",
|
||||
"theme_dark": "Sötét",
|
||||
"upstream_dns_client_desc": "Ha üresen hagyja ezt a mezőt, az AdGuard Home azokat a szervereket fogja használni, amik a <0>DNS beállításokban</0> vannak beállítva.",
|
||||
"tracker_source": "Követő forrása",
|
||||
"source_label": "Forrás",
|
||||
@@ -362,7 +367,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_server_desc": "Ha be van állítva, az AdGuard Home észleli az ClientID-ket, válaszol a DDR-lekérdezésekre, és további kapcsolatellenőrzéseket végez. Ha nincs beállítva, ezek a funkciók le vannak tiltva. Meg kell egyeznie a tanúsítványban szereplő DNS-nevek egyikével.",
|
||||
"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",
|
||||
@@ -388,6 +393,7 @@
|
||||
"encryption_issuer": "Kibocsátó",
|
||||
"encryption_hostnames": "Hosztnevek",
|
||||
"encryption_reset": "Biztosan visszaállítja a titkosítási beállításokat?",
|
||||
"encryption_warning": "Figyelmeztetés",
|
||||
"topline_expiring_certificate": "Az SSL-tanúsítványa hamarosan lejár. Frissítse a <0>Titkosítási beállításokat</0>.",
|
||||
"topline_expired_certificate": "Az SSL-tanúsítványa lejárt. Frissítse a <0>Titkosítási beállításokat</0>.",
|
||||
"form_error_port_range": "Adjon meg egy portszámot a 80-65535 tartományon belül",
|
||||
@@ -445,9 +451,10 @@
|
||||
"access_blocked_title": "Nem engedélyezett domainek",
|
||||
"access_blocked_desc": "Ne keverje össze ezt a szűrőkkel. Az AdGuard Home az összes DNS kérést el fogja dobni, ami ezekkel a domainekkel megegyezik, és ezek a lekérések nem is fognak megjelenni a lekérdezési naplóban sem. Megadhatja a pontos domain neveket, a helyettesítő karaktereket vagy az URL szűrési szabályokat, pl. ennek megfelelően \"example.org\", \"*.example.org\", vagy \"||example.org^\".",
|
||||
"access_settings_saved": "A hozzáférési beállítások sikeresen mentésre kerültek",
|
||||
"updates_checked": "A frissítések sikeresen ellenőrizve lettek",
|
||||
"updates_checked": "Elérhető az AdGuard Home új verziója",
|
||||
"updates_version_equal": "Az AdGuard Home naprakész",
|
||||
"check_updates_now": "Frissítések ellenőrzése most",
|
||||
"version_request_error": "A frissítések ellenőrzése sikertelen. Ellenőrizze az internetkapcsolatot.",
|
||||
"dns_privacy": "DNS Adatvédelem",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Használja a(z) <1>{{address}}</1> szöveget.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Használja a(z) <1>{{address}}</1> szöveget.",
|
||||
@@ -601,7 +608,7 @@
|
||||
"blocklist": "Tiltólista",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Gyorsítótár mérete",
|
||||
"cache_size_desc": "DNS gyorsítótár mérete (bájtokban).",
|
||||
"cache_size_desc": "DNS-gyorsítótár mérete (byte-ban). A gyorsítótárazás letiltásához hagyja üresen.",
|
||||
"cache_ttl_min_override": "A minimális TTL felülírása",
|
||||
"cache_ttl_max_override": "A maximális TTL felülírása",
|
||||
"enter_cache_size": "Adja meg a gyorsítótár méretét",
|
||||
@@ -631,5 +638,10 @@
|
||||
"parental_control": "Szülői felügyelet",
|
||||
"safe_browsing": "Biztonságos böngészés",
|
||||
"served_from_cache": "{{value}} <i>(gyorsítótárból kiszolgálva)</i>",
|
||||
"form_error_password_length": "A jelszó legalább {{value}} karakter hosszú kell, hogy legyen"
|
||||
"form_error_password_length": "A jelszó legalább {{value}} karakter hosszú kell, hogy legyen",
|
||||
"anonymizer_notification": "<0>Megjegyzés:</0> Az IP anonimizálás engedélyezve van. Az <1>Általános beállításoknál letilthatja</1> .",
|
||||
"confirm_dns_cache_clear": "Biztos benne, hogy törölni szeretné a DNS-gyorsítótárat?",
|
||||
"cache_cleared": "A DNS gyorsítótár sikeresen törlődött",
|
||||
"clear_cache": "Gyorsítótár törlése",
|
||||
"protection_section_label": "Védelem"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Pengaturan DHCP IPv6",
|
||||
"form_error_required": "Kolom yang harus diisi",
|
||||
"form_error_ip4_format": "Alamat IPv4 tidak valid",
|
||||
"form_error_ip4_range_start_format": "Alamat IPv4 tidak valid dari rentang awal",
|
||||
"form_error_ip4_range_end_format": "Alamat IPv4 tidak valid dari rentang akhir",
|
||||
"form_error_ip4_gateway_format": "Alamat IPv4 gateway tidak valid",
|
||||
"form_error_ip6_format": "Alamat IPv6 tidak valid",
|
||||
"form_error_ip_format": "Alamat IP tidak valid",
|
||||
@@ -47,10 +45,10 @@
|
||||
"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_gateway_ip": "Sewa tidak dapat memiliki alamat IP gateway",
|
||||
"out_of_range_error": "Harus di luar rentang \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Harus lebih rendah dari rentang awal",
|
||||
"greater_range_start_error": "Harus lebih besar dari rentang awal",
|
||||
"greater_range_end_error": "Harus lebih besar dari rentang akhir",
|
||||
"subnet_error": "Alamat harus dalam satu subnet",
|
||||
"gateway_or_subnet_invalid": "Subnet mask tidak valid",
|
||||
"dhcp_form_gateway_input": "IP gateway",
|
||||
@@ -210,17 +208,21 @@
|
||||
"example_comment_hash": "# Juga sebuah komentar.",
|
||||
"example_regex_meaning": "blokir akses ke domain yang cocok dengan ekspresi reguler yang ditentukan.",
|
||||
"example_upstream_regular": "DNS reguler (melalui UDP);",
|
||||
"example_upstream_regular_port": "DNS biasa (lebih dari UDP, dengan port);",
|
||||
"example_upstream_udp": "DNS biasa (lebih dari UDP, nama host);",
|
||||
"example_upstream_dot": "terenkripsi <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "terenkripsi <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "DNS-over-HTTPS terenkripsi dengan paksa <0>HTTP/3</0> dan tidak ada fallback ke HTTP/2 atau lebih rendah;",
|
||||
"example_upstream_doq": "terenkripsi <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>Stempel DNS</0> untuk <1>DNSCrypt</1> atau pengarah <2>DNS-over-HTTPS</2>;",
|
||||
"example_upstream_tcp": "DNS reguler (melalui TCP);",
|
||||
"example_upstream_tcp_port": "DNS biasa (melalui TCP, dengan port);",
|
||||
"example_upstream_tcp_hostname": "DNS biasa (lebih dari TCP, nama host);",
|
||||
"all_lists_up_to_date_toast": "Semua daftar sudah diperbarui",
|
||||
"updated_upstream_dns_toast": "Server upstream berhasil disimpan",
|
||||
"dns_test_ok_toast": "Server DNS yang ditentukan bekerja dengan benar",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": tidak dapat digunakan, mohon cek bahwa Anda telah menulisnya dengan benar",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" tidak menanggapi permintaan pengujian dan mungkin tidak berfungsi dengan baik",
|
||||
"unblock": "Buka Blokir",
|
||||
"block": "Blok",
|
||||
"disallow_this_client": "Cabut ijin untuk klien ini",
|
||||
@@ -296,6 +298,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Respon pakai kode NXDOMAIN",
|
||||
"blocking_mode_null_ip": "Null IP: Respon pakai alamat IP kosong (0.0.0.0 untuk A; :: untuk AAAA)",
|
||||
"blocking_mode_custom_ip": "IP kustom: respon dengan alamat IP yang diset secara manual",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Terang",
|
||||
"theme_dark": "Gelap",
|
||||
"upstream_dns_client_desc": "Jika Anda biarkan bidang ini kosong, AdGuard Home akan memakai server yang dikonfigurasi di<0>Pengaturan DNS</0>.",
|
||||
"tracker_source": "Sumber pelacak",
|
||||
"source_label": "Sumber",
|
||||
@@ -362,7 +367,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_server_desc": "Jika disetel, AdGuard Home mendeteksi ClientID, merespons kueri DDR, dan melakukan validasi koneksi tambahan. Jika tidak disetel, fitur-fitur ini dinonaktifkan. Harus cocok dengan salah satu Nama DNS dalam sertifikat.",
|
||||
"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",
|
||||
@@ -388,6 +393,7 @@
|
||||
"encryption_issuer": "Penerbit",
|
||||
"encryption_hostnames": "Nama host",
|
||||
"encryption_reset": "Anda yakin ingin mengatur ulang pengaturan enkripsi?",
|
||||
"encryption_warning": "Perhatian",
|
||||
"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 nomor port di kisaran 80-65535",
|
||||
@@ -445,7 +451,7 @@
|
||||
"access_blocked_title": "Domain yang diblokir",
|
||||
"access_blocked_desc": "Jangan bingung dengan filter. AdGuard Home menghapus kueri DNS yang cocok dengan domain ini, dan kueri ini bahkan tidak muncul di log kueri. Anda dapat menentukan nama domain, karakter pengganti, atau aturan filter URL yang tepat, mis. \"example.org\", \"*.example.org\", atau \"||example.org^\" yang sesuai.",
|
||||
"access_settings_saved": "Pengaturan akses berhasil disimpan",
|
||||
"updates_checked": "Pembaruan berhasil dicek",
|
||||
"updates_checked": "Versi baru AdGuard Home tersedia\n",
|
||||
"updates_version_equal": "AdGuard Home sudah tebaru",
|
||||
"check_updates_now": "Periksa pembaruan sekarang",
|
||||
"dns_privacy": "DNS Privasi",
|
||||
@@ -601,7 +607,7 @@
|
||||
"blocklist": "Daftar blokir",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Ukuran cache",
|
||||
"cache_size_desc": "Ukuran DNS cache (dalam bit).",
|
||||
"cache_size_desc": "Ukuran cache DNS (dalam byte). Untuk menonaktifkan caching, biarkan kosong.",
|
||||
"cache_ttl_min_override": "Tumpuk TTL minimum",
|
||||
"cache_ttl_max_override": "Tumpuk TTL maksimum",
|
||||
"enter_cache_size": "Masukkan ukuran cache (bytes)",
|
||||
@@ -631,5 +637,10 @@
|
||||
"parental_control": "Kontrol Orang Tua",
|
||||
"safe_browsing": "Penjelajahan Aman",
|
||||
"served_from_cache": "{{value}} <i>(disajikan dari cache)</i>",
|
||||
"form_error_password_length": "Kata sandi harus minimal {{value}} karakter"
|
||||
"form_error_password_length": "Kata sandi harus minimal {{value}} karakter",
|
||||
"anonymizer_notification": "<0>Catatan:</0> Anonimisasi IP diaktifkan. Anda dapat menonaktifkannya di <1>Pengaturan umum</1> .",
|
||||
"confirm_dns_cache_clear": "Apakah Anda yakin ingin menghapus cache DNS?",
|
||||
"cache_cleared": "Cache DNS berhasil dibersihkan",
|
||||
"clear_cache": "Hapus cache",
|
||||
"protection_section_label": "Perlindungan"
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"disabled_dhcp": "Server DHCP disattivato",
|
||||
"unavailable_dhcp": "DHCP non disponibile",
|
||||
"unavailable_dhcp_desc": "AdGuard Home non può eseguire un server DHCP sul tuo sistema operativo",
|
||||
"dhcp_title": "Server DHCP",
|
||||
"dhcp_title": "Server DHCP (sperimentale!)",
|
||||
"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",
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Impostazioni DHCP IPv6",
|
||||
"form_error_required": "Campo richiesto",
|
||||
"form_error_ip4_format": "Indirizzo IPv4 non valido",
|
||||
"form_error_ip4_range_start_format": "Indirizzo IPV4 non valido dell'intervallo iniziale",
|
||||
"form_error_ip4_range_end_format": "Indirizzo IPV4 non valido dell'intervallo finale",
|
||||
"form_error_ip4_gateway_format": "Indirizzo gateway IPv4 non valido",
|
||||
"form_error_ip6_format": "Indirizzo IPv6 non valido",
|
||||
"form_error_ip_format": "Indirizzo IP non valido",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "Nome server non valido",
|
||||
"form_error_subnet": "Il subnet \"{{cidr}}\" non contiene l'indirizzo IP \"{{ip}}\"",
|
||||
"form_error_positive": "Deve essere maggiore di 0",
|
||||
"form_error_gateway_ip": "Il leasing non può avere l'indirizzo IP del gateway",
|
||||
"out_of_range_error": "Deve essere fuori intervallo \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Deve essere inferiore dell'intervallo di inizio",
|
||||
"greater_range_start_error": "Deve essere maggiore dell'intervallo di inizio",
|
||||
"greater_range_end_error": "Deve essere maggiore dell'intervallo di fine",
|
||||
"subnet_error": "Gli indirizzi devono trovarsi in una sottorete",
|
||||
"gateway_or_subnet_invalid": "Maschera di sottorete non valida",
|
||||
"dhcp_form_gateway_input": "IP Gateway",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Il Controllo Parentale è attivo",
|
||||
"disabled_safe_search_toast": "La Ricerca Sicura è disattivata",
|
||||
"enabled_save_search_toast": "La Ricerca Sicura è attiva",
|
||||
"updated_save_search_toast": "Impostazioni di Safe Search aggiornate",
|
||||
"enabled_table_header": "Attivo",
|
||||
"name_table_header": "Nome",
|
||||
"list_url_table_header": "Elenco URL",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Anche un commento.",
|
||||
"example_regex_meaning": "blocca l'accesso ai domini corrispondenti alla specifica espressione regolare.",
|
||||
"example_upstream_regular": "DNS regolare (over UDP);",
|
||||
"example_upstream_regular_port": "DNS regolare (su UDP, con porta);",
|
||||
"example_upstream_udp": "DNS regolare (over UDP, nome host);",
|
||||
"example_upstream_dot": "<0>DNS su TLS</0> crittografato;",
|
||||
"example_upstream_doh": "<0>DNS su HTTPS</0> crittografato;",
|
||||
"example_upstream_doh3": "DNS-over-HTTPS crittografato con <0>HTTP/3 forzato</0> e nessun fallback su HTTP/2 o inferiore;",
|
||||
"example_upstream_doq": "<0>DNS su QUIC</0> crittografato;",
|
||||
"example_upstream_sdns": "<0>DNS Stamps</0> per <1>DNSCrypt</1> oppure i risolutori <2>DNS su HTTPS</2>;",
|
||||
"example_upstream_tcp": "DNS regolare (over TCP);",
|
||||
"example_upstream_tcp_port": "DNS regolare (su TCP, con porta);",
|
||||
"example_upstream_tcp_hostname": "DNS regolare (over TCP, nome host);",
|
||||
"all_lists_up_to_date_toast": "Tutti gli elenchi sono aggiornati",
|
||||
"updated_upstream_dns_toast": "I server upstream sono stati salvati correttamente",
|
||||
"dns_test_ok_toast": "I server DNS specificati funzionano correttamente",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": non può essere utilizzato, assicurati di averlo digitato correttamente",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" non risponde alle richieste di test e potrebbe non funzionare correttamente",
|
||||
"unblock": "Sblocca",
|
||||
"block": "Blocca",
|
||||
"disallow_this_client": "Blocca questo client",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Il registro richieste è stato correttamente cancellato",
|
||||
"query_log_updated": "Il registro richieste è stato correttamente aggiornato",
|
||||
"query_log_clear": "Cancella registri richieste",
|
||||
"query_log_retention": "Conservazione dei registri richieste",
|
||||
"query_log_retention": "Rotazione dei registri richieste",
|
||||
"query_log_enable": "Attiva registro",
|
||||
"query_log_configuration": "Configurazione registri",
|
||||
"query_log_disabled": "Il registro richieste è stato disattivato e può essere configurata dalle <0>impostazioni</0>",
|
||||
"query_log_strict_search": "Utilizzare le doppie virgolette per una ricerca precisa",
|
||||
"query_log_retention_confirm": "Sei sicuro di voler modificare il registro delle richieste? Se il valore di intervallo dovesse diminuire, alcuni dati andranno persi",
|
||||
"query_log_retention_confirm": "Sei sicuro di voler modificare il registro delle richieste? Se si riduce il valore dell'intervallo, alcuni dati andranno persi",
|
||||
"anonymize_client_ip": "Anonimizza client IP",
|
||||
"anonymize_client_ip_desc": "Non salvare l'indirizzo IP completo del client nel registro o nelle statistiche",
|
||||
"dns_config": "Configurazione server DNS",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Limite delle richieste",
|
||||
"edns_enable": "Attiva client di sottorete EDNS",
|
||||
"edns_cs_desc": "Aggiunge l'opzione EDNS Client Subnet (ECS) alle richieste upstream e registra i valori inviati dai client nel registro delle richieste.",
|
||||
"edns_use_custom_ip": "Usa IP personalizzato per EDNS",
|
||||
"edns_use_custom_ip_desc": "Consentire l'uso di un IP personalizzato per EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"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)",
|
||||
"blocking_mode_custom_ip": "IP personalizzato: Rispondi con un indirizzo IP impostato manualmente",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Chiaro",
|
||||
"theme_dark": "Scuro",
|
||||
"upstream_dns_client_desc": "Se lasci questo spazio vuoto, AdGuard Home utilizzerà i server configurati nelle <0>impostazioni DNS</0>.",
|
||||
"tracker_source": "Origine del tracciatore",
|
||||
"source_label": "Fonte",
|
||||
@@ -325,7 +333,7 @@
|
||||
"install_step": "Passo",
|
||||
"install_devices_title": "Configura i tuoi dispositivi",
|
||||
"install_devices_desc": "Affinché AdGuard Home inizi a funzionare, è necessario configurare i dispositivi per utilizzarlo.",
|
||||
"install_submit_title": "Congratulazioni!",
|
||||
"install_submit_title": "Felicitazioni!",
|
||||
"install_submit_desc": "La procedura di configurazione è completa e ora sei pronto per iniziare ad utilizzare AdGuard Home.",
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Questa configurazione copre automaticamente tutti i dispositivi collegati al router di casa, non è necessario configurarli manualmente.",
|
||||
@@ -339,7 +347,7 @@
|
||||
"install_devices_windows_list_3": "Sul lato sinistro dello schermo, clicca su \"Cambia impostazioni adattatore\".",
|
||||
"install_devices_windows_list_4": "Fai clic destro sulla tua connessione attiva e seleziona Proprietà.",
|
||||
"install_devices_windows_list_5": "Trova \"Protocollo Internet versione 4 (TCP/IPv4)\" (o, per IPv6, \"Protocollo Internet versione 6 (TCP/IPv6)\" nell'elenco, selezionalo e quindi clicca nuovamente su Proprietà.",
|
||||
"install_devices_windows_list_6": "Scegli \"Utilizza i seguenti indirizzi server DNS\" ed inserisci i tuoi indirizzi server AdGuard Home.",
|
||||
"install_devices_windows_list_6": "Scegli \"Utilizza i seguenti indirizzi server DNS\" e inserisci i tuoi indirizzi server AdGuard Home.",
|
||||
"install_devices_macos_list_1": "Fai clic sull'icona Apple e dirigiti sulle Preferenze di Sistema.",
|
||||
"install_devices_macos_list_2": "Clicca su Rete.",
|
||||
"install_devices_macos_list_3": "Seleziona la prima connessione nel tuo elenco e clicca su Avanzate.",
|
||||
@@ -362,7 +370,7 @@
|
||||
"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.",
|
||||
"encryption_server_desc": "Se impostato, AdGuard Home rileva i ClientID, risponde alle query DDR ed esegue ulteriori convalide della connessione. Se non sono impostate, queste funzioni sono disabilitate. Deve corrispondere a uno dei nomi DNS nel certificato.",
|
||||
"encryption_redirect": "Reindirizza automaticamente a HTTPS",
|
||||
"encryption_redirect_desc": "Se selezionato, AdGuard Home ti reindirizzerà automaticamente da indirizzi HTTP a HTTPS.",
|
||||
"encryption_https": "Porta HTTPS",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Emittente",
|
||||
"encryption_hostnames": "Nomi host",
|
||||
"encryption_reset": "Sei sicuro di voler ripristinare le impostazioni di crittografia?",
|
||||
"encryption_warning": "Attenzione",
|
||||
"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",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Domini bloccati",
|
||||
"access_blocked_desc": "Da non confondere con i filtri. AdGuard Home eliminerà le richieste DNS corrispondenti a questi domini e queste richieste non verranno visualizzate nel relativo registro. Puoi specificare nomi di dominio esatti, caratteri jolly o regole di filtraggio URL, ad esempio \"esempio.org\", \"*.esempio.org\" o \"||esempio.org^\".",
|
||||
"access_settings_saved": "Impostazioni di accesso salvate correttamente",
|
||||
"updates_checked": "Verifica aggiornamenti riuscita",
|
||||
"updates_checked": "Nuova versione di AdGuard Home è disponibile",
|
||||
"updates_version_equal": "AdGuard Home è aggiornato",
|
||||
"check_updates_now": "Ricerca aggiornamenti ora",
|
||||
"version_request_error": "Ricerca aggiornamenti non riuscita. Per favore controlla la tua connessione internet.",
|
||||
"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>.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Sei sicuro di voler modificare la conservazione delle statistiche? Se il valore di intervallo dovesse diminuire, alcuni dati andranno persi",
|
||||
"statistics_cleared": "Statistiche azzerate correttamente",
|
||||
"statistics_enable": "Attiva statistiche",
|
||||
"ignore_domains": "Domini ignorati (separati da nuova riga)",
|
||||
"ignore_domains_title": "Domini ignorati",
|
||||
"ignore_domains_desc_stats": "Le richieste per questi domini non vengono scritte nelle statistiche",
|
||||
"ignore_domains_desc_query": "Le richieste per questi domini non vengono scritte nel registro delle richieste",
|
||||
"interval_hours": "{{count}} ora",
|
||||
"interval_hours_plural": "{{count}} ore",
|
||||
"filters_configuration": "Configurazione filtri",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Lista nera",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Dimensioni cache",
|
||||
"cache_size_desc": "Dimensioni cache DNS (in byte).",
|
||||
"cache_size_desc": "Dimensione della cache DNS (in byte). Per disabilitare la memorizzazione nella cache, lascia vuoto.",
|
||||
"cache_ttl_min_override": "Sovrascrivi TTL minimo",
|
||||
"cache_ttl_max_override": "Sovrascrivi TTL massimo",
|
||||
"enter_cache_size": "Immetti dimensioni cache (in byte)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Controllo Parentale",
|
||||
"safe_browsing": "Navigazione Sicura",
|
||||
"served_from_cache": "{{value}} <i>(fornito dalla cache)</i>",
|
||||
"form_error_password_length": "La password deve contenere almeno {{value}} caratteri"
|
||||
"form_error_password_length": "La password deve contenere almeno {{value}} caratteri",
|
||||
"anonymizer_notification": "<0>Attenzione:</0> L'anonimizzazione dell'IP è abilitata. Puoi disabilitarla in <1>Impostazioni generali</1>.",
|
||||
"confirm_dns_cache_clear": "Sei sicuro di voler cancellare la cache DNS?",
|
||||
"cache_cleared": "Cache DNS è stata cancellata correttamente",
|
||||
"clear_cache": "Cancella cache",
|
||||
"make_static": "Rendere statico",
|
||||
"theme_auto_desc": "Auto (in base alla combinazione di colori del tuo dispositivo)",
|
||||
"theme_dark_desc": "Tema scuro",
|
||||
"theme_light_desc": "Tema chiaro",
|
||||
"disable_for_seconds": "Per {{count}} secondo",
|
||||
"disable_for_seconds_plural": "Per {{count}} secondi",
|
||||
"disable_for_minutes": "Per {{count}} minuto",
|
||||
"disable_for_minutes_plural": "Per {{count}} minuti",
|
||||
"disable_for_hours": "Per {{count}} ora",
|
||||
"disable_for_hours_plural": "Per {{count}} ore",
|
||||
"disable_until_tomorrow": "Fino a domani",
|
||||
"disable_notify_for_seconds": "Disattiva la protezione per {{count}} secondo",
|
||||
"disable_notify_for_seconds_plural": "Disattiva la protezione per {{count}} secondi",
|
||||
"disable_notify_for_minutes": "Disattiva protezione per {{count}} minuto",
|
||||
"disable_notify_for_minutes_plural": "Disattiva la protezione per {{count}} minuti",
|
||||
"disable_notify_for_hours": "Disattiva la protezione per {{count}} ora",
|
||||
"disable_notify_for_hours_plural": "Disattiva la protezione per {{count}} ore",
|
||||
"disable_notify_until_tomorrow": "Disattiva la protezione fino a domani",
|
||||
"enable_protection_timer": "La protezione verrà attivata in {{time}}",
|
||||
"custom_retention_input": "Inserisci la conservazione in ore",
|
||||
"custom_rotation_input": "Inserisci la rotazione in ore",
|
||||
"protection_section_label": "Protezione",
|
||||
"log_and_stats_section_label": "Registro richieste e statistiche",
|
||||
"ignore_query_log": "Ignora questo client nel registro delle richieste",
|
||||
"ignore_statistics": "Ignora questo cliente nelle statistiche"
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"disabled_dhcp": "DHCPサーバを無効にしました",
|
||||
"unavailable_dhcp": "DHCPは利用できません",
|
||||
"unavailable_dhcp_desc": "AdGuard Homeはお使いのOS上でDHCPサーバを実行できません。",
|
||||
"dhcp_title": "DHCPサーバ(実験的!)",
|
||||
"dhcp_title": "DHCPサーバ(※実験的)",
|
||||
"dhcp_description": "あなたのルータがDHCPの設定を提供していないのなら、AdGuardに内蔵されているDHCPサーバを利用できます。",
|
||||
"dhcp_enable": "DHCPサーバを有効にする",
|
||||
"dhcp_disable": "DHCPサーバを無効にする",
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 設定",
|
||||
"form_error_required": "必須項目です",
|
||||
"form_error_ip4_format": "IPv4アドレスが無効です",
|
||||
"form_error_ip4_range_start_format": "範囲開始のIPv4アドレスが無効です",
|
||||
"form_error_ip4_range_end_format": "範囲終了のIPv4アドレスが無効です",
|
||||
"form_error_ip4_gateway_format": "ゲートウェイのIPv4アドレスが無効です",
|
||||
"form_error_ip6_format": "IPv6アドレスが無効です",
|
||||
"form_error_ip_format": "IPアドレスが無効です",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "サーバー名が無効です",
|
||||
"form_error_subnet": "IPアドレス「{{ip}}」がサブネット「{{cidr}}」に含まれていません",
|
||||
"form_error_positive": "0より大きい値でなければなりません",
|
||||
"form_error_gateway_ip": "リースはゲートウェイのIPアドレスになっていることができません",
|
||||
"out_of_range_error": "\"{{start}}\"〜\"{{end}}\" の範囲外である必要があります",
|
||||
"lower_range_start_error": "範囲開始よりも低い値である必要があります",
|
||||
"greater_range_start_error": "範囲開始値より大きい値でなければなりません",
|
||||
"greater_range_end_error": "範囲終了値より大きい値でなければなりません",
|
||||
"subnet_error": "両アドレスが同じサブネット内にある必要があります",
|
||||
"gateway_or_subnet_invalid": "サブネットマスクが無効です",
|
||||
"dhcp_form_gateway_input": "ゲートウェイIP",
|
||||
@@ -70,8 +68,8 @@
|
||||
"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_lease_added": "静的リース \"{{key}}\" の追加が完了しました。",
|
||||
"dhcp_lease_deleted": "静的リース \"{{key}}\" の削除が完了しました。",
|
||||
"dhcp_new_static_lease": "新規静的割り当て",
|
||||
"dhcp_static_leases_not_found": "DHCP静的割り当てはありません",
|
||||
"dhcp_add_static_lease": "静的割り当てを追加する",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "ペアレンタルコントロールが有効になりました",
|
||||
"disabled_safe_search_toast": "セーフサーチが無効になりました",
|
||||
"enabled_save_search_toast": "セーフサーチが有効になりました",
|
||||
"updated_save_search_toast": "セーフ サーチの設定が更新されました。",
|
||||
"enabled_table_header": "有効",
|
||||
"name_table_header": "名称",
|
||||
"list_url_table_header": "URLリスト",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# これもコメントです",
|
||||
"example_regex_meaning": "指定の正規表現に一致するドメインへのアクセスをブロックします。",
|
||||
"example_upstream_regular": "通常のDNS(over UDP)。",
|
||||
"example_upstream_regular_port": "レギュラーDNS(over UDP、ポート付き)",
|
||||
"example_upstream_udp": "通常のDNS(over UDP, ホスト名)。",
|
||||
"example_upstream_dot": "暗号化されている <0>DNS-over-TLS</0>。",
|
||||
"example_upstream_doh": "暗号化されている <0>DNS-over-HTTPS</0>。",
|
||||
"example_upstream_doh3": "暗号化されたDNS-over-HTTPS(<0>HTTP/3</0>の強制、HTTP/2 以下へのフォールバックなし)",
|
||||
"example_upstream_doq": "暗号化 <0>DNS-over-QUIC</0>。",
|
||||
"example_upstream_sdns": "<1>DNSCrypt</1> または <2>DNS-over-HTTPS</2> リゾルバのための <0>DNS Stamps</0>。",
|
||||
"example_upstream_tcp": "通常のDNS(over TCP)。",
|
||||
"example_upstream_tcp_port": "レギュラーDNS(over TCP、ポート付き);",
|
||||
"example_upstream_tcp_hostname": "通常のDNS(over TCP, ホスト名)。",
|
||||
"all_lists_up_to_date_toast": "すべてのリストは既に最新です",
|
||||
"updated_upstream_dns_toast": "上流DNSサーバを保存しました。",
|
||||
"dns_test_ok_toast": "指定されたDNSサーバは正しく動作しています",
|
||||
"dns_test_not_ok_toast": "サーバ \"{{key}}\": 使用できませんでした。正しく入力されているかどうかを確認してください",
|
||||
"dns_test_warning_toast": "アップストリーム\"{{key}}\"はテストリクエストに応答せず、正しく動作しない可能性があります。",
|
||||
"unblock": "ブロック解除",
|
||||
"block": "ブロック",
|
||||
"disallow_this_client": "このクライアントを拒否する",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "クエリ・ログの消去に成功しました",
|
||||
"query_log_updated": "クエリ・ログの更新が成功しました",
|
||||
"query_log_clear": "クエリ・ログを消去する",
|
||||
"query_log_retention": "クエリ・ログの保持",
|
||||
"query_log_retention": "クエリ・ログのローテーション",
|
||||
"query_log_enable": "ログを有効にする",
|
||||
"query_log_configuration": "ログ設定",
|
||||
"query_log_disabled": "クエリ・ログは無効になっており、<0>設定</0>で構成できます",
|
||||
"query_log_strict_search": "完全一致検索には二重引用符を使用します",
|
||||
"query_log_retention_confirm": "クエリ・ログの保持を変更してもよろしいですか? 期間を短くすると、一部のデータが失われます",
|
||||
"query_log_retention_confirm": "クエリ・ログのローテーションを変更してもよろしいですか? 間隔の値を減らすと、一部のデータが失われます",
|
||||
"anonymize_client_ip": "クライアントIPを匿名化する",
|
||||
"anonymize_client_ip_desc": "ログと統計にクライアントのフルIPアドレスを保存しないようにします。",
|
||||
"dns_config": "DNSサーバ設定",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "頻度制限",
|
||||
"edns_enable": "EDNSクライアントサブネットを有効にする",
|
||||
"edns_cs_desc": "アップストリームリクエストにEDNSクライアントサブネットオプション(ECS)を追加し、クライアントから送信された値をクエリログに記録します。",
|
||||
"edns_use_custom_ip": "EDNSにカスタムIPを使用する",
|
||||
"edns_use_custom_ip_desc": "EDNS に対してカスタム IP の使用を許可します。",
|
||||
"rate_limit_desc": "一つのクライアントに対して許可される1秒あたりのリクエスト数(「0」に設定すると、制限なしになります)",
|
||||
"blocking_ipv4_desc": "ブロックされたAリクエストに対して応答されるIPアドレス",
|
||||
"blocking_ipv6_desc": "ブロックされたAAAAリクエストに対して応答されるIPアドレス",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN:NXDOMAINコードで応答します",
|
||||
"blocking_mode_null_ip": "Null IP:ゼロのIPアドレスで応答します(Aの場合は0.0.0.0; AAAAの場合は::)",
|
||||
"blocking_mode_custom_ip": "カスタムIP:手動で設定されたIPアドレスで応答します",
|
||||
"theme_auto": "自動",
|
||||
"theme_light": "ライト",
|
||||
"theme_dark": "ダーク",
|
||||
"upstream_dns_client_desc": "このフィールドを未入力のままにすると、AdGuard Homeは<0>DNS設定</0>で構成されたサーバを使用します。",
|
||||
"tracker_source": "追跡元",
|
||||
"source_label": "ソース",
|
||||
@@ -360,9 +368,9 @@
|
||||
"encryption_title": "暗号化",
|
||||
"encryption_desc": "DNSと管理者ウェブインターフェースの両方に対する暗号化(HTTPS/QUIC/TLS)サポート。",
|
||||
"encryption_config_saved": "暗号化構成が保存されました。",
|
||||
"encryption_server": "サーバ名",
|
||||
"encryption_server": "サーバー名",
|
||||
"encryption_server_enter": "ドメイン名を入力してください",
|
||||
"encryption_server_desc": "HTTPSを使用するには、SSL証明書またはワイルドカード証明書と一致するサーバー名を入力する必要があります。このフィールドが設定されていない場合は、任意のドメインのTLS接続を受け入れます。",
|
||||
"encryption_server_desc": "こちらでサーバー名を設定すると、AdGuard HomeはClientIDを検出し、DDRクエリに応答し、追加の接続検証を実行します。設定されていない場合、これらの機能は無効になります。※証明書のDNS名のいずれかに一致する必要があります。",
|
||||
"encryption_redirect": "HTTPSに自動的にリダイレクト",
|
||||
"encryption_redirect_desc": "チェックすると、AdGuard Homeは自動的にHTTPからHTTPSアドレスへリダイレクトします。",
|
||||
"encryption_https": "HTTPS ポート",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "発行者",
|
||||
"encryption_hostnames": "ホスト名",
|
||||
"encryption_reset": "暗号化設定をリセットして良いですか?",
|
||||
"encryption_warning": "警告",
|
||||
"topline_expiring_certificate": "SSL証明書は期限切れになります。<0>暗号化設定</0>を更新します。",
|
||||
"topline_expired_certificate": "SSL証明書は期限切れです。<0>暗号化設定</0>を更新します。",
|
||||
"form_error_port_range": "80〜65535 の範囲内でポート番号を入力してください",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "拒否するドメイン",
|
||||
"access_blocked_desc": "こちらをフィルタと混同しないでください。AdGuard Homeは、ここで入力されたドメインに一致するDNSクエリをドロップし、そういったクエリはクエリログにも表示されません。ここでは、「example.org」、「*.example.org」、「 ||example.org^ 」など、特定のドメイン名、ワイルドカード、URLフィルタルールを入力できます。",
|
||||
"access_settings_saved": "アクセス設定の保存に成功しました",
|
||||
"updates_checked": "アップデートの確認に成功しました",
|
||||
"updates_checked": "AdGuard Homeの新バージョンが利用可能です。",
|
||||
"updates_version_equal": "AdGuard Homeは既に最新です",
|
||||
"check_updates_now": "今すぐアップデートを確認する",
|
||||
"version_request_error": "アップデート確認に失敗しました。インターネット接続を確認してください。",
|
||||
"dns_privacy": "DNSプライバシー",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> <1>{{address}}</1>という文字列を使用してください。",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> <1>{{address}}</1>という文字列を使用してください。",
|
||||
@@ -466,11 +476,11 @@
|
||||
"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書き換え情報を削除完了しました",
|
||||
"rewrite_added": "\"{{key}}\" のDNS書き換え情報を追加完了しました",
|
||||
"rewrite_deleted": "\"{{key}}\" のDNS書き換え情報を削除完了しました",
|
||||
"rewrite_add": "DNS書き換え情報を追加する",
|
||||
"rewrite_not_found": "DNS書き換え情報はありません",
|
||||
"rewrite_confirm_delete": "\"{{key}}\" のためのDNS書き換え情報を削除してもよろしいですか?",
|
||||
"rewrite_confirm_delete": "\"{{key}}\" のDNS書き換え情報を削除してもよろしいですか?",
|
||||
"rewrite_desc": "特定のドメイン名に対するDNS応答を簡単にカスタマイズすることを可能にします。",
|
||||
"rewrite_applied": "書き換えルールを適用済み",
|
||||
"rewrite_hosts_applied": "hostsファイルのルールによって書き換え済み",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "統計の保持を変更してもよろしいですか? 期間を短くすると、一部のデータが失われます",
|
||||
"statistics_cleared": "統計の消去に成功しました",
|
||||
"statistics_enable": "統計を有効にする",
|
||||
"ignore_domains": "無視するドメイン(それぞれ改行で区切ってください)",
|
||||
"ignore_domains_title": "無視するドメイン",
|
||||
"ignore_domains_desc_stats": "これらのドメインへのクエリは統計に書き込まれません。",
|
||||
"ignore_domains_desc_query": "これらのドメインへのクエリはクエリログに書き込まれません。",
|
||||
"interval_hours": "{{count}}時間",
|
||||
"interval_hours_plural": "{{count}}時間",
|
||||
"filters_configuration": "フィルタ設定",
|
||||
@@ -551,7 +565,7 @@
|
||||
"disable_ipv6_desc": "IPv6アドレス(タイプAAAA)に対するすべてのDNSクエリをドロップします。",
|
||||
"fastest_addr": "最速のIPアドレス",
|
||||
"fastest_addr_desc": "すべてのDNSサーバーに処理要求し、全応答の中で最速のIPアドレスを返します。これにより、AdGuard HomeがすべてのDNSサーバーからの応答を待つ必要があるため、DNSクエリが遅くなりますが、全体的な接続性は向上します。",
|
||||
"autofix_warning_text": "\"改善\"をクリックすると、AdGuardHomeはAdGuardHome 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によって処理されます。",
|
||||
"tags_title": "タグ",
|
||||
@@ -574,7 +588,7 @@
|
||||
"client_confirm_block": "クライアント\"{{ip}}\"をブロックしてもよろしいですか?",
|
||||
"client_confirm_unblock": "クライアント\"{{ip}}\"のブロックを解除してもよろしいですか?",
|
||||
"client_blocked": "クライアント\"{{ip}}\"のブロックに成功しました",
|
||||
"client_unblocked": "クライアント\"{{ip}}\"のブロックの解除に成功しました",
|
||||
"client_unblocked": "クライアント\"{{ip}}\"のブロック解除に成功しました",
|
||||
"static_ip": "静的IPアドレス",
|
||||
"static_ip_desc": "AdGuard Homeはサーバであり、正しく機能させるには静的IPアドレスが必要です。そうしないと、ある時点で、ルータがこのデバイスに異なるIPアドレスを割り当てるかもしれません。",
|
||||
"set_static_ip": "静的IPアドレスを設定する",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "ブロックリスト",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "キャッシュサイズ",
|
||||
"cache_size_desc": "DNSキャッシュサイズ(バイト単位)",
|
||||
"cache_size_desc": "DNSキャッシュサイズ(バイト単位)。※キャッシュを無効化するには、この欄を空してください。",
|
||||
"cache_ttl_min_override": "最小TTLの上書き(秒単位)",
|
||||
"cache_ttl_max_override": "最大TTLの上書き(秒単位)",
|
||||
"enter_cache_size": "キャッシュサイズ(バイト単位)を入力してください",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "ペアレンタルコントロール",
|
||||
"safe_browsing": "セーフブラウジング",
|
||||
"served_from_cache": "{{value}} <i>(キャッシュから応答)</i>",
|
||||
"form_error_password_length": "パスワードは{{value}}文字以上にしてください"
|
||||
"form_error_password_length": "パスワードは{{value}}文字以上にしてください",
|
||||
"anonymizer_notification": "【<0>注意</0>】IPの匿名化が有効になっています。 <1>一般設定</1>で無効にできます。",
|
||||
"confirm_dns_cache_clear": "DNS キャッシュをクリアしてもよろしいですか?",
|
||||
"cache_cleared": "DNSキャッシュのクリア完了です。",
|
||||
"clear_cache": "キャッシュをクリアする",
|
||||
"make_static": "静的(static)にする",
|
||||
"theme_auto_desc": "自動(デバイスの配色に合わせる)",
|
||||
"theme_dark_desc": "ダークテーマ",
|
||||
"theme_light_desc": "ライトテーマ",
|
||||
"disable_for_seconds": "{{count}}秒間",
|
||||
"disable_for_seconds_plural": "{{count}}秒間",
|
||||
"disable_for_minutes": "{{count}}分間",
|
||||
"disable_for_minutes_plural": "{{count}}分間",
|
||||
"disable_for_hours": "{{count}}時間",
|
||||
"disable_for_hours_plural": "{{count}}時間",
|
||||
"disable_until_tomorrow": "明日まで",
|
||||
"disable_notify_for_seconds": "保護を {{count}} 秒間無効にする",
|
||||
"disable_notify_for_seconds_plural": "保護を {{count}} 秒間無効にする",
|
||||
"disable_notify_for_minutes": "保護を {{count}} 分間無効にする",
|
||||
"disable_notify_for_minutes_plural": "保護を {{count}} 分間無効にする",
|
||||
"disable_notify_for_hours": "保護を {{count}} 時間無効にする",
|
||||
"disable_notify_for_hours_plural": "保護を {{count}} 時間無効にする",
|
||||
"disable_notify_until_tomorrow": "明日まで保護を無効にする",
|
||||
"enable_protection_timer": "保護は後 {{time}} で有効になります",
|
||||
"custom_retention_input": "保持期間を入力してください(時間単位)",
|
||||
"custom_rotation_input": "ローテーションを入力してください(時間単位)",
|
||||
"protection_section_label": "AdGuardによる保護",
|
||||
"log_and_stats_section_label": "クエリ・ログと統計情報",
|
||||
"ignore_query_log": "クエリ・ログでこのクライアントを無視する",
|
||||
"ignore_statistics": "統計でこのクライアントを無視する"
|
||||
}
|
||||
|
||||
@@ -37,20 +37,18 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 설정",
|
||||
"form_error_required": "필수 영역",
|
||||
"form_error_ip4_format": "잘못된 IPv4 형식",
|
||||
"form_error_ip4_range_start_format": "잘못된 범위 시작 IPv4 형식",
|
||||
"form_error_ip4_range_end_format": "잘못된 범위 종료 IPv4 형식",
|
||||
"form_error_ip4_gateway_format": "잘못된 게이트웨이 IPv4 형식",
|
||||
"form_error_ip6_format": "잘못된 IPv6 주소",
|
||||
"form_error_ip_format": "잘못된 IP 주소",
|
||||
"form_error_mac_format": "잘못된 MAC 주소",
|
||||
"form_error_client_id_format": "ClientID는 숫자, 소문자 및 붙임표(-)만 포함해야 합니다",
|
||||
"form_error_server_name": "유효하지 않은 서버 이름",
|
||||
"form_error_subnet": "서브넷 \"{{cidr}}\"에 \"{{ip}}\" IP 주소가 없습니다",
|
||||
"form_error_subnet": "서브넷 '{{cidr}}'에 '{{ip}}' IP 주소가 없습니다",
|
||||
"form_error_positive": "0보다 커야 합니다",
|
||||
"out_of_range_error": "\"{{start}}\"-\"{{end}}\" 범위 밖이어야 합니다",
|
||||
"form_error_gateway_ip": "임대는 게이트웨이의 IP 주소를 가질 수 없습니다",
|
||||
"out_of_range_error": "'{{start}}'-'{{end}}' 범위 밖이어야 합니다",
|
||||
"lower_range_start_error": "범위 시작보다 작은 값이어야 합니다",
|
||||
"greater_range_start_error": "범위 시작보다 큰 값이어야 합니다",
|
||||
"greater_range_end_error": "범위 종료보다 큰 값이어야 합니다",
|
||||
"subnet_error": "주소는 하나의 서브넷에 있어야 합니다",
|
||||
"gateway_or_subnet_invalid": "잘못된 서브넷 마스크",
|
||||
"dhcp_form_gateway_input": "게이트웨이 IP",
|
||||
@@ -70,8 +68,8 @@
|
||||
"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_lease_added": "'{{key}}' 고정 임대 정상적으로 추가되었습니다",
|
||||
"dhcp_lease_deleted": "'{{key}}' 고정 임대 정상적으로 삭제되었습니다",
|
||||
"dhcp_new_static_lease": "새 고정 임대",
|
||||
"dhcp_static_leases_not_found": "DHCP 고정 임대를 찾을 수 없음",
|
||||
"dhcp_add_static_lease": "고정 임대 추가",
|
||||
@@ -81,7 +79,7 @@
|
||||
"dhcp_reset": "정말로 DHCP 설정을 초기화할까요?",
|
||||
"country": "지역",
|
||||
"city": "도시",
|
||||
"delete_confirm": "\"{{key}}\"을 삭제하시겠습니까?",
|
||||
"delete_confirm": "'{{key}}'을(를) 삭제하시겠습니까?",
|
||||
"form_enter_hostname": "호스트 이름을 입력해주세요",
|
||||
"error_details": "오류 상세 정보",
|
||||
"response_details": "응답 정보",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "자녀 보호 활성화됨",
|
||||
"disabled_safe_search_toast": "세이프서치 비활성화됨",
|
||||
"enabled_save_search_toast": "세이프서치 활성화됨",
|
||||
"updated_save_search_toast": "세이프서치 설정 업데이트됨",
|
||||
"enabled_table_header": "활성화됨",
|
||||
"name_table_header": "이름",
|
||||
"list_url_table_header": "리스트 URL",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# 이것 또한 댓글입니다.",
|
||||
"example_regex_meaning": "특정 정규 표현식에 맞는 도메인 접근을 차단합니다.",
|
||||
"example_upstream_regular": "일반 DNS (UDP을 통한 접속);",
|
||||
"example_upstream_regular_port": "일반 DNS (UDP 이용, 포트 포함);",
|
||||
"example_upstream_udp": "일반 DNS (UDP를 통한, 호스트명);",
|
||||
"example_upstream_dot": "암호화된 <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "암호화된 <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "암호화된 DNS-over-HTTPS가 강제로 <0>HTTP/3</0>를 사용하며 HTTP/2 이하로 폴백하지 않습니다.",
|
||||
"example_upstream_doq": "암호화된 <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<1>DNSCrypt</1> 또는 <2>DNS-over-HTTPS</2> 리졸버를 위한 <0>DNS 스탬프</0>;",
|
||||
"example_upstream_tcp": "일반 DNS (TCP를 통한 접속);",
|
||||
"example_upstream_tcp_port": "일반 DNS (TCP 이용, 포트 포함);",
|
||||
"example_upstream_tcp_hostname": "일반 DNS (TCP를 통한, 호스트명);",
|
||||
"all_lists_up_to_date_toast": "모든 리스트가 이미 최신입니다",
|
||||
"updated_upstream_dns_toast": "업스트림 서버가 성공적으로 저장되었습니다",
|
||||
"dns_test_ok_toast": "특정 DNS 서버들은 정상적으로 동작 중입니다",
|
||||
"dns_test_not_ok_toast": "서버 \"{{key}}\": 사용할 수 없습니다, 제대로 작성했는지 확인하세요.",
|
||||
"dns_test_ok_toast": "지정된 DNS 서버가 올바르게 작동하고 있습니다.",
|
||||
"dns_test_not_ok_toast": "서버 '{{key}}': 사용할 수 없습니다, 제대로 작성했는지 확인하세요",
|
||||
"dns_test_warning_toast": "업스트림 '{{key}}'이(가) 테스트 요청에 응답하지 않으며 제대로 작동하지 않을 수 있습니다",
|
||||
"unblock": "차단 해제",
|
||||
"block": "차단",
|
||||
"disallow_this_client": "클라이언트 거부",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "쿼리 로그를 성공적으로 초기화했습니다",
|
||||
"query_log_updated": "질의 로그가 성공적으로 업데이트되었습니다",
|
||||
"query_log_clear": "쿼리 로그 비우기",
|
||||
"query_log_retention": "쿼리 로그 저장 기간",
|
||||
"query_log_retention": "쿼리 로그 로테이션",
|
||||
"query_log_enable": "로그 활성화",
|
||||
"query_log_configuration": "로그 구성",
|
||||
"query_log_disabled": "쿼리 로그가 비활성화되어 있으며 <0>설정</0>에서 설정할 수 있습니다",
|
||||
"query_log_strict_search": "검색을 제한하려면 쌍따옴표를 사용해주세요",
|
||||
"query_log_retention_confirm": "정말로 쿼리 로그 저장 기간을 변경하시겠습니까? 저장 주기를 낮출 경우, 일부 데이터가 손실됩니다",
|
||||
"query_log_retention_confirm": "쿼리 로그 로테이션을 변경하시겠습니까? 간격 값을 줄이면 일부 데이터가 손실됩니다.",
|
||||
"anonymize_client_ip": "클라이언트 IP 익명화",
|
||||
"anonymize_client_ip_desc": "클라이언트의 전체 IP 주소를 로그와 통계에 저장하저장하지 마세요",
|
||||
"dns_config": "DNS 서버 설정",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "한도 제한",
|
||||
"edns_enable": "EDNS 클라이언트 서브넷 활성화",
|
||||
"edns_cs_desc": "업스트림 요청에 EDNS 클라이언트 서브넷 옵션(ECS)을 추가하고 쿼리 로그에 클라이언트가 보낸 값을 기록합니다.",
|
||||
"edns_use_custom_ip": "EDNS에 사용자 지정 IP 사용",
|
||||
"edns_use_custom_ip_desc": "EDNS에 사용자 지정 IP 사용하도록 허용합니다.",
|
||||
"rate_limit_desc": "단일 클라이언트에서 허용 가능한 초 당 요청 생성 숫자 (0: 무제한)",
|
||||
"blocking_ipv4_desc": "차단된 A 요청에 대해서 반환할 IP 주소",
|
||||
"blocking_ipv6_desc": "차단된 AAAA 요청에 대해서 반환할 IP 주소",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: NXDOMAIN 코드로 응답",
|
||||
"blocking_mode_null_ip": "Null IP: 제로 IP 주소 (A는 0.0.0.0; AAAA는 ::) 로 응답합니다",
|
||||
"blocking_mode_custom_ip": "커스텀 IP: 직접 설정한 IP 주소로 응답합니다",
|
||||
"theme_auto": "자동",
|
||||
"theme_light": "라이트 테마",
|
||||
"theme_dark": "다크 테마",
|
||||
"upstream_dns_client_desc": "이 값을 비워둔다면 AdGuard Home은 <0>DNS 설정</0>에 설정되어 있는 값을 사용합니다.",
|
||||
"tracker_source": "추적기 소스",
|
||||
"source_label": "소스",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "암호화 구성이 저장되었습니다",
|
||||
"encryption_server": "서버 이름",
|
||||
"encryption_server_enter": "도메인 이름을 입력하세요.",
|
||||
"encryption_server_desc": "HTTPS를 사용하려면 SSL 인증서와 일치하는 서버 이름을 입력해야 합니다.",
|
||||
"encryption_server_desc": "설정된 경우 AdGuard Home은 ClientID를 감지하고 DDR 쿼리에 응답하고 추가 연결 유효성 검사를 수행합니다. 설정하지 않으면 이러한 기능이 비활성화됩니다. 인증서의 DNS 이름 중 하나와 일치해야 합니다.",
|
||||
"encryption_redirect": "HTTPS로 자동 리디렉션",
|
||||
"encryption_redirect_desc": "상자를 체크하면 AdGuard Home 자동으로 사용자를 HTTP에서 HTTPS 주소로 리디렉션합니다.",
|
||||
"encryption_https": "HTTP 포트",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "발행자",
|
||||
"encryption_hostnames": "호스트 이름",
|
||||
"encryption_reset": "암호화 설정을 재설정하시겠습니까?",
|
||||
"encryption_warning": "경고",
|
||||
"topline_expiring_certificate": "SSL 인증서가 곧 만료됩니다. 업데이트<0> 암호화 설정</0>.",
|
||||
"topline_expired_certificate": "SSL 인증서가 만료되었습니다. 업데이트<0> 암호화 설정</0>.",
|
||||
"form_error_port_range": "80-65535 범위의 포트 번호를 입력하세요",
|
||||
@@ -421,18 +430,18 @@
|
||||
"ip_address": "IP 주소",
|
||||
"client_identifier_desc": "클라이언트는 IP 주소, CIDR, MAC 주소 또는 ClientID(DoT/DoH/DoQ에 사용 가능)로 식별할 수 있습니다. <0>여기에서</0> 클라이언트를 식별하는 방법에 대한 자세한 내용은 확인하실 수 있습니다.",
|
||||
"form_enter_ip": "IP 입력",
|
||||
"form_enter_subnet_ip": "서브넷 \"{{cidr}}\" 내의 IP 주소 입력",
|
||||
"form_enter_subnet_ip": "서브넷 '{{cidr}}' 내의 IP 주소 입력",
|
||||
"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": "런타임 클라이언트",
|
||||
"auto_clients_desc": "AdGuard Home을 계속 사용할 수 있는 영구 클라이언트 목록에 없는 디바이스입니다",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "차단된 도메인",
|
||||
"access_blocked_desc": "이 기능을 필터와 혼동하지 마세요. AdGuard Home은 이 도메인에 대한 DNS 요청을 무시합니다. 여기에서는 'example.org' '*. example.org', '|| example.org ^'와 같은 특정 도메인 이름, 와일드 카드, URL 필터 규칙을 지정할 수 있습니다.",
|
||||
"access_settings_saved": "액세스 설정이 성공적으로 저장되었습니다.",
|
||||
"updates_checked": "업데이트가 성공적으로 확인되었습니다",
|
||||
"updates_checked": "AdGuard Home의 새 버전을 사용할 수 있습니다",
|
||||
"updates_version_equal": "AdGuard Home 최신 상태입니다.",
|
||||
"check_updates_now": "지금 업데이트 확인",
|
||||
"version_request_error": "업데이트 체크에 실패했습니다. 인터넷 연결 상태를 확인해주세요.",
|
||||
"dns_privacy": "DNS 프라이버시",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> <1>{{address}}</1> 사용하세요.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> <1>{{address}}</1> 사용하세요.",
|
||||
@@ -466,11 +476,11 @@
|
||||
"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 수정 정보를 성공적으로 삭제 됩니다.",
|
||||
"rewrite_added": "'{{key}}'에 대한 DNS 수정 정보를 성공적으로 추가 됩니다",
|
||||
"rewrite_deleted": "'{{key}}'에 대한 DNS 수정 정보를 성공적으로 삭제 됩니다",
|
||||
"rewrite_add": "DNS 변환 정보를 추가합니다",
|
||||
"rewrite_not_found": "DNS 변경 정보를 찾을 수 없습니다",
|
||||
"rewrite_confirm_delete": "\"{{key}}\"에 대한 DNS 변경 정보를 삭제하시겠습니까?",
|
||||
"rewrite_confirm_delete": "'{{key}}'에 대한 DNS 변경 정보를 삭제하시겠습니까?",
|
||||
"rewrite_desc": "특정 도메인 이름에 대한 사용자 지정 DNS 응답을 쉽게 구성할 수 있습니다.",
|
||||
"rewrite_applied": "리디렉션 규칙이 적용됩니다",
|
||||
"rewrite_hosts_applied": "호스트 파일 규칙에 따라 재작성",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "정말로 통계 저장 기간을 변경하시겠습니까? 저장 주기를 낮출 경우, 일부 데이터가 손실됩니다",
|
||||
"statistics_cleared": "통계를 성공적으로 초기화했습니다.",
|
||||
"statistics_enable": "통계 활성화",
|
||||
"ignore_domains": "무시된 도메인(줄 바꿈으로 구분)",
|
||||
"ignore_domains_title": "무시된 도메인",
|
||||
"ignore_domains_desc_stats": "이러한 도메인에 대한 쿼리는 통계에 기록되지 않습니다.",
|
||||
"ignore_domains_desc_query": "이러한 도메인에 대한 쿼리는 쿼리 로그에 기록되지 않습니다.",
|
||||
"interval_hours": "{{count}} 시간",
|
||||
"interval_hours_plural": "{{count}} 시간",
|
||||
"filters_configuration": "필터 구성",
|
||||
@@ -551,7 +565,7 @@
|
||||
"disable_ipv6_desc": "IPv6 주소(타입 AAAA)의 모든 DNS 쿼리가 무시됩니다.",
|
||||
"fastest_addr": "가장 빠른 IP 주소",
|
||||
"fastest_addr_desc": "모든 DNS 서버에 쿼리를 수행한 다음 반응이 가장 빠른 IP주소를 반송합니다. AdGuard Home이 모든 DNS 서버의 응답을 기다려야 하기 때문에 DNS 쿼리 속도가 느려지지만 전반적인 연결이 향상됩니다.",
|
||||
"autofix_warning_text": "\"Fix\"를 클릭한다면 AdGuard Home은 시스템이 AdGuard Home의 DNS 서버를 사용하도록 설정합니다.",
|
||||
"autofix_warning_text": "'수정'을 클릭하면 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에 의해 처리됩니다.",
|
||||
"tags_title": "태그",
|
||||
@@ -571,10 +585,10 @@
|
||||
"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 주소 설정",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "차단 목록",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "캐시 크기",
|
||||
"cache_size_desc": "DNS 캐시 크기 (바이트).",
|
||||
"cache_size_desc": "DNS 캐시 크기(바이트). 캐싱을 비활성화하려면 비워 둡니다.",
|
||||
"cache_ttl_min_override": "최소 TTL (초) 무시",
|
||||
"cache_ttl_max_override": "최대 TTL (초) 무시",
|
||||
"enter_cache_size": "캐시 크기를 입력하세요",
|
||||
@@ -623,7 +637,7 @@
|
||||
"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은 이 클라이언트에서 모든 DNS 쿼리를 삭제합니다.",
|
||||
"filter_allowlist": "경고: 이 경우 허용된 클라이언트 목록에서 '{{disallowed_rule}}' 규칙 또한 제외됩니다.",
|
||||
"last_rule_in_allowlist": "'{{disallowed_rule}}' 규칙을 제외하면 '허용된 클라이언트' 목록이 꺼지므로 해당 클라이언트를 제외할 수 없습니다.",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "자녀 보호",
|
||||
"safe_browsing": "세이프 브라우징",
|
||||
"served_from_cache": "{{value}} <i>(캐시에서 제공)</i>",
|
||||
"form_error_password_length": "비밀번호는 {{value}}자 이상이어야 합니다"
|
||||
"form_error_password_length": "비밀번호는 {{value}}자 이상이어야 합니다",
|
||||
"anonymizer_notification": "<0>참고:</0> IP 익명화가 활성화되었습니다. <1>일반 설정</1>에서 비활성화할 수 있습니다.",
|
||||
"confirm_dns_cache_clear": "정말로 DNS 캐시를 지우시겠습니까?",
|
||||
"cache_cleared": "DNS 캐시를 성공적으로 지웠습니다",
|
||||
"clear_cache": "캐시 지우기",
|
||||
"make_static": "정적으로 만들기",
|
||||
"theme_auto_desc": "자동(기기의 색 구성표에 따라 설정)",
|
||||
"theme_dark_desc": "다크 테마",
|
||||
"theme_light_desc": "라이트 테마",
|
||||
"disable_for_seconds": "{{count}}초",
|
||||
"disable_for_seconds_plural": "{{count}}초",
|
||||
"disable_for_minutes": "{{count}}분",
|
||||
"disable_for_minutes_plural": "{{count}}분간",
|
||||
"disable_for_hours": "{{count}}시간",
|
||||
"disable_for_hours_plural": "{{count}}시간",
|
||||
"disable_until_tomorrow": "내일까지",
|
||||
"disable_notify_for_seconds": "{{count}}초 동안 보호 기능 비활성화",
|
||||
"disable_notify_for_seconds_plural": "{{count}}초 동안 보호 기능 비활성화",
|
||||
"disable_notify_for_minutes": "{{count}}분 동안 보호 기능 비활성화",
|
||||
"disable_notify_for_minutes_plural": "{{count}}분 동안 보호 기능 비활성화",
|
||||
"disable_notify_for_hours": "{{count}}시간 동안 보호 기능 비활성화",
|
||||
"disable_notify_for_hours_plural": "{{count}}시간 동안 보호 기능 비활성화",
|
||||
"disable_notify_until_tomorrow": "내일까지 보호 기능 비활성화",
|
||||
"enable_protection_timer": "{{time}}에 보호 기능이 활성화됩니다.",
|
||||
"custom_retention_input": "시간 단위로 보존 기간 입력",
|
||||
"custom_rotation_input": "시간 단위로 로테이션 입력",
|
||||
"protection_section_label": "보호",
|
||||
"log_and_stats_section_label": "쿼리 로그 및 통계",
|
||||
"ignore_query_log": "쿼리 로그에서 이 클라이언트 무시",
|
||||
"ignore_statistics": "통계에서 이 클라이언트 무시"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 instellingen",
|
||||
"form_error_required": "Vereist veld",
|
||||
"form_error_ip4_format": "Ongeldig IPv4-adres",
|
||||
"form_error_ip4_range_start_format": "Ongeldig IPv4-adres start bereik",
|
||||
"form_error_ip4_range_end_format": "Ongeldig IPv4-adres einde bereik",
|
||||
"form_error_ip4_gateway_format": "Ongeldig IPv4-adres van de gateway",
|
||||
"form_error_ip6_format": "Ongeldig IPv6-adres",
|
||||
"form_error_ip_format": "Ongeldig IP-adres",
|
||||
@@ -47,12 +45,12 @@
|
||||
"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_gateway_ip": "Lease kan niet het IP-adres van de gateway hebben",
|
||||
"out_of_range_error": "Moet buiten bereik zijn \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Moet lager zijn dan begin reeks",
|
||||
"greater_range_start_error": "Moet groter zijn dan begin reeks",
|
||||
"greater_range_end_error": "Moet groter zijn dan einde reeks",
|
||||
"subnet_error": "Adressen moeten in één subnet vallen",
|
||||
"gateway_or_subnet_invalid": "Subnetmasker ongeldig",
|
||||
"gateway_or_subnet_invalid": "Ongeldig subnetmasker",
|
||||
"dhcp_form_gateway_input": "Gateway IP",
|
||||
"dhcp_form_subnet_input": "Subnet mask",
|
||||
"dhcp_form_range_title": "Bereik van IP adressen",
|
||||
@@ -149,9 +147,9 @@
|
||||
"general_settings": "Algemene instellingen",
|
||||
"dns_settings": "DNS instellingen",
|
||||
"dns_blocklists": "DNS blokkeerlijsten",
|
||||
"dns_allowlists": "DNS toestemmingslijsten",
|
||||
"dns_allowlists": "DNS-toelatingslijsten",
|
||||
"dns_blocklists_desc": "AdGuard Home zal domeinen blokkeren die voorkomen in de blokkeerlijsten.",
|
||||
"dns_allowlists_desc": "Domeinen in de DNS toestemmingslijsten worden toegestaan zelfs al komen ze voor in de blokkeerlijsten.",
|
||||
"dns_allowlists_desc": "Domeinen van DNS-toelatingslijsten zijn toegestaan, zelfs als ze op een van de blokkeerlijsten staan.",
|
||||
"custom_filtering_rules": "Aangepaste filter regels",
|
||||
"encryption_settings": "Encryptie instellingen",
|
||||
"dhcp_settings": "DHCP instellingen",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Ingeschakeld Ouderlijk toezicht",
|
||||
"disabled_safe_search_toast": "Uitgeschakeld Veilig zoeken",
|
||||
"enabled_save_search_toast": "Ingeschakeld Veilig zoeken",
|
||||
"updated_save_search_toast": "Safe Search-instellingen bijgewerkt",
|
||||
"enabled_table_header": "Ingeschakeld",
|
||||
"name_table_header": "Naam",
|
||||
"list_url_table_header": "URL lijst",
|
||||
@@ -181,21 +180,21 @@
|
||||
"elapsed": "Verstreken",
|
||||
"filters_and_hosts_hint": "AdGuard Home kan overweg met basic adblock regels en hosts bestanden syntaxis.",
|
||||
"no_blocklist_added": "Geen blokkeerlijsten toegevoegd",
|
||||
"no_whitelist_added": "Geen toestemmingslijsten toegevoegd",
|
||||
"no_whitelist_added": "Geen toelatingslijsten toegevoegd",
|
||||
"add_blocklist": "Blokkeerlijst toevoegen",
|
||||
"add_allowlist": "Toestemmingslijst toevoegen",
|
||||
"add_allowlist": "Toelatingslijst toevoegen",
|
||||
"cancel_btn": "Annuleren",
|
||||
"enter_name_hint": "Voeg naam toe",
|
||||
"enter_url_or_path_hint": "Voer een URL in of het pad van de lijst",
|
||||
"check_updates_btn": "Controleer op updates",
|
||||
"new_blocklist": "Nieuwe blokkeerlijst",
|
||||
"new_allowlist": "Nieuwe toestemmingslijst",
|
||||
"new_allowlist": "Nieuwe toelatingslijst",
|
||||
"edit_blocklist": "Blokkeerlijst beheren",
|
||||
"edit_allowlist": "Toestemmingslijst beheren",
|
||||
"edit_allowlist": "Toelatingslijst bewerken",
|
||||
"choose_blocklist": "Blokkeringslijsten selecteren",
|
||||
"choose_allowlist": "Toestemmingslijsten selecteren",
|
||||
"choose_allowlist": "Toelatingslijsten selecteren",
|
||||
"enter_valid_blocklist": "Voer een geldige URL in voor de blokkeerlijst.",
|
||||
"enter_valid_allowlist": "Voer een geldige URL in voor de toestemmingslijst.",
|
||||
"enter_valid_allowlist": "Voer een geldige URL naar de toelatingslijst in.",
|
||||
"form_error_url_format": "Ongeldig URL-opmaak",
|
||||
"form_error_url_or_path_format": "Ongeldig URL of pad van de lijst",
|
||||
"custom_filter_rules": "Aangepaste filterregels",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Ook een opmerking.",
|
||||
"example_regex_meaning": "toegang blokkeren tot de domeinen die overeenkomen met de opgegeven reguliere expressie.",
|
||||
"example_upstream_regular": "standaard DNS (over UDP);",
|
||||
"example_upstream_regular_port": "standaard DNS (via UDP, met poort);",
|
||||
"example_upstream_udp": "standaard DNS (via UDP, hostnaam);",
|
||||
"example_upstream_dot": "versleutelde <0>DNS-via-TLS</0>;",
|
||||
"example_upstream_doh": "versleutelde <0>DNS-via-HTTPS</0>;",
|
||||
"example_upstream_doh3": "versleutelde DNS-over-HTTPS met geforceerde <0>HTTP/3</0> en geen terugval naar HTTP/2 of lager;",
|
||||
"example_upstream_doq": "versleutelde <0>DNS-via-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS Stamps</0> voor <1>DNSCrypt</1> of <2>DNS-via-HTTPS</2> oplossingen;",
|
||||
"example_upstream_tcp": "standaard DNS (over TCP);",
|
||||
"example_upstream_tcp_port": "standaard DNS (via TCP, met poort);",
|
||||
"example_upstream_tcp_hostname": "standaard DNS (via TCP, hostnaam);",
|
||||
"all_lists_up_to_date_toast": "Alle lijsten zijn reeds actueel",
|
||||
"updated_upstream_dns_toast": "Upstream-servers succesvol opgeslagen",
|
||||
"dns_test_ok_toast": "Opgegeven DNS-servers werken correct",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": kon niet worden gebruikt, controleer of je het correct hebt geschreven",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" reageert niet op testverzoeken en werkt mogelijk niet goed",
|
||||
"unblock": "Deblokkeren",
|
||||
"block": "Blokkeren",
|
||||
"disallow_this_client": "Toepassing/systeem niet toelaten",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Het query logboek is succesvol geleegd",
|
||||
"query_log_updated": "Het query logboek is succesvol bijgewerkt",
|
||||
"query_log_clear": "Leeg query logs",
|
||||
"query_log_retention": "Query logs bewaartermijn",
|
||||
"query_log_retention": "Query logs rotatie",
|
||||
"query_log_enable": "Log bestanden inschakelen",
|
||||
"query_log_configuration": "Logbestanden instellingen",
|
||||
"query_log_disabled": "Het query logboek is uitgeschakeld en kan worden geconfigureerd in de <0>instellingen</0>",
|
||||
"query_log_strict_search": "Gebruik dubbele aanhalingstekens voor strikt zoeken",
|
||||
"query_log_retention_confirm": "Weet u zeker dat u de bewaartermijn van het query logboek wilt wijzigen? Als u de intervalwaarde verlaagt, gaan sommige gegevens verloren",
|
||||
"query_log_retention_confirm": "Weet u zeker dat u de rotatie van het querylogboek wilt wijzigen? Als u de intervalwaarde verlaagt, gaan sommige gegevens verloren",
|
||||
"anonymize_client_ip": "Cliënt IP anonimiseren",
|
||||
"anonymize_client_ip_desc": "Het volledige IP-adres van de cliënt niet opnemen in logboeken en statistiekbestanden",
|
||||
"dns_config": "DNS-server configuratie",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Ratio limiet",
|
||||
"edns_enable": "EDNS client subnet inschakelen",
|
||||
"edns_cs_desc": "De EDNS Client Subnet-optie (ECS) toevoegen aan upstream-verzoeken en de waarden die door de clients zijn verzonden registreren in het querylogboek.",
|
||||
"edns_use_custom_ip": "Aangepast IP-adres gebruiken voor EDNS",
|
||||
"edns_use_custom_ip_desc": "Toestaan om aangepast IP-adres voor EDNS te gebruiken",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Reageer met NXDOMAIN code",
|
||||
"blocking_mode_null_ip": "Nul IP: Reageer met een nul IP address (0.0.0.0 voor A; :: voor AAAA)",
|
||||
"blocking_mode_custom_ip": "Aangepast IP: Reageer met een handmatige ingesteld IP adres",
|
||||
"theme_auto": "Automatisch",
|
||||
"theme_light": "Licht",
|
||||
"theme_dark": "Donker",
|
||||
"upstream_dns_client_desc": "Indien je dit veld leeglaat zal AdGuard Home de servers welke zijn ingesteld in de <0>DNS instellingen</0> gebruiken.",
|
||||
"tracker_source": "Bron volger",
|
||||
"source_label": "Bron",
|
||||
@@ -362,7 +370,7 @@
|
||||
"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.",
|
||||
"encryption_server_desc": "Indien ingesteld, detecteert AdGuard Home Client-ID's, reageert op DDR-zoekopdrachten en voert aanvullende verbindingsvalidaties uit. Indien niet ingesteld, zijn deze functies uitgeschakeld. Moet overeenkomen met een van de DNS-namen in het certificaat.",
|
||||
"encryption_redirect": "Herleid automatisch naar HTTPS",
|
||||
"encryption_redirect_desc": "Indien ingeschakeld, zal AdGuard Home je automatisch herleiden van HTTP naar HTTPS.",
|
||||
"encryption_https": "HTTPS poort",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Uitgever",
|
||||
"encryption_hostnames": "Hostnamen",
|
||||
"encryption_reset": "Ben je zeker dat je de encryptie instellingen wil resetten?",
|
||||
"encryption_warning": "Waarschuwing",
|
||||
"topline_expiring_certificate": "Jouw SSL-certificaat vervalt binnenkort. Werk de <0>encryptie-instellingen</0> bij.",
|
||||
"topline_expired_certificate": "Jouw SSL-certificaat is vervallen. Werk de <0>encryptie-instellingen</0> bij.",
|
||||
"form_error_port_range": "Poortnummer invoeren tussen 80 en 65535",
|
||||
@@ -408,7 +417,7 @@
|
||||
"manual_update": "<a>Volg deze stappen</a> om handmatig bij te werken.",
|
||||
"processing_update": "Even geduld, AdGuard Home wordt bijgewerkt",
|
||||
"clients_title": "Permanente clients",
|
||||
"clients_desc": "Permanente client-records configureren voor apparaten verboden met AdGuard Home",
|
||||
"clients_desc": "Permanente client-records configureren voor apparaten verbonden met AdGuard Home",
|
||||
"settings_global": "Globaal",
|
||||
"settings_custom": "Aangepast",
|
||||
"table_client": "Gebruiker",
|
||||
@@ -445,9 +454,10 @@
|
||||
"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 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_checked": "Een nieuwe versie van AdGuard Home is beschikbaar\n",
|
||||
"updates_version_equal": "AdGuard Home is actueel",
|
||||
"check_updates_now": "Controleer op updates",
|
||||
"version_request_error": "Updatecontrole mislukt. Controleer je internetverbinding.",
|
||||
"dns_privacy": "DNS Privacy",
|
||||
"setup_dns_privacy_1": "<0>DNS-via-TLS:</0> Gebruik <1>{{address}}</1> string.",
|
||||
"setup_dns_privacy_2": "<0>DNS-via-HTTPS:</0> Gebruik <1>{{address}}</1> string.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Weet u zeker dat u de bewaartermijn van de statistieken wilt wijzigen? Als u de intervalwaarde verlaagt, gaan sommige gegevens verloren",
|
||||
"statistics_cleared": "Statistieken succesvol gewist",
|
||||
"statistics_enable": "Statistieken inschakelen",
|
||||
"ignore_domains": "Genegeerde domeinen (gescheiden door nieuwe regel)",
|
||||
"ignore_domains_title": "Genegeerde domeinen",
|
||||
"ignore_domains_desc_stats": "Zoekopdrachten voor deze domeinen worden niet naar de statistieken geschreven",
|
||||
"ignore_domains_desc_query": "Zoekopdrachten voor deze domeinen worden niet naar het zoeklogboek geschreven",
|
||||
"interval_hours": "{{count}} uur",
|
||||
"interval_hours_plural": "{{count}} uren",
|
||||
"filters_configuration": "Filters instellingen",
|
||||
@@ -553,7 +567,7 @@
|
||||
"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.",
|
||||
"autofix_warning_result": "Als gevolg hiervan worden alle DNS-aanvragen van je systeem standaard door AdGuard Home verwerkt.",
|
||||
"tags_title": "Labels",
|
||||
"tags_desc": "Je kunt labels selecteren die overeenkomen met de client. Labels kunnen worden opgenomen in de filterregels om ze \n nauwkeuriger toe te passen. <0>Meer informatie</0>.",
|
||||
"form_select_tags": "Client tags selecteren",
|
||||
@@ -564,7 +578,7 @@
|
||||
"filtered_custom_rules": "Gefilterd door aangepaste filterregels",
|
||||
"choose_from_list": "Uit de lijst selecteren",
|
||||
"add_custom_list": "Aangepaste lijst toevoegen",
|
||||
"host_whitelisted": "De host staat op de toestemmingslijst",
|
||||
"host_whitelisted": "De host staat op de toelatingslijst",
|
||||
"check_ip": "IP-adressen: {{ip}}",
|
||||
"check_cname": "CNAME: {{cname}}",
|
||||
"check_reason": "Reden: {{reason}}",
|
||||
@@ -589,7 +603,7 @@
|
||||
"validated_with_dnssec": "Gevalideerd met DNSSEC",
|
||||
"all_queries": "Alle vragen",
|
||||
"show_blocked_responses": "Geblokkeerd",
|
||||
"show_whitelisted_responses": "Op toestemmingslijst",
|
||||
"show_whitelisted_responses": "Op toelatingslijst",
|
||||
"show_processed_responses": "Verwerkt",
|
||||
"blocked_safebrowsing": "Geblokkeerd door Veilig browsen",
|
||||
"blocked_adult_websites": "Geblokkeerd door ouderlijk toezicht",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Blokkeerlijst",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Cache grootte",
|
||||
"cache_size_desc": "DNS-cache grootte (in bytes).",
|
||||
"cache_size_desc": "DNS-cachegrootte (in bytes). Leeg laten om caching uit te schakelen.",
|
||||
"cache_ttl_min_override": "Minimale TTL overschrijven",
|
||||
"cache_ttl_max_override": "Maximale TTL overschrijven",
|
||||
"enter_cache_size": "Cache grootte invoeren (bytes)",
|
||||
@@ -624,12 +638,41 @@
|
||||
"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 cliënt laten vervallen.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home zal alle DNS-aanvragen van deze cliënt laten vervallen.",
|
||||
"filter_allowlist": "WAARSCHUWING: Deze actie zal ook de regel \"{{disallowed_rule}}\" uitsluiten van de lijst met toegestane clients.",
|
||||
"last_rule_in_allowlist": "Kan deze client niet weigeren omdat het uitsluiten van de regel \"{{disallowed_rule}}\" de lijst \"Toegestane clients\" zal UITSCHAKELEN.",
|
||||
"use_saved_key": "De eerder opgeslagen sleutel gebruiken",
|
||||
"parental_control": "Ouderlijk toezicht",
|
||||
"safe_browsing": "Veilig browsen",
|
||||
"served_from_cache": "{{value}} <i>(geleverd vanuit cache)</i>",
|
||||
"form_error_password_length": "Wachtwoord moet minimaal {{value}} tekens lang zijn"
|
||||
"form_error_password_length": "Wachtwoord moet minimaal {{value}} tekens lang zijn",
|
||||
"anonymizer_notification": "<0>Opmerking:</0> IP-anonimisering is ingeschakeld. Je kunt het uitschakelen in <1>Algemene instellingen</1>.",
|
||||
"confirm_dns_cache_clear": "Weet je zeker dat je de DNS-cache wilt wissen?",
|
||||
"cache_cleared": "DNS-cache succesvol gewist",
|
||||
"clear_cache": "Cache wissen",
|
||||
"make_static": "Statisch maken",
|
||||
"theme_auto_desc": "Automatisch (op basis van het kleurenschema van jouw apparaat)",
|
||||
"theme_dark_desc": "Donker thema",
|
||||
"theme_light_desc": "Licht thema",
|
||||
"disable_for_seconds": "Voor {{count}} seconde",
|
||||
"disable_for_seconds_plural": "Voor {{count}} seconden",
|
||||
"disable_for_minutes": "Voor {{count}} minuut",
|
||||
"disable_for_minutes_plural": "Voor {{count}} minuten",
|
||||
"disable_for_hours": "Voor {{count}} uur",
|
||||
"disable_for_hours_plural": "Voor {{count}} uren",
|
||||
"disable_until_tomorrow": "Tot morgen",
|
||||
"disable_notify_for_seconds": "Beveiliging uitschakelen voor {{count}} seconde",
|
||||
"disable_notify_for_seconds_plural": "Beveiliging uitschakelen voor {{count}} seconden",
|
||||
"disable_notify_for_minutes": "Beveiliging uitschakelen voor {{count}} minuut",
|
||||
"disable_notify_for_minutes_plural": "Beveiliging uitschakelen voor {{count}} minuten",
|
||||
"disable_notify_for_hours": "Beveiliging uitschakelen voor {{count}} uur",
|
||||
"disable_notify_for_hours_plural": "Beveiliging uitschakelen voor {{count}} uren",
|
||||
"disable_notify_until_tomorrow": "Beveiliging uitschakelen tot morgen",
|
||||
"enable_protection_timer": "Bescherming wordt ingeschakeld over {{time}}",
|
||||
"custom_retention_input": "Voer retentie in uren in",
|
||||
"custom_rotation_input": "Voer rotatie in uren in",
|
||||
"protection_section_label": "Bescherming",
|
||||
"log_and_stats_section_label": "Aanvragenlogboek en statistieken",
|
||||
"ignore_query_log": "Deze client negeren in het aanvragenlogboek",
|
||||
"ignore_statistics": "Deze client negeren in de statistieken"
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
"stats_adult": "Blokkerte voksennettsteder",
|
||||
"stats_query_domain": "Mest forespurte domener",
|
||||
"for_last_24_hours": "de siste 24 timene",
|
||||
"for_last_days": "det siste døgnet",
|
||||
"for_last_days": "for den siste {{count}} dagen",
|
||||
"for_last_days_plural": "de siste {{count}} dagene",
|
||||
"stats_disabled": "Statistikkene har blitt skrudd av. Du kan skru den på fra <0>innstillingssiden</0>.",
|
||||
"stats_disabled_short": "Statistikkene har blitt skrudd av",
|
||||
@@ -114,7 +114,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": "Antall DNS-spørringer behandlet for de siste {{count}} dagene",
|
||||
"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",
|
||||
@@ -281,6 +281,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Svar med NXDOMAIN-koden",
|
||||
"blocking_mode_null_ip": "Null IP: Svar med en 0-IP-adresse (0.0.0.0 for A; :: for AAAA)",
|
||||
"blocking_mode_custom_ip": "Tilpasset IP: Svar med en manuelt valgt IP-adresse",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Lyst tema",
|
||||
"theme_dark": "Mørkt tema",
|
||||
"upstream_dns_client_desc": "Hvis dette feltet holdes tomt, vil AdGuard Home bruke tjenerne som er satt opp i <0>DNS-innstillingene</0>.",
|
||||
"tracker_source": "Sporerkilde",
|
||||
"source_label": "Kilde",
|
||||
@@ -347,7 +350,7 @@
|
||||
"encryption_config_saved": "Krypteringsoppsettet ble lagret",
|
||||
"encryption_server": "Tjenerens navn",
|
||||
"encryption_server_enter": "Skriv inn domenenavnet ditt",
|
||||
"encryption_server_desc": "For å kunne bruke HTTPS, må du skrive inn tjenernavnet som samsvarer med ditt SSL-sertifikat eller jokertegnsertifikat. Hvis feltet er tomt, vil den akseptere TLS-tilkoblinger til ethvert domene.",
|
||||
"encryption_server_desc": "Hvis angitt, oppdager AdGuard Home klient-IDer, svarer på DDR-spørringer og utfører ytterligere tilkoblingsvalideringer. Hvis ikke angitt, er disse funksjonene deaktivert. Må samsvare med ett av DNS-navnene i sertifikatet.",
|
||||
"encryption_redirect": "Automatisk omdiriger til HTTPS",
|
||||
"encryption_redirect_desc": "Dersom dette er valgt, vil AdGuard Home automatisk omdirigere deg fra HTTP til HTTPS-adresser.",
|
||||
"encryption_https": "HTTPS-port",
|
||||
@@ -373,6 +376,7 @@
|
||||
"encryption_issuer": "Utsteder",
|
||||
"encryption_hostnames": "Vertsnavn",
|
||||
"encryption_reset": "Er du sikker på at du vil tilbakestille krypteringsinnstillingene?",
|
||||
"encryption_warning": "Advarsel",
|
||||
"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",
|
||||
@@ -429,9 +433,10 @@
|
||||
"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, og disse forespørslene dukker ikke engang opp i forespørselsloggen. Du kan spesifisere nøyaktige domene navn, jokertegn, eller URL-filterregler, f.eks. «example.org», «*.example.log» eller «||example.org^» derav.",
|
||||
"access_settings_saved": "Tilgangsinnstillingene ble vellykket lagret",
|
||||
"updates_checked": "Oppdateringene ble vellykket sett etter",
|
||||
"updates_checked": "En ny versjon av AdGuard Home er tilgjengelig",
|
||||
"updates_version_equal": "AdGuard Home er fullt oppdatert",
|
||||
"check_updates_now": "Se etter oppdateringer nå",
|
||||
"version_request_error": "Oppdateringssjekken mislyktes. Vennligst sjekk internettforbindelsen din.",
|
||||
"dns_privacy": "DNS-privatliv",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Benytt <1>{{address}}</1>-strengen.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Benytt <1>{{address}}</1>-strengen.",
|
||||
@@ -584,7 +589,7 @@
|
||||
"blocklist": "Blokkeringsliste",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Mellomlagerstørrelse",
|
||||
"cache_size_desc": "DNS-mellomlagerstørrelse (i bytes)",
|
||||
"cache_size_desc": "DNS-bufferstørrelse (i byte). For å deaktivere caching, la stå tomt.",
|
||||
"cache_ttl_min_override": "Overstyr minimumslevetiden",
|
||||
"cache_ttl_max_override": "Overstyr maksimallevetiden",
|
||||
"enter_cache_size": "Skriv inn mellomlagerstørrelse (i bytes)",
|
||||
@@ -611,5 +616,6 @@
|
||||
"use_saved_key": "Bruk den tidligere lagrede nøkkelen",
|
||||
"parental_control": "Foreldrekontroll",
|
||||
"safe_browsing": "Sikker surfing",
|
||||
"served_from_cache": "{{value}} <i>(formidlet fra mellomlageret)</i>"
|
||||
"served_from_cache": "{{value}} <i>(formidlet fra mellomlageret)</i>",
|
||||
"protection_section_label": "Beskyttelse"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Ustawienia serwera DHCP IPv6",
|
||||
"form_error_required": "Pole wymagane",
|
||||
"form_error_ip4_format": "Nieprawidłowy adres IPv4",
|
||||
"form_error_ip4_range_start_format": "Nieprawidłowy adres IPv4 początku zakresu",
|
||||
"form_error_ip4_range_end_format": "Nieprawidłowy adres IPv4 końca zakresu",
|
||||
"form_error_ip4_gateway_format": "Nieprawidłowy adres IPv4 bramy",
|
||||
"form_error_ip6_format": "Nieprawidłowy adres IPv6",
|
||||
"form_error_ip_format": "Nieprawidłowy adres IP",
|
||||
@@ -47,10 +45,10 @@
|
||||
"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_gateway_ip": "Lease nie może mieć adresu IP bramy",
|
||||
"out_of_range_error": "Musi być spoza zakresu \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Musi być niższy niż początek zakresu",
|
||||
"greater_range_start_error": "Musi być większy niż początek zakresu",
|
||||
"greater_range_end_error": "Musi być większy niż koniec zakresu",
|
||||
"subnet_error": "Adresy muszą należeć do jednej podsieci",
|
||||
"gateway_or_subnet_invalid": "Nieprawidłowa maska podsieci",
|
||||
"dhcp_form_gateway_input": "Adres IP bramy",
|
||||
@@ -117,7 +115,7 @@
|
||||
"stats_adult": "Zablokowane witryny dla dorosłych",
|
||||
"stats_query_domain": "Najczęściej wyszukiwane domeny",
|
||||
"for_last_24_hours": "przez ostatnie 24 godziny",
|
||||
"for_last_days": "z ostatniego dnia",
|
||||
"for_last_days": "za ostatni dzień {{count}}",
|
||||
"for_last_days_plural": "z ostatnich {{count}} dni",
|
||||
"stats_disabled": "Statystyki zostały wyłączone. Można je włączyć na <0>stronie ustawień</0>.",
|
||||
"stats_disabled_short": "Statystyki zostały wyłączone",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Włączona Kontrola Rodzicielska",
|
||||
"disabled_safe_search_toast": "Wyłączone bezpieczne wyszukiwanie",
|
||||
"enabled_save_search_toast": "Włączone bezpieczne wyszukiwanie",
|
||||
"updated_save_search_toast": "Zaktualizowano ustawienia bezpiecznego wyszukiwania",
|
||||
"enabled_table_header": "Włączone",
|
||||
"name_table_header": "Nazwa",
|
||||
"list_url_table_header": "Adres URL listy",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Również komentarz.",
|
||||
"example_regex_meaning": "zablokuj dostęp do domen pasujących do określonego wyrażenia regularnego.",
|
||||
"example_upstream_regular": "normalny DNS (przez UDP);",
|
||||
"example_upstream_regular_port": "zwykły DNS (przez UDP, z portem);",
|
||||
"example_upstream_udp": "zwykły DNS (przez UDP, nazwa hosta);",
|
||||
"example_upstream_dot": "zaszyfrowany <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "zaszyfrowany <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "szyfrowany DNS-over-HTTPS z wymuszonym <0>HTTP/3</0> i nie ma powrotu do HTTP/2 lub niższego;",
|
||||
"example_upstream_doq": "zaszyfrowany <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>Stempel DNS</0> dla resolwerów <1>DNSCrypt</1> lub <2>DNS-over-HTTPS</2>;",
|
||||
"example_upstream_tcp": "zwykły DNS (przez TCP);",
|
||||
"example_upstream_tcp_port": "zwykły DNS (przez TCP, z portem);",
|
||||
"example_upstream_tcp_hostname": "zwykły DNS (przez TCP, nazwa hosta);",
|
||||
"all_lists_up_to_date_toast": "Wszystkie listy są już aktualne",
|
||||
"updated_upstream_dns_toast": "Serwery nadrzędne zostały pomyślnie zapisane",
|
||||
"dns_test_ok_toast": "Określone serwery DNS działają poprawnie",
|
||||
"dns_test_not_ok_toast": "Serwer \"{{key}}\": nie można go użyć, sprawdź, czy napisałeś go poprawnie",
|
||||
"dns_test_not_ok_toast": "Serwer \"{{key}}\": nie może być użyte, sprawdź, czy zapisano go poprawnie",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" nie odpowiada na zapytania testowe i może nie działać prawidłowo",
|
||||
"unblock": "Odblokuj",
|
||||
"block": "Zablokuj",
|
||||
"disallow_this_client": "Odrzuć tego klienta",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Dziennik zapytań został pomyślnie wyczyszczony",
|
||||
"query_log_updated": "Dziennik zapytań został zaktualizowany",
|
||||
"query_log_clear": "Wyczyść dzienniki zapytań",
|
||||
"query_log_retention": "Przechowywanie dzienników zapytań",
|
||||
"query_log_retention": "Rotacja dzienników zapytań",
|
||||
"query_log_enable": "Włącz dziennik",
|
||||
"query_log_configuration": "Konfiguracja dzienników",
|
||||
"query_log_disabled": "Dziennik zapytań jest wyłączony i można go skonfigurować w <0>ustawieniach</0>",
|
||||
"query_log_strict_search": "Używaj podwójnych cudzysłowów do ścisłego wyszukiwania",
|
||||
"query_log_retention_confirm": "Czy na pewno chcesz zmienić sposób przechowywania dziennika zapytań? Jeśli zmniejszysz wartość interwału, niektóre dane zostaną utracone",
|
||||
"query_log_retention_confirm": "Czy na pewno chcesz zmienić rotację dziennika zapytań? Jeśli zmniejszysz wartość interwału, niektóre dane zostaną utracone",
|
||||
"anonymize_client_ip": "Anonimizuj adres IP klienta",
|
||||
"anonymize_client_ip_desc": "Nie zapisuj pełnego adresu IP w dziennikach i statystykach",
|
||||
"dns_config": "Konfiguracja serwera DNS",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Limit ilościowy",
|
||||
"edns_enable": "Włącz podsieć klienta EDNS",
|
||||
"edns_cs_desc": "Dodaj opcję podsieci klienta EDNS (ECS) do żądań nadrzędnych i rejestruj wartości wysyłane przez klientów w dzienniku zapytań.",
|
||||
"edns_use_custom_ip": "Użyj niestandardowego adresu IP dla EDNS",
|
||||
"edns_use_custom_ip_desc": "Zezwól na użycie niestandardowego adresu IP dla EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Odpowiedz kodem NXDOMAIN",
|
||||
"blocking_mode_null_ip": "Null IP: Odpowiedz z zerowym adresem IP (0.0.0.0 dla A; :: dla AAAA)",
|
||||
"blocking_mode_custom_ip": "Niestandardowy adres IP: Odpowiedz ręcznie ustawionym adresem IP",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Jasny",
|
||||
"theme_dark": "Ciemny",
|
||||
"upstream_dns_client_desc": "Jeśli to pole pozostanie puste, AdGuard Home użyje serwerów skonfigurowanych w <0>Ustawieniach DNS</0>.",
|
||||
"tracker_source": "Źródło skryptu śledzącego",
|
||||
"source_label": "Źródło",
|
||||
@@ -338,7 +346,7 @@
|
||||
"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": "W lewym panelu kliknij \"Zmień ustawienia adaptera\".",
|
||||
"install_devices_windows_list_4": "Kliknij prawym przyciskiem myszy aktywne połączenie i wybierz Właściwości.",
|
||||
"install_devices_windows_list_5": "Znajdź na liście \"Protokół internetowy w wersji 4 (TCP/IPv4)\" (lub w przypadku IPv6 \"Protokół internetowy w wersji 6 (TCP/IPv6)\"), zaznacz go i ponownie kliknij na Właściwości.",
|
||||
"install_devices_windows_list_5": "Znajdź na liście \"Protokół internetowy w wersji 4 (TCP/IPv4)\" (lub w przypadku IPv6 \"Protokół internetowy w wersji 6 (TCP/IPv6)\"), zaznacz go i ponownie kliknij Właściwości.",
|
||||
"install_devices_windows_list_6": "Wybierz opcję \"Użyj następujących adresów serwerów DNS\" i wprowadź adresy serwerów AdGuard Home.",
|
||||
"install_devices_macos_list_1": "Kliknij ikonę Apple i przejdź do Preferencje systemowe.",
|
||||
"install_devices_macos_list_2": "Kliknij Sieć.",
|
||||
@@ -362,7 +370,7 @@
|
||||
"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.",
|
||||
"encryption_server_desc": "Jeśli jest ustawiony, AdGuard Home wykrywa ClientID, odpowiada na zapytania DDR i wykonuje dodatkowe walidacje połączeń. Jeśli nie jest ustawiony, funkcje te są wyłączone. Musi odpowiadać jednej z nazw DNS w certyfikacie.",
|
||||
"encryption_redirect": "Przekieruj automatycznie do HTTPS",
|
||||
"encryption_redirect_desc": "Jeśli zaznaczone, AdGuard Home automatycznie przekieruje Cię z adresów HTTP na HTTPS.",
|
||||
"encryption_https": "Port HTTPS",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Zgłaszający",
|
||||
"encryption_hostnames": "Nazwy hostów",
|
||||
"encryption_reset": "Czy na pewno chcesz zresetować ustawienia szyfrowania?",
|
||||
"encryption_warning": "Uwaga",
|
||||
"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 numer portu z zakresu 80-65535",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Niedozwolone domeny",
|
||||
"access_blocked_desc": "Nie należy ich mylić z filtrami. AdGuard Home usuwa zapytania DNS pasujące do tych domen, a zapytania te nie pojawiają się nawet w dzienniku zapytań. Możesz określić dokładne nazwy domen, symbole wieloznaczne lub 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_checked": "Dostępna jest nowa wersja programu AdGuard Home\n",
|
||||
"updates_version_equal": "AdGuard Home jest aktualny",
|
||||
"check_updates_now": "Sprawdź aktualizacje teraz",
|
||||
"version_request_error": "Sprawdzanie aktualizacji zakończone niepowodzeniem. Sprawdź swoje połączenie z internetem.",
|
||||
"dns_privacy": "Prywatny DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Skorzystaj z adresu <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Skorzystaj z adresu <1>{{address}}</1>.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Czy chcesz zmienić sposób przechowania statystyk? Jeżeli obniżysz wartość interwału, niektóre dane będą utracone",
|
||||
"statistics_cleared": "Statystyki zostały pomyślnie wyczyszczone",
|
||||
"statistics_enable": "Włącz statystyki",
|
||||
"ignore_domains": "Ignorowane domeny (każda w nowym wierszu)",
|
||||
"ignore_domains_title": "Ignorowane domeny",
|
||||
"ignore_domains_desc_stats": "Zapytania dla tych domen nie są zapisywane do statystyk",
|
||||
"ignore_domains_desc_query": "Zapytania dla tych domen nie są zapisywane do dziennika",
|
||||
"interval_hours": "{{count}} godzina",
|
||||
"interval_hours_plural": "{{count}} godziny",
|
||||
"filters_configuration": "Konfiguracja filtrów",
|
||||
@@ -528,7 +542,7 @@
|
||||
"password_placeholder": "Wpisz hasło",
|
||||
"sign_in": "Zaloguj się",
|
||||
"sign_out": "Wyloguj się",
|
||||
"forgot_password": "Zapomniałeś hasła?",
|
||||
"forgot_password": "Zapomniano hasła?",
|
||||
"forgot_password_desc": "Wykonaj <0>te kroki</0>, aby utworzyć nowe hasło do konta użytkownika.",
|
||||
"location": "Lokalizacja",
|
||||
"orgname": "Nazwa firmy",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Lista zablokowanych",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Rozmiar pamięci podręcznej",
|
||||
"cache_size_desc": "Rozmiar pamięci podręcznej DNS (w bajtach).",
|
||||
"cache_size_desc": "Rozmiar pamięci podręcznej DNS (w bajtach). Aby wyłączyć buforowanie, pozostaw puste.",
|
||||
"cache_ttl_min_override": "Nadpisz minimalną wartość TTL",
|
||||
"cache_ttl_max_override": "Nadpisz maksymalną wartość TTL",
|
||||
"enter_cache_size": "Wpisz rozmiar pamięci podręcznej (w bajtach)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Kontrola rodzicielska",
|
||||
"safe_browsing": "Bezpieczne przeglądanie",
|
||||
"served_from_cache": "{{value}} <i>(podawane z pamięci podręcznej)</i>",
|
||||
"form_error_password_length": "Hasło musi mieć co najmniej {{value}} znaków"
|
||||
"form_error_password_length": "Hasło musi mieć co najmniej {{value}} znaków",
|
||||
"anonymizer_notification": "<0>Uwaga:</0> Anonimizacja IP jest włączona. Możesz ją wyłączyć w <1>Ustawieniach ogólnych</1>.",
|
||||
"confirm_dns_cache_clear": "Czy na pewno chcesz wyczyścić pamięć podręczną DNS?",
|
||||
"cache_cleared": "Pamięć podręczna DNS została pomyślnie wyczyszczona",
|
||||
"clear_cache": "Wyczyść pamięć podręczną",
|
||||
"make_static": "Ustaw adres statyczny",
|
||||
"theme_auto_desc": "Automatycznie (na podstawie schematu kolorów Twojego urządzenia)",
|
||||
"theme_dark_desc": "Ciemny motyw",
|
||||
"theme_light_desc": "Jasny motyw",
|
||||
"disable_for_seconds": "Na {{count}} sekundę",
|
||||
"disable_for_seconds_plural": "Na {{count}} sekund",
|
||||
"disable_for_minutes": "Na {{count}} minutę",
|
||||
"disable_for_minutes_plural": "Na {{count}} minut",
|
||||
"disable_for_hours": "Na {{count}} godzinę",
|
||||
"disable_for_hours_plural": "Na {{count}} godziny",
|
||||
"disable_until_tomorrow": "Do jutra",
|
||||
"disable_notify_for_seconds": "Wyłącz ochronę na {{count}} sekundę",
|
||||
"disable_notify_for_seconds_plural": "Wyłącz ochronę na {{count}} sekund",
|
||||
"disable_notify_for_minutes": "Wyłącz ochronę na {{count}} minutę",
|
||||
"disable_notify_for_minutes_plural": "Wyłącz ochronę na {{count}} minut",
|
||||
"disable_notify_for_hours": "Wyłącz ochronę na {{count}} godzinę",
|
||||
"disable_notify_for_hours_plural": "Wyłącz ochronę na {{count}} godziny",
|
||||
"disable_notify_until_tomorrow": "Wyłącz ochronę do jutra",
|
||||
"enable_protection_timer": "Ochrona zostanie włączona za {{time}}",
|
||||
"custom_retention_input": "Wprowadź retencję w godzinach",
|
||||
"custom_rotation_input": "Wprowadź rotację w godzinach",
|
||||
"protection_section_label": "Ochrona",
|
||||
"log_and_stats_section_label": "Dziennik zapytań i statystyki",
|
||||
"ignore_query_log": "Zignoruj tego klienta w dzienniku zapytań",
|
||||
"ignore_statistics": "Ignoruj tego klienta w statystykach"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Configurações DHCP IPv6",
|
||||
"form_error_required": "Campo obrigatório",
|
||||
"form_error_ip4_format": "Endereço de IPv4 inválido",
|
||||
"form_error_ip4_range_start_format": "Endereço IPv4 de início de intervalo inválido",
|
||||
"form_error_ip4_range_end_format": "Endereço IPv4 de fim de intervalo inválido.",
|
||||
"form_error_ip4_gateway_format": "Endereço IPv4 de gateway inválido",
|
||||
"form_error_ip6_format": "Endereço de IPv6 inválido",
|
||||
"form_error_ip_format": "Endereço de IP inválido",
|
||||
@@ -47,10 +45,10 @@
|
||||
"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_gateway_ip": "A concessão não pode ter o endereço IP do gateway",
|
||||
"out_of_range_error": "Deve estar fora do intervalo \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Deve ser inferior ao início do intervalo",
|
||||
"greater_range_start_error": "Deve ser maior que o início do intervalo",
|
||||
"greater_range_end_error": "Deve ser maior que o fim do intervalo",
|
||||
"subnet_error": "Endereços devem estar em uma sub-rede",
|
||||
"gateway_or_subnet_invalid": "Máscara de sub-rede inválida",
|
||||
"dhcp_form_gateway_input": "IP do gateway",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Controle parental ativado",
|
||||
"disabled_safe_search_toast": "Pesquisa segura desativada",
|
||||
"enabled_save_search_toast": "Pesquisa segura ativada",
|
||||
"updated_save_search_toast": "Configurações de Pesquisa Segura atualizadas",
|
||||
"enabled_table_header": "Ativado",
|
||||
"name_table_header": "Nome",
|
||||
"list_url_table_header": "URL da lista",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Também um comentário.",
|
||||
"example_regex_meaning": "bloqueia o acesso aos domínios que correspondem à expressão regular especificada.",
|
||||
"example_upstream_regular": "dNS regular (através do UDP);",
|
||||
"example_upstream_regular_port": "DNS normal (através do UDP, com porta);",
|
||||
"example_upstream_udp": "DNS normal (através do UDP, nome do servidor);",
|
||||
"example_upstream_dot": "<0>DNS-sobre-TLS</0> criptografado;",
|
||||
"example_upstream_doh": "<0>DNS-sobre-HTTPS</0> criptografado;",
|
||||
"example_upstream_doh3": "DNS-over-HTTPS criptografado com <0>HTTP/3 forçado</0> e sem fallback para HTTP/2 ou inferior;",
|
||||
"example_upstream_doq": "<0>DNS-sobre-QUIC</0> criptografado;",
|
||||
"example_upstream_sdns": "<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);",
|
||||
"example_upstream_tcp_port": "dNS normal (através do TCP, com porta);",
|
||||
"example_upstream_tcp_hostname": "DNS normal (através do TCP, nome do servidor);",
|
||||
"all_lists_up_to_date_toast": "Todas as listas já estão atualizadas",
|
||||
"updated_upstream_dns_toast": "Servidores DNS primário salvos com sucesso",
|
||||
"dns_test_ok_toast": "Os servidores DNS especificados estão funcionando corretamente",
|
||||
"dns_test_not_ok_toast": "O servidor \"{{key}}\": não pôde ser utilizado. Por favor, verifique se você escreveu corretamente",
|
||||
"dns_test_warning_toast": "Servidor DNS primário \"{{key}}\" não responde aos Solicitações de teste e pode não funcionar corretamente",
|
||||
"unblock": "Desbloquear",
|
||||
"block": "Bloquear",
|
||||
"disallow_this_client": "Não permitir este cliente",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "O registro de consulta foi limpo com sucesso",
|
||||
"query_log_updated": "O registro da consulta foi atualizado com sucesso",
|
||||
"query_log_clear": "Limpar registros de consulta",
|
||||
"query_log_retention": "Arquivamento de registros de consultas",
|
||||
"query_log_retention": "Rotação de registros de consulta",
|
||||
"query_log_enable": "Ativar registro",
|
||||
"query_log_configuration": "Configuração de registros",
|
||||
"query_log_disabled": "O registro de consulta está desativado e pode ser configurado em <0>configurações</0>",
|
||||
"query_log_strict_search": "Use aspas duplas para uma pesquisa mais criteriosa",
|
||||
"query_log_retention_confirm": "Você tem certeza de que deseja alterar o arquivamento do registro de consulta? Se diminuir o valor de intervalo, alguns dados serão perdidos",
|
||||
"query_log_retention_confirm": "Tem a certeza de que quer alterar a rotaçã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_desc": "Não salva o endereço de IP completo do cliente em registros ou estatísticas",
|
||||
"dns_config": "Configuração do servidor DNS",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Taxa limite",
|
||||
"edns_enable": "Ativar a sub-rede do cliente EDNS",
|
||||
"edns_cs_desc": "Adicione a opção de sub-rede de cliente EDNS (ECS) às solicitações de servidor DNS primário e registre os valores enviados pelos clientes no registro de consulta.",
|
||||
"edns_use_custom_ip": "Usar IP personalizado para EDNS",
|
||||
"edns_use_custom_ip_desc": "Permitir o uso de IP personalizado para EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"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)",
|
||||
"blocking_mode_custom_ip": "IP personalizado: Responder com um endereço IP definido manualmente",
|
||||
"theme_auto": "Automático",
|
||||
"theme_light": "Claro",
|
||||
"theme_dark": "Escuro",
|
||||
"upstream_dns_client_desc": "Se você mantiver este campo vazio, o AdGuard Home usará os servidores configurados nas configurações <0>DNS</0>.",
|
||||
"tracker_source": "Fonte do rastreador",
|
||||
"source_label": "Fonte",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "Configuração de criptografia salva",
|
||||
"encryption_server": "Nome do servidor",
|
||||
"encryption_server_enter": "Digite seu nome de domínio",
|
||||
"encryption_server_desc": "Para usar HTTPS, você precisa inserir o nome do servidor que corresponda ao seu certificado SSL ou certificado curinga. Se o campo não estiver definido, ele aceitará conexões TLS para qualquer domínio.",
|
||||
"encryption_server_desc": "Se definido, AdGuard Home detecta ClientIDs, responde a consultas DDR, e executa validações de ligações adicionais. Se não estiver definido, estas características são desactivadas. Devem corresponder a um dos Nomes DNS no certificado.",
|
||||
"encryption_redirect": "Redirecionar automaticamente para HTTPS",
|
||||
"encryption_redirect_desc": "Se marcado, o AdGuard Home irá redirecionar automaticamente os endereços HTTP para HTTPS.",
|
||||
"encryption_https": "Porta HTTPS",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Emissor",
|
||||
"encryption_hostnames": "Nomes dos servidores",
|
||||
"encryption_reset": "Você tem certeza de que deseja redefinir a configuração de criptografia?",
|
||||
"encryption_warning": "Aviso",
|
||||
"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 número de porta entre 80 e 65535",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Domínios bloqueados",
|
||||
"access_blocked_desc": "Não deve ser confundido com filtros. O AdGuard Home elimina as consultas DNS que correspondem a esses domínios, e essas consultas nem aparecem no registro de consultas. Você pode especificar nomes de domínio exatos, caracteres curinga ou regras de filtro de URL, por exemplo \"exemplo.org\", \"*.exemplo.org\", ou \"||exemplo.org^\" correspondentemente.",
|
||||
"access_settings_saved": "Configurações de acesso foram salvas com sucesso",
|
||||
"updates_checked": "Atualizações verificadas com sucesso",
|
||||
"updates_checked": "Uma nova versão do AdGuard Home está disponível\n",
|
||||
"updates_version_equal": "O AdGuard Home está atualizado.",
|
||||
"check_updates_now": "Verificar atualizações",
|
||||
"version_request_error": "A verificação de atualização falhou. Por favor, verifique sua conexão com a internet.",
|
||||
"dns_privacy": "Privacidade de DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-sobre-TLS:</0> Use <1>{{address}}</1> string.",
|
||||
"setup_dns_privacy_2": "<0>DNS-sobre-HTTPS:</0> Use <1>{{address}}</1> string.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Você tem certeza que quer alterar o arquivamento das estatísticas? Se diminuir o valor do intervalo, alguns dados serão perdidos",
|
||||
"statistics_cleared": "As estatísticas foram limpas com sucesso",
|
||||
"statistics_enable": "Ativar estatísticas",
|
||||
"ignore_domains": "Domínios ignorados (separados por nova linha)",
|
||||
"ignore_domains_title": "Domínios ignorados",
|
||||
"ignore_domains_desc_stats": "As consultas para esses domínios não são gravadas nas estatísticas",
|
||||
"ignore_domains_desc_query": "As consultas para esses domínios não são gravadas no registro de consulta",
|
||||
"interval_hours": "{{count}} hora",
|
||||
"interval_hours_plural": "{{count}} horas",
|
||||
"filters_configuration": "Configuração de filtros",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Lista de bloqueio",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Tamanho do cache",
|
||||
"cache_size_desc": "Tamanho do cache do DNS (em bytes).",
|
||||
"cache_size_desc": "Tamanho do cache do DNS (em bytes). Para desativar o cache, deixe em branco.",
|
||||
"cache_ttl_min_override": "Sobrepor o TTL mínimo",
|
||||
"cache_ttl_max_override": "Sobrepor o TTL máximo",
|
||||
"enter_cache_size": "Digite o tamanho do cache (bytes)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Controle parental",
|
||||
"safe_browsing": "Navegação segura",
|
||||
"served_from_cache": "{{value}} <i>(servido do cache)</i>",
|
||||
"form_error_password_length": "A senha deve ter pelo menos {{value}} caracteres"
|
||||
"form_error_password_length": "A senha deve ter pelo menos {{value}} caracteres",
|
||||
"anonymizer_notification": "<0>Observação:</0> A anonimização de IP está ativada. Você pode desativá-lo em <1>Configurações gerais</1>.",
|
||||
"confirm_dns_cache_clear": "Tem certeza de que deseja limpar o cache DNS?",
|
||||
"cache_cleared": "Cache DNS limpo com sucesso",
|
||||
"clear_cache": "Limpar cache",
|
||||
"make_static": "Tornar estático",
|
||||
"theme_auto_desc": "Automático (com base no esquema de cores do seu dispositivo)",
|
||||
"theme_dark_desc": "Tema escuro",
|
||||
"theme_light_desc": "Tema claro",
|
||||
"disable_for_seconds": "Por {{count}} segundo",
|
||||
"disable_for_seconds_plural": "Por {{count}} segundos",
|
||||
"disable_for_minutes": "Por {{count}} minuto",
|
||||
"disable_for_minutes_plural": "Por {{count}} minutos",
|
||||
"disable_for_hours": "Por {{count}} hora",
|
||||
"disable_for_hours_plural": "Por {{count}} horas",
|
||||
"disable_until_tomorrow": "Até amanhã",
|
||||
"disable_notify_for_seconds": "Desativar proteção por {{count}} segundo",
|
||||
"disable_notify_for_seconds_plural": "Desativar proteção por {{count}} segundos",
|
||||
"disable_notify_for_minutes": "Desativar proteção por {{count}} minuto",
|
||||
"disable_notify_for_minutes_plural": "Desativar proteção por {{count}} minutos",
|
||||
"disable_notify_for_hours": "Desativar proteção por {{count}} hora",
|
||||
"disable_notify_for_hours_plural": "Desativar proteção por {{count}} horas",
|
||||
"disable_notify_until_tomorrow": "Desativar a proteção até amanhã",
|
||||
"enable_protection_timer": "A proteção será ativada em {{time}}",
|
||||
"custom_retention_input": "Insira a retenção em horas",
|
||||
"custom_rotation_input": "Insira a rotação em horas",
|
||||
"protection_section_label": "Proteção",
|
||||
"log_and_stats_section_label": "Registro de consultas e estatísticas",
|
||||
"ignore_query_log": "Ignorar este cliente no registo de consultas",
|
||||
"ignore_statistics": "Ignorar este cliente nas estatísticas"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Definições DHCP IPv6",
|
||||
"form_error_required": "Campo obrigatório",
|
||||
"form_error_ip4_format": "Endereço de IPv4 inválido",
|
||||
"form_error_ip4_range_start_format": "Endereço IPv4 de início de intervalo inválido",
|
||||
"form_error_ip4_range_end_format": "Endereço IPv4 de fim de intervalo inválido",
|
||||
"form_error_ip4_gateway_format": "Endereço IPv4 de gateway inválido",
|
||||
"form_error_ip6_format": "Endereço de IPv6 inválido",
|
||||
"form_error_ip_format": "Endereço de email inválido",
|
||||
@@ -47,11 +45,11 @@
|
||||
"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_gateway_ip": "A concessão não pode ter o endereço IP do gateway",
|
||||
"out_of_range_error": "Deve estar fora do intervalo \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Deve ser inferior ao início do intervalo",
|
||||
"greater_range_start_error": "Deve ser maior que o início do intervalo",
|
||||
"greater_range_end_error": "Deve ser maior que o fim do intervalo",
|
||||
"subnet_error": "Os endereços devem estar em uma sub-rede",
|
||||
"subnet_error": "Os endereços devem estar numa sub-rede",
|
||||
"gateway_or_subnet_invalid": "Máscara de sub-rede inválida",
|
||||
"dhcp_form_gateway_input": "IP do gateway",
|
||||
"dhcp_form_subnet_input": "Máscara de sub-rede",
|
||||
@@ -110,7 +108,7 @@
|
||||
"enabled_protection": "Ativar proteção",
|
||||
"disable_protection": "Desativar proteção",
|
||||
"disabled_protection": "Desativar proteção",
|
||||
"refresh_statics": "Actualizar estatísticas",
|
||||
"refresh_statics": "Atualizar estatísticas",
|
||||
"dns_query": "Consultas de DNS",
|
||||
"blocked_by": "<0>Bloqueado por filtros</0>",
|
||||
"stats_malware_phishing": "Malware/phishing bloqueados",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Controlo parental ativado",
|
||||
"disabled_safe_search_toast": "Pesquisa segura desativada",
|
||||
"enabled_save_search_toast": "Pesquisa segura ativada",
|
||||
"updated_save_search_toast": "Configurações de pesquisa segura actualizadas",
|
||||
"enabled_table_header": "Ativado",
|
||||
"name_table_header": "Nome",
|
||||
"list_url_table_header": "URL da lista",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Também um comentário.",
|
||||
"example_regex_meaning": "bloquear o acesso aos domínios que correspondam à expressão regular especificada.",
|
||||
"example_upstream_regular": "DNS regular (através do UDP)",
|
||||
"example_upstream_regular_port": "DNS normal (através do UDP, com porta);",
|
||||
"example_upstream_udp": "DNS normal (através do UDP, nome do servidor);",
|
||||
"example_upstream_dot": "<0>DNS-sobre-TLS</0> criptografado;",
|
||||
"example_upstream_doh": "<0>DNS-sobre-HTTPS</0> criptografado;",
|
||||
"example_upstream_doh3": "DNS-over-HTTPS encriptado com <0>HTTP/3</0> forçado e sem retorno para HTTP/2 ou inferior;",
|
||||
"example_upstream_doq": "<0>DNS-sobre-QUIC</0> criptografado;",
|
||||
"example_upstream_sdns": "<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);",
|
||||
"example_upstream_tcp_port": "dNS normal (através do TCP, com porta);",
|
||||
"example_upstream_tcp_hostname": "DNS normal (através do TCP, nome do servidor);",
|
||||
"all_lists_up_to_date_toast": "Todas as listas já estão atualizadas",
|
||||
"updated_upstream_dns_toast": "Servidores DNS primário guardados com sucesso",
|
||||
"dns_test_ok_toast": "Os servidores DNS especificados estão a funcionar corretamente",
|
||||
"dns_test_not_ok_toast": "O servidor \"{{key}}\": não pôde ser utilizado. Por favor, verifique se o escreveu corretamente",
|
||||
"dns_test_warning_toast": "Servidor DNS primário \"{{key}}\" não responde aos solicitações de teste e pode não funcionar corretamente",
|
||||
"unblock": "Desbloquear",
|
||||
"block": "Bloquear",
|
||||
"disallow_this_client": "Não permitir este cliente",
|
||||
@@ -252,16 +255,16 @@
|
||||
"query_log_filtered": "Filtrado por {{filter}}",
|
||||
"query_log_confirm_clear": "Tem a certeza de que deseja limpar todo o registo de consulta?",
|
||||
"query_log_cleared": "O registo de consulta foi limpo com sucesso",
|
||||
"query_log_updated": "O registro da consulta foi atualizado com sucesso",
|
||||
"query_log_updated": "O registo da consulta foi atualizado com sucesso",
|
||||
"query_log_clear": "Limpar registos de consulta",
|
||||
"query_log_retention": "Retenção de registos de consulta",
|
||||
"query_log_retention": "Rotação de registros de consulta",
|
||||
"query_log_enable": "Ativar registo",
|
||||
"query_log_configuration": "Definições do registo",
|
||||
"query_log_disabled": "O registo de consulta está desativado 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",
|
||||
"query_log_retention_confirm": "Tem a certeza de que quer alterar a rotaçã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_desc": "Não gurda o endereço de IP completo do cliente em registros ou estatísticas",
|
||||
"anonymize_client_ip_desc": "Não gurda o endereço de IP completo do cliente em registo ou 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",
|
||||
@@ -287,7 +290,9 @@
|
||||
"form_enter_rate_limit": "Insira o limite de taxa",
|
||||
"rate_limit": "Limite de taxa",
|
||||
"edns_enable": "Ativar a sub-rede do cliente EDNS",
|
||||
"edns_cs_desc": "Adicione a opção de sub-rede de cliente EDNS (ECS) às solicitações de servidor DNS primário e registre os valores enviados pelos clientes no registro de consulta.",
|
||||
"edns_cs_desc": "Adicione a opção de sub-rede de cliente EDNS (ECS) às solicitações de servidor DNS primário e registre os valores enviados pelos clientes no registo de consulta.",
|
||||
"edns_use_custom_ip": "Usar IP personalizado para EDNS",
|
||||
"edns_use_custom_ip_desc": "Permitir a utilização de IP personalizado para EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"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)",
|
||||
"blocking_mode_custom_ip": "IP personalizado: Responder com um endereço IP definido manualmente",
|
||||
"theme_auto": "Automático",
|
||||
"theme_light": "Claro",
|
||||
"theme_dark": "Escuro",
|
||||
"upstream_dns_client_desc": "Se mantiver esse campo vazio, o AdGuard Home usará os servidores configurados nas <0>Definições de DNS</0>.",
|
||||
"tracker_source": "Fonte do rastreador",
|
||||
"source_label": "Fonte",
|
||||
@@ -330,10 +338,10 @@
|
||||
"install_devices_router": "Router",
|
||||
"install_devices_router_desc": "Esta configuração cobre automaticamente todos os dispositivos conectados ao seu router doméstico, sem a necessidade 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 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_1": "Abra as preferências do seu router. 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 router. Se o teu router 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 router.",
|
||||
"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": "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_router_list_4": "Em alguns tipos de router, 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 deves verificar o manual do router sobre como personalizar os servidores DNS no 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 painel esquerdo, clique em \"Alterar configurações do adaptador\".",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "Definição de criptografia guardada",
|
||||
"encryption_server": "Nome do servidor",
|
||||
"encryption_server_enter": "Insira o seu nome de domínio",
|
||||
"encryption_server_desc": "Para usar HTTPS, você precisa inserir o nome do servidor que corresponda ao seu certificado SSL ou certificado curinga. Se o campo não estiver definido, ele aceitará conexões TLS para qualquer domínio.",
|
||||
"encryption_server_desc": "Se definido, AdGuard Home detecta ClientIDs, responde a consultas DDR, e executa validações de ligações adicionais. Se não estiver definido, estas características são desactivadas. Devem corresponder a um dos Nomes DNS no certificado.",
|
||||
"encryption_redirect": "Redirecionar automaticamente para HTTPS",
|
||||
"encryption_redirect_desc": "Se marcado, o AdGuard Home irá redirecionar automaticamente os endereços HTTP para HTTPS.",
|
||||
"encryption_https": "Porta HTTPS",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Emissor",
|
||||
"encryption_hostnames": "Nomes dos servidores",
|
||||
"encryption_reset": "Tem a certeza de que deseja repor a definição de criptografia?",
|
||||
"encryption_warning": "Aviso",
|
||||
"topline_expiring_certificate": "O seu certificado SSL está prestes a expirar. Atualize as suas <0>definições de criptografia</0>.",
|
||||
"topline_expired_certificate": "O seu certificado SSL está expirado. Atualize as suas <0>definições de criptografia</0>.",
|
||||
"form_error_port_range": "Digite um numero de porta entre 80 e 65535",
|
||||
@@ -408,7 +417,7 @@
|
||||
"manual_update": "Por favor, <a>siga estes passos</a> para atualizar manualmente.",
|
||||
"processing_update": "Por favor espere, o AdGuard Home está a atualizar-se",
|
||||
"clients_title": "Clientes persistentes",
|
||||
"clients_desc": "Configure registros de cliente persistentes para dispositivos conectados ao AdGuard Home",
|
||||
"clients_desc": "Configure registos de cliente persistentes para dispositivos conectados ao AdGuard Home",
|
||||
"settings_global": "Global",
|
||||
"settings_custom": "Personalizar",
|
||||
"table_client": "Cliente",
|
||||
@@ -443,11 +452,12 @@
|
||||
"access_disallowed_title": "Clientes não permitidos",
|
||||
"access_disallowed_desc": "Uma lista de CIDRs, endereços IP ou <a>IDs de cliente</a>. Se essa lista tiver entradas, o AdGuard Home descartará as solicitações desses clientes. Este campo é ignorado se houver entradas em clientes permitidos.",
|
||||
"access_blocked_title": "Domínios bloqueados",
|
||||
"access_blocked_desc": "Não deve ser confundido com filtros. O AdGuard Home elimina as consultas DNS que correspondem a esses domínios, e essas consultas nem aparecem no registro de consultas. Você pode especificar nomes de domínio exatos, caracteres curinga ou regras de filtro de URL, por exemplo \"exemplo.org\", \"*.exemplo.org\", ou \"||exemplo.org^\" correspondentemente.",
|
||||
"access_blocked_desc": "Não deve ser confundido com filtros. O AdGuard Home elimina as consultas DNS que correspondem a esses domínios, e essas consultas nem aparecem no registo de consultas. Você pode especificar nomes de domínio exatos, caracteres curinga ou regras de filtro de URL, por exemplo \"exemplo.org\", \"*.exemplo.org\", ou \"||exemplo.org^\" correspondentemente.",
|
||||
"access_settings_saved": "Definições de acesso foram guardadas com sucesso",
|
||||
"updates_checked": "Atualizações verificadas com sucesso",
|
||||
"updates_checked": "Uma nova versão do AdGuard Home está disponível\n",
|
||||
"updates_version_equal": "O AdGuard Home está atualizado",
|
||||
"check_updates_now": "Verificar atualizações",
|
||||
"version_request_error": "A verificação de atualização falhou. Verifique a sua ligação à internet.",
|
||||
"dns_privacy": "Privacidade de DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-sobre-TLS:</0> Use <1>{{address}}</1> string.",
|
||||
"setup_dns_privacy_2": "<0>DNS-sobre-HTTPS:</0> Use <1>{{address}}</1> string.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Tem a certeza que quer alterar a retenção de estatísticas? Se diminuir o valor do intervalo, alguns dados serão perdidos",
|
||||
"statistics_cleared": "As estatísticas foram apagadas com sucesso",
|
||||
"statistics_enable": "Ativar estatísticas",
|
||||
"ignore_domains": "Domínios ignorados (separados por nova linha)",
|
||||
"ignore_domains_title": "Domínios ignorados",
|
||||
"ignore_domains_desc_stats": "As consultas para estes domínios não aparecem nas estatísticas",
|
||||
"ignore_domains_desc_query": "As consultas para estes domínios não aparecem no registo de consultas",
|
||||
"interval_hours": "{{count}} hora",
|
||||
"interval_hours_plural": "{{count}} horas",
|
||||
"filters_configuration": "Definição dos filtros",
|
||||
@@ -544,9 +558,9 @@
|
||||
"example_rewrite_domain": "reescrever resposta apenas para este domínio.",
|
||||
"example_rewrite_wildcard": "reescrever resposta para todos <0>example.org</0> sub-domínios.",
|
||||
"rewrite_ip_address": "Endereço IP: use esse IP em uma resposta A ou AAAA",
|
||||
"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",
|
||||
"rewrite_domain_name": "Nome de domínio: adicione um registo CNAME",
|
||||
"rewrite_A": "<0>A</0>: valor especial, mantenha <0>A</0> nos registos do upstream",
|
||||
"rewrite_AAAA": "<0>AAAA</0>: valor especial, mantenha <0>AAAA</0> nos registos do servidor DNS primário",
|
||||
"disable_ipv6": "Desativar resolução de endereços IPv6",
|
||||
"disable_ipv6_desc": "Descarta todas as consultas DNS para endereços IPv6 (tipo AAAA).",
|
||||
"fastest_addr": "Endereço de IP mais rápido",
|
||||
@@ -576,7 +590,7 @@
|
||||
"client_blocked": "Cliente \"{{ip}}\" foi bloqueado com sucesso",
|
||||
"client_unblocked": "Cliente \"{{ip}}\" foi desbloqueado com sucesso",
|
||||
"static_ip": "Endereço de IP estático",
|
||||
"static_ip_desc": "O AdGuard Home é um servidor, portanto, ele precisa de um endereço de IP estático para funcionar corretamente. Caso contrário, em algum momento, seu roteador poderá atribuir um novo endereço de IP neste dispositivo.",
|
||||
"static_ip_desc": "O AdGuard Home é um servidor, portanto, ele precisa de um endereço de IP estático para funcionar corretamente. Caso contrário, em algum momento, seu router poderá atribuir um novo endereço de IP neste dispositivo.",
|
||||
"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.",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Lista de bloqueio",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Tamanho do cache",
|
||||
"cache_size_desc": "Tamanho do cache do DNS (em bytes).",
|
||||
"cache_size_desc": "Tamanho do cache DNS (em bytes). Para desativar o cache, deixar o campo vazio.",
|
||||
"cache_ttl_min_override": "Sobrepor o TTL mínimo",
|
||||
"cache_ttl_max_override": "Sobrepor o TTL máximo",
|
||||
"enter_cache_size": "Digite o tamanho do cache (bytes)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Controlo parental",
|
||||
"safe_browsing": "Navegação segura",
|
||||
"served_from_cache": "{{value}} <i>(servido do cache)</i>",
|
||||
"form_error_password_length": "A palavra-passe deve ter pelo menos {{value}} caracteres"
|
||||
"form_error_password_length": "A palavra-passe deve ter pelo menos {{value}} caracteres",
|
||||
"anonymizer_notification": "<0>Observação:</0> A anonimização de IP está ativada. Você pode desativá-la em <1>Definições gerais</1>.",
|
||||
"confirm_dns_cache_clear": "Tem certeza de que quer limpar a cache DNS?",
|
||||
"cache_cleared": "O cache DNS foi apagado com sucesso",
|
||||
"clear_cache": "Limpar cache",
|
||||
"make_static": "Tornar estático",
|
||||
"theme_auto_desc": "Automático (com base no esquema de cores do seu dispositivo)",
|
||||
"theme_dark_desc": "Tema escuro",
|
||||
"theme_light_desc": "Tema claro",
|
||||
"disable_for_seconds": "Por {{count}} segundo",
|
||||
"disable_for_seconds_plural": "Por {{count}} segundos",
|
||||
"disable_for_minutes": "Por {{count}} minuto",
|
||||
"disable_for_minutes_plural": "Por {{count}} minutos",
|
||||
"disable_for_hours": "Por {{count}} hora",
|
||||
"disable_for_hours_plural": "Por {{count}} horas",
|
||||
"disable_until_tomorrow": "Até amanhã",
|
||||
"disable_notify_for_seconds": "Desativar proteção por {{count}} segundo",
|
||||
"disable_notify_for_seconds_plural": "Desativar proteção por {{count}} segundos",
|
||||
"disable_notify_for_minutes": "Desativar proteção por {{count}} minuto",
|
||||
"disable_notify_for_minutes_plural": "Desativar proteção por {{count}} minutos",
|
||||
"disable_notify_for_hours": "Desativar proteção por {{count}} hora",
|
||||
"disable_notify_for_hours_plural": "Desativar proteção por {{count}} horas",
|
||||
"disable_notify_until_tomorrow": "Desativar a proteção até amanhã",
|
||||
"enable_protection_timer": "A proteção será habilitada em {{time}}",
|
||||
"custom_retention_input": "Insira a retenção em horas",
|
||||
"custom_rotation_input": "Insira a rotação em horas",
|
||||
"protection_section_label": "Proteção",
|
||||
"log_and_stats_section_label": "Log de consulta e estatísticas",
|
||||
"ignore_query_log": "Ignorar este cliente no log de consulta",
|
||||
"ignore_statistics": "Ignorar este cliente nas estatísticas"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Setări DHCP IPv6",
|
||||
"form_error_required": "Câmp obligatoriu",
|
||||
"form_error_ip4_format": "Adresă IPv4 nevalidă",
|
||||
"form_error_ip4_range_start_format": "Adresă IPv4 nevalidă pentru începutul intervalului",
|
||||
"form_error_ip4_range_end_format": "Adresă IPv4 nevalidă a sfârșitului intervalului",
|
||||
"form_error_ip4_gateway_format": "Adresă IPv4 nevalidă a gateway-ului",
|
||||
"form_error_ip6_format": "Adresa IPv6 nevalidă",
|
||||
"form_error_ip_format": "Adresă IP nevalidă",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "Nume de server nevalid",
|
||||
"form_error_subnet": "Subrețeaua „{{cidr}}” nu conține adresa IP „{{ip}}”",
|
||||
"form_error_positive": "Trebuie să fie mai mare de 0",
|
||||
"form_error_gateway_ip": "Locația nu poate avea adresa IP a gateway-ului",
|
||||
"out_of_range_error": "Trebuie să fie în afara intervalului „{{start}}”-„{{end}}”",
|
||||
"lower_range_start_error": "Trebuie să fie mai mică decât începutul intervalului",
|
||||
"greater_range_start_error": "Trebuie să fie mai mare decât începutul intervalului",
|
||||
"greater_range_end_error": "Trebuie să fie mai mare decât sfârșitul intervalului",
|
||||
"subnet_error": "Adresele trebuie să fie în aceeași subrețea",
|
||||
"gateway_or_subnet_invalid": "Mască de subrețea nevalidă",
|
||||
"dhcp_form_gateway_input": "IP Gateway",
|
||||
@@ -210,17 +208,21 @@
|
||||
"example_comment_hash": "# De asemenea, un comentariu.",
|
||||
"example_regex_meaning": "blochează accesul la domeniile care corespund expresiei regulate specificate.",
|
||||
"example_upstream_regular": "DNS clasic (over UDP);",
|
||||
"example_upstream_regular_port": "DNS obișnuit (over UDP, cu port);",
|
||||
"example_upstream_udp": "DNS obișnuit (over UDP, nume de gazdă);",
|
||||
"example_upstream_dot": "<0>DNS-over-TLS</0> criptat;",
|
||||
"example_upstream_doh": "<0>DNS-over-HTTPS</0> criptat;",
|
||||
"example_upstream_doh3": "DNS-over-HTTPS criptat cu <0>HTTP/3</0> forțat și fără revenire la HTTP/2 sau inferior;",
|
||||
"example_upstream_doq": "criptat <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS Stamps</0> pentru <1>DNSCrypt</1> sau rezolvatori <2>DNS-over-HTTPS</2>;",
|
||||
"example_upstream_tcp": "DNS clasic (over TCP);",
|
||||
"example_upstream_tcp_port": "DNS obișnuit (over TCP, cu port);",
|
||||
"example_upstream_tcp_hostname": "DNS obișnuit (over TCP, nume de gazdă);",
|
||||
"all_lists_up_to_date_toast": "Toate listele sunt deja la zi",
|
||||
"updated_upstream_dns_toast": "Serverele din amonte au fost salvate cu succes",
|
||||
"dns_test_ok_toast": "Serverele DNS specificate funcționează corect",
|
||||
"dns_test_not_ok_toast": "Serverul \"{{key}}\": nu a putut fi utilizat, verificați dacă l-ați scris corect",
|
||||
"dns_test_warning_toast": "„{{key}}” în amonte nu răspunde la solicitările de testare și s-ar putea să nu funcționeze corect",
|
||||
"unblock": "Deblocați",
|
||||
"block": "Blocați",
|
||||
"disallow_this_client": "Nu permiteți acest client",
|
||||
@@ -296,6 +298,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Răspunde cu codul NXDOMAIN",
|
||||
"blocking_mode_null_ip": "IP nul: răspunde cu o adresă IP zero (0.0.0.0 pentru A; :: pentru AAAA)",
|
||||
"blocking_mode_custom_ip": "IP personalizat: răspunde cu o adresă IP setată manual",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Luminoasă",
|
||||
"theme_dark": "Sombră",
|
||||
"upstream_dns_client_desc": "Dacă mențineți acest câmp gol, AdGuard Home va folosi serverele configurate în <0>setările DNS</0>.",
|
||||
"tracker_source": "Sursă tracker",
|
||||
"source_label": "Sursă",
|
||||
@@ -362,7 +367,7 @@
|
||||
"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.",
|
||||
"encryption_server_desc": "Dacă este setat, AdGuard Home detectează ID-urile de client, răspunde la interogările DDR și efectuează validări suplimentare ale conexiunii. Dacă nu este setat, aceste caracteristici sunt dezactivate. Trebuie să corespundă cu unul dintre numele DNS din certificat.",
|
||||
"encryption_redirect": "Redirecționați automat la HTTPS",
|
||||
"encryption_redirect_desc": "Dacă este bifat, AdGuard Home vă va redirecționa automat de la adrese HTTP la HTTPS.",
|
||||
"encryption_https": "Port HTTPS",
|
||||
@@ -388,6 +393,7 @@
|
||||
"encryption_issuer": "Emitent",
|
||||
"encryption_hostnames": "Nume de host",
|
||||
"encryption_reset": "Sunteți sigur că doriți să resetați setările de criptare?",
|
||||
"encryption_warning": "Avertisment",
|
||||
"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",
|
||||
@@ -445,9 +451,10 @@
|
||||
"access_blocked_title": "Domenii blocate",
|
||||
"access_blocked_desc": "A nu se confunda cu filtrele. AdGuard Home respinge cererile DNS pentru aceste domenii, iar aceste cereri nici măcar nu apar în jurnalul de solicitări. Puteți specifica nume exacte de domenii, metacaractere sau reguli de filtrare URL, cum ar fi \"example.org\", \"*.exemple.org\" sau \"||example.org^\" în mod corespunzător.",
|
||||
"access_settings_saved": "Setările de acces au fost salvate cu succes",
|
||||
"updates_checked": "Actualizările au fost verificate cu succes",
|
||||
"updates_checked": "Este disponibilă o nouă versiune de AdGuard Home\n",
|
||||
"updates_version_equal": "AdGuard Home este la zi",
|
||||
"check_updates_now": "Verificați actualizările acum",
|
||||
"version_request_error": "Verificarea actualizării nu a reușit. Verificați conexiunea internet.",
|
||||
"dns_privacy": "Confidențialitate DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Folosiți stringul <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Folosiți stringul <1>{{address}}</1>.",
|
||||
@@ -601,7 +608,7 @@
|
||||
"blocklist": "Lista de blocări",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Mărime cache",
|
||||
"cache_size_desc": "Mărime cache DNS (în octeți).",
|
||||
"cache_size_desc": "Mărimea cache-ului DNS (în bytes). Pentru a dezactiva caching-ul, lăsați gol.",
|
||||
"cache_ttl_min_override": "Suprascrieți minimum TTL",
|
||||
"cache_ttl_max_override": "Suprascrieți maximum TTL",
|
||||
"enter_cache_size": "Introduceți mărimea cache-ului (bytes)",
|
||||
@@ -631,5 +638,10 @@
|
||||
"parental_control": "Control Parental",
|
||||
"safe_browsing": "Navigare în siguranță",
|
||||
"served_from_cache": "{{value}} <i>(furnizat din cache)</i>",
|
||||
"form_error_password_length": "Parola trebuie să aibă cel puțin {{value}} caractere"
|
||||
"form_error_password_length": "Parola trebuie să aibă cel puțin {{value}} caractere",
|
||||
"anonymizer_notification": "<0>Nota:</0> Anonimizarea IP este activată. Puteți să o dezactivați în <1>Setări generale</1>.",
|
||||
"confirm_dns_cache_clear": "Sunteți sigur că doriți să ștergeți memoria cache DNS?",
|
||||
"cache_cleared": "Cache-ul DNS a fost golit cu succes",
|
||||
"clear_cache": "Goliți memoria cache",
|
||||
"protection_section_label": "Protecție"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Настройки DHCP IPv6",
|
||||
"form_error_required": "Обязательное поле",
|
||||
"form_error_ip4_format": "Некорректный IPv4-адрес",
|
||||
"form_error_ip4_range_start_format": "Некорректный IPv4-адрес начала диапазона",
|
||||
"form_error_ip4_range_end_format": "Некорректный IPv4-адрес конца диапазона",
|
||||
"form_error_ip4_gateway_format": "Некорректный IPv4-адрес шлюза",
|
||||
"form_error_ip6_format": "Некорректный IPv6-адрес",
|
||||
"form_error_ip_format": "Некорректный IP-адрес",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "Некорректное имя сервера",
|
||||
"form_error_subnet": "Подсеть «{{cidr}}» не содержит IP-адрес «{{ip}}»",
|
||||
"form_error_positive": "Должно быть больше 0",
|
||||
"form_error_gateway_ip": "Аренда не может иметь IP-адрес шлюза",
|
||||
"out_of_range_error": "Должно быть вне диапазона «{{start}}»-«{{end}}»",
|
||||
"lower_range_start_error": "Должно быть меньше начала диапазона",
|
||||
"greater_range_start_error": "Должно быть больше начала диапазона",
|
||||
"greater_range_end_error": "Должно быть больше конца диапазона",
|
||||
"subnet_error": "Адреса должны быть внутри одной подсети",
|
||||
"gateway_or_subnet_invalid": "Некорректная маска подсети",
|
||||
"dhcp_form_gateway_input": "IP-адрес шлюза",
|
||||
@@ -66,7 +64,7 @@
|
||||
"ip": "IP-адрес",
|
||||
"dhcp_table_hostname": "Имя хоста",
|
||||
"dhcp_table_expires": "Истекает",
|
||||
"dhcp_warning": "Если вы все равно хотите включить DHCP-сервер, убедитесь, что в сети больше нет активных DHCP-серверов. Иначе это может сломать доступ в сеть для подключённых устройств!",
|
||||
"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-сервер».",
|
||||
@@ -163,12 +161,13 @@
|
||||
"apply_btn": "Применить",
|
||||
"disabled_filtering_toast": "Фильтрация выкл.",
|
||||
"enabled_filtering_toast": "Фильтрация вкл.",
|
||||
"disabled_safe_browsing_toast": "Антифишинг отключен",
|
||||
"enabled_safe_browsing_toast": "Антифишинг включен",
|
||||
"disabled_safe_browsing_toast": "Антифишинг отключён",
|
||||
"enabled_safe_browsing_toast": "Антифишинг включён",
|
||||
"disabled_parental_toast": "Родительский контроль выкл.",
|
||||
"enabled_parental_toast": "Родительский контроль вкл.",
|
||||
"disabled_safe_search_toast": "Безопасный поиск выкл.",
|
||||
"enabled_save_search_toast": "Безопасный поиск вкл.",
|
||||
"updated_save_search_toast": "Настройки безопасного поиска обновлены",
|
||||
"enabled_table_header": "Вкл.",
|
||||
"name_table_header": "Имя",
|
||||
"list_url_table_header": "URL-адрес списка",
|
||||
@@ -179,7 +178,7 @@
|
||||
"edit_table_action": "Редактировать",
|
||||
"delete_table_action": "Удалить",
|
||||
"elapsed": "Затрачено",
|
||||
"filters_and_hosts_hint": "AdGuard Home распознает базовые правила блокировки и синтаксис файлов hosts.",
|
||||
"filters_and_hosts_hint": "AdGuard Home распознаёт базовые правила блокировки и синтаксис файлов hosts.",
|
||||
"no_blocklist_added": "Чёрные списки не добавлены",
|
||||
"no_whitelist_added": "Белые списки не добавлены",
|
||||
"add_blocklist": "Добавить чёрный список",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# И вот так тоже.",
|
||||
"example_regex_meaning": "блокировать доступ к доменам, соответствующим заданному регулярному выражению.",
|
||||
"example_upstream_regular": "обычный DNS (поверх UDP);",
|
||||
"example_upstream_regular_port": "обычный DNS (поверх UDP, с портом);",
|
||||
"example_upstream_udp": "обычный DNS (поверх UDP, с именем хоста);",
|
||||
"example_upstream_dot": "зашифрованный <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "зашифрованный <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "зашифрованный DNS-over-HTTPS с принудительным <0>HTTP/3</0> без отката к HTTP/2 или ниже;",
|
||||
"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);",
|
||||
"example_upstream_tcp_port": "обычный DNS (поверх TCP, с портом);",
|
||||
"example_upstream_tcp_hostname": "обычный DNS (поверх TCP, с именем хоста);",
|
||||
"all_lists_up_to_date_toast": "Все списки уже обновлены",
|
||||
"updated_upstream_dns_toast": "DNS-серверы успешно обновлены",
|
||||
"dns_test_ok_toast": "Указанные серверы DNS работают корректно",
|
||||
"dns_test_not_ok_toast": "Сервер «{{key}}»: невозможно использовать, проверьте правильность написания",
|
||||
"dns_test_warning_toast": "Upstream «{{key}}» не отвечает на тестовые запросы и может работать некорректно",
|
||||
"unblock": "Разблокировать",
|
||||
"block": "Заблокировать",
|
||||
"disallow_this_client": "Запретить доступ клиенту",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Журнал запросов успешно очищен",
|
||||
"query_log_updated": "Журнал запросов успешно обновлён",
|
||||
"query_log_clear": "Очистить журнал запросов",
|
||||
"query_log_retention": "Сохранение журнала запросов",
|
||||
"query_log_retention": "Частота ротации журнала запросов",
|
||||
"query_log_enable": "Включить журнал",
|
||||
"query_log_configuration": "Настройка журнала",
|
||||
"query_log_disabled": "Журнал запросов выключен, его можно включить в <0>настройках</0>",
|
||||
"query_log_strict_search": "Используйте двойные кавычки для строгого поиска",
|
||||
"query_log_retention_confirm": "Вы уверены, что хотите изменить срок хранения запросов? При сокращении интервала данные могут быть утеряны",
|
||||
"query_log_retention_confirm": "Вы уверены, что хотите изменить частоту ротации журнала запросов? При сокращении срока данные могут быть утеряны",
|
||||
"anonymize_client_ip": "Анонимизировать IP-адрес клиента",
|
||||
"anonymize_client_ip_desc": "Не сохранять полный IP-адрес клиента в журналах и статистике",
|
||||
"dns_config": "Настройки DNS-сервера",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Rate limit",
|
||||
"edns_enable": "Включить отправку EDNS Client Subnet",
|
||||
"edns_cs_desc": "Добавлять опцию EDNS Client Subnet (ECS) к запросам к upstream-серверам, а также записывать присланные клиентами значения в журнал.",
|
||||
"edns_use_custom_ip": "Использовать указанный IP для EDNS",
|
||||
"edns_use_custom_ip_desc": "Разрешить использовать собственный IP для EDNS",
|
||||
"rate_limit_desc": "Ограничение на количество запросов в секунду для каждого клиента (0 — неограниченно).",
|
||||
"blocking_ipv4_desc": "IP-адрес, возвращаемый при блокировке A-запроса",
|
||||
"blocking_ipv6_desc": "IP-адрес, возвращаемый при блокировке AAAA-запроса",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Отвечает с кодом NXDOMAIN\n",
|
||||
"blocking_mode_null_ip": "Нулевой IP: Отвечает с нулевым IP-адресом (0.0.0.0 для A; :: для AAAA)",
|
||||
"blocking_mode_custom_ip": "Пользовательский IP: Отвечает с вручную настроенным IP-адресом",
|
||||
"theme_auto": "Авто",
|
||||
"theme_light": "Светлая",
|
||||
"theme_dark": "Тёмная",
|
||||
"upstream_dns_client_desc": "Если оставить поле пустым, AdGuard Home будет обращаться к серверам, указанным в <0>настройках DNS</0>.",
|
||||
"tracker_source": "Источник трекинга",
|
||||
"source_label": "Источник",
|
||||
@@ -328,10 +336,10 @@
|
||||
"install_submit_title": "Поздравляем!",
|
||||
"install_submit_desc": "Настройка завершена, AdGuard Home готов к использованию.",
|
||||
"install_devices_router": "Роутер",
|
||||
"install_devices_router_desc": "Эта настройка покроет все устройства, подключенные к вашему домашнему роутеру, и вам не нужно будет настраивать каждое вручную.",
|
||||
"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_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.",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "Настройки шифрования сохранены",
|
||||
"encryption_server": "Имя сервера",
|
||||
"encryption_server_enter": "Введите ваше доменное имя",
|
||||
"encryption_server_desc": "Для использования HTTPS вам необходимо ввести имя сервера, которое подходит вашему SSL-сертификату или сертификату с поддержкой поддоменов. Если это поле не задано, сервер будет принимать TLS-соединения для любого домена.",
|
||||
"encryption_server_desc": "Если задано, AdGuard Home распознаёт ClientID, отвечает на DDR-запросы, и дополнительно проверяет соединения. Если не задано, этот функционал отключён. Должно соответствовать одному из параметров DNS Names в сертификате.",
|
||||
"encryption_redirect": "Автоматически перенаправлять на HTTPS",
|
||||
"encryption_redirect_desc": "Если включено, AdGuard Home будет автоматически перенаправлять вас с HTTP на HTTPS адрес.",
|
||||
"encryption_https": "Порт HTTPS",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Издатель",
|
||||
"encryption_hostnames": "Имена хостов",
|
||||
"encryption_reset": "Вы уверены, что хотите сбросить настройки шифрования?",
|
||||
"encryption_warning": "Предупреждение",
|
||||
"topline_expiring_certificate": "Ваш SSL-сертификат скоро истекает. Обновите <0>Настройки шифрования</0>.",
|
||||
"topline_expired_certificate": "Ваш SSL-сертификат истёк. Обновите <0>Настройки шифрования</0>.",
|
||||
"form_error_port_range": "Введите номер порта из интервала 80-65535",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Неразрешённые домены",
|
||||
"access_blocked_desc": "Не путать с фильтрами. AdGuard Home будет игнорировать DNS-запросы с этими доменами. Здесь вы можете уточнить точные имена доменов, шаблоны, правила URL-фильтрации, например, «example.org», «*.example.org» или «||example.org».",
|
||||
"access_settings_saved": "Настройки доступа успешно сохранены",
|
||||
"updates_checked": "Проверка обновлений прошла успешно",
|
||||
"updates_checked": "Доступна новая версия AdGuard Home",
|
||||
"updates_version_equal": "Версия AdGuard Home актуальна",
|
||||
"check_updates_now": "Проверить обновления",
|
||||
"version_request_error": "Ошибка при проверке наличия обновлений. Проверьте ваше интернет-соединение.",
|
||||
"dns_privacy": "Зашифрованный DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Используйте строку <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Используйте строку <1>{{address}}</1>.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Вы уверены, что хотите изменить срок хранения статистики? При сокращении интервала данные могут быть утеряны",
|
||||
"statistics_cleared": "Статистика успешно очищена",
|
||||
"statistics_enable": "Включить статистику",
|
||||
"ignore_domains": "Игнорируемые домены (построчно)",
|
||||
"ignore_domains_title": "Игнорируемые домены",
|
||||
"ignore_domains_desc_stats": "Запросы для этих доменов не записываются в статистику",
|
||||
"ignore_domains_desc_query": "Запросы для этих доменов не записываются в журнал запросов",
|
||||
"interval_hours": "{{count}} час",
|
||||
"interval_hours_plural": "{{count}} часов",
|
||||
"filters_configuration": "Настройка фильтров",
|
||||
@@ -589,7 +603,7 @@
|
||||
"validated_with_dnssec": "Подтверждено с помощью DNSSEC",
|
||||
"all_queries": "Все запросы",
|
||||
"show_blocked_responses": "Заблокировано",
|
||||
"show_whitelisted_responses": "В белом списке",
|
||||
"show_whitelisted_responses": "Разрешённые",
|
||||
"show_processed_responses": "Обработан",
|
||||
"blocked_safebrowsing": "Заблокировано согласно базе данных Safe Browsing",
|
||||
"blocked_adult_websites": "Заблокировано Родительским контролем",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Чёрный список",
|
||||
"milliseconds_abbreviation": "мс",
|
||||
"cache_size": "Размер кеша",
|
||||
"cache_size_desc": "Размера кеша DNS (в байтах).",
|
||||
"cache_size_desc": "Размера кеша DNS (в байтах). Чтобы отключить кэширование, оставьте поле пустым.",
|
||||
"cache_ttl_min_override": "Переопределить минимальный TTL",
|
||||
"cache_ttl_max_override": "Переопределить максимальный TTL",
|
||||
"enter_cache_size": "Введите размер кеша (в байтах)",
|
||||
@@ -624,12 +638,41 @@
|
||||
"original_response": "Первоначальный ответ",
|
||||
"click_to_view_queries": "Нажмите, чтобы просмотреть запросы",
|
||||
"port_53_faq_link": "Порт 53 часто занят службами «DNSStubListener» или «systemd-resolved». Ознакомьтесь с <0>инструкцией</0> о том, как это разрешить.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home AdGuard Home сбросит все DNS-запросы от этого клиента.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home сбросит все DNS-запросы от этого клиента.",
|
||||
"filter_allowlist": "ВНИМАНИЕ: Это действие также исключит правило «{{disallowed_rule}}» из списка разрешённых клиентов.",
|
||||
"last_rule_in_allowlist": "Нельзя заблокировать этого клиента, так как исключение правила «{{disallowed_rule}}» ОТКЛЮЧИТ режим белого списка.",
|
||||
"use_saved_key": "Использовать сохранённый ранее ключ",
|
||||
"parental_control": "Родительский контроль",
|
||||
"safe_browsing": "Безопасный интернет",
|
||||
"served_from_cache": "{{value}} <i>(получено из кеша)</i>",
|
||||
"form_error_password_length": "Пароль должен быть длиной не меньше {{value}} символов"
|
||||
"form_error_password_length": "Пароль должен быть длиной не меньше {{value}} символов",
|
||||
"anonymizer_notification": "<0>Внимание:</0> включена анонимизация IP-адресов. Вы можете отключить её в разделе <1>Основные настройки</1>.",
|
||||
"confirm_dns_cache_clear": "Вы уверены, что хотите очистить кеш DNS?",
|
||||
"cache_cleared": "Кеш DNS успешно очищен",
|
||||
"clear_cache": "Очистить кеш",
|
||||
"make_static": "Сделать статической",
|
||||
"theme_auto_desc": "Авто (на основе цветовой схемы вашего устройства)",
|
||||
"theme_dark_desc": "Тёмная тема",
|
||||
"theme_light_desc": "Светлая тема",
|
||||
"disable_for_seconds": "На {{count}} секунд",
|
||||
"disable_for_seconds_plural": "На {{count}} секунд",
|
||||
"disable_for_minutes": "На {{count}} минуту",
|
||||
"disable_for_minutes_plural": "На {{count}} минут",
|
||||
"disable_for_hours": "На {{count}} час",
|
||||
"disable_for_hours_plural": "На {{count}} часов",
|
||||
"disable_until_tomorrow": "До завтра",
|
||||
"disable_notify_for_seconds": "Отключить защиту на {{count}} секунд",
|
||||
"disable_notify_for_seconds_plural": "Отключить защиту на {{count}} секунд",
|
||||
"disable_notify_for_minutes": "Отключить защиту на {{count}} минуту",
|
||||
"disable_notify_for_minutes_plural": "Отключить защиту на {{count}} минут",
|
||||
"disable_notify_for_hours": "Отключить защиту на {{count}} час",
|
||||
"disable_notify_for_hours_plural": "Отключить защиту на {{count}} часов",
|
||||
"disable_notify_until_tomorrow": "Отключить защиту до завтра",
|
||||
"enable_protection_timer": "Защита будет включена в {{time}}",
|
||||
"custom_retention_input": "Введите срок хранения в часах",
|
||||
"custom_rotation_input": "Введите частоту ротации в часах",
|
||||
"protection_section_label": "Защита",
|
||||
"log_and_stats_section_label": "Журнал запросов и статистика",
|
||||
"ignore_query_log": "Игнорировать этого клиента в журнале запросов",
|
||||
"ignore_statistics": "Игнорировать этого клиента в статистике"
|
||||
}
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
"load_balancing": "ධාරිතාව තුලනය",
|
||||
"local_ptr_title": "පෞද්ගලික ප්රතිවර්ත ව.නා.ප. සේවාදායක",
|
||||
"local_ptr_desc": "ස්ථානීය PTR විමසුම් සඳහා ඇඩ්ගාර්ඩ් හෝම් භාවිතා කරන ව.නා.ප. සේවාදායක. මෙම සේවාදායක පුද්ගලික අ.ජා.කෙ. ලිපින සහිත අනුග්රාහකවල සත්කාරක නාම විසඳීමට භාවිතා කරයි, උදාහරණයක් ලෙස ප්රතිවර්ත ව.නා.ප. භාවිතයෙන් \"192.168.12.34\". නැති නම්, ඇඩ්ගාර්ඩ් හෝම් හි ලිපින සඳහා හැරුනු විට ඔබගේ මෙහෙයුම් පද්ධතියේ පෙරනිමි ව.නා.ප. විසදුම්වල ලිපින භාවිතා කරයි.",
|
||||
"local_ptr_default_resolver": "පෙරනිමි ලෙස, ඇඩ්ගාර්ඩ් හෝම් පහත ප්රතිවර්තත ව.නා.ප. විසඳුම් භාවිතා කරයි: {{ip}}.",
|
||||
"local_ptr_no_default_resolver": "ඇඩ්ගාර්ඩ් හෝම් හට මෙම පද්ධතිය සඳහා සුදුසු පුද්ගලික ප්රතිවර්ත ව.නා.ප. විසඳුම් නිශ්චය කරගත නොහැකි විය.",
|
||||
"local_ptr_default_resolver": "පෙරනිමි ලෙස, ඇඩ්ගාර්ඩ් හෝම් පහත ප්රතිවර්තත ව.නා.ප. පිළිවිසඳු භාවිතා කරයි: {{ip}}.",
|
||||
"local_ptr_no_default_resolver": "ඇඩ්ගාර්ඩ් හෝම් හට මෙම පද්ධතිය සඳහා සුදුසු පුද්ගලික ප්රතිවර්ත ව.නා.ප. පිළිවිසඳු නිශ්චය කරගත නොහැකි විය.",
|
||||
"local_ptr_placeholder": "පේළියකට එක් සේවාදායක ලිපිනය බැගින් යොදන්න",
|
||||
"resolve_clients_title": "අනුග්රාහකවල අ.ජා.කෙ. ලිපින ප්රතිවර්ත විසඳීම සබල කරන්න",
|
||||
"use_private_ptr_resolvers_title": "පෞද්. ප්රතිවර්ත ව.නා.ප. පිළිවිසඳු භාවිතය",
|
||||
"check_dhcp_servers": "ග.ධා.වි.කෙ. සේවාදායක සඳහා පරීක්ෂා කරන්න",
|
||||
"save_config": "වින්යාසය සුරකින්න",
|
||||
"enabled_dhcp": "ග.ධා.වි.කෙ. සේවාදායකය සබල කෙරිණි",
|
||||
@@ -16,30 +17,35 @@
|
||||
"unavailable_dhcp": "ග.ධා.වි.කෙ. නැත",
|
||||
"unavailable_dhcp_desc": "ඇඩ්ගාර්ඩ් හෝම් හට ඔබගේ මෙහෙයුම් පද්ධතියේ ග.ධා.වි.කෙ. සේවාදායකයක් ධාවනය කිරීමට නොහැකිය",
|
||||
"dhcp_title": "ග.ධා.වි.කෙ. සේවාදායකය (පර්යේෂණාත්මක!)",
|
||||
"dhcp_description": "ඔබගේ මාර්ගකාරකය ග.ධා.වි.කෙ. (DHCP) සැකසුම් ලබා නොදෙන්නේ නම්, ඔබට ඇඩ්ගාර්ඩ් හි ඇති ග.ධා.වි.කෙ. සේවාදායකය භාවිතා කළ හැකිය.",
|
||||
"dhcp_description": "ඔබගේ මාර්ගකාරකය ග.ධා.වි.කෙ. (DHCP) සැකසුම් ලබා නොදෙන්නේ නම්, ඔබට ඇඩ්ගාර්ඩ් හි තිළෑලි ග.ධා.වි.කෙ. සේවාදායකය භාවිතා කළ හැකිය.",
|
||||
"dhcp_enable": "ග.ධා.වි.කෙ. සේවාදායකය සබල කරන්න",
|
||||
"dhcp_disable": "ග.ධා.වි.කෙ. සේවාදායකය අබල කරන්න",
|
||||
"dhcp_not_found": "ඇඩ්ගාර්ඩ් හෝම් සඳහා ජාලයෙහි කිසිදු ක්රියාත්මක ග.ධා.වි.කෙ. සේවාදායකයක් හමු නොවූ නිසා තිළෑලි සේවාදායකය සබල කිරීම ආරක්ෂිත වේ. කෙසේ වෙතත්, ස්වයංක්රීය ඒෂණය ඉතා නිවැරදි නොවිය හැකි බැවින් ඔබ එය අතින් නැවත පරීක්ෂා කළ යුතුය.",
|
||||
"dhcp_found": "ක්රියාත්මක ග.ධා.වි.කෙ සේවාදායකයක් ජාලය තුළ හමු විය. තිළෑලි ග.ධා.වි.කෙ සේවාදායකය සබල කිරීම ආරක්ෂිත නොවේ.",
|
||||
"dhcp_leases": "ග.ධා.වි.කෙ. කල්පැවරීම",
|
||||
"dhcp_static_leases": "ස්ථිර ග.ධා.වි.කෙ. කල්පැවරීම",
|
||||
"dhcp_leases_not_found": "ග.ධා.වි.කෙ. කල්පැවරීම් නැත",
|
||||
"dhcp_config_saved": "ග.ධා.වි.කෙ. වින්යාසය සාර්ථකව සුරකින ලදි",
|
||||
"dhcp_ipv4_settings": "ග.ධා.වි.කෙ. අ.ජා.කෙ. 4 සැකසුම්",
|
||||
"dhcp_ipv6_settings": "ග.ධා.වි.කෙ. අ.ජා.කෙ. 6 සැකසුම්",
|
||||
"form_error_required": "ඇවැසි ක්ෂේත්රයකි",
|
||||
"form_error_ip4_format": "IPv4 ලිපිනය වලංගු නොවේ",
|
||||
"form_error_ip4_range_start_format": "පරාසය ආරම්භයේ වලංගු නොවන අ.ජා.කෙ.4 ලිපිනයකි",
|
||||
"form_error_ip4_range_end_format": "පරාසය අවසානයේ වලංගු නොවන අ.ජා.කෙ.4 ලිපිනයකි",
|
||||
"form_error_ip6_format": "වලංගු නොවන අ.ජා.කෙ.6 ලිපිනයකි",
|
||||
"form_error_ip_format": "අ.ජා.කෙ. (IP) ලිපිනය වලංගු නොවේ",
|
||||
"form_error_mac_format": "මා.ප්ර.පා. ලිපිනය වලංගු නොවේ",
|
||||
"form_error_client_id_format": "අනුග්රාහකයේ හැඳු. වලංගු නොවේ",
|
||||
"form_error_server_name": "සේවාදායකයේ නම වලංගු නොවේ",
|
||||
"form_error_subnet": "\"{{cidr}}\" අනුජාලය හි \"{{ip}}\" අ.ජා.කෙ. ලිපිනය අඩංගු නොවේ",
|
||||
"form_error_positive": "0 ට වඩා වැඩි විය යුතුය",
|
||||
"out_of_range_error": "\"{{start}}\"-\"{{end}}\" පරාසයෙන් පිට විය යුතුය",
|
||||
"lower_range_start_error": "පරාසය ආරම්භයට වඩා අඩු විය යුතුය",
|
||||
"greater_range_start_error": "පරාසය ආරම්භයට වඩා වැඩි විය යුතුය",
|
||||
"greater_range_end_error": "පරාසය අවසානයට වඩා වැඩි විය යුතුය",
|
||||
"subnet_error": "ලිපින එක් අනුජාලයක තිබිය යුතුය",
|
||||
"dhcp_form_range_title": "අ.ජා. කෙ. (IP) ලිපින පරාසය",
|
||||
"dhcp_form_range_start": "පරාසය ආරම්භය",
|
||||
"dhcp_form_range_end": "පරාසය අවසානය",
|
||||
"dhcp_form_lease_title": "ග.ධා.වි.කෙ. කල්පැවරීම (තත්. වලින්)",
|
||||
"dhcp_form_lease_input": "කල්පැවරීමේ පරාසය",
|
||||
"dhcp_interface_select": "ග.ධා.වි.කෙ. අතුරුමුහුණත තෝරන්න",
|
||||
"dhcp_hardware_address": "දෘඩාංග ලිපිනය",
|
||||
"dhcp_ip_addresses": "අ.ජා.කෙ. (IP) ලිපින",
|
||||
@@ -50,6 +56,14 @@
|
||||
"dhcp_error": "ජාලයේ තවත් ක්රියාත්මක ග.ධා.වි.කෙ. සේවාදායකයක් තිබේද යන්න නිශ්චය කළ නොහැකි විය",
|
||||
"dhcp_static_ip_error": "ග.ධා.වි.කෙ. සේවාදායකය භාවිතා කිරීම සඳහා ස්ථිතික අන්තර්ජාල කෙටුම්පත් (IP) ලිපිනයක් සැකසිය යුතුය. මෙම ජාල අතුරුමුහුණත ස්ථිතික අ.ජා. කෙ. ලිපිනයක් භාවිතයෙන් වින්යාසගත කර තිබේද යන්න තීරණය කිරීමට ඇඩ්ගාර්ඩ් හෝම් අසමත් විය. කරුණාකර ස්ථිතික අ.ජා. කෙ. ලිපිනයක් අතින් සකසන්න.",
|
||||
"dhcp_dynamic_ip_found": "ඔබගේ පද්ධතිය <0>{{interfaceName}}</0> අතුරු මුහුණත සඳහා ගතික අන්තර්ජාල කෙටුම්පත් (IP) ලිපින වින්යාසය භාවිතා කරයි. ග.ධා.වි.කෙ. සේවාදායකය භාවිතා කිරීම සඳහා ස්ථිතික අ.ජා. කෙ. ලිපිනයක් සැකසිය යුතුය. ඔබගේ වර්තමාන අ.ජා. කෙ. ලිපිනය <0>{{ipAddress}}</0> වේ. ඔබ \"ග.ධා.වි.කෙ. සබල කරන්න\" බොත්තම එබුවහොත් ඇඩ්ගාර්ඩ් හෝම් ස්වයංක්රීයව මෙම අ.ජා. කෙ. ලිපිනය ස්ථිතික ලෙස සකසනු ඇත.",
|
||||
"dhcp_lease_added": "\"{{key}}\" ස්ථිර කල්පැවරීම එකතු කෙරිණි",
|
||||
"dhcp_lease_deleted": "\"{{key}}\" ස්ථිර කල්පැවරීම මකා දැමිණි",
|
||||
"dhcp_new_static_lease": "නව ස්ථිර කල්පැවරීම",
|
||||
"dhcp_static_leases_not_found": "ග.ධා.වි.කෙ. ස්ථිර කල්පැවරීම් නැත",
|
||||
"dhcp_add_static_lease": "ස්ථිර කල්පැවරීමක් යොදන්න",
|
||||
"dhcp_reset_leases": "කල්පැවරීම් යළි සකසන්න",
|
||||
"dhcp_reset_leases_confirm": "සියළු කල්පැවරීම් යළි සැකසීමට වුවමනා ද?",
|
||||
"dhcp_reset_leases_success": "ග.ධා.වි.කෙ. කල්පැවරීම් යළි සැකසිණි",
|
||||
"dhcp_reset": "ග.ධා.වි.කෙ. වින්යාසය යළි පිහිටුවීමට අවශ්ය බව ඔබට විශ්වාස ද?",
|
||||
"country": "රට",
|
||||
"city": "නගරය",
|
||||
@@ -109,9 +123,10 @@
|
||||
"number_of_dns_query_to_safe_search": "ආරක්ෂිත සෙවීම බලාත්මක කළ සෙවුම් යන්ත්ර සඳහා ව.නා.ප. ඉල්ලීම් ගණන",
|
||||
"average_processing_time": "සාමාන්ය සැකසුම් කාලය",
|
||||
"average_processing_time_hint": "ව.නා.ප. ඉල්ලීමක් සැකසීමේ සාමාන්ය කාලය මිලි තත්පර වලින්",
|
||||
"block_domain_use_filters_and_hosts": "පෙරහන් සහ ධාරක ගොනු භාවිතා කරමින් වසම් අවහිර කරන්න",
|
||||
"block_domain_use_filters_and_hosts": "පෙරහන් හා සත්කාරක ගොනු භාවිතයෙන් වසම් අවහිර කරන්න",
|
||||
"filters_block_toggle_hint": "ඔබට අවහිර කිරීමේ නීති <a>පෙරහන්</a> තුළ පිහිටුවිය හැකිය.",
|
||||
"use_adguard_browsing_sec": "ඇඩ්ගාර්ඩ් පිරික්සුම් ආරක්ෂණ වියමන සේවාව භාවිතා කරන්න",
|
||||
"use_adguard_browsing_sec_hint": "ඇඩ්ගාර්ඩ් හෝම් විසින් පිරික්සුම් ආරක්ෂණ වියමන සේවාව මගින් වසම අවහිර කර ඇත්දැයි පරීක්ෂා කරයි. එය සිදු කිරීමට රහස්යතා-හිතකාමී බැලීමේ යෙ.ක්ර.මු. භාවිතා කෙරේ: වසමේ කෙටි උපසර්ගයක SHA256 පූරකයක් පමණක් සේවාදායකය වෙත යවනු ලැබේ.",
|
||||
"use_adguard_parental": "ඇඩ්ගාර්ඩ් දෙමාපිය පාලන වියමන සේවාව භාවිතා කරන්න",
|
||||
"use_adguard_parental_hint": "වසමේ වැඩිහිටියන්ට අදාල කරුණු අඩංගු දැයි ඇඩ්ගාර්ඩ් හෝම් විසින් පරීක්ෂා කරනු ඇත. එය පිරික්සුම් ආරක්ෂණ වියමන සේවාව මෙන් රහස්යතා හිතකාමී යෙ.ක්ර. අ.මු. (API) භාවිතා කරයි.",
|
||||
"enforce_safe_search": "ආරක්ෂිත සෙවුම භාවිතා කරන්න",
|
||||
@@ -179,13 +194,13 @@
|
||||
"example_comment_hash": "# එසේම අදහස් දැක්වීමක්.",
|
||||
"example_regex_meaning": "නිශ්චිතව දක්වා ඇති නිත්ය වාක්යවිධියට ගැළපෙන වසම් වෙත ප්රවේශය අවහිර කරයි.",
|
||||
"example_upstream_regular": "සාමාන්ය ව.නා.ප. (UDP හරහා);",
|
||||
"example_upstream_udp": "සාමාන්ය ව.නා.ප. (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_sdns": "<1>DNSCrypt</1> හෝ <2>HTTPS-හරහා-ව.නා.ප.</2> විසඳුම් සඳහා <0>ව.නා.ප. මුද්දර</0>;",
|
||||
"example_upstream_udp": "සාමාන්ය ව.නා.ප. (UDP, සත්කාරක-නම හරහා);",
|
||||
"example_upstream_dot": "සංකේතිත <0>TLS-මගින්-ව.නා.ප.</0>;",
|
||||
"example_upstream_doh": "සංකේතිත <0>HTTPS-මගින්-ව.නා.ප.</0>;",
|
||||
"example_upstream_doq": "සංකේතිත <0>QUIC-මගින්-ව.නා.ප.</0>;",
|
||||
"example_upstream_sdns": "<1>DNSCrypt</1> හෝ <2>HTTPS-මගින්-ව.නා.ප.</2> පිළිවිසඳු සඳහා <0>ව.නා.ප. මුද්දර</0>;",
|
||||
"example_upstream_tcp": "සාමාන්ය ව.නා.ප. (TCP/ස.පා.කෙ. හරහා);",
|
||||
"example_upstream_tcp_hostname": "සාමාන්ය ව.නා.ප. (ස.පා.කෙ., සත්කාරක නම හරහා);",
|
||||
"example_upstream_tcp_hostname": "සාමාන්ය ව.නා.ප. (ස.පා.කෙ., සත්කාරක-නම හරහා);",
|
||||
"all_lists_up_to_date_toast": "සියළුම ලැයිස්තු දැනටමත් යාවත්කාලීනයි",
|
||||
"dns_test_ok_toast": "සඳහන් කළ ව.නා.ප. සේවාදායක නිවැරදිව ක්රියා කරයි",
|
||||
"dns_test_not_ok_toast": "\"{{key}}\" සේවාදායක(ය): භාවිතා කිරීමට නොහැකි විය, ඔබ එය නිවැරදිව ලියා ඇතිදැයි පරීක්ෂා කරන්න",
|
||||
@@ -242,14 +257,14 @@
|
||||
"blocking_ipv4": "අ.ජා.කෙ.4 අවහිර කිරීම",
|
||||
"blocking_ipv6": "අ.ජා.කෙ.6 අවහිර කිරීම",
|
||||
"dnscrypt": "DNSCrypt",
|
||||
"dns_over_https": "HTTPS-හරහා-ව.නා.ප.",
|
||||
"dns_over_tls": "TLS-හරහා-ව.නා.ප.",
|
||||
"dns_over_quic": "QUIC-හරහා-ව.නා.ප.",
|
||||
"dns_over_https": "HTTPS-මගින්-ව.නා.ප.",
|
||||
"dns_over_tls": "TLS-මගින්-ව.නා.ප.",
|
||||
"dns_over_quic": "QUIC-මගින්-ව.නා.ප.",
|
||||
"client_id": "අනුග්රාහකයේ හැඳු.",
|
||||
"client_id_placeholder": "අනුග්රාහකයක හැඳු. යොදන්න",
|
||||
"client_id_desc": "අනුග්රාහක හැඳු. මගින් අනුග්රාහක හඳුනාගත හැකිය. කෙසේදැයි <a>මෙතැනින්</a> දැන ගන්න.",
|
||||
"download_mobileconfig_doh": "HTTPS-හරහා-ව.නා.ප. සඳහා .ජංගමවින්යාසය බාගන්න",
|
||||
"download_mobileconfig_dot": "TLS-හරහා-ව.නා.ප. සඳහා .ජංගමවින්යාසය බාගන්න",
|
||||
"download_mobileconfig_doh": "HTTPS-මගින්-ව.නා.ප. සඳහා .ජංගමවින්යාසය බාගන්න",
|
||||
"download_mobileconfig_dot": "TLS-මගින්-ව.නා.ප. සඳහා .ජංගමවින්යාසය බාගන්න",
|
||||
"download_mobileconfig": "වින්යාසගත ගොනුව බාගන්න",
|
||||
"plain_dns": "සරල ව.නා.ප.",
|
||||
"form_enter_rate_limit": "අනුපාත සීමාව ඇතුල් කරන්න",
|
||||
@@ -295,23 +310,24 @@
|
||||
"install_submit_title": "සුභ පැතුම්!",
|
||||
"install_submit_desc": "පිහිටුවීමේ ක්රියා පටිපාටිය අවසන් වී ඇති අතර ඔබ දැන් ඇඩ්ගාර්ඩ් හෝම් භාවිතය ආරම්භ කිරීමට සූදානම්ය.",
|
||||
"install_devices_router": "මාර්ගකාරකය",
|
||||
"install_devices_router_desc": "මෙම පිහිටුම ඔබගේ නිවසේ මාර්ගකාරකයට සම්බන්ධ සියළුම උපාංග ස්වයංක්රීයව ආවරණය කරන අතර ඔබට ඒ සෑම එකක්ම අතින් වින්යාසගත කිරීමට අවශ්ය නොවේ.",
|
||||
"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_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_windows_list_1": "පාලන වට්ටෝරුව හෝ වින්ඩෝස් සෙවුම හරහා පාලන මඬල අරින්න.",
|
||||
"install_devices_windows_list_2": "ජාල සහ අන්තර්ජාල ප්රවර්ගයට ගොස් පසුව ජාල සහ බෙදාගැනීමේ මධ්යස්ථානය වෙත යන්න.",
|
||||
"install_devices_windows_list_3": "වම් තීරුවෙහි \"උපයුක්තකයෙහි සැකසුම් වෙනස් කිරීම\" ඔබන්න.",
|
||||
"install_devices_windows_list_4": "ඔබගේ ක්රියාකාරී සම්බන්ධතාවය මත දකුණු-ක්ලික් කර ගුණාංග තෝරන්න.",
|
||||
"install_devices_windows_list_5": "ලැයිස්තුවෙන් \"අන්තර්ජාල කෙටුම්පත් අනුවාදය 4 (TCP/IPv4)\" (හෝ, IPv6 සඳහා, \"අන්තර්ජාල කෙටුම්පත් අනුවාදය 6 (TCP/IPv6)\") සොයාගෙන එය තෝරා ඉන්පසු ගුණාංග මත නැවත ඔබන්න.",
|
||||
"install_devices_windows_list_6": "'පහත සඳහන් ව.නා.ප. සේවාදායක ලිපින භාවිතා කරන්න' යන්න තෝරා ඔබගේ ඇඩ්ගාර්ඩ් හෝම් සේවාදායක ලිපින ඇතුල් කරන්න.",
|
||||
"install_devices_macos_list_1": "ඇපල් නිරූපකය එබීමෙන් පසු පද්ධතියේ මනාප වෙත යන්න.",
|
||||
"install_devices_macos_list_1": "ඇපල් නිරූපකය එබීමෙන් පසු පද්ධතියේ අභිප්රේත වෙත යන්න.",
|
||||
"install_devices_macos_list_2": "ජාලය මත ඔබන්න.",
|
||||
"install_devices_macos_list_3": "ඔබගේ ලැයිස්තුවේ පළමු සම්බන්ධතාවය තෝරා වැඩිදුර යන්න ඔබන්න.",
|
||||
"install_devices_macos_list_4": "ව.නා.ප. (DNS) තීරුව තෝරා ඔබගේ ඇඩ්ගාර්ඩ් හෝම් සේවාදායක ලිපින ඇතුල් කරන්න.",
|
||||
"install_devices_android_list_1": "ඇන්ඩ්රොයිඩ් මෙනුවෙහි මුල් තිරයෙන්, සැකසීම් මත තට්ටු කරන්න.",
|
||||
"install_devices_android_list_2": "මෙනුවේ වයි-ෆයි මත තට්ටු කරන්න. පවතින සියලුම ජාල ලැයිස්තුගත කර ඇති තිරය පෙන්වනු ඇත (ජංගම සම්බන්ධතාවය සඳහා අභිරුචි ව.නා.ප. සැකසිය නොහැක).",
|
||||
"install_devices_android_list_1": "ඇන්ඩ්රොයිඩ් මුල් තිරයෙන්, සැකසුම් මත තට්ටු කරන්න.",
|
||||
"install_devices_android_list_2": "වට්ටෝරුවෙහි වයි-ෆයි මත තට්ටු කරන්න. පවතින සියළුම ජාල ලේඛන ගතවී තිබෙන තිරය පෙන්වනු ඇත (ජංගම සම්බන්ධතාවය සඳහා අභිරුචි ව.නා.ප. සැකසීමට නොහැකිය).",
|
||||
"install_devices_android_list_3": "සම්බන්ධිත ජාලය මත දිගු වේලාවක් ඔබන්න, ඉන්පසුව ජාලය වෙනස් කිරීම මත තට්ටු කරන්න.",
|
||||
"install_devices_android_list_4": "ඔබට සමහර උපාංගවල සියළු සැකසුම් බැලීමට \"වැඩිදුර\" සඳහා වූ කොටුව සලකුණු කිරීමට අවශ්ය විය හැකිය. එමෙන්ම ඔබගේ ඇන්ඩ්රොයිඩ් ව.නා.ප. (DNS) සැකසුම් වෙනස් කිරීමට අ.ජා.කෙ. (IP) සැකසුම්, ග.ධා.වි.කෙ. (DHCP) සිට ස්ථිතික වෙත මාරු කළ යුතුය.",
|
||||
"install_devices_android_list_5": "ව.නා.ප. 1 සහ ව.නා.ප. 2 පිහිටුවීම් අගයන් ඔබගේ ඇඩ්ගාර්ඩ් හෝම් සේවාදායක ලිපින වලට වෙනස් කරන්න.",
|
||||
@@ -328,22 +344,24 @@
|
||||
"encryption_config_saved": "සංකේතන වින්යාසය සුරකින ලදි",
|
||||
"encryption_server": "සේවාදායකයේ නම",
|
||||
"encryption_server_enter": "ඔබගේ වසම් නාමය ඇතුල් කරන්න",
|
||||
"encryption_server_desc": "සැකසා ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් අනුග්රාහක හැඳුනුම් හඳුනා ගැනෙයි, සෘ.ද.ඉ. (DDR) විමසුම්වලට ප්රතිචාර දක්වයි, සහ අතිරේක සම්බන්ධතා වලංගුකරණය සිදු කරයි. නොඑසේ නම්, මෙම විශේෂාංග අබලව ඇත. සහතිකයේ තිබෙන ව.නා.ප. නම් වලින් එකකට ගැළපිය යුතුය.",
|
||||
"encryption_redirect": "ස්වයංක්රීයව HTTPS වෙත හරවා යවන්න",
|
||||
"encryption_redirect_desc": "සබල කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් ඔබව ස්වයංක්රීයව HTTP සිට HTTPS ලිපින වෙත හරවා යවනු ඇත.",
|
||||
"encryption_https": "HTTPS තොට",
|
||||
"encryption_https_desc": "HTTPS තොට වින්යාසගත කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් පරිපාලක අතුරුමුහුණත HTTPS හරහා ප්රවේශ විය හැකි අතර එය '/dns-query' ස්ථානයේ HTTPS-හරහා-ව.නා.ප. ද ලබා දෙනු ඇත.",
|
||||
"encryption_dot": "TLS-හරහා-ව.නා.ප. තොට",
|
||||
"encryption_dot_desc": "මෙම තොට වින්යාසගත කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් මෙම කවුළුව හරහා TLS-හරහා-ව.නා.ප. සේවාදායකයක් ධාවනය කරනු ඇත.",
|
||||
"encryption_doq": "QUIC-හරහා-ව.නා.ප. තොට",
|
||||
"encryption_doq_desc": "මෙම තොට වින්යාසගත කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් මෙම තොට හරහා QUIC-හරහා-ව.නා.ප. සේවාදායකයක් ධාවනය කරනු ඇත. එය පරීක්ෂාත්මක වන අතර විශ්වාසදායක නොවිය හැකිය. එසේම, මේ වන විට එයට සහාය දක්වන බොහෝ අනුග්රාහක නැත.",
|
||||
"encryption_https_desc": "HTTPS තොට වින්යාසගත නම්, ඇඩ්ගාර්ඩ් හෝම් පරිපාලක අතුරුමුහුණත HTTPS හරහා ප්රවේශ විය හැකි අතර එය '/dns-query' ස්ථානයේ HTTPS-මගින්-ව.නා.ප. ද ලබා දෙනු ඇත.",
|
||||
"encryption_dot": "TLS-මගින්-ව.නා.ප. තොට",
|
||||
"encryption_dot_desc": "මෙම තොට වින්යාසගත නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් මෙම කවුළුව හරහා TLS-මගින්-ව.නා.ප. සේවාදායකයක් ධාවනය කෙරේ.",
|
||||
"encryption_doq": "QUIC-මගින්-ව.නා.ප. තොට",
|
||||
"encryption_doq_desc": "මෙම තොට වින්යාසගත නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් මෙම තොට හරහා QUIC-මගින්-ව.නා.ප. සේවාදායකයක් ධාවනය කෙරේ.",
|
||||
"encryption_certificates": "සහතික",
|
||||
"encryption_certificates_desc": "සංකේතනය භාවිතයට, ඔබගේ වසම සඳහා වලංගු SSL සහතික දාමයක් සැපයිය යුතුය. <0>{{link}}</0> වෙතින් නොමිලේ සහතිකයක් ලබා ගැනීමට හැකිය හෝ විශ්වාසදායක සහතික අධිකාරියකින් මිලදී ගන්න.",
|
||||
"encryption_certificates_input": "ඔබගේ PEM-කේතනය කළ සහතික පිටපත් කර මෙහි අලවන්න.",
|
||||
"encryption_status": "තත්වය",
|
||||
"encryption_expire": "කල් ඉකුත් වීම",
|
||||
"encryption_key": "පුද්ගලික යතුර",
|
||||
"encryption_key_input": "ඔබගේ සහතිකය සඳහා PEM-කේතනය කළ පුද්ගලික යතුර පිටපත් කර මෙහි අලවන්න.",
|
||||
"encryption_enable": "සංකේතනය සබල කරන්න (HTTPS, DNS-over-HTTPS සහ DNS-over-TLS)",
|
||||
"encryption_enable_desc": "සංකේතනය සබල කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් පරිපාලක අතුරුමුහුණත HTTPS හරහා ක්රියා කරනු ඇති අතර ව.නා.ප. සේවාදායකය DNS-over-HTTPS සහ DNS-over-TLS හරහා ලැබෙන ඉල්ලීම් සඳහා සවන් දෙනු ඇත.",
|
||||
"encryption_enable": "සංකේතනය සබල කරන්න (HTTPS, HTTPS-මගින්-ව.නා.ප. සහ TLS-මගින්-ව.නා.ප.)",
|
||||
"encryption_enable_desc": "සංකේතනය සබල කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් පරිපාලක අතුරුමුහුණත HTTPS හරහා ක්රියා කරනු ඇති අතර ව.නා.ප. සේවාදායකය HTTPS-මගින්-ව.නා.ප. සහ TLS-මගින්-ව.නා.ප. හරහා ලැබෙන ඉල්ලීම් සඳහා සවන් දෙනු ඇත.",
|
||||
"encryption_chain_valid": "සහතික දාමය වලංගු ය",
|
||||
"encryption_chain_invalid": "සහතික දාමය වලංගු නොවේ",
|
||||
"encryption_key_valid": "මෙය වලංගු {{type}} පුද්ගලික යතුරකි",
|
||||
@@ -383,6 +401,7 @@
|
||||
"client_edit": "අනුග්රාහකය සංස්කරණය",
|
||||
"client_identifier": "හඳුන්වනය",
|
||||
"ip_address": "අ.ජා.කෙ. ලිපිනය",
|
||||
"client_identifier_desc": "අ.ජා.කෙ. (IP) ලිපින, අන.ජා. (CIDR), මා.ප්ර.පා. (MAC) ලිපින හෝ අනුග්රාහක හැඳුනුමක් (DoT/DoH/DoQ සඳහා භාවිතා කළ හැකිය) මගින් අනුග්රාහක හඳුනාගත හැකිය. අනුග්රාහක හඳුනා ගන්නේ කෙසේද යන්න පිළිබඳව <0>මෙතැනින්</0> තව දැනගන්න.",
|
||||
"form_enter_ip": "අ.ජා.කෙ. (IP) ඇතුල් කරන්න",
|
||||
"form_enter_subnet_ip": "\"{{cidr}}\" අනුජාලයෙහි අ.ජා.කෙ. ලිපිනයක් යොදන්න.",
|
||||
"form_enter_mac": "මා.ප්ර.පා. (MAC) යොදන්න",
|
||||
@@ -401,25 +420,32 @@
|
||||
"access_title": "ප්රවේශවීමට සැකසුම්",
|
||||
"access_desc": "මෙහිදී ඔබට ඇඩ්ගාර්ඩ් හෝම් ව.නා.ප. සේවාදායකයට ප්රවේශ වීමේ නීති වින්යාසගත කළ හැකිය",
|
||||
"access_allowed_title": "ඉඩ ලත් අනුග්රාහකයින්",
|
||||
"access_allowed_desc": "CIDR හෝ අ.ජා. කෙ. ලිපින ලැයිස්තුවක් වින්යාසගත කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් එම අ.ජා. කෙ. ලිපින වලින් පමණක් ඉල්ලීම් පිළිගනු ඇත.",
|
||||
"access_allowed_desc": "අන.ජා.(CIDR), අ.ජා.කෙ. ලිපින හෝ <a>අනුග්රාහක හැඳු.</a> ලේඛනයකි. මෙහි නිවේශිත ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් එම අනුග්රාහක වලින් පමණක් ඉල්ලීම් පිළිගනු ඇත.",
|
||||
"access_disallowed_title": "නොඉඩ ලත් අනුග්රාහකයින්",
|
||||
"access_disallowed_desc": "CIDR හෝ අ.ජා. කෙ. ලිපින ලැයිස්තුවක් වින්යාසගත කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් එම අ.ජා. කෙ. ලිපින වලින් ඉල්ලීම් අත්හරිනු ඇත.",
|
||||
"access_disallowed_desc": "අන.ජා.(CIDR), අ.ජා.කෙ. ලිපින හෝ <a>අනුග්රාහක හැඳු.</a> ලේඛනයකි. මෙහි නිවේශිත ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් එම අනුග්රාහක වලින් ඉල්ලීම් අත්හරිනු ඇත. ඉඩ ලත් අනුග්රාහකවල නිවේශිත තිබේ නම්, මෙම ක්ෂේත්රය නොසලකා හරිනු ඇත.",
|
||||
"access_blocked_title": "නොඉඩ ලත් වසම්",
|
||||
"access_settings_saved": "ප්රවේශ වීමේ සැකසුම් සාර්ථකව සුරකින ලදි",
|
||||
"updates_checked": "යාවත්කාල සාර්ථකව පරික්ෂා කෙරිණි",
|
||||
"updates_checked": "ඇඩ්ගාර්ඩ් හෝම් හි නව අනුවාදයක් තිබේ",
|
||||
"updates_version_equal": "ඇඩ්ගාර්ඩ් හෝම් යාවත්කාලීනයි",
|
||||
"check_updates_now": "දැන් යාවත්කාල පරීක්ෂා කරන්න",
|
||||
"dns_privacy": "ව.නා.ප. රහස්යතා",
|
||||
"setup_dns_privacy_1": "<0>TLS-මගින්-ව.නා.ප.</0> සඳහා <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>HTTPS-මගින්-ව.නා.ප.</0> සඳහා <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_3": "<0>මෙහි ඔබට භාවිතා කළ හැකි මෘදුකාංග ලැයිස්තුවක් ඇත.</0>",
|
||||
"setup_dns_privacy_android_2": "<1>HTTPS-හරහා-ව.නා.ප.</1> සහ <1>TLS-හරහා-ව.නා.ප.</1> සඳහා <0>ඇන්ඩ්රොයිඩ් සඳහා ඇඩ්ගාර්ඩ්</0> සහාය දක්වයි.",
|
||||
"setup_dns_privacy_android_1": "TLS-මගින්-ව.නා.ප සහාය සමගම ඇන්ඩ්රොයිඩ් 9 පැමිණේ. එය වින්යාස කිරීමට, සැකසුම් → ජාලය හා අන්තර්ජාලය → වැඩිදුර → පෞද්. ව.නා.ප. වෙත ගොස් එහි ඔබගේ වසමේ නම යොදන්න.",
|
||||
"setup_dns_privacy_android_2": "<1>HTTPS-මගින්-ව.නා.ප.</1> හා <1>TLS-මගින්-ව.නා.ප.</1> සඳහා <0>ඇන්ඩ්රොයිඩ් සඳහා ඇඩ්ගාර්ඩ්</0> සහාය දක්වයි.",
|
||||
"setup_dns_privacy_android_3": "<0>ඉන්ට්රා</0> විසින් <1>HTTPS-මගින්-ව.නා.ප</1> සහාය ඇන්ඩ්රොයිඩ් සඳහා එකතු කරයි.",
|
||||
"setup_dns_privacy_ios_2": "<1>HTTPS-මගින්-ව.නා.ප.</1> හා <1>TLS-මගින්-ව.නා.ප.</1> සඳහා <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_1": "ඇඩ්ගාර්ඩ් හෝම් මෘදුකාංගයට ඕනෑම වේදිකාවක ආරක්ෂිත ව.නා.ප. අනුග්රාහකයක් ලෙස ක්රියාත්මක වීමට ද හැකිය.",
|
||||
"setup_dns_privacy_other_2": "<0>ව.නා.ප. ප්රතියුක්තය</0> දන්නා සියළුම ආරක්ෂිත ව.නා.ප. කෙටුම්පත් සඳහා සහාය දක්වයි.",
|
||||
"setup_dns_privacy_other_3": "<1>HTTPS-මගින්-ව.නා.ප.</1> සඳහා <0>dnscrypt-ප්රතියුක්තය</0> සහාය දක්වයි.",
|
||||
"setup_dns_privacy_other_4": "<1>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> කිරීමට ඇවැසිය.",
|
||||
"setup_dns_notice": "ඔබට <1>HTTPS-මගින්-ව.නා.ප.</1> හෝ <1>DNS-මගින්-ව.නා.ප.</1> භාවිතයට ඇඩ්ගාර්ඩ් හෝම් සැකසුම් තුළ <0>සංකේතනය වින්යාසගත</0> කළ යුතුය.",
|
||||
"rewrite_added": "\"{{key}}\" සඳහා ව.නා.ප. නැවත ලිවීම සාර්ථකව එකතු කෙරිණි",
|
||||
"rewrite_deleted": "\"{{key}}\" සඳහා ව.නා.ප. නැවත ලිවීම ඉවත් කෙරිණි",
|
||||
"rewrite_add": "ව.නා.ප. නැවත ලිවීමක් එකතු කරන්න",
|
||||
"rewrite_not_found": "ව.නා.ප. නැවත ලිවීම් හමු නොවිණි",
|
||||
"rewrite_confirm_delete": "\"{{key}}\" සඳහා ව.නා.ප. නැවත ලිවීම ඉවත් කිරීමට අවශ්ය බව ඔබට විශ්වාසද?",
|
||||
@@ -462,7 +488,7 @@
|
||||
"statistics_retention": "සංඛ්යාලේඛන රඳවා තබා ගැනීම",
|
||||
"statistics_retention_desc": "ඔබ කාල පරතරය අඩු කළහොත් සමහර දත්ත නැති වනු ඇත",
|
||||
"statistics_clear": "සංඛ්යාලේඛන හිස් කරන්න",
|
||||
"statistics_clear_confirm": "සංඛ්යාලේඛන ඉවත් කිරීමට අවශ්ය බව ඔබට විශ්වාස ද?",
|
||||
"statistics_clear_confirm": "සංඛ්යාලේඛන ඉවත් කිරීමට වුවමනා ද?",
|
||||
"statistics_retention_confirm": "සංඛ්යාලේඛන රඳවා තබා ගැනීම වෙනස් කිරීමට අවශ්ය බව ඔබට විශ්වාසද? ඔබ කාල පරතරයෙහි අගය අඩු කළහොත් සමහර දත්ත නැති වී යනු ඇත",
|
||||
"statistics_cleared": "සංඛ්යාලේඛන සාර්ථකව ඉවත් කෙරිණි",
|
||||
"statistics_enable": "සංඛ්යාලේඛන සබල කරන්න",
|
||||
@@ -531,6 +557,7 @@
|
||||
"list_updated": "ලැයිස්තු {{count}} ක් යාවත්කාල කෙරිණි",
|
||||
"list_updated_plural": "ලැයිස්තු {{count}} ක් යාවත්කාල කෙරිණි",
|
||||
"dnssec_enable": "DNSSEC සබල කරන්න",
|
||||
"validated_with_dnssec": "DNSSEC සමඟ වලංගු කෙරිණි",
|
||||
"all_queries": "සියළුම විමසුම්",
|
||||
"show_blocked_responses": "අවහිර කර ඇත",
|
||||
"show_whitelisted_responses": "ඉඩ දී ඇත",
|
||||
@@ -545,7 +572,7 @@
|
||||
"blocklist": "අවහිර කිරීමේ ලැයිස්තුව",
|
||||
"milliseconds_abbreviation": "මිලි තත්.",
|
||||
"cache_size": "නිහිතයෙහි ප්රමාණය",
|
||||
"cache_size_desc": "ව.නා.ප. නිහිතයෙහි ප්රමාණය (බයිට)",
|
||||
"cache_size_desc": "ව.නා.ප. නිහිතයෙහි ප්රමාණය (බයිට). නිහිතය අබල කිරීමට, හිස්ව තබන්න.",
|
||||
"cache_ttl_min_override": "අවම පව. කා. අභිබවන්න",
|
||||
"cache_ttl_max_override": "උපරිම පව. කා. අභිබවන්න",
|
||||
"enter_cache_size": "ව.නා.ප. නිහිතයෙහි ප්රමාණය යොදන්න (බයිට)",
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Nastavenia DHCP IPv6",
|
||||
"form_error_required": "Povinná položka.",
|
||||
"form_error_ip4_format": "Neplatná IPv4 adresa",
|
||||
"form_error_ip4_range_start_format": "Neplatný začiatok rozsahu IPv4 formátu",
|
||||
"form_error_ip4_range_end_format": "Neplatný koniec rozsahu IPv4 formátu",
|
||||
"form_error_ip4_gateway_format": "Neplatná IPv4 adresa brány",
|
||||
"form_error_ip6_format": "Neplatná IPv6 adresa",
|
||||
"form_error_ip_format": "Neplatná IP adresa",
|
||||
@@ -47,10 +45,10 @@
|
||||
"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_gateway_ip": "Prenájom nemôže mať IP adresu brány",
|
||||
"out_of_range_error": "Musí byť mimo rozsahu \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Musí byť nižšie ako začiatok rozsahu",
|
||||
"greater_range_start_error": "Musí byť väčšie ako začiatok rozsahu",
|
||||
"greater_range_end_error": "Musí byť väčšie ako koniec rozsahu",
|
||||
"subnet_error": "Adresy musia byť v spoločnej podsieti",
|
||||
"gateway_or_subnet_invalid": "Maska podsiete je neplatná",
|
||||
"dhcp_form_gateway_input": "IP brána",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Zapnutá Rodičovská kontrola",
|
||||
"disabled_safe_search_toast": "Vypnuté Bezpečné vyhľadávanie",
|
||||
"enabled_save_search_toast": "Zapnuté Bezpečné vyhľadávanie",
|
||||
"updated_save_search_toast": "Nastavenia Bezpečného vyhľadávania boli aktualizované",
|
||||
"enabled_table_header": "Zapnuté",
|
||||
"name_table_header": "Meno",
|
||||
"list_url_table_header": "Zoznam URL adries",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Tiež komentár.",
|
||||
"example_regex_meaning": "zablokovať prístup k doménam zodpovedajúcim zadanému regulárnemu výrazu.",
|
||||
"example_upstream_regular": "obyčajná DNS (cez UDP);",
|
||||
"example_upstream_regular_port": "bežný DNS (cez UDP, s portom);",
|
||||
"example_upstream_udp": "štandardné DNS (cez UDP, hostname);",
|
||||
"example_upstream_dot": "šifrované <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "šifrované <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "šifrované DNS-over-HTTPS s vynúteným <0>HTTP/3</0> a bez spätného prechodu na HTTP/2 alebo nižšie;",
|
||||
"example_upstream_doq": "šifrované <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS pečiatky</0> pre <1>DNSCrypt</1> alebo <2>DNS-over-HTTPS</2> rezolvery;",
|
||||
"example_upstream_tcp": "obyčajná DNS (cez TCP);",
|
||||
"example_upstream_tcp_port": "bežný DNS (cez TCP, s portom);",
|
||||
"example_upstream_tcp_hostname": "štandardné DNS (cez TCP, hostname);",
|
||||
"all_lists_up_to_date_toast": "Všetky zoznamy sú už aktuálne",
|
||||
"updated_upstream_dns_toast": "Upstream servery boli úspešne uložené",
|
||||
"dns_test_ok_toast": "Špecifikované DNS servery pracujú korektne",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": nemohol byť použitý, skontrolujte, či ste ho správne napísali",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" neodpovedá na testovacie dopyty a nemusí fungovať správne",
|
||||
"unblock": "Odblokovať",
|
||||
"block": "Blokovať",
|
||||
"disallow_this_client": "Zablokovať tohto klienta",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Denník dopytov bol úspešne vymazaný",
|
||||
"query_log_updated": "Denník dopytov bol úspešne aktualizovaný",
|
||||
"query_log_clear": "Vymazať denníky dopytov",
|
||||
"query_log_retention": "Obdobie záznamu denníka dopytov",
|
||||
"query_log_retention": "Rotácia denníkov dopytov",
|
||||
"query_log_enable": "Zapnúť denník",
|
||||
"query_log_configuration": "Konfigurácia denníka",
|
||||
"query_log_disabled": "Protokol dopytov je vypnutý a možno ho nakonfigurovať v <0>nastaveniach</0>",
|
||||
"query_log_strict_search": "Na prísne vyhľadávanie použite dvojité úvodzovky",
|
||||
"query_log_retention_confirm": "Naozaj chcete zmeniť uchovávanie denníku dopytov? Ak znížite hodnotu intervalu, niektoré údaje sa stratia",
|
||||
"query_log_retention_confirm": "Naozaj chcete zmeniť rotáciu denníka dopytov? Ak znížite hodnotu intervalu, niektoré údaje sa stratia",
|
||||
"anonymize_client_ip": "Anonymizujte IP klienta",
|
||||
"anonymize_client_ip_desc": "Neukladať úplnú IP adresu klienta do protokolov a štatistík",
|
||||
"dns_config": "Konfigurácia DNS servera",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Rýchlostný limit",
|
||||
"edns_enable": "Povoliť klientsku podsiete EDNS",
|
||||
"edns_cs_desc": "Pridáva možnosť EDNS Client Subnet (ECS) do upstream požiadaviek a zapíše hodnoty odoslané klientmi do denníka dopytov.",
|
||||
"edns_use_custom_ip": "Použiť vlastnú IP adresu pre EDNS",
|
||||
"edns_use_custom_ip_desc": "Povoliť používanie vlastnej IP adresy pre EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Odpovedať kódom NXDOMAIN",
|
||||
"blocking_mode_null_ip": "Null IP: Odpoveď s nulovou IP adresou (0.0.0.0 pre A; :: pre AAAA)",
|
||||
"blocking_mode_custom_ip": "Vlastná IP adresa: Odpovedzte s manuálne nastavenou IP adresou",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Svetlá",
|
||||
"theme_dark": "Tmavá",
|
||||
"upstream_dns_client_desc": "Ak ponecháte toto pole prázdne, AdGuard Home použije servery nakonfigurované v <0>nastaveniach DNS</0>.",
|
||||
"tracker_source": "Zdroj sledovania",
|
||||
"source_label": "Zdroj",
|
||||
@@ -362,7 +370,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_server_desc": "Ak je nastavené, AdGuard Home zisťuje ClientID, odpovedá na dotazy DDR a vykonáva ďalšie overenia pripojenia. Ak nie je nastavená, tieto funkcie sú vypnuté. Musí sa zhodovať s jedným z názvov DNS v certifikáte.",
|
||||
"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",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Vydavateľ",
|
||||
"encryption_hostnames": "Názvy hostiteľov",
|
||||
"encryption_reset": "Naozaj chcete obnoviť nastavenia šifrovania?",
|
||||
"encryption_warning": "Varovanie",
|
||||
"topline_expiring_certificate": "Váš SSL certifikát čoskoro vyprší. Aktualizujte <0>Nastavenia šifrovania</0>.",
|
||||
"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",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Nepovolené domény",
|
||||
"access_blocked_desc": "Nesmie byť zamieňaná s filtrami. AdGuard Home zruší DNS dopyty, ktoré sa zhodujú s týmito doménami, a tieto dopyty sa nezobrazia ani v denníku dopytov. Môžete určiť presné názvy domén, zástupné znaky alebo pravidlá filtrovania URL adries, napr. \"example.org\", \"*.example.org\" alebo ||example.org^\" zodpovedajúcim spôsobom.",
|
||||
"access_settings_saved": "Nastavenia prístupu úspešne uložené",
|
||||
"updates_checked": "Aktualizácie úspešne skontrolované",
|
||||
"updates_checked": "K dispozícii je nová verzia aplikácie AdGuard Home\n",
|
||||
"updates_version_equal": "AdGuard Home je aktuálny",
|
||||
"check_updates_now": "Skontrolovať aktualizácie teraz",
|
||||
"version_request_error": "Kontrola aktualizácie zlyhala. Skontrolujte svoje internetové pripojenie.",
|
||||
"dns_privacy": "DNS súkromie",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Použiť <1>{{address}}</1> reťazec.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Použiť <1>{{address}}</1> reťazec.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Naozaj chcete zmeniť uchovávanie štatistík? Ak znížite hodnotu intervalu, niektoré údaje sa stratia",
|
||||
"statistics_cleared": "Štatistika bola úspešne vynulovaná",
|
||||
"statistics_enable": "Zapnúť štatistiku",
|
||||
"ignore_domains": "Ignorované domény (oddelené novým riadkom)",
|
||||
"ignore_domains_title": "Ignorované domény",
|
||||
"ignore_domains_desc_stats": "Dopyty pre tieto domény sa nezapisujú do štatistík",
|
||||
"ignore_domains_desc_query": "Dopyty pre tieto domény sa nezapisujú do denníka dopytov",
|
||||
"interval_hours": "{{count}} hodina",
|
||||
"interval_hours_plural": "{{count}} hodín",
|
||||
"filters_configuration": "Konfigurácia filtrov",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Zoznam blokovaní",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Veľkosť cache",
|
||||
"cache_size_desc": "Veľkosť DNS cache (v bajtoch)",
|
||||
"cache_size_desc": "Veľkosť vyrovnávacej pamäte DNS (v bajtoch). Ak chcete zakázať ukladanie do vyrovnávacej pamäte, ponechajte pole prázdne.",
|
||||
"cache_ttl_min_override": "Prepísať minimálne TTL",
|
||||
"cache_ttl_max_override": "Prepísať maximálne TTL",
|
||||
"enter_cache_size": "Zadať veľkosť cache (v bajtoch)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Rodičovská kontrola",
|
||||
"safe_browsing": "Bezpečné prehliadanie",
|
||||
"served_from_cache": "{{value}} <i>(prevzatá z cache pamäte)</i>",
|
||||
"form_error_password_length": "Heslo musí mať dĺžku aspoň {{value}} znakov"
|
||||
"form_error_password_length": "Heslo musí mať dĺžku aspoň {{value}} znakov",
|
||||
"anonymizer_notification": "<0>Poznámka:</0> Anonymizácia IP je zapnutá. Môžete ju vypnúť vo <1>Všeobecných nastaveniach</1>.",
|
||||
"confirm_dns_cache_clear": "Naozaj chcete vymazať vyrovnávaciu pamäť DNS?",
|
||||
"cache_cleared": "Vyrovnávacia pamäť DNS bola úspešne vymazaná",
|
||||
"clear_cache": "Vymazať vyrovnávaciu pamäť",
|
||||
"make_static": "Vytvárať štatistiku",
|
||||
"theme_auto_desc": "Automaticky (na základe farebnej schémy Vášho zariadenia)",
|
||||
"theme_dark_desc": "Tmavá téma",
|
||||
"theme_light_desc": "Svetlá téma",
|
||||
"disable_for_seconds": "Na {{count}} sekundu",
|
||||
"disable_for_seconds_plural": "Na {{count}} sekúnd",
|
||||
"disable_for_minutes": "Na {{count}} minútu",
|
||||
"disable_for_minutes_plural": "Na {{count}} minút",
|
||||
"disable_for_hours": "Na {{count}} hodinu",
|
||||
"disable_for_hours_plural": "Na {{count}} hodín",
|
||||
"disable_until_tomorrow": "Do zajtra",
|
||||
"disable_notify_for_seconds": "Vypnite ochranu na {{count}} sekundu",
|
||||
"disable_notify_for_seconds_plural": "Vypnite ochranu na {{count}} sekúnd",
|
||||
"disable_notify_for_minutes": "Vypnite ochranu na {{count}} minútu",
|
||||
"disable_notify_for_minutes_plural": "Vypnite ochranu na {{count}} minút",
|
||||
"disable_notify_for_hours": "Vypnite ochranu na {{count}} hodinu",
|
||||
"disable_notify_for_hours_plural": "Vypnite ochranu na {{count}} hodín",
|
||||
"disable_notify_until_tomorrow": "Vypnúť ochranu do zajtra",
|
||||
"enable_protection_timer": "Ochrana bude zapnutá o {{time}}",
|
||||
"custom_retention_input": "Zadajte retenciu v hodinách",
|
||||
"custom_rotation_input": "Zadajte rotáciu v hodinách",
|
||||
"protection_section_label": "Ochrana",
|
||||
"log_and_stats_section_label": "Protokol dopytov a štatistiky",
|
||||
"ignore_query_log": "Ignorovať tohto klienta v denníku dopytov",
|
||||
"ignore_statistics": "Ignorovanie tohto klienta v štatistikách"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Nastavitve DHCP IPv6",
|
||||
"form_error_required": "Zahtevano polje.",
|
||||
"form_error_ip4_format": "Neveljaven naslov IPv4.",
|
||||
"form_error_ip4_range_start_format": "Neveljaven začetek razpona naslova IPv4",
|
||||
"form_error_ip4_range_end_format": "Neveljaven konec razpona naslova IPv4",
|
||||
"form_error_ip4_gateway_format": "Neveljaven naslov IPv4 prehoda",
|
||||
"form_error_ip6_format": "Neveljaven naslov IPv6",
|
||||
"form_error_ip_format": "Neveljaven naslov IP",
|
||||
@@ -47,10 +45,10 @@
|
||||
"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_gateway_ip": "Najem ne more imeti naslova IP prehoda",
|
||||
"out_of_range_error": "Mora biti izven razpona \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Mora biti manjši od začetka razpona",
|
||||
"greater_range_start_error": "Mora biti večji od začetka razpona",
|
||||
"greater_range_end_error": "Mora biti večji od konca razpona",
|
||||
"subnet_error": "Naslovi morajo biti v enem podomrežju",
|
||||
"gateway_or_subnet_invalid": "Maska podomrežja ni veljavna",
|
||||
"dhcp_form_gateway_input": "IP prehoda",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "Omogočen starševski nadzor",
|
||||
"disabled_safe_search_toast": "Onemogočeno Varno iskanje",
|
||||
"enabled_save_search_toast": "Omogočeno Varno iskanje",
|
||||
"updated_save_search_toast": "Nastavitve varnega iskanja so posodobljene",
|
||||
"enabled_table_header": "Omogočeno",
|
||||
"name_table_header": "Ime",
|
||||
"list_url_table_header": "Seznam URL naslovov",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Tudi komentar.",
|
||||
"example_regex_meaning": "onemogoča dostop do domen, ki se ujemajo z določenim regularnim izrazom.",
|
||||
"example_upstream_regular": "redni DNS (nad UDP);",
|
||||
"example_upstream_regular_port": "redni DNS (nad UDP, z vrati);",
|
||||
"example_upstream_udp": "redni DNS (nad UDP, ime gostitelja);",
|
||||
"example_upstream_dot": "šifriran <0>DNS-prek-TLS</0>;",
|
||||
"example_upstream_doh": "šifriran <0>DNS-prek-HTTPS</0>;",
|
||||
"example_upstream_doh3": "šifriran DNS prek HTTPS s prisilnim <0>HTTP/3</0> in brez povratne možnosti za HTTP/2 ali nižjim;",
|
||||
"example_upstream_doq": "šifriran <0>DNS-prek-QUIC</0>;",
|
||||
"example_upstream_sdns": "lahko uporabite <0>DNS Žige</0> za reševalce <1>DNSCrypt</1> ali <2>DNS-prek-HTTPS</2>;",
|
||||
"example_upstream_tcp": "redni DNS (nad TCP);",
|
||||
"example_upstream_tcp_port": "redni DNS (nad TCP, z vrati);",
|
||||
"example_upstream_tcp_hostname": "redni DNS (nad TCP, ime gostitelja);",
|
||||
"all_lists_up_to_date_toast": "Vsi seznami so že posodobljeni",
|
||||
"updated_upstream_dns_toast": "Gorvodni trežniki so uspešno shranjeni",
|
||||
"dns_test_ok_toast": "Navedeni strežniki DNS delujejo pravilno",
|
||||
"dns_test_not_ok_toast": "Ni mogoče uporabiti: strežnika \"{{key}}\". Preverite, ali ste ga pravilno napisali",
|
||||
"dns_test_warning_toast": "Upstream \"{{key}}\" se ne odziva na testne zahteve in morda ne deluje pravilno",
|
||||
"unblock": "Omogoči",
|
||||
"block": "Onemogoči",
|
||||
"disallow_this_client": "Onemogoči tega odjemalca",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Dnevnik poizvedb je uspešno izbrisan",
|
||||
"query_log_updated": "Dnevnik poizvedb je bil uspešno posodobljen",
|
||||
"query_log_clear": "Počisti dnevnike poizvedb",
|
||||
"query_log_retention": "Zadrževanje dnevnikov poizvedb",
|
||||
"query_log_retention": "Rotacija dnevnikov poizvedb",
|
||||
"query_log_enable": "Omogoči dnevni",
|
||||
"query_log_configuration": "Konfiguracija dnevnikov",
|
||||
"query_log_disabled": "Dnevnik poizvedb je onemogočen in ga je mogoče konfigurirati v <0>nastavitvah</0>",
|
||||
"query_log_strict_search": "Za strogo iskanje uporabite dvojne narekovaje",
|
||||
"query_log_retention_confirm": "Ali ste prepričani, da želite spremeniti zadrževanje dnevnika poizvedb? Če zmanjšate vrednost intervala, bodo nekateri podatki izgubljeni",
|
||||
"query_log_retention_confirm": "Ali ste prepričani, da želite spremeniti rotacijo dnevnika poizvedb? Če zmanjšate vrednost intervala, bodo nekateri podatki izgubljeni",
|
||||
"anonymize_client_ip": "Anonimiziraj odjemalca IP",
|
||||
"anonymize_client_ip_desc": "Ne shrani celotnega naslova IP odjemalca v dnevnikih ali statistiki",
|
||||
"dns_config": "Konfiguracija strežnika DNS",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Omejitev hitrosti",
|
||||
"edns_enable": "Omogoči odjemalsko podomrežje EDNS",
|
||||
"edns_cs_desc": "Dodaj možnost podomrežja odjemalca EDNS (ECS) zahtevam v gorvodnem toku in zabeleži vrednosti, ki jih pošljejo odjemalci, v dnevnik poizvedb.",
|
||||
"edns_use_custom_ip": "Uporabi IP po meri za EDNS",
|
||||
"edns_use_custom_ip_desc": "Dovoli uporabo naslova IP po meri za EDNS",
|
||||
"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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Odziv s kodo NXDOMAIN",
|
||||
"blocking_mode_null_ip": "Prazen IP: Odziv z ničelnim naslovom IP (0.0.0.0 za A; :: za AAAA)",
|
||||
"blocking_mode_custom_ip": "IP po meri: Odziv z ročno nastavljenim naslovom IP",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Svetla tema",
|
||||
"theme_dark": "Temna tema",
|
||||
"upstream_dns_client_desc": "Če pustite to polje prazno, bo AdGuard Home uporabil strežnike, konfigurirane v <0>nastavitvah DNS</0>.",
|
||||
"tracker_source": "Vir sledilca",
|
||||
"source_label": "Vir",
|
||||
@@ -362,7 +370,7 @@
|
||||
"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",
|
||||
"encryption_server_desc": "Če je nastavljeno, AdGuard Home zazna ClientID-je, odgovori na poizvedbe DDR in izvede dodatna preverjanja povezave. Če ni nastavljeno, so te funkcije onemogočene. Ujemati se mora z enim od imen DNS v potrdilu.",
|
||||
"encryption_redirect": "Samodejno preusmeri na HTTPS",
|
||||
"encryption_redirect_desc": "Če je označeno, vas bo AdGuard Home samodejno preusmeril iz naslovov HTTP na naslove HTTPS.",
|
||||
"encryption_https": "Vrata HTTPS",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Izdajatelj",
|
||||
"encryption_hostnames": "Imena gostiteljev",
|
||||
"encryption_reset": "Ali ste prepričani, da želite ponastaviti nastavitve šifriranja?",
|
||||
"encryption_warning": "Opozorilo",
|
||||
"topline_expiring_certificate": "Vaš e digitalno potrdilo SSL bo kmalu poteklol. Posodobite <0>Nastavitve šifriranja</0>.",
|
||||
"topline_expired_certificate": "Vaše digitalno potrdilo SSL je poteklo. Posodobi <0>Nastavitve šifriranja</0>.",
|
||||
"form_error_port_range": "Vnesite številko vrat v razponu med 80-65535",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "Prepovedane domene",
|
||||
"access_blocked_desc": "Ne gre zamenjati s filtri. AdGuard Home spusti poizvedbe DNS, ki se ujemajo s temi domenami, in te poizvedbe se niti ne pojavijo v dnevniku poizvedb. Določite lahko natančna imena domen, nadomestne znake ali pravila filtriranja URL-jev, npr. ustrezno \"example.org\", \"*.example.org\" ali \"|| example.org ^\".",
|
||||
"access_settings_saved": "Nastavitve dostopa so uspešno shranjene",
|
||||
"updates_checked": "Posodobitve so uspešno preverjene",
|
||||
"updates_checked": "Na voljo je nova različica programa AdGuard Home\n",
|
||||
"updates_version_equal": "AdGuard Home je posodobljen",
|
||||
"check_updates_now": "Preveri obstoj posodobitev zdaj",
|
||||
"version_request_error": "Posodobitev ni uspela. Preverite vašo internetno povezavo.",
|
||||
"dns_privacy": "Zasebnost DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-prek-TLS:</0> Uporabite niz <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-prek-HTTPS:</0> Uporabite niz <1>{{address}}</1>.",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "Ali ste prepričani, da želite spremeniti zadrževanje statistike? Če zmanjšate vrednost intervala, bodo nekateri podatki izgubljeni",
|
||||
"statistics_cleared": "Statistika je bila uspešno počiščena",
|
||||
"statistics_enable": "Omogoči statistiko",
|
||||
"ignore_domains": "Prezrte domene (ločene z novo vrstico)",
|
||||
"ignore_domains_title": "Prezrte domene",
|
||||
"ignore_domains_desc_stats": "Poizvedbe za te domene niso zapisane v statistiko",
|
||||
"ignore_domains_desc_query": "Poizvedbe za te domene niso zapisane v dnevnik poizvedb",
|
||||
"interval_hours": "{{count}} ur",
|
||||
"interval_hours_plural": "{{count}} ur",
|
||||
"filters_configuration": "Nastavitve filtrov",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Seznam nedovoljenih",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Velikost predpomnilnika",
|
||||
"cache_size_desc": "Velikost predpomnilnika DNS (v bajtih).",
|
||||
"cache_size_desc": "Velikost predpomnilnika DNS (v bajtih). Če želite onemogočiti predpomnjenje, pustite prazno.",
|
||||
"cache_ttl_min_override": "Preglasi najmanjši TTL",
|
||||
"cache_ttl_max_override": "Preglasi največji TTL",
|
||||
"enter_cache_size": "Vnesite velikost predpomnilnika (v bajtih)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Starševski nadzor",
|
||||
"safe_browsing": "Varno brskanje",
|
||||
"served_from_cache": "{{value}} <i>(postreženo iz predpomnilnika)</i>",
|
||||
"form_error_password_length": "Geslo mora vsebovati najmanj {{value}} znakov"
|
||||
"form_error_password_length": "Geslo mora vsebovati najmanj {{value}} znakov",
|
||||
"anonymizer_notification": "<0>Opomba:</0> Anonimizacija IP je omogočena. Onemogočite ga lahko v <1>Splošnih nastavitvah</1>.",
|
||||
"confirm_dns_cache_clear": "Ali ste prepričani, da želite počistiti predpomnilnik DNS?",
|
||||
"cache_cleared": "Predpomnilnik DNS je bil uspešno počiščen",
|
||||
"clear_cache": "Počisti predpomnilnik",
|
||||
"make_static": "Naredi statično",
|
||||
"theme_auto_desc": "Samodejno (glede na barvno shemo vaše naprave)",
|
||||
"theme_dark_desc": "Temna tema",
|
||||
"theme_light_desc": "Svetla tema",
|
||||
"disable_for_seconds": "Za {{count}} sekundo",
|
||||
"disable_for_seconds_plural": "Za {{count}} sekund",
|
||||
"disable_for_minutes": "Za {{count}} minuto",
|
||||
"disable_for_minutes_plural": "Za {{count}} minut",
|
||||
"disable_for_hours": "Za {{count}} uro",
|
||||
"disable_for_hours_plural": "Za {{count}} ur",
|
||||
"disable_until_tomorrow": "Do jutri",
|
||||
"disable_notify_for_seconds": "Onemogoči zaščito za {{count}} sekundo",
|
||||
"disable_notify_for_seconds_plural": "Onemogoči zaščito za {{count}} sekund",
|
||||
"disable_notify_for_minutes": "Onemogoči zaščito za {{count}} minuto",
|
||||
"disable_notify_for_minutes_plural": "Onemogoči zaščito za {{count}} minut",
|
||||
"disable_notify_for_hours": "Onemogoči zaščito za {{count}} uro",
|
||||
"disable_notify_for_hours_plural": "Onemogoči zaščito za {{count}} ur",
|
||||
"disable_notify_until_tomorrow": "Onemogoči zaščito do jutri",
|
||||
"enable_protection_timer": "Zaščita bo omogočena ob {{time}}",
|
||||
"custom_retention_input": "Vnesite zadrževanje v urah",
|
||||
"custom_rotation_input": "Vnesite rotacijo v urah",
|
||||
"protection_section_label": "Zaščita",
|
||||
"log_and_stats_section_label": "Dnevnik poizvedb in statistika",
|
||||
"ignore_query_log": "Ignorirajte tega odjemalca v dnevniku poizvedb",
|
||||
"ignore_statistics": "Ignoriranje tega odjemalca v statistiki"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 postavke",
|
||||
"form_error_required": "Obavezno polje",
|
||||
"form_error_ip4_format": "Nevažeća IPv4 adresa",
|
||||
"form_error_ip4_range_start_format": "Nevažeća IPv4 addresa početnog opsega",
|
||||
"form_error_ip4_range_end_format": "Nevažeća IPv4 addresa završnog opsega",
|
||||
"form_error_ip4_gateway_format": "Nevažeća IPv4 addresa prozala",
|
||||
"form_error_ip6_format": "Nevažeća IPv6 adresa",
|
||||
"form_error_ip_format": "Nevažeća IP adresa",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "Nevažeće ime servera",
|
||||
"form_error_subnet": "Subnet \"{{cidr}}\" ne sadrži IP adresu \"{{ip}}\"",
|
||||
"form_error_positive": "Mora biti veće od 0",
|
||||
"form_error_gateway_ip": "Zakup ne može imati IP adresu mrežnog prolaza",
|
||||
"out_of_range_error": "Mora biti izvan opsega \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Mora biti manje od početnog opsega",
|
||||
"greater_range_start_error": "Mora biti veće od početnog opsega",
|
||||
"greater_range_end_error": "Mora biti veće od završnog opsega",
|
||||
"subnet_error": "Asrese moraju biti u jednoj subnet",
|
||||
"gateway_or_subnet_invalid": "Subnet mask nevažeća",
|
||||
"dhcp_form_gateway_input": "IP mrežnog prolaza",
|
||||
@@ -210,17 +208,21 @@
|
||||
"example_comment_hash": "# Takođe komentar.",
|
||||
"example_regex_meaning": "blokiranje pristupa domenima koji odgovaraju određenom uobičajenom izrazu.",
|
||||
"example_upstream_regular": "uobičajeno DNS (preko UDP);",
|
||||
"example_upstream_regular_port": "uobičajen DNS (preko UDP, sa portom);",
|
||||
"example_upstream_udp": "uobičajen DNS (preko UDP, imena domaćina);",
|
||||
"example_upstream_dot": "šifrovano <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "šifrovano <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "šifrovani DNS-over-HTTPS sa prinudnim <0>HTTP/3</0> bez povratka na HTTP/2 ili ispod;",
|
||||
"example_upstream_doq": "šifrovano <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<0>DNS brojeve</0> za <1>DNSCrypt</1> ili <2>DNS-over-HTTPS</2> razrešivače;",
|
||||
"example_upstream_tcp": "uobičajeni DNS (preko TCP);",
|
||||
"example_upstream_tcp_port": "uobičajen DNS (preko TCP, sa portom);",
|
||||
"example_upstream_tcp_hostname": "uobičajen DNS (preko TCP, imena domaćina);",
|
||||
"all_lists_up_to_date_toast": "Sve liste su već ažurirane",
|
||||
"updated_upstream_dns_toast": "Upstream serveri su uspešno sačuvani",
|
||||
"dns_test_ok_toast": "Dati DNS serveri rade ispravno",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": se ne može koristiti. Proverite da li ste ga ispravno uneli",
|
||||
"dns_test_warning_toast": "Apstrim \"{{key}}\" ne odgovara na zahteve za testiranje i možda neće raditi kako treba",
|
||||
"unblock": "Odblokiraj",
|
||||
"block": "Blokiraj",
|
||||
"disallow_this_client": "Zabrani ovaj klijent",
|
||||
@@ -296,6 +298,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Odgovara sa NXDOMAIN kodom",
|
||||
"blocking_mode_null_ip": "Null IP: Odgovara sa zero IP adresom (0.0.0.0 za A; :: za AAAA)",
|
||||
"blocking_mode_custom_ip": "Prilagođeni IP: Odgovara sa ručno podešenom IP adresom",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Svetla tema",
|
||||
"theme_dark": "Tamna tema",
|
||||
"upstream_dns_client_desc": "AKo ovo polje ostavite prazno, AdGuard Home će koristiti servere konfigurisane u <0>DNS postavkama</0>.",
|
||||
"tracker_source": "Izvor praćenja",
|
||||
"source_label": "Izvor",
|
||||
@@ -362,7 +367,7 @@
|
||||
"encryption_config_saved": "Konfiguracija šifrovanja je sačuvana",
|
||||
"encryption_server": "Ime servera",
|
||||
"encryption_server_enter": "Unesite vaše ime domena",
|
||||
"encryption_server_desc": "Da biste koristili HTTPS, potrebno je da unesete ime servera koje se podudara sa SSL certifikatom ili džoker certifikatom. Ako polje nije postavljeno, prihvatiće TLS veze za bilo koji domen.",
|
||||
"encryption_server_desc": "Ako je podešen, AdGuard Home otkriva ID-ove klijenta, odgovara na DDR upite i izvršava dodatne provere valjanosti veze. Ako se ne postave, ove funkcije su onemogućene. Mora se podudarati sa DNS imenima u certifikatu.",
|
||||
"encryption_redirect": "Automatski preusmeri na HTTPS",
|
||||
"encryption_redirect_desc": "Ako je označeno, AdGuard Home će vas automatski preusmeravati sa HTTP na HTTPS adrese.",
|
||||
"encryption_https": "HTTPS port",
|
||||
@@ -388,6 +393,7 @@
|
||||
"encryption_issuer": "Izdavač",
|
||||
"encryption_hostnames": "Imena hostova",
|
||||
"encryption_reset": "Jeste li sigurni da želite dda resetujete postavke šifrovanja?",
|
||||
"encryption_warning": "Upozorenje",
|
||||
"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",
|
||||
@@ -445,9 +451,10 @@
|
||||
"access_blocked_title": "Blokirani domeni",
|
||||
"access_blocked_desc": "Da ne bude zabune sa filterima. AdGuard Home odustaje od DNS upita koji se podudaraju sa ovim domenima, a ovi upiti se čak i ne pojavljuju u evidenciji upita. Možete da navedete tačna imena domena, džoker znakove ili pravila URL filtera, npr. \"example.org\", \"*.example.org\" ili \"|| example.org^\" dopisno.",
|
||||
"access_settings_saved": "Postavke pristupa su uspešno sačuvane",
|
||||
"updates_checked": "Ažuriranja su uspešno proverena",
|
||||
"updates_checked": "Dostupna je nova verzija AdGuard Home-a",
|
||||
"updates_version_equal": "AdGuard Home je ažuriran na najnoviju verziju",
|
||||
"check_updates_now": "Proveri da li postoje ispravke",
|
||||
"version_request_error": "Provera ažuriranja nije uspela. Proverite svoju vezu sa internetom.",
|
||||
"dns_privacy": "DNS privatnost",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> koristi <1>{{address}}</1> string.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> koristi <1>{{address}}</1> string.",
|
||||
@@ -601,7 +608,7 @@
|
||||
"blocklist": "Lista blokiranih",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Veličina predmemorije",
|
||||
"cache_size_desc": "Veličina DNS predmemorije (u bitovima).",
|
||||
"cache_size_desc": "Veličina DNS keša (u bajtovima). Da biste onemogućili keširanje, ostavite prazno.",
|
||||
"cache_ttl_min_override": "Prepiši najmanji TTL",
|
||||
"cache_ttl_max_override": "Prepiši najveći TTL",
|
||||
"enter_cache_size": "Unesite veličinu predmemorije",
|
||||
@@ -631,5 +638,10 @@
|
||||
"parental_control": "Roditeljska kontrola",
|
||||
"safe_browsing": "Sigurno pregledanje",
|
||||
"served_from_cache": "{{value}} <i>(posluženo iz predmemorije)</i>",
|
||||
"form_error_password_length": "Lozinka mora imati najmanje {{value}} znakova"
|
||||
"form_error_password_length": "Lozinka mora imati najmanje {{value}} znakova",
|
||||
"anonymizer_notification": "<0>Nota:</0> IP prepoznavanje je omogućeno. Možete ga onemogućiti u opštim <1>postavkama</1>.",
|
||||
"confirm_dns_cache_clear": "Želite li zaista da obrišite DNS keš?",
|
||||
"cache_cleared": "DNS keš je uspešno očišćen",
|
||||
"clear_cache": "Obriši keš memoriju",
|
||||
"protection_section_label": "Zaštita"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 inställningar",
|
||||
"form_error_required": "Obligatoriskt fält",
|
||||
"form_error_ip4_format": "Ogiltig IPv4-adress",
|
||||
"form_error_ip4_range_start_format": "Ogiltig IPv4-adress för starten av intervallet",
|
||||
"form_error_ip4_range_end_format": "Ogiltig IPv4-adress för slutet av intervallet",
|
||||
"form_error_ip4_gateway_format": "Ogiltig IPv4 adress för gatewayen",
|
||||
"form_error_ip6_format": "Ogiltig IPv6-adress",
|
||||
"form_error_ip_format": "Ogiltig IP-adress",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "Ogiltigt servernamn",
|
||||
"form_error_subnet": "Subnätet \"{{cidr}}\" innehåller inte IP-adressen \"{{ip}}\"",
|
||||
"form_error_positive": "Måste vara större än noll",
|
||||
"form_error_gateway_ip": "Lease kan inte ha IP-adressen för gatewayen",
|
||||
"out_of_range_error": "Måste vara utanför intervallet \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Måste vara lägre än starten på intervallet",
|
||||
"greater_range_start_error": "Måste vara högre än starten på intervallet",
|
||||
"greater_range_end_error": "Måste vara större än intervallets slut",
|
||||
"subnet_error": "Adresser måste finnas i ett subnät",
|
||||
"gateway_or_subnet_invalid": "Subnätmask ogiltig",
|
||||
"dhcp_form_gateway_input": "Gateway-IP",
|
||||
@@ -210,17 +208,21 @@
|
||||
"example_comment_hash": "# Också en kommentar",
|
||||
"example_regex_meaning": "blockera åtkomst till domäner som matchar det angivna uttrycket",
|
||||
"example_upstream_regular": "vanlig DNS (över UDP)",
|
||||
"example_upstream_regular_port": "vanlig DNS (via UDP, med port);",
|
||||
"example_upstream_udp": "vanlig DNS (över UDP, värdnamn);",
|
||||
"example_upstream_dot": "krypterat <0>DNS-over-TLS</0>",
|
||||
"example_upstream_doh": "krypterat <0>DNS-over-HTTPS</0>",
|
||||
"example_upstream_doh3": "krypterad DNS-över-HTTPS med påtvingad <0>HTTP/3</0> och ingen reserv till HTTP/2 eller lägre;",
|
||||
"example_upstream_doq": "krypterat <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "Du kan använda <0>DNS-stamps</0> för <1>DNSCrypt</1> eller <2>DNS-over-HTTPS</2>-resolvers",
|
||||
"example_upstream_tcp": "vanlig DNS (över UDP)",
|
||||
"example_upstream_tcp_port": "vanlig DNS (via TCP, med port);",
|
||||
"example_upstream_tcp_hostname": "vanlig DNS (över TCP, värdnamn);",
|
||||
"all_lists_up_to_date_toast": "Alla listor är redan uppdaterade",
|
||||
"updated_upstream_dns_toast": "Sparade uppströms dns-servrar",
|
||||
"dns_test_ok_toast": "Angivna DNS servrar fungerar korrekt",
|
||||
"dns_test_not_ok_toast": "Server \"{{key}}\": kunde inte användas. Var snäll och kolla att du skrivit in rätt",
|
||||
"dns_test_warning_toast": "Uppströms \"{{key}}\" svarar inte på testförfrågningar och kanske inte fungerar korrekt",
|
||||
"unblock": "Avblockera",
|
||||
"block": "Blockera",
|
||||
"disallow_this_client": "Tillåt inte den här klienten",
|
||||
@@ -296,6 +298,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Svara med NXDOMAIN kod",
|
||||
"blocking_mode_null_ip": "Null IP: Svara med noll IP adress (0.0.0.0 för A; :: för AAAA)",
|
||||
"blocking_mode_custom_ip": "Anpassad IP: Svara med en manuellt inställd IP adress",
|
||||
"theme_auto": "Auto",
|
||||
"theme_light": "Ljust",
|
||||
"theme_dark": "Mörkt",
|
||||
"upstream_dns_client_desc": "Om detta fält är tomt kommer AdGuard Home att använda de servrar som konfigurerats i <0>DNS inställningarna</0>.",
|
||||
"tracker_source": "Spårningskälla",
|
||||
"source_label": "Källa",
|
||||
@@ -362,7 +367,7 @@
|
||||
"encryption_config_saved": "Krypteringsinställningar sparade",
|
||||
"encryption_server": "Servernamn",
|
||||
"encryption_server_enter": "Skriv in ditt domännamn",
|
||||
"encryption_server_desc": "För att kunna använda HTTPS måste du ange servernamnet som matchar ditt SSL-certifikat eller jokerteckencertifikat. Om fältet inte är inställt kommer det att acceptera TLS-anslutningar för alla domäner.",
|
||||
"encryption_server_desc": "För att använda HTTPS behöver du skriva in servernamnet som stämmer överens med ditt SSL-certifikat.",
|
||||
"encryption_redirect": "Omdirigera till HTTPS automatiskt",
|
||||
"encryption_redirect_desc": "Om bockad kommer AdGuard Home automatiskt att omdirigera dig från HTTP till HTTPS-adresser.",
|
||||
"encryption_https": "HTTPS-port",
|
||||
@@ -388,6 +393,7 @@
|
||||
"encryption_issuer": "Utgivare",
|
||||
"encryption_hostnames": "Värdnamn",
|
||||
"encryption_reset": "Är du säker på att du vill återställa krypteringsinställningarna?",
|
||||
"encryption_warning": "Varning",
|
||||
"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",
|
||||
@@ -445,9 +451,10 @@
|
||||
"access_blocked_title": "Blockerade domäner",
|
||||
"access_blocked_desc": "Ej att förväxla med filter. AdGuard Home kastar DNS-frågor som matchar dessa domäner, och dessa frågor visas inte ens i frågeloggen. Du kan ange exakta domännamn, jokertecken eller URL-filterregler, t.ex. \"example.org\", \"*.example.org\" eller \"||example.org^\" på motsvarande sätt.",
|
||||
"access_settings_saved": "Åtkomstinställningar sparade",
|
||||
"updates_checked": "Sökning efter uppdateringar genomförd",
|
||||
"updates_checked": "En ny version av AdGuard Home är tillgänglig\n",
|
||||
"updates_version_equal": "AdGuard Home är uppdaterat",
|
||||
"check_updates_now": "Sök efter uppdateringar nu",
|
||||
"version_request_error": "Uppdateringskontroll misslyckades. Kontrollera din internetanslutning.",
|
||||
"dns_privacy": "DNS-Integritet",
|
||||
"setup_dns_privacy_1": "<0>DNS-över-TLS:</0> Använd: <1>{{address}}</1>",
|
||||
"setup_dns_privacy_2": "<0>DNS-över-HTTPS:</0> Använd: <1>{{address}}</1>",
|
||||
@@ -516,6 +523,7 @@
|
||||
"statistics_retention_confirm": "Är du säker på att du vill ändra retentionstiden för statistik? Om du minskar intervallet kommer viss data att gå förlorad",
|
||||
"statistics_cleared": "Statistiken har rensats",
|
||||
"statistics_enable": "Aktivera statistik",
|
||||
"ignore_domains_title": "Ignorerade domäner",
|
||||
"interval_hours": "{{count}} timme",
|
||||
"interval_hours_plural": "{{count}} timmar",
|
||||
"filters_configuration": "Filterinställningar",
|
||||
@@ -601,7 +609,7 @@
|
||||
"blocklist": "Blocklista",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Cachestorlek",
|
||||
"cache_size_desc": "DNS cachestorlek (i byte).",
|
||||
"cache_size_desc": "DNS-cachestorlek (i byte). Lämna tomt om du vill inaktivera cachelagring.",
|
||||
"cache_ttl_min_override": "Åsidosätt minsta TTL",
|
||||
"cache_ttl_max_override": "Åsidosätt maximal TTL",
|
||||
"enter_cache_size": "Ange cachestorlek (byte)",
|
||||
@@ -612,7 +620,7 @@
|
||||
"ttl_cache_validation": "Minsta cache TTL-värde måste vara mindre än eller lika med maxvärdet",
|
||||
"cache_optimistic": "Optimistisk cachning",
|
||||
"cache_optimistic_desc": "Få AdGuard Home att svara från cachen även när posterna har gått ut och försök även uppdatera dem.",
|
||||
"filter_category_general": "General",
|
||||
"filter_category_general": "Allmänt",
|
||||
"filter_category_security": "säkerhet",
|
||||
"filter_category_regional": "Regional",
|
||||
"filter_category_other": "Övrigt",
|
||||
@@ -631,5 +639,18 @@
|
||||
"parental_control": "Föräldrakontroll",
|
||||
"safe_browsing": "Säker surfning",
|
||||
"served_from_cache": "{{value}} <i>(levereras från cache)</i>",
|
||||
"form_error_password_length": "Lösenordet måste vara minst {{value}} tecken långt"
|
||||
"form_error_password_length": "Lösenordet måste vara minst {{value}} tecken långt",
|
||||
"anonymizer_notification": "<0>Observera:</0> IP-anonymisering är aktiverad. Du kan inaktivera den i <1>Allmänna inställningar</1>.",
|
||||
"confirm_dns_cache_clear": "Är du säker på att du vill rensa DNS-cache?",
|
||||
"cache_cleared": "DNS-cacheminnet har rensats",
|
||||
"clear_cache": "Rensa cache",
|
||||
"theme_dark_desc": "Mörkt tema",
|
||||
"theme_light_desc": "Ljust tema",
|
||||
"disable_for_seconds": "I {{count}} sekund",
|
||||
"disable_for_seconds_plural": "I {{count}} sekunder",
|
||||
"disable_for_minutes": "I {{count}} minut",
|
||||
"disable_for_minutes_plural": "I {{count}} minuter",
|
||||
"disable_for_hours": "I {{count}} timme",
|
||||
"disable_for_hours_plural": "I {{count}} timmar",
|
||||
"disable_until_tomorrow": "Tills imorgon"
|
||||
}
|
||||
|
||||
@@ -262,6 +262,7 @@
|
||||
"encryption_issuer": "ผู้ออกใบรับรอง:",
|
||||
"encryption_hostnames": "ชื่อโฮส",
|
||||
"encryption_reset": "คุณแน่ใจนะว่าจะล้างค่าการเข้ารหัส?",
|
||||
"encryption_warning": "คำเตือน",
|
||||
"topline_expiring_certificate": "ใบรับรอง SSL ของคุณกำลังจะหมดอายุ กรุณาอัปเดท <0>การตั้งค่าเข้ารหัส</0>.",
|
||||
"topline_expired_certificate": "ใบรับรอง SSL ของคุณหมดอายุแล้ว กรุณาอัปเดท <0>การตั้งค่าเข้ารหัส</0>.",
|
||||
"form_error_port_unsafe": "เป็นพอร์ทที่ไม่ปลอดภัย",
|
||||
|
||||
@@ -37,28 +37,26 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 Ayarları",
|
||||
"form_error_required": "Gerekli alan",
|
||||
"form_error_ip4_format": "Geçersiz IPv4 adresi",
|
||||
"form_error_ip4_range_start_format": "Geçersiz başlangıç aralığı IPv4 biçimi",
|
||||
"form_error_ip4_range_end_format": "Geçersiz bitiş aralığı IPv4 adresi",
|
||||
"form_error_ip4_gateway_format": "Geçersiz ağ geçidi IPv4 adresi",
|
||||
"form_error_ip6_format": "Geçersiz IPv6 adresi",
|
||||
"form_error_ip_format": "Geçersiz IP adresi",
|
||||
"form_error_mac_format": "Geçersiz MAC adresi",
|
||||
"form_error_client_id_format": "İstemci Kimliği yalnızca sayılar, küçük harfler ve kısa çizgiler içermelidir",
|
||||
"form_error_server_name": "Geçersiz sunucu adı",
|
||||
"form_error_server_name": "Sunucu adı geçersiz",
|
||||
"form_error_subnet": "\"{{cidr}}\" alt ağı, \"{{ip}}\" IP adresini içermiyor",
|
||||
"form_error_positive": "0'dan büyük olmalıdır",
|
||||
"form_error_gateway_ip": "Kiralama, ağ geçidinin IP adresiyle aynı olamaz",
|
||||
"out_of_range_error": "\"{{start}}\"-\"{{end}}\" aralığının dışında olmalıdır",
|
||||
"lower_range_start_error": "Başlangıç aralığından daha düşük olmalıdır",
|
||||
"greater_range_start_error": "Başlangıç aralığından daha büyük olmalıdır",
|
||||
"greater_range_end_error": "Bitiş aralığından daha büyük olmalıdır",
|
||||
"subnet_error": "Adresler bir alt ağda olmalıdır",
|
||||
"gateway_or_subnet_invalid": "Alt ağ maskesi geçersiz.",
|
||||
"gateway_or_subnet_invalid": "Geçersiz alt ağ maskesi",
|
||||
"dhcp_form_gateway_input": "Ağ geçidi IP",
|
||||
"dhcp_form_subnet_input": "Alt ağ maskesi",
|
||||
"dhcp_form_range_title": "IP adresi aralığı",
|
||||
"dhcp_form_range_start": "Başlangıç aralığı",
|
||||
"dhcp_form_range_end": "Bitiş aralığı",
|
||||
"dhcp_form_lease_title": "DHCP kira süresi (saniye olarak)",
|
||||
"dhcp_form_lease_title": "DHCP kiralama süresi (saniye cinsinden)",
|
||||
"dhcp_form_lease_input": "Kira süresi",
|
||||
"dhcp_interface_select": "DHCP arayüzünü seç",
|
||||
"dhcp_hardware_address": "Donanım adresi",
|
||||
@@ -107,9 +105,9 @@
|
||||
"report_an_issue": "Bir sorun bildir",
|
||||
"privacy_policy": "Gizlilik Politikası",
|
||||
"enable_protection": "Korumayı etkinleştir",
|
||||
"enabled_protection": "Koruma etkileştirildi",
|
||||
"disable_protection": "Korumayı durdur",
|
||||
"disabled_protection": "Koruma durduruldu",
|
||||
"enabled_protection": "Koruma etkinleştirildi",
|
||||
"disable_protection": "Korumayı devre dışı bırak",
|
||||
"disabled_protection": "Koruma devre dışı bırakıldı",
|
||||
"refresh_statics": "İstatistikleri yenile",
|
||||
"dns_query": "DNS Sorguları",
|
||||
"blocked_by": "<0>Filtreler tarafından engellenen</0>",
|
||||
@@ -130,14 +128,14 @@
|
||||
"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 makine engel listeleri tarafından engellenen DNS isteklerinin sayısı",
|
||||
"number_of_dns_query_blocked_24_hours": "Reklam engelleme filtreleri ve hosts engel listeleri tarafından engellenen DNS isteklerinin sayısı",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "AdGuard gezinti koruması modülü tarafından engellenen DNS isteklerinin sayısı",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "Engellenen yetişkin içerikli sitelerin sayısı",
|
||||
"enforced_save_search": "Uygulanan güvenli arama",
|
||||
"number_of_dns_query_to_safe_search": "Güvenli Aramanın uygulandığı arama motorlarına gönderilen DNS isteklerinin sayısı",
|
||||
"average_processing_time": "Ortalama işlem süresi",
|
||||
"average_processing_time_hint": "Bir DNS isteğinin milisaniye cinsinden ortalama işlem süresi",
|
||||
"block_domain_use_filters_and_hosts": "Filtre ve ana makine listelerini kullanarak alan adlarını engelle",
|
||||
"block_domain_use_filters_and_hosts": "Filtre ve hosts dosyalarını kullanarak alan adlarını engelle",
|
||||
"filters_block_toggle_hint": "<a>Filtreler</a> ayarlarında engelleme kuralları oluşturabilirsiniz.",
|
||||
"use_adguard_browsing_sec": "AdGuard gezinti koruması web hizmetini kullan",
|
||||
"use_adguard_browsing_sec_hint": "AdGuard Home, alan adının gezinti koruması web hizmeti tarafından engellenip engellenmediğini kontrol eder. Kontrolü gerçekleştirmek için gizlilik dostu arama API'sini kullanır: sunucuya yalnızca SHA256 karma alan adının kısa bir ön eki gönderilir.",
|
||||
@@ -169,8 +167,9 @@
|
||||
"enabled_parental_toast": "Ebeveyn Denetimi etkinleştirildi",
|
||||
"disabled_safe_search_toast": "Güvenli Arama devre dışı bırakıldı",
|
||||
"enabled_save_search_toast": "Güvenli Arama etkinleştirildi",
|
||||
"updated_save_search_toast": "Güvenli Arama ayarları güncellendi",
|
||||
"enabled_table_header": "Etkin",
|
||||
"name_table_header": "İsim",
|
||||
"name_table_header": "Ad",
|
||||
"list_url_table_header": "Liste URL'si",
|
||||
"rules_count_table_header": "Kural sayısı",
|
||||
"last_time_updated_table_header": "Son güncelleme zamanı",
|
||||
@@ -179,13 +178,13 @@
|
||||
"edit_table_action": "Düzenle",
|
||||
"delete_table_action": "Sil",
|
||||
"elapsed": "Geçen süre",
|
||||
"filters_and_hosts_hint": "AdGuard Home, temel reklam engelleme kurallarını ve ana makine engelleme dosyalarının söz dizimini anlar.",
|
||||
"filters_and_hosts_hint": "AdGuard Home, temel reklam engelleme kurallarını ve hosts dosyalarının söz dizimini anlar.",
|
||||
"no_blocklist_added": "Engel listesi eklenmedi",
|
||||
"no_whitelist_added": "İzin listesi eklenmedi",
|
||||
"add_blocklist": "Engel listesi ekle",
|
||||
"add_allowlist": "İzin listesi ekle",
|
||||
"cancel_btn": "İptal",
|
||||
"enter_name_hint": "İsim girin",
|
||||
"enter_name_hint": "Ad girin",
|
||||
"enter_url_or_path_hint": "Listenin URL adresini veya dosya yolunu girin",
|
||||
"check_updates_btn": "Güncellemeleri denetle",
|
||||
"new_blocklist": "Yeni engel listesi",
|
||||
@@ -199,8 +198,8 @@
|
||||
"form_error_url_format": "Geçersiz URL biçimi",
|
||||
"form_error_url_or_path_format": "Geçersiz URL adresi veya dosya yolu",
|
||||
"custom_filter_rules": "Özel filtreleme kuralları",
|
||||
"custom_filter_rules_hint": "Her satıra bir kural girin. Reklam engelleme kuralı veya ana makine dosyası söz dizimi kullanabilirsiniz.",
|
||||
"system_host_files": "Sistem ana makine dosyaları",
|
||||
"custom_filter_rules_hint": "Her satıra bir kural girin. Reklam engelleme kuralı veya hosts dosyası söz dizimi kullanabilirsiniz.",
|
||||
"system_host_files": "Sistem hosts dosyaları",
|
||||
"examples_title": "Örnekler",
|
||||
"example_meaning_filter_block": "example.org'a ve tüm alt alanlarına erişimi engeller;",
|
||||
"example_meaning_filter_whitelist": "example.org'a ve tüm alt alanlarına erişimin engelini kaldırır;",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Ayrıca bir yorum.",
|
||||
"example_regex_meaning": "belirtilen düzenli ifadelerle eşleşen alan adlarına erişimi engelle.",
|
||||
"example_upstream_regular": "normal DNS (UDP üzerinden);",
|
||||
"example_upstream_regular_port": "normal DNS (UDP üzerinden, bağlantı noktası ile);",
|
||||
"example_upstream_udp": "normal DNS (UDP üzerinden, ana makine adı);",
|
||||
"example_upstream_dot": "şifrelenmiş <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "şifrelenmiş <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "<0>HTTP/3</0> uygulanmış ve HTTP/2 veya aşağısı için yedek olmayan şifrelenmiş DNS-over-HTTPS;",
|
||||
"example_upstream_doq": "şifrelenmiş <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "<1>DNSCrypt</1> veya <2>DNS-over-HTTPS</2> çözümleyicileri için <0>DNS Damgaları</0>;",
|
||||
"example_upstream_tcp": "normal DNS (TCP üzerinden);",
|
||||
"example_upstream_tcp_port": "normal DNS (TCP üzerinden, bağlantı noktası ile);",
|
||||
"example_upstream_tcp_hostname": "normal DNS (TCP üzerinden, ana makine adı);",
|
||||
"all_lists_up_to_date_toast": "Tüm listeler güncel durumda",
|
||||
"updated_upstream_dns_toast": "Üst sunucular başarıyla kaydedildi",
|
||||
"dns_test_ok_toast": "Belirtilen DNS sunucuları düzgün çalışıyor",
|
||||
"dns_test_not_ok_toast": "Sunucu \"{{key}}\": kullanılamıyor, lütfen doğru yazdığınızdan emin olun",
|
||||
"dns_test_warning_toast": "Üst kaynak \"{{key}}\", test isteklerine yanıt vermiyor ve düzgün çalışmayabilir",
|
||||
"unblock": "Engeli kaldır",
|
||||
"block": "Engelle",
|
||||
"disallow_this_client": "Bu istemciye izin verme",
|
||||
@@ -238,7 +241,7 @@
|
||||
"empty_response_status": "Boş",
|
||||
"show_all_filter_type": "Tümünü göster",
|
||||
"show_filtered_type": "Filtrelenenleri göster",
|
||||
"no_logs_found": "Günlük kaydı bulunamadı",
|
||||
"no_logs_found": "Günlük bulunamadı",
|
||||
"refresh_btn": "Yenile",
|
||||
"previous_btn": "Önceki",
|
||||
"next_btn": "Sonraki",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "Sorgu günlüğü başarıyla temizlendi",
|
||||
"query_log_updated": "Sorgu günlüğü başarıyla güncellendi",
|
||||
"query_log_clear": "Sorgu günlüklerini temizle",
|
||||
"query_log_retention": "Sorgu günlüklerini sakla",
|
||||
"query_log_retention": "Sorgu günlükleri rotasyonu",
|
||||
"query_log_enable": "Günlüğü etkinleştir",
|
||||
"query_log_configuration": "Günlük yapılandırması",
|
||||
"query_log_disabled": "Sorgu günlüğü devre dışı bırakıldı, bunu <0>ayarlar</0> kısmından yapılandırılabilirsiniz",
|
||||
"query_log_strict_search": "Tam arama için çift tırnak işareti kullanın",
|
||||
"query_log_retention_confirm": "Sorgu günlüğü saklama süresini değiştirmek istediğinize emin misiniz? Aralık değerini azaltırsanız, bazı veriler kaybolacaktır",
|
||||
"query_log_retention_confirm": "Sorgu günlüğü rotasyonunu değiştirmek istediğinizden emin misiniz? Aralık değerini düşürürseniz, bazı veriler kaybolacaktır.",
|
||||
"anonymize_client_ip": "İstemcinin IP adresini gizle",
|
||||
"anonymize_client_ip_desc": "İstemcinin tam IP adresini günlüklere veya istatistiklere kaydetmeyin",
|
||||
"dns_config": "DNS sunucu yapılandırması",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Sıklık limiti",
|
||||
"edns_enable": "EDNS istemci alt ağını etkinleştir",
|
||||
"edns_cs_desc": "Kaynak yönü isteklerine EDNS İstemci Alt Ağı seçeneğini (ECS) ekleyin ve istemciler tarafından gönderilen değerleri sorgu günlüğüne kaydedin.",
|
||||
"edns_use_custom_ip": "EDNS için özel IP kullan",
|
||||
"edns_use_custom_ip_desc": "EDNS için özel IP kullanımına izin ver",
|
||||
"rate_limit_desc": "İstemci başına izin verilen saniyedeki 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",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: NXDOMAIN koduyla yanıt verin",
|
||||
"blocking_mode_null_ip": "Boş IP: Sıfır IP adresiyle yanıt verin (A için 0.0.0.0; :: AAAA için)",
|
||||
"blocking_mode_custom_ip": "Özel IP: El ile ayarlanmış bir IP adresiyle yanıt verin",
|
||||
"theme_auto": "Otomatik",
|
||||
"theme_light": "Açık",
|
||||
"theme_dark": "Koyu",
|
||||
"upstream_dns_client_desc": "Bu alanı boş bırakırsanız, AdGuard Home, <0>DNS ayarlarında</0> yapılandırılan sunucuları kullanır.",
|
||||
"tracker_source": "İzleyici kaynağı",
|
||||
"source_label": "Kaynak",
|
||||
@@ -313,7 +321,7 @@
|
||||
"install_settings_interface_link": "AdGuard Home yönetici web arayüzünüz aşağıdaki adreslerde bulunacaktır:",
|
||||
"form_error_port": "Geçerli bir bağlantı noktası değeri 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_dns_desc": "Aşağıdaki adreslerde DNS sunucusunu kullanmak için cihazlarınızı veya yönlendiricinizi yapılandırmanız gerekir:",
|
||||
"install_settings_all_interfaces": "Tüm arayüzler",
|
||||
"install_auth_title": "Kimlik Doğrulama",
|
||||
"install_auth_desc": "AdGuard Home yönetim web arayüzü için şifre doğrulaması yapılandırılmalıdır. AdGuard Home'a yalnızca yerel ağınızdan erişilebilir olsa bile, onu sınırsız erişimden korumak yine de önemlidir.",
|
||||
@@ -345,12 +353,12 @@
|
||||
"install_devices_macos_list_3": "Listedeki ilk bağlantıyı seçin ve Gelişmiş öğesine tıklayın.",
|
||||
"install_devices_macos_list_4": "DNS sekmesini seçin ve AdGuard Home sunucunuzun adreslerini girin.",
|
||||
"install_devices_android_list_1": "Android Menüsü ana ekranından Ayarlar'a dokunun.",
|
||||
"install_devices_android_list_2": "Menüde bulunan Wi-Fi öğesine dokunun. Mevcut tüm ağlar listelenecektir (mobil ağlar için özel DNS sunucusu ayarlanamaz).",
|
||||
"install_devices_android_list_2": "Menüde bulunan Wi-Fi öğesine dokunun. Mevcut tüm ağlar listelenecektir (telefon ağlar için özel DNS sunucusu ayarlanamaz).",
|
||||
"install_devices_android_list_3": "Bağlı olduğunuz ağın üzerine basılı tutun ve Ağı Değiştir'e dokunun.",
|
||||
"install_devices_android_list_4": "Bazı cihazlarda, diğer ayarları görmek için \"Gelişmiş\" seçeneğini seçmeniz gerekebilir. Android DNS ayarlarınızı yapmak için IP ayarlarını DHCP modundan Statik moda almanız gerekecektir.",
|
||||
"install_devices_android_list_4": "Bazı cihazlarda, diğer ayarları görmek için \"Gelişmiş\" seçeneğini seçmeniz gerekebilir. Android DNS ayarlarınızı yapmak için IP ayarlarını DHCP modundan Statik moda değiştirmeniz gerekir.",
|
||||
"install_devices_android_list_5": "DNS 1 ve DNS 2 değerlerini AdGuard Home sunucunuzun adresleriyle değiştirin.",
|
||||
"install_devices_ios_list_1": "Ana ekrandan Ayarlar'a dokunun.",
|
||||
"install_devices_ios_list_2": "Sol menüde bulunan Wi-Fi bölümüne girin (mobil ağlar için özel DNS sunucusu ayarlanamaz).",
|
||||
"install_devices_ios_list_2": "Sol menüde bulunan Wi-Fi bölümüne girin (telefon ağlar için özel DNS sunucusu ayarlanamaz).",
|
||||
"install_devices_ios_list_3": "O anda aktif olan ağın adına dokunun.",
|
||||
"install_devices_ios_list_4": "DNS alanına AdGuard Home sunucunuzun adreslerini girin.",
|
||||
"get_started": "Başlayın",
|
||||
@@ -362,15 +370,15 @@
|
||||
"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ızla veya joker sertifikanızla eşleşen sunucu adını girmeniz gerekir. Bu alan ayarlanmazsa, herhangi bir alan adının TLS bağlantılarını kabul eder.",
|
||||
"encryption_server_desc": "Ayarlanırsa, AdGuard Home ClientID'leri algılar, DDR sorgularına yanıt verir ve ek bağlantı doğrulamaları gerçekleştirir. Ayarlanmazsa, bu özellikler devre dışı bırakılır. Sertifikadaki DNS Adlarından biriyle eşleşmelidir.",
|
||||
"encryption_redirect": "Otomatik olarak HTTPS'e yönlendir",
|
||||
"encryption_redirect_desc": "Etkinleştirirseniz, AdGuard Home sizi HTTP adresi yerine HTTPS adresine yönlendirir.",
|
||||
"encryption_redirect_desc": "İşaretlenirse, AdGuard Home sizi otomatik olarak HTTP adresinden HTTPS adreslerine yönlendirir.",
|
||||
"encryption_https": "HTTPS bağlantı noktası",
|
||||
"encryption_https_desc": "HTTPS bağlantı noktası yapılandırılırsa, AdGuard Home yönetici arayüzüne HTTPS aracılığıyla erişilebilir olacak ve ayrıca '/dns-query' üzerinden DNS-over-HTTPS bağlantısı sağlayacaktır.",
|
||||
"encryption_https_desc": "HTTPS bağlantı noktası yapılandırılırsa, AdGuard Home yönetici arayüzüne HTTPS aracılığıyla erişilebilir olacak ve ayrıca '/dns-query' üzerinden DNS-over-HTTPS bağlantısı sağlar.",
|
||||
"encryption_dot": "DNS-over-TLS bağlantı noktası",
|
||||
"encryption_dot_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, DNS-over-TLS sunucusunu bu bağlantı noktası üzerinden çalıştıracaktır.",
|
||||
"encryption_dot_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, DNS-over-TLS sunucusunu bu bağlantı noktası üzerinden çalıştırır.",
|
||||
"encryption_doq": "DNS-over-QUIC bağlantı noktası",
|
||||
"encryption_doq_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, bu bağlantı noktasında bir DNS-over-QUIC sunucusu çalıştıracaktır.",
|
||||
"encryption_doq_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, bu bağlantı noktasında bir DNS-over-QUIC sunucusu çalıştırır.",
|
||||
"encryption_certificates": "Sertifikalar",
|
||||
"encryption_certificates_desc": "Şifrelemeyi kullanmak için alan adınıza geçerli bir SSL sertifika zinciri sağlamanız gerekir. <0>{{link}}</0> adresinden ücretsiz bir sertifika alabilir veya güvenilir Sertifika Yetkililerinden satın alabilirsiniz.",
|
||||
"encryption_certificates_input": "PEM biçimindeki sertifikalarınızı kopyalayıp buraya yapıştırın.",
|
||||
@@ -382,12 +390,13 @@
|
||||
"encryption_enable_desc": "Şifrelemeyi etkinleştirirseniz, AdGuard Home yönetici arayüzü HTTPS üzerinden çalışır ve DNS sunucusu, DNS-over-HTTPS ve DNS-over-TLS üzerinden gelen istekleri dinler.",
|
||||
"encryption_chain_valid": "Sertifika zinciri geçerli",
|
||||
"encryption_chain_invalid": "Sertifika zinciri geçersiz.",
|
||||
"encryption_key_valid": "Bu geçerli bir {{type}} özel anahtar.",
|
||||
"encryption_key_invalid": "Bu geçersiz bir {{type}} özel anahtar.",
|
||||
"encryption_key_valid": "Bu geçerli bir {{type}} özel anahtarıdır",
|
||||
"encryption_key_invalid": "Bu geçersiz bir {{type}} özel anahtarıdır",
|
||||
"encryption_subject": "Konu",
|
||||
"encryption_issuer": "Sağlayan",
|
||||
"encryption_hostnames": "Ana makine adları",
|
||||
"encryption_reset": "Şifreleme ayarlarını sıfırlamak istediğinizden emin misiniz?",
|
||||
"encryption_warning": "Uyarı",
|
||||
"topline_expiring_certificate": "SSL sertifikanızın süresi sona üzere. <0>Şifreleme ayarlarını</0> güncelleyin.",
|
||||
"topline_expired_certificate": "SSL sertifikanızın süresi sona erdi. <0>Şifreleme ayarlarını</0> güncelleyin.",
|
||||
"form_error_port_range": "80-65535 aralığında geçerli bir bağlantı noktası değeri girin",
|
||||
@@ -395,7 +404,7 @@
|
||||
"form_error_equal": "Aynı olmamalıdır",
|
||||
"form_error_password": "Parolalar uyuşmuyor",
|
||||
"reset_settings": "Ayarları sıfırla",
|
||||
"update_announcement": "AdGuard Home {{version}} sürümü mevcut! Daha fazla bilgi için <0>buraya tıklayın.</0>",
|
||||
"update_announcement": "AdGuard Home {{version}} sürümü artık mevcut! Daha fazla bilgi için <0>buraya tıklayın</0>.",
|
||||
"setup_guide": "Kurulum Rehberi",
|
||||
"dns_addresses": "DNS adresleri",
|
||||
"dns_start": "DNS sunucusu başlatılıyor",
|
||||
@@ -404,7 +413,7 @@
|
||||
"fix": "Düzelt",
|
||||
"dns_providers": "Aralarından seçim yapabileceğiniz, bilinen <0>DNS sağlayıcıların listesi</0>.",
|
||||
"update_now": "Şimdi güncelle",
|
||||
"update_failed": "Otomatik güncelleme başarısız oldu. Elle güncellemek için lütfen <a>bu adımları uygulayın</a>.",
|
||||
"update_failed": "Otomatik güncellenemedi. Elle güncellemek için lütfen <a>bu adımları izleyin</a>.",
|
||||
"manual_update": "Elle güncellemek için lütfen <a>bu adımları uygulayın</a>.",
|
||||
"processing_update": "Lütfen bekleyin, AdGuard Home güncelleniyor",
|
||||
"clients_title": "Kalıcı istemciler",
|
||||
@@ -412,7 +421,7 @@
|
||||
"settings_global": "Genel",
|
||||
"settings_custom": "Özel",
|
||||
"table_client": "İstemci",
|
||||
"table_name": "İsim",
|
||||
"table_name": "Ad",
|
||||
"save_btn": "Kaydet",
|
||||
"client_add": "İstemci Ekle",
|
||||
"client_new": "Yeni İstemci",
|
||||
@@ -426,7 +435,7 @@
|
||||
"form_enter_id": "Tanımlayıcı girin",
|
||||
"form_add_id": "Tanımlayıcı ekle",
|
||||
"form_client_name": "İstemci ismi girin",
|
||||
"name": "İsim",
|
||||
"name": "Ad",
|
||||
"client_global_settings": "Genel ayarları kullan",
|
||||
"client_deleted": "\"{{key}}\" istemcisi başarıyla silindi",
|
||||
"client_added": "\"{{key}}\" istemcisi başarıyla eklendi",
|
||||
@@ -443,11 +452,12 @@
|
||||
"access_disallowed_title": "İzin verilmeyen istemciler",
|
||||
"access_disallowed_desc": "CIDR'lerin, IP adreslerinin veya <a>İstemci Kimliklerin</a> listesi. Bu listede girişler varsa, AdGuard Home bu istemcilerden gelen istekleri keser. İzin verilen istemcilerde girişler varsa, bu alan yok sayılır.",
|
||||
"access_blocked_title": "İzin verilmeyen alan adları",
|
||||
"access_blocked_desc": "Bu işlem filtrelerle ilgili değildir. AdGuard Home, bu alan adlarından gelen DNS sorgularını yanıtsız bırakır ve bu sorgular sorgu günlüğünde görünmez. Tam alan adlarını, joker karakterleri veya URL filtre kurallarını belirtebilirsiniz, ör. \"example.org\", \"*.example.org\" veya \"||example.org^\".",
|
||||
"access_blocked_desc": "Bu işlem filtrelerle ilgili değildir. AdGuard Home, bu alan adlarından gelen DNS sorgularını yanıtsız bırakır ve bu sorgular sorgu günlüğünde görünmez. Tam alan adlarını, joker karakterleri veya 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_checked": "AdGuard Home'un yeni bir sürümü mevcut",
|
||||
"updates_version_equal": "AdGuard Home yazılımı güncel durumda",
|
||||
"check_updates_now": "Güncellemeleri şimdi denetle",
|
||||
"version_request_error": "Güncelleme denetimi başarısız. Lütfen internet bağlantınızı kontrol edin.",
|
||||
"dns_privacy": "DNS Gizliliği",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> <1>{{address}}</1> dizesini kullan.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> <1>{{address}}</1> dizesini kullan.",
|
||||
@@ -463,7 +473,7 @@
|
||||
"setup_dns_privacy_other_2": "<0>dnsproxy</0>, bilinen tüm güvenli DNS protokollerini destekler.",
|
||||
"setup_dns_privacy_other_3": "<0>dnscrypt-proxy</0>, <1>DNS-over-HTTPS</1> protokolünü destekler.",
|
||||
"setup_dns_privacy_other_4": "<0>Mozilla Firefox</0>, <1>DNS-over-HTTPS</1> protokolünü destekler.",
|
||||
"setup_dns_privacy_other_5": "<0>Burada</0> ve <1>burada</1> daha fazla kullanım alanı bulacaksınız.",
|
||||
"setup_dns_privacy_other_5": "<0>Burada</0> ve <1>burada</1> daha fazla kullanım alanı bulabilirsiniz.",
|
||||
"setup_dns_privacy_ioc_mac": "iOS ve macOS yapılandırması",
|
||||
"setup_dns_notice": "<1>DNS-over-HTTPS</1> veya <1>DNS-over-TLS</1> protokolünü kullanmak için AdGuard Home üzerinde <0>Şifreleme ayarları</0> bölümünden ayarları yapmanız gerekir.",
|
||||
"rewrite_added": "\"{{key}}\" için DNS yeniden yazımı başarıyla eklendi",
|
||||
@@ -473,7 +483,7 @@
|
||||
"rewrite_confirm_delete": "\"{{key}}\" için DNS yeniden yazımını silmek istediğinize emin misiniz?",
|
||||
"rewrite_desc": "Belirli bir alan adı için özel DNS yanıtını kolayca yapılandırmanızı sağlar.",
|
||||
"rewrite_applied": "Yeniden yazım kuralı uygulandı",
|
||||
"rewrite_hosts_applied": "Ana makine dosyası kuralı tarafından yeniden yazıldı",
|
||||
"rewrite_hosts_applied": "Hosts dosyası kuralı tarafından yeniden yazıldı",
|
||||
"dns_rewrites": "DNS yeniden yazımları",
|
||||
"form_domain": "Alan adı veya joker karakter girin",
|
||||
"form_answer": "IP adresi veya alan adı girin",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "İstatistik saklama süresini değiştirmek istediğinizden emin misiniz? Aralık değerini azaltırsanız, bazı veriler kaybolacaktır",
|
||||
"statistics_cleared": "İstatistikler başarıyla temizlendi",
|
||||
"statistics_enable": "İstatistikleri etkinleştir",
|
||||
"ignore_domains": "Yok sayılan alan adları (yeni satırla ayrılmış)",
|
||||
"ignore_domains_title": "Yok sayılan alan adları",
|
||||
"ignore_domains_desc_stats": "Bu alan adları için yapılan sorgular istatistiklere yazılmaz",
|
||||
"ignore_domains_desc_query": "Bu alan adları için yapılan sorgular sorgu günlüğüne yazılmaz",
|
||||
"interval_hours": "{{count}} saat",
|
||||
"interval_hours_plural": "{{count}} saat",
|
||||
"filters_configuration": "Filtre yapılandırması",
|
||||
@@ -536,7 +550,7 @@
|
||||
"network": "Ağ",
|
||||
"descr": "Açıklama",
|
||||
"whois": "WHOIS",
|
||||
"filtering_rules_learn_more": "Kendi ana makine listelerinizi oluşturma hakkında <0>daha fazla bilgi edinin</0>.",
|
||||
"filtering_rules_learn_more": "Kendi hosts listelerinizi oluşturma hakkında <0>daha fazla bilgi edinin</0>.",
|
||||
"blocked_by_response": "Yanıt olarak CNAME veya IP tarafından engellendi",
|
||||
"blocked_by_cname_or_ip": "CNAME veya IP tarafından engellendi",
|
||||
"try_again": "Tekrar dene",
|
||||
@@ -552,7 +566,7 @@
|
||||
"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ı olan IP adresini döndürün. AdGuard Home'un tüm DNS sunucularından yanıt beklemesi gerektiği için DNS sorgularını yavaşlatır, ancak genel bağlantıyı iyileştirir.",
|
||||
"autofix_warning_text": "\"Düzelt\" seçeneğine tıklarsanız, AdGuard Home, sisteminizi AdGuard Home 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_list": "Bu görevleri gerçekleştirir: <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.",
|
||||
"tags_title": "Etiketler",
|
||||
"tags_desc": "İstemciye karşılık gelen etiketleri seçebilirsiniz. Etiketleri daha kesin olarak uygulamak için filtreleme kurallarına dahil edin. <0>Daha fazla bilgi edinin</0>.",
|
||||
@@ -581,7 +595,7 @@
|
||||
"install_static_ok": "Güzel haber! Sabit IP adresi zaten yapılandırılmış",
|
||||
"install_static_error": "AdGuard Home, bu ağ arayüzü için otomatik olarak yapılandıramıyor. Lütfen bunu elle nasıl yapacağınızla ilgili talimatlara bakın.",
|
||||
"install_static_configure": "AdGuard Home, <0>{{ip}}</0> dinamik IP adresinin kullanıldığını tespit etti. Sabit adresiniz olarak ayarlanmasını ister misiniz?",
|
||||
"confirm_static_ip": "AdGuard Home, {{ip}} adresini sabit IP adresiniz olacak şekilde yapılandıracaktır. Devam etmek istiyor musunuz?",
|
||||
"confirm_static_ip": "AdGuard Home, {{ip}} adresini sabit IP adresiniz olacak şekilde yapılandırır. Devam etmek istiyor musunuz?",
|
||||
"list_updated": "{{count}} liste güncellendi",
|
||||
"list_updated_plural": "{{count}} liste güncellendi",
|
||||
"dnssec_enable": "DNSSEC'i etkinleştir",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Engel listesi",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Önbellek boyutu",
|
||||
"cache_size_desc": "DNS önbellek boyutu (bayt cinsinden).",
|
||||
"cache_size_desc": "DNS önbellek boyutu (bayt cinsinden). Önbelleğe almayı devre dışı bırakmak için boş bırakın.",
|
||||
"cache_ttl_min_override": "Minimum kullanım süresini geçersiz kıl",
|
||||
"cache_ttl_max_override": "Maksimum kullanım süresini geçersiz kıl",
|
||||
"enter_cache_size": "Önbellek boyutunu girin (bayt)",
|
||||
@@ -625,11 +639,40 @@
|
||||
"click_to_view_queries": "Sorguları görmek için tıklayın",
|
||||
"port_53_faq_link": "53 numaralı bağlantı noktası genellikle \"DNSStubListener\" veya \"systemd-resolved\" hizmetleri tarafından kullanılır. Lütfen bu sorunun nasıl çözüleceğine ilişkin <0>bu talimatı</0> okuyun.",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home, bu istemciden gelen tüm DNS sorgularını yok sayacaktır.",
|
||||
"filter_allowlist": "UYARI: Bu işlem ayrıca \"{{disallowed_rule}}\" kuralını izin verilen istemciler listesinden hariç tutacaktır.",
|
||||
"filter_allowlist": "UYARI: Bu işlem ayrıca \"{{disallowed_rule}}\" kuralını izin verilen istemciler listesinden hariç tutar.",
|
||||
"last_rule_in_allowlist": "\"{{disallowed_rule}}\" kuralı hariç tutulduğunda \"İzin verilen istemciler\" listesi DEVRE DIŞI bırakılacağı için bu istemciye izin verilemez.",
|
||||
"use_saved_key": "Önceden kaydedilmiş anahtarı kullan",
|
||||
"parental_control": "Ebeveyn Denetimi",
|
||||
"safe_browsing": "Güvenli Gezinti",
|
||||
"served_from_cache": "{{value}} <i>(önbellekten kullanıldı)</i>",
|
||||
"form_error_password_length": "Parola en az {{value}} karakter uzunluğunda olmalıdır"
|
||||
"form_error_password_length": "Parola en az {{value}} karakter uzunluğunda olmalıdır",
|
||||
"anonymizer_notification": "<0>Not:</0> IP anonimleştirme etkinleştirildi. Bunu <1>Genel ayarlardan</1> devre dışı bırakabilirsiniz.",
|
||||
"confirm_dns_cache_clear": "DNS önbelleğini temizlemek istediğinizden emin misiniz?",
|
||||
"cache_cleared": "DNS önbelleği başarıyla temizlendi",
|
||||
"clear_cache": "Önbelleği temizle",
|
||||
"make_static": "Statik yap",
|
||||
"theme_auto_desc": "Otomatik (cihazınızın renk düzenine göre)",
|
||||
"theme_dark_desc": "Koyu tema",
|
||||
"theme_light_desc": "Açık tema",
|
||||
"disable_for_seconds": "{{count}} saniye için",
|
||||
"disable_for_seconds_plural": "{{count}} saniye için",
|
||||
"disable_for_minutes": "{{count}} dakika için",
|
||||
"disable_for_minutes_plural": "{{count}} dakika için",
|
||||
"disable_for_hours": "{{count}} saat için",
|
||||
"disable_for_hours_plural": "{{count}} saat için",
|
||||
"disable_until_tomorrow": "Yarına kadar",
|
||||
"disable_notify_for_seconds": "Korumayı {{count}} saniyeliğine devre dışı bırak",
|
||||
"disable_notify_for_seconds_plural": "Korumayı {{count}} saniyeliğine devre dışı bırak",
|
||||
"disable_notify_for_minutes": "Korumayı {{count}} dakiklığına devre dışı bırak",
|
||||
"disable_notify_for_minutes_plural": "Korumayı {{count}} dakiklığına devre dışı bırak",
|
||||
"disable_notify_for_hours": "Korumayı {{count}} saatliğine devre dışı bırak",
|
||||
"disable_notify_for_hours_plural": "Korumayı {{count}} saatliğine devre dışı bırak",
|
||||
"disable_notify_until_tomorrow": "Korumayı yarına kadar devre dışı bırak",
|
||||
"enable_protection_timer": "Koruma {{time}} içinde etkinleştirilecektir",
|
||||
"custom_retention_input": "Saklama süresini saat olarak girin",
|
||||
"custom_rotation_input": "Rotasyonu saat cinsinden girin",
|
||||
"protection_section_label": "Koruma",
|
||||
"log_and_stats_section_label": "Sorgu günlüğü ve istatistikler",
|
||||
"ignore_query_log": "Sorgu günlüğünde bu istemciyi yoksay",
|
||||
"ignore_statistics": "İstatistiklerde bu istemciyi yoksay"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Налаштування DHCP IPv6",
|
||||
"form_error_required": "Обов'язкове поле",
|
||||
"form_error_ip4_format": "Неправильна IPv4-адреса",
|
||||
"form_error_ip4_range_start_format": "Неправильна IPv4-адреса початку діапазону",
|
||||
"form_error_ip4_range_end_format": "Неправильна IPv4-адреса кінця діапазону",
|
||||
"form_error_ip4_gateway_format": "Неправильна IPv4-адреса шлюзу",
|
||||
"form_error_ip6_format": "Неправильна IPv6-адреса",
|
||||
"form_error_ip_format": "Неправильна IP-адреса",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "Неправильна назва сервера",
|
||||
"form_error_subnet": "Підмережа «{{cidr}}» не містить IP-адресу «{{ip}}»",
|
||||
"form_error_positive": "Повинно бути більше за 0",
|
||||
"form_error_gateway_ip": "Оренда не може мати IP-адресу шлюзу",
|
||||
"out_of_range_error": "Не повинна бути в діапазоні «{{start}}»−«{{end}}»",
|
||||
"lower_range_start_error": "Має бути меншим за початкову адресу",
|
||||
"greater_range_start_error": "Має бути більшим за початкову адресу",
|
||||
"greater_range_end_error": "Має бути більшим за кінцеву адресу",
|
||||
"subnet_error": "Адреси повинні бути в одній підмережі",
|
||||
"gateway_or_subnet_invalid": "Неправильна маска підмережі",
|
||||
"dhcp_form_gateway_input": "IP-адреса шлюзу",
|
||||
@@ -77,7 +75,7 @@
|
||||
"dhcp_add_static_lease": "Додати статичну оренду",
|
||||
"dhcp_reset_leases": "Скинути всі аренди",
|
||||
"dhcp_reset_leases_confirm": "Ви дійсно хочете скинути усі аренди?",
|
||||
"dhcp_reset_leases_success": "Аренди DHCP успішно скинуто",
|
||||
"dhcp_reset_leases_success": "Оренду DHCP успішно скинуто",
|
||||
"dhcp_reset": "Ви дійсно хочете скинути DHCP-конфігурацію?",
|
||||
"country": "Країна",
|
||||
"city": "Місто",
|
||||
@@ -105,7 +103,7 @@
|
||||
"copyright": "Авторське право",
|
||||
"homepage": "Домашня сторінка",
|
||||
"report_an_issue": "Повідомити про проблему",
|
||||
"privacy_policy": "Політика приватності",
|
||||
"privacy_policy": "Політика конфіденційності",
|
||||
"enable_protection": "Увімкнути захист",
|
||||
"enabled_protection": "Захист увімкнено",
|
||||
"disable_protection": "Вимкнути захист",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "«Батьківський контроль» увімкнено",
|
||||
"disabled_safe_search_toast": "Безпечний пошук вимкнено",
|
||||
"enabled_save_search_toast": "Безпечний пошук увімкнено",
|
||||
"updated_save_search_toast": "Налаштування Безпечного пошуку оновлено",
|
||||
"enabled_table_header": "Увімкнено",
|
||||
"name_table_header": "Назва",
|
||||
"list_url_table_header": "URL списку",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# Також коментар.",
|
||||
"example_regex_meaning": "блокувати доступ до доменів, що відповідають вказаному регулярному виразу.",
|
||||
"example_upstream_regular": "звичайний DNS (через UDP);",
|
||||
"example_upstream_regular_port": "звичайний DNS (поверх UDP, з портом);",
|
||||
"example_upstream_udp": "звичайний DNS (поверх UDP, з назвою вузла);",
|
||||
"example_upstream_dot": "зашифрований <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "зашифрований <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "зашифрований DNS через HTTPS із примусовим <0>HTTP/3</0> і без повернення до HTTP/2 або нижче;",
|
||||
"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);",
|
||||
"example_upstream_tcp_port": "звичайний DNS (поверх TCP, з портом);",
|
||||
"example_upstream_tcp_hostname": "звичайний DNS (поверх TCP, з назвою вузла);",
|
||||
"all_lists_up_to_date_toast": "Всі списки вже оновлені",
|
||||
"updated_upstream_dns_toast": "DNS-сервери оновлено",
|
||||
"updated_upstream_dns_toast": "DNS-сервери успішно збережено",
|
||||
"dns_test_ok_toast": "Вказані DNS сервери працюють правильно",
|
||||
"dns_test_not_ok_toast": "Сервер «{{key}}»: неможливо використати. Перевірте правильність введення",
|
||||
"dns_test_warning_toast": "Upstream «{{key}}» не відповідає на тестові запити та може працювати не правильно",
|
||||
"unblock": "Дозволити",
|
||||
"block": "Заборонити",
|
||||
"disallow_this_client": "Заборонити цього клієнта",
|
||||
@@ -245,7 +248,7 @@
|
||||
"loading_table_status": "Завантаження...",
|
||||
"page_table_footer_text": "Сторінка",
|
||||
"rows_table_footer_text": "рядків",
|
||||
"updated_custom_filtering_toast": "Власні правила фільтрування збережено",
|
||||
"updated_custom_filtering_toast": "Власні правила фільтрування успішно збережено",
|
||||
"rule_removed_from_custom_filtering_toast": "Правило вилучено з власних правил фільтрування: {{rule}}",
|
||||
"rule_added_to_custom_filtering_toast": "Правило додано до власних правил фільтрування: {{rule}}",
|
||||
"query_log_response_status": "Стан: {{value}}",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "Обмеження швидкості",
|
||||
"edns_enable": "Увімкнути відправку EDNS Client Subnet",
|
||||
"edns_cs_desc": "Додавати параметр EDNS Client Subnet (ECS) до запитів до upstream-серверів, а також записувати в журнал значення, що надсилаються клієнтами.",
|
||||
"edns_use_custom_ip": "Використання користувацької IP-адреси для EDNS",
|
||||
"edns_use_custom_ip_desc": "Дозволити використовувати користувацьку IP-адресу для EDNS",
|
||||
"rate_limit_desc": "Кількість запитів в секунду, які може робити один клієнт. Встановлене значення «0» означатиме необмежену кількість.",
|
||||
"blocking_ipv4_desc": "IP-адреса, яку потрібно видати для заблокованого A запиту",
|
||||
"blocking_ipv6_desc": "IP-адреса, яку потрібно видати для заблокованого АААА запиту",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Відповісти з кодом NXDOMAIN",
|
||||
"blocking_mode_null_ip": "Нульовий IP: Відповісти з нульовою IP-адресою (0.0.0.0 для A; :: для AAAA)",
|
||||
"blocking_mode_custom_ip": "Спеціальна IP-адреса: Відповісти із вручну встановленою IP-адресою",
|
||||
"theme_auto": "Авто",
|
||||
"theme_light": "Світла",
|
||||
"theme_dark": "Темна",
|
||||
"upstream_dns_client_desc": "Якщо це поле залишатиметься порожнім, AdGuard Home використовуватиме сервери, вказані в <0>налаштуваннях DNS</0>.",
|
||||
"tracker_source": "Джерело відстежувача",
|
||||
"source_label": "Джерело",
|
||||
@@ -362,11 +370,11 @@
|
||||
"encryption_config_saved": "Конфігурацію шифрування збережено",
|
||||
"encryption_server": "Назва сервера",
|
||||
"encryption_server_enter": "Введіть ваше доменне ім'я",
|
||||
"encryption_server_desc": "Для використання HTTPS вам потрібно ввести назву сервера, який відповідає вашому SSL-сертифікату або сертифікату з підтримкою піддоменів. Якщо значення не вказано, то сервер буде приймати TLS-з'єднання для будь-якого домену.",
|
||||
"encryption_server_desc": "Якщо встановлено, AdGuard Home розпізнає ClientID, відповідає на DDR-запити та додатково перевіряє з'єднання. Якщо не встановлено, то цей функціонал вимкнено. Мусить відповідати одному з параметрів DNS Names в сертифікаті.",
|
||||
"encryption_redirect": "Автоматично перенаправляти на HTTPS",
|
||||
"encryption_redirect_desc": "Якщо встановлено, AdGuard Home автоматично перенаправить вас з HTTP на адреси HTTPS.",
|
||||
"encryption_https": "Порт HTTPS",
|
||||
"encryption_https_desc": "Якщо HTTPS-порт налаштовано, інтерфейс адміністратора AdGuard Home буде доступний через HTTPS, а також DNS-over-HTTPS-сервер буде доступний за адресою /dns-query.",
|
||||
"encryption_https_desc": "Якщо HTTPS-порт налаштовано, інтерфейс адміністратора AdGuard Home буде доступний через HTTPS, а також сервер DNS-over-HTTPS буде доступний за адресою '/dns-query'.",
|
||||
"encryption_dot": "Порт DNS-over-TLS",
|
||||
"encryption_dot_desc": "Якщо цей порт налаштовано, AdGuard Home запустить на цьому порту сервер DNS-over-TLS.",
|
||||
"encryption_doq": "Порт DNS-over-QUIC",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "Видавець",
|
||||
"encryption_hostnames": "Назви вузлів",
|
||||
"encryption_reset": "Ви впевнені, що хочете скинути налаштування шифрування?",
|
||||
"encryption_warning": "Попередження",
|
||||
"topline_expiring_certificate": "Ваш сертифікат SSL скоро закінчиться. Оновіть <0>Налаштування шифрування</0>.",
|
||||
"topline_expired_certificate": "Термін дії вашого сертифіката SSL закінчився. Оновіть <0>Налаштування шифрування</0>.",
|
||||
"form_error_port_range": "Введіть значення порту в діапазоні 80−65535",
|
||||
@@ -443,11 +452,12 @@
|
||||
"access_disallowed_title": "Заборонені клієнти",
|
||||
"access_disallowed_desc": "Перелік CIDR, IP-адрес та <a>ClientIDs</a>. Якщо налаштовано, AdGuard Home буде скасовувати запити від цих клієнтів. Проте якщо налаштовано список Дозволених клієнтів, то це поле проігнорується.",
|
||||
"access_blocked_title": "Заборонені домени",
|
||||
"access_blocked_desc": "Не плутайте з фільтрами. AdGuard Home буде ігнорувати DNS-запити з цими доменами, такі запити навіть не будуть записані до журналу. Ви можете вказати точні доменні імена, замінні знаки та правила фільтрування URL-адрес, наприклад, 'example.org', '*.example.org' або '||example.org^' відповідно.",
|
||||
"access_blocked_desc": "Не плутайте з фільтрами. AdGuard Home буде ігнорувати DNS-запити з цими доменами, такі запити навіть не будуть записані до журналу. Ви можете вказати точні доменні імена, замінні знаки та правила фільтрування URL-адрес, наприклад, «example.org», «*.example.org» або «||example.org^» відповідно.",
|
||||
"access_settings_saved": "Налаштування доступу успішно збережено",
|
||||
"updates_checked": "Оновлення успішно перевірені",
|
||||
"updates_checked": "Доступна нова версія AdGuard Home",
|
||||
"updates_version_equal": "AdGuard Home останньої версії",
|
||||
"check_updates_now": "Перевірити наявність оновлень",
|
||||
"version_request_error": "Не вдалося перевірити оновлення. Будь ласка, перевірте з'єднання з інтернетом.",
|
||||
"dns_privacy": "Конфіденційність DNS",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS: </0>Використайте рядок <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Використайте рядок <1>{{address}}</1>.",
|
||||
@@ -514,8 +524,12 @@
|
||||
"statistics_clear": "Очистити статистику",
|
||||
"statistics_clear_confirm": "Ви впевнені, що хочете очистити статистику?",
|
||||
"statistics_retention_confirm": "Ви впевнені, що хочете змінити тривалість статистики? Якщо зменшити значення інтервалу, деякі дані будуть втрачені",
|
||||
"statistics_cleared": "Статистика успішно очищена",
|
||||
"statistics_cleared": "Статистику успішно очищено",
|
||||
"statistics_enable": "Увімкнути статистику",
|
||||
"ignore_domains": "Ігноровані домени (по одному на рядок)",
|
||||
"ignore_domains_title": "Ігноровані домени",
|
||||
"ignore_domains_desc_stats": "Запити для цих доменів в статистику не пишуться",
|
||||
"ignore_domains_desc_query": "Запити для цих доменів не записуються до журналу запитів",
|
||||
"interval_hours": "{{count}} година",
|
||||
"interval_hours_plural": "{{count}} годин(и)",
|
||||
"filters_configuration": "Конфігурація фільтрів",
|
||||
@@ -591,7 +605,7 @@
|
||||
"show_blocked_responses": "Заблоковані",
|
||||
"show_whitelisted_responses": "Дозволені",
|
||||
"show_processed_responses": "Оброблені",
|
||||
"blocked_safebrowsing": "Заблоковано Безпечним переглядом",
|
||||
"blocked_safebrowsing": "Заблоковано модулем «Безпека перегляду»",
|
||||
"blocked_adult_websites": "Заблоковано «Батьківським контролем»",
|
||||
"blocked_threats": "Заблоковано загроз",
|
||||
"allowed": "Дозволено",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "Список блокування",
|
||||
"milliseconds_abbreviation": "мс",
|
||||
"cache_size": "Розмір кешу",
|
||||
"cache_size_desc": "Розмір кешу DNS (у байтах).",
|
||||
"cache_size_desc": "Розмір кешу DNS (у байтах). Щоб вимкнути кешування, залиште пустим.",
|
||||
"cache_ttl_min_override": "Змінити мінімальний TTL",
|
||||
"cache_ttl_max_override": "Змінити максимальний TTL",
|
||||
"enter_cache_size": "Введіть розмір кешу (байт)",
|
||||
@@ -631,5 +645,34 @@
|
||||
"parental_control": "Батьківський контроль",
|
||||
"safe_browsing": "Безпечний перегляд",
|
||||
"served_from_cache": "{{value}} <i>(отримано з кешу)</i>",
|
||||
"form_error_password_length": "Пароль мусить мати принаймні {{value}} символів"
|
||||
"form_error_password_length": "Пароль мусить мати принаймні {{value}} символів",
|
||||
"anonymizer_notification": "<0>Примітка:</0> IP-анонімізацію ввімкнено. Ви можете вимкнути його в <1>Загальні налаштування</1> .",
|
||||
"confirm_dns_cache_clear": "Ви впевнені, що бажаєте очистити кеш DNS?",
|
||||
"cache_cleared": "Кеш DNS успішно очищено",
|
||||
"clear_cache": "Очистити кеш",
|
||||
"make_static": "Зробити статичним",
|
||||
"theme_auto_desc": "Автоматична (на основі теми вашого пристрою)",
|
||||
"theme_dark_desc": "Темна тема",
|
||||
"theme_light_desc": "Світла тема",
|
||||
"disable_for_seconds": "На {{count}} секунду",
|
||||
"disable_for_seconds_plural": "На {{count}} секунд",
|
||||
"disable_for_minutes": "На {{count}} хвилину",
|
||||
"disable_for_minutes_plural": "На {{count}} хвилин",
|
||||
"disable_for_hours": "На {{count}} годину",
|
||||
"disable_for_hours_plural": "На {{count}} годин",
|
||||
"disable_until_tomorrow": "До завтра",
|
||||
"disable_notify_for_seconds": "Вимкнення захисту на {{count}} секунду",
|
||||
"disable_notify_for_seconds_plural": "Вимкнення захисту на {{count}} секунд",
|
||||
"disable_notify_for_minutes": "Вимкнення захисту на {{count}} хвилину",
|
||||
"disable_notify_for_minutes_plural": "Вимкнення захисту на {{count}} хвилин",
|
||||
"disable_notify_for_hours": "Вимкнення захисту на {{count}} годину",
|
||||
"disable_notify_for_hours_plural": "Вимкнення захисту на {{count}} годин",
|
||||
"disable_notify_until_tomorrow": "Відключення захисту до завтра",
|
||||
"enable_protection_timer": "Захист буде ввімкнено о {{time}}",
|
||||
"custom_retention_input": "Введіть час в годинах",
|
||||
"custom_rotation_input": "Введіть час в годинах",
|
||||
"protection_section_label": "Захист",
|
||||
"log_and_stats_section_label": "Журнал запитів і статистика",
|
||||
"ignore_query_log": "Ігнорувати цей клієнт у журналі запитів",
|
||||
"ignore_statistics": "Ігноруйте цей клієнт в статистиці"
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "Cài đặt DHCP IPv6",
|
||||
"form_error_required": "Trường bắt buộc",
|
||||
"form_error_ip4_format": "Địa chỉ IPv4 không hợp lệ",
|
||||
"form_error_ip4_range_start_format": "Địa chỉ IPv4 không hợp lệ của phạm vi bắt đầu",
|
||||
"form_error_ip4_range_end_format": "Địa chỉ IPv4 không hợp lệ của cuối phạm vi",
|
||||
"form_error_ip4_gateway_format": "Địa chỉ IPv4 không hợp lệ của cổng kết nối",
|
||||
"form_error_ip6_format": "Địa chỉ IPv6 không hợp lệ",
|
||||
"form_error_ip_format": "Địa chỉ IP không hợp lệ",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "Tên máy chủ không hợp lệ",
|
||||
"form_error_subnet": "Mạng con \"{{cidr}}\" không chứa địa chỉ IP \"{{ip}}\"",
|
||||
"form_error_positive": "Phải lớn hơn 0",
|
||||
"form_error_gateway_ip": "Cho thuê không thể có địa chỉ IP của cổng",
|
||||
"out_of_range_error": "Phải nằm ngoài phạm vi \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "Phải thấp hơn khởi động phạm vi",
|
||||
"greater_range_start_error": "Phải lớn hơn khoảng bắt đầu",
|
||||
"greater_range_end_error": "Phải lớn hơn phạm vi kết thúc",
|
||||
"subnet_error": "Địa chỉ phải nằm trong một mạng con",
|
||||
"gateway_or_subnet_invalid": "Mặt nạ mạng con không hợp lệ",
|
||||
"dhcp_form_gateway_input": "Cổng IP",
|
||||
@@ -210,17 +208,21 @@
|
||||
"example_comment_hash": "# Cũng là một chú thích.",
|
||||
"example_regex_meaning": "chặn quyền truy cập vào các miền khớp với biểu thức chính được quy định.",
|
||||
"example_upstream_regular": "DNS thông thường (dùng UDP);",
|
||||
"example_upstream_regular_port": "DNS thông thường (qua UDP, với cổng);",
|
||||
"example_upstream_udp": "DNS thông thường (qua UDP, tên máy chủ);",
|
||||
"example_upstream_dot": "được mã hoá <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "được mã hoá <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "DNS-over-HTTPS được mã hóa với <0>HTTP/3</0> bắt buộc và không có dự phòng cho HTTP/2 trở xuống;",
|
||||
"example_upstream_doq": "được mã hoá <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "bạn có thể sử dụng <0>DNS Stamps</0> for <1>DNSCrypt</1> hoặc <2>DNS-over-HTTPS</2> ",
|
||||
"example_upstream_tcp": "DNS thông thường(dùng TCP);",
|
||||
"example_upstream_tcp_port": "DNS thông thường (qua TCP, với cổng);",
|
||||
"example_upstream_tcp_hostname": "DNS thông thường (qua TCP, tên máy chủ);",
|
||||
"all_lists_up_to_date_toast": "Tất cả danh sách đã ở phiên bản mới nhất",
|
||||
"updated_upstream_dns_toast": "Các máy chủ thượng nguồn đã được lưu thành công",
|
||||
"dns_test_ok_toast": "Máy chủ DNS có thể sử dụng",
|
||||
"dns_test_not_ok_toast": "Máy chủ \"\"': không thể sử dụng, vui lòng kiểm tra lại",
|
||||
"dns_test_not_ok_toast": "Máy chủ \"{{key}}\"': không thể sử dụng, vui lòng kiểm tra lại",
|
||||
"dns_test_warning_toast": "Ngược lại \"{{key}}\" không phản hồi các yêu cầu kiểm tra và có thể không hoạt động bình thường",
|
||||
"unblock": "Bỏ chặn",
|
||||
"block": "Chặn",
|
||||
"disallow_this_client": "Không cho phép client này",
|
||||
@@ -296,6 +298,9 @@
|
||||
"blocking_mode_nxdomain": "NXDOMAIN: Phản hổi với mã NXDOMAIN",
|
||||
"blocking_mode_null_ip": "Null IP: Trả lời bằng không địa chỉ IP (0.0.0.0 cho A; :: cho AAAA)",
|
||||
"blocking_mode_custom_ip": "IP tùy chỉnh: Phản hồi với địa chỉ IP đã được tiết lập",
|
||||
"theme_auto": "Tự động",
|
||||
"theme_light": "Light theme",
|
||||
"theme_dark": "Dark theme",
|
||||
"upstream_dns_client_desc": "Nếu để trống trường này, AdGuardHome sẽ sử dụng nhũng máy chủ được cấu hình ở <0>Cấu hình DNS</0>.",
|
||||
"tracker_source": "Nguồn theo dõi",
|
||||
"source_label": "Nguồn",
|
||||
@@ -362,7 +367,7 @@
|
||||
"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_server_desc": "Để sử dụng HTTPS, bạn cần nhập tên máy chủ phù hợp với chứng chỉ SSL của bạn. Nếu trường này bị bỏ trống, nó sẽ chấp nhận kết nối TLS với tất cả tên miền.",
|
||||
"encryption_server_desc": "Nếu được đặt, AdGuard Home sẽ phát hiện ClientID, phản hồi các truy vấn DDR và thực hiện xác thực kết nối bổ sung. Nếu không được đặt, các tính năng này sẽ bị vô hiệu hóa. Phải khớp với một trong các Tên DNS trong chứng chỉ.",
|
||||
"encryption_redirect": "Tự động chuyển hướng đến HTTPS",
|
||||
"encryption_redirect_desc": "Nếu được chọn, AdGuard Home sẽ tự động chuyển hướng bạn từ địa chỉ HTTP sang địa chỉ HTTPS.",
|
||||
"encryption_https": "Cổng HTTPS",
|
||||
@@ -388,6 +393,7 @@
|
||||
"encryption_issuer": "Phát hành",
|
||||
"encryption_hostnames": "Tên máy chủ",
|
||||
"encryption_reset": "Bạn có chắc chắn muốn đặt lại cài đặt mã hóa?",
|
||||
"encryption_warning": "Cảnh báo",
|
||||
"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",
|
||||
@@ -445,9 +451,10 @@
|
||||
"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_checked": "Phiên bản mới của AdGuard Home có sẵn",
|
||||
"updates_version_equal": "AdGuard Home đã được cập nhật",
|
||||
"check_updates_now": "Kiểm tra cập nhật ngay bây giờ",
|
||||
"version_request_error": "Cập nhật không thành công. Hãy kiểm tra kết nối internet của bạn.",
|
||||
"dns_privacy": "DNS Riêng Tư",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> Sử dụng chuỗi <1>{{address}}</1>.",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> Sử dụng chuỗi <1>{{address}}</1>.",
|
||||
@@ -601,7 +608,7 @@
|
||||
"blocklist": "Danh sách chặn",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "Kích thước cache",
|
||||
"cache_size_desc": "Kích thước cache DNS (bytes).",
|
||||
"cache_size_desc": "Kích thước bộ nhớ cache DNS (tính bằng byte). Để tắt bộ nhớ đệm, hãy để trống.",
|
||||
"cache_ttl_min_override": "Ghi đè TTL tối thiểu",
|
||||
"cache_ttl_max_override": "Ghi đè TTL tối đa",
|
||||
"enter_cache_size": "Nhập kích thước bộ nhớ cache (byte)",
|
||||
@@ -631,5 +638,10 @@
|
||||
"parental_control": "Quản lý của phụ huynh",
|
||||
"safe_browsing": "Duyệt web an toàn",
|
||||
"served_from_cache": "{{value}} <i>(được phục vụ từ bộ nhớ cache)</i>",
|
||||
"form_error_password_length": "Mật khẩu phải có ít nhất {{value}} ký tự"
|
||||
"form_error_password_length": "Mật khẩu phải có ít nhất {{value}} ký tự",
|
||||
"anonymizer_notification": "<0> Lưu ý:</0> Tính năng ẩn danh IP được bật. Bạn có thể tắt nó trong <1> Cài đặt chung</1>.",
|
||||
"confirm_dns_cache_clear": "Bạn có chắc chắn muốn xóa bộ đệm ẩn DNS không?",
|
||||
"cache_cleared": "Đã xóa thành công bộ đệm DNS",
|
||||
"clear_cache": "Xóa bộ nhớ cache",
|
||||
"protection_section_label": "Sự bảo vệ"
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"resolve_clients_title": "启用客户端的 IP 地址的反向解析",
|
||||
"resolve_clients_desc": "通过发送 PTR 查询到对应的解析器 (本地客户端的私人 DNS 服务器,公共 IP 客户端的上游服务器) 将 IP 地址反向解析成其客户端主机名。",
|
||||
"use_private_ptr_resolvers_title": "使用私人反向 DNS 解析器",
|
||||
"use_private_ptr_resolvers_desc": "使用这些上游服务器对本地服务的地址执行反向 DNS 查找。 如果禁用,则 AdGuard Home会以 NXDOMAIN 响应所有此类PTR请求,从 DHCP、/ etc / hosts 等获知的客户端除外。",
|
||||
"use_private_ptr_resolvers_desc": "使用这些上游服务器对本地服务的地址执行反向 DNS 查找。 如果禁用,则 AdGuard Home 会以 NXDOMAIN 响应所有此类 PTR 请求,从 DHCP、/etc/hosts 等获知的客户端除外。",
|
||||
"check_dhcp_servers": "检查 DHCP 服务器",
|
||||
"save_config": "保存配置",
|
||||
"enabled_dhcp": "DHCP 服务器已启用",
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6设置",
|
||||
"form_error_required": "必填字段",
|
||||
"form_error_ip4_format": "无效的 IPv4 地址",
|
||||
"form_error_ip4_range_start_format": "范围起始值的 IPv4 地址无效",
|
||||
"form_error_ip4_range_end_format": "范围终值的 IPv4 地址无效",
|
||||
"form_error_ip4_gateway_format": "网关 IPv4 地址无效",
|
||||
"form_error_ip6_format": "无效的 IPv6 地址",
|
||||
"form_error_ip_format": "无效的 IP 地址",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "无效的服务器名",
|
||||
"form_error_subnet": "子网 \"{{cidr}}\" 不包含 IP 地址 \"{{ip}}\"",
|
||||
"form_error_positive": "必须大于 0",
|
||||
"form_error_gateway_ip": "租约期限不能有网关的 IP 地址",
|
||||
"out_of_range_error": "必定超出了范围 \"{{start}}\"-\"{{end}}\"",
|
||||
"lower_range_start_error": "必须小于范围起始值",
|
||||
"greater_range_start_error": "必须大于范围起始值",
|
||||
"greater_range_end_error": "必须大于范围终值",
|
||||
"subnet_error": "地址必须在一个子网内",
|
||||
"gateway_or_subnet_invalid": "子网掩码无效",
|
||||
"dhcp_form_gateway_input": "网关 IP",
|
||||
@@ -69,7 +67,7 @@
|
||||
"dhcp_warning": "如果你想要启用内置的 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 地址。",
|
||||
"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": "新建静态租约",
|
||||
@@ -130,7 +128,7 @@
|
||||
"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": "被广告过滤器和 Hosts 黑名单阻止的 DNS 请求总数",
|
||||
"number_of_dns_query_blocked_24_hours_by_sec": "被 AdGuard 安全浏览模块阻止的 DNS 请求总数",
|
||||
"number_of_dns_query_blocked_24_hours_adult": "被阻止的成人网站总数",
|
||||
"enforced_save_search": "强制安全搜索",
|
||||
@@ -148,10 +146,10 @@
|
||||
"no_servers_specified": "未找到指定的服务器",
|
||||
"general_settings": "常规设置",
|
||||
"dns_settings": "DNS 设置",
|
||||
"dns_blocklists": "DNS 拦截列表",
|
||||
"dns_allowlists": "DNS 允许列表",
|
||||
"dns_blocklists": "DNS 黑名单",
|
||||
"dns_allowlists": "DNS 白名单",
|
||||
"dns_blocklists_desc": "AdGuard Home将阻止匹配DNS拦截清单的域名",
|
||||
"dns_allowlists_desc": "来自DNS允许列表的域将被允许,即使它们位于任意阻止列表中也是如此",
|
||||
"dns_allowlists_desc": "来自 DNS 白名单的域名将被允许,即使它们位于任意黑名单中也是如此。",
|
||||
"custom_filtering_rules": "自定义过滤规则",
|
||||
"encryption_settings": "加密设置",
|
||||
"dhcp_settings": "DHCP 设置",
|
||||
@@ -169,33 +167,34 @@
|
||||
"enabled_parental_toast": "家长控制已启用",
|
||||
"disabled_safe_search_toast": "安全搜索已禁用",
|
||||
"enabled_save_search_toast": "安全搜索已启用",
|
||||
"updated_save_search_toast": "安全搜索设置更新成功",
|
||||
"enabled_table_header": "已启用",
|
||||
"name_table_header": "名称",
|
||||
"list_url_table_header": "清单网址",
|
||||
"rules_count_table_header": "规则数",
|
||||
"last_time_updated_table_header": "上次更新时间",
|
||||
"actions_table_header": "活跃状态",
|
||||
"actions_table_header": "操作",
|
||||
"request_table_header": "请求",
|
||||
"edit_table_action": "编辑",
|
||||
"delete_table_action": "删除",
|
||||
"elapsed": "耗时",
|
||||
"filters_and_hosts_hint": "AdGuard Home 可以解析基础的 adblock 规则和 Hosts 语法。",
|
||||
"no_blocklist_added": "未添加阻止列表",
|
||||
"no_whitelist_added": "未添加允许列表",
|
||||
"add_blocklist": "添加阻止列表",
|
||||
"add_allowlist": "添加允许列表",
|
||||
"no_blocklist_added": "未添加黑名单",
|
||||
"no_whitelist_added": "未添加白名单",
|
||||
"add_blocklist": "添加黑名单",
|
||||
"add_allowlist": "添加白名单",
|
||||
"cancel_btn": "取消",
|
||||
"enter_name_hint": "输入名称",
|
||||
"enter_url_or_path_hint": "请输入URL或列表的绝对路径",
|
||||
"check_updates_btn": "检查更新",
|
||||
"new_blocklist": "新封锁清单",
|
||||
"new_allowlist": "新的允许清单",
|
||||
"edit_blocklist": "编辑阻止列表",
|
||||
"edit_allowlist": "编辑允许列表",
|
||||
"choose_blocklist": "选择拦截列表",
|
||||
"choose_allowlist": "选择允许列表",
|
||||
"enter_valid_blocklist": "输入有效的阻止列表URL",
|
||||
"enter_valid_allowlist": "输入有效的允许列表URL",
|
||||
"new_allowlist": "新增白名单",
|
||||
"edit_blocklist": "编辑黑名单",
|
||||
"edit_allowlist": "编辑白名单",
|
||||
"choose_blocklist": "选择黑名单",
|
||||
"choose_allowlist": "选择白名单",
|
||||
"enter_valid_blocklist": "输入有效的黑名单 URL",
|
||||
"enter_valid_allowlist": "输入有效的白名单 URL",
|
||||
"form_error_url_format": "无效的 URL 格式",
|
||||
"form_error_url_or_path_format": "无效的 URL 或列表的绝对路径",
|
||||
"custom_filter_rules": "自定义过滤器规则",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# 这也是一行注释。",
|
||||
"example_regex_meaning": "阻止访问与指定的正则表达式匹配的域名。",
|
||||
"example_upstream_regular": "常规 DNS(基于 UDP);",
|
||||
"example_upstream_regular_port": "常规 DNS(通过 UDP,带端口);",
|
||||
"example_upstream_udp": "常规 DNS(通过 UDP、主机名);",
|
||||
"example_upstream_dot": "加密 <0>DNS-over-TLS</0>;",
|
||||
"example_upstream_doh": "加密 <0>DNS-over-HTTPS</0>;",
|
||||
"example_upstream_doh3": "带有强制 <0>HTTP/3</0> 的加密 DNS-over-HTTPS,并且没有回退到 HTTP/2 或更低版本;",
|
||||
"example_upstream_doq": "加密 <0>DNS-over-QUIC</0>",
|
||||
"example_upstream_sdns": "<1>DNSCrypt</1> 的 <0>DNS Stamps</0> 或者 <2>DNS-over-HTTPS</2> 解析器;",
|
||||
"example_upstream_tcp": "常规 DNS(基于 TCP );",
|
||||
"example_upstream_tcp_port": "常规 DNS(通过 TCP,带端口);",
|
||||
"example_upstream_tcp_hostname": "常规 DNS(通过 TCP、主机名);",
|
||||
"all_lists_up_to_date_toast": "所有列表都是最新的",
|
||||
"updated_upstream_dns_toast": "上游服务器保存成功",
|
||||
"dns_test_ok_toast": "指定的 DNS 服务器现已正常运行",
|
||||
"dns_test_not_ok_toast": "服务器 \"{{key}}\":无法使用,请检查你输入的是否正确",
|
||||
"dns_test_warning_toast": "上游 “{{key}}” 不响应测试请求,可能无法正常工作",
|
||||
"unblock": "放行",
|
||||
"block": "拦截",
|
||||
"disallow_this_client": "不允许这个客户端",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "查询日志已成功清除",
|
||||
"query_log_updated": "已成功更新查询日志",
|
||||
"query_log_clear": "清除查询日志",
|
||||
"query_log_retention": "查询记录保留时间",
|
||||
"query_log_retention": "查询日志保留时间",
|
||||
"query_log_enable": "启用日志",
|
||||
"query_log_configuration": "日志配置",
|
||||
"query_log_disabled": "查询日志已禁用,在<0>这些设置</0>中能配置它们",
|
||||
"query_log_strict_search": "使用双引号进行严谨搜索",
|
||||
"query_log_retention_confirm": "您确定要更改查询记录保留时间吗? 如果您减少间隔时间的值, 某些数据可能会丢失。",
|
||||
"query_log_retention_confirm": "您确定要更改查询记录保留时间吗?如果减少时间间隔数值,某些数据可能会丢失",
|
||||
"anonymize_client_ip": "匿名化客户端IP",
|
||||
"anonymize_client_ip_desc": "不要在日志和统计信息中保存客户端的完整 IP 地址",
|
||||
"dns_config": "DNS 服务配置",
|
||||
@@ -267,9 +270,9 @@
|
||||
"dns_cache_config_desc": "您可以在此处配置 DNS 缓存",
|
||||
"blocking_mode": "拦截模式",
|
||||
"default": "默认",
|
||||
"nxdomain": "无效域名",
|
||||
"nxdomain": "NXDOMAIN",
|
||||
"refused": "REFUSED",
|
||||
"null_ip": "无效 IP",
|
||||
"null_ip": "空 IP",
|
||||
"custom_ip": "自定义 IP",
|
||||
"blocking_ipv4": "拦截 IPv4",
|
||||
"blocking_ipv6": "拦截 IPv6",
|
||||
@@ -288,14 +291,19 @@
|
||||
"rate_limit": "速度限制",
|
||||
"edns_enable": "启用 EDNS 客户端子网",
|
||||
"edns_cs_desc": "在上游请求中加入 EDNS 客户端子网(“EDNS Client Subnet”,即 ECS)选项,并在查询日志中记录客户端发送的数值。",
|
||||
"edns_use_custom_ip": "为 EDNS 使用自定义 IP",
|
||||
"edns_use_custom_ip_desc": "允许为 EDNS 使用自定义 IP",
|
||||
"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 地址",
|
||||
"blocking_mode_refused": "REFUSED:以 REFUSED 码响应请求",
|
||||
"blocking_mode_nxdomain": "NXDOMAIN:以NXDOMAIN码响应",
|
||||
"blocking_mode_null_ip": "空IP:以零IP地址响应(A记录 0.0.0.0;AAAA记录 ::)",
|
||||
"blocking_mode_null_ip": "空 IP:以零 IP 地址响应(A 记录 0.0.0.0;AAAA 记录 ::)",
|
||||
"blocking_mode_custom_ip": "自定IP:以手动设置的IP地址响应",
|
||||
"theme_auto": "自动",
|
||||
"theme_light": "浅色主题",
|
||||
"theme_dark": "深色主题",
|
||||
"upstream_dns_client_desc": "如果将此字段留空,AdGuard Home 将使用在<0>DNS设置</0>中配置的服务器。",
|
||||
"tracker_source": "追踪器来源",
|
||||
"source_label": "源",
|
||||
@@ -339,7 +347,7 @@
|
||||
"install_devices_windows_list_3": "在窗口的左侧点击「更改适配器设置」。",
|
||||
"install_devices_windows_list_4": "选择您正在连接的网络设备,右击它并选择「属性”」。",
|
||||
"install_devices_windows_list_5": "在列表中找到「Internet 协议版本 4 (TCP/IPv4)」,选择并再次点击「属性」。",
|
||||
"install_devices_windows_list_6": "选择“使用下面的 DNS 服务器地址”,并输入您的 AdGuard Home 服务器地址。",
|
||||
"install_devices_windows_list_6": "选择「使用下面的 DNS 服务器地址」,并输入您的 AdGuard Home 服务器地址。",
|
||||
"install_devices_macos_list_1": "点击苹果图标,进入「系统首选项」。",
|
||||
"install_devices_macos_list_2": "点击「网络」。",
|
||||
"install_devices_macos_list_3": "选择在列表中的第一个连接,并点击「高级」。",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "加密配置已保存",
|
||||
"encryption_server": "服务器名称",
|
||||
"encryption_server_enter": "输入您的域名",
|
||||
"encryption_server_desc": "为了使用 HTTPS,请您输入与 SSL 证书或通配证书相匹配的服务器名称。如此字段未设置,服务器将要为所有域名接受 TLS 连接。",
|
||||
"encryption_server_desc": "设置后,AdGuard Home 检测客户端标识号,对 DDR 查询作出反应,以及进一步检查连接。在没有设置的情况下,该功能被禁用。必须与证书里的一个 DNS 名称相匹配。",
|
||||
"encryption_redirect": "HTTPS 自动重定向",
|
||||
"encryption_redirect_desc": "如果勾选此选项,AdGuard Home 将自动将您从 HTTP 重定向到 HTTPS 地址。",
|
||||
"encryption_https": "HTTPS 端口",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "颁发者",
|
||||
"encryption_hostnames": "主机名",
|
||||
"encryption_reset": "您确定想要重置加密设置?",
|
||||
"encryption_warning": "警告",
|
||||
"topline_expiring_certificate": "您的 SSL 证书即将过期。请更新 <0>加密设置</0> 。",
|
||||
"topline_expired_certificate": "您的 SSL 证书已过期。请更新 <0>加密设置</0> 。",
|
||||
"form_error_port_range": "输入 80 - 65535 范围内的端口值",
|
||||
@@ -395,7 +404,7 @@
|
||||
"form_error_equal": "不可相同",
|
||||
"form_error_password": "密码不匹配",
|
||||
"reset_settings": "重置设置",
|
||||
"update_announcement": "AdGuard Home {{version}} 现已发布! <0>点击此处</0> 以获取详细信息。",
|
||||
"update_announcement": "AdGuard Home {{version}} 现已发布! <0>点击此处</0>以获取详细信息。",
|
||||
"setup_guide": "设置指导",
|
||||
"dns_addresses": "DNS 地址",
|
||||
"dns_start": "正在启动DNS服务",
|
||||
@@ -421,7 +430,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_subnet_ip": "输入一个 IP 地址,其须位于子网 \"{{cidr}}\"",
|
||||
"form_enter_mac": "输入 MAC",
|
||||
"form_enter_id": "输入标识符",
|
||||
"form_add_id": "添加标识符",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "不允许的域名",
|
||||
"access_blocked_desc": "不要将此功能与过滤器混淆。AdGuard Home 将排除匹配这些网域的 DNS 查询,并且这些查询将不会在查询日志中显示。在此可以明确指定域名、通配符(wildcard)和网址过滤的规则,例如 \"example.org\"、\"*.example.org\" 或 \"||example.org^\"。",
|
||||
"access_settings_saved": "访问设置保存成功",
|
||||
"updates_checked": "检查更新成功",
|
||||
"updates_checked": "AdGuard Home 的新版本现在可用",
|
||||
"updates_version_equal": "AdGuard Home已经是最新版本",
|
||||
"check_updates_now": "立即检查更新",
|
||||
"version_request_error": "检查更新失败。请检查您的因特网连接。",
|
||||
"dns_privacy": "DNS 隐私",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0> 使用 <1>{{address}}</1> 字符串。",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0> 使用 <1>{{address}}</1> 字符串。",
|
||||
@@ -471,7 +481,7 @@
|
||||
"rewrite_add": "添加 DNS 重写",
|
||||
"rewrite_not_found": "未找到 DNS 重写",
|
||||
"rewrite_confirm_delete": "您确定要删除 \"{{key}}\" 的 DNS 重写?",
|
||||
"rewrite_desc": "可以轻松地配置特定的域名的自定义 DNS 响应。",
|
||||
"rewrite_desc": "可以轻松地为特定域名配置自定义 DNS 响应。",
|
||||
"rewrite_applied": " 重定向规则已应用",
|
||||
"rewrite_hosts_applied": "根据hosts文件规则已被重写",
|
||||
"dns_rewrites": "DNS 重写",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "您确定要更改统计记录保留时间吗? 如果您减少间隔时间的值, 某些数据可能会丢失。",
|
||||
"statistics_cleared": "统计数据已成功清除",
|
||||
"statistics_enable": "启用统计数据",
|
||||
"ignore_domains": "忽略的网域(以换行符分隔)",
|
||||
"ignore_domains_title": "被忽略的网域",
|
||||
"ignore_domains_desc_stats": "这些网域的查询不在统计信息",
|
||||
"ignore_domains_desc_query": "这些网域的查询不在查询日志记录",
|
||||
"interval_hours": "{{count}} 小时",
|
||||
"interval_hours_plural": "{{count}} 小时",
|
||||
"filters_configuration": "过滤器配置",
|
||||
@@ -551,7 +565,7 @@
|
||||
"disable_ipv6_desc": "丢弃所有 IPv6 地址 (AAAA) 的 DNS 查询。",
|
||||
"fastest_addr": "最快的 IP 地址",
|
||||
"fastest_addr_desc": "查询所有 DNS 服务器并返回所有响应中速度最快的 IP 地址。因 AdGuard Home 必须等待全部 DNS 服务器均有所回应,因而会降低 DNS 查询的速度,但同时,此举将会改善总体的连接。",
|
||||
"autofix_warning_text": "若您单击“修复”,AdGuardHome将会配置您的系统以使用AdGuardHome的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处理。",
|
||||
"tags_title": "标签",
|
||||
@@ -571,14 +585,14 @@
|
||||
"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",
|
||||
"install_static_ok": "好消息!静态IP地址已经配置",
|
||||
"install_static_ok": "好消息!静态 IP 地址已经配置",
|
||||
"install_static_error": "AdGuard Home 无法为这个网络接口自动配置它。请参阅如何手动完成此操作的说明。",
|
||||
"install_static_configure": "AdGuard Home 检测到一个动态 IP 地址 <0>{{ip}}</0> 被使用。您想把它作为您的静态地址吗?",
|
||||
"confirm_static_ip": "AdGuard Home 将把{{ip}} 配置为您的静态IP地址。您想要继续吗?",
|
||||
@@ -598,10 +612,10 @@
|
||||
"filtered": "已过滤",
|
||||
"rewritten": "重写项",
|
||||
"safe_search": "安全搜索",
|
||||
"blocklist": "拦截列表",
|
||||
"blocklist": "黑名单",
|
||||
"milliseconds_abbreviation": "毫秒",
|
||||
"cache_size": "缓存大小",
|
||||
"cache_size_desc": "DNS 缓存大小(单位:字节)。",
|
||||
"cache_size_desc": "DNS 缓存大小(单位:字节)。要关闭缓存,请留空。",
|
||||
"cache_ttl_min_override": "覆盖最小TTL值",
|
||||
"cache_ttl_max_override": "覆盖最大TTL值",
|
||||
"enter_cache_size": "输入缓存大小(字节)",
|
||||
@@ -619,17 +633,46 @@
|
||||
"filter_category_general_desc": "在大多数设备上阻止跟踪和广告的列表",
|
||||
"filter_category_security_desc": "专用于拦截恶意软件、钓鱼或欺诈域名的列表",
|
||||
"filter_category_regional_desc": "专注于区域广告和跟踪服务器的列表",
|
||||
"filter_category_other_desc": "其他阻止列表",
|
||||
"filter_category_other_desc": "其他黑名单",
|
||||
"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查询。",
|
||||
"port_53_faq_link": "53端口常被 DNSStubListener 或 systemdn 解析的服务占用。请阅读<0>这份关于如何解决这一问题的说明</0>。",
|
||||
"adg_will_drop_dns_queries": "AdGuard Home 会丢弃所有来自此客户端的 DNS 查询。",
|
||||
"filter_allowlist": "警告:此操作将把规则 \"{{disallowed_rule}}\" 排除在允许客户端的列表之外。",
|
||||
"last_rule_in_allowlist": "无法禁止此客户端,因为排除 “{{disallowed_rule}}” 规则将禁用“允许客户端”的列表。",
|
||||
"use_saved_key": "使用之前保存的密钥",
|
||||
"parental_control": "家长控制",
|
||||
"safe_browsing": "安全浏览",
|
||||
"served_from_cache": "{{value}}<i>(由缓存提供)</i>",
|
||||
"form_error_password_length": "密码必须至少有 {{value}} 个字符"
|
||||
"form_error_password_length": "密码必须至少有 {{value}} 个字符",
|
||||
"anonymizer_notification": "<0>注意:</0> IP 匿名化已启用。您可以在<1>常规设置</1>中禁用它。",
|
||||
"confirm_dns_cache_clear": "您确定要清除 DNS 缓存吗?",
|
||||
"cache_cleared": "已成功清除 DNS 缓存",
|
||||
"clear_cache": "清除缓存",
|
||||
"make_static": "静态化",
|
||||
"theme_auto_desc": "自动(基于设备的配色方案)",
|
||||
"theme_dark_desc": "暗黑主题",
|
||||
"theme_light_desc": "浅色主题",
|
||||
"disable_for_seconds": "{{count}} 秒",
|
||||
"disable_for_seconds_plural": "{{count}} 秒",
|
||||
"disable_for_minutes": "{{count}} 分钟",
|
||||
"disable_for_minutes_plural": "{{count}} 分钟",
|
||||
"disable_for_hours": "{{count}} 小时",
|
||||
"disable_for_hours_plural": "{{count}} 小时",
|
||||
"disable_until_tomorrow": "直到明天",
|
||||
"disable_notify_for_seconds": "禁用保护 {{count}} 秒",
|
||||
"disable_notify_for_seconds_plural": "禁用保护 {{count}} 秒",
|
||||
"disable_notify_for_minutes": "禁用保护 {{count}} 分钟",
|
||||
"disable_notify_for_minutes_plural": "禁用保护 {{count}} 分钟",
|
||||
"disable_notify_for_hours": "禁用保护 {{count}} 小时",
|
||||
"disable_notify_for_hours_plural": "禁用保护 {{count}} 小时",
|
||||
"disable_notify_until_tomorrow": "禁用保护直到明天",
|
||||
"enable_protection_timer": "保护将于 {{time}} 启用",
|
||||
"custom_retention_input": "输入保留时间(小时)",
|
||||
"custom_rotation_input": "输入旋转时间(小时)",
|
||||
"protection_section_label": "防护",
|
||||
"log_and_stats_section_label": "查询日志和统计数据",
|
||||
"ignore_query_log": "在查询日志中忽略此客户端",
|
||||
"ignore_statistics": "在统计数据中忽略此客户端"
|
||||
}
|
||||
|
||||
@@ -38,8 +38,6 @@
|
||||
"form_error_required": "必要欄位",
|
||||
"form_error_ip4_format": "無效的 IPv4 格式",
|
||||
"form_error_ip6_format": "無效的 IPv6 格式",
|
||||
"form_error_ip4_range_start_format": "無效的 IPv4 範圍起始位址",
|
||||
"form_error_ip4_range_end_format": "無效的 IPv4 範圍結束位址",
|
||||
"form_error_ip4_gateway_format": "閘道的 IPv4 位址無效",
|
||||
"form_error_ip_format": "無效的 IP 位址",
|
||||
"form_error_mac_format": "無效的 「MAC 位址」格式",
|
||||
@@ -381,6 +379,7 @@
|
||||
"encryption_issuer": "簽發者",
|
||||
"encryption_hostnames": "主機名稱",
|
||||
"encryption_reset": "您確定要重設加密設定嗎?",
|
||||
"encryption_warning": "警告",
|
||||
"topline_expiring_certificate": "您的 SSL 憑證即將到期。請前往<0>加密設定</0>更新。",
|
||||
"topline_expired_certificate": "您的 SSL 憑證已到期。請前往<0>加密設定</0>更新。",
|
||||
"form_error_port_range": "輸入範圍 80-65535 中的值",
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
"dhcp_ipv6_settings": "DHCP IPv6 設定",
|
||||
"form_error_required": "必填的欄位",
|
||||
"form_error_ip4_format": "無效的 IPv4 位址",
|
||||
"form_error_ip4_range_start_format": "無效起始範圍的 IPv4 位址",
|
||||
"form_error_ip4_range_end_format": "無效結束範圍的 IPv4 位址",
|
||||
"form_error_ip4_gateway_format": "無效閘道的 IPv4 位址",
|
||||
"form_error_ip6_format": "無效的 IPv6 位址",
|
||||
"form_error_ip_format": "無效的 IP 位址",
|
||||
@@ -47,10 +45,10 @@
|
||||
"form_error_server_name": "無效的伺服器名稱",
|
||||
"form_error_subnet": "子網路 \"{{cidr}}\" 不包含該 IP 位址 \"{{ip}}\"",
|
||||
"form_error_positive": "必須大於 0",
|
||||
"form_error_gateway_ip": "租約不能有閘道的 IP 位址",
|
||||
"out_of_range_error": "必須在\"{{start}}\"-\"{{end}}\"範圍之外",
|
||||
"lower_range_start_error": "必須低於起始範圍",
|
||||
"greater_range_start_error": "必須大於起始範圍",
|
||||
"greater_range_end_error": "必須大於結束範圍",
|
||||
"subnet_error": "位址必須在子網路中",
|
||||
"gateway_or_subnet_invalid": "無效的子網路遮罩",
|
||||
"dhcp_form_gateway_input": "閘道 IP",
|
||||
@@ -169,6 +167,7 @@
|
||||
"enabled_parental_toast": "已啟用家長控制",
|
||||
"disabled_safe_search_toast": "已禁用安全搜尋",
|
||||
"enabled_save_search_toast": "已啟用安全搜尋",
|
||||
"updated_save_search_toast": "安全搜尋設定更新成功",
|
||||
"enabled_table_header": "已啟用",
|
||||
"name_table_header": "名稱",
|
||||
"list_url_table_header": "清單網址",
|
||||
@@ -210,17 +209,21 @@
|
||||
"example_comment_hash": "# 也是一個註解。",
|
||||
"example_regex_meaning": "封鎖至與該已明確指定的規則運算式(Regular Expression)相符的網域之存取。",
|
||||
"example_upstream_regular": "常規 DNS(透過 UDP);",
|
||||
"example_upstream_regular_port": "常規 DNS(透過 UDP,含連接埠);",
|
||||
"example_upstream_udp": "常規 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_doh3": "有強制的 <0>HTTP/3</0> 且無退回到 HTTP/2 或更低版本之加密的 DNS-over-HTTPS;",
|
||||
"example_upstream_doq": "加密的 <0>DNS-over-QUIC</0>;",
|
||||
"example_upstream_sdns": "關於 <1>DNSCrypt</1> 或 <2>DNS-over-HTTPS</2> 解析器之 <0>DNS 戳記</0>;",
|
||||
"example_upstream_tcp": "常規 DNS(透過 TCP);",
|
||||
"example_upstream_tcp_port": "常規 DNS(透過 TCP,含連接埠);",
|
||||
"example_upstream_tcp_hostname": "常規 DNS(透過 TCP,主機名稱);",
|
||||
"all_lists_up_to_date_toast": "所有的清單已是最新的",
|
||||
"updated_upstream_dns_toast": "上游的伺服器被成功地儲存",
|
||||
"dns_test_ok_toast": "已明確指定的 DNS 伺服器正在正確地運作",
|
||||
"dns_test_not_ok_toast": "伺服器 \"{{key}}\":無法被使用,請檢查您已正確地填寫它",
|
||||
"dns_test_warning_toast": "上游 “{{key}}” 不回應測試請求,可能無法正常工作",
|
||||
"unblock": "解除封鎖",
|
||||
"block": "封鎖",
|
||||
"disallow_this_client": "不允許此用戶端",
|
||||
@@ -254,12 +257,12 @@
|
||||
"query_log_cleared": "該查詢記錄已被成功地清除",
|
||||
"query_log_updated": "該查詢記錄已被成功地更新",
|
||||
"query_log_clear": "清除查詢記錄",
|
||||
"query_log_retention": "查詢記錄保留",
|
||||
"query_log_retention": "查詢記錄保留時間",
|
||||
"query_log_enable": "啟用記錄",
|
||||
"query_log_configuration": "記錄配置",
|
||||
"query_log_disabled": "查詢記錄被禁用並可在<0>設定</0>中被配置",
|
||||
"query_log_strict_search": "使用雙引號於嚴謹的搜尋",
|
||||
"query_log_retention_confirm": "您確定您想要更改查詢記錄保留嗎?如果您減少該間隔值,某些資料將被丟失",
|
||||
"query_log_retention_confirm": "您確定要更改記錄檔保存期限嗎?如果您縮短期限部分資料可能將會遺失",
|
||||
"anonymize_client_ip": "將用戶端 IP 匿名",
|
||||
"anonymize_client_ip_desc": "不要儲存用戶端之完整的 IP 位址到記錄或統計資料裡",
|
||||
"dns_config": "DNS 伺服器配置",
|
||||
@@ -288,6 +291,8 @@
|
||||
"rate_limit": "速率限制",
|
||||
"edns_enable": "啟用對於 DNS 的擴充機制(EDNS)用戶端子網路",
|
||||
"edns_cs_desc": "新增對於 DNS 的擴充機制(EDNS)用戶端子網路選項到上游的請求,並在查詢記錄中記錄由用戶端傳送的數值。",
|
||||
"edns_use_custom_ip": "為 EDNS 使用自訂的 IP",
|
||||
"edns_use_custom_ip_desc": "允許為 EDNS 使用自訂的 IP",
|
||||
"rate_limit_desc": "每個用戶端被允許的每秒請求之數量。設定它為 0 表示無限制。",
|
||||
"blocking_ipv4_desc": "要被返回給已封鎖的 A 請求之 IP 位址",
|
||||
"blocking_ipv6_desc": "要被返回給已封鎖的 AAAA 請求之 IP 位址",
|
||||
@@ -296,6 +301,9 @@
|
||||
"blocking_mode_nxdomain": "不存在的網域(NXDOMAIN):以 NXDOMAIN 碼回覆",
|
||||
"blocking_mode_null_ip": "無效的 IP:以零值 IP 位址(0.0.0.0 供 A;:: 供 AAAA)回覆",
|
||||
"blocking_mode_custom_ip": "自訂的 IP:以一組手動地被設定的 IP 位址回覆",
|
||||
"theme_auto": "自動",
|
||||
"theme_light": "淺色",
|
||||
"theme_dark": "深色",
|
||||
"upstream_dns_client_desc": "如果您將此欄位留空,AdGuard Home 將使用在 <0>DNS 設定</0>中被配置的伺服器。",
|
||||
"tracker_source": "追蹤器來源",
|
||||
"source_label": "來源",
|
||||
@@ -362,7 +370,7 @@
|
||||
"encryption_config_saved": "加密配置被儲存",
|
||||
"encryption_server": "伺服器名稱",
|
||||
"encryption_server_enter": "輸入您的域名",
|
||||
"encryption_server_desc": "為了使用 HTTPS,您需要輸入與您的安全通訊端層(SSL)憑證或萬用字元憑證相符的伺服器名稱。如果此欄位未被設定,它將接受向任何網域的傳輸層安全性協定(TLS)連線。",
|
||||
"encryption_server_desc": "如果被設定,AdGuard Home 檢測用戶端 IDs,回覆 DDR 查詢,並執行額外的連線驗證。如果未被設定,這些功能被禁用。必須與在該憑證裡的 DNS 名稱其中之一相符。",
|
||||
"encryption_redirect": "自動地重新導向到 HTTPS",
|
||||
"encryption_redirect_desc": "如果被勾選,AdGuard Home 將自動地重新導向您從 HTTP 到 HTTPS 位址。",
|
||||
"encryption_https": "HTTPS 連接埠",
|
||||
@@ -388,6 +396,7 @@
|
||||
"encryption_issuer": "簽發者",
|
||||
"encryption_hostnames": "主機名稱",
|
||||
"encryption_reset": "您確定您想要重置加密設定嗎?",
|
||||
"encryption_warning": "警告",
|
||||
"topline_expiring_certificate": "您的安全通訊端層(SSL)憑證即將到期。更新<0>加密設定</0>。",
|
||||
"topline_expired_certificate": "您的安全通訊端層(SSL)憑證為已到期的。更新<0>加密設定</0>。",
|
||||
"form_error_port_range": "輸入在 80-65535 之範圍內的連接埠號碼",
|
||||
@@ -445,9 +454,10 @@
|
||||
"access_blocked_title": "未被允許的網域",
|
||||
"access_blocked_desc": "不要把這個和過濾器混淆。AdGuard Home 排除與這些網域相符的 DNS 查詢,且這些查詢甚至不會出現在查詢記錄中。您可相應地明確指定確切的域名、萬用字元(wildcard)或網址過濾器的規則,例如,\"example.org\"、\"*.example.org\" 或 \"||example.org^\"。",
|
||||
"access_settings_saved": "存取設定被成功地儲存",
|
||||
"updates_checked": "更新被成功地檢查",
|
||||
"updates_checked": "AdGuard Home 的新版本為可用的",
|
||||
"updates_version_equal": "AdGuard Home 為最新的",
|
||||
"check_updates_now": "立即檢查更新",
|
||||
"version_request_error": "更新檢查已失敗。請檢查您的網際網路連線。",
|
||||
"dns_privacy": "DNS 隱私",
|
||||
"setup_dns_privacy_1": "<0>DNS-over-TLS:</0>使用 <1>{{address}}</1> 字串。",
|
||||
"setup_dns_privacy_2": "<0>DNS-over-HTTPS:</0>使用 <1>{{address}}</1> 字串。",
|
||||
@@ -516,6 +526,10 @@
|
||||
"statistics_retention_confirm": "您確定您想要更改統計資料保留嗎?如果您減少該間隔值,某些資料將被丟失",
|
||||
"statistics_cleared": "統計資料被成功地清除",
|
||||
"statistics_enable": "啟用統計資料",
|
||||
"ignore_domains": "忽略的網域(以換行符分隔)",
|
||||
"ignore_domains_title": "被忽略的網域",
|
||||
"ignore_domains_desc_stats": "這些網域的查詢不在統計資料",
|
||||
"ignore_domains_desc_query": "這些網域的查詢不在查詢記錄",
|
||||
"interval_hours": "{{count}} 小時",
|
||||
"interval_hours_plural": "{{count}} 小時",
|
||||
"filters_configuration": "過濾器配置",
|
||||
@@ -601,7 +615,7 @@
|
||||
"blocklist": "封鎖清單",
|
||||
"milliseconds_abbreviation": "ms",
|
||||
"cache_size": "快取大小",
|
||||
"cache_size_desc": "DNS 快取大小(以位元組)。",
|
||||
"cache_size_desc": "DNS 快取大小(以位元組)。要禁用快取,留空。",
|
||||
"cache_ttl_min_override": "覆寫最小的存活時間(TTL)",
|
||||
"cache_ttl_max_override": "覆寫最大的存活時間(TTL)",
|
||||
"enter_cache_size": "輸入快取大小(位元組)",
|
||||
@@ -630,6 +644,35 @@
|
||||
"use_saved_key": "使用該先前已儲存的金鑰",
|
||||
"parental_control": "家長控制",
|
||||
"safe_browsing": "安全瀏覽",
|
||||
"served_from_cache": "{{value}} <i>(由快取提供)</i>",
|
||||
"form_error_password_length": "密碼必須為至少長 {{value}} 個字元"
|
||||
"served_from_cache": "{{value}} <i>(由快取提供)</i>",
|
||||
"form_error_password_length": "密碼必須為至少長 {{value}} 個字元",
|
||||
"anonymizer_notification": "<0>注意:</0>IP 匿名化被啟用。您可在<1>一般設定</1>中禁用它。",
|
||||
"confirm_dns_cache_clear": "您確定您想要清除 DNS 快取嗎?",
|
||||
"cache_cleared": "DNS 快取被成功地清除",
|
||||
"clear_cache": "清除快取",
|
||||
"make_static": "靜態化",
|
||||
"theme_auto_desc": "自動(基於裝置的配色方案)",
|
||||
"theme_dark_desc": "深色主題",
|
||||
"theme_light_desc": "淺色主題",
|
||||
"disable_for_seconds": "{{count}} 秒",
|
||||
"disable_for_seconds_plural": "{{count}} 秒",
|
||||
"disable_for_minutes": "{{count}} 分鐘",
|
||||
"disable_for_minutes_plural": "{{count}} 分鐘",
|
||||
"disable_for_hours": "{{count}} 小時",
|
||||
"disable_for_hours_plural": "{{count}} 小時",
|
||||
"disable_until_tomorrow": "直到明天",
|
||||
"disable_notify_for_seconds": "計 {{count}} 秒禁用防護",
|
||||
"disable_notify_for_seconds_plural": "計 {{count}} 秒禁用防護",
|
||||
"disable_notify_for_minutes": "計 {{count}} 分鐘禁用防護",
|
||||
"disable_notify_for_minutes_plural": "計 {{count}} 分鐘禁用防護",
|
||||
"disable_notify_for_hours": "計 {{count}} 小時禁用防護",
|
||||
"disable_notify_for_hours_plural": "計 {{count}} 小時禁用防護",
|
||||
"disable_notify_until_tomorrow": "禁用防護直到明天",
|
||||
"enable_protection_timer": "防護將於 {{time}} 被啟用",
|
||||
"custom_retention_input": "輸入保留時間(小時)",
|
||||
"custom_rotation_input": "輸入旋轉時間(小時)",
|
||||
"protection_section_label": "防護",
|
||||
"log_and_stats_section_label": "查詢記錄和統計資料",
|
||||
"ignore_query_log": "在查詢記錄中忽略此用戶端",
|
||||
"ignore_statistics": "在統計資料中忽略此用戶端"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { createAction } from 'redux-actions';
|
||||
import i18next from 'i18next';
|
||||
|
||||
import apiClient from '../api/Api';
|
||||
import { splitByNewLine } from '../helpers/helpers';
|
||||
@@ -19,6 +20,22 @@ export const getDnsConfig = () => async (dispatch) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const clearDnsCacheRequest = createAction('CLEAR_DNS_CACHE_REQUEST');
|
||||
export const clearDnsCacheFailure = createAction('CLEAR_DNS_CACHE_FAILURE');
|
||||
export const clearDnsCacheSuccess = createAction('CLEAR_DNS_CACHE_SUCCESS');
|
||||
|
||||
export const clearDnsCache = () => async (dispatch) => {
|
||||
dispatch(clearDnsCacheRequest());
|
||||
try {
|
||||
const data = await apiClient.clearCache();
|
||||
dispatch(clearDnsCacheSuccess(data));
|
||||
dispatch(addSuccessToast(i18next.t('cache_cleared')));
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
dispatch(clearDnsCacheFailure());
|
||||
}
|
||||
};
|
||||
|
||||
export const setDnsConfigRequest = createAction('SET_DNS_CONFIG_REQUEST');
|
||||
export const setDnsConfigFailure = createAction('SET_DNS_CONFIG_FAILURE');
|
||||
export const setDnsConfigSuccess = createAction('SET_DNS_CONFIG_SUCCESS');
|
||||
|
||||
@@ -24,6 +24,7 @@ export const getTlsStatus = () => async (dispatch) => {
|
||||
export const setTlsConfigRequest = createAction('SET_TLS_CONFIG_REQUEST');
|
||||
export const setTlsConfigFailure = createAction('SET_TLS_CONFIG_FAILURE');
|
||||
export const setTlsConfigSuccess = createAction('SET_TLS_CONFIG_SUCCESS');
|
||||
export const dnsStatusSuccess = createAction('DNS_STATUS_SUCCESS');
|
||||
|
||||
export const setTlsConfig = (config) => async (dispatch, getState) => {
|
||||
dispatch(setTlsConfigRequest());
|
||||
@@ -39,9 +40,23 @@ export const setTlsConfig = (config) => async (dispatch, getState) => {
|
||||
const response = await apiClient.setTlsConfig(values);
|
||||
response.certificate_chain = atob(response.certificate_chain);
|
||||
response.private_key = atob(response.private_key);
|
||||
|
||||
if (values.enabled && values.force_https && window.location.protocol === 'http:') {
|
||||
window.location.reload();
|
||||
return;
|
||||
}
|
||||
redirectToCurrentProtocol(response, httpPort);
|
||||
|
||||
const dnsStatus = await apiClient.getGlobalStatus();
|
||||
if (dnsStatus) {
|
||||
if (dnsStatus.protection_disabled_duration === 0) {
|
||||
dnsStatus.protection_disabled_duration = null;
|
||||
}
|
||||
dispatch(dnsStatusSuccess(dnsStatus));
|
||||
}
|
||||
|
||||
dispatch(setTlsConfigSuccess(response));
|
||||
dispatch(addSuccessToast('encryption_config_saved'));
|
||||
redirectToCurrentProtocol(response, httpPort);
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
dispatch(setTlsConfigFailure());
|
||||
|
||||
@@ -31,7 +31,9 @@ export const setRulesSuccess = createAction('SET_RULES_SUCCESS');
|
||||
export const setRules = (rules) => async (dispatch) => {
|
||||
dispatch(setRulesRequest());
|
||||
try {
|
||||
const normalizedRules = normalizeRulesTextarea(rules);
|
||||
const normalizedRules = {
|
||||
rules: normalizeRulesTextarea(rules)?.split('\n'),
|
||||
};
|
||||
await apiClient.setRules(normalizedRules);
|
||||
dispatch(addSuccessToast('updated_custom_filtering_toast'));
|
||||
dispatch(setRulesSuccess());
|
||||
|
||||
@@ -6,7 +6,14 @@ import endsWith from 'lodash/endsWith';
|
||||
import escapeRegExp from 'lodash/escapeRegExp';
|
||||
import React from 'react';
|
||||
import { compose } from 'redux';
|
||||
import { splitByNewLine, sortClients, filterOutComments } from '../helpers/helpers';
|
||||
import {
|
||||
splitByNewLine,
|
||||
sortClients,
|
||||
filterOutComments,
|
||||
msToSeconds,
|
||||
msToMinutes,
|
||||
msToHours,
|
||||
} from '../helpers/helpers';
|
||||
import {
|
||||
BLOCK_ACTIONS,
|
||||
CHECK_TIMEOUT,
|
||||
@@ -14,6 +21,7 @@ import {
|
||||
SETTINGS_NAMES,
|
||||
FORM_NAME,
|
||||
MANUAL_UPDATE_LINK,
|
||||
DISABLE_PROTECTION_TIMINGS,
|
||||
} from '../helpers/constants';
|
||||
import { areEqualVersions } from '../helpers/version';
|
||||
import { getTlsStatus } from './encryption';
|
||||
@@ -24,6 +32,12 @@ import { getFilteringStatus, setRules } from './filtering';
|
||||
export const toggleSettingStatus = createAction('SETTING_STATUS_TOGGLE');
|
||||
export const showSettingsFailure = createAction('SETTINGS_FAILURE_SHOW');
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} settingKey = SETTINGS_NAMES
|
||||
* @param {*} status: boolean | SafeSearchConfig
|
||||
* @returns
|
||||
*/
|
||||
export const toggleSetting = (settingKey, status) => async (dispatch) => {
|
||||
let successMessage = '';
|
||||
try {
|
||||
@@ -49,14 +63,9 @@ export const toggleSetting = (settingKey, status) => async (dispatch) => {
|
||||
dispatch(toggleSettingStatus({ settingKey }));
|
||||
break;
|
||||
case SETTINGS_NAMES.safesearch:
|
||||
if (status) {
|
||||
successMessage = 'disabled_safe_search_toast';
|
||||
await apiClient.disableSafesearch();
|
||||
} else {
|
||||
successMessage = 'enabled_save_search_toast';
|
||||
await apiClient.enableSafesearch();
|
||||
}
|
||||
dispatch(toggleSettingStatus({ settingKey }));
|
||||
successMessage = 'updated_save_search_toast';
|
||||
await apiClient.updateSafesearch(status);
|
||||
dispatch(toggleSettingStatus({ settingKey, value: status }));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -71,7 +80,9 @@ export const initSettingsRequest = createAction('SETTINGS_INIT_REQUEST');
|
||||
export const initSettingsFailure = createAction('SETTINGS_INIT_FAILURE');
|
||||
export const initSettingsSuccess = createAction('SETTINGS_INIT_SUCCESS');
|
||||
|
||||
export const initSettings = (settingsList) => async (dispatch) => {
|
||||
export const initSettings = (settingsList = {
|
||||
safebrowsing: {}, parental: {},
|
||||
}) => async (dispatch) => {
|
||||
dispatch(initSettingsRequest());
|
||||
try {
|
||||
const safebrowsingStatus = await apiClient.getSafebrowsingStatus();
|
||||
@@ -80,7 +91,6 @@ export const initSettings = (settingsList) => async (dispatch) => {
|
||||
const {
|
||||
safebrowsing,
|
||||
parental,
|
||||
safesearch,
|
||||
} = settingsList;
|
||||
const newSettingsList = {
|
||||
safebrowsing: {
|
||||
@@ -92,8 +102,7 @@ export const initSettings = (settingsList) => async (dispatch) => {
|
||||
enabled: parentalStatus.enabled,
|
||||
},
|
||||
safesearch: {
|
||||
...safesearch,
|
||||
enabled: safesearchStatus.enabled,
|
||||
...safesearchStatus,
|
||||
},
|
||||
};
|
||||
dispatch(initSettingsSuccess({ settingsList: newSettingsList }));
|
||||
@@ -107,19 +116,54 @@ export const toggleProtectionRequest = createAction('TOGGLE_PROTECTION_REQUEST')
|
||||
export const toggleProtectionFailure = createAction('TOGGLE_PROTECTION_FAILURE');
|
||||
export const toggleProtectionSuccess = createAction('TOGGLE_PROTECTION_SUCCESS');
|
||||
|
||||
export const toggleProtection = (status) => async (dispatch) => {
|
||||
const getDisabledMessage = (time) => {
|
||||
switch (time) {
|
||||
case DISABLE_PROTECTION_TIMINGS.HALF_MINUTE:
|
||||
return i18next.t(
|
||||
'disable_notify_for_seconds',
|
||||
{ count: msToSeconds(DISABLE_PROTECTION_TIMINGS.HALF_MINUTE) },
|
||||
);
|
||||
case DISABLE_PROTECTION_TIMINGS.MINUTE:
|
||||
return i18next.t(
|
||||
'disable_notify_for_minutes',
|
||||
{ count: msToMinutes(DISABLE_PROTECTION_TIMINGS.MINUTE) },
|
||||
);
|
||||
case DISABLE_PROTECTION_TIMINGS.TEN_MINUTES:
|
||||
return i18next.t(
|
||||
'disable_notify_for_minutes',
|
||||
{ count: msToMinutes(DISABLE_PROTECTION_TIMINGS.TEN_MINUTES) },
|
||||
);
|
||||
case DISABLE_PROTECTION_TIMINGS.HOUR:
|
||||
return i18next.t(
|
||||
'disable_notify_for_hours',
|
||||
{ count: msToHours(DISABLE_PROTECTION_TIMINGS.HOUR) },
|
||||
);
|
||||
case DISABLE_PROTECTION_TIMINGS.TOMORROW:
|
||||
return i18next.t('disable_notify_until_tomorrow');
|
||||
default:
|
||||
return 'disabled_protection';
|
||||
}
|
||||
};
|
||||
|
||||
export const toggleProtection = (status, time = null) => async (dispatch) => {
|
||||
dispatch(toggleProtectionRequest());
|
||||
try {
|
||||
const successMessage = status ? 'disabled_protection' : 'enabled_protection';
|
||||
await apiClient.setDnsConfig({ protection_enabled: !status });
|
||||
const successMessage = status ? getDisabledMessage(time) : 'enabled_protection';
|
||||
await apiClient.setProtection({ enabled: !status, duration: time });
|
||||
dispatch(addSuccessToast(successMessage));
|
||||
dispatch(toggleProtectionSuccess());
|
||||
dispatch(toggleProtectionSuccess({ disabledDuration: time }));
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
dispatch(toggleProtectionFailure());
|
||||
}
|
||||
};
|
||||
|
||||
export const setDisableDurationTime = createAction('SET_DISABLED_DURATION_TIME');
|
||||
|
||||
export const setProtectionTimerTime = (updatedTime) => async (dispatch) => {
|
||||
dispatch(setDisableDurationTime({ timeToEnableProtection: updatedTime }));
|
||||
};
|
||||
|
||||
export const getVersionRequest = createAction('GET_VERSION_REQUEST');
|
||||
export const getVersionFailure = createAction('GET_VERSION_FAILURE');
|
||||
export const getVersionSuccess = createAction('GET_VERSION_SUCCESS');
|
||||
@@ -141,7 +185,7 @@ export const getVersion = (recheck = false) => async (dispatch, getState) => {
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
dispatch(addErrorToast({ error: 'version_request_error' }));
|
||||
dispatch(getVersionFailure());
|
||||
}
|
||||
};
|
||||
@@ -272,6 +316,9 @@ export const getDnsStatus = () => async (dispatch) => {
|
||||
|
||||
const handleRequestSuccess = (response) => {
|
||||
const dnsStatus = response.data;
|
||||
if (dnsStatus.protection_disabled_duration === 0) {
|
||||
dnsStatus.protection_disabled_duration = null;
|
||||
}
|
||||
const { running } = dnsStatus;
|
||||
const runningStatus = dnsStatus && running;
|
||||
if (runningStatus === true) {
|
||||
@@ -314,13 +361,15 @@ export const testUpstream = (
|
||||
const testMessages = Object.keys(upstreamResponse)
|
||||
.map((key) => {
|
||||
const message = upstreamResponse[key];
|
||||
if (message !== 'OK') {
|
||||
if (message.startsWith('WARNING:')) {
|
||||
dispatch(addErrorToast({ error: i18next.t('dns_test_warning_toast', { key }) }));
|
||||
} else if (message !== 'OK') {
|
||||
dispatch(addErrorToast({ error: i18next.t('dns_test_not_ok_toast', { key }) }));
|
||||
}
|
||||
return message;
|
||||
});
|
||||
|
||||
if (testMessages.every((message) => message === 'OK')) {
|
||||
if (testMessages.every((message) => message === 'OK' || message.startsWith('WARNING:'))) {
|
||||
dispatch(addSuccessToast('dns_test_ok_toast'));
|
||||
}
|
||||
|
||||
@@ -353,7 +402,7 @@ export const changeLanguageSuccess = createAction('CHANGE_LANGUAGE_SUCCESS');
|
||||
export const changeLanguage = (lang) => async (dispatch) => {
|
||||
dispatch(changeLanguageRequest());
|
||||
try {
|
||||
await apiClient.changeLanguage(lang);
|
||||
await apiClient.changeLanguage({ language: lang });
|
||||
dispatch(changeLanguageSuccess());
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
@@ -361,18 +410,18 @@ export const changeLanguage = (lang) => async (dispatch) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const getLanguageRequest = createAction('GET_LANGUAGE_REQUEST');
|
||||
export const getLanguageFailure = createAction('GET_LANGUAGE_FAILURE');
|
||||
export const getLanguageSuccess = createAction('GET_LANGUAGE_SUCCESS');
|
||||
export const changeThemeRequest = createAction('CHANGE_THEME_REQUEST');
|
||||
export const changeThemeFailure = createAction('CHANGE_THEME_FAILURE');
|
||||
export const changeThemeSuccess = createAction('CHANGE_THEME_SUCCESS');
|
||||
|
||||
export const getLanguage = () => async (dispatch) => {
|
||||
dispatch(getLanguageRequest());
|
||||
export const changeTheme = (theme) => async (dispatch) => {
|
||||
dispatch(changeThemeRequest());
|
||||
try {
|
||||
const language = await apiClient.getCurrentLanguage();
|
||||
dispatch(getLanguageSuccess(language));
|
||||
await apiClient.changeTheme({ theme });
|
||||
dispatch(changeThemeSuccess({ theme }));
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
dispatch(getLanguageFailure());
|
||||
dispatch(changeThemeFailure());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -419,7 +468,10 @@ export const findActiveDhcpFailure = createAction('FIND_ACTIVE_DHCP_FAILURE');
|
||||
export const findActiveDhcp = (name) => async (dispatch, getState) => {
|
||||
dispatch(findActiveDhcpRequest());
|
||||
try {
|
||||
const activeDhcp = await apiClient.findActiveDhcp(name);
|
||||
const req = {
|
||||
interface: name,
|
||||
};
|
||||
const activeDhcp = await apiClient.findActiveDhcp(req);
|
||||
dispatch(findActiveDhcpSuccess(activeDhcp));
|
||||
const { check, interface_name, interfaces } = getState().dhcp;
|
||||
const selectedInterface = getState().form[FORM_NAME.DHCP_INTERFACES].values.interface_name;
|
||||
|
||||
@@ -177,7 +177,7 @@ export const getLogsConfigSuccess = createAction('GET_LOGS_CONFIG_SUCCESS');
|
||||
export const getLogsConfig = () => async (dispatch) => {
|
||||
dispatch(getLogsConfigRequest());
|
||||
try {
|
||||
const data = await apiClient.getQueryLogInfo();
|
||||
const data = await apiClient.getQueryLogConfig();
|
||||
dispatch(getLogsConfigSuccess(data));
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
|
||||
@@ -17,6 +17,21 @@ export const getBlockedServices = () => async (dispatch) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const getAllBlockedServicesRequest = createAction('GET_ALL_BLOCKED_SERVICES_REQUEST');
|
||||
export const getAllBlockedServicesFailure = createAction('GET_ALL_BLOCKED_SERVICES_FAILURE');
|
||||
export const getAllBlockedServicesSuccess = createAction('GET_ALL_BLOCKED_SERVICES_SUCCESS');
|
||||
|
||||
export const getAllBlockedServices = () => async (dispatch) => {
|
||||
dispatch(getAllBlockedServicesRequest());
|
||||
try {
|
||||
const data = await apiClient.getAllBlockedServices();
|
||||
dispatch(getAllBlockedServicesSuccess(data));
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
dispatch(getAllBlockedServicesFailure());
|
||||
}
|
||||
};
|
||||
|
||||
export const setBlockedServicesRequest = createAction('SET_BLOCKED_SERVICES_REQUEST');
|
||||
export const setBlockedServicesFailure = createAction('SET_BLOCKED_SERVICES_FAILURE');
|
||||
export const setBlockedServicesSuccess = createAction('SET_BLOCKED_SERVICES_SUCCESS');
|
||||
|
||||
@@ -13,7 +13,7 @@ export const getStatsConfigSuccess = createAction('GET_STATS_CONFIG_SUCCESS');
|
||||
export const getStatsConfig = () => async (dispatch) => {
|
||||
dispatch(getStatsConfigRequest());
|
||||
try {
|
||||
const data = await apiClient.getStatsInfo();
|
||||
const data = await apiClient.getStatsConfig();
|
||||
dispatch(getStatsConfigSuccess(data));
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
import axios from 'axios';
|
||||
|
||||
import { getPathWithQueryString } from '../helpers/helpers';
|
||||
import { QUERY_LOGS_PAGE_LIMIT, HTML_PAGES, R_PATH_LAST_PART } from '../helpers/constants';
|
||||
import {
|
||||
QUERY_LOGS_PAGE_LIMIT, HTML_PAGES, R_PATH_LAST_PART, THEMES,
|
||||
} from '../helpers/constants';
|
||||
import { BASE_URL } from '../../constants';
|
||||
import i18n from '../i18n';
|
||||
import { LANGUAGES } from '../helpers/twosky';
|
||||
|
||||
class Api {
|
||||
baseUrl = BASE_URL;
|
||||
@@ -10,11 +14,17 @@ class Api {
|
||||
async makeRequest(path, method = 'POST', config) {
|
||||
const url = `${this.baseUrl}/${path}`;
|
||||
|
||||
const axiosConfig = config || {};
|
||||
if (method !== 'GET' && axiosConfig.data) {
|
||||
axiosConfig.headers = axiosConfig.headers || {};
|
||||
axiosConfig.headers['Content-Type'] = axiosConfig.headers['Content-Type'] || 'application/json';
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await axios({
|
||||
url,
|
||||
method,
|
||||
...config,
|
||||
...axiosConfig,
|
||||
});
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
@@ -55,7 +65,6 @@ class Api {
|
||||
const { path, method } = this.GLOBAL_TEST_UPSTREAM_DNS;
|
||||
const config = {
|
||||
data: servers,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, config);
|
||||
}
|
||||
@@ -64,7 +73,6 @@ class Api {
|
||||
const { path, method } = this.GLOBAL_VERSION;
|
||||
const config = {
|
||||
data,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, config);
|
||||
}
|
||||
@@ -100,7 +108,6 @@ class Api {
|
||||
const { path, method } = this.FILTERING_REFRESH;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
|
||||
return this.makeRequest(path, method, parameters);
|
||||
@@ -110,7 +117,6 @@ class Api {
|
||||
const { path, method } = this.FILTERING_ADD_FILTER;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
|
||||
return this.makeRequest(path, method, parameters);
|
||||
@@ -120,7 +126,6 @@ class Api {
|
||||
const { path, method } = this.FILTERING_REMOVE_FILTER;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
|
||||
return this.makeRequest(path, method, parameters);
|
||||
@@ -130,7 +135,6 @@ class Api {
|
||||
const { path, method } = this.FILTERING_SET_RULES;
|
||||
const parameters = {
|
||||
data: rules,
|
||||
headers: { 'Content-Type': 'text/plain' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -139,7 +143,6 @@ class Api {
|
||||
const { path, method } = this.FILTERING_CONFIG;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -148,7 +151,6 @@ class Api {
|
||||
const { path, method } = this.FILTERING_SET_URL;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -173,12 +175,7 @@ class Api {
|
||||
|
||||
enableParentalControl() {
|
||||
const { path, method } = this.PARENTAL_ENABLE;
|
||||
const parameter = 'sensitivity=TEEN'; // this parameter TEEN is hardcoded
|
||||
const config = {
|
||||
data: parameter,
|
||||
headers: { 'Content-Type': 'text/plain' },
|
||||
};
|
||||
return this.makeRequest(path, method, config);
|
||||
return this.makeRequest(path, method);
|
||||
}
|
||||
|
||||
disableParentalControl() {
|
||||
@@ -211,42 +208,57 @@ class Api {
|
||||
// Safesearch
|
||||
SAFESEARCH_STATUS = { path: 'safesearch/status', method: 'GET' };
|
||||
|
||||
SAFESEARCH_ENABLE = { path: 'safesearch/enable', method: 'POST' };
|
||||
|
||||
SAFESEARCH_DISABLE = { path: 'safesearch/disable', method: 'POST' };
|
||||
SAFESEARCH_UPDATE = { path: 'safesearch/settings', method: 'PUT' };
|
||||
|
||||
getSafesearchStatus() {
|
||||
const { path, method } = this.SAFESEARCH_STATUS;
|
||||
return this.makeRequest(path, method);
|
||||
}
|
||||
|
||||
enableSafesearch() {
|
||||
const { path, method } = this.SAFESEARCH_ENABLE;
|
||||
return this.makeRequest(path, method);
|
||||
/**
|
||||
* interface SafeSearchConfig {
|
||||
"enabled": boolean,
|
||||
"bing": boolean,
|
||||
"duckduckgo": boolean,
|
||||
"google": boolean,
|
||||
"pixabay": boolean,
|
||||
"yandex": boolean,
|
||||
"youtube": boolean
|
||||
* }
|
||||
* @param {*} data - SafeSearchConfig
|
||||
* @returns 200 ok
|
||||
*/
|
||||
updateSafesearch(data) {
|
||||
const { path, method } = this.SAFESEARCH_UPDATE;
|
||||
return this.makeRequest(path, method, { data });
|
||||
}
|
||||
|
||||
disableSafesearch() {
|
||||
const { path, method } = this.SAFESEARCH_DISABLE;
|
||||
return this.makeRequest(path, method);
|
||||
}
|
||||
// enableSafesearch() {
|
||||
// const { path, method } = this.SAFESEARCH_ENABLE;
|
||||
// return this.makeRequest(path, method);
|
||||
// }
|
||||
|
||||
// disableSafesearch() {
|
||||
// const { path, method } = this.SAFESEARCH_DISABLE;
|
||||
// return this.makeRequest(path, method);
|
||||
// }
|
||||
|
||||
// Language
|
||||
CURRENT_LANGUAGE = { path: 'i18n/current_language', method: 'GET' };
|
||||
|
||||
CHANGE_LANGUAGE = { path: 'i18n/change_language', method: 'POST' };
|
||||
async changeLanguage(config) {
|
||||
const profile = await this.getProfile();
|
||||
profile.language = config.language;
|
||||
|
||||
getCurrentLanguage() {
|
||||
const { path, method } = this.CURRENT_LANGUAGE;
|
||||
return this.makeRequest(path, method);
|
||||
return this.setProfile(profile);
|
||||
}
|
||||
|
||||
changeLanguage(lang) {
|
||||
const { path, method } = this.CHANGE_LANGUAGE;
|
||||
const parameters = {
|
||||
data: lang,
|
||||
headers: { 'Content-Type': 'text/plain' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
// Theme
|
||||
|
||||
async changeTheme(config) {
|
||||
const profile = await this.getProfile();
|
||||
profile.theme = config.theme;
|
||||
|
||||
return this.setProfile(profile);
|
||||
}
|
||||
|
||||
// DHCP
|
||||
@@ -280,16 +292,14 @@ class Api {
|
||||
const { path, method } = this.DHCP_SET_CONFIG;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
|
||||
findActiveDhcp(name) {
|
||||
findActiveDhcp(req) {
|
||||
const { path, method } = this.DHCP_FIND_ACTIVE;
|
||||
const parameters = {
|
||||
data: name,
|
||||
headers: { 'Content-Type': 'text/plain' },
|
||||
data: req,
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -298,7 +308,6 @@ class Api {
|
||||
const { path, method } = this.DHCP_ADD_STATIC_LEASE;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -307,7 +316,6 @@ class Api {
|
||||
const { path, method } = this.DHCP_REMOVE_STATIC_LEASE;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -338,7 +346,6 @@ class Api {
|
||||
const { path, method } = this.INSTALL_CONFIGURE;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -347,7 +354,6 @@ class Api {
|
||||
const { path, method } = this.INSTALL_CHECK_CONFIG;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -368,7 +374,6 @@ class Api {
|
||||
const { path, method } = this.TLS_CONFIG;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -377,7 +382,6 @@ class Api {
|
||||
const { path, method } = this.TLS_VALIDATE;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -402,7 +406,6 @@ class Api {
|
||||
const { path, method } = this.ADD_CLIENT;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -411,7 +414,6 @@ class Api {
|
||||
const { path, method } = this.DELETE_CLIENT;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -420,7 +422,6 @@ class Api {
|
||||
const { path, method } = this.UPDATE_CLIENT;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -445,7 +446,6 @@ class Api {
|
||||
const { path, method } = this.ACCESS_SET;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -466,7 +466,6 @@ class Api {
|
||||
const { path, method } = this.REWRITE_ADD;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -475,7 +474,6 @@ class Api {
|
||||
const { path, method } = this.REWRITE_DELETE;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -485,6 +483,13 @@ class Api {
|
||||
|
||||
BLOCKED_SERVICES_SET = { path: 'blocked_services/set', method: 'POST' };
|
||||
|
||||
BLOCKED_SERVICES_ALL = { path: 'blocked_services/all', method: 'GET' };
|
||||
|
||||
getAllBlockedServices() {
|
||||
const { path, method } = this.BLOCKED_SERVICES_ALL;
|
||||
return this.makeRequest(path, method);
|
||||
}
|
||||
|
||||
getBlockedServices() {
|
||||
const { path, method } = this.BLOCKED_SERVICES_LIST;
|
||||
return this.makeRequest(path, method);
|
||||
@@ -494,7 +499,6 @@ class Api {
|
||||
const { path, method } = this.BLOCKED_SERVICES_SET;
|
||||
const parameters = {
|
||||
data: config,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, parameters);
|
||||
}
|
||||
@@ -502,9 +506,9 @@ class Api {
|
||||
// Settings for statistics
|
||||
GET_STATS = { path: 'stats', method: 'GET' };
|
||||
|
||||
STATS_INFO = { path: 'stats_info', method: 'GET' };
|
||||
GET_STATS_CONFIG = { path: 'stats/config', method: 'GET' };
|
||||
|
||||
STATS_CONFIG = { path: 'stats_config', method: 'POST' };
|
||||
UPDATE_STATS_CONFIG = { path: 'stats/config/update', method: 'PUT' };
|
||||
|
||||
STATS_RESET = { path: 'stats_reset', method: 'POST' };
|
||||
|
||||
@@ -513,16 +517,15 @@ class Api {
|
||||
return this.makeRequest(path, method);
|
||||
}
|
||||
|
||||
getStatsInfo() {
|
||||
const { path, method } = this.STATS_INFO;
|
||||
getStatsConfig() {
|
||||
const { path, method } = this.GET_STATS_CONFIG;
|
||||
return this.makeRequest(path, method);
|
||||
}
|
||||
|
||||
setStatsConfig(data) {
|
||||
const { path, method } = this.STATS_CONFIG;
|
||||
const { path, method } = this.UPDATE_STATS_CONFIG;
|
||||
const config = {
|
||||
data,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, config);
|
||||
}
|
||||
@@ -535,9 +538,9 @@ class Api {
|
||||
// Query log
|
||||
GET_QUERY_LOG = { path: 'querylog', method: 'GET' };
|
||||
|
||||
QUERY_LOG_CONFIG = { path: 'querylog_config', method: 'POST' };
|
||||
UPDATE_QUERY_LOG_CONFIG = { path: 'querylog/config/update', method: 'PUT' };
|
||||
|
||||
QUERY_LOG_INFO = { path: 'querylog_info', method: 'GET' };
|
||||
GET_QUERY_LOG_CONFIG = { path: 'querylog/config', method: 'GET' };
|
||||
|
||||
QUERY_LOG_CLEAR = { path: 'querylog_clear', method: 'POST' };
|
||||
|
||||
@@ -549,16 +552,15 @@ class Api {
|
||||
return this.makeRequest(url, method);
|
||||
}
|
||||
|
||||
getQueryLogInfo() {
|
||||
const { path, method } = this.QUERY_LOG_INFO;
|
||||
getQueryLogConfig() {
|
||||
const { path, method } = this.GET_QUERY_LOG_CONFIG;
|
||||
return this.makeRequest(path, method);
|
||||
}
|
||||
|
||||
setQueryLogConfig(data) {
|
||||
const { path, method } = this.QUERY_LOG_CONFIG;
|
||||
const { path, method } = this.UPDATE_QUERY_LOG_CONFIG;
|
||||
const config = {
|
||||
data,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, config);
|
||||
}
|
||||
@@ -575,7 +577,6 @@ class Api {
|
||||
const { path, method } = this.LOGIN;
|
||||
const config = {
|
||||
data,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, config);
|
||||
}
|
||||
@@ -583,11 +584,24 @@ class Api {
|
||||
// Profile
|
||||
GET_PROFILE = { path: 'profile', method: 'GET' };
|
||||
|
||||
UPDATE_PROFILE = { path: 'profile/update', method: 'PUT' };
|
||||
|
||||
getProfile() {
|
||||
const { path, method } = this.GET_PROFILE;
|
||||
return this.makeRequest(path, method);
|
||||
}
|
||||
|
||||
setProfile(data) {
|
||||
const theme = data.theme ? data.theme : THEMES.auto;
|
||||
const defaultLanguage = i18n.language ? i18n.language : LANGUAGES.en;
|
||||
const language = data.language ? data.language : defaultLanguage;
|
||||
|
||||
const { path, method } = this.UPDATE_PROFILE;
|
||||
const config = { data: { theme, language } };
|
||||
|
||||
return this.makeRequest(path, method, config);
|
||||
}
|
||||
|
||||
// DNS config
|
||||
GET_DNS_CONFIG = { path: 'dns_info', method: 'GET' };
|
||||
|
||||
@@ -602,10 +616,26 @@ class Api {
|
||||
const { path, method } = this.SET_DNS_CONFIG;
|
||||
const config = {
|
||||
data,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
return this.makeRequest(path, method, config);
|
||||
}
|
||||
|
||||
SET_PROTECTION = { path: 'protection', method: 'POST' };
|
||||
|
||||
setProtection(data) {
|
||||
const { enabled, duration } = data;
|
||||
const { path, method } = this.SET_PROTECTION;
|
||||
|
||||
return this.makeRequest(path, method, { data: { enabled, duration } });
|
||||
}
|
||||
|
||||
// Cache
|
||||
CLEAR_CACHE = { path: 'cache_clear', method: 'POST' };
|
||||
|
||||
clearCache() {
|
||||
const { path, method } = this.CLEAR_CACHE;
|
||||
return this.makeRequest(path, method);
|
||||
}
|
||||
}
|
||||
|
||||
const apiClient = new Api();
|
||||
|
||||
@@ -1,11 +1,74 @@
|
||||
:root {
|
||||
--black: #131313;
|
||||
--bgcolor: #f5f7fb;
|
||||
--mcolor: #495057;
|
||||
--scolor: rgba(74, 74, 74, 0.7);
|
||||
--border-color: rgba(0, 40, 100, 0.12);
|
||||
--header-bgcolor: #fff;
|
||||
--card-bgcolor: #fff;
|
||||
--card-border-color: rgba(0, 40, 100, 0.12);
|
||||
--ctrl-bgcolor: #fff;
|
||||
--ctrl-select-bgcolor: rgba(69, 79, 94, 0.12);
|
||||
--ctrl-dropdown-color: #212529;
|
||||
--ctrl-dropdown-bgcolor-focus: #f8f9fa;
|
||||
--ctrl-dropdown-color-focus: #16181b;
|
||||
--btn-success-bgcolor: #5eba00;
|
||||
--form-disabled-bgcolor: #f8f9fa;
|
||||
--form-disabled-color: #495057;
|
||||
--rt-nodata-bgcolor: rgba(255,255,255,0.8);
|
||||
--rt-nodata-color: rgba(0,0,0,0.5);
|
||||
--modal-overlay-bgcolor: rgba(255, 255, 255, 0.75);
|
||||
--logs__table-bgcolor: #fff;
|
||||
--logs__row--blue-bgcolor: #e5effd;
|
||||
--logs__row--white-bgcolor: #fff;
|
||||
--detailed-info-color: #888888;
|
||||
--yellow-pale: rgba(247, 181, 0, 0.1);
|
||||
--green79: #67b279;
|
||||
--gray-a5: #a5a5a5;
|
||||
--gray-d8: #d8d8d8;
|
||||
--gray-f3: #f3f3f3;
|
||||
--loading-bg: rgba(255, 255, 255, 0.48);
|
||||
--font-family-monospace: Monaco, Menlo, "Ubuntu Mono", Consolas, source-code-pro, monospace;
|
||||
--font-size-disable-autozoom: 1rem;
|
||||
--alert-message-color: #24426c;
|
||||
--alert-message-border: #cbdbf2;
|
||||
--alert-message-bg: #dae5f5;
|
||||
--checkbox-bg: #e2e2e2;
|
||||
--radio-bg: #ffffff;
|
||||
}
|
||||
|
||||
[data-theme="dark"] {
|
||||
--black: #ffffff;
|
||||
--bgcolor: #131313;
|
||||
--mcolor: #e6e6e6;
|
||||
--scolor: #a5a5a5;
|
||||
--header-bgcolor: #131313;
|
||||
--border-color: #222;
|
||||
--card-bgcolor: #1c1c1c;
|
||||
--card-border-color: #3d3d3d;
|
||||
--ctrl-bgcolor: #1c1c1c;
|
||||
--ctrl-select-bgcolor: #3d3d3d;
|
||||
--ctrl-dropdown-color: #fff;
|
||||
--ctrl-dropdown-bgcolor-focus: #000;
|
||||
--ctrl-dropdown-color-focus: #fff;
|
||||
--btn-success-bgcolor: #67b279;
|
||||
--form-disabled-bgcolor: #2d2d2d;
|
||||
--form-disabled-color: #a5a5a5;
|
||||
--logs__text-color: #f3f3f3;
|
||||
--rt-nodata-bgcolor: #1c1c1c;
|
||||
--rt-nodata-color: #fff;
|
||||
--modal-overlay-bgcolor: rgba(19, 19, 19, 0.75);
|
||||
--logs__table-bgcolor: #3d3d3d;
|
||||
--logs__row--blue-bgcolor: #467fcf;
|
||||
--logs__row--white-bgcolor: #1c1c1c;
|
||||
--detailed-info-color: #fff;
|
||||
--gray300: #f3f3f3;
|
||||
--loading-bg: #131313;
|
||||
--alert-message-color: #e6e6e6;
|
||||
--alert-message-border: #363648;
|
||||
--alert-message-bg: #363648;
|
||||
--checkbox-bg: #a4a4a4;
|
||||
--radio-bg: #a4a4a4;
|
||||
}
|
||||
|
||||
body {
|
||||
|
||||
@@ -20,8 +20,13 @@ import EncryptionTopline from '../ui/EncryptionTopline';
|
||||
import Icons from '../ui/Icons';
|
||||
import i18n from '../../i18n';
|
||||
import Loading from '../ui/Loading';
|
||||
import { FILTERS_URLS, MENU_URLS, SETTINGS_URLS } from '../../helpers/constants';
|
||||
import { getLogsUrlParams, setHtmlLangAttr } from '../../helpers/helpers';
|
||||
import {
|
||||
FILTERS_URLS,
|
||||
MENU_URLS,
|
||||
SETTINGS_URLS,
|
||||
THEMES,
|
||||
} from '../../helpers/constants';
|
||||
import { getLogsUrlParams, setHtmlLangAttr, setUITheme } from '../../helpers/helpers';
|
||||
import Header from '../Header';
|
||||
import { changeLanguage, getDnsStatus } from '../../actions';
|
||||
|
||||
@@ -38,6 +43,7 @@ import DnsRewrites from '../../containers/DnsRewrites';
|
||||
import CustomRules from '../../containers/CustomRules';
|
||||
import Services from '../Filters/Services';
|
||||
import Logs from '../Logs';
|
||||
import ProtectionTimer from '../ProtectionTimer';
|
||||
|
||||
const ROUTES = [
|
||||
{
|
||||
@@ -109,6 +115,7 @@ const App = () => {
|
||||
isCoreRunning,
|
||||
isUpdateAvailable,
|
||||
processing,
|
||||
theme,
|
||||
} = useSelector((state) => state.dashboard, shallowEqual);
|
||||
|
||||
const { processing: processingEncryption } = useSelector((
|
||||
@@ -138,6 +145,40 @@ const App = () => {
|
||||
setLanguage();
|
||||
}, [language]);
|
||||
|
||||
const handleAutoTheme = (e, accountTheme) => {
|
||||
if (accountTheme !== THEMES.auto) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.matches) {
|
||||
setUITheme(THEMES.dark);
|
||||
} else {
|
||||
setUITheme(THEMES.light);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (theme !== THEMES.auto) {
|
||||
setUITheme(theme);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const colorSchemeMedia = window.matchMedia('(prefers-color-scheme: dark)');
|
||||
setUITheme(theme);
|
||||
|
||||
if (colorSchemeMedia.addEventListener !== undefined) {
|
||||
colorSchemeMedia.addEventListener('change', (e) => {
|
||||
handleAutoTheme(e, theme);
|
||||
});
|
||||
} else {
|
||||
// Deprecated addListener for older versions of Safari.
|
||||
colorSchemeMedia.addListener((e) => {
|
||||
handleAutoTheme(e, theme);
|
||||
});
|
||||
}
|
||||
}, [theme]);
|
||||
|
||||
const reloadPage = () => {
|
||||
window.location.reload();
|
||||
};
|
||||
@@ -150,6 +191,7 @@ const App = () => {
|
||||
{!processingEncryption && <EncryptionTopline />}
|
||||
<LoadingBar className="loading-bar" updateTime={1000} />
|
||||
<Header />
|
||||
<ProtectionTimer />
|
||||
<div className="container container--wrap pb-5">
|
||||
{processing && <Loading />}
|
||||
{!isCoreRunning && <div className="row row-cards">
|
||||
|
||||
@@ -29,8 +29,11 @@ const BlockedDomains = ({
|
||||
blockedFiltering,
|
||||
replacedSafebrowsing,
|
||||
replacedParental,
|
||||
replacedSafesearch,
|
||||
}) => {
|
||||
const totalBlocked = blockedFiltering + replacedSafebrowsing + replacedParental;
|
||||
const totalBlocked = (
|
||||
blockedFiltering + replacedSafebrowsing + replacedParental + replacedSafesearch
|
||||
);
|
||||
|
||||
return (
|
||||
<Card
|
||||
@@ -71,6 +74,7 @@ BlockedDomains.propTypes = {
|
||||
topBlockedDomains: PropTypes.array.isRequired,
|
||||
blockedFiltering: PropTypes.number.isRequired,
|
||||
replacedSafebrowsing: PropTypes.number.isRequired,
|
||||
replacedSafesearch: PropTypes.number.isRequired,
|
||||
replacedParental: PropTypes.number.isRequired,
|
||||
refreshButton: PropTypes.node.isRequired,
|
||||
subtitle: PropTypes.string.isRequired,
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
.dashboard-protection-button.btn-gray {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border-right-color: #a4a4a4;
|
||||
}
|
||||
|
||||
.stats__table .popover__body {
|
||||
left: -10px;
|
||||
min-width: 270px;
|
||||
@@ -34,27 +40,18 @@
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.dashboard-title__button {
|
||||
margin: 0 0.5rem;
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.page-title--dashboard {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.dashboard-title__button {
|
||||
margin: 0.5rem 0;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.counters__row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-top: 1px solid #dee2e6;
|
||||
border-top: 1px solid var(--card-border-color);
|
||||
padding: 0.75rem 1.5rem;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,18 +9,25 @@ import Counters from './Counters';
|
||||
import Clients from './Clients';
|
||||
import QueriedDomains from './QueriedDomains';
|
||||
import BlockedDomains from './BlockedDomains';
|
||||
import { SETTINGS_URLS } from '../../helpers/constants';
|
||||
import { DISABLE_PROTECTION_TIMINGS, ONE_SECOND_IN_MS, SETTINGS_URLS } from '../../helpers/constants';
|
||||
import {
|
||||
msToSeconds,
|
||||
msToMinutes,
|
||||
msToHours,
|
||||
msToDays,
|
||||
} from '../../helpers/helpers';
|
||||
|
||||
import PageTitle from '../ui/PageTitle';
|
||||
import Loading from '../ui/Loading';
|
||||
import './Dashboard.css';
|
||||
import Dropdown from '../ui/Dropdown';
|
||||
|
||||
const Dashboard = ({
|
||||
getAccessList,
|
||||
getStats,
|
||||
getStatsConfig,
|
||||
dashboard,
|
||||
dashboard: { protectionEnabled, processingProtection },
|
||||
dashboard: { protectionEnabled, processingProtection, protectionDisabledDuration },
|
||||
toggleProtection,
|
||||
stats,
|
||||
access,
|
||||
@@ -36,20 +43,20 @@ const Dashboard = ({
|
||||
useEffect(() => {
|
||||
getAllStats();
|
||||
}, []);
|
||||
|
||||
const getSubtitle = () => {
|
||||
if (stats.interval === 0) {
|
||||
const ONE_DAY = 1;
|
||||
const intervalInDays = msToDays(stats.interval);
|
||||
|
||||
if (intervalInDays < ONE_DAY) {
|
||||
return t('stats_disabled_short');
|
||||
}
|
||||
|
||||
return stats.interval === 1
|
||||
return intervalInDays === ONE_DAY
|
||||
? t('for_last_24_hours')
|
||||
: t('for_last_days', { count: stats.interval });
|
||||
: t('for_last_days', { count: msToDays(stats.interval) });
|
||||
};
|
||||
|
||||
const buttonText = protectionEnabled ? 'disable_protection' : 'enable_protection';
|
||||
|
||||
const buttonClass = classNames('btn btn-sm dashboard-title__button', {
|
||||
const buttonClass = classNames('btn btn-sm dashboard-protection-button', {
|
||||
'btn-gray': protectionEnabled,
|
||||
'btn-success': !protectionEnabled,
|
||||
});
|
||||
@@ -60,7 +67,7 @@ const Dashboard = ({
|
||||
title={t('refresh_btn')}
|
||||
onClick={() => getAllStats()}
|
||||
>
|
||||
<svg className="icons">
|
||||
<svg className="icons icon12">
|
||||
<use xlinkHref="#refresh" />
|
||||
</svg>
|
||||
</button>;
|
||||
@@ -71,16 +78,87 @@ const Dashboard = ({
|
||||
|
||||
const subtitle = getSubtitle();
|
||||
|
||||
const DISABLE_PROTECTION_ITEMS = [
|
||||
{
|
||||
text: t('disable_for_seconds', { count: msToSeconds(DISABLE_PROTECTION_TIMINGS.HALF_MINUTE) }),
|
||||
disableTime: DISABLE_PROTECTION_TIMINGS.HALF_MINUTE,
|
||||
},
|
||||
{
|
||||
text: t('disable_for_minutes', { count: msToMinutes(DISABLE_PROTECTION_TIMINGS.MINUTE) }),
|
||||
disableTime: DISABLE_PROTECTION_TIMINGS.MINUTE,
|
||||
},
|
||||
{
|
||||
text: t('disable_for_minutes', { count: msToMinutes(DISABLE_PROTECTION_TIMINGS.TEN_MINUTES) }),
|
||||
disableTime: DISABLE_PROTECTION_TIMINGS.TEN_MINUTES,
|
||||
},
|
||||
{
|
||||
text: t('disable_for_hours', { count: msToHours(DISABLE_PROTECTION_TIMINGS.HOUR) }),
|
||||
disableTime: DISABLE_PROTECTION_TIMINGS.HOUR,
|
||||
},
|
||||
{
|
||||
text: t('disable_until_tomorrow'),
|
||||
disableTime: DISABLE_PROTECTION_TIMINGS.TOMORROW,
|
||||
},
|
||||
];
|
||||
|
||||
const getDisableProtectionItems = () => (
|
||||
Object.values(DISABLE_PROTECTION_ITEMS)
|
||||
.map((item, index) => (
|
||||
<div
|
||||
key={`disable_timings_${index}`}
|
||||
className="dropdown-item"
|
||||
onClick={() => {
|
||||
toggleProtection(protectionEnabled, item.disableTime - ONE_SECOND_IN_MS);
|
||||
}}
|
||||
>
|
||||
{item.text}
|
||||
</div>
|
||||
))
|
||||
);
|
||||
|
||||
const getRemaningTimeText = (milliseconds) => {
|
||||
if (!milliseconds) {
|
||||
return '';
|
||||
}
|
||||
|
||||
const date = new Date(milliseconds);
|
||||
const hh = date.getUTCHours();
|
||||
const mm = `0${date.getUTCMinutes()}`.slice(-2);
|
||||
const ss = `0${date.getUTCSeconds()}`.slice(-2);
|
||||
const formattedHH = `0${hh}`.slice(-2);
|
||||
|
||||
return hh ? `${formattedHH}:${mm}:${ss}` : `${mm}:${ss}`;
|
||||
};
|
||||
|
||||
const getProtectionBtnText = (status) => (status ? t('disable_protection') : t('enable_protection'));
|
||||
|
||||
return <>
|
||||
<PageTitle title={t('dashboard')} containerClass="page-title--dashboard">
|
||||
<button
|
||||
type="button"
|
||||
className={buttonClass}
|
||||
onClick={() => toggleProtection(protectionEnabled)}
|
||||
disabled={processingProtection}
|
||||
>
|
||||
<Trans>{buttonText}</Trans>
|
||||
</button>
|
||||
<div className="page-title__protection">
|
||||
<button
|
||||
type="button"
|
||||
className={buttonClass}
|
||||
onClick={() => {
|
||||
toggleProtection(protectionEnabled);
|
||||
}}
|
||||
disabled={processingProtection}
|
||||
>
|
||||
{protectionDisabledDuration
|
||||
? `${t('enable_protection_timer')} ${getRemaningTimeText(protectionDisabledDuration)}`
|
||||
: getProtectionBtnText(protectionEnabled)
|
||||
}
|
||||
</button>
|
||||
|
||||
{protectionEnabled && <Dropdown
|
||||
label=""
|
||||
baseClassName="dropdown-protection"
|
||||
icon="arrow-down"
|
||||
controlClassName="dropdown-protection__toggle"
|
||||
menuClassName="dropdown-menu dropdown-menu-arrow dropdown-menu--protection"
|
||||
>
|
||||
{getDisableProtectionItems()}
|
||||
</Dropdown>}
|
||||
</div>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-outline-primary btn-sm"
|
||||
@@ -107,7 +185,7 @@ const Dashboard = ({
|
||||
</div>
|
||||
)}
|
||||
<Statistics
|
||||
interval={stats.interval}
|
||||
interval={msToDays(stats.interval)}
|
||||
dnsQueries={stats.dnsQueries}
|
||||
blockedFiltering={stats.blockedFiltering}
|
||||
replacedSafebrowsing={stats.replacedSafebrowsing}
|
||||
@@ -151,6 +229,7 @@ const Dashboard = ({
|
||||
topBlockedDomains={stats.topBlockedDomains}
|
||||
blockedFiltering={stats.numBlockedFiltering}
|
||||
replacedSafebrowsing={stats.numReplacedSafebrowsing}
|
||||
replacedSafesearch={stats.numReplacedSafesearch}
|
||||
replacedParental={stats.numReplacedParental}
|
||||
refreshButton={refreshButton}
|
||||
/>
|
||||
|
||||
@@ -12,17 +12,16 @@ import { MODAL_TYPE } from '../../helpers/constants';
|
||||
|
||||
import {
|
||||
getCurrentFilter,
|
||||
getObjDiff,
|
||||
} from '../../helpers/helpers';
|
||||
|
||||
const filtersCatalog = require('../../helpers/filters/filters.json');
|
||||
import filtersCatalog from '../../helpers/filters/filters';
|
||||
|
||||
class DnsBlocklist extends Component {
|
||||
componentDidMount() {
|
||||
this.props.getFilteringStatus();
|
||||
}
|
||||
|
||||
handleSubmit = (values, _, { initialValues }) => {
|
||||
handleSubmit = (values) => {
|
||||
const { modalFilterUrl, modalType } = this.props.filtering;
|
||||
|
||||
switch (modalType) {
|
||||
@@ -35,7 +34,12 @@ class DnsBlocklist extends Component {
|
||||
break;
|
||||
}
|
||||
case MODAL_TYPE.CHOOSE_FILTERING_LIST: {
|
||||
const changedValues = getObjDiff(initialValues, values);
|
||||
const changedValues = Object.entries(values)?.reduce((acc, [key, value]) => {
|
||||
if (value && key in filtersCatalog.filters) {
|
||||
acc[key] = value;
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
Object.keys(changedValues)
|
||||
.forEach((fieldName) => {
|
||||
|
||||
@@ -7,8 +7,7 @@ import classNames from 'classnames';
|
||||
import { validatePath, validateRequiredValue } from '../../helpers/validators';
|
||||
import { CheckboxField, renderInputField } from '../../helpers/form';
|
||||
import { MODAL_OPEN_TIMEOUT, MODAL_TYPE, FORM_NAME } from '../../helpers/constants';
|
||||
|
||||
const filtersCatalog = require('../../helpers/filters/filters.json');
|
||||
import filtersCatalog from '../../helpers/filters/filters';
|
||||
|
||||
const getIconsData = (homepage, source) => ([
|
||||
{
|
||||
|
||||
@@ -29,6 +29,8 @@ class Table extends Component {
|
||||
Header: this.props.t('actions_table_header'),
|
||||
accessor: 'actions',
|
||||
maxWidth: 100,
|
||||
sortable: false,
|
||||
resizable: false,
|
||||
Cell: (value) => (
|
||||
<div className="logs__row logs__row--center">
|
||||
<button
|
||||
|
||||
@@ -6,10 +6,11 @@ import flow from 'lodash/flow';
|
||||
|
||||
import { toggleAllServices } from '../../../helpers/helpers';
|
||||
import { renderServiceField } from '../../../helpers/form';
|
||||
import { FORM_NAME, SERVICES } from '../../../helpers/constants';
|
||||
import { FORM_NAME } from '../../../helpers/constants';
|
||||
|
||||
const Form = (props) => {
|
||||
const {
|
||||
blockedServices,
|
||||
handleSubmit,
|
||||
change,
|
||||
pristine,
|
||||
@@ -27,7 +28,7 @@ const Form = (props) => {
|
||||
type="button"
|
||||
className="btn btn-secondary btn-block"
|
||||
disabled={processing || processingSet}
|
||||
onClick={() => toggleAllServices(SERVICES, change, true)}
|
||||
onClick={() => toggleAllServices(blockedServices, change, true)}
|
||||
>
|
||||
<Trans>block_all</Trans>
|
||||
</button>
|
||||
@@ -37,17 +38,17 @@ const Form = (props) => {
|
||||
type="button"
|
||||
className="btn btn-secondary btn-block"
|
||||
disabled={processing || processingSet}
|
||||
onClick={() => toggleAllServices(SERVICES, change, false)}
|
||||
onClick={() => toggleAllServices(blockedServices, change, false)}
|
||||
>
|
||||
<Trans>unblock_all</Trans>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="services">
|
||||
{SERVICES.map((service) => (
|
||||
{blockedServices.map((service) => (
|
||||
<Field
|
||||
key={service.id}
|
||||
icon={`service_${service.id}`}
|
||||
icon={service.icon_svg}
|
||||
name={`blocked_services.${service.id}`}
|
||||
type="checkbox"
|
||||
component={renderServiceField}
|
||||
@@ -72,6 +73,7 @@ const Form = (props) => {
|
||||
};
|
||||
|
||||
Form.propTypes = {
|
||||
blockedServices: PropTypes.array.isRequired,
|
||||
pristine: PropTypes.bool.isRequired,
|
||||
handleSubmit: PropTypes.func.isRequired,
|
||||
change: PropTypes.func.isRequired,
|
||||
|
||||
@@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import Form from './Form';
|
||||
import Card from '../../ui/Card';
|
||||
import { getBlockedServices, setBlockedServices } from '../../../actions/services';
|
||||
import { getBlockedServices, getAllBlockedServices, setBlockedServices } from '../../../actions/services';
|
||||
import PageTitle from '../../ui/PageTitle';
|
||||
|
||||
const getInitialDataForServices = (initial) => (initial ? initial.reduce(
|
||||
@@ -21,6 +21,7 @@ const Services = () => {
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(getBlockedServices());
|
||||
dispatch(getAllBlockedServices());
|
||||
}, []);
|
||||
|
||||
const handleSubmit = (values) => {
|
||||
@@ -49,6 +50,7 @@ const Services = () => {
|
||||
<div className="form">
|
||||
<Form
|
||||
initialValues={initialValues}
|
||||
blockedServices={services.allServices}
|
||||
processing={services.processing}
|
||||
processingSet={services.processingSet}
|
||||
onSubmit={handleSubmit}
|
||||
|
||||
@@ -36,17 +36,18 @@ class Table extends Component {
|
||||
Cell: this.renderCheckbox,
|
||||
width: 90,
|
||||
className: 'text-center',
|
||||
resizable: false,
|
||||
},
|
||||
{
|
||||
Header: <Trans>name_table_header</Trans>,
|
||||
accessor: 'name',
|
||||
minWidth: 200,
|
||||
minWidth: 180,
|
||||
Cell: CellWrap,
|
||||
},
|
||||
{
|
||||
Header: <Trans>list_url_table_header</Trans>,
|
||||
accessor: 'url',
|
||||
minWidth: 200,
|
||||
minWidth: 180,
|
||||
Cell: ({ value }) => (
|
||||
<div className="logs__row">
|
||||
{isValidAbsolutePath(value) ? value
|
||||
@@ -72,17 +73,19 @@ class Table extends Component {
|
||||
Header: <Trans>last_time_updated_table_header</Trans>,
|
||||
accessor: 'lastUpdated',
|
||||
className: 'text-center',
|
||||
minWidth: 150,
|
||||
minWidth: 180,
|
||||
Cell: this.getDateCell,
|
||||
},
|
||||
{
|
||||
Header: <Trans>actions_table_header</Trans>,
|
||||
accessor: 'url',
|
||||
accessor: 'actions',
|
||||
className: 'text-center',
|
||||
width: 100,
|
||||
sortable: false,
|
||||
resizable: false,
|
||||
Cell: (row) => {
|
||||
const { value } = row;
|
||||
const { original } = row;
|
||||
const { url } = original;
|
||||
const { t, toggleFilteringModal, handleDelete } = this.props;
|
||||
|
||||
return (
|
||||
@@ -93,21 +96,21 @@ class Table extends Component {
|
||||
title={t('edit_table_action')}
|
||||
onClick={() => toggleFilteringModal({
|
||||
type: MODAL_TYPE.EDIT_FILTERS,
|
||||
url: value,
|
||||
url,
|
||||
})
|
||||
}
|
||||
>
|
||||
<svg className="icons">
|
||||
<svg className="icons icon12">
|
||||
<use xlinkHref="#edit" />
|
||||
</svg>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-icon btn-outline-secondary btn-sm"
|
||||
onClick={() => handleDelete(value)}
|
||||
onClick={() => handleDelete(url)}
|
||||
title={t('delete_table_action')}
|
||||
>
|
||||
<svg className="icons">
|
||||
<svg className="icons icon12">
|
||||
<use xlinkHref="#delete" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
.nav-tabs .nav-link.active {
|
||||
border-color: var(--green-74);
|
||||
color: var(--green-74);
|
||||
border-color: var(--btn-success-bgcolor);
|
||||
color: var(--btn-success-bgcolor);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link.active:hover {
|
||||
border-color: #58a273;
|
||||
color: #58a273;
|
||||
border-color: #4b9400;
|
||||
color: #4b9400;
|
||||
}
|
||||
|
||||
.nav-icon {
|
||||
@@ -47,7 +47,7 @@
|
||||
width: 250px;
|
||||
height: 100vh;
|
||||
transition: transform 0.3s ease;
|
||||
background-color: #fff;
|
||||
background-color: var(--header-bgcolor);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
|
||||
16
client/src/components/Logs/AnonymizerNotification.js
Normal file
16
client/src/components/Logs/AnonymizerNotification.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import React from 'react';
|
||||
import { Trans } from 'react-i18next';
|
||||
import { HashLink as Link } from 'react-router-hash-link';
|
||||
|
||||
const AnonymizerNotification = () => (
|
||||
<div className="alert alert-primary mt-6">
|
||||
<Trans components={[
|
||||
<strong key="0">text</strong>,
|
||||
<Link to="/settings#logs-config" key="1">link</Link>,
|
||||
]}>
|
||||
anonymizer_notification
|
||||
</Trans>
|
||||
</div>
|
||||
);
|
||||
|
||||
export default AnonymizerNotification;
|
||||
@@ -62,7 +62,7 @@ const ClientCell = ({
|
||||
'white-space--nowrap': isDetailed,
|
||||
});
|
||||
|
||||
const hintClass = classNames('icons mr-4 icon--24 icon--lightgray', {
|
||||
const hintClass = classNames('icons mr-4 icon--24 logs__question icon--lightgray', {
|
||||
'my-3': isDetailed,
|
||||
});
|
||||
|
||||
@@ -121,7 +121,7 @@ const ClientCell = ({
|
||||
{options.map(({ name, onClick, disabled }) => (
|
||||
<button
|
||||
key={name}
|
||||
className="button-action--arrow-option px-4 py-2"
|
||||
className="button-action--arrow-option px-4 py-1"
|
||||
onClick={onClick}
|
||||
disabled={disabled}
|
||||
>
|
||||
@@ -162,7 +162,7 @@ const ClientCell = ({
|
||||
{content && (
|
||||
<button className={buttonArrowClass} disabled={processingRules}>
|
||||
<IconTooltip
|
||||
className="h-100"
|
||||
className="icon24"
|
||||
tooltipClass="button-action--arrow-option-container"
|
||||
xlinkHref="chevron-down"
|
||||
triggerClass="button-action--icon"
|
||||
|
||||
@@ -34,7 +34,7 @@ const DomainCell = ({
|
||||
'my-3': isDetailed,
|
||||
});
|
||||
|
||||
const privacyIconClass = classNames('icons mx-2 icon--24 d-none d-sm-block', {
|
||||
const privacyIconClass = classNames('icons mx-2 icon--24 d-none d-sm-block logs__question', {
|
||||
'icon--green': hasTracker,
|
||||
'icon--disabled': !hasTracker,
|
||||
'my-3': isDetailed,
|
||||
@@ -147,11 +147,11 @@ const DomainCell = ({
|
||||
/>
|
||||
<div className={valueClass}>
|
||||
{unicodeName ? (
|
||||
<div className="text-truncate" title={unicodeName}>
|
||||
<div className="text-truncate overflow-break-mobile" title={unicodeName}>
|
||||
{unicodeName}
|
||||
</div>
|
||||
) : (
|
||||
<div className="text-truncate" title={domain}>
|
||||
<div className="text-truncate overflow-break-mobile" title={domain}>
|
||||
{domain}
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
box-shadow: 2px 4px 8px rgba(0, 0, 0, 0.2);
|
||||
border-radius: 4px !important;
|
||||
pointer-events: auto !important;
|
||||
background-color: var(--white);
|
||||
background-color: var(--ctrl-bgcolor);
|
||||
color: var(--mcolor);
|
||||
z-index: 102;
|
||||
overflow-y: auto;
|
||||
max-height: 100%;
|
||||
@@ -19,6 +20,13 @@
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.overflow-break-mobile {
|
||||
white-space: normal !important;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
}
|
||||
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, min-content);
|
||||
@@ -42,6 +50,33 @@
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.grid .title--border {
|
||||
margin-bottom: 4px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.grid .key-colon {
|
||||
margin-right: 4px;
|
||||
color: var(--gray-8);
|
||||
}
|
||||
|
||||
.grid__row {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 2px;
|
||||
font-size: 14px;
|
||||
word-break: break-all;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.grid__row .filteringRules__filter,
|
||||
.grid__row .filteringRules {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.grid {
|
||||
grid-template-columns: 35% 55%;
|
||||
@@ -63,10 +98,6 @@
|
||||
grid-column: 2 / span 1;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.grid .key-colon, .grid .title--border {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
.grid .key-colon:nth-child(odd)::after {
|
||||
@@ -91,7 +122,7 @@
|
||||
}
|
||||
|
||||
.title--border {
|
||||
padding-top: 2rem;
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.title--border:before {
|
||||
@@ -100,7 +131,7 @@
|
||||
left: 0;
|
||||
border-top: 0.5px solid var(--gray-d8) !important;
|
||||
width: 100%;
|
||||
margin-top: -1rem;
|
||||
margin-top: -0.5rem;
|
||||
}
|
||||
|
||||
.icon-cross {
|
||||
|
||||
@@ -27,6 +27,7 @@ const ResponseCell = ({
|
||||
const filters = useSelector((state) => state.filtering.filters, shallowEqual);
|
||||
const whitelistFilters = useSelector((state) => state.filtering.whitelistFilters, shallowEqual);
|
||||
const isDetailed = useSelector((state) => state.queryLogs.isDetailed);
|
||||
const services = useSelector((store) => store?.services);
|
||||
|
||||
const formattedElapsedMs = formatElapsedMs(elapsedMs, t);
|
||||
|
||||
@@ -60,8 +61,8 @@ const ResponseCell = ({
|
||||
install_settings_dns: upstreamString,
|
||||
elapsed: formattedElapsedMs,
|
||||
response_code: status,
|
||||
...(service_name
|
||||
&& { service_name: getServiceName(service_name) }
|
||||
...(service_name && services.allServices
|
||||
&& { service_name: getServiceName(services.allServices, service_name) }
|
||||
),
|
||||
...(rules.length > 0
|
||||
&& { rule_label: getRulesToFilterList(rules, filters, whitelistFilters) }
|
||||
@@ -80,10 +81,10 @@ const ResponseCell = ({
|
||||
const getDetailedInfo = (reason) => {
|
||||
switch (reason) {
|
||||
case FILTERED_STATUS.FILTERED_BLOCKED_SERVICE:
|
||||
if (!service_name) {
|
||||
if (!service_name || !services.allServices) {
|
||||
return formattedElapsedMs;
|
||||
}
|
||||
return getServiceName(service_name);
|
||||
return getServiceName(services.allServices, service_name);
|
||||
case FILTERED_STATUS.FILTERED_BLACK_LIST:
|
||||
case FILTERED_STATUS.NOT_FILTERED_WHITE_LIST:
|
||||
return getFilterNames(rules, filters, whitelistFilters).join(', ');
|
||||
@@ -97,7 +98,7 @@ const ResponseCell = ({
|
||||
return (
|
||||
<div className="logs__cell logs__cell--response" role="gridcell">
|
||||
<IconTooltip
|
||||
className={classNames('icons mr-4 icon--24 icon--lightgray', { 'my-3': isDetailed })}
|
||||
className={classNames('icons mr-4 icon--24 icon--lightgray logs__question', { 'my-3': isDetailed })}
|
||||
columnClass='grid grid--limited'
|
||||
tooltipClass='px-5 pb-5 pt-4 mw-75 custom-tooltip__response-details'
|
||||
contentItemClass='text-truncate key-colon o-hidden'
|
||||
|
||||
@@ -52,6 +52,7 @@ const Row = memo(({
|
||||
const autoClients = useSelector((state) => state.dashboard.autoClients, shallowEqual);
|
||||
const processingSet = useSelector((state) => state.access.processingSet);
|
||||
const allowedСlients = useSelector((state) => state.access.allowed_clients, shallowEqual);
|
||||
const services = useSelector((store) => store?.services);
|
||||
|
||||
const clients = useSelector((state) => state.dashboard.clients);
|
||||
|
||||
@@ -139,20 +140,32 @@ const Row = memo(({
|
||||
}
|
||||
};
|
||||
|
||||
const blockButton = <button
|
||||
className={classNames('title--border text-center button-action--arrow-option', { 'bg--danger': !isBlocked })}
|
||||
onClick={onToggleBlock}>
|
||||
{t(buttonType)}
|
||||
</button>;
|
||||
const blockButton = (
|
||||
<>
|
||||
<div className="title--border" />
|
||||
<button
|
||||
type="button"
|
||||
className={
|
||||
classNames(
|
||||
'button-action--arrow-option mb-1',
|
||||
{ 'bg--danger': !isBlocked },
|
||||
{ 'bg--green': isFiltered },
|
||||
)}
|
||||
onClick={onToggleBlock}
|
||||
>
|
||||
{t(buttonType)}
|
||||
</button>
|
||||
</>
|
||||
);
|
||||
|
||||
const blockForClientButton = <button
|
||||
className='text-center font-weight-bold py-2 button-action--arrow-option'
|
||||
className='text-center font-weight-bold py-1 button-action--arrow-option'
|
||||
onClick={onBlockingForClientClick}>
|
||||
{t(blockingForClientKey)}
|
||||
</button>;
|
||||
|
||||
const blockClientButton = <button
|
||||
className='text-center font-weight-bold py-2 button-action--arrow-option'
|
||||
className='text-center font-weight-bold py-1 button-action--arrow-option'
|
||||
onClick={onBlockingClientClick}
|
||||
disabled={processingSet || lastRuleInAllowlist}>
|
||||
{t(blockingClientKey)}
|
||||
@@ -163,8 +176,8 @@ const Row = memo(({
|
||||
date: formatDateTime(time, DEFAULT_SHORT_DATE_FORMAT_OPTIONS),
|
||||
encryption_status: isBlocked
|
||||
? <div className="bg--danger">{requestStatus}</div> : requestStatus,
|
||||
...(FILTERED_STATUS.FILTERED_BLOCKED_SERVICE && service_name
|
||||
&& { service_name: getServiceName(service_name) }),
|
||||
...(FILTERED_STATUS.FILTERED_BLOCKED_SERVICE && service_name && services.allServices
|
||||
&& { service_name: getServiceName(services.allServices, service_name) }),
|
||||
domain,
|
||||
type_table_header: type,
|
||||
protocol,
|
||||
|
||||
@@ -129,7 +129,6 @@ const Form = (props) => {
|
||||
|
||||
const onInputClear = async () => {
|
||||
setIsLoading(true);
|
||||
setDebouncedSearch(DEFAULT_LOGS_FILTER[FORM_NAMES.search]);
|
||||
change(FORM_NAMES.search, DEFAULT_LOGS_FILTER[FORM_NAMES.search]);
|
||||
setIsLoading(false);
|
||||
};
|
||||
@@ -155,7 +154,7 @@ const Form = (props) => {
|
||||
name={FORM_NAMES.search}
|
||||
component={renderFilterField}
|
||||
type="text"
|
||||
className={classNames('form-control--search form-control--transparent', className)}
|
||||
className={classNames('form-control form-control--search form-control--transparent', className)}
|
||||
placeholder={t('domain_or_client')}
|
||||
tooltip={t('query_log_strict_search')}
|
||||
onClearInputClick={onInputClear}
|
||||
|
||||
@@ -24,6 +24,12 @@
|
||||
--option-border-radius: 4px;
|
||||
}
|
||||
|
||||
[data-theme="dark"] {
|
||||
--red: rgba(223, 56, 18, 0.25);
|
||||
--green-pale: rgba(103, 178, 121, 0.25);
|
||||
--yellow: rgba(247, 181, 0, 0.2);
|
||||
}
|
||||
|
||||
.logs__text {
|
||||
padding: 0 1px;
|
||||
text-overflow: ellipsis;
|
||||
@@ -31,11 +37,19 @@
|
||||
overflow: hidden;
|
||||
font-size: 1rem;
|
||||
font-family: var(--font-family-sans-serif);
|
||||
color: var(--gray-4d);
|
||||
color: var(--logs__text-color);
|
||||
letter-spacing: 0;
|
||||
line-height: 1.5rem;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .logs__text a {
|
||||
color: var(--gray-f3);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .logs__text a:hover {
|
||||
color: var(--gray-f3);
|
||||
}
|
||||
|
||||
.logs__text--bold {
|
||||
font-weight: 600;
|
||||
}
|
||||
@@ -48,7 +62,7 @@
|
||||
.detailed-info {
|
||||
font-size: 0.8rem;
|
||||
line-height: 1.4;
|
||||
color: #888888;
|
||||
color: var(--detailed-info-color);
|
||||
}
|
||||
|
||||
.logs__text--link {
|
||||
@@ -66,6 +80,10 @@
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
[data-theme=dark] .icon--selected {
|
||||
opacity: 0.75;
|
||||
}
|
||||
|
||||
.text-pre {
|
||||
white-space: pre-wrap !important;
|
||||
overflow-wrap: break-word;
|
||||
@@ -88,6 +106,16 @@
|
||||
max-height: 100% !important;
|
||||
}
|
||||
|
||||
.icon24 {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.icon12 {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
.cursor--pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -102,22 +130,20 @@
|
||||
padding: 0.5rem 0.75rem 0.5rem 2rem !important;
|
||||
}
|
||||
|
||||
.bg--danger {
|
||||
color: var(--danger) !important;
|
||||
}
|
||||
|
||||
.form-control--search {
|
||||
box-shadow: 0 1px 0 #ddd;
|
||||
padding: 0 2.5rem;
|
||||
height: 2.25rem;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.form-control--transparent {
|
||||
border: 0 solid transparent !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .form-control--transparent option {
|
||||
background-color: var(--card-bgcolor);
|
||||
}
|
||||
|
||||
.input-group-search {
|
||||
background-color: transparent;
|
||||
position: relative;
|
||||
@@ -178,10 +204,8 @@
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
--size: 2.5rem;
|
||||
width: var(--size);
|
||||
height: var(--size);
|
||||
width: 2.5rem;
|
||||
height: 2.5rem;
|
||||
padding: 0;
|
||||
margin-left: 0.9375rem;
|
||||
background-color: transparent;
|
||||
@@ -213,6 +237,12 @@
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1025px) {
|
||||
.logs__cell--client {
|
||||
width: 13rem;
|
||||
}
|
||||
}
|
||||
|
||||
.logs__cell--header__container > .logs__cell--header__item {
|
||||
border-right: 0;
|
||||
font-size: 1rem;
|
||||
@@ -230,6 +260,12 @@
|
||||
height: 1.6rem;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
.button-action__container {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.button-action__container--detailed {
|
||||
bottom: 1.3rem;
|
||||
}
|
||||
@@ -285,7 +321,6 @@
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.button-action:active {
|
||||
@@ -310,20 +345,42 @@
|
||||
border: 0;
|
||||
display: block;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
padding-top: 0.2rem;
|
||||
padding-bottom: 0.2rem;
|
||||
text-align: center;
|
||||
font-weight: 700;
|
||||
color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.button-action--arrow-option:hover,
|
||||
.button-action--arrow-option:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.button-action--arrow-option:focus-visible {
|
||||
outline: 2px solid #295a9f;
|
||||
}
|
||||
|
||||
.button-action--arrow-option:disabled {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tooltip-custom__container .button-action--arrow-option {
|
||||
padding-bottom: 0;
|
||||
text-align: left;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.tooltip-custom__container .button-action--arrow-option:not(:disabled):hover {
|
||||
cursor: pointer;
|
||||
background: var(--gray-f3);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .tooltip-custom__container .button-action--arrow-option:not(:disabled):hover {
|
||||
background: var(--ctrl-dropdown-bgcolor-focus);
|
||||
}
|
||||
|
||||
.button-action--arrow-option-container {
|
||||
overflow: visible;
|
||||
transform-origin: left;
|
||||
@@ -338,13 +395,26 @@
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.logs__row--icons {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.logs__table .logs__row {
|
||||
border-bottom: 2px solid var(--gray-216);
|
||||
}
|
||||
|
||||
.logs__tag {
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* QUERY_STATUS_COLORS */
|
||||
.logs__row--blue {
|
||||
background-color: var(--blue);
|
||||
background-color: var(--logs__row--blue-bgcolor);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .logs__row--blue .logs__text--link {
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.logs__row--green {
|
||||
@@ -356,7 +426,7 @@
|
||||
}
|
||||
|
||||
.logs__row--white {
|
||||
background-color: var(--white);
|
||||
background-color: var(--logs__row--white-bgcolor);
|
||||
}
|
||||
|
||||
.logs__row--yellow {
|
||||
@@ -364,8 +434,8 @@
|
||||
}
|
||||
|
||||
.logs__no-data {
|
||||
color: var(--gray-4d);
|
||||
background-color: var(--white80);
|
||||
color: var(--mcolor);
|
||||
background-color: var(--logs__table-bgcolor);
|
||||
pointer-events: none;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
@@ -378,7 +448,7 @@
|
||||
}
|
||||
|
||||
.logs__table {
|
||||
background-color: var(--white);
|
||||
background-color: var(--logs__table-bgcolor);
|
||||
border: 0;
|
||||
border-radius: 8px;
|
||||
min-height: 43rem;
|
||||
@@ -445,6 +515,33 @@
|
||||
|
||||
.filteringRules__filter {
|
||||
font-style: italic;
|
||||
font-weight: normal;
|
||||
font-weight: 400;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.bg--danger {
|
||||
color: var(--danger);
|
||||
}
|
||||
|
||||
.bg--green {
|
||||
color: var(--green79);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .logs__question.icon--lightgray {
|
||||
color: var(--gray-f3);
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.logs__question {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.logs__modal {
|
||||
max-width: 720px;
|
||||
}
|
||||
|
||||
.logs__modal-wrap {
|
||||
padding: 1rem 1.5rem;
|
||||
background-color: var(--card-bgcolor);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import queryString from 'query-string';
|
||||
import classNames from 'classnames';
|
||||
import {
|
||||
BLOCK_ACTIONS,
|
||||
SMALL_SCREEN_SIZE,
|
||||
MEDIUM_SCREEN_SIZE,
|
||||
} from '../../helpers/constants';
|
||||
import Loading from '../ui/Loading';
|
||||
import Filters from './Filters';
|
||||
@@ -16,6 +16,7 @@ import { getFilteringStatus } from '../../actions/filtering';
|
||||
import { getClients } from '../../actions';
|
||||
import { getDnsConfig } from '../../actions/dnsConfig';
|
||||
import { getAccessList } from '../../actions/access';
|
||||
import { getAllBlockedServices } from '../../actions/services';
|
||||
import {
|
||||
getLogsConfig,
|
||||
resetFilteredLogs,
|
||||
@@ -25,6 +26,7 @@ import {
|
||||
import InfiniteTable from './InfiniteTable';
|
||||
import './Logs.css';
|
||||
import { BUTTON_PREFIX } from './Cells/helpers';
|
||||
import AnonymizerNotification from './AnonymizerNotification';
|
||||
|
||||
const processContent = (data) => Object.entries(data)
|
||||
.map(([key, value]) => {
|
||||
@@ -46,17 +48,20 @@ const processContent = (data) => Object.entries(data)
|
||||
keyClass = '';
|
||||
}
|
||||
|
||||
return isHidden ? null : <div key={key}>
|
||||
<div
|
||||
return isHidden ? null : (
|
||||
<div className="grid__row" key={key}>
|
||||
<div
|
||||
className={classNames(`key__${key}`, keyClass, {
|
||||
'font-weight-bold': isBoolean && value === true,
|
||||
})}>
|
||||
<Trans>{isButton ? value : key}</Trans>
|
||||
})}
|
||||
>
|
||||
<Trans>{isButton ? value : key}</Trans>
|
||||
</div>
|
||||
<div className={`value__${key} text-pre text-truncate`}>
|
||||
<Trans>{(isTitle || isButton || isBoolean) ? '' : value || '—'}</Trans>
|
||||
</div>
|
||||
</div>
|
||||
<div className={`value__${key} text-pre text-truncate`}>
|
||||
<Trans>{(isTitle || isButton || isBoolean) ? '' : value || '—'}</Trans>
|
||||
</div>
|
||||
</div>;
|
||||
);
|
||||
});
|
||||
|
||||
const Logs = () => {
|
||||
@@ -73,6 +78,7 @@ const Logs = () => {
|
||||
processingGetConfig,
|
||||
processingAdditionalLogs,
|
||||
processingGetLogs,
|
||||
anonymize_client_ip: anonymizeClientIp,
|
||||
} = useSelector((state) => state.queryLogs, shallowEqual);
|
||||
const filter = useSelector((state) => state.queryLogs.filter, shallowEqual);
|
||||
const logs = useSelector((state) => state.queryLogs.logs, shallowEqual);
|
||||
@@ -80,7 +86,7 @@ const Logs = () => {
|
||||
const search = search_url_param || filter?.search || '';
|
||||
const response_status = response_status_url_param || filter?.response_status || '';
|
||||
|
||||
const [isSmallScreen, setIsSmallScreen] = useState(window.innerWidth < SMALL_SCREEN_SIZE);
|
||||
const [isSmallScreen, setIsSmallScreen] = useState(window.innerWidth <= MEDIUM_SCREEN_SIZE);
|
||||
const [detailedDataCurrent, setDetailedDataCurrent] = useState({});
|
||||
const [buttonType, setButtonType] = useState(BLOCK_ACTIONS.BLOCK);
|
||||
const [isModalOpened, setModalOpened] = useState(false);
|
||||
@@ -99,11 +105,13 @@ const Logs = () => {
|
||||
})();
|
||||
}, [response_status, search]);
|
||||
|
||||
const mediaQuery = window.matchMedia(`(max-width: ${SMALL_SCREEN_SIZE}px)`);
|
||||
const mediaQuery = window.matchMedia(`(max-width: ${MEDIUM_SCREEN_SIZE}px)`);
|
||||
const mediaQueryHandler = (e) => {
|
||||
setIsSmallScreen(e.matches);
|
||||
if (e.matches) {
|
||||
dispatch(toggleDetailedLogs(false));
|
||||
} else {
|
||||
dispatch(toggleDetailedLogs(true));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -123,6 +131,7 @@ const Logs = () => {
|
||||
setIsLoading(true);
|
||||
dispatch(getFilteringStatus());
|
||||
dispatch(getClients());
|
||||
dispatch(getAllBlockedServices());
|
||||
try {
|
||||
await Promise.all([
|
||||
dispatch(getLogsConfig()),
|
||||
@@ -180,35 +189,49 @@ const Logs = () => {
|
||||
setButtonType={setButtonType}
|
||||
setModalOpened={setModalOpened}
|
||||
/>
|
||||
<Modal portalClassName='grid' isOpen={isSmallScreen && isModalOpened}
|
||||
onRequestClose={closeModal}
|
||||
style={{
|
||||
content: {
|
||||
width: '100%',
|
||||
height: 'fit-content',
|
||||
left: 0,
|
||||
top: 47,
|
||||
padding: '1rem 1.5rem 1rem',
|
||||
},
|
||||
overlay: {
|
||||
backgroundColor: 'rgba(0,0,0,0.5)',
|
||||
},
|
||||
}}
|
||||
<Modal
|
||||
portalClassName='grid'
|
||||
isOpen={isSmallScreen && isModalOpened}
|
||||
onRequestClose={closeModal}
|
||||
style={{
|
||||
content: {
|
||||
width: 'calc(100% - 32px)',
|
||||
height: 'fit-content',
|
||||
left: '50%',
|
||||
top: 47,
|
||||
padding: '0',
|
||||
maxWidth: '720px',
|
||||
transform: 'translateX(-50%)',
|
||||
},
|
||||
overlay: {
|
||||
backgroundColor: 'rgba(0,0,0,0.5)',
|
||||
},
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
className="icon icon--24 icon-cross d-block d-md-none cursor--pointer"
|
||||
onClick={closeModal}>
|
||||
<use xlinkHref="#cross" />
|
||||
</svg>
|
||||
{processContent(detailedDataCurrent, buttonType)}
|
||||
<div className="logs__modal-wrap">
|
||||
<svg
|
||||
className="icon icon--24 icon-cross d-block cursor--pointer"
|
||||
onClick={closeModal}
|
||||
>
|
||||
<use xlinkHref="#cross" />
|
||||
</svg>
|
||||
{processContent(detailedDataCurrent, buttonType)}
|
||||
</div>
|
||||
</Modal>
|
||||
</>;
|
||||
|
||||
return <>
|
||||
{enabled && processingGetConfig && <Loading />}
|
||||
{enabled && !processingGetConfig && renderPage()}
|
||||
{!enabled && !processingGetConfig && <Disabled />}
|
||||
</>;
|
||||
return (
|
||||
<>
|
||||
{enabled && (
|
||||
<>
|
||||
{processingGetConfig && <Loading />}
|
||||
{anonymizeClientIp && <AnonymizerNotification />}
|
||||
{!processingGetConfig && renderPage()}
|
||||
</>
|
||||
)}
|
||||
{!enabled && !processingGetConfig && <Disabled />}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Logs;
|
||||
|
||||
52
client/src/components/ProtectionTimer/index.js
Normal file
52
client/src/components/ProtectionTimer/index.js
Normal file
@@ -0,0 +1,52 @@
|
||||
import { useEffect } from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import { ONE_SECOND_IN_MS } from '../../helpers/constants';
|
||||
import { setProtectionTimerTime, toggleProtectionSuccess } from '../../actions';
|
||||
|
||||
let interval = null;
|
||||
|
||||
const ProtectionTimer = ({
|
||||
protectionDisabledDuration,
|
||||
toggleProtectionSuccess,
|
||||
setProtectionTimerTime,
|
||||
}) => {
|
||||
useEffect(() => {
|
||||
if (protectionDisabledDuration !== null && protectionDisabledDuration < ONE_SECOND_IN_MS) {
|
||||
toggleProtectionSuccess({ disabledDuration: null });
|
||||
}
|
||||
|
||||
if (protectionDisabledDuration) {
|
||||
interval = setInterval(() => {
|
||||
setProtectionTimerTime(protectionDisabledDuration - ONE_SECOND_IN_MS);
|
||||
}, ONE_SECOND_IN_MS);
|
||||
}
|
||||
|
||||
return () => {
|
||||
clearInterval(interval);
|
||||
};
|
||||
}, [protectionDisabledDuration]);
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
ProtectionTimer.propTypes = {
|
||||
setProtectionTimerTime: PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { dashboard } = state;
|
||||
const { protectionEnabled, protectionDisabledDuration } = dashboard;
|
||||
return { protectionEnabled, protectionDisabledDuration };
|
||||
};
|
||||
|
||||
const mapDispatchToProps = {
|
||||
toggleProtectionSuccess,
|
||||
setProtectionTimerTime,
|
||||
};
|
||||
|
||||
export default connect(
|
||||
mapStateToProps,
|
||||
mapDispatchToProps,
|
||||
)(ProtectionTimer);
|
||||
@@ -1,25 +1,62 @@
|
||||
import React, { Component, Fragment } from 'react';
|
||||
/* eslint-disable react/display-name */
|
||||
/* eslint-disable react/prop-types */
|
||||
import React, { useEffect } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { Trans, withTranslation } from 'react-i18next';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import ReactTable from 'react-table';
|
||||
|
||||
import { MODAL_TYPE } from '../../../helpers/constants';
|
||||
import { splitByNewLine, countClientsStatistics, sortIp } from '../../../helpers/helpers';
|
||||
import Card from '../../ui/Card';
|
||||
import Modal from './Modal';
|
||||
import CellWrap from '../../ui/CellWrap';
|
||||
import LogsSearchLink from '../../ui/LogsSearchLink';
|
||||
import { getAllBlockedServices } from '../../../../actions/services';
|
||||
import { initSettings } from '../../../../actions';
|
||||
import {
|
||||
splitByNewLine,
|
||||
countClientsStatistics,
|
||||
sortIp,
|
||||
getService,
|
||||
} from '../../../../helpers/helpers';
|
||||
import { MODAL_TYPE } from '../../../../helpers/constants';
|
||||
import Card from '../../../ui/Card';
|
||||
import CellWrap from '../../../ui/CellWrap';
|
||||
import LogsSearchLink from '../../../ui/LogsSearchLink';
|
||||
import Modal from '../Modal';
|
||||
|
||||
class ClientsTable extends Component {
|
||||
handleFormAdd = (values) => {
|
||||
this.props.addClient(values);
|
||||
const ClientsTable = ({
|
||||
clients,
|
||||
normalizedTopClients,
|
||||
isModalOpen,
|
||||
modalClientName,
|
||||
modalType,
|
||||
addClient,
|
||||
updateClient,
|
||||
deleteClient,
|
||||
toggleClientModal,
|
||||
processingAdding,
|
||||
processingDeleting,
|
||||
processingUpdating,
|
||||
getStats,
|
||||
supportedTags,
|
||||
}) => {
|
||||
const [t] = useTranslation();
|
||||
const dispatch = useDispatch();
|
||||
const services = useSelector((store) => store?.services);
|
||||
const globalSettings = useSelector((store) => store?.settings.settingsList) || {};
|
||||
|
||||
const { safesearch } = globalSettings;
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(getAllBlockedServices());
|
||||
dispatch(initSettings());
|
||||
}, []);
|
||||
|
||||
const handleFormAdd = (values) => {
|
||||
addClient(values);
|
||||
};
|
||||
|
||||
handleFormUpdate = (values, name) => {
|
||||
this.props.updateClient(values, name);
|
||||
const handleFormUpdate = (values, name) => {
|
||||
updateClient(values, name);
|
||||
};
|
||||
|
||||
handleSubmit = (values) => {
|
||||
const handleSubmit = (values) => {
|
||||
const config = values;
|
||||
|
||||
if (values) {
|
||||
@@ -42,21 +79,21 @@ class ClientsTable extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
if (this.props.modalType === MODAL_TYPE.EDIT_FILTERS) {
|
||||
this.handleFormUpdate(config, this.props.modalClientName);
|
||||
if (modalType === MODAL_TYPE.EDIT_FILTERS) {
|
||||
handleFormUpdate(config, modalClientName);
|
||||
} else {
|
||||
this.handleFormAdd(config);
|
||||
handleFormAdd(config);
|
||||
}
|
||||
};
|
||||
|
||||
getOptionsWithLabels = (options) => (
|
||||
const getOptionsWithLabels = (options) => (
|
||||
options.map((option) => ({
|
||||
value: option,
|
||||
label: option,
|
||||
}))
|
||||
);
|
||||
|
||||
getClient = (name, clients) => {
|
||||
const getClient = (name, clients) => {
|
||||
const client = clients.find((item) => name === item.name);
|
||||
|
||||
if (client) {
|
||||
@@ -65,7 +102,7 @@ class ClientsTable extends Component {
|
||||
} = client;
|
||||
return {
|
||||
upstreams: (upstreams && upstreams.join('\n')) || '',
|
||||
tags: (tags && this.getOptionsWithLabels(tags)) || [],
|
||||
tags: (tags && getOptionsWithLabels(tags)) || [],
|
||||
...values,
|
||||
};
|
||||
}
|
||||
@@ -75,20 +112,21 @@ class ClientsTable extends Component {
|
||||
tags: [],
|
||||
use_global_settings: true,
|
||||
use_global_blocked_services: true,
|
||||
safe_search: { ...(safesearch || {}) },
|
||||
};
|
||||
};
|
||||
|
||||
handleDelete = (data) => {
|
||||
const handleDelete = (data) => {
|
||||
// eslint-disable-next-line no-alert
|
||||
if (window.confirm(this.props.t('client_confirm_delete', { key: data.name }))) {
|
||||
this.props.deleteClient(data);
|
||||
this.props.getStats();
|
||||
if (window.confirm(t('client_confirm_delete', { key: data.name }))) {
|
||||
deleteClient(data);
|
||||
getStats();
|
||||
}
|
||||
};
|
||||
|
||||
columns = [
|
||||
const columns = [
|
||||
{
|
||||
Header: this.props.t('table_client'),
|
||||
Header: t('table_client'),
|
||||
accessor: 'ids',
|
||||
minWidth: 150,
|
||||
Cell: (row) => {
|
||||
@@ -109,13 +147,13 @@ class ClientsTable extends Component {
|
||||
sortMethod: sortIp,
|
||||
},
|
||||
{
|
||||
Header: this.props.t('table_name'),
|
||||
Header: t('table_name'),
|
||||
accessor: 'name',
|
||||
minWidth: 120,
|
||||
Cell: CellWrap,
|
||||
},
|
||||
{
|
||||
Header: this.props.t('settings'),
|
||||
Header: t('settings'),
|
||||
accessor: 'use_global_settings',
|
||||
minWidth: 120,
|
||||
Cell: ({ value }) => {
|
||||
@@ -133,7 +171,7 @@ class ClientsTable extends Component {
|
||||
},
|
||||
},
|
||||
{
|
||||
Header: this.props.t('blocked_services'),
|
||||
Header: t('blocked_services'),
|
||||
accessor: 'blocked_services',
|
||||
minWidth: 180,
|
||||
Cell: (row) => {
|
||||
@@ -143,25 +181,40 @@ class ClientsTable extends Component {
|
||||
return <Trans>settings_global</Trans>;
|
||||
}
|
||||
|
||||
if (value && services.allServices) {
|
||||
return (
|
||||
<div className="logs__row logs__row--icons">
|
||||
{value.map((service) => {
|
||||
const serviceInfo = getService(services.allServices, service);
|
||||
|
||||
if (serviceInfo?.icon_svg) {
|
||||
return (
|
||||
<div
|
||||
key={serviceInfo.name}
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: window.atob(serviceInfo.icon_svg),
|
||||
}}
|
||||
className="service__icon service__icon--table"
|
||||
title={serviceInfo.name}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
return null;
|
||||
})}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="logs__row logs__row--icons">
|
||||
{value && value.length > 0
|
||||
? value.map((service) => (
|
||||
<svg
|
||||
className="service__icon service__icon--table"
|
||||
title={service}
|
||||
key={service}
|
||||
>
|
||||
<use xlinkHref={`#service_${service}`} />
|
||||
</svg>
|
||||
))
|
||||
: '–'}
|
||||
–
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
Header: this.props.t('upstreams'),
|
||||
Header: t('upstreams'),
|
||||
accessor: 'upstreams',
|
||||
minWidth: 120,
|
||||
Cell: ({ value }) => {
|
||||
@@ -179,7 +232,7 @@ class ClientsTable extends Component {
|
||||
},
|
||||
},
|
||||
{
|
||||
Header: this.props.t('tags_title'),
|
||||
Header: t('tags_title'),
|
||||
accessor: 'tags',
|
||||
minWidth: 140,
|
||||
Cell: (row) => {
|
||||
@@ -193,7 +246,7 @@ class ClientsTable extends Component {
|
||||
<div className="logs__row o-hidden">
|
||||
<span className="logs__text">
|
||||
{value.map((tag) => (
|
||||
<div key={tag} title={tag} className="small">
|
||||
<div key={tag} title={tag} className="logs__tag small">
|
||||
{tag}
|
||||
</div>
|
||||
))}
|
||||
@@ -203,11 +256,11 @@ class ClientsTable extends Component {
|
||||
},
|
||||
},
|
||||
{
|
||||
Header: this.props.t('requests_count'),
|
||||
Header: t('requests_count'),
|
||||
id: 'statistics',
|
||||
accessor: (row) => countClientsStatistics(
|
||||
row.ids,
|
||||
this.props.normalizedTopClients.auto,
|
||||
normalizedTopClients.auto,
|
||||
),
|
||||
sortMethod: (a, b) => b - a,
|
||||
minWidth: 120,
|
||||
@@ -222,14 +275,13 @@ class ClientsTable extends Component {
|
||||
},
|
||||
},
|
||||
{
|
||||
Header: this.props.t('actions_table_header'),
|
||||
Header: t('actions_table_header'),
|
||||
accessor: 'actions',
|
||||
maxWidth: 100,
|
||||
sortable: false,
|
||||
resizable: false,
|
||||
Cell: (row) => {
|
||||
const clientName = row.original.name;
|
||||
const {
|
||||
toggleClientModal, processingDeleting, processingUpdating, t,
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
<div className="logs__row logs__row--center">
|
||||
@@ -244,18 +296,18 @@ class ClientsTable extends Component {
|
||||
disabled={processingUpdating}
|
||||
title={t('edit_table_action')}
|
||||
>
|
||||
<svg className="icons">
|
||||
<svg className="icons icon12">
|
||||
<use xlinkHref="#edit" />
|
||||
</svg>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-icon btn-outline-secondary btn-sm"
|
||||
onClick={() => this.handleDelete({ name: clientName })}
|
||||
onClick={() => handleDelete({ name: clientName })}
|
||||
disabled={processingDeleting}
|
||||
title={t('delete_table_action')}
|
||||
>
|
||||
<svg className="icons">
|
||||
<svg className="icons icon12">
|
||||
<use xlinkHref="#delete" />
|
||||
</svg>
|
||||
</button>
|
||||
@@ -265,76 +317,61 @@ class ClientsTable extends Component {
|
||||
},
|
||||
];
|
||||
|
||||
render() {
|
||||
const {
|
||||
t,
|
||||
clients,
|
||||
isModalOpen,
|
||||
modalType,
|
||||
modalClientName,
|
||||
toggleClientModal,
|
||||
processingAdding,
|
||||
processingUpdating,
|
||||
supportedTags,
|
||||
} = this.props;
|
||||
const currentClientData = getClient(modalClientName, clients);
|
||||
const tagsOptions = getOptionsWithLabels(supportedTags);
|
||||
|
||||
const currentClientData = this.getClient(modalClientName, clients);
|
||||
const tagsOptions = this.getOptionsWithLabels(supportedTags);
|
||||
|
||||
return (
|
||||
<Card
|
||||
title={t('clients_title')}
|
||||
subtitle={t('clients_desc')}
|
||||
bodyType="card-body box-body--settings"
|
||||
>
|
||||
<Fragment>
|
||||
<ReactTable
|
||||
data={clients || []}
|
||||
columns={this.columns}
|
||||
defaultSorted={[
|
||||
{
|
||||
id: 'statistics',
|
||||
asc: true,
|
||||
},
|
||||
]}
|
||||
className="-striped -highlight card-table-overflow"
|
||||
showPagination
|
||||
defaultPageSize={10}
|
||||
minRows={5}
|
||||
ofText="/"
|
||||
previousText={t('previous_btn')}
|
||||
nextText={t('next_btn')}
|
||||
pageText={t('page_table_footer_text')}
|
||||
rowsText={t('rows_table_footer_text')}
|
||||
loadingText={t('loading_table_status')}
|
||||
noDataText={t('clients_not_found')}
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-success btn-standard mt-3"
|
||||
onClick={() => toggleClientModal(MODAL_TYPE.ADD_FILTERS)}
|
||||
disabled={processingAdding}
|
||||
>
|
||||
<Trans>client_add</Trans>
|
||||
</button>
|
||||
<Modal
|
||||
isModalOpen={isModalOpen}
|
||||
modalType={modalType}
|
||||
toggleClientModal={toggleClientModal}
|
||||
currentClientData={currentClientData}
|
||||
handleSubmit={this.handleSubmit}
|
||||
processingAdding={processingAdding}
|
||||
processingUpdating={processingUpdating}
|
||||
tagsOptions={tagsOptions}
|
||||
/>
|
||||
</Fragment>
|
||||
</Card>
|
||||
);
|
||||
}
|
||||
}
|
||||
return (
|
||||
<Card
|
||||
title={t('clients_title')}
|
||||
subtitle={t('clients_desc')}
|
||||
bodyType="card-body box-body--settings"
|
||||
>
|
||||
<>
|
||||
<ReactTable
|
||||
data={clients || []}
|
||||
columns={columns}
|
||||
defaultSorted={[
|
||||
{
|
||||
id: 'statistics',
|
||||
asc: true,
|
||||
},
|
||||
]}
|
||||
className="-striped -highlight card-table-overflow"
|
||||
showPagination
|
||||
defaultPageSize={10}
|
||||
minRows={5}
|
||||
ofText="/"
|
||||
previousText={t('previous_btn')}
|
||||
nextText={t('next_btn')}
|
||||
pageText={t('page_table_footer_text')}
|
||||
rowsText={t('rows_table_footer_text')}
|
||||
loadingText={t('loading_table_status')}
|
||||
noDataText={t('clients_not_found')}
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-success btn-standard mt-3"
|
||||
onClick={() => toggleClientModal(MODAL_TYPE.ADD_FILTERS)}
|
||||
disabled={processingAdding}
|
||||
>
|
||||
<Trans>client_add</Trans>
|
||||
</button>
|
||||
<Modal
|
||||
isModalOpen={isModalOpen}
|
||||
modalType={modalType}
|
||||
toggleClientModal={toggleClientModal}
|
||||
currentClientData={currentClientData}
|
||||
handleSubmit={handleSubmit}
|
||||
processingAdding={processingAdding}
|
||||
processingUpdating={processingUpdating}
|
||||
tagsOptions={tagsOptions}
|
||||
/>
|
||||
</>
|
||||
</Card>
|
||||
);
|
||||
};
|
||||
|
||||
ClientsTable.propTypes = {
|
||||
t: PropTypes.func.isRequired,
|
||||
clients: PropTypes.array.isRequired,
|
||||
normalizedTopClients: PropTypes.object.isRequired,
|
||||
toggleClientModal: PropTypes.func.isRequired,
|
||||
@@ -351,4 +388,4 @@ ClientsTable.propTypes = {
|
||||
supportedTags: PropTypes.array.isRequired,
|
||||
};
|
||||
|
||||
export default withTranslation()(ClientsTable);
|
||||
export default ClientsTable;
|
||||
@@ -0,0 +1 @@
|
||||
export { default as ClientsTable } from './ClientsTable';
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useState } from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import { connect, useSelector } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import {
|
||||
Field, FieldArray, reduxForm, formValueSelector,
|
||||
@@ -11,15 +11,16 @@ import Select from 'react-select';
|
||||
import i18n from '../../../i18n';
|
||||
import Tabs from '../../ui/Tabs';
|
||||
import Examples from '../Dns/Upstream/Examples';
|
||||
import { toggleAllServices } from '../../../helpers/helpers';
|
||||
import { toggleAllServices, trimLinesAndRemoveEmpty, captitalizeWords } from '../../../helpers/helpers';
|
||||
import {
|
||||
renderInputField,
|
||||
renderGroupField,
|
||||
CheckboxField,
|
||||
renderServiceField,
|
||||
renderTextareaField,
|
||||
} from '../../../helpers/form';
|
||||
import { validateClientId, validateRequiredValue } from '../../../helpers/validators';
|
||||
import { CLIENT_ID_LINK, FORM_NAME, SERVICES } from '../../../helpers/constants';
|
||||
import { CLIENT_ID_LINK, FORM_NAME } from '../../../helpers/constants';
|
||||
import './Service.css';
|
||||
|
||||
const settingsCheckboxes = [
|
||||
@@ -39,9 +40,16 @@ const settingsCheckboxes = [
|
||||
name: 'parental_enabled',
|
||||
placeholder: 'use_adguard_parental',
|
||||
},
|
||||
];
|
||||
|
||||
const logAndStatsCheckboxes = [
|
||||
{
|
||||
name: 'safesearch_enabled',
|
||||
placeholder: 'enforce_safe_search',
|
||||
name: 'ignore_querylog',
|
||||
placeholder: 'ignore_query_log',
|
||||
},
|
||||
{
|
||||
name: 'ignore_statistics',
|
||||
placeholder: 'ignore_statistics',
|
||||
},
|
||||
];
|
||||
const validate = (values) => {
|
||||
@@ -138,7 +146,12 @@ let Form = (props) => {
|
||||
processingUpdating,
|
||||
invalid,
|
||||
tagsOptions,
|
||||
initialValues,
|
||||
} = props;
|
||||
const services = useSelector((store) => store?.services);
|
||||
const { safe_search } = initialValues;
|
||||
const safeSearchServices = { ...safe_search };
|
||||
delete safeSearchServices.enabled;
|
||||
|
||||
const [activeTabLabel, setActiveTabLabel] = useState('settings');
|
||||
|
||||
@@ -146,6 +159,9 @@ let Form = (props) => {
|
||||
settings: {
|
||||
title: 'settings',
|
||||
component: <div label="settings" title={props.t('main_settings')}>
|
||||
<div className="form__label--bot form__label--bold">
|
||||
{t('protection_section_label')}
|
||||
</div>
|
||||
{settingsCheckboxes.map((setting) => (
|
||||
<div className="form__group" key={setting.name}>
|
||||
<Field
|
||||
@@ -161,6 +177,41 @@ let Form = (props) => {
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
<div className="form__group">
|
||||
<Field
|
||||
name="safe_search.enabled"
|
||||
type="checkbox"
|
||||
component={CheckboxField}
|
||||
placeholder={t('enforce_safe_search')}
|
||||
disabled={useGlobalSettings}
|
||||
/>
|
||||
</div>
|
||||
<div className='form__group--inner'>
|
||||
{Object.keys(safeSearchServices).map((searchKey) => (
|
||||
<div key={searchKey}>
|
||||
<Field
|
||||
name={`safe_search.${searchKey}`}
|
||||
type="checkbox"
|
||||
component={CheckboxField}
|
||||
placeholder={captitalizeWords(searchKey)}
|
||||
disabled={useGlobalSettings}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
<div className="form__label--bold form__label--top form__label--bot">
|
||||
{t('log_and_stats_section_label')}
|
||||
</div>
|
||||
{logAndStatsCheckboxes.map((setting) => (
|
||||
<div className="form__group" key={setting.name}>
|
||||
<Field
|
||||
name={setting.name}
|
||||
type="checkbox"
|
||||
component={CheckboxField}
|
||||
placeholder={t(setting.placeholder)}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
</div>,
|
||||
},
|
||||
block_services: {
|
||||
@@ -180,7 +231,9 @@ let Form = (props) => {
|
||||
type="button"
|
||||
className="btn btn-secondary btn-block"
|
||||
disabled={useGlobalServices}
|
||||
onClick={() => toggleAllServices(SERVICES, change, true)}
|
||||
onClick={() => (
|
||||
toggleAllServices(services.allServices, change, true)
|
||||
)}
|
||||
>
|
||||
<Trans>block_all</Trans>
|
||||
</button>
|
||||
@@ -190,25 +243,29 @@ let Form = (props) => {
|
||||
type="button"
|
||||
className="btn btn-secondary btn-block"
|
||||
disabled={useGlobalServices}
|
||||
onClick={() => toggleAllServices(SERVICES, change, false)}
|
||||
onClick={() => (
|
||||
toggleAllServices(services.allServices, change, false)
|
||||
)}
|
||||
>
|
||||
<Trans>unblock_all</Trans>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="services">
|
||||
{SERVICES.map((service) => (
|
||||
<Field
|
||||
key={service.id}
|
||||
icon={`service_${service.id}`}
|
||||
name={`blocked_services.${service.id}`}
|
||||
type="checkbox"
|
||||
component={renderServiceField}
|
||||
placeholder={service.name}
|
||||
disabled={useGlobalServices}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
{services.allServices.length > 0 && (
|
||||
<div className="services">
|
||||
{services.allServices.map((service) => (
|
||||
<Field
|
||||
key={service.id}
|
||||
icon={service.icon_svg}
|
||||
name={`blocked_services.${service.id}`}
|
||||
type="checkbox"
|
||||
component={renderServiceField}
|
||||
placeholder={service.name}
|
||||
disabled={useGlobalServices}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>,
|
||||
},
|
||||
@@ -223,10 +280,11 @@ let Form = (props) => {
|
||||
<Field
|
||||
id="upstreams"
|
||||
name="upstreams"
|
||||
component="textarea"
|
||||
component={renderTextareaField}
|
||||
type="text"
|
||||
className="form-control form-control--textarea mb-5"
|
||||
placeholder={t('upstream_dns')}
|
||||
normalizeOnBlur={trimLinesAndRemoveEmpty}
|
||||
/>
|
||||
<Examples />
|
||||
</div>,
|
||||
@@ -349,6 +407,7 @@ Form.propTypes = {
|
||||
processingUpdating: PropTypes.bool.isRequired,
|
||||
invalid: PropTypes.bool.isRequired,
|
||||
tagsOptions: PropTypes.array.isRequired,
|
||||
initialValues: PropTypes.object,
|
||||
};
|
||||
|
||||
const selector = formValueSelector(FORM_NAME.CLIENT);
|
||||
|
||||
@@ -4,11 +4,17 @@
|
||||
align-items: center;
|
||||
margin-bottom: 15px;
|
||||
padding: 10px 15px;
|
||||
border: 1px solid #eee;
|
||||
border: 1px solid var(--card-border-color);
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.service__text {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.services {
|
||||
display: flex;
|
||||
@@ -33,7 +39,7 @@
|
||||
margin-right: 30px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
|
||||
.service:nth-child(3n) {
|
||||
margin-right: 0;
|
||||
margin-left: auto;
|
||||
@@ -48,6 +54,12 @@
|
||||
color: #495057;
|
||||
}
|
||||
|
||||
.service__icon svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
fill: #495057;
|
||||
}
|
||||
|
||||
.service--global .service__icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ import React, { Component, Fragment } from 'react';
|
||||
import { withTranslation } from 'react-i18next';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import ClientsTable from './ClientsTable';
|
||||
import { ClientsTable } from './ClientsTable';
|
||||
import AutoClients from './AutoClients';
|
||||
import PageTitle from '../../ui/PageTitle';
|
||||
import Loading from '../../ui/Loading';
|
||||
|
||||
@@ -74,7 +74,6 @@ const FormDHCPv4 = ({
|
||||
className="form-control"
|
||||
placeholder={t(ipv4placeholders.subnet_mask)}
|
||||
validate={[
|
||||
validateIpv4,
|
||||
validateRequired,
|
||||
validateGatewaySubnetMask,
|
||||
]}
|
||||
@@ -97,7 +96,6 @@ const FormDHCPv4 = ({
|
||||
placeholder={t(ipv4placeholders.range_start)}
|
||||
validate={[
|
||||
validateIpv4,
|
||||
validateGatewaySubnetMask,
|
||||
validateIpForGatewaySubnetMask,
|
||||
]}
|
||||
disabled={!isInterfaceIncludesIpv4}
|
||||
@@ -113,7 +111,6 @@ const FormDHCPv4 = ({
|
||||
validate={[
|
||||
validateIpv4,
|
||||
validateIpv4RangeEnd,
|
||||
validateGatewaySubnetMask,
|
||||
validateIpForGatewaySubnetMask,
|
||||
]}
|
||||
disabled={!isInterfaceIncludesIpv4}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import React, { Component } from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import ReactTable from 'react-table';
|
||||
import { Trans, withTranslation } from 'react-i18next';
|
||||
import { LEASES_TABLE_DEFAULT_PAGE_SIZE } from '../../../helpers/constants';
|
||||
import { sortIp } from '../../../helpers/helpers';
|
||||
import { toggleLeaseModal } from '../../../actions';
|
||||
|
||||
class Leases extends Component {
|
||||
cellWrap = ({ value }) => (
|
||||
@@ -14,6 +16,30 @@ class Leases extends Component {
|
||||
</div>
|
||||
);
|
||||
|
||||
convertToStatic = (data) => () => {
|
||||
const { dispatch } = this.props;
|
||||
dispatch(toggleLeaseModal(data));
|
||||
}
|
||||
|
||||
makeStatic = ({ row }) => {
|
||||
const { t, disabledLeasesButton } = this.props;
|
||||
return (
|
||||
<div className="logs__row logs__row--center">
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-icon btn-icon--green btn-outline-secondary btn-sm"
|
||||
title={t('make_static')}
|
||||
onClick={this.convertToStatic(row)}
|
||||
disabled={disabledLeasesButton}
|
||||
>
|
||||
<svg className="icons icon12">
|
||||
<use xlinkHref="#plus" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
const { leases, t } = this.props;
|
||||
return (
|
||||
@@ -23,20 +49,27 @@ class Leases extends Component {
|
||||
{
|
||||
Header: 'MAC',
|
||||
accessor: 'mac',
|
||||
minWidth: 180,
|
||||
Cell: this.cellWrap,
|
||||
}, {
|
||||
Header: 'IP',
|
||||
accessor: 'ip',
|
||||
minWidth: 230,
|
||||
Cell: this.cellWrap,
|
||||
sortMethod: sortIp,
|
||||
}, {
|
||||
Header: <Trans>dhcp_table_hostname</Trans>,
|
||||
accessor: 'hostname',
|
||||
minWidth: 230,
|
||||
Cell: this.cellWrap,
|
||||
}, {
|
||||
Header: <Trans>dhcp_table_expires</Trans>,
|
||||
accessor: 'expires',
|
||||
minWidth: 220,
|
||||
Cell: this.cellWrap,
|
||||
}, {
|
||||
Header: <Trans>actions_table_header</Trans>,
|
||||
Cell: this.makeStatic,
|
||||
},
|
||||
]}
|
||||
pageSize={LEASES_TABLE_DEFAULT_PAGE_SIZE}
|
||||
@@ -53,6 +86,8 @@ class Leases extends Component {
|
||||
Leases.propTypes = {
|
||||
leases: PropTypes.array,
|
||||
t: PropTypes.func,
|
||||
dispatch: PropTypes.func,
|
||||
disabledLeasesButton: PropTypes.bool,
|
||||
};
|
||||
|
||||
export default withTranslation()(Leases);
|
||||
export default withTranslation()(connect(() => ({}), (dispatch) => ({ dispatch }))(Leases));
|
||||
|
||||
@@ -2,7 +2,7 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { Field, reduxForm } from 'redux-form';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { useDispatch, useSelector, shallowEqual } from 'react-redux';
|
||||
|
||||
import { renderInputField, normalizeMac } from '../../../../helpers/form';
|
||||
import {
|
||||
@@ -10,6 +10,7 @@ import {
|
||||
validateMac,
|
||||
validateRequiredValue,
|
||||
validateIpv4InCidr,
|
||||
validateIpGateway,
|
||||
} from '../../../../helpers/validators';
|
||||
import { FORM_NAME } from '../../../../helpers/constants';
|
||||
import { toggleLeaseModal } from '../../../../actions';
|
||||
@@ -24,6 +25,7 @@ const Form = ({
|
||||
}) => {
|
||||
const { t } = useTranslation();
|
||||
const dispatch = useDispatch();
|
||||
const dynamicLease = useSelector((store) => store.dhcp.leaseModalConfig, shallowEqual);
|
||||
|
||||
const onClick = () => {
|
||||
reset();
|
||||
@@ -57,6 +59,7 @@ const Form = ({
|
||||
validateRequiredValue,
|
||||
validateIpv4,
|
||||
validateIpv4InCidr,
|
||||
validateIpGateway,
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -85,7 +88,7 @@ const Form = ({
|
||||
<button
|
||||
type="submit"
|
||||
className="btn btn-success btn-standard"
|
||||
disabled={submitting || pristine || processingAdding}
|
||||
disabled={submitting || processingAdding || (pristine && !dynamicLease)}
|
||||
>
|
||||
<Trans>save_btn</Trans>
|
||||
</button>
|
||||
@@ -101,6 +104,7 @@ Form.propTypes = {
|
||||
ip: PropTypes.string.isRequired,
|
||||
hostname: PropTypes.string.isRequired,
|
||||
cidr: PropTypes.string.isRequired,
|
||||
gatewayIp: PropTypes.string,
|
||||
}),
|
||||
pristine: PropTypes.bool.isRequired,
|
||||
handleSubmit: PropTypes.func.isRequired,
|
||||
|
||||
@@ -2,7 +2,7 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { Trans, withTranslation } from 'react-i18next';
|
||||
import ReactModal from 'react-modal';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
|
||||
import Form from './Form';
|
||||
import { toggleLeaseModal } from '../../../../actions';
|
||||
|
||||
@@ -13,10 +13,14 @@ const Modal = ({
|
||||
cidr,
|
||||
rangeStart,
|
||||
rangeEnd,
|
||||
gatewayIp,
|
||||
}) => {
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const toggleModal = () => dispatch(toggleLeaseModal());
|
||||
const leaseInitialData = useSelector(
|
||||
(state) => state.dhcp.leaseModalConfig, shallowEqual,
|
||||
) || {};
|
||||
|
||||
return (
|
||||
<ReactModal
|
||||
@@ -36,12 +40,13 @@ const Modal = ({
|
||||
</div>
|
||||
<Form
|
||||
initialValues={{
|
||||
mac: '',
|
||||
ip: '',
|
||||
hostname: '',
|
||||
mac: leaseInitialData.mac ?? '',
|
||||
ip: leaseInitialData.ip ?? '',
|
||||
hostname: leaseInitialData.hostname ?? '',
|
||||
cidr,
|
||||
rangeStart,
|
||||
rangeEnd,
|
||||
gatewayIp,
|
||||
}}
|
||||
onSubmit={handleSubmit}
|
||||
processingAdding={processingAdding}
|
||||
@@ -61,6 +66,7 @@ Modal.propTypes = {
|
||||
cidr: PropTypes.string.isRequired,
|
||||
rangeStart: PropTypes.string,
|
||||
rangeEnd: PropTypes.string,
|
||||
gatewayIp: PropTypes.string,
|
||||
};
|
||||
|
||||
export default withTranslation()(Modal);
|
||||
|
||||
@@ -24,6 +24,7 @@ const StaticLeases = ({
|
||||
cidr,
|
||||
rangeStart,
|
||||
rangeEnd,
|
||||
gatewayIp,
|
||||
}) => {
|
||||
const [t] = useTranslation();
|
||||
const dispatch = useDispatch();
|
||||
@@ -53,23 +54,28 @@ const StaticLeases = ({
|
||||
{
|
||||
Header: 'MAC',
|
||||
accessor: 'mac',
|
||||
minWidth: 180,
|
||||
Cell: cellWrap,
|
||||
},
|
||||
{
|
||||
Header: 'IP',
|
||||
accessor: 'ip',
|
||||
minWidth: 230,
|
||||
sortMethod: sortIp,
|
||||
Cell: cellWrap,
|
||||
},
|
||||
{
|
||||
Header: <Trans>dhcp_table_hostname</Trans>,
|
||||
accessor: 'hostname',
|
||||
minWidth: 230,
|
||||
Cell: cellWrap,
|
||||
},
|
||||
{
|
||||
Header: <Trans>actions_table_header</Trans>,
|
||||
accessor: 'actions',
|
||||
maxWidth: 150,
|
||||
sortable: false,
|
||||
resizable: false,
|
||||
// eslint-disable-next-line react/display-name
|
||||
Cell: (row) => {
|
||||
const { ip, mac, hostname } = row.original;
|
||||
@@ -104,6 +110,7 @@ const StaticLeases = ({
|
||||
cidr={cidr}
|
||||
rangeStart={rangeStart}
|
||||
rangeEnd={rangeEnd}
|
||||
gatewayIp={gatewayIp}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
@@ -117,6 +124,7 @@ StaticLeases.propTypes = {
|
||||
cidr: PropTypes.string.isRequired,
|
||||
rangeStart: PropTypes.string,
|
||||
rangeEnd: PropTypes.string,
|
||||
gatewayIp: PropTypes.string,
|
||||
};
|
||||
|
||||
cellWrap.propTypes = {
|
||||
|
||||
@@ -188,8 +188,8 @@ const Dhcp = () => {
|
||||
|
||||
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 disabledLeasesButton = Boolean(dhcp?.syncErrors || interfaces?.syncErrors
|
||||
|| !isInterfaceIncludesIpv4 || isEmptyConfig || processingConfig || !inputtedIPv4values);
|
||||
const cidr = inputtedIPv4values ? `${dhcp?.values?.v4?.gateway_ip}/${subnetMaskToBitMask(dhcp?.values?.v4?.subnet_mask)}` : '';
|
||||
|
||||
return <>
|
||||
@@ -260,7 +260,7 @@ const Dhcp = () => {
|
||||
>
|
||||
<div className="row">
|
||||
<div className="col">
|
||||
<Leases leases={leases} />
|
||||
<Leases leases={leases} disabledLeasesButton={disabledLeasesButton}/>
|
||||
</div>
|
||||
</div>
|
||||
</Card>}
|
||||
@@ -278,6 +278,7 @@ const Dhcp = () => {
|
||||
cidr={cidr}
|
||||
rangeStart={dhcp?.values?.v4?.range_start}
|
||||
rangeEnd={dhcp?.values?.v4?.range_end}
|
||||
gatewayIp={dhcp?.values?.v4?.gateway_ip}
|
||||
/>
|
||||
<div className="btn-list mt-2">
|
||||
<button
|
||||
|
||||
@@ -2,10 +2,12 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { Field, reduxForm } from 'redux-form';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
import { shallowEqual, useSelector } from 'react-redux';
|
||||
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
|
||||
|
||||
import { renderInputField, toNumber, CheckboxField } from '../../../../helpers/form';
|
||||
import { CACHE_CONFIG_FIELDS, FORM_NAME, UINT32_RANGE } from '../../../../helpers/constants';
|
||||
import { replaceZeroWithEmptyString } from '../../../../helpers/helpers';
|
||||
import { clearDnsCache } from '../../../../actions/dnsConfig';
|
||||
|
||||
const INPUTS_FIELDS = [
|
||||
{
|
||||
@@ -32,6 +34,7 @@ const Form = ({
|
||||
handleSubmit, submitting, invalid,
|
||||
}) => {
|
||||
const { t } = useTranslation();
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const { processingSetConfig } = useSelector((state) => state.dnsConfig, shallowEqual);
|
||||
const {
|
||||
@@ -40,6 +43,12 @@ const Form = ({
|
||||
|
||||
const minExceedsMax = cache_ttl_min > cache_ttl_max;
|
||||
|
||||
const handleClearCache = () => {
|
||||
if (window.confirm(t('confirm_dns_cache_clear'))) {
|
||||
dispatch(clearDnsCache());
|
||||
}
|
||||
};
|
||||
|
||||
return <form onSubmit={handleSubmit}>
|
||||
<div className="row">
|
||||
{INPUTS_FIELDS.map(({
|
||||
@@ -97,6 +106,13 @@ const Form = ({
|
||||
>
|
||||
<Trans>save_btn</Trans>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-outline-secondary btn-standard form__button"
|
||||
onClick={handleClearCache}
|
||||
>
|
||||
<Trans>clear_cache</Trans>
|
||||
</button>
|
||||
</form>;
|
||||
};
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user