#
msgid ""
msgstr ""
"PO-Revision-Date: 2025-04-23 14:31+0000\n"
"Last-Translator: Ricardo Lafuente <r@manufacturaindependente.org>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/jshelter/website/"
"ru/>\n"
"Language: ru\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.11.1-dev\n"

#: ../content/pages/build.md:block 1 (paragraph)
msgid "Title: Building from scratch"
msgstr "Title: Строительство с нуля"

#: ../content/pages/build.md:block 2 (header)
msgid "GNU/Linux and Mac OS"
msgstr "GNU/Linux и Mac OS"

#: ../content/pages/build.md:block 3 (ordered list)
msgid ""
"Go to the project repository: <https://pagure.io/JShelter/webextension>."
msgstr ""
"Перейдите в репозиторий проекта: <https://pagure.io/JShelter/webextension>."

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Download the desired branch, e.g. as zip archive."
msgstr "Загрузите нужную ветку, например, в виде zip-архива."

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Unpack the zip archive."
msgstr "Распакуйте zip-архив."

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Run `make`."
msgstr "Запустите `make`."

#: ../content/pages/build.md:block 3 (ordered list)
msgid ""
"You will need common software, such as `zip`, `wget`, `bash`, `awk`, `sed`."
msgstr ""
"Вам понадобится обычное программное обеспечение, такое как `zip`, `wget`, "
"`bash`, `awk`, ``sed`."

#: ../content/pages/build.md:block 3 (ordered list)
msgid ""
"Note that running `make` removes all `console.debug` calls. If you want to "
"keep such calls, run `make debug`."
msgstr ""
"Обратите внимание, что запуск `make` удаляет все вызовы `console.debug`. "
"Если вы хотите сохранить такие вызовы, запустите `make debug`."

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Import the extension to the browser."
msgstr "Импортируйте расширение в браузер."

#: ../content/pages/build.md:block 3 (ordered list)
msgid ""
"[Firefox](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/"
"WebExtensions/Your_first_WebExtension#installing)"
msgstr ""
"[Firefox](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/"
"WebExtensions/Your_first_WebExtension#installing)"

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Open `about:debugging`."
msgstr "Откройте `about:debugging`."

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Click the *This Firefox* option"
msgstr "Выберите опцию *Этот Firefox*"

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Click the *Load Temporary Add-on* button"
msgstr "Нажмите кнопку *Загрузить временное дополнение*"

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Select the file `jshelter_firefox.zip` created by `make`."
msgstr "Выберите файл `jshelter_firefox.zip`, созданный командой `make`."

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Chromium-based browsers:"
msgstr "Браузеры на основе хрома:"

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Open `chrome://extensions`."
msgstr "Открыть `chrome://extensions`."

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Enable developper mode."
msgstr "Включить режим разработчика."

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Click `Load unpacked`."
msgstr "Нажмите `Загрузить распакованное`."

#: ../content/pages/build.md:block 3 (ordered list)
msgid "Import the `jshelter_chrome/` directory created by `make`."
msgstr "Импортируйте каталог `jshelter_chrome/`, созданный командой `make`."

#: ../content/pages/build.md:block 4 (header)
msgid "Windows"
msgstr "Windows"

#: ../content/pages/build.md:block 5 (ordered list)
msgid ""
"Install Windows Subsystem for Linux (WSL): <https://docs.microsoft.com/en-us/"
"windows/wsl/install-win10>."
msgstr ""
"Установите подсистему Windows для Linux (WSL): <https://docs.microsoft.com/"
"en-us/windows/wsl/install-win10>."

#: ../content/pages/build.md:block 5 (ordered list)
msgid "Open the JShelter project folder in WSL, run `make`."
msgstr "Откройте папку проекта JShelter в WSL, запустите `make`."

#: ../content/pages/build.md:block 5 (ordered list)
msgid "Make sure that `zip` and all other necessary tools are installed."
msgstr ""
"Убедитесь, что `zip` и все остальные необходимые инструменты установлены."

#: ../content/pages/build.md:block 5 (ordered list)
msgid ""
"Note that EOL in `fix_manifest.sh` must be set to `LF` (you can use the tool "
"`dos2unix` in WSL to convert `CR LF` to `LF`)."
msgstr ""
"Обратите внимание, что EOL в `fix_manifest.sh` должен быть установлен в `LF` "
"(вы можете использовать инструмент `dos2unix` в WSL для преобразования `CR "
"LF` в `LF`)."

#: ../content/pages/build.md:block 5 (ordered list)
msgid ""
"On Windows, import the extension to the browser according to the "
"instructions for Linux (above)."
msgstr ""
"В Windows импортируйте расширение в браузер в соответствии с инструкциями "
"для Linux (см. выше)."

#: ../content/pages/coding-style.md:block 1 (paragraph)
msgid "Title: Coding style"
msgstr "Title: Стиль кодирования"

#: ../content/pages/coding-style.md:block 2 (header)
msgid "General guidelines"
msgstr "Общие рекомендации"

#: ../content/pages/coding-style.md:block 3 (unordered list)
msgid ""
"Use **tabulators** for indentation, and avoid spaces/tabs at the end of the "
"line."
msgstr ""
"Используйте **табуляторы** для отступов и избегайте пробелов/табуляторов в "
"конце строки."

#: ../content/pages/coding-style.md:block 3 (unordered list)
msgid ""
"Functions, methods, classes, ifs, cycles etc. have opening braces at the "
"same line."
msgstr ""
"Функции, методы, классы, if, циклы и т. д. имеют открывающие скобки в одной "
"строке."

#: ../content/pages/coding-style.md:block 3 (unordered list)
msgid ""
"Text width preferred less than 80 characters, maximum 100 characters. It is "
"better having readable code than pursuing this limit."
msgstr ""
"Желательно, чтобы ширина текста не превышала 80 символов, максимум 100. "
"Лучше иметь читабельный код, чем стремиться к этому ограничению."

#: ../content/pages/coding-style.md:block 3 (unordered list)
msgid "Always enclose blocks of expressions into brackets."
msgstr "Всегда заключайте блоки выражений в скобки."

#: ../content/pages/coding-style.md:block 3 (unordered list)
msgid ""
"Names are lower case and preferably explain the purpose of the variable, "
"class, etc."
msgstr ""
"Имена даются в нижнем регистре и желательно поясняют назначение переменной, "
"класса и т.д."

#: ../content/pages/coding-style.md:block 3 (unordered list)
msgid ""
"Comment classes, functions, etc. in Doxygen style. Use `make doc` to "
"generate documentation."
msgstr ""
"Комментируйте классы, функции и т.д. в стиле Doxygen. Используйте `make doc` "
"для создания документации."

#: ../content/pages/coding-style.md:block 4 (header)
msgid "Code examples"
msgstr "Примеры кода"

#: ../content/pages/coding-style.md:block 5 (paragraph)
msgid "Correct code example:"
msgstr "Правильный пример кода:"

#: ../content/pages/coding-style.md:block 7 (paragraph)
msgid "Bad code example:"
msgstr "Плохой пример кода:"

#: ../content/pages/coding-style.md:block 9 (header)
msgid "Version control workflow"
msgstr "Контрольный рабочий процесс"

#: ../content/pages/coding-style.md:block 10 (unordered list)
msgid ""
"Do not provide commits dealing with bad coding style. The only exception is "
"if you want to improve code that does not follow the coding style rules. "
"Preferably provide one commit that fixes the issues and another (others) "
"that improve the code, add new functionality etc."
msgstr ""
"Не выкладывайте коммиты, связанные с плохим стилем кодирования. Единственное "
"исключение - если вы хотите улучшить код, который не соответствует правилам "
"стиля кодирования. Предпочтительно предоставить один коммит, исправляющий "
"проблемы, и другой (другие), улучшающий код, добавляющий новую "
"функциональность и т.д."

#: ../content/pages/coding-style.md:block 10 (unordered list)
msgid ""
"Atomic commits are useful, see [this page](https://www.freshconsulting.com/"
"atomic-commits/) for help."
msgstr ""
"Полезны атомарные коммиты, смотрите [эту страницу](https://"
"www.freshconsulting.com/atomic-commits/)."

#: ../content/pages/coding-style.md:block 10 (unordered list)
msgid ""
"A commit should not contain adding missing semicolons, changes in generated "
"code, a bugfix, and addition of a new functionality. Each of these changes "
"should go to a separate commit with a message explaining why is the change "
"necessary (if it is not obvious like in the case of missing semicolons)."
msgstr ""
"Коммит не должен содержать добавления недостающих точек с запятой, изменений "
"в генерируемом коде, исправления ошибок и добавления новой функциональности. "
"Каждое из этих изменений должно быть вынесено в отдельный коммит с "
"сообщением, объясняющим, почему это изменение необходимо (если оно не "
"очевидно, как в случае с отсутствующими точками с запятой)."

#: ../content/pages/coding-style.md:block 10 (unordered list)
msgid ""
"Provide meaningful commit messages. For help, see points 1, 2 and 7 of [this "
"guide](https://chris.beams.io/posts/git-commit/)"
msgstr ""
"Создавайте содержательные сообщения о фиксации. За помощью обратитесь к "
"пунктам 1, 2 и 7 [этого руководства](https://chris.beams.io/posts/git-commit/"
")"

#: ../content/pages/coding-style.md:block 10 (unordered list)
msgid ""
"Do not fear changing commits that are not public, yet. If you create a bug "
"and find it before merge, it is better to fix the bug in the original "
"commit. Available Git operations for this are `rebase (-i)`, `fixup`, "
"`squash` and `push --force`."
msgstr ""
"Не бойтесь изменять коммиты, которые пока не являются публичными. Если вы "
"создали ошибку и обнаружили её до слияния, лучше исправить её в исходном "
"коммите. Для этого в Git доступны такие операции, как `rebase (-i)`, `fixup`"
", ``squash` и `push --force`."

#: ../content/pages/coding-style.md:block 10 (unordered list)
msgid ""
"This pull request (FIXME: need to find link) contains an example of big "
"commits that needed to be refactored."
msgstr ""
"Этот pull request (FIXME: нужно найти ссылку) содержит пример больших "
"коммитов, которые нужно было рефакторить."

#: ../content/pages/coding-style.md:block 10 (unordered list)
msgid ""
"Provide merge request more often rather than commiting big changes. If you "
"fix Makefile or other scripts, provide the change and do not wait. Create "
"code that is understandable and does not repeat itself. If possible, use "
"variables instead of copying the same code."
msgstr ""
"Чаще отправляйте запросы на слияние, а не комментируйте большие изменения. "
"Если вы исправляете Makefile или другие скрипты, выкладывайте изменения и не "
"ждите. Создавайте понятный и не повторяющийся код. Если возможно, "
"используйте переменные, а не копируйте один и тот же код."

#: ../content/pages/credits.md:block 1 (paragraph)
msgid "Title: Credits"
msgstr "Title: Кредиты"

#: ../content/pages/credits.md:block 2 (paragraph)
msgid "[TOC]"
msgstr "[КАТАЛОГ]"

#: ../content/pages/credits.md:block 3 (header)
msgid "Developers"
msgstr "Разработчики"

#: ../content/pages/credits.md:block 4 (paragraph)
msgid ""
"**[Libor Polčák](https://www.fit.vutbr.cz/~polcak)** is behind the idea to "
"implement a web extension that works as a firewall for JavaScript APIs. He "
"is the current lead maintainer of JShelter. He received support for this "
"project through the <a href=\"https://nlnet.nl/project/JSRestrictor/"
"\">JavaScript Restrictor</a> project of NGI0 PET Fund, a fund established by "
"NLnet with financial support from the European Commission's Next Generation "
"Internet programme, under the aegis of DG Communications Networks, Content "
"and Technology under grant agreement No 825310. He supervised/supervises "
"diploma theses that improve the web extension."
msgstr ""
"**[Libor Polčák](https://www.fit.vutbr.cz/~polcak)** стоит за идеей "
"реализовать веб-расширение, которое работает как брандмауэр для API "
"JavaScript. He является текущим ведущим сопровождающим JShelter. He получил "
"поддержку для этого проекта через <a href="
"\"https://nlnet.nl/project/JSRestrictor/\">JavaScript Restrictor</a> проект "
"NGI0 PET Fund, фонд, основанный NLnet при финансовой поддержке программы "
"Европейской комиссии Следующий Поколение Интернет, под эгидой DG "
"Communications Networks, Content and Technology по грантовому соглашению № "
"825310. He супервизор/куратор дипломных работ по улучшению веб-расширения."

#: ../content/pages/credits.md:block 5 (paragraph)
msgid ""
"**Giorgio Maone** is working on the extension as a part of the [JS Shield "
"project](https://nlnet.nl/project/JavascriptShield/). Among other efforts, "
"he is working on cross-browser support, improvements on code injection and "
"the compatibility between the global JS environment, Workers, and iframes."
msgstr ""
"**Джорджио Маоне** работает над расширением в рамках проекта "
"[JS Shield project](https://nlnet.nl/project/JavascriptShield/). Среди "
"прочего, он работает над поддержкой кроссбраузерности, улучшением инъекции "
"кода и совместимости между глобальным окружением JS, Workers и iframe."

#: ../content/pages/credits.md:block 6 (paragraph)
msgid ""
"**Zbyněk Červinka** developed a [proof-of-concept version](https://github."
"com/cervinka-zbynek/masters-thesis) of the extension as a part of his "
"[master's thesis](https://www.fit.vut.cz/study/thesis/21274/) (in Czech)."
msgstr ""
"**Збынек Червинка** разработал [proof-of-concept версию](https://github.com/"
"cervinka-zbynek/masters-thesis) расширения в рамках своей "
"[магистерской диссертации](https://www.fit.vut.cz/study/thesis/21274/) (на "
"чешском языке)."

#: ../content/pages/credits.md:block 7 (paragraph)
msgid ""
"**Martin Timko** developed the first public versions up to [0.2.1](https://"
"pagure.io/JShelter/webextension/archive/0.2.1/webextension-0.2.1.zip) as a "
"part of his [master's thesis](https://www.fit.vut.cz/study/thesis/21824/). "
"He also ported the extension to Chrome and Opera."
msgstr ""
"**Мартин Тимко** разработал первые публичные версии вплоть до [0.2.1]"
"(https://pagure.io/JShelter/webextension/archive/0.2.1/"
"webextension-0.2.1.zip) в рамках своей [магистерской диссертации](https://"
"www.fit.vut.cz/study/thesis/21824/). Он также портировал расширение в Chrome "
"и Opera."

#: ../content/pages/credits.md:block 8 (paragraph)
msgid ""
"**Martin Bednář** developed test suites as a part of his [master's thesis]"
"(https://www.fit.vut.cz/study/thesis/22376/) and continued to work on the "
"project for some time afterwards. He also fixed some bugs found during the "
"testing."
msgstr ""
"**Мартин Беднарж** разработал тестовые наборы в рамках своей "
"[магистерской диссертации] (https://www.fit.vut.cz/study/thesis/22376/) и "
"продолжал работать над проектом в течение некоторого времени после этого. Он "
"также исправил некоторые ошибки, обнаруженные в ходе тестирования."

#: ../content/pages/credits.md:block 9 (paragraph)
msgid ""
"**Pavel Pohner** developed the Network Boundary Scanner as a part of his "
"[master's thesis](https://www.fit.vut.cz/study/thesis/22377/)."
msgstr ""
"**Павел Похнер** разработал сканер сетевых границ в рамках своей "
"[магистерской диссертации](https://www.fit.vut.cz/study/thesis/22377/)."

#: ../content/pages/credits.md:block 10 (paragraph)
msgid ""
"**Pater Horňák** ported functionality from [Chrome Zero](https://github.com/"
"IAIK/ChromeZero) as a part of his [bachelor thesis](https://www.fit.vut.cz/"
"study/thesis/22374/). He also provided several small fixes to the code base."
msgstr ""
"**Патер Хорняк** перенес функциональность из [Chrome Zero](https://"
"github.com/IAIK/ChromeZero) в рамках своей [бакалаврской работы](https://"
"www.fit.vut.cz/study/thesis/22374/). Он также внес несколько небольших "
"исправлений в кодовую базу."

#: ../content/pages/credits.md:block 11 (paragraph)
msgid ""
"**Matúš Švancár** ported Farbling anti-fingerprinting measures from the "
"Brave browser as a part of his [master's thesis](https://www.fit.vut.cz/"
"study/thesis/23310/)."
msgstr ""
"**Матуш Шванкар** перенес меры по борьбе с отпечатками пальцев Farbling из "
"браузера Brave в рамках своей [магистерской диссертации] (https://"
"www.fit.vut.cz/study/thesis/23310/)."

#: ../content/pages/credits.md:block 12 (paragraph)
msgid ""
"**Marek Saloň** created Fingerprint Detector as a part of his [master's "
"thesis](https://www.fit.vut.cz/study/thesis/23645/) and later improved the "
"detector."
msgstr ""
"**Марек Салонь** создал детектор отпечатков пальцев в рамках своей "
"[магистерской диссертации](https://www.fit.vut.cz/study/thesis/23645/) и "
"позже усовершенствовал его."

#: ../content/pages/credits.md:block 13 (paragraph)
msgid "**Radek Hranický** created sensor API wrappers."
msgstr "**Радек Храницкий** создал обёртки для API сенсоров."

#: ../content/pages/credits.md:block 14 (paragraph)
msgid ""
"**Martin Zmitko** improved performance of the extension as a part of his "
"bachelor thesis. He fixed some bugs during the process."
msgstr ""
"**Мартин Змитко** улучшил производительность расширения в рамках своей "
"бакалаврской работы. В процессе работы он исправил несколько ошибок."

#: ../content/pages/credits.md:block 15 (paragraph)
msgid ""
"We thank all other minor contributors of the project that are not listed in "
"this section."
msgstr ""
"Мы благодарим всех остальных мелких соавторов проекта, которые не указаны в "
"этом разделе."

#: ../content/pages/credits.md:block 16 (header)
msgid "Key ideas"
msgstr "Ключевые идеи"

#: ../content/pages/credits.md:block 17 (paragraph)
msgid ""
"The development of this extension is influenced by the paper [JavaScript "
"Zero: Real JavaScript and Zero Side-Channel Attacks](https://graz.pure."
"elsevier.com/de/publications/javascript-zero-real-javascript-and-zero-side-"
"channel-attacks). It appeared during the work of Zbyněk Červinka and "
"provided basically the same approach to restrict APIs as was at the time "
"developed by Zbyněk Červinka."
msgstr ""
"На разработку этого расширения повлияла статья "
"[JavaScript Zero: Real JavaScript and Zero Side-Channel Attacks] (https://"
"graz.pure.elsevier.com/de/publications/javascript-zero-real-javascript-and-"
"zero-side-channel-attacks). Она появилась во время работы Збынека Червинки и "
"предлагала в основном тот же подход к ограничению API, который в то время "
"разрабатывал Збынек Червинка."

#: ../content/pages/credits.md:block 18 (paragraph)
msgid ""
"The [Force Point report](https://www.forcepoint.com/sites/default/files/"
"resources/files/report-attacking-internal-network-en_0.pdf) was a key "
"inspiration for the development of the Network Boundary Shield."
msgstr ""
"Отчет [Force Point report] (https://www.forcepoint.com/sites/default/files/"
"resources/files/report-attacking-internal-network-en_0.pdf) стал ключевым "
"источником вдохновения для разработки Network Boundary Shield."

#: ../content/pages/credits.md:block 19 (paragraph)
msgid ""
"Some of the fingerprinting counter-measures are inspired by [Farbling of the "
"Brave browser](blogarticles/farbling.md)."
msgstr ""
"Некоторые меры борьбы с отпечатками пальцев вдохновлены "
"[Farbling of the Brave browser] (blogarticles/farbling.md)."

#: ../content/pages/credits.md:block 20 (header)
msgid "Borrowed code"
msgstr "Заемный код"

#: ../content/pages/credits.md:block 21 (paragraph)
msgid "We borrowed code from other free software projects:"
msgstr ""
"Мы заимствовали код из других проектов свободного программного обеспечения:"

#: ../content/pages/credits.md:block 22 (unordered list)
#, fuzzy
msgid "[Chrome Zero](https://github.com/IAIK/ChromeZero)"
msgstr "[Chrome Zero](https://github.com/IAIK/ChromeZero)"

#: ../content/pages/credits.md:block 22 (unordered list)
msgid "[Brave Farbling](https://github.com/brave/brave-browser/issues/8787)"
msgstr "[Храбрый Фарблинг](https://github.com/brave/brave-browser/issues/8787)"

#: ../content/pages/credits.md:block 22 (unordered list)
msgid "[NoScript Common Library](https://github.com/hackademix/nscl/)"
msgstr "[NoScript Общая библиотека](https://github.com/hackademix/nscl/)"

#: ../content/pages/credits.md:block 22 (unordered list)
msgid ""
"[Typed array polyfill](https://github.com/inexorabletash/polyfill/blob/"
"master/typedarray.js), Copyright (c) 2010, Linden Research, Inc., Copyright "
"(c) 2014, Joshua Bell"
msgstr ""
"[ Типизированный полифилл массива](https://github.com/inexorabletash/"
"polyfill/blob/master/typedarray.js), Авторское право (c) 2010, Linden "
"Research, Inc., Авторское право (c) 2014, Джошуа Белл"

#: ../content/pages/credits.md:block 22 (unordered list)
msgid ""
"[PRNG Alea](https://github.com/nquinlan/better-random-numbers-for-javascript-"
"mirror) by (C) 2010 Johannes Baagøe"
msgstr ""
"[ PRNG Alea] (https://github.com/nquinlan/better-random-numbers-for-"
"javascript-mirror) автор (C) 2010 Иоханнес Баагёэ"

#: ../content/pages/credits.md:block 22 (unordered list)
msgid "[JS-sha256](https://github.com/emn178/js-sha256) by (C) Chen, Yi-Cyuan"
msgstr "[JS-sha256](https://github.com/emn178/js-sha256) автор (C) Чен, И-Цюань"

#: ../content/pages/faq.md:block 1 (paragraph)
msgid "Title: Frequently Asked Questions"
msgstr "Title: Часто задаваемые вопросы"

#: ../content/pages/faq.md:block 3 (header)
msgid "Project information"
msgstr "Информация о проектах"

#: ../content/pages/faq.md:block 4 (header)
msgid "How can I get active and participate?"
msgstr "Как я могу проявить активность и принять участие?"

#: ../content/pages/faq.md:block 5 (paragraph)
msgid ""
"Start using JShelter and tell your friends. You can fill an issue on our "
"[bug tracker](https://pagure.io/JShelter/webextension/issues) ([alternative]"
"(https://github.com/polcak/jsrestrictor/issues)) or pick up an issue and "
"start working on JShelter. You can track the development in our [repository]"
"(https://pagure.io/JShelter/webextension) ([alternative](https://github.com/"
"polcak/jsrestrictor)). Please let us know before you start implementing, "
"preferably directly in the issue. You can contact us by [e-mail](mailto:"
"jshelter@gnu.org) to privately report issues or if you do not have a forge "
"account. Join our [mailing list](https://lists.nongnu.org/archive/html/js-"
"shield/) to follow updates and join in our discussions."
msgstr ""
"Начните использовать JShelter и расскажите об этом своим друзьям. Вы можете "
"создать проблему на нашем [баг-трекере](https://pagure.io/JShelter/"
"webextension/issues) ([альтернатива](https://github.com/polcak/jsrestrictor/"
"issues)) или взять проблему и начать работать над JShelter. Вы можете "
"следить за разработкой в нашем [репозитории](https://pagure.io/JShelter/"
"webextension) ([альтернатива](https://github.com/polcak/jsrestrictor)). "
"Пожалуйста, сообщите нам об этом до начала реализации, лучше всего прямо в "
"выпуске. Вы можете связаться с нами по [e-mail](mailto:jshelter@gnu.org), "
"чтобы сообщить о проблемах в частном порядке, или если у вас нет аккаунта в "
"forge. Присоединяйтесь к нашему [списку рассылки](https://lists.nongnu.org/"
"archive/html/js-shield/), чтобы следить за обновлениями и участвовать в "
"обсуждениях."

#: ../content/pages/faq.md:block 6 (header)
msgid "Can I translate the extension to a new language?"
msgstr "Можно ли перевести расширение на другой язык?"

#: ../content/pages/faq.md:block 7 (paragraph)
msgid ""
"Yes. Please see [instructions](/i18n/), go to [Weblate](https://hosted."
"weblate.org/projects/jshelter/), or translate the extension in the JSON "
"files. If you want to start translating a new language, let us know. For "
"example, you can open an issue in the [issue tracker](https://pagure.io/"
"JShelter/webextension/issues) or send us [e-mail](mailto:jshelter@gnu.org). "
"If you are in doubt about how to translate a string or do not understand its "
"meaning, let us know in an [issue](https://pagure.io/JShelter/webextension/"
"issues) or send us [e-mail](mailto:jshelter@gnu.org)."
msgstr ""
"Да. Пожалуйста, смотрите [инструкции](/i18n/), перейдите на [Weblate]"
"(https://hosted.weblate.org/projects/jshelter/) или переведите расширение в "
"JSON-файлах. Если вы хотите начать переводить новый язык, сообщите нам об "
"этом. Например, вы можете открыть проблему в [issue tracker](https://"
"pagure.io/JShelter/webextension/issues) или отправить нам [e-mail]"
"(mailto:jshelter@gnu.org). Если вы сомневаетесь, как перевести строку, или "
"не понимаете ее значения, сообщите нам об этом в [issue](https://pagure.io/"
"JShelter/webextension/issues) или отправьте нам [e-mail]"
"(mailto:jshelter@gnu.org)."

#: ../content/pages/faq.md:block 8 (header)
msgid ""
"What is the current JShelter status? Is it ready, or is it still a work in "
"progress?"
msgstr ""
"Каков текущий статус JShelter? Готов ли он или все еще находится в процессе "
"разработки?"

#: ../content/pages/faq.md:block 9 (paragraph)
msgid ""
"We think that JShelter is ready to be used for everyday browsing. We believe "
"that JShelter in the current state fulfills the goal of giving you control "
"over your browser and the APIs available for the web page."
msgstr ""
"Мы считаем, что JShelter готов к использованию в повседневной работе. Мы "
"считаем, что JShelter в текущем состоянии выполняет задачу по предоставлению "
"вам контроля над браузером и API, доступными для веб-страниц."

#: ../content/pages/faq.md:block 10 (paragraph)
msgid ""
"We believe that the `Recommended` level changes your fingerprint, so typical "
"fingerprinting scripts will fail to correlate your cross-origin activities "
"and activities on the same origin during different browser sessions. See the "
"[threat model](/threatmodel/), the questions in the [browser fingerprinting "
"section](#browser-fingerprinting), and [the section on interaction with "
"other tools](#interactions-between-jshelter-and-other-similar-tools) for "
"possible caveats."
msgstr ""
"Мы считаем, что уровень `Рекомендовано` изменяет ваш отпечаток пальца, "
"поэтому типичные скрипты отпечатков пальцев не смогут соотнести ваши кросс-"
"оригинальные действия и действия на одном и том же источнике во время разных "
"сессий браузера. Возможные предостережения см. в [модели угроз](/threatmodel/"
"), в вопросах раздела [отпечатки браузеров](#browser-fingerprinting) и в "
"[разделе о взаимодействии с другими инструментами](#interactions-between-"
"jshelter-and-other-similar-tools)."

#: ../content/pages/faq.md:block 11 (paragraph)
msgid ""
"Test your browser on common fingerprinting testers. Then, use the `Strict` "
"level and test again to see that it considerably lowers the information "
"about your computer:"
msgstr ""
"Проверьте свой браузер на распространенных тестах отпечатков пальцев. Затем "
"используйте уровень `Строгий` и снова протестируйте, чтобы убедиться, что он "
"значительно уменьшает информацию о вашем компьютере:"

#: ../content/pages/faq.md:block 12 (unordered list)
msgid "[EFF Cover your tracks](https://coveryourtracks.eff.org/)"
msgstr "[EFF Заметать следы](https://coveryourtracks.eff.org/)"

#: ../content/pages/faq.md:block 12 (unordered list)
msgid "[Am I unique?](https://amiunique.org/)"
msgstr "[Я уникален?](https://amiunique.org/)"

#: ../content/pages/faq.md:block 12 (unordered list)
msgid "[Audio and font fingerprinting](https://audiofingerprint.openwpm.com/)"
msgstr ""
"[Аудио- и шрифтовая дактилоскопия] (https://audiofingerprint.openwpm.com/)"

#: ../content/pages/faq.md:block 12 (unordered list)
msgid "[Device info](https://www.deviceinfo.me/)"
msgstr "[Информация об устройстве](https://www.deviceinfo.me/)"

#: ../content/pages/faq.md:block 12 (unordered list)
#, fuzzy
msgid "[Bromite](https://www.bromite.org/detect)"
msgstr "[Bromite](https://www.bromite.org/detect)"

#: ../content/pages/faq.md:block 12 (unordered list)
msgid "[Browser leaks](https://browserleaks.com/)"
msgstr "[Утечки из браузеров](https://browserleaks.com/)"

#: ../content/pages/faq.md:block 12 (unordered list)
msgid ""
"[JShelter test page](https://polcak.github.io/jsrestrictor/test/test.html)"
msgstr ""
"[Тестовая страница JShelter](https://polcak.github.io/jsrestrictor/test/"
"test.html)"

#: ../content/pages/faq.md:block 13 (paragraph)
msgid ""
"At the same time, we are aware of several JShelter [bugs and issues](https://"
"pagure.io/JShelter/webextension/issues/). We are working on making JShelter "
"bug-free. We do not want to break benign pages. Fixing some issues takes "
"time. Other issues need balancing between several options. JShelter is meant "
"to be used with (ad)blockers like [uBlock Origin](https://github.com/gorhill/"
"uBlock#ublock-origin). Using a blocker will make your online activities "
"considerably safer. At the same time, it will make JShelter break fewer "
"sites."
msgstr ""
"В то же время нам известно о нескольких [ошибках и проблемах] JShelter "
"(https://pagure.io/JShelter/webextension/issues/). Мы работаем над тем, "
"чтобы сделать JShelter свободным от ошибок. Мы не хотим ломать "
"доброкачественные страницы. Исправление некоторых проблем требует времени. "
"Другие проблемы требуют балансировки между несколькими вариантами. JShelter "
"предназначен для использования с (рекламными) блокировщиками, такими как "
"[uBlock Origin](https://github.com/gorhill/uBlock#ublock-origin). "
"Использование блокировщика сделает вашу работу в Интернете значительно "
"безопаснее. В то же время JShelter будет ломать меньше сайтов."

#: ../content/pages/faq.md:block 14 (paragraph)
msgid ""
"Right now, JShelter will need more interaction from you than we would "
"prefer. Some protection needs improvements. Some functionality needs to be "
"included. When we achieve the state of fixing the bugs and making JShelter "
"easy to manage, we will release version 1.0. If you are unwilling to tweak "
"JShelter occasionally, consider returning once we release version 1.0. "
"Otherwise, try [other options](/fingerprinting/)."
msgstr ""
"Сейчас JShelter требует от вас большего взаимодействия, чем нам хотелось бы. "
"Некоторая защита нуждается в улучшении. Некоторые функции необходимо "
"включить. Когда мы достигнем состояния, в котором мы исправим ошибки и "
"сделаем JShelter простым в управлении, мы выпустим версию 1.0. Если вы не "
"хотите периодически настраивать JShelter, подумайте о возвращении, когда мы "
"выпустим версию 1.0. В противном случае попробуйте [другие варианты](/"
"fingerprinting/)."

#: ../content/pages/faq.md:block 15 (header)
msgid "What is the best source of information about JShelter?"
msgstr "Какой лучший источник информации о JShelter?"

#: ../content/pages/faq.md:block 16 (paragraph)
msgid ""
"The best sources for JShelter information can be found on [our website]"
"(https://jshelter.org/) and our [paper](https://arxiv.org/abs/2204.01392)."
msgstr ""
"Лучшие источники информации о JShelter можно найти на [нашем сайте](https://"
"jshelter.org/) и в [газете](https://arxiv.org/abs/2204.01392)."

#: ../content/pages/faq.md:block 17 (header)
msgid "What is the threat model?"
msgstr "Что такое модель угрозы?"

#: ../content/pages/faq.md:block 18 (paragraph)
msgid ""
"We created a [dedicated page describing the threat model](/threatmodel/) of "
"JShelter. You should read the page before you install the extension. Make "
"sure that JShelter aligns with the threats you see on the web."
msgstr ""
"Мы создали [специальную страницу с описанием модели угроз] (/threatmodel/) "
"для JShelter. Вам следует прочитать эту страницу перед установкой "
"расширения. Убедитесь, что JShelter соответствует угрозам, которые вы видите "
"в Интернете."

#: ../content/pages/faq.md:block 19 (header)
msgid "JShelter broke a page, what should I do?"
msgstr "JShelter сломал страницу, что делать?"

#: ../content/pages/faq.md:block 20 (paragraph)
msgid ""
"This happens from time to time. We want to eliminate such pages, but "
"[JShelter is not there yet](#what-is-the-current-jshelter-status-is-it-ready-"
"or-is-it-still-a-work-in-progress)."
msgstr ""
"Это происходит время от времени. Мы хотим устранить такие страницы, но "
"[JShelter еще не готов] (#what-is-the-current-jshelter-status-is-it-ready-or-"
"is-it-still-a-work-in-progress)."

#: ../content/pages/faq.md:block 21 (paragraph)
msgid ""
"Your page might be broken because [Network Boundary Shield](/nbs/) (NBS) or "
"[fingerprint Detector](/fpd/) (FPD) detected a problem. You should have seen "
"a notification in such cases unless you turned notifications off. We do not "
"recommend turning notifications off (see [the questions on notifications]"
"(#why-do-i-see-so-many-notifications-from-jshelter)). Whenever NBS or FPD "
"detect a possible problem on the site, it is up to you to decide if you "
"believe the owner of the visited page or are tempted to view the content so "
"much that you turn the protection off."
msgstr ""
"Ваша страница может быть повреждена из-за того, что [Network Boundary Shield]"
"(/nbs/) (NBS) или [fingerprint Detector](/fpd/) (FPD) обнаружили проблему. В "
"таких случаях вы должны были увидеть уведомление, если только вы не "
"отключили уведомления. Мы не рекомендуем отключать уведомления (см. "
"[вопросы об уведомлениях](#why-do-i-see-so-many-notifications-from-jshelter))"
". Когда NBS или FPD обнаруживают возможную проблему на сайте, вы сами "
"решаете, верите ли вы владельцу посещаемой страницы или соблазн просмотреть "
"содержимое настолько велик, что вы отключаете защиту."

#: ../content/pages/faq.md:block 22 (header)
#, fuzzy
msgid "Fingerprint Detector (FPD)"
msgstr "Fingerprint Detector (FPD)"

#: ../content/pages/faq.md:block 23 (paragraph)
msgid "If you see a notification like:"
msgstr "Если вы увидите уведомление типа:"

#: ../content/pages/faq.md:block 24 (paragraph)
msgid ""
"![Fingerprint Detector notification]({attach}/images/fpdetection/"
"notifications.png)"
msgstr ""
"![Уведомление детектора отпечатков пальцев]({attach}/images/fpdetection/"
"notifications.png)"

#: ../content/pages/faq.md:block 25 (paragraph)
msgid ""
"In this case, FPD evaluated that the page tries to fingerprint you. FPD can "
"be optionally configured to prevent uploading the fingerprint to the server. "
"In that case, FPD blocks all further requests of the visited page and "
"removes the storages available to the page. Some web pages employ browser "
"fingerprinting for security purposes. You might want to allow the page to "
"fingerprint you in such a case. Open the popup by clicking on the JShelter "
"logo badge icon and turn off the FPD for the visited site."
msgstr ""
"В этом случае FPD оценивает, что страница пытается снять с вас отпечатки "
"пальцев. FPD может быть дополнительно настроен на предотвращение загрузки "
"отпечатка пальца на сервер. В этом случае FPD блокирует все дальнейшие "
"запросы посещенной страницы и удаляет доступные ей хранилища. Некоторые веб-"
"страницы используют отпечатки пальцев браузера в целях безопасности. В этом "
"случае вы можете разрешить странице снимать с вас отпечатки пальцев. "
"Откройте всплывающее окно, щелкнув на значке с логотипом JShelter, и "
"отключите FPD для посещаемого сайта."

#: ../content/pages/faq.md:block 26 (paragraph)
msgid "![Turn FPD off](/images/faq/fpd_off.png)"
msgstr "![Выключить FPD](/images/faq/fpd_off.png)"

#: ../content/pages/faq.md:block 27 (paragraph)
msgid ""
"The depicted setting will turn FPD off for all pages of the visited origin. "
"If you want to disable FPD for all pages, change the `Global settings`."
msgstr ""
"Изображенная настройка отключает FPD для всех страниц посещаемого сайта. "
"Если вы хотите отключить FPD для всех страниц, измените `глобальные "
"настройки`."

#: ../content/pages/faq.md:block 28 (header)
#, fuzzy
msgid "Network Boundary Shield (NBS)"
msgstr "Network Boundary Shield (NBS)"

#: ../content/pages/faq.md:block 30 (paragraph)
msgid ""
"![JShelter blocks the scan]({attach}/images/portscan-2_request_blocked.png)"
msgstr ""
"![JShelter блокирует сканирование]({attach}/images/portscan-"
"2_request_blocked.png)"

#: ../content/pages/faq.md:block 31 (paragraph)
msgid ""
"Then, it was NBS that blocked some requests. Rarely can some pages be broken "
"because they require interaction between the public Internet and the local "
"network. For example, the Network Boundary Shield might break some intranet "
"information systems. JShelter users also reported an increased number of "
"false positives when using DNS-based filtering programs. If you use one, "
"make sure that DNS returns 0.0.0.0 for the blocked domains."
msgstr ""
"Тогда именно NBS заблокировала некоторые запросы. В редких случаях некоторые "
"страницы могут быть нарушены, поскольку они требуют взаимодействия между "
"публичным Интернетом и локальной сетью. Например, Network Boundary Shield "
"может сломать некоторые информационные системы интрасети. Пользователи "
"JShelter также сообщили об увеличении числа ложных срабатываний при "
"использовании программ фильтрации на основе DNS. Если вы используете такую "
"программу, убедитесь, что DNS возвращает 0.0.0.0 для заблокированных доменов."

#: ../content/pages/faq.md:block 32 (paragraph)
msgid "![Turn NBS off](/images/faq/nbs_off.png)"
msgstr "![Выключить NBS](/images/faq/nbs_off.png)"

#: ../content/pages/faq.md:block 33 (paragraph)
msgid ""
"The depicted setting will turn NBS off for all pages of the visited origin. "
"If you want to disable NBS for all pages, change the `Global settings`."
msgstr ""
"Изображенная настройка отключает NBS для всех страниц посещаемого сайта. "
"Если вы хотите отключить NBS для всех страниц, измените `глобальные "
"настройки`."

#: ../content/pages/faq.md:block 34 (header)
#, fuzzy
msgid "JavaScript Shield (JSS)"
msgstr "JavaScript Shield (JSS)"

#: ../content/pages/faq.md:block 35 (paragraph)
msgid ""
"If you have not seen any notifications (and didn't disable notifications "
"manually), it is JavaScript Shield (JSS) that might have broken the page. "
"See questions on [broken videos](#how-can-i-fix-videos-if-they-fail-to-play-"
"or-retrieve-data-in-time) and [web workers](#i-want-to-use-a-website-that-"
"uses-web-workers-but-it-is-broken-how-can-i-fix-the-site) for specific JSS "
"tweaks that might solve your problem."
msgstr ""
"Если вы не видели никаких уведомлений (и не отключали уведомления вручную), "
"возможно, страница сломалась из-за JavaScript Shield (JSS). Смотрите вопросы "
"[broken videos](#how-can-i-fix-videos-if-they-fail-to-play-or-retrieve-data-"
"in-time) и [web workers](#i-want-to-use-a-website-that-uses-web-workers-but-"
"it-is-broken-how-can-i-fix-the-site) для конкретных настроек JSS, которые "
"могут решить вашу проблему."

#: ../content/pages/faq.md:block 36 (paragraph)
msgid "In other cases, depending on your courage, try:"
msgstr "В других случаях, в зависимости от вашей смелости, попробуйте:"

#: ../content/pages/faq.md:block 37 (header)
msgid "Disable JSS for this domain"
msgstr "Отключить JSS для этого домена"

#: ../content/pages/faq.md:block 38 (paragraph)
msgid ""
"You can disable JSS for all pages on the visited domain by turning JSS off:"
msgstr ""
"Вы можете отключить JSS для всех страниц на посещаемом домене, выключив JSS:"

#: ../content/pages/faq.md:block 39 (paragraph)
msgid "![Turn JSS off](/images/faq/jss_off.png)"
msgstr "![Выключить JSS](/images/faq/jss_off.png)"

#: ../content/pages/faq.md:block 41 (paragraph)
msgid "Advanced users can change JSS level:"
msgstr "Опытные пользователи могут изменить уровень JSS:"

#: ../content/pages/faq.md:block 42 (ordered list)
msgid ""
"Spoofing API call results takes some resources. If you see that the page "
"does not try to fingerprint you, you might want to disable all "
"fingerprinting protection."
msgstr ""
"Подделка результатов вызовов API требует определенных ресурсов. Если вы "
"видите, что страница не пытается установить ваши отпечатки пальцев, "
"возможно, вам стоит отключить всю защиту от отпечатков пальцев."

#: ../content/pages/faq.md:block 42 (ordered list)
msgid "Click the `Modify` button next to the JavaScript Shield label."
msgstr "Нажмите кнопку `Модифицировать` рядом с ярлыком JavaScript Shield."

#: ../content/pages/faq.md:block 42 (ordered list)
msgid ""
"Select `Turn fingerprinting protection off level`. This will keep security-"
"related [wrappers](#what-is-a-wrapper), but all fingerprinting protection "
"will be disabled."
msgstr ""
"Выберите `Включить защиту от отпечатков пальцев на уровне`. Это позволит "
"сохранить связанные с безопасностью [обертки](#what-is-a-wrapper), но вся "
"защита от отпечатков пальцев будет отключена."

#: ../content/pages/faq.md:block 43 (paragraph)
msgid "![Turn JSS fingerprinting protection off](/images/faq/jss_low.png)"
msgstr "![[Выключить защиту от отпечатков пальцев JSS](/images/faq/jss_low.png)"

#: ../content/pages/faq.md:block 44 (paragraph)
msgid ""
"You can create your own JSS protection levels on the `Global settings` page."
msgstr ""
"Вы можете создать собственные уровни защиты JSS на странице `Глобальные "
"настройки`."

#: ../content/pages/faq.md:block 45 (header)
msgid "Tweak JSS for this domain"
msgstr "Настройте JSS для этого домена"

#: ../content/pages/faq.md:block 46 (paragraph)
msgid ""
"Sometimes you will want to tweak JSS a little bit. For example, you "
"generally do not need audio. Still, you might want to make a call on some "
"pages. Or, you generally do not want to reveal your location, but you want "
"to use a map page to navigate. Occasionally, a JSS can modify an API in a "
"way that breaks a page. In that case, you might want to tweak your "
"protection level."
msgstr ""
"Иногда вы захотите немного подправить JSS. Например, обычно вам не нужен "
"звук. Тем не менее, на некоторых страницах вы можете захотеть сделать "
"звонок. Или вы обычно не хотите раскрывать свое местоположение, но хотите "
"использовать страницу карты для навигации. Иногда JSS может модифицировать "
"API таким образом, что это приведет к поломке страницы. В этом случае вам "
"может понадобиться изменить уровень защиты."

#: ../content/pages/faq.md:block 47 (ordered list)
msgid "Click the `Detail tweaks of JS Shield for this site` button."
msgstr "Нажмите кнопку `Подробные настройки JS Shield для этого сайта`."

#: ../content/pages/faq.md:block 48 (paragraph)
msgid "![Go to tweaking JSS mode](/images/faq/jss_tweak_start.png)"
msgstr "![Перейдите к настройке режима JSS](/images/faq/jss_tweak_start.png)"

#: ../content/pages/faq.md:block 49 (paragraph)
msgid ""
"The JSS section will expand. The applied protection groups are sorted "
"depending on the number of calls of each API group. Typically, you will want "
"to tweak the settings of one of the groups with the most calls. See the "
"highlighted column:"
msgstr ""
"Раскроется раздел JSS. Применяемые группы защиты сортируются в зависимости "
"от количества вызовов каждой группы API. Как правило, вы захотите изменить "
"настройки одной из групп с наибольшим количеством вызовов. Смотрите "
"выделенный столбец:"

#: ../content/pages/faq.md:block 50 (paragraph)
msgid "![Tweaking JSS mode](/images/faq/jss_tweak_sorting.png)"
msgstr "![Настройка режима JSS](/images/faq/jss_tweak_sorting.png)"

#: ../content/pages/faq.md:block 51 (ordered list)
msgid "Before you tweak any wrapping group, see the description."
msgstr ""
"Прежде чем настраивать какую-либо группу оберток, ознакомьтесь с ее "
"описанием."

#: ../content/pages/faq.md:block 51 (ordered list)
msgid "Tweak the protection according to your needs."
msgstr "Настройте защиту в соответствии с вашими потребностями."

#: ../content/pages/faq.md:block 52 (paragraph)
msgid "![Tweaking JSS mode](/images/faq/jss_tweaking.png)"
msgstr "![Настройка режима JSS](/images/faq/jss_tweaking.png)"

#: ../content/pages/faq.md:block 53 (header)
msgid "How can I fix videos if they fail to play or retrieve data in time?"
msgstr ""
"Как исправить видео, если оно не воспроизводится или не получает данные "
"вовремя?"

#: ../content/pages/faq.md:block 54 (paragraph)
msgid ""
"JShelter reimplements more than 100 JavaScript APIs. However, pages can use "
"several ways to access the same API. Unfortunately, browsers do not allow "
"patching every possibility consistently through a simple call. Web Workers "
"are one of the possibilities to access the APIs (see further [threats](#what-"
"are-web-workers-and-what-are-the-threats-that-i-face)). Our ultimate goal is "
"to patch APIs consistently. However, patching Web Worker is tricky, and we "
"have yet to find a way to patch Workers seamlessly. Our ultimate goal was to "
"replace Workers with synchronous code. However, so far, we offer only "
"policies that either disable Workers or make them inoperable."
msgstr ""
"JShelter реимплементирует более 100 API JavaScript. Однако страницы могут "
"использовать несколько способов доступа к одному и тому же API. К сожалению, "
"браузеры не позволяют последовательно исправлять все возможности с помощью "
"простого вызова. Одной из возможностей доступа к API являются веб-рабочие ("
"см. далее [threats](#what-are-web-workers-and-what-are-the-threats-"
"that-i-face)). Наша конечная цель - постоянное исправление API. Однако "
"исправление Web Worker - дело непростое, и нам еще предстоит найти способ "
"беспрепятственного исправления Workers. Наша конечная цель - заменить "
"Workers синхронным кодом. Однако пока мы предлагаем только политики, которые "
"либо отключают Workers, либо делают их неработоспособными."

#: ../content/pages/faq.md:block 55 (paragraph)
msgid ""
"We are [working](https://pagure.io/JShelter/webextension/issue/43) on "
"[improvements](https://pagure.io/JShelter/webextension/issue/80). Currently, "
"we patch Web Workers in the `Recommended` level (`Remove` policy). "
"Nevertheless, the method breaks Web Workers, and they cannot be used for "
"benign purposes. The page also cannot detect breakage to limit the "
"fingerprintability of the browsers."
msgstr ""
"Мы [работаем](https://pagure.io/JShelter/webextension/issue/43) над "
"[улучшениями](https://pagure.io/JShelter/webextension/issue/80). В настоящее "
"время мы патчим Web Workers на уровне `Recommended` (политика `Remove`). Тем "
"не менее, этот метод ломает Web Workers, и их нельзя использовать в "
"доброкачественных целях. Страница также не может обнаружить поломку, чтобы "
"ограничить возможность отпечатка пальца в браузерах."

#: ../content/pages/faq.md:block 56 (paragraph)
msgid ""
"JShelter users reported that video streaming servers are often affected. We "
"encountered pages that detect the presence of Web Worker support in browsers "
"and provide polyfills if they do not detect Web Worker support. The `Remove` "
"WebWorker policy is ideal for such servers. The page can easily detect "
"missing Web Worker support. Suppose a page provides its own alternatives "
"like polyfills. The alternatives do not have the powers of Web Workers, so "
"you can make the page work at the cost of increased fingerprintability. Use "
"FPD to evaluate that threat."
msgstr ""
"Пользователи JShelter сообщили, что часто страдают серверы потокового видео. "
"Мы столкнулись со страницами, которые определяют наличие поддержки Web "
"Worker в браузерах и предоставляют полифиллы, если они не обнаруживают "
"поддержку Web Worker. Политика `Remove` WebWorker идеально подходит для "
"таких серверов. Страница может легко обнаружить отсутствие поддержки Web "
"Worker. Предположим, страница предоставляет свои собственные альтернативы, "
"такие как полифиллы. Эти альтернативы не обладают возможностями Web Worker, "
"поэтому вы можете заставить страницу работать ценой увеличения возможности "
"отпечатков пальцев. Используйте FPD для оценки этой угрозы."

#: ../content/pages/faq.md:block 57 (paragraph)
msgid ""
"If you believe the server operator and their partners not to misuse Web "
"Workers to access original APIs and [other ways](#what-are-web-workers-and-"
"what-are-the-threats-that-i-face), or if you do not mind, change the "
"`WebWorker` policy from `Remove` to `Low` (in Chrome) or deactivate it "
"completely ([in Firefox](https://pagure.io/JShelter/webextension/issue/80)). "
"Videos and other functionality requiring Web Workers should work. To change "
"the policy, follow these steps:"
msgstr ""
"Если вы уверены, что оператор сервера и его партнеры не будут злоупотреблять "
"Web Workers для доступа к оригинальным API и [другими способами](#what-are-"
"web-workers-and-what-are-the-threats-that-i-face), или если вы не против, "
"измените политику `WebWorker` с `Remove` на `Low` (в Chrome) или полностью "
"деактивируйте ее ([в Firefox](https://pagure.io/JShelter/webextension/issue/"
"80)). Видео и другие функции, требующие использования Web Workers, должны "
"работать. Чтобы изменить политику, выполните следующие действия:"

#: ../content/pages/faq.md:block 58 (ordered list)
msgid "Navigate to a page with a video you want to watch."
msgstr "Перейдите на страницу с видео, которое вы хотите посмотреть."

#: ../content/pages/faq.md:block 58 (ordered list)
msgid ""
"Click on the JShelter badge icon (typically in the toolbar next to your "
"navigation bar; if you cannot locate the icon, see [this question](#can-i-"
"see-a-jshelter-badge-icon-next-to-my-navigation-bar-i-want-to-interact-with-"
"the-extension-easily-and-avoid-going-through-settings))."
msgstr ""
"Щелкните на значке значка JShelter (обычно он находится на панели "
"инструментов рядом с панелью навигации; если вы не можете найти этот значок, "
"смотрите [этот вопрос](#can-i-see-a-jshelter-badge-icon-next-to-my-"
"navigation-bar-i-want-to-interact-with-the-extension-easily-and-avoid-going-"
"through-settings))."

#: ../content/pages/faq.md:block 58 (ordered list)
msgid "Click on the `Modify` button."
msgstr "Нажмите на кнопку `Изменить`."

#: ../content/pages/faq.md:block 58 (ordered list)
msgid "Click on the `Detail tweaks of JS shield for this site` button."
msgstr "Нажмите на кнопку `Подробные настройки JS shield для этого сайта`."

#: ../content/pages/faq.md:block 58 (ordered list)
msgid ""
"Click and drag the `WebWorker` slider to the left until `Remove` is replaced "
"by the `Low` value (Chromium-based browser) or `Unprotected` (Firefox)."
msgstr ""
"Нажмите и перетащите ползунок `WebWorker` влево, пока `Удалить` не будет "
"заменен значением `Низкий` (браузер на базе Chromium) или `Незащищенный` "
"(Firefox)."

#: ../content/pages/faq.md:block 58 (ordered list)
msgid "Click on the `Refresh page` button at the top."
msgstr "Нажмите на кнопку `Обновить страницу` в верхней части."

#: ../content/pages/faq.md:block 58 (ordered list)
msgid "Watch the video."
msgstr "Смотрите видео."

#: ../content/pages/faq.md:block 59 (header)
msgid ""
"I want to use a website that uses Web Workers, but it is broken. How can I "
"fix the site?"
msgstr ""
"Я хочу использовать сайт, который использует Web Workers, но он сломан. Как "
"я могу починить сайт?"

#: ../content/pages/faq.md:block 60 (paragraph)
msgid ""
"First, see the explanation of [Web Workers](#what-are-web-workers-and-what-"
"are-the-threats-that-i-face)."
msgstr ""
"Во-первых, посмотрите объяснение [Web Workers](#what-are-web-workers-and-"
"what-are-the-threats-that-i-face)."

#: ../content/pages/faq.md:block 61 (paragraph)
msgid ""
"See the [answer to the video question](#how-can-i-fix-videos-if-they-fail-to-"
"play-or-retrieve-data-in-time)."
msgstr ""
"Смотрите [ответ на вопрос о видео](#how-can-i-fix-videos-if-they-fail-to-"
"play-or-retrieve-data-in-time)."

#: ../content/pages/faq.md:block 62 (paragraph)
msgid ""
"If you find a website that needs WebWorker protection set to `Strict` and "
"does not work with `Remove` or vice-versa, please let us know in the [issue "
"tracker](https://pagure.io/JShelter/webextension/issues) or send us [e-mail]"
"(mailto:jshelter@gnu.org)."
msgstr ""
"Если вы обнаружили сайт, для которого защита WebWorker установлена на "
"`Строгий` и не работает с `Удалить` или наоборот, сообщите нам об этом в "
"[issue tracker](https://pagure.io/JShelter/webextension/issues) или "
"отправьте нам [e-mail](mailto:jshelter@gnu.org)."

#: ../content/pages/faq.md:block 63 (header)
msgid "User interface issues"
msgstr "Проблемы с пользовательским интерфейсом"

#: ../content/pages/faq.md:block 64 (header)
msgid ""
"Can I see a JShelter (badge) icon next to my navigation bar? I want to "
"interact with the extension easily and avoid going through settings."
msgstr ""
"Могу ли я увидеть значок JShelter (значок) рядом с панелью навигации? Я хочу "
"легко взаимодействовать с расширением и не копаться в настройках."

#: ../content/pages/faq.md:block 65 (paragraph)
msgid ""
"JShelter has a badge icon in the toolbar that allows you to open the popup. "
"However, browsers tend to hide the icon. If you cannot see a JShelter icon "
"to the right of the bar where you enter URLs. Try to:"
msgstr ""
"В панели инструментов JShelter есть значок, который позволяет открыть "
"всплывающее окно. Однако браузеры обычно скрывают этот значок. Если вы не "
"видите значок JShelter справа от панели, где вы вводите URL-адреса. "
"Попробуйте:"

#: ../content/pages/faq.md:block 66 (ordered list)
msgid "Click on the extension icon (typically looks like a puzzle tile)."
msgstr "Щелкните на значке расширения (обычно он выглядит как плитка-пазл)."

#: ../content/pages/faq.md:block 66 (ordered list)
msgid "Pin JShelter to the toolbar."
msgstr "Закрепите JShelter на панели инструментов."

#: ../content/pages/faq.md:block 67 (paragraph)
msgid ""
"The figure below shows how to accomplish these two steps in Firefox and a "
"Chromium-based browser."
msgstr ""
"На рисунке ниже показано, как выполнить эти два шага в Firefox и браузере на "
"базе Chromium."

#: ../content/pages/faq.md:block 68 (paragraph)
msgid ""
"![Pin JShelter to Firefox toolbar]({attach}/images/faq/firefox_pintoolbar."
"png) ![Pin JShelter to a Chromium-based browser toolbar]({attach}/images/faq/"
"chromium_pintoolbar.png)"
msgstr ""
"![Прикрепить JShelter к панели инструментов Firefox]({attach}/images/faq/"
"firefox_pintoolbar.png) !"
"[Прикрепить JShelter к панели инструментов браузера на базе Chromium]"
"({attach}/images/faq/chromium_pintoolbar.png)"

#: ../content/pages/faq.md:block 69 (header)
msgid ""
"A site opened a popup window, I want to tweak settings for that window, but "
"I do not see a badge JShelter icon there. How can I tweak JShelter settings?"
msgstr ""
"На сайте открылось всплывающее окно, я хочу настроить параметры этого окна, "
"но не вижу там значка JShelter. Как я могу настроить параметры JShelter?"

#: ../content/pages/faq.md:block 70 (paragraph)
msgid "If you are using Firefox:"
msgstr "Если вы используете Firefox:"

#: ../content/pages/faq.md:block 71 (ordered list)
msgid "Open `about:config`, click to `Accept the Risk and Continue`,"
msgstr "Откройте `about:config`, нажмите на `Принять риск и продолжить`,"

#: ../content/pages/faq.md:block 71 (ordered list)
msgid "set `browser.link.open_newwindow` to `3`,"
msgstr "установите `browser.link.open_newwindow` на `3`,"

#: ../content/pages/faq.md:block 71 (ordered list)
msgid "set `browser.link.open_newwindow.restriction` to `0`."
msgstr "установите `browser.link.open_newwindow.restriction` на `0`."

#: ../content/pages/faq.md:block 72 (paragraph)
msgid ""
"This will force all popup windows to open in a new tab, meaning the JShelter "
"settings could be adjusted easily everywhere."
msgstr ""
"Это заставит все всплывающие окна открываться в новой вкладке, а значит, "
"настройки JShelter можно будет легко настроить везде."

#: ../content/pages/faq.md:block 73 (header)
msgid "Why do I see so many notifications from JShelter?"
msgstr "Почему я вижу так много уведомлений от JShelter?"

#: ../content/pages/faq.md:block 74 (paragraph)
msgid ""
"Generally speaking, you should see only a few notifications by JShelter. The "
"default settings are tailored to give the user critical information about "
"JShelter behavior and its possible changes to the page's ability to make "
"network requests that often break the page's behavior."
msgstr ""
"В целом, вы должны видеть только несколько уведомлений от JShelter. "
"Настройки по умолчанию предназначены для предоставления пользователю "
"критической информации о поведении JShelter и его возможных изменениях в "
"способности страницы выполнять сетевые запросы, которые часто нарушают "
"поведение страницы."

#: ../content/pages/faq.md:block 75 (paragraph)
msgid ""
"We suggest installing a tracker blocker like uBlock Origin. The blocker will "
"eliminate the most common security and privacy threats."
msgstr ""
"Мы рекомендуем установить блокировщик трекеров, например uBlock Origin. "
"Блокировщик устранит наиболее распространенные угрозы безопасности и "
"конфиденциальности."

#: ../content/pages/faq.md:block 76 (paragraph)
msgid ""
"Also, see [the question on NBS notifications](#i-am-seeing-too-many-nbs-"
"notifications)."
msgstr ""
"Также смотрите [вопрос об уведомлениях NBS](#i-am-seeing-too-many-nbs-"
"notifications)."

#: ../content/pages/faq.md:block 77 (header)
msgid "I am seeing too many NBS notifications"
msgstr "Я вижу слишком много уведомлений NBS"

#: ../content/pages/faq.md:block 78 (paragraph)
msgid ""
"NBS protects from attacks that occur very rarely. JShelter users often "
"complain about too many notifications when they employ DNS-based blocking. "
"DNS-blocking resolver resolves predefined domains to a fake IP address, "
"usually `0.0.0.0` or `127.0.0.1` (IPv4) and `::` or `::1` (IPv6). If your "
"DNS-blocking resolver returns `127.0.0.1` and `::1`. Please reconfigure the "
"resolver to return `0.0.0.0` or `::`."
msgstr ""
"NBS защищает от атак, которые происходят очень редко. Пользователи JShelter "
"часто жалуются на слишком большое количество уведомлений при использовании "
"блокировки на основе DNS. DNS-блокирующий резолвер преобразует "
"предопределенные домены в поддельные IP-адреса, обычно `0.0.0.0` или "
"`127.0.0.1` (IPv4) и `::` или `::1` (IPv6). Если ваш DNS-блокирующий "
"резолвер возвращает `127.0.0.1` и `::1`. Пожалуйста, перенастройте резолвер "
"на возврат `0.0.0.0` или `::`."

#: ../content/pages/faq.md:block 79 (ordered list)
msgid ""
"Depending on your OS, you will consume fewer resources. For example, Windows "
"machines do not create any TCP stream when a website connects to `0.0.0.0` "
"or `::`, but it creates a TCP stream to `127.0.0.1` and `::1`. Hence, a "
"remote web page can access a web server if it is running on the local "
"machine. Note that Linux hosts try to establish a connection to a localhost "
"port on all these addresses."
msgstr ""
"В зависимости от вашей ОС вы будете потреблять меньше ресурсов. Например, "
"машины Windows не создают TCP-поток, когда веб-сайт подключается к `0.0.0.0` "
"или `::`, но создают TCP-поток к `127.0.0.1` и `::1`. Таким образом, "
"удаленная веб-страница может получить доступ к веб-серверу, если он запущен "
"на локальной машине. Обратите внимание, что хосты Linux пытаются установить "
"соединение с портом localhost по всем этим адресам."

#: ../content/pages/faq.md:block 79 (ordered list)
msgid ""
"If your DNS-based filtering returns `0.0.0.0` or `::`, it will give JShelter "
"a report on the intentions. If it returns `127.0.0.1` or `::1`, JShelter has "
"no way to differentiate between such DNS blocker and an attack like the one "
"in the [blog](/localportscanning/)."
msgstr ""
"Если ваш DNS-фильтр возвращает `0.0.0.0` или `::`, он предоставит JShelter "
"отчет о намерениях. Если же он возвращает `127.0.0.1` или `::1`, JShelter не "
"имеет возможности отличить такой DNS-блокировщик от атаки, подобной той, что "
"описана в [блоге](/localportscanning/)."

#: ../content/pages/faq.md:block 80 (header)
msgid "Browser fingerprinting"
msgstr "Отпечатки пальцев браузера"

#: ../content/pages/faq.md:block 81 (header)
msgid "What is the little lies approach to protect from fingerprinters?"
msgstr "В чем заключается маленькая ложь для защиты от дактилоскопистов?"

#: ../content/pages/faq.md:block 82 (paragraph)
msgid "Please see [the blog post](/farbling/)."
msgstr "Пожалуйста, посмотрите [запись в блоге](/farbling/)."

#: ../content/pages/faq.md:block 83 (header)
msgid ""
"What is the difference between the little lies and white lies approach to "
"protect from fingerprinters and farbling?"
msgstr ""
"В чем разница между маленькой ложью и белой ложью для защиты от "
"дактилоскопистов и фарцовщиков?"

#: ../content/pages/faq.md:block 84 (paragraph)
msgid ""
"None. All refer to the same technique [that is explained in another question]"
"(#what-is-the-little-lies-approach-to-protect-from-fingerprinters)."
msgstr ""
"Нет. Все они относятся к одной и той же технике "
"[которая объясняется в другом вопросе] (#what-is-the-little-lies-approach-to-"
"protect-fingerprinters)."

#: ../content/pages/faq.md:block 85 (header)
msgid "What JShelter configuration should I pick?"
msgstr "Какую конфигурацию JShelter мне выбрать?"

#: ../content/pages/faq.md:block 86 (paragraph)
msgid ""
"First, see our [blog post](/fingerprinting/). Consult also other [blog posts]"
"(/blog/) and other questions in this FAQ."
msgstr ""
"Для начала ознакомьтесь с нашим [сообщением в блоге](/fingerprinting/). "
"Обратитесь также к другим [записям блога](/blog/) и другим вопросам в этом "
"FAQ."

#: ../content/pages/faq.md:block 87 (ordered list)
msgid ""
"If you want to have the same fingerprint as many users, We suggest going for "
"Tor Browser (do not install JShelter in Tor Browser)."
msgstr ""
"Если вы хотите иметь одинаковые отпечатки пальцев у многих пользователей, мы "
"советуем использовать Tor Browser (не устанавливайте JShelter в Tor Browser)."

#: ../content/pages/faq.md:block 87 (ordered list)
msgid ""
"If you want to make cross-site fingerprinting linkage hard, go for the "
"`Recommended` JShelter level. If you want better protection for the real "
"data at the cost of having the same fingerprint on different sites, go for "
"the `Strict` JShelter level."
msgstr ""
"Если вы хотите затруднить межсайтовую связь отпечатков пальцев, выбирайте "
"уровень `Рекомендовано` JShelter. Если вам нужна более надежная защита "
"реальных данных ценой наличия одинаковых отпечатков на разных сайтах, "
"выбирайте уровень `Строгий` JShelter."

#: ../content/pages/faq.md:block 87 (ordered list)
msgid "Keep NBS active."
msgstr "Поддерживайте NBS в активном состоянии."

#: ../content/pages/faq.md:block 87 (ordered list)
msgid "If you want to detect and prevent fingerprinting attempts, use FPD."
msgstr ""
"Если вы хотите обнаружить и предотвратить попытки отпечатков пальцев, "
"используйте FPD."

#: ../content/pages/faq.md:block 88 (header)
msgid ""
"I have a unique fingerprint? Some properties wrapped by JShelter return "
"random values."
msgstr ""
"У меня есть уникальный отпечаток пальца? Некоторые свойства, обернутые "
"JShelter, возвращают случайные значения."

#: ../content/pages/faq.md:block 89 (paragraph)
msgid "First, see our [blog post](/fingerprinting/)."
msgstr "Для начала ознакомьтесь с нашей [записью в блоге](/fingerprinting/)."

#: ../content/pages/faq.md:block 90 (paragraph)
msgid ""
"JShelter indeed modifies some properties like WebGL strings (`renderer`, "
"`vendor`) to random strings in the `Recommended` level. JShelter also does "
"not modify random identifiers of microphones and cameras. All these "
"properties contain random strings that uniquely identify your browser "
"session."
msgstr ""
"JShelter действительно изменяет некоторые свойства, такие как строки WebGL "
"(`рендерер`, `вендор`), на случайные строки на уровне `Рекомендованные`. "
"JShelter также не изменяет случайные идентификаторы микрофонов и камер. Все "
"эти свойства содержат случайные строки, которые однозначно идентифицируют "
"сессию браузера."

#: ../content/pages/faq.md:block 91 (paragraph)
msgid ""
"JShelter provides different lies on different domains, so cross-domain "
"linking is hard. But remember that a single domain can link all your "
"activities during a browser session. If you do not want JShelter to generate "
"the random strings, use `Strict` protection (but see [other FAQ entries]"
"(#browser-fingerprinting))."
msgstr ""
"JShelter предоставляет различную информацию на разных доменах, поэтому кросс-"
"доменная связь затруднена. Но помните, что один домен может связать все ваши "
"действия во время сессии браузера. Если вы не хотите, чтобы JShelter "
"генерировал случайные строки, используйте защиту `Строгий` (но см. "
"[другие записи FAQ](#browser-fingerprinting))."

#: ../content/pages/faq.md:block 92 (paragraph)
msgid ""
"We are [considering](https://pagure.io/JShelter/webextension/issue/68) "
"adding better control for the little lies approach."
msgstr ""
"Мы [рассматриваем возможность](https://pagure.io/JShelter/webextension/issue/"
"68) добавления лучшего контроля для подхода \"маленькая ложь\"."

#: ../content/pages/faq.md:block 93 (paragraph)
msgid ""
"We are also [considering](https://pagure.io/JShelter/webextension/issue/69) "
"replacing the random strings of the Web GL API with real-world strings. "
"However, we do not have such a database. We are also worried about creating "
"inconsistencies if we apply invalid combinations of real-world strings. As "
"creating the real-world database would take a lot of time, and a dedicated "
"fingerprinter might reveal the inconsistencies anyway, we do not actively "
"work on the issue."
msgstr ""
"Мы также [рассматриваем](https://pagure.io/JShelter/webextension/issue/69) "
"замену случайных строк Web GL API на реальные строки. Однако у нас нет такой "
"базы данных. Мы также опасаемся возникновения несоответствий, если мы будем "
"применять недопустимые комбинации реальных строк. Поскольку создание базы "
"данных реальных строк займет много времени, а специальный принтер пальцев "
"все равно выявит несоответствия, мы не работаем над этим вопросом активно."

#: ../content/pages/faq.md:block 94 (header)
msgid "Is browser fingerprinting a real threat?"
msgstr "Является ли отпечаток браузера реальной угрозой?"

#: ../content/pages/faq.md:block 95 (paragraph)
msgid ""
"More than 100 advertisement companies reveal in the [adtech transparency a "
"consent framework](https://www.fit.vutbr.cz/~polcak/tcf/tcf2.html) that they "
"actually actively scan device characteristics for identification: devices "
"can be identified based on a scan of the device's unique combination of "
"characteristics. Vendors can create an identifier using data collected via "
"actively scanning a device for specific characteristics, e.g., installed "
"fonts or screen resolution, use such an identifier to re-identify a device."
msgstr ""
"В документе [adtech transparency a consent framework] (https://"
"www.fit.vutbr.cz/~polcak/tcf/tcf2.html) более 100 рекламных компаний "
"сообщают, что они действительно активно сканируют характеристики устройств "
"для их идентификации: устройства могут быть идентифицированы на основе "
"сканирования уникальной комбинации характеристик устройства. Поставщики "
"могут создать идентификатор на основе данных, собранных в ходе активного "
"сканирования устройства на наличие определенных характеристик, например, "
"установленных шрифтов или разрешения экрана, и использовать такой "
"идентификатор для повторной идентификации устройства."

#: ../content/pages/faq.md:block 96 (paragraph)
msgid ""
"![TCF participants actively scanning devices to create a fingerprint]"
"(https://www.fit.vutbr.cz/~polcak/tcf/graphs/v2sf2.svg)"
msgstr ""
"![Участники TCF активно сканируют устройства, чтобы создать отпечаток "
"пальца](https://www.fit.vutbr.cz/~polcak/tcf/graphs/v2sf2.svg)"

#: ../content/pages/faq.md:block 97 (paragraph)
msgid ""
"See papers like [Browser Fingerprinting: A survey](https://arxiv.org/"
"pdf/1905.01051.pdf), [Fingerprinting the Fingerprinters](https://uiowa-irl."
"github.io/FP-Inspector/) or [The Elephant in the Background](https://fpmon."
"github.io/fingerprinting-monitor/files/FPMON.pdf)."
msgstr ""
"См. такие статьи, как [Browser Fingerprinting: A survey](https://arxiv.org/"
"pdf/1905.01051.pdf), [Fingerprinting the Fingerprinters](https://uiowa-"
"irl.github.io/FP-Inspector/) или [The Elephant in the Background](https://"
"fpmon.github.io/fingerprinting-monitor/files/FPMON.pdf)."

#: ../content/pages/faq.md:block 98 (header)
msgid "Does FPD collect a list of pages/origins that fingerprinted me?"
msgstr ""
"Собирает ли FPD список страниц/оригиналов, которые сняли с меня отпечатки "
"пальцев?"

#: ../content/pages/faq.md:block 99 (paragraph)
msgid ""
"No, FPD does not store any information. Each page load starts a new "
"detection that is not dependent on previous interactions between the browser "
"and the site."
msgstr ""
"Нет, FPD не хранит никакой информации. При каждой загрузке страницы "
"начинается новое обнаружение, которое не зависит от предыдущих "
"взаимодействий между браузером и сайтом."

#: ../content/pages/faq.md:block 100 (header)
msgid ""
"When FPD detects that an origin tried to fingerprint me, does it mean that "
"the extension will apply stronger protection like switching to the `Strict` "
"JSS level or applying the blocking of HTTP requests initiated by the domain?"
msgstr ""
"Когда FPD обнаруживает, что источник пытался снять с меня отпечатки пальцев, "
"означает ли это, что расширение применит более сильную защиту, например, "
"переключится на уровень `Строгий` JSS или применит блокировку HTTP-запросов, "
"инициированных доменом?"

#: ../content/pages/faq.md:block 101 (paragraph)
msgid "No."
msgstr "Нет."

#: ../content/pages/faq.md:block 102 (paragraph)
msgid ""
"First of all, the `Strict` JSS level does not mean stronger protection from "
"fingerprinting. In fact, it makes your fingerprint stable. We do not "
"recommend using `Strict` level as an anti-fingerprinting mechanism."
msgstr ""
"Прежде всего, уровень `Строгий` JSS не означает более сильную защиту от "
"отпечатков пальцев. На самом деле, он делает отпечатки стабильными. Мы не "
"рекомендуем использовать уровень `Строгий` в качестве механизма защиты от "
"фингерпринтинга."

#: ../content/pages/faq.md:block 103 (paragraph)
msgid ""
"Secondly, fingerprinting is quite common on login pages. If one page "
"fingerprints you, it does not mean that all pages are going to fingerprint "
"you."
msgstr ""
"Во-вторых, отпечатки пальцев довольно часто встречаются на страницах входа в "
"систему. Если одна страница оставляет отпечатки пальцев, это не значит, что "
"все страницы будут оставлять отпечатки пальцев."

#: ../content/pages/faq.md:block 104 (paragraph)
msgid ""
"Thirdly, the fingerprinting script may be loaded into the page irregularly. "
"We want to prevent blocking the site when no fingerprinting is detected."
msgstr ""
"В-третьих, скрипт отпечатков пальцев может загружаться на страницу "
"нерегулярно. Мы хотим предотвратить блокировку сайта, когда отпечатки "
"пальцев не обнаружены."

#: ../content/pages/faq.md:block 105 (paragraph)
msgid ""
"If you want to switch to a different level for the website, you can do so "
"manually. We do not recommend such action."
msgstr ""
"Если вы хотите переключиться на другой уровень для сайта, вы можете сделать "
"это вручную. Мы не рекомендуем выполнять такие действия."

#: ../content/pages/faq.md:block 106 (header)
msgid ""
"My bank (or another trusted site) fingerprinted me during a login attempt. "
"Should I worry?"
msgstr ""
"Мой банк (или другой надежный сайт) снял с меня отпечатки пальцев при "
"попытке входа в систему. Стоит ли мне беспокоиться?"

#: ../content/pages/faq.md:block 107 (paragraph)
msgid ""
"Browser fingerprinting is a common part of multi-factor authentication. The "
"provider tries to protect your account. So you should not worry, but you "
"might be forced to deactivate FPD for that site. However, we suggest that "
"you do not turn off JavaScript Shield and its anti-fingerprinting "
"protections."
msgstr ""
"Отпечатки пальцев браузера - распространенная часть многофакторной "
"аутентификации. Провайдер пытается защитить вашу учетную запись. Поэтому вам "
"не стоит беспокоиться, но вы можете быть вынуждены отключить FPD для этого "
"сайта. Однако мы рекомендуем не отключать JavaScript Shield и его защиту от "
"отпечатков пальцев."

#: ../content/pages/faq.md:block 108 (paragraph)
msgid ""
"From the European perspective, [WP29 clarified](https://ec.europa.eu/justice/"
"article-29/documentation/opinion-recommendation/files/2014/wp224_en.pdf) "
"(use case 7.5) that user-centric security can be viewed as strictly "
"necessary to provide a web service. So it seems likely that browser "
"fingerprinting for security reasons does trigger the ePrivacy exception, and "
"user consent is not necessary. Depending on the circumstances, a fingerprint "
"can be personal data. GDPR might also apply. GDPR lists security as a "
"possible legitimate interest of a data controller, see recital 49. "
"Nevertheless, whether all fingerprinting is proportionate is an open "
"question."
msgstr ""
"С точки зрения Европы, [WP29 разъяснил](https://ec.europa.eu/justice/"
"article-29/documentation/opinion-recommendation/files/2014/wp224_en.pdf) ("
"пример использования 7.5), что безопасность, ориентированная на "
"пользователя, может рассматриваться как строго необходимая для "
"предоставления веб-услуги. Таким образом, представляется вероятным, что "
"снятие отпечатков пальцев браузера в целях безопасности действительно "
"подпадает под исключение ePrivacy, и согласие пользователя не требуется. В "
"зависимости от обстоятельств, отпечаток может быть персональными данными. "
"Также может применяться GDPR. В GDPR безопасность указана в качестве "
"возможного законного интереса контролера данных, см. главу 49. Тем не менее, "
"вопрос о том, насколько соразмерны все отпечатки пальцев, остается открытым."

#: ../content/pages/faq.md:block 109 (paragraph)
msgid ""
"We understand that our users do not want to give information about their "
"devices. Hence, we suggest having JavaScript Shield active on fingerprinting "
"sites. It is up to you if you want to provide as little information as "
"possible (`Strict` level), want to have a different fingerprint every visit "
"(`Recommended` level, keep in mind that you are providing your login, so "
"your actions are linkable), or you want to create your own level."
msgstr ""
"Мы понимаем, что наши пользователи не хотят предоставлять информацию о своих "
"устройствах. Поэтому мы рекомендуем активировать JavaScript Shield на сайтах "
"с отпечатками пальцев. Вы сами решаете, хотите ли вы предоставлять как можно "
"меньше информации (уровень `Строгий`), хотите ли иметь разные отпечатки при "
"каждом посещении (уровень `Рекомендованный`, не забывайте, что вы "
"предоставляете свой логин, поэтому ваши действия могут быть связаны), или вы "
"хотите создать свой собственный уровень."

#: ../content/pages/faq.md:block 110 (header)
msgid "Do you protect against font enumeration fingerprinting?"
msgstr "Защищаете ли вы от отпечатков пальцев при перечислении шрифтов?"

#: ../content/pages/faq.md:block 111 (paragraph)
msgid ""
"No. We currently do not have a consistent method that spoofs fonts reliably. "
"If you are concerned about font enumeration, you can track the relevant "
"JShelter [issue](https://pagure.io/JShelter/webextension/issue/60)."
msgstr ""
"Нет. В настоящее время у нас нет последовательного метода, который бы "
"надежно подменял шрифты. Если вас беспокоит перечисление шрифтов, вы можете "
"отследить соответствующую проблему JShelter [issue](https://pagure.io/"
"JShelter/webextension/issue/60)."

#: ../content/pages/faq.md:block 112 (paragraph)
msgid ""
"If you are using Firefox and want your fonts hidden consistently, activate "
"resistFingerprinting. However, cosider [the interaction between JShelter and "
"resistFingerprinting](#i-am-using-firefox-fingerprinting-protection-"
"resistfingerprinting-should-i-continue-should-i-turn-firefox-fingerprinting-"
"protection-on)."
msgstr ""
"Если вы используете Firefox и хотите, чтобы ваши шрифты были скрыты "
"постоянно, активируйте resistFingerprinting. Однако обратите внимание на "
"[взаимодействие между JShelter и resistFingerprinting] (#i-am-using-firefox-"
"fingerprinting-protection-resistfingerprinting-should-i-continue-should-i"
"-turn-firefox-fingerprinting-protection-on)."

#: ../content/pages/faq.md:block 113 (header)
msgid "Does JShelter completely prevent browser fingerprinting?"
msgstr "Полностью ли JShelter предотвращает отпечатки браузеров?"

#: ../content/pages/faq.md:block 114 (paragraph)
msgid ""
"No. See the [threat model](/threatmodel/). As explained there, JShelter "
"applies reasonable precautions but:"
msgstr ""
"Нет. Смотрите [модель угроз] (/threatmodel/). Как объясняется там, JShelter "
"применяет разумные меры предосторожности, но:"

#: ../content/pages/faq.md:block 115 (ordered list)
msgid "There is no clear boundary between fingerprinting and benign behavior."
msgstr ""
"Не существует четкой границы между отпечатками пальцев и доброкачественным "
"поведением."

#: ../content/pages/faq.md:block 115 (ordered list)
msgid ""
"A fingerprinter might deploy focused attacks. While we try to deploy "
"undetectable and reasonable countermeasures, expect that a focused and "
"motivated attacker will be able to detect JShelter users."
msgstr ""
"Злоумышленник может проводить целенаправленные атаки. Несмотря на то, что мы "
"стараемся внедрить необнаруживаемые и разумные контрмеры, ожидается, что "
"целенаправленный и мотивированный злоумышленник сможет обнаружить "
"пользователей JShelter."

#: ../content/pages/faq.md:block 115 (ordered list)
msgid ""
"We expect that users will run FPD and JSS in parallel. As both protect from "
"fingerprinting differently, they complement each other."
msgstr ""
"Мы ожидаем, что пользователи будут использовать FPD и JSS параллельно. "
"Поскольку обе системы защищают от отпечатков пальцев по-разному, они "
"дополняют друг друга."

#: ../content/pages/faq.md:block 116 (paragraph)
msgid ""
"Also, read [the other questions in the browser fingerprinting section]"
"(#browser-fingerprinting)."
msgstr ""
"Также прочитайте [другие вопросы в разделе \"Отпечатки пальцев браузера\"]"
"(#browser-fingerprinting)."

#: ../content/pages/faq.md:block 117 (header)
msgid "Other protections by JShelter"
msgstr "Другие защиты от JShelter"

#: ../content/pages/faq.md:block 118 (header)
msgid "What are Web Workers, and what are the threats that I face?"
msgstr "Что такое Web Workers и с какими угрозами я сталкиваюсь?"

#: ../content/pages/faq.md:block 119 (paragraph)
msgid "In essence, Web Workers are a threat to JShelter users for two reasons:"
msgstr ""
"По сути, Web Workers представляют угрозу для пользователей JShelter по двум "
"причинам:"

#: ../content/pages/faq.md:block 120 (ordered list)
msgid ""
"They allow access to some of the modified APIs. There is no simple call that "
"JShelter can issue to apply the modifications to Web Workers. So, if you do "
"not apply WebWorker protection, you risk that Web Workers can remove other "
"protections."
msgstr ""
"Они позволяют получить доступ к некоторым модифицированным API. Не "
"существует простого вызова, который JShelter может выполнить для применения "
"модификаций к Web Workers. Поэтому, если вы не примените защиту WebWorker, "
"вы рискуете тем, что Web Workers могут удалить другие защиты."

#: ../content/pages/faq.md:block 120 (ordered list)
msgid ""
"They increase the capabilities of attackers. For example, malicious actors "
"can install long-lived proxies to the browser."
msgstr ""
"Они расширяют возможности злоумышленников. Например, злоумышленники могут "
"устанавливать в браузер долгоживущие прокси-серверы."

#: ../content/pages/faq.md:block 121 (paragraph)
msgid ""
"For more details, see [Web Worker documentation](https://developer.mozilla."
"org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers), the [explanation "
"of using Web Workers as Man-In-The-Middle proxy](https://betterprogramming."
"pub/man-in-the-middle-attacks-via-javascript-service-workers-52647ac929a2), "
"papers like [Assessing the threat of web worker distributed attacks](https://"
"www.researchgate.net/"
"publication/313953354_Assessing_the_threat_of_web_worker_distributed_attacks), "
"and other [works](http://www.diva-portal.se/smash/get/diva2:1218197/"
"FULLTEXT01.pdf)."
msgstr ""
"Более подробную информацию можно найти в [документации по Web Worker]"
"(https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/"
"Using_web_workers), в "
"[объяснении использования Web Workers в качестве Man-In-The-Middle proxy]"
"(https://betterprogramming.pub/man-in-the-middle-attacks-via-javascript-"
"service-workers-52647ac929a2), в статьях типа "
"[Assessing the threat of web worker distributed attacks](https://"
"www.researchgate.net/publication/"
"313953354_Assessing_the_threat_of_web_worker_distributed_attacks) и других "
"[работах](http://www.diva-portal.se/smash/get/diva2:1218197/FULLTEXT01.pdf)."

#: ../content/pages/faq.md:block 122 (header)
msgid "What is Network Boundary Shield (NBS)?"
msgstr "Что такое Network Boundary Shield (NBS)?"

#: ../content/pages/faq.md:block 123 (paragraph)
msgid ""
"Your browser can be instructed by the creators of the visited page (or "
"malicious actors that successfully inserted their code into the visited "
"page) to act as an intermediary device that creates connections to other "
"devices in the network. NBS detects and prevents such attacks, see its "
"[dedicated page](/nbs/) and our [blog post](/localportscanning/) for more "
"information."
msgstr ""
"Создатели посещаемой страницы (или злоумышленники, успешно внедрившие свой "
"код в посещаемую страницу) могут приказать вашему браузеру действовать в "
"качестве устройства-посредника, создающего соединения с другими устройствами "
"в сети. Компания NBS обнаруживает и предотвращает такие атаки, подробнее об "
"этом можно узнать на ее [специальной странице](/nbs/) и в нашем [блоге](/"
"localportscanning/)."

#: ../content/pages/faq.md:block 124 (header)
msgid ""
"My device has a lot of sensors. Are these accessible by web pages? Does "
"JShelter help me?"
msgstr ""
"В моем устройстве много датчиков. Доступны ли они на веб-страницах? Поможет "
"ли мне JShelter?"

#: ../content/pages/faq.md:block 125 (paragraph)
msgid ""
"Depending on your browser and your settings, web pages can read sensors "
"leading to various attacks that include revealing hidden information, and "
"fingerprinting. JShelter [deals with sensors](/sensorapi/)."
msgstr ""
"В зависимости от браузера и настроек веб-страницы могут считывать данные с "
"датчиков, что приводит к различным атакам, в том числе к раскрытию скрытой "
"информации и снятию отпечатков пальцев. JShelter [работает с сенсорами] (/"
"sensorapi/)."

#: ../content/pages/faq.md:block 126 (header)
msgid "Does JShelter help me against attacks exploiting hardware faults?"
msgstr "Помогает ли JShelter от атак, использующих аппаратные сбои?"

#: ../content/pages/faq.md:block 127 (paragraph)
msgid ""
"Yes, JShelter modifies all timestamps, which limits the precision of time "
"measurements. JShelter rounds the timestamps and adds random number of "
"milliseconds to the rounded value, preserving the monotony of the "
"timestamps. The modifications also remove the possibility of [detecting "
"clock skew](https://www.jucs.org/jucs_21_9/clock_skew_based_computer/"
"jucs_21_09_1210_1233_polcak.pdf) of your device quickly. See [our paper]"
"(#what-is-the-proper-way-to-cite-jshelter-in-a-paper) for more details."
msgstr ""
"Да, JShelter изменяет все временные метки, что ограничивает точность "
"измерения времени. JShelter округляет временные метки и добавляет случайное "
"количество миллисекунд к округленному значению, сохраняя однообразие "
"временных меток. Модификации также устраняют возможность быстрого "
"[обнаружения перекоса часов](https://www.jucs.org/jucs_21_9/"
"clock_skew_based_computer/jucs_21_09_1210_1233_polcak.pdf) вашего "
"устройства. Подробнее см. в [нашей статье](#what-is-the-proper-way-to-cite-"
"jshelter-in-a-paper)."

#: ../content/pages/faq.md:block 128 (header)
msgid "Does JShelter protect my IP address?"
msgstr "Защищает ли JShelter мой IP-адрес?"

#: ../content/pages/faq.md:block 129 (paragraph)
msgid ""
"No, and it never will. You need to find a VPN, Tor, or a similar technique "
"to hide your IP address."
msgstr ""
"Нет, и никогда не будет. Вам нужно найти VPN, Tor или другую подобную "
"технику, чтобы скрыть свой IP-адрес."

#: ../content/pages/faq.md:block 130 (header)
msgid "Does JShelter replace a tracker blocker?"
msgstr "Заменяет ли JShelter блокировку трекеров?"

#: ../content/pages/faq.md:block 131 (paragraph)
msgid ""
"No, many extensions specialize in list-based tracking. We consider list-"
"based tracking out-of-scope of the JShelter mission. You should keep using a "
"tracker blocker like [uBlock Origin](https://github.com/gorhill/"
"uBlock#ublock-origin) in parallel with JShelter."
msgstr ""
"Нет, многие расширения специализируются на отслеживании списков. Мы считаем, "
"что отслеживание по списку не входит в задачи JShelter. Вам следует "
"продолжать использовать блокировщик трекеров, например [uBlock Origin]"
"(https://github.com/gorhill/uBlock#ublock-origin), параллельно с JShelter."

#: ../content/pages/faq.md:block 132 (header)
msgid ""
"Does JShelter modify identifiers in cookies, web storage or other tracking "
"IDs?"
msgstr ""
"Изменяет ли JShelter идентификаторы в файлах cookie, веб-хранилищах или "
"других идентификаторах отслеживания?"

#: ../content/pages/faq.md:block 133 (paragraph)
msgid ""
"Not directly. Use other tools to block such trackers. Firefox's built-in "
"protection mechanisms and tracker blockers are excellent tools that "
"complement JShelter well."
msgstr ""
"Не напрямую. Используйте другие инструменты для блокировки таких трекеров. "
"Встроенные в Firefox механизмы защиты и блокировщики трекеров - отличные "
"инструменты, которые хорошо дополняют JShelter."

#: ../content/pages/faq.md:block 134 (paragraph)
msgid ""
"Nevertheless, some IDs might be derived based on fingerprinting scripts. In "
"that case, JShelter will modify such ID, and depending on the implementation "
"and your JShelter settings, your identity might change for each visited "
"origin and each session."
msgstr ""
"Тем не менее, некоторые идентификаторы могут быть получены на основе "
"скриптов отпечатков пальцев. В этом случае JShelter будет изменять такой "
"идентификатор, и в зависимости от реализации и настроек JShelter ваша "
"личность может меняться для каждого посещаемого источника и каждой сессии."

#: ../content/pages/faq.md:block 135 (header)
msgid "Interactions between JShelter and other similar tools"
msgstr "Взаимодействие между JShelter и другими подобными инструментами"

#: ../content/pages/faq.md:block 136 (header)
msgid "What other extension do you recommend to run along JShelter?"
msgstr "Какое еще расширение вы рекомендуете использовать вместе с JShelter?"

#: ../content/pages/faq.md:block 137 (paragraph)
msgid ""
"We consider a tracker blocker like [uBlock Origin](https://github.com/"
"gorhill/uBlock#ublock-origin) as a must. It will make your browsing faster, "
"make your pages clean, and improve your privacy. Nevertheless, it is easy to "
"evade blockers. The malicious web server needs to change the URL of the "
"script. JShelter developers encountered several malicious scripts that "
"evaded common lists. Hence, blocklist-based filtering is beneficial as a "
"first-line defense. However, blockers are not enough as niche cases evade "
"the blockers."
msgstr ""
"Мы считаем, что блокировщик трекеров, такой как [uBlock Origin](https://"
"github.com/gorhill/uBlock#ublock-origin), просто необходим. Он ускорит "
"работу браузера, сделает страницы чистыми и улучшит вашу конфиденциальность. "
"Тем не менее обойти блокировщики несложно. Вредоносному веб-серверу "
"достаточно изменить URL-адрес скрипта. Разработчики JShelter столкнулись с "
"несколькими вредоносными скриптами, которые обходили обычные списки. Таким "
"образом, фильтрация на основе блок-списков полезна в качестве первой линии "
"защиты. Однако блокираторов недостаточно, поскольку нишевые случаи обходят "
"блокираторы."

#: ../content/pages/faq.md:block 138 (paragraph)
msgid ""
"Web extensions like [NoScript Security Suite](https://noscript.net/) or "
"[uMatrix](https://github.com/gorhill/uMatrix) allow users to block "
"JavaScript or other content, either completely or per domain. However, the "
"user needs to evaluate which domains to allow scripts. [HTTP Archive reports]"
"(https://httparchive.org/reports/page-weight?"
"start=earliest&end=latest&view=list#reqJs) that an average page includes (at "
"the time of writing this text) 22 external requests (21 requests for mobile "
"devices). Many pages depend on JavaScript. Users must select what content to "
"trust. A typical page contains resources from many external sources, so such "
"a user requires excellent knowledge. Moreover, malicious code may be only a "
"part of a resource; the rest of the resource can be necessary for correct "
"page functionality. We believe that web extensions like NoScript Security "
"Suite and uMatrix origin are good but do not protect the user from "
"accidentally allowing malicious code. The NoScript Suite main developer is a "
"part of the JShelter team, and JShelter shares a lot of code with NoScript."
msgstr ""
"Такие веб-расширения, как [NoScript Security Suite](https://noscript.net/) "
"или [uMatrix](https://github.com/gorhill/uMatrix), позволяют пользователям "
"блокировать JavaScript или другое содержимое, как полностью, так и по "
"доменам. Однако пользователю необходимо оценить, в каких доменах разрешить "
"скрипты. По данным [HTTP Archive](https://httparchive.org/reports/page-"
"weight?start=earliest&end=latest&view=list#reqJs), средняя страница включает "
"(на момент написания этого текста) 22 внешних запроса (21 запрос для "
"мобильных устройств). Многие страницы зависят от JavaScript. Пользователи "
"должны выбирать, какому контенту доверять. Типичная страница содержит "
"ресурсы из множества внешних источников, поэтому от пользователя требуются "
"отличные знания. Более того, вредоносный код может быть только частью "
"ресурса, остальная часть может быть необходима для корректной работы "
"страницы. Мы считаем, что такие веб-расширения, как NoScript Security Suite "
"и uMatrix origin, хороши, но не защищают пользователя от случайного допуска "
"вредоносного кода. Главный разработчик NoScript Suite входит в команду "
"JShelter, и JShelter имеет много общего с NoScript."

#: ../content/pages/faq.md:block 139 (paragraph)
msgid ""
"We suggest that you use other extensions like [Cookie AutoDelete](https://"
"github.com/Cookie-AutoDelete/Cookie-AutoDelete), [Decentraleyes](https://"
"decentraleyes.org), [ClearURLs](https://docs.clearurls.xyz). All these "
"extensions are important in making your browser leak as little data as "
"possible, and all these protections are out-of-scope of JShelter."
msgstr ""
"Мы рекомендуем вам использовать другие расширения, такие как "
"[Cookie AutoDelete](https://github.com/Cookie-AutoDelete/Cookie-AutoDelete), "
"[Decentraleyes](https://decentraleyes.org), [ClearURLs]"
"(https://docs.clearurls.xyz). Все эти расширения важны для того, чтобы ваш "
"браузер сливал как можно меньше данных, и все эти средства защиты не входят "
"в сферу действия JShelter."

#: ../content/pages/faq.md:block 140 (paragraph)
msgid ""
"Also consider that [web extensions cannot hide your IP address](#does-"
"jshelter-protect-my-ip-address)."
msgstr ""
"Также учитывайте, что [веб-расширения не могут скрыть ваш IP-адрес] (#does-"
"jshelter-protect-my-ip-address)."

#: ../content/pages/faq.md:block 141 (header)
msgid "I already have a blocking extension installed. Do I need JShelter?"
msgstr "У меня уже установлено блокирующее расширение. Нужен ли мне JShelter?"

#: ../content/pages/faq.md:block 142 (paragraph)
msgid ""
"Blocking extensions are typically based on a list of commonly known "
"malicious URLs. Hence, someone needs to discover such a URL first. Some "
"malicious URLs are never added to blocking lists because they were not "
"discovered. Others might be added to a small or specialized list only. "
"JShelter protects you from some threats not yet added to the lists."
msgstr ""
"Блокирующие расширения обычно основаны на списке общеизвестных вредоносных "
"URL. Следовательно, кто-то должен сначала обнаружить такой URL. Некоторые "
"вредоносные URL никогда не добавляются в списки блокировки, потому что они "
"не были обнаружены. Другие могут быть добавлены только в небольшой или "
"специализированный список. JShelter защищает вас от некоторых угроз, которые "
"еще не добавлены в списки."

#: ../content/pages/faq.md:block 143 (paragraph)
msgid ""
"Some login pages fingerprint you during the login process. But you might "
"want to keep your specific device configuration private from such a page. "
"JShelter can limit (`Strict` level) or fake (`Recommended` level) "
"information commonly used for browser fingerprinting."
msgstr ""
"Некоторые страницы входа в систему снимают с вас отпечатки пальцев в "
"процессе входа. Но вы можете захотеть сохранить свою конфигурацию устройства "
"в тайне от такой страницы. JShelter может ограничить (уровень `Строгий`) или "
"подделать (уровень `Рекомендованный`) информацию, обычно используемую для "
"снятия отпечатков браузеров."

#: ../content/pages/faq.md:block 144 (header)
msgid ""
"I am using Firefox Fingerprinting Protection (resistFingerprinting). Should "
"I continue? Should I turn Firefox Fingerprinting Protection on?"
msgstr ""
"Я использую защиту от отпечатков пальцев Firefox (resistFingerprinting). "
"Следует ли мне продолжать? Включить ли защиту от отпечатков пальцев в "
"Firefox?"

#: ../content/pages/faq.md:block 145 (paragraph)
msgid ""
"Mozilla is working on integrating fingerprinting resisting techniques [from "
"Torbrowser](https://bugzilla.mozilla.org/show_bug.cgi?id=1329996) to Firefox "
"(Firefox Fingerprinting Protection, also known as resist fingerprinting). "
"However, the work is not done. Firefox Fingerprinting Protection tries to "
"confuse simple fingerprinters with random data. Sophisticated fingerprinters "
"will create a [homogeneous fingerprint](/fingerprinting/). It is a research "
"question if the homogeneous fingerprint strategy makes sense before it is "
"adopted by all users."
msgstr ""
"Mozilla работает над интеграцией методов защиты от отпечатков пальцев "
"[из Torbrowser] (https://bugzilla.mozilla.org/show_bug.cgi?id=1329996) в "
"Firefox (Firefox Fingerprinting Protection, также известная как resist "
"fingerprinting). Однако работа еще не закончена. Firefox Fingerprinting "
"Protection пытается запутать простые дактилоскописты случайными данными. "
"Сложные дактилоскописты создают [однородный отпечаток](/fingerprinting/). "
"Вопрос о том, имеет ли смысл стратегия однородных отпечатков пальцев до "
"того, как она будет принята всеми пользователями, является предметом "
"исследования."

#: ../content/pages/faq.md:block 146 (paragraph)
msgid ""
"Moreover, inconsistencies arise. For example, Torbrowser does not implement "
"WebGL. As Firefox adopts fingerprinting protections from Torbrowser, Firefox "
"modifies readings from 2D canvas and does not modify WebGL canvas. That "
"creates a false sense of protection. JShelter modifies 2D and WebGL canvas "
"consistently."
msgstr ""
"Более того, возникают несоответствия. Например, Torbrowser не реализует "
"WebGL. Поскольку Firefox перенял защиту от отпечатков пальцев у Torbrowser, "
"Firefox изменяет показания 2D-холста и не изменяет холст WebGL. Это создает "
"ложное ощущение защиты. JShelter последовательно модифицирует 2D- и "
"WebGL-холсты."

#: ../content/pages/faq.md:block 147 (paragraph)
msgid ""
"Firefox Fingerprinting Protection may be useful for cases like having an "
"ordinary laptop with default settings that changes IP addresses a lot. But "
"if you like to have the same fingerprint as many other users, we suggest "
"that you use Tor Browser."
msgstr ""
"Защита от отпечатков пальцев Firefox может быть полезна в таких случаях, как "
"обычный ноутбук с настройками по умолчанию, который часто меняет IP-адреса. "
"Но если вы хотите иметь такой же отпечаток пальца, как и у многих других "
"пользователей, мы советуем вам воспользоваться браузером Tor."

#: ../content/pages/faq.md:block 148 (paragraph)
msgid ""
"You cannot tweak Firefox Fingerprinting Protection. You must activate all or "
"nothing. JShelter provides options to modify behavior per domain."
msgstr ""
"Вы не можете настроить Firefox Fingerprinting Protection. Вы должны "
"активировать все или ничего. JShelter предоставляет опции для изменения "
"поведения для каждого домена."

#: ../content/pages/faq.md:block 149 (header)
msgid "Should I install JShelter if I am using Brave browser?"
msgstr "Нужно ли устанавливать JShelter, если я использую браузер Brave?"

#: ../content/pages/faq.md:block 150 (paragraph)
msgid ""
"Many JShelter protections come from Brave. While JShelter offers some "
"additional protections, the key parts are shared with Brave. You should not "
"use JavaScript Shield, or you should tweak its levels to remove duplicates. "
"You should use the Network Boundary Shield and Fingerprint Detector. While "
"we keep a close eye on Brave protection, we do not offer any protection "
"specifically tailored for Brave. If you have one, please let us know."
msgstr ""
"Многие средства защиты JShelter заимствованы из Brave. Хотя JShelter "
"предлагает некоторые дополнительные средства защиты, ключевые детали "
"используются совместно с Brave. Вам не следует использовать JavaScript "
"Shield, или вам следует настроить его уровни, чтобы удалить дубликаты. Вам "
"следует использовать Network Boundary Shield и Fingerprint Detector. Хотя мы "
"внимательно следим за защитой Brave, мы не предлагаем никаких средств "
"защиты, специально предназначенных для Brave. Если у вас есть такая защита, "
"пожалуйста, сообщите нам."

#: ../content/pages/faq.md:block 151 (header)
msgid ""
"I am using some other anti-fingerprinting extension. Should I continue? "
"Should I combine such extensions?"
msgstr ""
"Я использую другое расширение для борьбы с отпечатками пальцев. Стоит ли мне "
"продолжать? Следует ли мне комбинировать эти расширения?"

#: ../content/pages/faq.md:block 152 (paragraph)
msgid ""
"You should consider (at least) the following. But first, see our blog post "
"on [fingerprinting](/fingerprinting/)."
msgstr ""
"Вам следует рассмотреть (по крайней мере) следующие варианты. Но сначала "
"ознакомьтесь с нашей статьей в блоге о [отпечатки пальцев] (/fingerprinting/"
")."

#: ../content/pages/faq.md:block 153 (paragraph)
msgid ""
"JSS modifies your fingerprint while FPD detects or prevents (if allowed) "
"fingerprinting. If you combine more approaches to modify the fingerprint, "
"the results are not predictable. All extensions might modify the same or "
"similar data, or they might modify different APIs. If you use multiple "
"approaches that focus on different APIs, you might be less fingerprintable. "
"However, you might as well use a unique combination and be easily "
"fingerprintable by a focused or advanced fingerprinter."
msgstr ""
"JSS изменяет отпечаток пальца, а FPD обнаруживает или предотвращает (если "
"это разрешено) отпечатки пальцев. Если объединить несколько подходов к "
"изменению отпечатка пальца, результаты будут непредсказуемыми. Все "
"расширения могут модифицировать одни и те же или похожие данные, или же они "
"могут модифицировать разные API. Если вы используете несколько подходов, "
"ориентированных на разные API, вы можете быть менее уязвимы для отпечатков "
"пальцев. Однако с тем же успехом вы можете использовать уникальную "
"комбинацию, и тогда вас легко сможет отпечатать специализированный или "
"продвинутый дактилоскопист."

#: ../content/pages/faq.md:block 154 (paragraph)
msgid ""
"Let us see an example. Suppose that you install an extension A that modifies "
"the content of the canvas element. As JShelter modifies only data during "
"reading from canvas, it will apply its countermeasures after the "
"countermeasures of A. In `Strict` level, it will override all modifications "
"by A. The little lies approach would slightly modify the modifications of A. "
"That would likely be pointless or even counterproductive."
msgstr ""
"Давайте рассмотрим пример. Предположим, что вы установили расширение A, "
"которое изменяет содержимое элемента canvas. Поскольку JShelter изменяет "
"только данные при чтении из canvas, он применит свои контрмеры после "
"контрмер A. На уровне `Strict` он отменит все модификации A. Подход, "
"основанный на маленькой лжи, слегка изменит модификации A. Это, скорее "
"всего, будет бессмысленно или даже контрпродуктивно."

#: ../content/pages/faq.md:block 155 (paragraph)
msgid ""
"Now, consider another extension B that modifies the read data as well. Both "
"extensions try to change the same APIs, which likely creates a race "
"condition on which defense mechanism wins. If it is indeed the race "
"condition, you may be fingerprintable better as the one who uses both B and "
"JShelter or less because the fingerprinter sees different fingerprints. "
"Which one is correct depends on how smart and focused the fingerprinter is."
msgstr ""
"Теперь рассмотрим другое расширение B, которое также изменяет данные для "
"чтения. Оба расширения пытаются изменить одни и те же API, что, вероятно, "
"создает условия гонки, в которых побеждает защитный механизм. Если это "
"действительно условие гонки, вы можете быть отпечатаны лучше как тот, кто "
"использует и B, и JShelter, или меньше, потому что дактилоскопист видит "
"разные отпечатки. Какой из них правильный, зависит от того, насколько умен и "
"сосредоточен дактилоскопист."

#: ../content/pages/faq.md:block 156 (paragraph)
msgid ""
"Jshelter tries to apply consistent modifications. However, if B modifies "
"only a subset of APIs that JShelter modifies, and an advanced fingerprinter "
"can misuse that information to improve the fingerprint."
msgstr ""
"Jshelter старается применять последовательные модификации. Однако если B "
"модифицирует только подмножество API, которые изменяет JShelter, продвинутый "
"фингерпринтер может использовать эту информацию для улучшения отпечатка."

#: ../content/pages/faq.md:block 157 (paragraph)
msgid ""
"If you use more approaches similar to FPD, they will likely not interact "
"badly with each other."
msgstr ""
"Если вы используете несколько подходов, схожих с FPD, они, скорее всего, не "
"будут плохо взаимодействовать друг с другом."

#: ../content/pages/faq.md:block 158 (paragraph)
msgid ""
"You can tweak JShelter to apply only some protections. For example, by "
"creating your own JSS levels. You can also use the \"Turn fingerprinting "
"protection off\" built-in level to keep the non-fingerprinting "
"countermeasures. You can also turn JSS off and benefit from FPD and NBS."
msgstr ""
"Вы можете настроить JShelter на применение только некоторых видов защиты. "
"Например, создав собственные уровни JSS. Вы также можете использовать "
"встроенный уровень \"Отключить защиту от отпечатков пальцев\", чтобы "
"сохранить контрмеры, не связанные с отпечатками пальцев. Вы также можете "
"отключить JSS и воспользоваться преимуществами FPD и NBS."

#: ../content/pages/faq.md:block 159 (paragraph)
msgid ""
"JShelter includes advanced techniques through [NSCL](https://noscript.net/"
"commons-library) to inject API [wrappers](#what-is-a-wrapper) in time and "
"reliably. Other extensions might not apply their protection reliably. See "
"also [the question](#i-saw-several-extensions-that-claim-that-it-is-not-"
"possible-to-modify-the-javascript-environment-reliably-are-you-aware-of-the-"
"firefox-bug-1267027) on [Firefox bug 1267027](https://bugzilla.mozilla.org/"
"show_bug.cgi?id=1267027)."
msgstr ""
"JShelter включает в себя передовые методы [NSCL](https://noscript.net/"
"commons-library) для своевременного и надежного внедрения [оберток](#what-"
"is-a-wrapper) API. Другие расширения могут не применять свою защиту надежно. "
"См. также [вопрос](#i-saw-several-extensions-that-claim-that-it-is-not-"
"possible-to-modify-the-javascript-environment-reliably-are-you-aware-of-the-"
"firefox-bug-1267027) на [Firefox bug 1267027](https://bugzilla.mozilla.org/"
"show_bug.cgi?id=1267027)."

#: ../content/pages/faq.md:block 160 (paragraph)
msgid ""
"Most other tools focus on [homogeneous fingerprints](/fingerprinting/). By "
"running the `Recommended` JShelter JSS level, you will modify the "
"fingerprint and create a very small group, likely consisting only of you. "
"Nevertheless, some fingerprinters can be confused even in that case, so you "
"might be less identifiable by such dumb fingerprinters."
msgstr ""
"Большинство других инструментов ориентированы на "
"[однородные отпечатки пальцев] (/fingerprinting/). Запустив `рекомендованный`"
" уровень JShelter JSS, вы измените отпечаток и создадите очень маленькую "
"группу, состоящую, скорее всего, только из вас. Тем не менее, некоторые "
"фингерпринтеры могут запутаться даже в этом случае, так что вы можете быть "
"менее идентифицируемы такими тупыми фингерпринтерами."

#: ../content/pages/faq.md:block 161 (paragraph)
msgid ""
"Suppose a dumb fingerprinter that creates a single number by combining all "
"fingerprintable data. As JShelter modifies the APIs differently in each "
"session and on each domain. There is no point in installing other "
"fingerprint-modifying extensions."
msgstr ""
"Предположим, что тупой дактилоскопический принтер создает единый номер, "
"объединяя все данные, которые можно отпечатать. Поскольку JShelter "
"модифицирует API по-разному в каждой сессии и на каждом домене. Нет смысла "
"устанавливать другие расширения, модифицирующие отпечатки пальцев."

#: ../content/pages/faq.md:block 162 (paragraph)
msgid ""
"Suppose a more clever fingerprinter that somehow analyses the "
"fingerprintable data. It might detect that you use JShelter or a similar "
"approach. However, it is possible that the analysis fails in case of "
"unexpected behavior of multiple extensions, so multiple extensions might "
"help you confuse the fingerprinter."
msgstr ""
"Предположим, что существует более умный отпечаток пальца, который каким-то "
"образом анализирует отпечатываемые данные. Он может обнаружить, что вы "
"используете JShelter или аналогичный подход. Однако возможно, что анализ не "
"сработает в случае неожиданного поведения нескольких расширений, поэтому "
"несколько расширений могут помочь вам запутать дактилоскописта."

#: ../content/pages/faq.md:block 163 (paragraph)
msgid ""
"An even more clever fingerprinter can focus on unique traits of your "
"extensions (that modify the page, including page decorators or extensions "
"that include buttons to the page, like downloaders or password managers. As "
"the JShelter's [threat model](/threatmodel/) does not protect from such "
"fingerprinters, you will be better off if you do not let JShelter modify the "
"fingerprint."
msgstr ""
"Еще более умный дактилоскопист может сосредоточиться на уникальных "
"особенностях ваших расширений (которые изменяют страницу, включая декораторы "
"страниц или расширения, включающие кнопки на странице, например загрузчики "
"или менеджеры паролей). Поскольку [модель угроз] (/threatmodel/) JShelter не "
"защищает от таких фингерпринтеров, вам будет лучше, если вы не позволите "
"JShelter изменять отпечатки пальцев."

#: ../content/pages/faq.md:block 164 (header)
msgid ""
"I saw several extensions that claim that it is not possible to modify the "
"JavaScript environment reliably. Are you aware of the [Firefox bug 1267027]"
"(https://bugzilla.mozilla.org/show_bug.cgi?id=1267027)"
msgstr ""
"Я видел несколько расширений, которые утверждают, что невозможно надежно "
"изменить среду JavaScript. Знаете ли вы о [Firefox bug 1267027](https://"
"bugzilla.mozilla.org/show_bug.cgi?id=1267027)"

#: ../content/pages/faq.md:block 165 (paragraph)
msgid ""
"Yes, we are aware of the issues concerning reliable script injections before "
"page scripts can permanently access original API calls. In fact, JShelter "
"(then JavaScript Restrictor) [suffered from the bug](https://github.com/"
"polcak/jsrestrictor/issues/25) for several versions. JShelter integrates "
"[NSCL](https://noscript.net/commons-library) that allows JShelter to insert "
"its scripts reliably before page scripts start running. Hence, the APIs are "
"guaranteed to be protected. NSCL provides a cross-browser layer that aims at "
"modifying all ways to obtain API functions like iframes, pages protected by "
"CSP, and others. See our [paper](https://arxiv.org/pdf/1905.01051.pdf) for "
"more details on the integration of NSCL to JShelter."
msgstr ""
"Да, мы знаем о проблемах, связанных с надежными инъекциями скриптов до того, "
"как скрипты страницы смогут получить постоянный доступ к оригинальным "
"вызовам API. На самом деле JShelter (тогда JavaScript Restrictor) "
"[страдал от этой ошибки](https://github.com/polcak/jsrestrictor/issues/25) "
"на протяжении нескольких версий. В JShelter интегрирован [NSCL](https://"
"noscript.net/commons-library), который позволяет JShelter надежно вставлять "
"свои скрипты до того, как начнут выполняться скрипты страницы. Таким "
"образом, API гарантированно защищены. NSCL обеспечивает кросс-браузерный "
"слой, направленный на модификацию всех способов получения API-функций, таких "
"как iframe, страницы, защищенные CSP, и другие. Более подробно об интеграции "
"NSCL в JShelter читайте в нашей [статье] (https://arxiv.org/pdf/"
"1905.01051.pdf)."

#: ../content/pages/faq.md:block 166 (header)
msgid ""
"How does NBS interact with proxies? Do my DNS requests leak through NBS?"
msgstr ""
"Как NBS взаимодействует с прокси-серверами? Протекают ли мои DNS-запросы "
"через NBS?"

#: ../content/pages/faq.md:block 167 (paragraph)
msgid ""
"If you are using a proxy, the attacks, which the NBS tries to prevent, go "
"through the proxy to the local network of the proxy (but keep in mind that "
"this might not be true for more complex configurations)."
msgstr ""
"Если вы используете прокси, атаки, которые пытается предотвратить NBS, "
"проходят через прокси в локальную сеть прокси (но имейте в виду, что это "
"может быть не так для более сложных конфигураций)."

#: ../content/pages/faq.md:block 168 (paragraph)
msgid ""
"NBS in Chromium-based browsers works the same way as it would work without "
"the proxy. NBS protects the local network of the proxy in that case. "
"Depending on the deployment and exact configuration, it may also protect "
"your local network."
msgstr ""
"NBS в браузерах на базе Chromium работает так же, как и без прокси. В этом "
"случае NBS защищает локальную сеть прокси. В зависимости от развертывания и "
"точной конфигурации, он может защищать и вашу локальную сеть."

#: ../content/pages/faq.md:block 169 (paragraph)
msgid ""
"NBS in Firefox employs the DNS API that initiates DNS requests. Contextual "
"identities allow users to go through a proxy in some tabs and not in others. "
"We decided not to perform DNS resolution in NBS for proxied requests. See <a "
"href=\"https://pagure.io/JShelter/webextension/issue/41\">issue 41</a> and "
"<a href=\"https://pagure.io/JShelter/webextension/issue/85\">issue 85</a> "
"for more details. We might decide to reimplement NBS in Firefox similarly to "
"the Chromium version in the future for proxied requests. Another possible "
"option, we might consider in the future, is adding a configuration option to "
"allow users to opt-in to perform DNS resolution in NBS, which would be "
"useful for users running an HTTP proxy in their local network. If you have "
"good arguments for changing the behavior, please share them with us."
msgstr ""
"NBS в Firefox использует DNS API, который инициирует DNS-запросы. "
"Контекстная идентификация позволяет пользователям проходить через прокси в "
"одних вкладках и не проходить в других. Мы решили не выполнять разрешение "
"DNS в NBS для проксированных запросов. Подробнее см. <a href="
"\"https://pagure.io/JShelter/webextension/issue/41\">выпуск 41</a> и <a href="
"\"https://pagure.io/JShelter/webextension/issue/85\">выпуск 85</a>. "
"Возможно, в будущем мы решим реализовать NBS в Firefox аналогично версии для "
"Chromium для проксированных запросов. Еще одним возможным вариантом, который "
"мы можем рассмотреть в будущем, является добавление опции конфигурации, "
"позволяющей пользователям отказаться от выполнения разрешения DNS в NBS, что "
"было бы полезно для пользователей, использующих HTTP-прокси в своей "
"локальной сети. Если у вас есть веские аргументы в пользу изменения "
"поведения, пожалуйста, поделитесь ими с нами."

#: ../content/pages/faq.md:block 170 (header)
msgid "Limitations of supported browsers"
msgstr "Ограничения поддерживаемых браузеров"

#: ../content/pages/faq.md:block 171 (header)
msgid "Why does JShelter/NSCL initiate web requests to ff00::?"
msgstr "Почему JShelter/NSCL инициирует веб-запросы на ff00::?"

#: ../content/pages/faq.md:block 172 (paragraph)
msgid ""
"First, see [question on reliable JavaScript environment modifications](#i-"
"saw-several-extensions-that-claim-that-it-is-not-possible-to-modify-the-"
"javascript-environment-reliably-are-you-aware-of-the-firefox-bug-1267027)."
msgstr ""
"Во-первых, смотрите [вопрос о надежных модификациях среды JavaScript](#i-saw-"
"several-extensions-that-claim-that-it-is-not-possible-to-modify-the-"
"javascript-environment-reliably-are-you-aware-of-the-firefox-bug-1267027)."

#: ../content/pages/faq.md:block 173 (paragraph)
msgid ""
"NSCL needs a synchronous way to transfer data between different scripts of "
"the extension. Web Extension APIs only allow asynchronous communication. But "
"do not worry. The request is canceled in the [code](https://github.com/"
"hackademix/nscl/blob/40e765f0d66a10b25a27a375bc62ea141a73734f/common/"
"SyncMessage.js#L106)."
msgstr ""
"NSCL необходим синхронный способ передачи данных между различными скриптами "
"расширения. API веб-расширения допускают только асинхронную передачу данных. "
"Но не стоит беспокоиться. Запрос отменяется в [коде](https://github.com/"
"hackademix/nscl/blob/40e765f0d66a10b25a27a375bc62ea141a73734f/common/"
"SyncMessage.js#L106)."

#: ../content/pages/faq.md:block 174 (paragraph)
msgid "Additionally [ff00::]"
msgstr "Дополнительно [ff00::]"

#: ../content/pages/faq.md:block 175 (unordered list)
msgid ""
"is a [reserved multicast IPV6 address](https://www.iana.org/assignments/ipv6-"
"multicast-addresses/ipv6-multicast-addresses.xhtml#ipv6-scope),"
msgstr ""
"является [зарезервированным многоадресным IPV6-адресом](https://www.iana.org/"
"assignments/ipv6-multicast-addresses/ipv6-multicast-"
"addresses.xhtml#ipv6-scope),"

#: ../content/pages/faq.md:block 175 (unordered list)
msgid ""
"hence, it is not a valid HTTP endpoint (if you try to navigate http://"
"[ff00::] the browser will always tell you that the resource is unreachable),"
msgstr ""
"Следовательно, он не является корректной конечной точкой HTTP (если вы "
"попытаетесь перейти по адресу http://[ff00::], браузер всегда будет сообщать "
"вам, что ресурс недоступен),"

#: ../content/pages/faq.md:block 175 (unordered list)
msgid ""
"the [SyncMessage back-end cancels the webRequest](https://github.com/"
"hackademix/nscl/blob/40e765f0d66a10b25a27a375bc62ea141a73734f/common/"
"SyncMessage.js#L106)."
msgstr ""
"[Внутренняя часть SyncMessage отменяет веб-запрос](https://github.com/"
"hackademix/nscl/blob/40e765f0d66a10b25a27a375bc62ea141a73734f/common/"
"SyncMessage.js#L106)."

#: ../content/pages/faq.md:block 176 (paragraph)
msgid ""
"Some tools can see such a request, but it will never leave your browser."
msgstr ""
"Некоторые инструменты могут увидеть такой запрос, но он никогда не покинет "
"ваш браузер."

#: ../content/pages/faq.md:block 177 (header)
msgid "Does NBS work the same way in Firefox and Chromium-based browsers?"
msgstr "Работает ли NBS одинаково в браузерах на базе Firefox и Chromium?"

#: ../content/pages/faq.md:block 178 (paragraph)
msgid ""
"No. Firefox allows webextensions to perform DNS resolution of the domain "
"name that the browser is about to get information from. The resolution of "
"the DNS name to an IP address is crucial for FPD. As Firefox allows to "
"perform the resolution before any request leaves the browser, JShelter can "
"prevent each attempt to cross the network boundary."
msgstr ""
"Нет. Firefox позволяет веб-расширениям выполнять DNS-разрешение доменного "
"имени, информацию о котором собирается получить браузер. Разрешение DNS-"
"имени на IP-адрес имеет решающее значение для FPD. Поскольку Firefox "
"позволяет выполнить разрешение до того, как запрос покинет браузер, JShelter "
"может предотвратить каждую попытку пересечь границу сети."

#: ../content/pages/faq.md:block 179 (paragraph)
msgid ""
"Chromium-based browsers do not offer the DNS resolution APIs. JShelter "
"collects resolution results in a cache that is filled during the processing "
"of each request (after the browser makes the request). That means that the "
"first request for each domain name goes through. JShleter blocks all "
"subsequent requests only."
msgstr ""
"Браузеры на базе Chromium не предлагают API разрешения DNS. JShelter "
"собирает результаты разрешения в кэш, который заполняется во время обработки "
"каждого запроса (после того, как браузер выполнит запрос). Это означает, что "
"первый запрос для каждого доменного имени проходит. JShleter блокирует "
"только все последующие запросы."

#: ../content/pages/faq.md:block 180 (paragraph)
msgid ""
"Keep in mind that an adversary can change the domain with each request. For "
"example, the attacker can use a.attacker.com, b.a.attacker.com, c.b.a."
"attacker.com in sequence for its requests to go through. So it is easy for "
"an attacker to bypass NBS. In practice, we know about attackers that do not "
"change domain names (for example, see [our blog](/localportscanning/)). So "
"we keep the NBS in Chromium-based browsers, even though it is not perfect."
msgstr ""
"Помните, что злоумышленник может менять домен при каждом запросе. Например, "
"злоумышленник может использовать a.attacker.com, b.a.attacker.com, "
"c.b.a.attacker.com в последовательности, чтобы его запросы проходили. Таким "
"образом, злоумышленнику легко обойти NBS. На практике мы знаем о "
"злоумышленниках, которые не меняют доменные имена (например, см. [наш блог](/"
"localportscanning/)). Поэтому мы сохраняем NBS в браузерах на базе Chromium, "
"хотя она и не идеальна."

#: ../content/pages/faq.md:block 181 (header)
msgid "Do you support Firefox for Android?"
msgstr "Вы поддерживаете Firefox для Android?"

#: ../content/pages/faq.md:block 182 (paragraph)
msgid ""
"We tested JShelter in Firefox for Android in the past and it worked as "
"expected. We do not test JShelter in Firefox for Android regularly but a "
"volunteer that tracks the status of JShelter in Firefox for Android is "
"welcomed."
msgstr ""
"В прошлом мы тестировали JShelter в Firefox для Android, и он работал так, "
"как ожидалось. Мы не тестируем JShelter в Firefox для Android регулярно, но "
"добровольцы, которые отслеживают состояние JShelter в Firefox для Android, "
"приветствуются."

#: ../content/pages/faq.md:block 183 (header)
msgid ""
"I cannot see JShelter listed in the addons supported by Firefox for Android."
msgstr ""
"Я не вижу JShelter в списке аддонов, поддерживаемых Firefox для Android."

#: ../content/pages/faq.md:block 184 (paragraph)
msgid ""
"For whatever reason, Mozilla decided to only present [a small number of "
"curated extensions](https://support.mozilla.org/en-US/kb/find-and-install-"
"add-ons-firefox-android) in their mobile application by default. There are "
"some great extensions there like uBlock Origin, NoScript, and DarkReader, "
"but JShelter was not one of them."
msgstr ""
"По какой-то причине Mozilla решила по умолчанию установить в своем мобильном "
"приложении только [небольшое количество курируемых расширений](https://"
"support.mozilla.org/en-US/kb/find-and-install-add-ons-firefox-android). Там "
"есть несколько отличных расширений, таких как uBlock Origin, NoScript и "
"DarkReader, но JShelter не входит в их число."

#: ../content/pages/faq.md:block 185 (paragraph)
msgid ""
"You should be able to workaround the limitations by creating a [collection "
"with JShelter](https://www.androidpolice.com/install-add-on-extension-"
"mozilla-firefox-android/)."
msgstr ""
"Вы можете обойти ограничения, создав [коллекцию с JShelter](https://"
"www.androidpolice.com/install-add-on-extension-mozilla-firefox-android/)."

#: ../content/pages/faq.md:block 186 (paragraph)
msgid ""
"A change in the policy of the default extensions listed by Addons Mozilla."
"org is out of our control."
msgstr ""
"Изменение политики расширений по умолчанию, перечисленных на сайте Addons "
"Mozilla.org, находится вне нашего контроля."

#: ../content/pages/faq.md:block 187 (header)
msgid "Other questions"
msgstr "Другие вопросы"

#: ../content/pages/faq.md:block 188 (header)
msgid "What is a wrapper?"
msgstr "Что такое обертка?"

#: ../content/pages/faq.md:block 189 (paragraph)
msgid ""
"Wrapper is typically a small block of code that JShelter attach to some of "
"the APIs offered by the browser. These code typically reads the original "
"value to modify that before returning to the caller. Page scripts cannot "
"side-step the wrappers to get direct access to the original API. "
"Nevertheless, see the [question on reliable JavaScript environment "
"modifications](#i-saw-several-extensions-that-claim-that-it-is-not-possible-"
"to-modify-the-javascript-environment-reliably-are-you-aware-of-the-firefox-"
"bug-1267027)."
msgstr ""
"Обертка - это небольшой блок кода, который JShelter прикрепляет к некоторым "
"API, предлагаемым браузером. Этот код обычно считывает исходное значение, "
"чтобы изменить его перед возвратом вызывающему пользователю. Скрипты "
"страницы не могут обойти обертки, чтобы получить прямой доступ к "
"оригинальному API. Тем не менее, смотрите "
"[вопрос о надежных модификациях среды JavaScript](#i-saw-several-extensions-"
"that-claim-that-it-is-not-possible-to-modify-the-javascript-environment-"
"reliably-are-you-aware-of-the-firefox-bug-1267027)."

#: ../content/pages/faq.md:block 190 (header)
msgid "What is WebAssembly speed-up?"
msgstr "Что такое ускорение WebAssembly?"

#: ../content/pages/faq.md:block 191 (paragraph)
msgid ""
"In 2023, we improved the speed of some code inside JShelter. Some of the "
"[wrappers](#what-is-a-wrapper) were reimplemented in WebAssembly with the "
"focus on providing the same results as the original JavaScript-only wrappers."
msgstr ""
"В 2023 году мы улучшили скорость работы некоторого кода внутри JShelter. "
"Некоторые [обертки](#what-is-a-wrapper) были переделаны на WebAssembly с "
"упором на то, чтобы обеспечить те же результаты, что и оригинальные обертки "
"только на JavaScript."

#: ../content/pages/faq.md:block 192 (paragraph)
msgid ""
"Unless hit by Chrome-bug that prevents injecting WebAssembly wrappers to "
"some pages, WebAssembly wrappers are enabled by default. We suggest that you "
"keep WebAssembly wrappers activated. However, you can turn off WebAssembly "
"speed-up and return to JavaScript-only wrappers."
msgstr ""
"Если в Chrome не обнаружен баг, препятствующий внедрению оберток WebAssembly "
"на некоторые страницы, обертки WebAssembly включены по умолчанию. Мы "
"советуем не отключать обёртки WebAssembly. Однако вы можете отключить "
"ускорение WebAssembly и вернуться к оберткам только для JavaScript."

#: ../content/pages/faq.md:block 193 (header)
msgid "I am a web developer, can JShelter help me?"
msgstr "Я веб-разработчик, может ли JShelter помочь мне?"

#: ../content/pages/faq.md:block 194 (paragraph)
msgid "Possibly yes."
msgstr "Возможно, да."

#: ../content/pages/faq.md:block 195 (paragraph)
msgid ""
"First of all, you can use [FPD and its reports](/fpd/) to learn the APIs "
"that your page calls. Of course, FPD focuses on APIs that are often misused "
"during browser fingerprinting, so that you learn only some APIs."
msgstr ""
"Прежде всего, вы можете использовать [FPD и его отчеты](/fpd/), чтобы узнать "
"API, которые вызывает ваша страница. Конечно, FPD фокусируется на API, "
"которые часто используются не по назначению во время \"отпечатков пальцев\" "
"браузера, так что вы узнаете только некоторые API."

#: ../content/pages/faq.md:block 196 (paragraph)
msgid ""
"You can create JSS levels that remove some functionality like geolocation, "
"workers, or access to sensor API to test that your page handles such "
"browsers."
msgstr ""
"Вы можете создать уровни JSS, которые удаляют некоторые функции, такие как "
"геолокация, рабочие или доступ к API датчиков, чтобы проверить, что ваша "
"страница работает с такими браузерами."

#: ../content/pages/faq.md:block 197 (header)
msgid ""
"I am a data protection officer or I work for a data protection agency. Can "
"JShelter help me?"
msgstr ""
"Я являюсь сотрудником службы защиты данных или работаю в агентстве по защите "
"данных. Может ли JShelter помочь мне?"

#: ../content/pages/faq.md:block 198 (paragraph)
msgid "Yes. Change JShelter configuration to passive mode:"
msgstr "Да. Измените конфигурацию JShelter на пассивный режим:"

#: ../content/pages/faq.md:block 199 (ordered list)
msgid "*Turn JavaScript Shield off*,"
msgstr "*Выключите JavaScript Shield*,"

#: ../content/pages/faq.md:block 199 (ordered list)
msgid "disable blocking behaviour of [NBS](/nbs/) but keep the notifications,"
msgstr "Отключить блокировку поведения [NBS](/nbs/), но сохранить уведомления,"

#: ../content/pages/faq.md:block 199 (ordered list)
msgid ""
"set [FPD](/fpd/) to passive, keep the notifications on, and depending on "
"your use case, set the detection mode to *default* or *strict*."
msgstr ""
"Установите [FPD](/fpd/) на пассивный режим, сохраните уведомления и, в "
"зависимости от случая использования, установите режим обнаружения на "
"*умолчанию* или *строго*."

#: ../content/pages/faq.md:block 200 (paragraph)
msgid ""
"Compare the information provided by NBS and FPD in notifications and [FPD "
"report](/fpd/) to the information in the privacy policy of the tested "
"website."
msgstr ""
"Сравните информацию, предоставленную NBS и FPD в уведомлениях и [отчете FPD]"
"(/fpd/), с информацией, содержащейся в политике конфиденциальности "
"проверенного веб-сайта."

#: ../content/pages/faq.md:block 201 (paragraph)
msgid ""
"[Let us know](mailto:jshelter@gnu.org) about any question or experience."
msgstr "[Сообщите нам](mailto:jshelter@gnu.org) о любом вопросе или опыте."

#: ../content/pages/faq.md:block 202 (header)
msgid "What is the proper way to cite JShelter in a paper?"
msgstr "Как правильно ссылаться на JShelter в статье?"

#: ../content/pages/faq.md:block 203 (paragraph)
msgid ""
"Please cite *POLČÁK Libor, SALOŇ Marek, MAONE Giorgio, HRANICKÝ Radek and "
"McMAHON Michael. JShelter: Give Me My Browser Back. In: Proceedings of the "
"20th International Conference on Security and Cryptography. Rome: SciTePress "
"- Science and Technology Publications, 2023, pp. 287-294. ISBN "
"978-989-758-666-8.*"
msgstr ""
"Пожалуйста, цитируйте *Полчак Либор, Сало Марек, Маоне Джорджио, Хреницке "
"Радек и Макмахон Майкл. JShelter: Верните мне мой браузер. В: Труды 20-й "
"Международной конференции по безопасности и криптографии. Рим: SciTePress - "
"Наука и техника, 2023, pp. 287-294. ISBN 978-989-758-666-8.*"

#: ../content/pages/faq.md:block 205 (paragraph)
msgid ""
"That paper has an extended version at [ArXiv paper](https://arxiv.org/"
"abs/2204.01392). Please cite the published version if possible. We are "
"working on other publications. We will update this answer in the future."
msgstr ""
"Расширенная версия этой статьи размещена на [ArXiv paper](https://arxiv.org/"
"abs/2204.01392). Пожалуйста, по возможности, ссылайтесь на опубликованную "
"версию. Мы работаем над другими публикациями. Мы обновим этот ответ в "
"будущем."

#: ../content/pages/fpd.md:block 1 (paragraph)
msgid "Title: Fingerprint Detector"
msgstr "Title: Детектор отпечатков пальцев"

#: ../content/pages/fpd.md:block 2 (paragraph)
msgid ""
"Fingerprint Detector (FPD) provides heuristic analysis of fingerprinting "
"behaviour. FPD monitors APIs that are commonly used by fingerprinters and "
"applies a heuristic approach to detect fingerprinting behaviour in real-"
"time. When a fingerprinting attempt is detected, FPD notifies the user. The "
"user can configure JShelter to reactively block subsequent asynchronous HTTP "
"requests initiated by the fingerprinting page and clear the storage "
"facilities where the page could have stored a (partial) fingerprint. "
"However, this behaviour may break the page. The goal of the aggressive mode "
"is to prevent the page from uploading the full fingerprint to a server. "
"However, the fingerprinter can gradually upload detected values and a "
"partial fingerprint can leak from the browser."
msgstr ""
"Детектор отпечатков пальцев (FPD) обеспечивает эвристический анализ "
"поведения, связанного с отпечатками пальцев. FPD отслеживает API, которые "
"обычно используются дактилоскопистами, и применяет эвристический подход для "
"обнаружения попыток дактилоскопии в режиме реального времени. При "
"обнаружении попытки отпечатка пальца FPD уведомляет пользователя. "
"Пользователь может настроить JShelter на реактивное блокирование последующих "
"асинхронных HTTP-запросов, инициированных страницей с отпечатком пальца, и "
"очистить хранилища, в которых страница могла хранить (частичный) отпечаток "
"пальца. Однако такое поведение может привести к поломке страницы. Цель "
"агрессивного режима - не дать странице загрузить полный отпечаток на сервер. "
"Однако дактилоскоп может постепенно загружать обнаруженные значения, и "
"частичный отпечаток может просочиться из браузера."

#: ../content/pages/fpd.md:block 3 (paragraph)
msgid ""
"The heuristic approach was chosen as many prior studies proved it to be a "
"viable approach with a very low false-positive rate. The most challenging "
"part of this approach is a careful selection of detection conditions. The "
"heuristics contain two basic types of entries:"
msgstr ""
"Эвристический подход был выбран, поскольку многие предыдущие исследования "
"доказали, что он является жизнеспособным подходом с очень низким процентом "
"ложных срабатываний. Наиболее сложной частью этого подхода является "
"тщательный выбор условий обнаружения. Эвристика содержит два основных типа "
"записей:"

#: ../content/pages/fpd.md:block 4 (ordered list)
msgid ""
"JavaScript API endpoints, which are relevant for fingerprinting detection and"
msgstr ""
"Конечные точки API JavaScript, которые важны для обнаружения отпечатков "
"пальцев и"

#: ../content/pages/fpd.md:block 4 (ordered list)
msgid "a hierarchy of groups of related endpoints."
msgstr "иерархия групп связанных конечных точек."

#: ../content/pages/fpd.md:block 5 (paragraph)
msgid ""
"For example, FPD groups endpoints according to their semantic properties. "
"Imagine that there are two different endpoints. Both provide hardware "
"information about the device. FPD can assign both endpoints to a group that "
"covers access to the same hardware properties. The heuristics allow "
"clustering groups to other groups and creating a hierarchy of groups. "
"Ultimately, the heuristics are a tree-like structure that computes the "
"threat that a webpage tried to obtain enough information to compute a unique "
"fingerprint."
msgstr ""
"Например, FPD группирует конечные точки в соответствии с их семантическими "
"свойствами. Представьте, что есть две разные конечные точки. Обе "
"предоставляют информацию об аппаратном обеспечении устройства. FPD может "
"отнести обе конечные точки к группе, которая охватывает доступ к одним и тем "
"же свойствам оборудования. Эвристики позволяют группировать группы с другими "
"группами и создавать иерархию групп. В конечном итоге эвристики представляют "
"собой древовидную структуру, которая рассчитывает угрозу того, что веб-"
"страница пыталась получить достаточно информации, чтобы вычислить уникальный "
"отпечаток пальца."

#: ../content/pages/fpd.md:block 6 (paragraph)
msgid ""
"The whole evaluation process dynamically observes the API calls performed by "
"a web page. FPD analyses the calls themselves. Hence, the dynamic analysis "
"overcomes any obfuscation of fingerprinting scripts."
msgstr ""
"Весь процесс оценки динамически наблюдает за вызовами API, выполняемыми веб-"
"страницей. FPD анализирует сами вызовы. Таким образом, динамический анализ "
"преодолевает любую обфускацию скриптов отпечатков пальцев."

#: ../content/pages/fpd.md:block 7 (paragraph)
msgid ""
"FPD provides a report that explains why FPD evaluated a visited page as a "
"fingerprinter. The report aims to educate users about fingerprinting and "
"report why FPD notified the user and optionally blocked the page. "
"Additionally, the report can be generated from passive observation of web "
"page calls without any JShelter interaction with the page (no API blocking)."
msgstr ""
"FPD предоставляет отчет, в котором объясняется, почему FPD оценила "
"посещенную страницу как отпечаток пальца. Цель отчета - просветить "
"пользователей о фингерпринтинге и сообщить, почему FPD уведомила "
"пользователя и, при желании, заблокировала страницу. Кроме того, отчет может "
"быть сгенерирован на основе пассивного наблюдения за вызовами веб-страниц "
"без какого-либо взаимодействия JShelter со страницей (без блокировки API)."

#: ../content/pages/fpd.md:block 8 (paragraph)
msgid ""
"![FPD report shows the reasoning to claim that a page is fingerprinting the "
"browser]({attach}/images/cooperation/fpd-report.png)"
msgstr ""
"![Отчет FPD показывает основания для утверждения, что страница снимает "
"отпечатки пальцев с браузера]({attach}/images/cooperation/fpd-report.png)"

#: ../content/pages/home.md:block 1 (paragraph)
msgid "Title: Home Template: home save_as: index.html URL:"
msgstr "Title: Дом Template: home save_as: index.html URL:"

#: ../content/pages/install.md:block 1 (paragraph)
msgid "Title: Installing"
msgstr "Title: Установка"

#: ../content/pages/install.md:block 2 (paragraph)
msgid ""
"JShelter can be installed directly through each browser's extension "
"repository:"
msgstr ""
"JShelter можно установить непосредственно через репозиторий расширений "
"каждого браузера:"

#: ../content/pages/install.md:block 3 (unordered list)
#, fuzzy
msgid ""
"[Firefox](https://addons.mozilla.org/firefox/addon/javascript-restrictor/)"
msgstr ""
"[Firefox](https://addons.mozilla.org/firefox/addon/javascript-restrictor/)"

#: ../content/pages/install.md:block 3 (unordered list)
#, fuzzy
msgid ""
"[Chrome](https://chrome.google.com/webstore/detail/javascript-restrictor/"
"ammoloihpcbognfddfjcljgembpibcmb)"
msgstr ""
"[Chrome](https://chrome.google.com/webstore/detail/javascript-restrictor/"
"ammoloihpcbognfddfjcljgembpibcmb)"

#: ../content/pages/install.md:block 3 (unordered list)
#, fuzzy
msgid ""
"[Opera](https://addons.opera.com/extensions/details/javascript-restrictor/)"
msgstr ""
"[Opera](https://addons.opera.com/extensions/details/javascript-restrictor/)"

#: ../content/pages/install.md:block 4 (paragraph)
msgid ""
"To compile the extension from the source code, see the [building from "
"scratch](/build/) documentation."
msgstr ""
"Чтобы скомпилировать расширение из исходного кода, смотрите документацию "
"[сборка с нуля](/build/)."

#: ../content/pages/integration_tests.md:block 1 (paragraph)
msgid "Title: Instructions on how to run integration tests"
msgstr "Title: Инструкции по проведению интеграционных тестов"

#: ../content/pages/integration_tests.md:block 2 (paragraph)
msgid ""
"JShelter's integration tests automatically verify that JShelter wraps the "
"supported JavaScript APIs and does not affect other attributes. You need to "
"set up your test environment before the first test run!"
msgstr ""
"Интеграционные тесты JShelter автоматически проверяют, что JShelter "
"оборачивает поддерживаемые API JavaScript и не влияет на другие атрибуты. "
"Перед первым запуском тестов необходимо настроить тестовое окружение!"

#: ../content/pages/integration_tests.md:block 3 (header)
msgid "SET UP TEST ENVIRONMENT"
msgstr "НАСТРОЙКА ТЕСТОВОЙ СРЕДЫ"

#: ../content/pages/integration_tests.md:block 4 (header)
msgid "Install required programs and tools"
msgstr "Установите необходимые программы и инструменты"

#: ../content/pages/integration_tests.md:block 5 (paragraph)
msgid "The integration tests depend on the following packages:"
msgstr "Интеграционные тесты зависят от следующих пакетов:"

#: ../content/pages/integration_tests.md:block 6 (unordered list)
#, fuzzy
msgid "[Python 3.5+](https://www.python.org/downloads/)"
msgstr "[Python 3.5+](https://www.python.org/downloads/)"

#: ../content/pages/integration_tests.md:block 6 (unordered list)
msgid "[Python package `pytest`](https://pypi.org/project/pytest/)"
msgstr "[Python-пакет `pytest`](https://pypi.org/project/pytest/)"

#: ../content/pages/integration_tests.md:block 6 (unordered list)
msgid "[Python package `selenium`](https://pypi.org/project/selenium/)"
msgstr "[Python-пакет `selenium`](https://pypi.org/project/selenium/)"

#: ../content/pages/integration_tests.md:block 6 (unordered list)
msgid "[Google Chrome](https://www.google.com/chrome/) - Chromium also work."
msgstr ""
"[Google Chrome](https://www.google.com/chrome/) - Chromium также работает."

#: ../content/pages/integration_tests.md:block 6 (unordered list)
msgid ""
"Mozilla Firefox - Be careful, [ESR](https://www.mozilla.org/en-US/firefox/"
"all/#product-desktop-esr), [Developer](https://www.mozilla.org/en-US/firefox/"
"developer/), or [Nightly](https://www.mozilla.org/en-US/firefox/channel/"
"desktop/#nightly) edition are required. The standard edition is not "
"supported."
msgstr ""
"Mozilla Firefox - Будьте осторожны, требуется редакция [ESR](https://"
"www.mozilla.org/en-US/firefox/all/#product-desktop-esr), [Developer](https://"
"www.mozilla.org/en-US/firefox/developer/) или [Nightly](https://"
"www.mozilla.org/en-US/firefox/channel/desktop/#nightly). Стандартная версия "
"не поддерживается."

#: ../content/pages/integration_tests.md:block 6 (unordered list)
msgid "[Web browser drivers](#webdrivers), see below"
msgstr "[Драйверы веб-браузеров](#webdrivers), см. ниже"

#: ../content/pages/integration_tests.md:block 7 (paragraph)
msgid ""
"A [web browser driver](#webdrivers) selects the installed version of the web "
"browser. One option is to install only a single version of each browser. The "
"web browser's profiles must not have JShelter installed. The testing script "
"installs JShelter by itself. We suggest that you use a separate profile for "
"testing."
msgstr ""
"Драйвер [веб-браузера](#webdrivers) выбирает установленную версию веб-"
"браузера. Один из вариантов - установить только одну версию каждого "
"браузера. В профилях веб-браузеров не должен быть установлен JShelter. "
"Сценарий тестирования устанавливает JShelter самостоятельно. Мы рекомендуем "
"использовать отдельный профиль для тестирования."

#: ../content/pages/integration_tests.md:block 8 (header)
msgid "How to install Mozilla Firefox on Linux"
msgstr "Как установить Mozilla Firefox на Linux"

#: ../content/pages/integration_tests.md:block 9 (paragraph)
msgid ""
"We recommend downloading Firefox binaries from the [ESR](https://www.mozilla."
"org/en-US/firefox/all/#product-desktop-esr), [Developer](https://www.mozilla."
"org/en-US/firefox/developer/), or [Nightly](https://www.mozilla.org/en-US/"
"firefox/channel/desktop/#nightly) channels to a local directories. Set "
"`firefox_binary_location` in the test configuration accordingly."
msgstr ""
"Мы рекомендуем загружать двоичные файлы Firefox из каналов [ESR](https://"
"www.mozilla.org/en-US/firefox/all/#product-desktop-esr), [Developer](https://"
"www.mozilla.org/en-US/firefox/developer/) или [Nightly](https://"
"www.mozilla.org/en-US/firefox/channel/desktop/#nightly) в локальную "
"директорию. Установите `firefox_binary_location` в тестовой конфигурации "
"соответствующим образом."

#: ../content/pages/integration_tests.md:block 10 (paragraph)
msgid "In Ubuntu, you can install ESR following:"
msgstr "В Ubuntu вы можете установить ESR следующим образом:"

#: ../content/pages/integration_tests.md:block 12 (header)
msgid "Setup web browsers"
msgstr "Настройка веб-браузеров"

#: ../content/pages/integration_tests.md:block 13 (paragraph)
msgid ""
"Open Mozilla Firefox ESR and change preference `xpinstall.signatures."
"required` to `false` in the Firefox Configuration Editor (`about:config` "
"page). You can follow [official Mozilla support](https://support.mozilla.org/"
"en-US/kb/add-on-signing-in-firefox#w_what-are-my-options-if-i-want-to-use-an-"
"unsigned-add-on-advanced-users)."
msgstr ""
"Откройте Mozilla Firefox ESR и измените предпочтение "
"`xpinstall.signatures.required` на `false` в редакторе конфигурации Firefox ("
"страница `about:config`). Вы можете обратиться за помощью к "
"[официальной поддержке Mozilla] (https://support.mozilla.org/en-US/kb/add-on-"
"signing-in-firefox#w_what-are-my-options-if-i-want-to-use-an-unsigned-add-on-"
"advanced-users)."

#: ../content/pages/integration_tests.md:block 14 (paragraph)
msgid ""
"Open [testing page](https://polcak.github.io/jsrestrictor/test/test.html) "
"and click the button *Show GPS data*. Firefox will ask you if you want to "
"enable the page to access the location. Check the option *Remember this "
"decision* and then click *Allow*."
msgstr ""
"Откройте [страницу тестирования](https://polcak.github.io/jsrestrictor/test/"
"test.html) и нажмите кнопку *Показать данные GPS*. Firefox спросит вас, "
"хотите ли вы разрешить странице доступ к местоположению. Отметьте опцию *"
"Запомнить это решение*, а затем нажмите *Разрешить*."

#: ../content/pages/integration_tests.md:block 15 (paragraph)
msgid ""
"The default configuration of Google Chrome is sufficient for integration "
"tests, so the Chrome settings do not need to be changed."
msgstr ""
"Для интеграционных тестов достаточно стандартной конфигурации Google Chrome, "
"поэтому настройки Chrome менять не нужно."

#: ../content/pages/integration_tests.md:block 16 (header)
msgid "<a name=\"webdrivers\">Download web browser drivers</a>"
msgstr "<a name=\"webdrivers\">Скачать драйверы веб-браузеров</a>"

#: ../content/pages/integration_tests.md:block 17 (paragraph)
msgid ""
"Selenium needs web browser drivers to control the browser. If the Selenium "
"drivers are not in your package repository or you do not want to use drivers "
"from your repository, download the web browser drivers for your web browsers "
"- Google Chrome and Mozilla Firefox - and your platform - Windows and Linux."
msgstr ""
"Для управления браузером Selenium нужны драйверы веб-браузера. Если "
"драйверов Selenium нет в вашем репозитории пакетов или вы не хотите "
"использовать драйверы из вашего репозитория, загрузите драйверы веб-браузера "
"для ваших браузеров - Google Chrome и Mozilla Firefox - и вашей платформы - "
"Windows и Linux."

#: ../content/pages/integration_tests.md:block 18 (paragraph)
msgid ""
"Download the ChromeDriver from [download page](https://chromedriver.chromium."
"org/downloads) for Google Chrome. Select the version corresponding to the "
"version of your Google Chrome web browser. Download the correct ChromeDriver "
"to folder `../common_files/webbrowser_drivers` with the name `chromedriver."
"exe` (for Windows) or `chromedriver` (for Linux). If you download an "
"incompatible version, you will see an error during the initialization of the "
"tests."
msgstr ""
"Загрузите драйвер ChromeDriver с [страницы загрузки](https://"
"chromedriver.chromium.org/downloads) для Google Chrome. Выберите версию, "
"соответствующую версии вашего браузера Google Chrome. Загрузите нужный "
"ChromeDriver в папку `../common_files/webbrowser_drivers` с именем "
"`chromedriver.exe` (для Windows) или `chromedriver` (для Linux). Если вы "
"загрузите несовместимую версию, то увидите ошибку при инициализации тестов."

#: ../content/pages/integration_tests.md:block 19 (paragraph)
msgid ""
"Download the GeckoDriver from [download page](https://github.com/mozilla/"
"geckodriver/releases) for Mozilla Firefox. Select the version corresponding "
"to the version of your Mozilla Firefox web browser (typically the newest "
"version). Download the correct GeckoDriver to folder `../common_files/"
"webbrowser_drivers` with the name `geckodriver.exe` (for Windows) or "
"`geckodriver` (for Linux). If you download an incompatible version, you will "
"see an error during starting tests."
msgstr ""
"Загрузите GeckoDriver с [страницы загрузки](https://github.com/mozilla/"
"geckodriver/releases) для Mozilla Firefox. Выберите версию, соответствующую "
"версии вашего браузера Mozilla Firefox (обычно это самая новая версия). "
"Загрузите нужный GeckoDriver в папку `../common_files/webbrowser_drivers` с "
"именем `geckodriver.exe` (для Windows) или `geckodriver` (для Linux). Если "
"вы загрузите несовместимую версию, то при запуске тестов вы увидите ошибку."

#: ../content/pages/integration_tests.md:block 20 (header)
msgid "Integration tests' configuration"
msgstr "Конфигурация интеграционных тестов"

#: ../content/pages/integration_tests.md:block 21 (paragraph)
msgid ""
"You can change selected browsers, their profiles, and tested JShelter levels "
"by modifying the file `./testing/configuration.py`."
msgstr ""
"Вы можете изменить выбранные браузеры, их профили и протестированные уровни "
"JShelter, изменив файл `./testing/configuration.py`."

#: ../content/pages/integration_tests.md:block 22 (header)
msgid "RUN TESTS"
msgstr "ТЕСТЫ НА ВЫПОЛНЕНИЕ"

#: ../content/pages/integration_tests.md:block 23 (header)
msgid "on Windows OS"
msgstr "на ОС Windows"

#: ../content/pages/integration_tests.md:block 24 (ordered list)
msgid ""
"Install Windows Subsystem for Linux (WSL): https://docs.microsoft.com/en-us/"
"windows/wsl/install-win10."
msgstr ""
"Установка Windows Subsystem для Linux (WSL): https://docs.microsoft.com/"
"en-us/windows/wsl/install-win10."

#: ../content/pages/integration_tests.md:block 24 (ordered list)
msgid ""
"Convert EOL in the scripts `fix_manifest.sh` (in the root directory of "
"JShelter project) and `nscl/include.sh` from Windows (CR LF) to Unix (LF) - "
"you can use the tool `dos2unix` in WSL to convert CR LF to LF."
msgstr ""
"Преобразуйте EOL в скриптах `fix_manifest.sh` (в корневом каталоге проекта "
"JShelter) и `nscl/include.sh` из Windows (CR LF) в Unix (LF) - вы можете "
"использовать инструмент `dos2unix` в WSL для преобразования CR LF в LF."

#: ../content/pages/integration_tests.md:block 24 (ordered list)
msgid ""
"Open the root directory of JShelter project in WSL and run the command "
"`make`."
msgstr ""
"Откройте корневой каталог проекта JShelter в WSL и выполните команду `make`."

#: ../content/pages/integration_tests.md:block 24 (ordered list)
msgid ""
"Open PowerShell in folder *integration_tests* and run command: `."
"\\start_integration_tests.ps1`"
msgstr ""
"Откройте PowerShell в папке *integration_tests* и выполните команду: `."
"\\start_integration_tests.ps1`"

#: ../content/pages/integration_tests.md:block 25 (paragraph)
msgid ""
"The script may ask you for the path into the directory where the file chrome."
"exe is stored and where the files of the Firefox ESR default profile are "
"stored."
msgstr ""
"Сценарий может попросить вас указать путь к директории, в которой хранится "
"файл chrome.exe и файлы профиля Firefox ESR по умолчанию."

#: ../content/pages/integration_tests.md:block 26 (paragraph)
msgid ""
"The default location of chrome.exe is: `C:\\Program Files "
"(x86)\\Google\\Chrome\\Application` The default location of Firefox ESR "
"profile is: `C:"
"\\Users\\<username>\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\<profilename>."
"default-esr`"
msgstr ""
"По умолчанию chrome.exe находится в каталоге: `C:\\Program Files (x86)"
"\\Google\\Chrome\\Application` По умолчанию профиль Firefox ESR находится в "
"каталоге: `C:\\Users\\<имя пользователя>\\AppData\\Roaming\\Mozilla\\Firefox"
"\\Profiles\\<profilename>.default-esr`"

#: ../content/pages/integration_tests.md:block 27 (paragraph)
msgid ""
"If the script does not find the needed files in the default locations, it "
"prompts you to insert the path."
msgstr ""
"Если сценарий не находит нужных файлов в стандартных местах, он предлагает "
"вам вставить путь."

#: ../content/pages/integration_tests.md:block 28 (paragraph)
msgid ""
"When script execution starts for the first time, OS Windows may ask you to "
"allow Firewall Exception for this script (for Python). Click *Allow*."
msgstr ""
"Когда сценарий запускается в первый раз, OS Windows может попросить вас "
"разрешить исключение из брандмауэра для этого сценария (для Python). Нажмите "
"*Разрешить*."

#: ../content/pages/integration_tests.md:block 29 (header)
msgid "on Linux OS"
msgstr "на Linux OS"

#: ../content/pages/integration_tests.md:block 30 (paragraph)
msgid ""
"Open Terminal in folder *integration_tests* and run command: `./"
"start_integration_tests.sh`"
msgstr ""
"Откройте Терминал в папке *integration_tests* и выполните команду: `./"
"start_integration_tests.sh`"

#: ../content/pages/integration_tests.md:block 31 (paragraph)
msgid ""
"The script may ask you for the path of the Firefox ESR default profile. The "
"default location of the default profile is: `/home/<username>/.mozilla/"
"firefox/<profilename>.default-esr`"
msgstr ""
"Сценарий может попросить вас указать путь к профилю Firefox ESR по "
"умолчанию. По умолчанию профиль по умолчанию расположен в каталоге: `/home/"
"<имя пользователя>/.mozilla/firefox/<profilename>.default-esr`"

#: ../content/pages/integration_tests.md:block 32 (paragraph)
msgid ""
"If the script does not find the needed files in the default location, it "
"prompts you for the path."
msgstr ""
"Если скрипт не находит нужных файлов в стандартном расположении, он "
"запрашивает путь."

#: ../content/pages/levels.md:block 1 (paragraph)
msgid "Title: JavaScript Shield"
msgstr "Title: Щит JavaScript"

#: ../content/pages/levels.md:block 2 (paragraph)
msgid ""
"JavaScript Shield modifies the behaviour of the JavaScript environment "
"availble for the visited webpage. JShelter provides fake information to "
"confuse fingerprinters or make webpage triggered attacks impossible or "
"harder."
msgstr ""
"JavaScript Shield изменяет поведение среды JavaScript, доступной для "
"посещаемой веб-страницы. JShelter предоставляет поддельную информацию, чтобы "
"запутать фингерпринтеры или сделать невозможными или затруднительными атаки "
"на веб-страницы."

#: ../content/pages/levels.md:block 3 (paragraph)
msgid ""
"JavaScript Shield internally consists of wrappers, small pieces of code that "
"modify the original behaviour of a JavaScript API (a function or a property) "
"defined by standards. The behaviour of the most of the wrappers can be "
"divided into several categories:"
msgstr ""
"Внутренняя часть JavaScript Shield состоит из оберток - небольших фрагментов "
"кода, которые изменяют оригинальное поведение API JavaScript (функции или "
"свойства), определенное стандартами. Поведение большинства оберток можно "
"разделить на несколько категорий:"

#: ../content/pages/levels.md:block 4 (unordered list)
msgid ""
"**Precision reduction**: The original value is too precise and it is not "
"necessary for most use cases. JavaScript Shield modifies the values so that "
"typical and benign use cases are not affected."
msgstr ""
"**Уменьшение точности**: Исходное значение слишком точное и не нужно для "
"большинства случаев использования. JavaScript Shield изменяет значения таким "
"образом, чтобы не затрагивать типичные и доброкачественные случаи "
"использования."

#: ../content/pages/levels.md:block 4 (unordered list)
msgid ""
"**Provide fake information**: Some wrappers provide fake information mostly "
"to confuse fingerprinters. For example, canvas wrappers modifify the image "
"so that the same instructions produce different result in each session and "
"for each domain."
msgstr ""
"**Предоставление фальшивой информации**: Некоторые обертки предоставляют "
"фальшивую информацию, чтобы запутать фингерпринтеров. Например, обертки для "
"холстов модифицируют изображение так, что одни и те же инструкции дают "
"разный результат в каждой сессии и для каждого домена."

#: ../content/pages/levels.md:block 4 (unordered list)
msgid ""
"**Hide information**: Some APIs provide information that is not generally "
"needed and can be hidden from most of the pages. Depending on the API, "
"JavaScript Shield might return an error, an empty value, or block the API "
"completely."
msgstr ""
"**Скрыть информацию**: Некоторые API предоставляют информацию, которая "
"обычно не нужна и может быть скрыта от большинства страниц. В зависимости от "
"API, JavaScript Shield может вернуть ошибку, пустое значение или полностью "
"заблокировать API."

#: ../content/pages/levels.md:block 5 (paragraph)
msgid ""
"See our blog posts for more information on [browser fingerprinting counter-"
"measures](/fingerprinting/) and [farbling](/farbling/)."
msgstr ""
"Подробнее о [мерах борьбы с отпечатками пальцев в браузере](/fingerprinting/)"
" и [фарблинге] (/farbling/) читайте в нашем блоге."

#: ../content/pages/levels.md:block 6 (header)
msgid "Protection levels"
msgstr "Уровень защиты"

#: ../content/pages/levels.md:block 7 (paragraph)
msgid "JShelter supports the following protection levels:"
msgstr "JShelter поддерживает следующие уровни защиты:"

#: ../content/pages/levels.md:block 8 (unordered list)
msgid ""
"**Turn JavaScript Shield off**: Use for pages that you trust and you want to "
"give them access to full APIs supported by the browser."
msgstr ""
"**Включите JavaScript Shield**: Используйте для страниц, которым вы "
"доверяете и хотите предоставить им доступ к полным API, поддерживаемым "
"браузером."

#: ../content/pages/levels.md:block 8 (unordered list)
msgid ""
"**Turn fingerprinting protection off**: Apply security counter-measures that "
"are likely not to break web pages but do not defend against fingerprinting. "
"Disable APIs that are not commonly used. Use this level if Fingerprint "
"Detector reports low likelihood of fingerprinting, you trust the visited "
"service, and/or you think that the protection makes the page slow or broken "
"and your temptation to use the service is so high that you do not want to be "
"protected."
msgstr ""
"**Отключите защиту от отпечатков пальцев**: Применяйте меры безопасности, "
"которые, скорее всего, не приведут к поломке веб-страниц, но не защитят от "
"отпечатков пальцев. Отключите API, которые не используются часто. "
"Используйте этот уровень, если Fingerprint Detector сообщает о низкой "
"вероятности отпечатков пальцев, вы доверяете посещаемому сервису и/или "
"считаете, что защита делает страницу медленной или нерабочей, и ваше "
"искушение воспользоваться сервисом настолько велико, что вы не хотите быть "
"защищенным."

#: ../content/pages/levels.md:block 8 (unordered list)
msgid ""
"**Recommended**: Make the browser appear differently to distinct "
"fingerprinters. Apply security counter-measures that are likely not to break "
"web pages. Slightly modify the results of API calls in different way on "
"different domains so that the cross-site fingerprint is not stable. The "
"generated fingerprint values also differ with each browser restart. If you "
"need a different fingerprint for the same website without restart, use "
"incognito mode. Keep in mind that even if you log out from a site, clear "
"your cookies, change your IP address, the modified APIs will provide a way "
"to compute the same fingerprint. Restart your browser if you want to change "
"your fingerprint. If in doubt, use this level."
msgstr ""
"**Рекомендуется**: Заставьте браузер выглядеть по-другому для различных "
"дактилоскопических устройств. Применять контрмеры безопасности, которые, "
"скорее всего, не приведут к поломке веб-страниц. Слегка изменяйте результаты "
"вызовов API на разных доменах, чтобы межсайтовый отпечаток не был "
"стабильным. Сгенерированные значения отпечатков также отличаются при каждом "
"перезапуске браузера. Если вам нужен другой отпечаток для одного и того же "
"сайта без перезапуска, используйте режим инкогнито. Имейте в виду, что даже "
"если вы выйдете с сайта, очистите куки, смените IP-адрес, модифицированные "
"API будут предоставлять возможность вычислить тот же отпечаток. "
"Перезапустите браузер, если хотите изменить отпечаток. Если вы сомневаетесь, "
"используйте этот уровень."

#: ../content/pages/levels.md:block 8 (unordered list)
msgid ""
"**Strict**: Enable all non-experimental protection. The wrapped APIs return "
"fake values. Some APIs are blocked completely, others provide meaningful but "
"rare values. Some return values are meaningless. This level will make you "
"fingerprintable because the results of API calls are generally modified in "
"the same way on all webistes and in each session. Use this level if you want "
"to limit the information provided by your browser. If you are worried about "
"fingerprinters, make sure the Fingerprint Detector is activated."
msgstr ""
"**Строго**: Включите все неэкспериментальные средства защиты. Обернутые API "
"возвращают фальшивые значения. Некоторые API блокируются полностью, другие "
"предоставляют значимые, но редкие значения. Некоторые возвращаемые значения "
"бессмысленны. Этот уровень сделает вас уязвимым для отпечатков пальцев, "
"поскольку результаты вызовов API обычно изменяются одинаково на всех веб-"
"узлах и в каждой сессии. Используйте этот уровень, если хотите ограничить "
"информацию, предоставляемую браузером. Если вас беспокоят дактилоскописты, "
"убедитесь, что активирован детектор отпечатков пальцев."

#: ../content/pages/license.md:block 1 (paragraph)
msgid "Title: GNU General Public License"
msgstr "Title: GNU General Public License"

#: ../content/pages/license.md:block 2 (paragraph)
msgid "Version 3, 29 June 2007"
msgstr "Версия 3, 29 июня 2007 г"

#: ../content/pages/license.md:block 3 (paragraph)
msgid "Copyright (C) 2007 [Free Software Foundation, Inc.](https://fsf.org/)"
msgstr ""
"Авторское право (C) 2007 [ Фонд свободного программного обеспечения, Inc.]"
"(https://fsf.org/)"

#: ../content/pages/license.md:block 4 (paragraph)
msgid ""
"Everyone is permitted to copy and distribute verbatim copies of this license "
"document, but changing it is not allowed."
msgstr ""
"Всем разрешается копировать и распространять дословные копии этого "
"лицензионного документа, но изменять его не разрешается."

#: ../content/pages/license.md:block 5 (header)
msgid "Preamble"
msgstr "Преамбула"

#: ../content/pages/license.md:block 6 (paragraph)
msgid ""
"The GNU General Public License is a free, copyleft license for software and "
"other kinds of works."
msgstr ""
"Стандартная общественная лицензия GNU - это свободная лицензия с авторским "
"левом для программ и других видов работ."

#: ../content/pages/license.md:block 7 (paragraph)
msgid ""
"The licenses for most software and other practical works are designed to "
"take away your freedom to share and change the works. By contrast, the GNU "
"General Public License is intended to guarantee your freedom to share and "
"change all versions of a program--to make sure it remains free software for "
"all its users. We, the Free Software Foundation, use the GNU General Public "
"License for most of our software; it applies also to any other work released "
"this way by its authors. You can apply it to your programs, too."
msgstr ""
"Лицензии на большинство программ и других практических работ разработаны "
"так, чтобы лишить вас свободы делиться ими и изменять их. В отличие от них, "
"Стандартная общественная лицензия GNU призвана гарантировать вашу свободу "
"делиться и изменять все версии программы - чтобы убедиться, что она остается "
"свободной для всех пользователей. Мы, Фонд свободного программного "
"обеспечения, используем Стандартную общественную лицензию GNU для "
"большинства наших программ; она также применяется к любым другим работам, "
"выпущенным таким образом их авторами. Вы тоже можете применять ее к своим "
"программам."

#: ../content/pages/license.md:block 8 (paragraph)
msgid ""
"When we speak of free software, we are referring to freedom, not price. Our "
"General Public Licenses are designed to make sure that you have the freedom "
"to distribute copies of free software (and charge for them if you wish), "
"that you receive source code or can get it if you want it, that you can "
"change the software or use pieces of it in new free programs, and that you "
"know you can do these things."
msgstr ""
"Когда мы говорим о свободных программах, мы имеем в виду свободу, а не цену. "
"Наши общедоступные лицензии разработаны для того, чтобы вы могли свободно "
"распространять копии свободных программ (и брать за них деньги, если хотите)"
", чтобы вы получали исходный текст или могли его получить, если хотите, "
"чтобы вы могли изменять программы или использовать их части в новых "
"свободных программах, и чтобы вы знали, что можете делать эти вещи."

#: ../content/pages/license.md:block 9 (paragraph)
msgid ""
"To protect your rights, we need to prevent others from denying you these "
"rights or asking you to surrender the rights. Therefore, you have certain "
"responsibilities if you distribute copies of the software, or if you modify "
"it: responsibilities to respect the freedom of others."
msgstr ""
"Чтобы защитить ваши права, мы должны помешать другим отказывать вам в этих "
"правах или просить вас отказаться от них. Поэтому вы несете определенные "
"обязанности, если распространяете копии программного обеспечения или вносите "
"в него изменения: обязанности уважать свободу других людей."

#: ../content/pages/license.md:block 10 (paragraph)
msgid ""
"For example, if you distribute copies of such a program, whether gratis or "
"for a fee, you must pass on to the recipients the same freedoms that you "
"received. You must make sure that they, too, receive or can get the source "
"code. And you must show them these terms so they know their rights."
msgstr ""
"Например, если вы распространяете копии такой программы, безвозмездно или за "
"плату, вы должны передать получателям те же свободы, которые получили вы. Вы "
"должны убедиться, что они тоже получат или смогут получить исходный код. И "
"вы должны показать им эти условия, чтобы они знали свои права."

#: ../content/pages/license.md:block 11 (paragraph)
msgid ""
"Developers that use the GNU GPL protect your rights with two steps: (1) "
"assert copyright on the software, and (2) offer you this License giving you "
"legal permission to copy, distribute and/or modify it."
msgstr ""
"Разработчики, использующие GNU GPL, защищают ваши права в два этапа: (1) "
"подтверждают авторские права на программу и (2) предлагают вам эту лицензию, "
"дающую вам законное разрешение копировать, распространять и/или изменять ее."

#: ../content/pages/license.md:block 12 (paragraph)
msgid ""
"For the developers' and authors' protection, the GPL clearly explains that "
"there is no warranty for this free software. For both users' and authors' "
"sake, the GPL requires that modified versions be marked as changed, so that "
"their problems will not be attributed erroneously to authors of previous "
"versions."
msgstr ""
"Для защиты разработчиков и авторов GPL ясно объясняет, что на эти свободные "
"программы нет никакой гарантии. Для защиты пользователей и авторов GPL "
"требует, чтобы измененные версии помечались как измененные, чтобы их "
"проблемы не были ошибочно приписаны авторам предыдущих версий."

#: ../content/pages/license.md:block 13 (paragraph)
msgid ""
"Some devices are designed to deny users access to install or run modified "
"versions of the software inside them, although the manufacturer can do so. "
"This is fundamentally incompatible with the aim of protecting users' freedom "
"to change the software. The systematic pattern of such abuse occurs in the "
"area of products for individuals to use, which is precisely where it is most "
"unacceptable. Therefore, we have designed this version of the GPL to "
"prohibit the practice for those products. If such problems arise "
"substantially in other domains, we stand ready to extend this provision to "
"those domains in future versions of the GPL, as needed to protect the "
"freedom of users."
msgstr ""
"Некоторые устройства спроектированы таким образом, чтобы запретить "
"пользователям устанавливать или запускать модифицированные версии "
"программного обеспечения, хотя производитель может это сделать. Это в корне "
"несовместимо с целью защиты свободы пользователей изменять программное "
"обеспечение. Систематические злоупотребления такого рода происходят в "
"области продуктов, предназначенных для индивидуального использования, и "
"именно здесь они наиболее неприемлемы. Поэтому мы разработали эту версию "
"GPL, чтобы запретить такую практику для этих продуктов. Если подобные "
"проблемы возникнут в других областях, мы готовы распространить это положение "
"на эти области в будущих версиях GPL, если это будет необходимо для защиты "
"свободы пользователей."

#: ../content/pages/license.md:block 14 (paragraph)
msgid ""
"Finally, every program is threatened constantly by software patents. States "
"should not allow patents to restrict development and use of software on "
"general-purpose computers, but in those that do, we wish to avoid the "
"special danger that patents applied to a free program could make it "
"effectively proprietary. To prevent this, the GPL assures that patents "
"cannot be used to render the program non-free."
msgstr ""
"Наконец, каждой программе постоянно угрожают патенты на программное "
"обеспечение. Государства не должны позволять патентам ограничивать "
"разработку и использование программ на компьютерах общего назначения, но в "
"тех государствах, которые это делают, мы хотим избежать особой опасности, "
"что патенты, применяемые к свободной программе, могут сделать ее фактически "
"несвободной. Чтобы предотвратить это, GPL гарантирует, что патенты не могут "
"быть использованы для того, чтобы сделать программу несвободной."

#: ../content/pages/license.md:block 15 (paragraph)
msgid ""
"The precise terms and conditions for copying, distribution and modification "
"follow."
msgstr ""
"Далее следуют точные условия копирования, распространения и модификации."

#: ../content/pages/license.md:block 16 (header)
msgid "TERMS AND CONDITIONS"
msgstr "ПРАВИЛА И УСЛОВИЯ"

#: ../content/pages/license.md:block 17 (header)
msgid "0. Definitions."
msgstr "0. Определения."

#: ../content/pages/license.md:block 18 (paragraph)
msgid "\"This License\" refers to version 3 of the GNU General Public License."
msgstr ""
"\"Эта лицензия\" относится к версии 3 Стандартной общественной лицензии GNU."

#: ../content/pages/license.md:block 19 (paragraph)
msgid ""
"\"Copyright\" also means copyright-like laws that apply to other kinds of "
"works, such as semiconductor masks."
msgstr ""
"Под \"авторским правом\" также понимаются законы, подобные авторскому праву, "
"которые применяются к другим видам работ, например, к полупроводниковым "
"маскам."

#: ../content/pages/license.md:block 20 (paragraph)
msgid ""
"\"The Program\" refers to any copyrightable work licensed under this "
"License. Each licensee is addressed as \"you\". \"Licensees\" and "
"\"recipients\" may be individuals or organizations."
msgstr ""
"Под \"Программой\" понимается любая работа, защищенная авторским правом, "
"лицензируемая в соответствии с настоящей Лицензией. Каждый лицензиат "
"обозначается как \"вы\". \"Лицензиаты\" и \"получатели\" могут быть частными "
"лицами или организациями."

#: ../content/pages/license.md:block 21 (paragraph)
msgid ""
"To \"modify\" a work means to copy from or adapt all or part of the work in "
"a fashion requiring copyright permission, other than the making of an exact "
"copy. The resulting work is called a \"modified version\" of the earlier "
"work or a work \"based on\" the earlier work."
msgstr ""
"Модифицировать\" произведение - значит скопировать с него или адаптировать "
"его полностью или частично таким образом, который требует разрешения на "
"авторское право, кроме создания точной копии. Полученное в результате "
"произведение называется \"измененной версией\" предыдущего произведения или "
"произведением, \"основанным\" на предыдущем произведении."

#: ../content/pages/license.md:block 22 (paragraph)
msgid ""
"A \"covered work\" means either the unmodified Program or a work based on "
"the Program."
msgstr ""
"Охватываемое произведение\" означает либо немодифицированную Программу, либо "
"произведение, основанное на Программе."

#: ../content/pages/license.md:block 23 (paragraph)
msgid ""
"To \"propagate\" a work means to do anything with it that, without "
"permission, would make you directly or secondarily liable for infringement "
"under applicable copyright law, except executing it on a computer or "
"modifying a private copy. Propagation includes copying, distribution (with "
"or without modification), making available to the public, and in some "
"countries other activities as well."
msgstr ""
"\"Распространять\" произведение означает делать с ним все, что без "
"разрешения может привести к прямой или вторичной ответственности за "
"нарушение действующего законодательства об авторском праве, за исключением "
"исполнения на компьютере или модификации частной копии. Распространение "
"включает в себя копирование, распространение (с изменениями или без), "
"доведение до всеобщего сведения, а в некоторых странах и другие действия."

#: ../content/pages/license.md:block 24 (paragraph)
msgid ""
"To \"convey\" a work means any kind of propagation that enables other "
"parties to make or receive copies. Mere interaction with a user through a "
"computer network, with no transfer of a copy, is not conveying."
msgstr ""
"Под \"передачей\" произведения понимается любой вид распространения, "
"позволяющий другим лицам создавать или получать копии. Простое "
"взаимодействие с пользователем через компьютерную сеть, без передачи копии, "
"не является передачей."

#: ../content/pages/license.md:block 25 (paragraph)
msgid ""
"An interactive user interface displays \"Appropriate Legal Notices\" to the "
"extent that it includes a convenient and prominently visible feature that "
"(1) displays an appropriate copyright notice, and (2) tells the user that "
"there is no warranty for the work (except to the extent that warranties are "
"provided), that licensees may convey the work under this License, and how to "
"view a copy of this License. If the interface presents a list of user "
"commands or options, such as a menu, a prominent item in the list meets this "
"criterion."
msgstr ""
"Интерактивный пользовательский интерфейс отображает "
"\"Соответствующие правовые уведомления\" в той мере, в какой он включает "
"удобную и заметную функцию, которая (1) отображает соответствующее "
"уведомление об авторских правах и (2) сообщает пользователю, что на "
"произведение не предоставляется гарантия (за исключением случаев, когда "
"гарантии предоставляются), что лицензиаты могут передавать произведение в "
"соответствии с настоящей Лицензией, и как просмотреть копию настоящей "
"Лицензии. Если интерфейс представляет собой список команд или опций "
"пользователя, например, меню, то этому критерию соответствует заметный пункт "
"в списке."

#: ../content/pages/license.md:block 26 (header)
msgid "1. Source Code."
msgstr "1. Исходный код."

#: ../content/pages/license.md:block 27 (paragraph)
msgid ""
"The \"source code\" for a work means the preferred form of the work for "
"making modifications to it. \"Object code\" means any non-source form of a "
"work."
msgstr ""
"Исходный код\" произведения означает предпочтительную форму произведения для "
"внесения в него изменений. \"Объектный код\" означает любую форму "
"произведения, не являющуюся исходной."

#: ../content/pages/license.md:block 28 (paragraph)
msgid ""
"A \"Standard Interface\" means an interface that either is an official "
"standard defined by a recognized standards body, or, in the case of "
"interfaces specified for a particular programming language, one that is "
"widely used among developers working in that language."
msgstr ""
"Стандартный интерфейс\" означает интерфейс, который либо является "
"официальным стандартом, определенным признанным органом по стандартизации, "
"либо, в случае интерфейсов, определенных для конкретного языка "
"программирования, широко используется среди разработчиков, работающих на "
"этом языке."

#: ../content/pages/license.md:block 29 (paragraph)
msgid ""
"The \"System Libraries\" of an executable work include anything, other than "
"the work as a whole, that (a) is included in the normal form of packaging a "
"Major Component, but which is not part of that Major Component, and (b) "
"serves only to enable use of the work with that Major Component, or to "
"implement a Standard Interface for which an implementation is available to "
"the public in source code form. A \"Major Component\", in this context, "
"means a major essential component (kernel, window system, and so on) of the "
"specific operating system (if any) on which the executable work runs, or a "
"compiler used to produce the work, or an object code interpreter used to run "
"it."
msgstr ""
"Системные библиотеки\" исполняемого произведения включают все, кроме "
"произведения в целом, что (a) включено в обычную форму упаковки основного "
"компонента, но не является частью этого основного компонента, и (b) служит "
"только для обеспечения возможности использования произведения с этим "
"основным компонентом или для реализации стандартного интерфейса, реализация "
"которого доступна публике в виде исходного кода. Основной компонент\" в "
"данном контексте означает основной существенный компонент (ядро, оконная "
"система и т. д.) конкретной операционной системы (если таковая имеется), на "
"которой выполняется исполняемое произведение, или компилятор, используемый "
"для создания произведения, или интерпретатор объектного кода, используемый "
"для его выполнения."

#: ../content/pages/license.md:block 30 (paragraph)
msgid ""
"The \"Corresponding Source\" for a work in object code form means all the "
"source code needed to generate, install, and (for an executable work) run "
"the object code and to modify the work, including scripts to control those "
"activities. However, it does not include the work's System Libraries, or "
"general-purpose tools or generally available free programs which are used "
"unmodified in performing those activities but which are not part of the "
"work. For example, Corresponding Source includes interface definition files "
"associated with source files for the work, and the source code for shared "
"libraries and dynamically linked subprograms that the work is specifically "
"designed to require, such as by intimate data communication or control flow "
"between those subprograms and other parts of the work."
msgstr ""
"Соответствующий источник\" для произведения в форме объектного кода означает "
"весь исходный код, необходимый для создания, установки и (для исполняемого "
"произведения) запуска объектного кода и модификации произведения, включая "
"скрипты для управления этими действиями. Однако оно не включает системные "
"библиотеки произведения, а также инструменты общего назначения или "
"общедоступные бесплатные программы, которые используются без изменений при "
"выполнении этих действий, но не являются частью произведения. Например, "
"соответствующий источник включает файлы определения интерфейса, связанные с "
"исходными файлами произведения, и исходный код совместно используемых "
"библиотек и динамически связываемых подпрограмм, которые специально "
"разработаны для того, чтобы требовать от произведения, например, для "
"интимной передачи данных или потока управления между этими подпрограммами и "
"другими частями произведения."

#: ../content/pages/license.md:block 31 (paragraph)
msgid ""
"The Corresponding Source need not include anything that users can regenerate "
"automatically from other parts of the Corresponding Source."
msgstr ""
"Соответствующий источник не должен включать ничего, что пользователи могут "
"автоматически регенерировать из других частей соответствующего источника."

#: ../content/pages/license.md:block 32 (paragraph)
msgid ""
"The Corresponding Source for a work in source code form is that same work."
msgstr ""
"Соответствующим источником для произведения в форме исходного кода является "
"это же произведение."

#: ../content/pages/license.md:block 33 (header)
msgid "2. Basic Permissions."
msgstr "2. Основные разрешения."

#: ../content/pages/license.md:block 34 (paragraph)
msgid ""
"All rights granted under this License are granted for the term of copyright "
"on the Program, and are irrevocable provided the stated conditions are met. "
"This License explicitly affirms your unlimited permission to run the "
"unmodified Program. The output from running a covered work is covered by "
"this License only if the output, given its content, constitutes a covered "
"work. This License acknowledges your rights of fair use or other equivalent, "
"as provided by copyright law."
msgstr ""
"Все права, предоставляемые по данной Лицензии, предоставляются на срок "
"действия авторских прав на Программу и являются безотзывными при соблюдении "
"указанных условий. Настоящая Лицензия однозначно подтверждает ваше "
"неограниченное разрешение на запуск немодифицированной Программы. На "
"выходные данные, полученные в результате выполнения произведения, на которое "
"распространяется действие настоящей Лицензии, распространяется только в том "
"случае, если выходные данные, с учетом их содержания, представляют собой "
"произведение, на которое распространяется действие настоящей Лицензии. "
"Настоящая Лицензия признает ваши права на добросовестное использование или "
"другие эквиваленты, предусмотренные законом об авторском праве."

#: ../content/pages/license.md:block 35 (paragraph)
msgid ""
"You may make, run and propagate covered works that you do not convey, "
"without conditions so long as your license otherwise remains in force. You "
"may convey covered works to others for the sole purpose of having them make "
"modifications exclusively for you, or provide you with facilities for "
"running those works, provided that you comply with the terms of this License "
"in conveying all material for which you do not control copyright. Those thus "
"making or running the covered works for you must do so exclusively on your "
"behalf, under your direction and control, on terms that prohibit them from "
"making any copies of your copyrighted material outside their relationship "
"with you."
msgstr ""
"Вы можете создавать, запускать и распространять закрытые работы, которые вы "
"не передаете, без каких-либо условий до тех пор, пока ваша лицензия остается "
"в силе. Вы можете передавать произведения, на которые распространяется "
"действие лицензии, другим лицам с единственной целью, чтобы они вносили "
"изменения исключительно для вас или предоставляли вам средства для запуска "
"таких произведений, при условии, что вы соблюдаете условия настоящей "
"Лицензии при передаче всех материалов, авторские права на которые вам не "
"принадлежат. Те, кто таким образом делает или запускает для вас работы, на "
"которые распространяется действие Лицензии, должны делать это исключительно "
"от вашего имени, под вашим руководством и контролем, на условиях, "
"запрещающих им делать любые копии ваших материалов, защищенных авторским "
"правом, вне рамок их отношений с вами."

#: ../content/pages/license.md:block 36 (paragraph)
msgid ""
"Conveying under any other circumstances is permitted solely under the "
"conditions stated below. Sublicensing is not allowed; section 10 makes it "
"unnecessary."
msgstr ""
"Передача при любых других обстоятельствах разрешена только на условиях, "
"указанных ниже. Сублицензирование не допускается; раздел 10 делает его "
"ненужным."

#: ../content/pages/license.md:block 37 (header)
msgid "3. Protecting Users' Legal Rights From Anti-Circumvention Law."
msgstr "3. Защита законных прав пользователей от обхода закона."

#: ../content/pages/license.md:block 38 (paragraph)
msgid ""
"No covered work shall be deemed part of an effective technological measure "
"under any applicable law fulfilling obligations under article 11 of the WIPO "
"copyright treaty adopted on 20 December 1996, or similar laws prohibiting or "
"restricting circumvention of such measures."
msgstr ""
"Ни одно из охваченных произведений не должно считаться частью эффективной "
"технологической меры в соответствии с любым применимым законом, выполняющим "
"обязательства по статье 11 Договора ВОИС по авторскому праву, принятого 20 "
"декабря 1996 г., или аналогичными законами, запрещающими или ограничивающими "
"обход таких мер."

#: ../content/pages/license.md:block 39 (paragraph)
msgid ""
"When you convey a covered work, you waive any legal power to forbid "
"circumvention of technological measures to the extent such circumvention is "
"effected by exercising rights under this License with respect to the covered "
"work, and you disclaim any intention to limit operation or modification of "
"the work as a means of enforcing, against the work's users, your or third "
"parties' legal rights to forbid circumvention of technological measures."
msgstr ""
"При передаче произведения, на которое распространяется действие лицензии, вы "
"отказываетесь от любых юридических прав на запрет обхода технологических мер "
"в той мере, в какой такой обход осуществляется путем осуществления прав, "
"предусмотренных настоящей Лицензией в отношении произведения, на которое "
"распространяется действие лицензии, и вы отказываетесь от любых намерений "
"ограничить эксплуатацию или модификацию произведения в качестве средства "
"принуждения пользователей произведения к осуществлению ваших или третьих лиц "
"юридических прав на запрет обхода технологических мер."

#: ../content/pages/license.md:block 40 (header)
msgid "4. Conveying Verbatim Copies."
msgstr "4. Передача стенографических копий."

#: ../content/pages/license.md:block 41 (paragraph)
msgid ""
"You may convey verbatim copies of the Program's source code as you receive "
"it, in any medium, provided that you conspicuously and appropriately publish "
"on each copy an appropriate copyright notice; keep intact all notices "
"stating that this License and any non-permissive terms added in accord with "
"section 7 apply to the code; keep intact all notices of the absence of any "
"warranty; and give all recipients a copy of this License along with the "
"Program."
msgstr ""
"Вы можете передавать дословные копии исходного кода Программы по мере их "
"получения на любом носителе при условии, что на каждой копии будет помещено "
"соответствующее уведомление об авторских правах; будут сохранены все "
"уведомления о том, что настоящая Лицензия и любые не разрешающие условия, "
"добавленные в соответствии с разделом 7, применяются к коду; будут сохранены "
"все уведомления об отсутствии каких-либо гарантий; всем получателям вместе с "
"Программой будет передана копия настоящей Лицензии."

#: ../content/pages/license.md:block 42 (paragraph)
msgid ""
"You may charge any price or no price for each copy that you convey, and you "
"may offer support or warranty protection for a fee."
msgstr ""
"Вы можете взимать любую цену или не взимать никакой цены за каждую "
"передаваемую вами копию, а также предлагать поддержку или гарантийную защиту "
"за определенную плату."

#: ../content/pages/license.md:block 43 (header)
msgid "5. Conveying Modified Source Versions."
msgstr "5. Передача измененных версий источника."

#: ../content/pages/license.md:block 44 (paragraph)
msgid ""
"You may convey a work based on the Program, or the modifications to produce "
"it from the Program, in the form of source code under the terms of section "
"4, provided that you also meet all of these conditions:"
msgstr ""
"Вы можете передать произведение, основанное на Программе или модификациях "
"для ее создания на основе Программы, в виде исходного кода в соответствии с "
"условиями раздела 4 при условии, что вы также выполните все эти условия:"

#: ../content/pages/license.md:block 45 (unordered list)
msgid ""
"a) The work must carry prominent notices stating that you modified it, and "
"giving a relevant date."
msgstr ""
"a) На работе должны быть заметные надписи о том, что вы внесли в нее "
"изменения, и указана соответствующая дата."

#: ../content/pages/license.md:block 45 (unordered list)
msgid ""
"b) The work must carry prominent notices stating that it is released under "
"this License and any conditions added under section 7. This requirement "
"modifies the requirement in section 4 to \"keep intact all notices\"."
msgstr ""
"b) На произведении должны быть заметные уведомления о том, что оно выпущено "
"в соответствии с настоящей Лицензией и любыми условиями, добавленными в "
"соответствии с разделом 7. Это требование изменяет требование раздела 4 о "
"\"сохранении в неизменном виде всех уведомлений\"."

#: ../content/pages/license.md:block 45 (unordered list)
msgid ""
"c) You must license the entire work, as a whole, under this License to "
"anyone who comes into possession of a copy. This License will therefore "
"apply, along with any applicable section 7 additional terms, to the whole of "
"the work, and all its parts, regardless of how they are packaged. This "
"License gives no permission to license the work in any other way, but it "
"does not invalidate such permission if you have separately received it."
msgstr ""
"c) Вы обязаны предоставлять лицензию на все произведение в целом в "
"соответствии с настоящей Лицензией любому, кто получит копию. Таким образом, "
"настоящая Лицензия применяется, наряду с любыми применимыми дополнительными "
"условиями раздела 7, ко всему произведению и всем его частям, независимо от "
"того, как они упакованы. Настоящая Лицензия не дает разрешения на "
"лицензирование произведения каким-либо другим способом, но не отменяет "
"такого разрешения, если оно было получено вами отдельно."

#: ../content/pages/license.md:block 45 (unordered list)
msgid ""
"d) If the work has interactive user interfaces, each must display "
"Appropriate Legal Notices; however, if the Program has interactive "
"interfaces that do not display Appropriate Legal Notices, your work need not "
"make them do so."
msgstr ""
"d) Если произведение имеет интерактивные пользовательские интерфейсы, каждый "
"из них должен отображать соответствующие правовые уведомления; однако если "
"программа имеет интерактивные интерфейсы, которые не отображают "
"соответствующие правовые уведомления, в вашем произведении нет необходимости "
"заставлять их это делать."

#: ../content/pages/license.md:block 46 (paragraph)
msgid ""
"A compilation of a covered work with other separate and independent works, "
"which are not by their nature extensions of the covered work, and which are "
"not combined with it such as to form a larger program, in or on a volume of "
"a storage or distribution medium, is called an \"aggregate\" if the "
"compilation and its resulting copyright are not used to limit the access or "
"legal rights of the compilation's users beyond what the individual works "
"permit. Inclusion of a covered work in an aggregate does not cause this "
"License to apply to the other parts of the aggregate."
msgstr ""
"Компиляция покрытого произведения с другими отдельными и независимыми "
"произведениями, которые по своей природе не являются продолжением покрытого "
"произведения и которые не объединены с ним таким образом, чтобы образовать "
"более крупную программу, в объеме или на объеме носителя хранения или "
"распространения, называется \"совокупностью\", если компиляция и вытекающие "
"из нее авторские права не используются для ограничения доступа или законных "
"прав пользователей компиляции сверх того, что допускают отдельные "
"произведения. Включение в сборник произведения, на которое распространяется "
"авторское право, не влечет за собой применения настоящей Лицензии к другим "
"частям сборника."

#: ../content/pages/license.md:block 47 (header)
msgid "6. Conveying Non-Source Forms."
msgstr "6. Передача неисточниковых форм."

#: ../content/pages/license.md:block 48 (paragraph)
msgid ""
"You may convey a covered work in object code form under the terms of "
"sections 4 and 5, provided that you also convey the machine-readable "
"Corresponding Source under the terms of this License, in one of these ways:"
msgstr ""
"Вы можете передавать покрываемое произведение в форме объектного кода в "
"соответствии с условиями разделов 4 и 5 при условии, что вы также передаете "
"машиночитаемый Соответствующий исходный текст в соответствии с условиями "
"настоящей Лицензии одним из следующих способов:"

#: ../content/pages/license.md:block 49 (unordered list)
msgid ""
"a) Convey the object code in, or embodied in, a physical product (including "
"a physical distribution medium), accompanied by the Corresponding Source "
"fixed on a durable physical medium customarily used for software interchange."
msgstr ""
"a) Содержать объектный код в физическом продукте (включая физический "
"носитель распространения) или воплощенный в нем, сопровождаемый "
"соответствующим исходным кодом, зафиксированным на долговечном физическом "
"носителе, обычно используемом для обмена программным обеспечением."

#: ../content/pages/license.md:block 49 (unordered list)
msgid ""
"b) Convey the object code in, or embodied in, a physical product (including "
"a physical distribution medium), accompanied by a written offer, valid for "
"at least three years and valid for as long as you offer spare parts or "
"customer support for that product model, to give anyone who possesses the "
"object code either (1) a copy of the Corresponding Source for all the "
"software in the product that is covered by this License, on a durable "
"physical medium customarily used for software interchange, for a price no "
"more than your reasonable cost of physically performing this conveying of "
"source, or (2) access to copy the Corresponding Source from a network server "
"at no charge."
msgstr ""
"b) передать объектный код в физическом продукте (включая физический носитель)"
", сопровождаемый письменным предложением, действительным в течение не менее "
"трех лет и действующим до тех пор, пока вы предлагаете запасные части или "
"поддержку клиентов для этой модели продукта, предоставить любому лицу, "
"обладающему объектным кодом, либо (1) копию соответствующего исходного "
"текста для всего программного обеспечения в продукте, на который "
"распространяется настоящая Лицензия, на долговечном физическом носителе, "
"обычно используемом для обмена программным обеспечением, по цене, не "
"превышающей ваши разумные затраты на физическую передачу исходного текста, "
"либо (2) доступ к копированию соответствующего исходного текста с сетевого "
"сервера на безвозмездной основе."

#: ../content/pages/license.md:block 49 (unordered list)
msgid ""
"c) Convey individual copies of the object code with a copy of the written "
"offer to provide the Corresponding Source. This alternative is allowed only "
"occasionally and noncommercially, and only if you received the object code "
"with such an offer, in accord with subsection 6b."
msgstr ""
"c) Передать отдельные копии объектного кода с копией письменного предложения "
"предоставить Соответствующий источник. Этот вариант допускается только в "
"отдельных случаях и некоммерческих целях, и только если вы получили "
"объектный код вместе с таким предложением в соответствии с подразделом 6b."

#: ../content/pages/license.md:block 49 (unordered list)
msgid ""
"d) Convey the object code by offering access from a designated place (gratis "
"or for a charge), and offer equivalent access to the Corresponding Source in "
"the same way through the same place at no further charge. You need not "
"require recipients to copy the Corresponding Source along with the object "
"code. If the place to copy the object code is a network server, the "
"Corresponding Source may be on a different server (operated by you or a "
"third party) that supports equivalent copying facilities, provided you "
"maintain clear directions next to the object code saying where to find the "
"Corresponding Source. Regardless of what server hosts the Corresponding "
"Source, you remain obligated to ensure that it is available for as long as "
"needed to satisfy these requirements."
msgstr ""
"d) Передавать объектный код, предоставляя доступ к нему из определенного "
"места (бесплатно или за плату), и предлагать эквивалентный доступ к "
"Соответствующему источнику тем же способом через то же место без "
"дополнительной оплаты. Вам не нужно требовать от получателей копировать "
"Соответствующий источник вместе с объектным кодом. Если местом копирования "
"объектного кода является сетевой сервер, соответствующий источник может "
"находиться на другом сервере (управляемом вами или третьей стороной), "
"который поддерживает эквивалентные средства копирования, при условии, что "
"рядом с объектным кодом вы сохраняете четкие указания, где найти "
"соответствующий источник. Независимо от того, на каком сервере находится "
"Соответствующий источник, вы обязаны обеспечить его доступность в течение "
"времени, необходимого для выполнения этих требований."

#: ../content/pages/license.md:block 49 (unordered list)
msgid ""
"e) Convey the object code using peer-to-peer transmission, provided you "
"inform other peers where the object code and Corresponding Source of the "
"work are being offered to the general public at no charge under subsection "
"6d."
msgstr ""
"e) Передавать объектный код с помощью пиринговой передачи, при условии, что "
"вы сообщите другим пиринговым пользователям, где объектный код и "
"Соответствующий источник произведения предлагаются широкой публике бесплатно "
"в соответствии с подразделом 6d."

#: ../content/pages/license.md:block 50 (paragraph)
msgid ""
"A separable portion of the object code, whose source code is excluded from "
"the Corresponding Source as a System Library, need not be included in "
"conveying the object code work."
msgstr ""
"Отделяемая часть объектного кода, исходный код которой исключен из "
"соответствующего источника как системной библиотеки, не обязательно должна "
"быть включена в передачу произведения объектного кода."

#: ../content/pages/license.md:block 51 (paragraph)
msgid ""
"A \"User Product\" is either (1) a \"consumer product\", which means any "
"tangible personal property which is normally used for personal, family, or "
"household purposes, or (2) anything designed or sold for incorporation into "
"a dwelling. In determining whether a product is a consumer product, doubtful "
"cases shall be resolved in favor of coverage. For a particular product "
"received by a particular user, \"normally used\" refers to a typical or "
"common use of that class of product, regardless of the status of the "
"particular user or of the way in which the particular user actually uses, or "
"expects or is expected to use, the product. A product is a consumer product "
"regardless of whether the product has substantial commercial, industrial or "
"non-consumer uses, unless such uses represent the only significant mode of "
"use of the product."
msgstr ""
"Пользовательский продукт\" - это либо (1) \"потребительский продукт\", что "
"означает любую материальную личную собственность, которая обычно "
"используется для личных, семейных или домашних целей, либо (2) что-либо, "
"предназначенное или продаваемое для встраивания в жилище. При определении "
"того, является ли товар потребительским товаром, сомнительные случаи должны "
"решаться в пользу покрытия. В отношении конкретного товара, полученного "
"конкретным пользователем, \"обычно используемый\" означает типичное или "
"обычное использование данного класса товаров, независимо от статуса "
"конкретного пользователя или способа, которым конкретный пользователь "
"фактически использует, ожидает или предполагает использовать товар. Продукт "
"является потребительским продуктом независимо от того, имеет ли он "
"существенное коммерческое, промышленное или непотребительское применение, "
"если только такое применение не является единственным существенным способом "
"использования продукта."

#: ../content/pages/license.md:block 52 (paragraph)
msgid ""
"\"Installation Information\" for a User Product means any methods, "
"procedures, authorization keys, or other information required to install and "
"execute modified versions of a covered work in that User Product from a "
"modified version of its Corresponding Source. The information must suffice "
"to ensure that the continued functioning of the modified object code is in "
"no case prevented or interfered with solely because modification has been "
"made."
msgstr ""
"\"Информация об установке\" для Пользовательского продукта означает любые "
"методы, процедуры, ключи авторизации или другую информацию, необходимую для "
"установки и выполнения модифицированных версий покрываемого произведения в "
"данном Пользовательском продукте из модифицированной версии его "
"Соответствующего источника. Информация должна быть достаточной для того, "
"чтобы гарантировать, что дальнейшее функционирование модифицированного "
"объектного кода ни в коем случае не будет предотвращено или нарушено только "
"потому, что была произведена модификация."

#: ../content/pages/license.md:block 53 (paragraph)
msgid ""
"If you convey an object code work under this section in, or with, or "
"specifically for use in, a User Product, and the conveying occurs as part of "
"a transaction in which the right of possession and use of the User Product "
"is transferred to the recipient in perpetuity or for a fixed term "
"(regardless of how the transaction is characterized), the Corresponding "
"Source conveyed under this section must be accompanied by the Installation "
"Information. But this requirement does not apply if neither you nor any "
"third party retains the ability to install modified object code on the User "
"Product (for example, the work has been installed in ROM)."
msgstr ""
"Если вы передаете произведение объектного кода в соответствии с этим "
"разделом в составе или вместе с Пользовательским продуктом, или специально "
"для использования в нем, и передача происходит как часть сделки, в которой "
"право владения и использования Пользовательского продукта передается "
"получателю на вечные времена или на определенный срок (независимо от того, "
"как характеризуется сделка), Соответствующий источник, передаваемый в "
"соответствии с этим разделом, должен сопровождаться Информацией об "
"установке. Однако это требование не применяется, если ни вы, ни третье лицо "
"не сохраняют возможности установки модифицированного объектного кода на "
"Пользовательский продукт (например, произведение было установлено в ПЗУ)."

#: ../content/pages/license.md:block 54 (paragraph)
msgid ""
"The requirement to provide Installation Information does not include a "
"requirement to continue to provide support service, warranty, or updates for "
"a work that has been modified or installed by the recipient, or for the User "
"Product in which it has been modified or installed. Access to a network may "
"be denied when the modification itself materially and adversely affects the "
"operation of the network or violates the rules and protocols for "
"communication across the network."
msgstr ""
"Требование о предоставлении информации об установке не включает в себя "
"требование о продолжении предоставления услуг поддержки, гарантии или "
"обновлений для работы, которая была модифицирована или установлена "
"получателем, или для Пользовательского продукта, в который она была "
"модифицирована или установлена. В доступе к сети может быть отказано, если "
"сама модификация существенно и негативно влияет на работу сети или нарушает "
"правила и протоколы обмена данными в сети."

#: ../content/pages/license.md:block 55 (paragraph)
msgid ""
"Corresponding Source conveyed, and Installation Information provided, in "
"accord with this section must be in a format that is publicly documented "
"(and with an implementation available to the public in source code form), "
"and must require no special password or key for unpacking, reading or "
"copying."
msgstr ""
"Соответствующий источник, переданный в соответствии с этим разделом, и "
"информация об установке, предоставленная в соответствии с этим разделом, "
"должны быть в формате, который публично документирован (и с реализацией, "
"доступной для общественности в виде исходного кода), и не должны требовать "
"специального пароля или ключа для распаковки, чтения или копирования."

#: ../content/pages/license.md:block 56 (header)
msgid "7. Additional Terms."
msgstr "7. Дополнительные условия."

#: ../content/pages/license.md:block 57 (paragraph)
msgid ""
"\"Additional permissions\" are terms that supplement the terms of this "
"License by making exceptions from one or more of its conditions. Additional "
"permissions that are applicable to the entire Program shall be treated as "
"though they were included in this License, to the extent that they are valid "
"under applicable law. If additional permissions apply only to part of the "
"Program, that part may be used separately under those permissions, but the "
"entire Program remains governed by this License without regard to the "
"additional permissions."
msgstr ""
"\"Дополнительные разрешения\" - это условия, которые дополняют условия "
"настоящей Лицензии, делая исключения из одного или нескольких ее условий. "
"Дополнительные разрешения, применимые ко всей Программе, рассматриваются так "
"же, как если бы они были включены в настоящую Лицензию, в той степени, в "
"которой они действительны в соответствии с применимым законодательством. "
"Если дополнительные разрешения применяются только к части Программы, эта "
"часть может быть использована отдельно в соответствии с этими разрешениями, "
"но вся Программа остается под действием настоящей Лицензии без учета "
"дополнительных разрешений."

#: ../content/pages/license.md:block 58 (paragraph)
msgid ""
"When you convey a copy of a covered work, you may at your option remove any "
"additional permissions from that copy, or from any part of it. (Additional "
"permissions may be written to require their own removal in certain cases "
"when you modify the work.) You may place additional permissions on material, "
"added by you to a covered work, for which you have or can give appropriate "
"copyright permission."
msgstr ""
"Когда вы передаете копию произведения, на которое распространяется действие "
"лицензии, вы можете по своему усмотрению удалить любые дополнительные "
"разрешения с этой копии или с любой ее части. (Дополнительные разрешения "
"могут быть написаны таким образом, чтобы требовать их удаления в "
"определенных случаях, когда вы изменяете произведение). Вы можете поместить "
"дополнительные разрешения на материал, добавленный вами к покрытому "
"произведению, на который вы имеете или можете предоставить соответствующее "
"разрешение на авторские права."

#: ../content/pages/license.md:block 59 (paragraph)
msgid ""
"Notwithstanding any other provision of this License, for material you add to "
"a covered work, you may (if authorized by the copyright holders of that "
"material) supplement the terms of this License with terms:"
msgstr ""
"Несмотря на любые другие положения настоящей Лицензии, в отношении "
"материалов, которые вы добавляете к покрытому произведению, вы можете (при "
"наличии разрешения владельцев авторских прав на эти материалы) дополнить "
"условия настоящей Лицензии условиями:"

#: ../content/pages/license.md:block 60 (unordered list)
msgid ""
"a) Disclaiming warranty or limiting liability differently from the terms of "
"sections 15 and 16 of this License; or"
msgstr ""
"a) отказ от гарантий или ограничение ответственности, отличающиеся от "
"условий разделов 15 и 16 настоящей Лицензии; или"

#: ../content/pages/license.md:block 60 (unordered list)
msgid ""
"b) Requiring preservation of specified reasonable legal notices or author "
"attributions in that material or in the Appropriate Legal Notices displayed "
"by works containing it; or"
msgstr ""
"b) требуя сохранения определенных обоснованных юридических уведомлений или "
"авторских атрибуций в этом материале или в соответствующих юридических "
"уведомлениях, отображаемых в содержащих его произведениях; или"

#: ../content/pages/license.md:block 60 (unordered list)
msgid ""
"c) Prohibiting misrepresentation of the origin of that material, or "
"requiring that modified versions of such material be marked in reasonable "
"ways as different from the original version; or"
msgstr ""
"c) запрет на введение в заблуждение относительно происхождения такого "
"материала или требование, чтобы измененные версии такого материала были "
"помечены разумными способами как отличающиеся от оригинальной версии; или"

#: ../content/pages/license.md:block 60 (unordered list)
msgid ""
"d) Limiting the use for publicity purposes of names of licensors or authors "
"of the material; or"
msgstr ""
"d) ограничение использования в рекламных целях имен лицензиаров или авторов "
"материала; или"

#: ../content/pages/license.md:block 60 (unordered list)
msgid ""
"e) Declining to grant rights under trademark law for use of some trade "
"names, trademarks, or service marks; or"
msgstr ""
"e) отказ от предоставления прав на использование некоторых торговых "
"наименований, товарных знаков или знаков обслуживания в соответствии с "
"законодательством о товарных знаках; или"

#: ../content/pages/license.md:block 60 (unordered list)
msgid ""
"f) Requiring indemnification of licensors and authors of that material by "
"anyone who conveys the material (or modified versions of it) with "
"contractual assumptions of liability to the recipient, for any liability "
"that these contractual assumptions directly impose on those licensors and "
"authors."
msgstr ""
"f) Требование возмещения ущерба лицензиарам и авторам этого материала любым "
"лицом, передающим материал (или его измененные версии) с договорными "
"предположениями об ответственности получателя, за любую ответственность, "
"которую эти договорные предположения непосредственно налагают на этих "
"лицензиаров и авторов."

#: ../content/pages/license.md:block 61 (paragraph)
msgid ""
"All other non-permissive additional terms are considered \"further "
"restrictions\" within the meaning of section 10. If the Program as you "
"received it, or any part of it, contains a notice stating that it is "
"governed by this License along with a term that is a further restriction, "
"you may remove that term. If a license document contains a further "
"restriction but permits relicensing or conveying under this License, you may "
"add to a covered work material governed by the terms of that license "
"document, provided that the further restriction does not survive such "
"relicensing or conveying."
msgstr ""
"Все прочие не разрешающие дополнительные условия считаются "
"\"дополнительными ограничениями\" в значении раздела 10. Если Программа в "
"том виде, в котором вы ее получили, или любая ее часть содержит уведомление "
"о том, что она регулируется настоящей Лицензией, а также условие, являющееся "
"дополнительным ограничением, вы можете удалить это условие. Если "
"лицензионный документ содержит дополнительное ограничение, но разрешает "
"перелицензирование или передачу в соответствии с настоящей Лицензией, вы "
"можете добавить к покрытому произведению материал, регулируемый условиями "
"такого лицензионного документа, при условии, что дальнейшее ограничение не "
"сохраняется после такого перелицензирования или передачи."

#: ../content/pages/license.md:block 62 (paragraph)
msgid ""
"If you add terms to a covered work in accord with this section, you must "
"place, in the relevant source files, a statement of the additional terms "
"that apply to those files, or a notice indicating where to find the "
"applicable terms."
msgstr ""
"Если вы добавляете условия к покрываемой работе в соответствии с этим "
"разделом, вы должны поместить в соответствующие исходные файлы заявление о "
"дополнительных условиях, которые применяются к этим файлам, или уведомление, "
"указывающее, где можно найти применимые условия."

#: ../content/pages/license.md:block 63 (paragraph)
msgid ""
"Additional terms, permissive or non-permissive, may be stated in the form of "
"a separately written license, or stated as exceptions; the above "
"requirements apply either way."
msgstr ""
"Дополнительные условия, разрешительные или не разрешительные, могут быть "
"изложены в виде отдельной письменной лицензии или указаны как исключения; "
"вышеуказанные требования применимы в любом случае."

#: ../content/pages/license.md:block 64 (header)
msgid "8. Termination."
msgstr "8. Прекращение."

#: ../content/pages/license.md:block 65 (paragraph)
msgid ""
"You may not propagate or modify a covered work except as expressly provided "
"under this License. Any attempt otherwise to propagate or modify it is void, "
"and will automatically terminate your rights under this License (including "
"any patent licenses granted under the third paragraph of section 11)."
msgstr ""
"Вы не имеете права распространять или изменять произведения, на которые "
"распространяется действие лицензии, за исключением случаев, прямо "
"предусмотренных настоящей Лицензией. Любая попытка распространить или "
"изменить произведение иным образом является недействительной и автоматически "
"прекращает ваши права по настоящей Лицензии (включая любые патентные "
"лицензии, предоставленные в соответствии с третьим абзацем раздела 11)."

#: ../content/pages/license.md:block 66 (paragraph)
msgid ""
"However, if you cease all violation of this License, then your license from "
"a particular copyright holder is reinstated (a) provisionally, unless and "
"until the copyright holder explicitly and finally terminates your license, "
"and (b) permanently, if the copyright holder fails to notify you of the "
"violation by some reasonable means prior to 60 days after the cessation."
msgstr ""
"Однако если вы прекратите все нарушения настоящей Лицензии, то ваша лицензия "
"от конкретного правообладателя будет восстановлена (а) временно, если только "
"правообладатель не прекратит действие вашей лицензии явно и окончательно, и "
"(б) навсегда, если правообладатель не уведомит вас о нарушении разумными "
"средствами до истечения 60 дней после прекращения."

#: ../content/pages/license.md:block 67 (paragraph)
msgid ""
"Moreover, your license from a particular copyright holder is reinstated "
"permanently if the copyright holder notifies you of the violation by some "
"reasonable means, this is the first time you have received notice of "
"violation of this License (for any work) from that copyright holder, and you "
"cure the violation prior to 30 days after your receipt of the notice."
msgstr ""
"Более того, ваша лицензия от конкретного правообладателя будет восстановлена "
"навсегда, если правообладатель уведомит вас о нарушении каким-либо разумным "
"способом, вы впервые получите уведомление о нарушении настоящей Лицензии ("
"для любой работы) от этого правообладателя и устраните нарушение до "
"истечения 30 дней после получения уведомления."

#: ../content/pages/license.md:block 68 (paragraph)
msgid ""
"Termination of your rights under this section does not terminate the "
"licenses of parties who have received copies or rights from you under this "
"License. If your rights have been terminated and not permanently reinstated, "
"you do not qualify to receive new licenses for the same material under "
"section 10."
msgstr ""
"Прекращение ваших прав в соответствии с этим разделом не прекращает действия "
"лицензий сторон, получивших от вас копии или права в соответствии с "
"настоящей Лицензией. Если ваши права были прекращены и не восстановлены на "
"постоянной основе, вы не имеете права на получение новых лицензий на тот же "
"материал в соответствии с разделом 10."

#: ../content/pages/license.md:block 69 (header)
msgid "9. Acceptance Not Required for Having Copies."
msgstr "9. Принятие не требуется для получения копий."

#: ../content/pages/license.md:block 70 (paragraph)
msgid ""
"You are not required to accept this License in order to receive or run a "
"copy of the Program. Ancillary propagation of a covered work occurring "
"solely as a consequence of using peer-to-peer transmission to receive a copy "
"likewise does not require acceptance. However, nothing other than this "
"License grants you permission to propagate or modify any covered work. These "
"actions infringe copyright if you do not accept this License. Therefore, by "
"modifying or propagating a covered work, you indicate your acceptance of "
"this License to do so."
msgstr ""
"Вы не обязаны принимать настоящую Лицензию для того, чтобы получить или "
"запустить копию Программы. Вспомогательное распространение покрытого "
"произведения, происходящее исключительно в результате использования "
"одноранговой передачи для получения копии, также не требует принятия. Однако "
"ничто, кроме настоящей Лицензии, не дает вам разрешения распространять или "
"изменять любое покрываемое произведение. Эти действия нарушают авторские "
"права, если вы не принимаете настоящую Лицензию. Таким образом, изменяя или "
"распространяя произведение, на которое распространяется авторское право, вы "
"подтверждаете свое согласие с настоящей Лицензией."

#: ../content/pages/license.md:block 71 (header)
msgid "10. Automatic Licensing of Downstream Recipients."
msgstr "10. Автоматическое лицензирование последующих получателей."

#: ../content/pages/license.md:block 72 (paragraph)
msgid ""
"Each time you convey a covered work, the recipient automatically receives a "
"license from the original licensors, to run, modify and propagate that work, "
"subject to this License. You are not responsible for enforcing compliance by "
"third parties with this License."
msgstr ""
"Каждый раз, когда вы передаете произведение, на которое распространяется "
"действие лицензии, получатель автоматически получает лицензию от "
"первоначальных лицензиаров на использование, изменение и распространение "
"этого произведения в соответствии с настоящей Лицензией. Вы не несете "
"ответственности за обеспечение соблюдения настоящей Лицензии третьими лицами."

#: ../content/pages/license.md:block 73 (paragraph)
msgid ""
"An \"entity transaction\" is a transaction transferring control of an "
"organization, or substantially all assets of one, or subdividing an "
"organization, or merging organizations. If propagation of a covered work "
"results from an entity transaction, each party to that transaction who "
"receives a copy of the work also receives whatever licenses to the work the "
"party's predecessor in interest had or could give under the previous "
"paragraph, plus a right to possession of the Corresponding Source of the "
"work from the predecessor in interest, if the predecessor has it or can get "
"it with reasonable efforts."
msgstr ""
"Сделка с организацией\" - это сделка по передаче контроля над организацией "
"или практически всех ее активов, или по разделению организации, или слиянию "
"организаций. Если распространение охватываемого произведения происходит в "
"результате сделки с организацией, каждая сторона этой сделки, получающая "
"копию произведения, также получает все лицензии на произведение, которые "
"предшественник заинтересованной стороны имел или мог предоставить в "
"соответствии с предыдущим пунктом, плюс право на владение соответствующим "
"источником произведения от предшественника заинтересованной стороны, если "
"предшественник имеет его или может получить его с помощью разумных усилий."

#: ../content/pages/license.md:block 74 (paragraph)
msgid ""
"You may not impose any further restrictions on the exercise of the rights "
"granted or affirmed under this License. For example, you may not impose a "
"license fee, royalty, or other charge for exercise of rights granted under "
"this License, and you may not initiate litigation (including a cross-claim "
"or counterclaim in a lawsuit) alleging that any patent claim is infringed by "
"making, using, selling, offering for sale, or importing the Program or any "
"portion of it."
msgstr ""
"Вы не вправе налагать какие-либо дополнительные ограничения на осуществление "
"прав, предоставленных или подтвержденных настоящей Лицензией. Например, вы "
"не можете взимать лицензионный сбор, роялти или другие платежи за "
"осуществление прав, предоставленных по настоящей Лицензии, и вы не можете "
"инициировать судебный процесс (включая встречный иск или иск в судебном "
"процессе), утверждая, что любое патентное требование нарушено в результате "
"создания, использования, продажи, предложения для продажи или импорта "
"Программы или любой ее части."

#: ../content/pages/license.md:block 75 (header)
msgid "11. Patents."
msgstr "11. Патенты."

#: ../content/pages/license.md:block 76 (paragraph)
msgid ""
"A \"contributor\" is a copyright holder who authorizes use under this "
"License of the Program or a work on which the Program is based. The work "
"thus licensed is called the contributor's \"contributor version\"."
msgstr ""
"Контрибьютор\" - правообладатель, разрешающий использование Программы или "
"произведения, на котором основана Программа, в соответствии с настоящей "
"Лицензией. Работа, лицензируемая таким образом, называется "
"\"версией контрибьютора\"."

#: ../content/pages/license.md:block 77 (paragraph)
msgid ""
"A contributor's \"essential patent claims\" are all patent claims owned or "
"controlled by the contributor, whether already acquired or hereafter "
"acquired, that would be infringed by some manner, permitted by this License, "
"of making, using, or selling its contributor version, but do not include "
"claims that would be infringed only as a consequence of further modification "
"of the contributor version. For purposes of this definition, \"control\" "
"includes the right to grant patent sublicenses in a manner consistent with "
"the requirements of this License."
msgstr ""
"Существенные патентные притязания\" соавтора - это все патентные притязания, "
"принадлежащие соавтору или контролируемые им, как уже приобретенные, так и "
"приобретаемые в будущем, которые будут нарушены каким-либо разрешенным "
"настоящей Лицензией способом создания, использования или продажи его версии, "
"но не включают притязания, которые будут нарушены только в результате "
"дальнейшей модификации версии соавтора. Для целей данного определения "
"\"контроль\" включает право на предоставление патентных сублицензий в "
"порядке, соответствующем требованиям настоящей Лицензии."

#: ../content/pages/license.md:block 78 (paragraph)
msgid ""
"Each contributor grants you a non-exclusive, worldwide, royalty-free patent "
"license under the contributor's essential patent claims, to make, use, sell, "
"offer for sale, import and otherwise run, modify and propagate the contents "
"of its contributor version."
msgstr ""
"Каждый автор предоставляет вам неисключительную, всемирную, безвозмездную "
"патентную лицензию в соответствии с основными патентными требованиями автора "
"на изготовление, использование, продажу, предложение к продаже, импорт и "
"иное использование, изменение и распространение содержимого его версии, "
"предоставленной автором."

#: ../content/pages/license.md:block 79 (paragraph)
msgid ""
"In the following three paragraphs, a \"patent license\" is any express "
"agreement or commitment, however denominated, not to enforce a patent (such "
"as an express permission to practice a patent or covenant not to sue for "
"patent infringement). To \"grant\" such a patent license to a party means to "
"make such an agreement or commitment not to enforce a patent against the "
"party."
msgstr ""
"В следующих трех параграфах \"патентная лицензия\" - это любое явно "
"выраженное соглашение или обязательство, как бы оно ни обозначалось, не "
"приводить в исполнение патент (например, явно выраженное разрешение на "
"применение патента на практике или соглашение не подавать иск о нарушении "
"патента). Предоставить\" такую патентную лицензию стороне означает заключить "
"такое соглашение или обязательство не приводить в исполнение патент в "
"отношении этой стороны."

#: ../content/pages/license.md:block 80 (paragraph)
msgid ""
"If you convey a covered work, knowingly relying on a patent license, and the "
"Corresponding Source of the work is not available for anyone to copy, free "
"of charge and under the terms of this License, through a publicly available "
"network server or other readily accessible means, then you must either (1) "
"cause the Corresponding Source to be so available, or (2) arrange to deprive "
"yourself of the benefit of the patent license for this particular work, or "
"(3) arrange, in a manner consistent with the requirements of this License, "
"to extend the patent license to downstream recipients. \"Knowingly relying\" "
"means you have actual knowledge that, but for the patent license, your "
"conveying the covered work in a country, or your recipient's use of the "
"covered work in a country, would infringe one or more identifiable patents "
"in that country that you have reason to believe are valid."
msgstr ""
"Если вы передаете произведение, заведомо полагаясь на патентную лицензию, а "
"Соответствующий источник произведения не доступен для копирования, бесплатно "
"и на условиях настоящей Лицензии, через общедоступный сетевой сервер или "
"другим легкодоступным способом, то вы должны либо (1) сделать "
"Соответствующий источник доступным, либо (2) организовать лишение себя "
"преимуществ патентной лицензии на данное произведение, либо (3) "
"организовать, в соответствии с требованиями настоящей Лицензии, "
"распространение патентной лицензии на последующих получателей. "
"\"Сознательно полагаясь\" означает, что вам известно, что без патентной "
"лицензии передача вами покрытого произведения в стране или использование "
"вашим получателем покрытого произведения в стране приведет к нарушению "
"одного или нескольких идентифицируемых патентов в этой стране, которые, по "
"вашему разумению, являются действительными."

#: ../content/pages/license.md:block 81 (paragraph)
msgid ""
"If, pursuant to or in connection with a single transaction or arrangement, "
"you convey, or propagate by procuring conveyance of, a covered work, and "
"grant a patent license to some of the parties receiving the covered work "
"authorizing them to use, propagate, modify or convey a specific copy of the "
"covered work, then the patent license you grant is automatically extended to "
"all recipients of the covered work and works based on it."
msgstr ""
"Если в рамках одной сделки или соглашения вы передаете или распространяете "
"путем обеспечения передачи покрытое произведение и предоставляете патентную "
"лицензию некоторым из сторон, получающим покрытое произведение, разрешая им "
"использовать, распространять, изменять или передавать конкретную копию "
"покрытого произведения, то предоставленная вами патентная лицензия "
"автоматически распространяется на всех получателей покрытого произведения и "
"произведений на его основе."

#: ../content/pages/license.md:block 82 (paragraph)
msgid ""
"A patent license is \"discriminatory\" if it does not include within the "
"scope of its coverage, prohibits the exercise of, or is conditioned on the "
"non-exercise of one or more of the rights that are specifically granted "
"under this License. You may not convey a covered work if you are a party to "
"an arrangement with a third party that is in the business of distributing "
"software, under which you make payment to the third party based on the "
"extent of your activity of conveying the work, and under which the third "
"party grants, to any of the parties who would receive the covered work from "
"you, a discriminatory patent license (a) in connection with copies of the "
"covered work conveyed by you (or copies made from those copies), or (b) "
"primarily for and in connection with specific products or compilations that "
"contain the covered work, unless you entered into that arrangement, or that "
"patent license was granted, prior to 28 March 2007."
msgstr ""
"Патентная лицензия является \"дискриминационной\", если она не включает в "
"сферу своего действия, запрещает осуществление или обусловливает "
"неосуществление одного или нескольких прав, которые конкретно "
"предоставляются в рамках настоящей Лицензии. Вы не имеете права передавать "
"работу, на которую распространяется действие Лицензии, если вы являетесь "
"стороной соглашения с третьим лицом, занимающимся распространением "
"программного обеспечения, по которому вы производите оплату третьему лицу в "
"зависимости от объема вашей деятельности по передаче работы, и по которому "
"третье лицо предоставляет права любой из сторон, которая получит от вас "
"работу, на которую распространяется действие Лицензии, дискриминационную "
"патентную лицензию (a) в связи с переданными вами копиями охватываемого "
"произведения (или копиями, сделанными с этих копий) или (b) главным образом "
"для и в связи с конкретными продуктами или компиляциями, содержащими "
"охватываемое произведение, если только вы не заключили такое соглашение или "
"такая патентная лицензия не была предоставлена до 28 марта 2007 года."

#: ../content/pages/license.md:block 83 (paragraph)
msgid ""
"Nothing in this License shall be construed as excluding or limiting any "
"implied license or other defenses to infringement that may otherwise be "
"available to you under applicable patent law."
msgstr ""
"Ничто в настоящей Лицензии не должно быть истолковано как исключение или "
"ограничение любой подразумеваемой лицензии или других способов защиты от "
"нарушения, которые могут быть доступны вам в соответствии с действующим "
"патентным законодательством."

#: ../content/pages/license.md:block 84 (header)
msgid "12. No Surrender of Others' Freedom."
msgstr "12. Не отказываться от чужой свободы."

#: ../content/pages/license.md:block 85 (paragraph)
msgid ""
"If conditions are imposed on you (whether by court order, agreement or "
"otherwise) that contradict the conditions of this License, they do not "
"excuse you from the conditions of this License. If you cannot convey a "
"covered work so as to satisfy simultaneously your obligations under this "
"License and any other pertinent obligations, then as a consequence you may "
"not convey it at all. For example, if you agree to terms that obligate you "
"to collect a royalty for further conveying from those to whom you convey the "
"Program, the only way you could satisfy both those terms and this License "
"would be to refrain entirely from conveying the Program."
msgstr ""
"Если на вас наложены условия (по решению суда, соглашению или иным образом), "
"которые противоречат условиям настоящей Лицензии, они не освобождают вас от "
"выполнения условий настоящей Лицензии. Если вы не можете передать "
"произведение, на которое распространяется действие настоящей Лицензии, таким "
"образом, чтобы одновременно выполнить свои обязательства по настоящей "
"Лицензии и любые другие соответствующие обязательства, то, как следствие, вы "
"можете не передавать его вообще. Например, если вы согласны с условиями, "
"обязывающими вас взимать роялти за дальнейшую передачу с тех, кому вы "
"передаете Программу, единственным способом удовлетворить и эти условия, и "
"настоящую Лицензию будет полный отказ от передачи Программы."

#: ../content/pages/license.md:block 86 (header)
msgid "13. Use with the GNU Affero General Public License."
msgstr "13. Использование с GNU Affero General Public License."

#: ../content/pages/license.md:block 87 (paragraph)
msgid ""
"Notwithstanding any other provision of this License, you have permission to "
"link or combine any covered work with a work licensed under version 3 of the "
"GNU Affero General Public License into a single combined work, and to convey "
"the resulting work. The terms of this License will continue to apply to the "
"part which is the covered work, but the special requirements of the GNU "
"Affero General Public License, section 13, concerning interaction through a "
"network will apply to the combination as such."
msgstr ""
"Несмотря на любые другие положения этой Лицензии, вы имеете право соединять "
"или объединять любое произведение, на которое распространяется действие "
"Лицензии, с произведением, лицензированным по версии 3 Стандартной "
"общественной лицензии GNU Affero, в единое комбинированное произведение и "
"передавать полученное произведение. Условия настоящей Лицензии продолжают "
"применяться к той части, которая является покрытым произведением, но особые "
"требования раздела 13 Стандартной общественной лицензии GNU Affero, "
"касающиеся взаимодействия через сеть, будут применяться к объединению как "
"таковому."

#: ../content/pages/license.md:block 88 (header)
msgid "14. Revised Versions of this License."
msgstr "14. Пересмотренные версии настоящей Лицензии."

#: ../content/pages/license.md:block 89 (paragraph)
msgid ""
"The Free Software Foundation may publish revised and/or new versions of the "
"GNU General Public License from time to time. Such new versions will be "
"similar in spirit to the present version, but may differ in detail to "
"address new problems or concerns."
msgstr ""
"Фонд свободного программного обеспечения может время от времени публиковать "
"пересмотренные и/или новые версии Стандартной общественной лицензии GNU. "
"Такие новые версии будут схожи по духу с настоящей версией, но могут "
"отличаться в деталях для решения новых проблем или вопросов."

#: ../content/pages/license.md:block 90 (paragraph)
msgid ""
"Each version is given a distinguishing version number. If the Program "
"specifies that a certain numbered version of the GNU General Public License "
"\"or any later version\" applies to it, you have the option of following the "
"terms and conditions either of that numbered version or of any later version "
"published by the Free Software Foundation. If the Program does not specify a "
"version number of the GNU General Public License, you may choose any version "
"ever published by the Free Software Foundation."
msgstr ""
"Каждой версии присваивается отличительный номер версии. Если в Программе "
"указано, что к ней применяется определенная нумерованная версия Стандартной "
"общественной лицензии GNU \"или любая более поздняя версия\", у вас есть "
"возможность следовать условиям либо этой нумерованной версии, либо любой "
"более поздней версии, опубликованной Фондом свободного программного "
"обеспечения. Если в Программе не указан номер версии Стандартной "
"общественной лицензии GNU, вы можете выбрать любую версию, когда-либо "
"опубликованную Фондом свободного программного обеспечения."

#: ../content/pages/license.md:block 91 (paragraph)
msgid ""
"If the Program specifies that a proxy can decide which future versions of "
"the GNU General Public License can be used, that proxy's public statement of "
"acceptance of a version permanently authorizes you to choose that version "
"for the Program."
msgstr ""
"Если в Программе указано, что доверенное лицо может решать, какие будущие "
"версии Стандартной общественной лицензии GNU могут быть использованы, "
"публичное заявление доверенного лица о принятии той или иной версии навсегда "
"уполномочивает вас выбрать эту версию для Программы."

#: ../content/pages/license.md:block 92 (paragraph)
msgid ""
"Later license versions may give you additional or different permissions. "
"However, no additional obligations are imposed on any author or copyright "
"holder as a result of your choosing to follow a later version."
msgstr ""
"Более поздние версии лицензии могут предоставлять вам дополнительные или "
"иные разрешения. Однако никакие дополнительные обязательства не налагаются "
"на автора или обладателя авторских прав в результате того, что вы решили "
"следовать более поздней версии."

#: ../content/pages/license.md:block 93 (header)
msgid "15. Disclaimer of Warranty."
msgstr "15. Отказ от гарантий."

#: ../content/pages/license.md:block 94 (paragraph)
msgid ""
"THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE "
"LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR "
"OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, "
"EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED "
"WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE "
"ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. "
"SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY "
"SERVICING, REPAIR OR CORRECTION."
msgstr ""
"НА ПРОГРАММУ НЕ ПРЕДОСТАВЛЯЕТСЯ НИКАКИХ ГАРАНТИЙ, НАСКОЛЬКО ЭТО РАЗРЕШЕНО "
"ДЕЙСТВУЮЩИМ ЗАКОНОДАТЕЛЬСТВОМ. ЕСЛИ ИНОЕ НЕ УКАЗАНО В ПИСЬМЕННОМ ВИДЕ, "
"ПРАВООБЛАДАТЕЛИ И/ИЛИ ДРУГИЕ СТОРОНЫ ПРЕДОСТАВЛЯЮТ ПРОГРАММУ \"КАК ЕСТЬ\" "
"БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ "
"ОГРАНИЧИВАЯСЬ, ПОДРАЗУМЕВАЕМЫМИ ГАРАНТИЯМИ ТОВАРНОГО СОСТОЯНИЯ И ПРИГОДНОСТИ "
"ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. ВЕСЬ РИСК, СВЯЗАННЫЙ С КАЧЕСТВОМ И ПРОИЗВОДИТЕЛЬНОСТЬЮ "
"ПРОГРАММЫ, ЛЕЖИТ НА ВАС. ЕСЛИ ПРОГРАММА ОКАЖЕТСЯ НЕИСПРАВНОЙ, ВЫ БЕРЕТЕ НА "
"СЕБЯ РАСХОДЫ НА ВСЕ НЕОБХОДИМОЕ ОБСЛУЖИВАНИЕ, РЕМОНТ ИЛИ ИСПРАВЛЕНИЕ."

#: ../content/pages/license.md:block 95 (header)
msgid "16. Limitation of Liability."
msgstr "16. Ограничение ответственности."

#: ../content/pages/license.md:block 96 (paragraph)
msgid ""
"IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL "
"ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE "
"PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY "
"GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE "
"OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA "
"OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD "
"PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), "
"EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF "
"SUCH DAMAGES."
msgstr ""
"НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ, ЗА ИСКЛЮЧЕНИЕМ СЛУЧАЕВ, ПРЕДУСМОТРЕННЫХ "
"ДЕЙСТВУЮЩИМ ЗАКОНОДАТЕЛЬСТВОМ ИЛИ ОГОВОРЕННЫХ В ПИСЬМЕННОМ ВИДЕ, НИ ОДИН "
"ПРАВООБЛАДАТЕЛЬ ИЛИ ЛЮБАЯ ДРУГАЯ СТОРОНА, ИЗМЕНЯЮЩАЯ И/ИЛИ ПЕРЕДАЮЩАЯ "
"ПРОГРАММУ, КАК ЭТО РАЗРЕШЕНО ВЫШЕ, НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ПЕРЕД ВАМИ ЗА "
"УЩЕРБ, ВКЛЮЧАЯ ЛЮБОЙ ОБЩИЙ, СПЕЦИАЛЬНЫЙ, СЛУЧАЙНЫЙ ИЛИ КОСВЕННЫЙ УЩЕРБ, "
"ВОЗНИКШИЙ В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ ИЛИ НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ "
"ПРОГРАММЫ (ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПОТЕРЮ ДАННЫХ, НЕТОЧНОСТЬ ДАННЫХ ИЛИ "
"УБЫТКИ, ПОНЕСЕННЫЕ ВАМИ ИЛИ ТРЕТЬИМИ ЛИЦАМИ, ИЛИ НЕСПОСОБНОСТЬ ПРОГРАММЫ "
"РАБОТАТЬ С ЛЮБЫМИ ДРУГИМИ ПРОГРАММАМИ), ДАЖЕ ЕСЛИ ТАКОЙ ПРАВООБЛАДАТЕЛЬ ИЛИ "
"ДРУГАЯ СТОРОНА БЫЛИ ПРЕДУПРЕЖДЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА."

#: ../content/pages/license.md:block 97 (header)
msgid "17. Interpretation of Sections 15 and 16."
msgstr "17. Толкование разделов 15 и 16."

#: ../content/pages/license.md:block 98 (paragraph)
msgid ""
"If the disclaimer of warranty and limitation of liability provided above "
"cannot be given local legal effect according to their terms, reviewing "
"courts shall apply local law that most closely approximates an absolute "
"waiver of all civil liability in connection with the Program, unless a "
"warranty or assumption of liability accompanies a copy of the Program in "
"return for a fee."
msgstr ""
"Если вышеуказанные отказ от гарантий и ограничение ответственности не могут "
"иметь юридической силы на местном уровне в соответствии с их условиями, "
"суды, рассматривающие дела, должны применять местное законодательство, "
"которое наиболее точно соответствует абсолютному отказу от любой гражданской "
"ответственности в связи с Программой, если только гарантия или принятие "
"ответственности не сопровождают копию Программы в обмен на вознаграждение."

#: ../content/pages/license.md:block 99 (paragraph)
msgid "END OF TERMS AND CONDITIONS"
msgstr "КОНЕЦ ПОЛОЖЕНИЙ И УСЛОВИЙ"

#: ../content/pages/license.md:block 100 (header)
msgid "How to Apply These Terms to Your New Programs"
msgstr "Как применить эти условия к вашим новым программам"

#: ../content/pages/license.md:block 101 (paragraph)
msgid ""
"If you develop a new program, and you want it to be of the greatest possible "
"use to the public, the best way to achieve this is to make it free software "
"which everyone can redistribute and change under these terms."
msgstr ""
"Если вы разрабатываете новую программу и хотите, чтобы она была максимально "
"полезной для общества, лучший способ добиться этого - сделать ее свободным "
"программным обеспечением, которое каждый может распространять и изменять на "
"этих условиях."

#: ../content/pages/license.md:block 102 (paragraph)
msgid ""
"To do so, attach the following notices to the program. It is safest to "
"attach them to the start of each source file to most effectively state the "
"exclusion of warranty; and each file should have at least the \"copyright\" "
"line and a pointer to where the full notice is found."
msgstr ""
"Для этого прикрепите к программе следующие уведомления. Безопаснее всего "
"прикреплять их в начале каждого исходного файла, чтобы наиболее эффективно "
"заявить об исключении гарантии; и каждый файл должен содержать, по крайней "
"мере, строку \"copyright\" и указатель на то, где можно найти полное "
"уведомление."

#: ../content/pages/license.md:block 104 (paragraph)
msgid ""
"Also add information on how to contact you by electronic and paper mail."
msgstr ""
"Также добавьте информацию о том, как с вами связаться по электронной и "
"бумажной почте."

#: ../content/pages/license.md:block 105 (paragraph)
msgid ""
"If the program does terminal interaction, make it output a short notice like "
"this when it starts in an interactive mode:"
msgstr ""
"Если программа осуществляет взаимодействие с терминалом, сделайте так, чтобы "
"при запуске в интерактивном режиме она выводила короткое уведомление вроде "
"этого:"

#: ../content/pages/license.md:block 107 (paragraph)
msgid ""
"The hypothetical commands \\`show w' and \\`show c' should show the "
"appropriate parts of the General Public License. Of course, your program's "
"commands might be different; for a GUI interface, you would use an \"about "
"box\"."
msgstr ""
"Гипотетические команды \\`show w' и \\`show c' должны отображать "
"соответствующие части Стандартной Общественной Лицензии. Конечно, команды "
"вашей программы могут быть другими; для GUI-интерфейса вы бы использовали "
"\"about box\"."

#: ../content/pages/license.md:block 108 (paragraph)
msgid ""
"You should also get your employer (if you work as a programmer) or school, "
"if any, to sign a \"copyright disclaimer\" for the program, if necessary. "
"For more information on this, and how to apply and follow the GNU GPL, see "
"<https://www.gnu.org/licenses/>."
msgstr ""
"Вам также следует попросить своего работодателя (если вы работаете "
"программистом) или школу, если таковая имеется, подписать "
"\"отказ от авторских прав\" на программу, если это необходимо. "
"Дополнительную информацию об этом, а также о том, как применять и соблюдать "
"GNU GPL, см. на сайте <https://www.gnu.org/licenses/>."

#: ../content/pages/license.md:block 109 (paragraph)
msgid ""
"The GNU General Public License does not permit incorporating your program "
"into proprietary programs. If your program is a subroutine library, you may "
"consider it more useful to permit linking proprietary applications with the "
"library. If this is what you want to do, use the GNU Lesser General Public "
"License instead of this License. But first, please read <https://www.gnu.org/"
"licenses/why-not-lgpl.html>."
msgstr ""
"Стандартная общественная лицензия GNU не разрешает включать вашу программу в "
"несвободные программы. Если ваша программа представляет собой библиотеку "
"подпрограмм, вы можете счесть более полезным разрешить связывать несвободные "
"приложения с библиотекой. Если вы хотите сделать именно это, используйте "
"вместо этой лицензии GNU Lesser General Public License. Но сначала, "
"пожалуйста, прочитайте <https://www.gnu.org/licenses/why-not-lgpl.html>."

#: ../content/pages/nbs.md:block 1 (paragraph)
msgid "Title: Network Boundary Shield"
msgstr "Title: Экранирование границы сети"

#: ../content/pages/nbs.md:block 2 (paragraph)
msgid ""
"The Network Boundary Shield (NBS) is a protection against attacks from an "
"external network (the Internet) to an internal network - especially against "
"a reconnaissance attack where a web browser is abused as a proxy. See, for "
"example, [our blog post on port scanning](/localportscanning/) or the "
"[ForcePoint report](https://www.forcepoint.com/blog/x-labs/attacking-"
"internal-network-public-internet-using-browser-proxy)."
msgstr ""
"Network Boundary Shield (NBS) - это защита от атак из внешней сети "
"(Интернета) во внутреннюю сеть - особенно от разведывательных атак, когда "
"веб-браузер используется в качестве прокси. Смотрите, например, "
"[нашу статью в блоге о сканировании портов](/localportscanning/) или "
"[отчет ForcePoint](https://www.forcepoint.com/blog/x-labs/attacking-internal-"
"network-public-internet-using-browser-proxy)."

#: ../content/pages/nbs.md:block 3 (paragraph)
msgid ""
"It works by filtering HTTP requests by means of the blocking webRequest API "
"to handle HTTP requests. This means that the processing of each HTTP request "
"is paused before it is analyzed and allowed (if it seems benign) or blocked "
"(if it is suspicious)."
msgstr ""
"Он работает путем фильтрации HTTP-запросов с помощью блокирующего API "
"webRequest для обработки HTTP-запросов. Это означает, что обработка каждого "
"HTTP-запроса приостанавливается, прежде чем он будет проанализирован и "
"разрешен (если он кажется доброкачественным) или заблокирован (если он "
"подозрителен)."

#: ../content/pages/nbs.md:block 4 (paragraph)
msgid ""
"The main goal of NBS is to prevent attacks where a public website requests a "
"resource from the internal network (e.g. the logo of the manufacturer of the "
"local router); NBS will detect that a web page hosted on the public Internet "
"is trying to connect to a local IP address. NBS only blocks HTTP requests "
"from a web page hosted on a public IP address to a private network resource; "
"the user can allow specific web pages to access local resources (e.g. when "
"using Intranet services)."
msgstr ""
"Основная цель NBS - предотвратить атаки, когда публичный веб-сайт "
"запрашивает ресурс из внутренней сети (например, логотип производителя "
"локального маршрутизатора); NBS обнаружит, что веб-страница, размещенная в "
"публичном Интернете, пытается подключиться к локальному IP-адресу. NBS "
"блокирует только HTTP-запросы от веб-страниц, размещенных на публичных IP-"
"адресах, к ресурсам частной сети; пользователь может разрешить определенным "
"веб-страницам доступ к локальным ресурсам (например, при использовании служб "
"Интранет)."

#: ../content/pages/nbs.md:block 5 (paragraph)
msgid ""
"NBS uses [CSV files provided by IANA](https://www.iana.org/assignments/"
"locally-served-dns-zones/locally-served-dns-zones.xml) to determine public "
"and local IP address prefixes. Both IPv4 and IPv6 is supported. The CSV "
"files are downloaded during the JShelter building process."
msgstr ""
"NBS использует [CSV-файлы, предоставленные IANA](https://www.iana.org/"
"assignments/locally-served-dns-zones/locally-served-dns-zones.xml) для "
"определения публичных и локальных префиксов IP-адресов. Поддерживаются как "
"IPv4, так и IPv6. Файлы CSV загружаются в процессе сборки JShelter."

#: ../content/pages/nbs.md:block 6 (paragraph)
msgid ""
"The NBS has a small performance footprint, which differs for each browser "
"implementation."
msgstr ""
"NBS имеет небольшую производительность, которая отличается для каждой "
"реализации браузера."

#: ../content/pages/nbs.md:block 7 (paragraph)
msgid ""
"More information about the Network Boundary Shield can be obtained from the "
"[master thesis by Pavel Pohner](https://www.vutbr.cz/studenti/zav-prace/"
"detail/129272) (in Czech)."
msgstr ""
"Более подробную информацию о Network Boundary Shield можно получить из "
"[магистерской диссертации Павла Похнера](https://www.vutbr.cz/studenti/"
"zav-prace/detail/129272) (на чешском языке)."

#: ../content/pages/new-wrapper.md:block 1 (paragraph)
msgid "Title: How to write a new wrapper"
msgstr "Title: Как написать новую обертку"

#: ../content/pages/new-wrapper.md:block 2 (paragraph)
msgid ""
"The primary focus of jShelter is to provide security and privacy oriented "
"wrappers of JavaScript APIs. As some of the code is very similar for each "
"wrapper, we use a unified approach to describe wrappers. The approach is "
"described below. This approach also helps to automatically modify `toString` "
"conversions of the wrapped APIs, i.e. a correctly written wrapper creates a "
"modified function but `wrapper.toString()` returns the original string."
msgstr ""
"Основной задачей jShelter является предоставление оберток для JavaScript "
"API, ориентированных на безопасность и конфиденциальность. Поскольку часть "
"кода в каждой обертке очень похожа, мы используем единый подход к описанию "
"оберток. Этот подход описан ниже. Этот подход также помогает автоматически "
"модифицировать преобразования `toString` обернутых API, т. е. правильно "
"написанная обертка создает модифицированную функцию, но `wrapper.toString()` "
"возвращает исходную строку."

#: ../content/pages/new-wrapper.md:block 4 (header)
msgid "File structure"
msgstr "Структура файла"

#: ../content/pages/new-wrapper.md:block 5 (unordered list)
msgid ""
"`wrapping.js` provides main facilities for interacting with specific "
"wrappers:"
msgstr ""
"`wrapping.js` предоставляет основные средства для взаимодействия с "
"конкретными обертками:"

#: ../content/pages/new-wrapper.md:block 5 (unordered list)
msgid ""
"`add_wrappers()` has to be provided with all the wrappers. Hence, a typical "
"module with wrappers of a web standard APIS. ends with a call of "
"`add_wrappers(list_of_all_wrappers_defined_by_the_module)`."
msgstr ""
"`add_wrappers()` должен быть предоставлен со всеми обертками. Таким образом, "
"типичный модуль с обертками веб-стандарта APIS. заканчивается вызовом "
"`add_wrappers(list_of_all_wrappers_defined_by_the_module)`."

#: ../content/pages/new-wrapper.md:block 5 (unordered list)
msgid ""
"`build_wrapping_code` contains all the registered wrappers. The keys are "
"referenced by the levels wrapper list. Do not modify the "
"`build_wrapping_code` variable directly, use `add_wrappers` instead."
msgstr ""
"`build_wrapping_code` содержит все зарегистрированные обертки. Ключи "
"ссылаются на список обёрток уровней. Не изменяйте переменную "
"`build_wrapping_code` напрямую, вместо этого используйте `add_wrappers`."

#: ../content/pages/new-wrapper.md:block 5 (unordered list)
msgid ""
"The module also provides common functions used by the wrappers, e.g. "
"`rounding_function` and `noise_function`."
msgstr ""
"Модуль также предоставляет общие функции, используемые обертками, например, "
"`округление_функции` и `шум_функции`."

#: ../content/pages/new-wrapper.md:block 5 (unordered list)
msgid ""
"`wrappingS-XYZ` are files dealing with APIs introduced by specific web or "
"ECMA standard. See the **naming conventions** for details on the XYZ part of "
"the name. See the **wrapper specification** section for the properties of "
"the wrapper objects."
msgstr ""
"`wrappingS-XYZ` - это файлы, посвященные API, представленным в конкретном "
"веб-стандарте или стандарте ECMA. Подробности о части имени XYZ см. в "
"разделе **Соглашения об именовании**. Свойства объектов-оберток см. в "
"разделе **спецификация обертки**."

#: ../content/pages/new-wrapper.md:block 6 (header)
msgid "Naming conventions"
msgstr "Соглашения об именовании"

#: ../content/pages/new-wrapper.md:block 7 (paragraph)
msgid ""
"jShelter adopted the naming conventions of the [Web API Manager](https://"
"github.com/pes10k/web-api-manager/tree/master/sources/standards). See the "
"paper:"
msgstr ""
"В jShelter приняты соглашения об именовании [Web API Manager](https://"
"github.com/pes10k/web-api-manager/tree/master/sources/standards). См. статью:"

#: ../content/pages/new-wrapper.md:block 8 (paragraph)
msgid ""
"Peter Snyder, Cynthia Taylor, and Chris Kanich, “[Most Websites Don’t Need "
"to Vibrate: A Cost–Benefit Approach to Improving Browser Security](https://"
"arxiv.org/abs/1708.08510),” in Proceedings of the [2017 ACM Conference on "
"Computer and Communications Security](https://www.sigsac.org/ccs/CCS2017/), "
"2017."
msgstr ""
"Питер Снайдер, Синтия Тейлор и Крис Канич, \"[Большинству веб-сайтов не "
"нужно вибрировать: Подход к улучшению безопасности браузеров с точки зрения "
"затрат и выгод](https://arxiv.org/abs/1708.08510),\" в Трудах "
"[2017 ACM конференции по компьютерной и коммуникационной безопасности]"
"(https://www.sigsac.org/ccs/CCS2017/), 2017."

#: ../content/pages/new-wrapper.md:block 9 (header)
msgid "Wrapper specification"
msgstr "Спецификация обертки"

#: ../content/pages/new-wrapper.md:block 10 (paragraph)
msgid ""
"Once you are set with the file name for your wrappers, you can start coding. "
"The basic structure of the file is:"
msgstr ""
"После того как вы определились с именем файла для обертки, можно приступать "
"к кодированию. Основная структура файла такова:"

#: ../content/pages/new-wrapper.md:block 12 (paragraph)
msgid ""
"The content of the module should be in an IIFE so that it does not polute "
"the global namespace. The property values are strings that are generally "
"interpreted either as identifiers or JS code."
msgstr ""
"Содержимое модуля должно быть в IIFE, чтобы не засорять глобальное "
"пространство имен. Значения свойств - это строки, которые обычно "
"интерпретируются либо как идентификаторы, либо как JS-код."

#: ../content/pages/new-wrapper.md:block 13 (paragraph)
msgid "Each wrapping object must have the following mandatory properties:"
msgstr ""
"Каждый объект-обертка должен обладать следующими обязательными свойствами:"

#: ../content/pages/new-wrapper.md:block 14 (unordered list)
msgid ""
"`parent_object` and `parent_object_property` are used to define the name of "
"the wrapping (`parent_object.parent_object_property`) that is referenced by "
"level wrappers. Additionally, it is used if `wrapper_prototype` is defined "
"to provide the object name to have the prototype changed. Finally, `Object."
"freeze` can be optionally called on `parent_object.parent_object_property`."
msgstr ""
"`parent_object` и `parent_object_property` используются для определения "
"имени обертки (`parent_object.parent_object_property`), на которую ссылаются "
"обертки уровня. Кроме того, он используется, если определен "
"`wrapper_prototype`, чтобы указать имя объекта для изменения прототипа. "
"Наконец, опционально можно вызвать `Object.freeze` на "
"`parent_object.parent_object_property`."

#: ../content/pages/new-wrapper.md:block 14 (unordered list)
msgid ""
"`apply_if` optionally provides a condition that needs to be fullfilled to "
"apply the wrapper. For example if a wrapper should be applied only when an "
"API already provides some information. For example, `apply_if: \"navigator."
"plugins.length > 0\"`."
msgstr ""
"Опционально `apply_if` указывает условие, которое должно быть выполнено для "
"применения обертки. Например, если обёртка должна применяться только тогда, "
"когда API уже предоставляет некоторую информацию. Например, `apply_if: "
"\"navigator.plugins.length > 0\"`."

#: ../content/pages/new-wrapper.md:block 14 (unordered list)
msgid ""
"`wrapped_objects` is a list of objects, each having the following properties "
"(1 mandatory, 2 optional, typically, wrappers use one of the optional names "
"in the wrapper code to access the original result of the call):"
msgstr ""
"`wrapped_objects` - это список объектов, каждый из которых имеет следующие "
"свойства (1 обязательное, 2 необязательных, обычно обертки используют одно "
"из необязательных имен в коде обертки для доступа к исходному результату "
"вызова):"

#: ../content/pages/new-wrapper.md:block 14 (unordered list)
msgid ""
"`original_name` (*mandatory*) - the original name of the object to be "
"wrapped. Do not mention `window` here!"
msgstr ""
"`original_name` (*обязательное*) - оригинальное имя объекта, который нужно "
"обернуть. Не упоминайте здесь `окно`!"

#: ../content/pages/new-wrapper.md:block 14 (unordered list)
msgid ""
"`wrapped_name` - the variable name that points to the actual original "
"object. Wrappers might need it for identity comparisons or other instance-"
"specific use cases. The variable name can be used by "
"`wrapping_function_body`, `helping_code` and other code fragments to "
"reference the original object. Note that this name is not available outside "
"the code generated by this wrappper."
msgstr ""
"`wrapped_name` - имя переменной, указывающее на реальный исходный объект. "
"Оно может понадобиться оберткам для сравнения идентичности или других "
"специфических для экземпляра случаев использования. Имя переменной может "
"быть использовано `wrapping_function_body`, `helping_code` и другими "
"участками кода для ссылки на исходный объект. Обратите внимание, что это имя "
"недоступно за пределами кода, сгенерированного этим обертывателем."

#: ../content/pages/new-wrapper.md:block 14 (unordered list)
msgid ""
"`callable_name` - is similar to the `wrapped_name` but the variable refers "
"to a proxy of the original object. The proxy intercepts calls and "
"automatically marshals parameters and return values. Wrappers MUST define "
"`callable_name` if the object is passed to other code like `Promise` objects "
"or callbacks. The variable is available only in the code generate by this "
"wrapper. `callable_name` is specifically **meant to be used for native "
"methods and functions** which the wrapper needs to call. This is especially "
"important if it **accepts callback arguments or returns `Promise` objects**: "
"invoking them through their `callable_name` automates complex steps "
"otherwise required for [sandboxed browser extensions to interact with web "
"pages](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/"
"WebExtensions/Sharing_objects_with_page_scripts)."
msgstr ""
"`callable_name` - аналогично `wrapped_name`, но переменная ссылается на "
"прокси исходного объекта. Прокси перехватывает вызовы и автоматически "
"маршализирует параметры и возвращаемые значения. Обертки ДОЛЖНЫ определять "
"`callable_name`, если объект передается другому коду, например, объектам "
"`Promise` или обратным вызовам. Переменная доступна только в коде, "
"генерируемом данной оберткой. `callable_name` специально **предназначена для "
"нативных методов и функций**, которые обёртка должна вызывать. Это особенно "
"важно, если она **принимает аргументы обратного вызова или возвращает "
"объекты `Promise`**: их вызов через их `callable_name` автоматизирует "
"сложные шаги, которые в противном случае требуются для "
"[sandboxed browser extensions to interact with web pages](https://"
"developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/"
"Sharing_objects_with_page_scripts)."

#: ../content/pages/new-wrapper.md:block 15 (paragraph)
msgid ""
"Generally speaking, use `wrapped_name` whenever you need to access the "
"original objects only inside the wrapper and you do not need to pass the "
"object to other code, such as `Promise` objects or callbacks. Compared to "
"`callable_name`, `wrapped_name` has less overhead and is the preferred way."
msgstr ""
"Вообще говоря, используйте `wrapped_name`, когда вам нужно получить доступ к "
"оригинальным объектам только внутри обертки и вам не нужно передавать объект "
"другому коду, например, объектам `Promise` или обратным вызовам. По "
"сравнению с `callable_name`, `wrapped_name` имеет меньше накладных расходов "
"и является более предпочтительным способом."

#: ../content/pages/new-wrapper.md:block 16 (paragraph)
msgid "Each wrapping object can have the following optional properties:"
msgstr "Каждый объект обертки может иметь следующие необязательные свойства:"

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`wrapping_function_args` is a string that is used as an argument list for "
"the wrapping function. Typically this string reflects the parameters of the "
"original method, it can be an empty string, a list of parameters, such as "
"`\"source, target, color\"` or `\"...args\"`."
msgstr ""
"`wrapping_function_args` - это строка, которая используется в качестве "
"списка аргументов для функции-обертки. Обычно эта строка отражает параметры "
"исходного метода, она может быть пустой строкой, списком параметров, "
"например `\" исходный, целевой, цветной\"` или `\"...args\"`."

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`wrapping_function_body` specified the behaviour of the wrapped function. "
"You can provide a completely different implementation but often, you want to "
"refer to the original implementation (available in the variable "
"`wrapped_name`) and modify the original implementation."
msgstr ""
"`wrapping_function_body` задает поведение обернутой функции. Вы можете "
"предоставить совершенно другую реализацию, но часто вы хотите ссылаться на "
"исходную реализацию (доступную в переменной `wrapped_name`) и модифицировать "
"ее."

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`wrapping_code_function_name` can be used to call the wrapping function from "
"the other code inside the wrapper. For example to create another wrapper "
"similar to the original wrapper."
msgstr ""
"Имя функции `wrapping_code_function_name` можно использовать для вызова "
"функции обертки из другого кода внутри обертки. Например, чтобы создать "
"другую обертку, аналогичную оригинальной."

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`wrapper_prototype` - if defined, `parent_object.parent_object_property` "
"prototype is set to the prototype identifier provided by `wrapper_prototype`."
msgstr ""
"`wrapper_prototype` - если определено, прототип "
"`parent_object.parent_object_property` устанавливается в идентификатор "
"прототипа, указанный в `wrapper_prototype`."

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`original_function` if not provided, it defaults to `parent_object."
"parent_object_property`. This name is used for overloading the `toString` "
"function. Instead of the wrapping code, `toString` returns the content of "
"the original function."
msgstr ""
"`оригинальная_функция`, если она не указана, то по умолчанию используется "
"`parent_object.parent_object_property`. Это имя используется для перегрузки "
"функции `toString`. Вместо кода обертки `toString` возвращает содержимое "
"исходной функции."

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`helping_code` provides you an option to define code available for both "
"`replacement` function and `post_wrapping_code`"
msgstr ""
"`helping_code` предоставляет вам возможность определить код, доступный как "
"для функции `замена`, так и для `post_wrapping_code`"

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`replace_original_function` is used to control which function should be "
"replaced"
msgstr ""
"`replace_original_function` используется для управления тем, какая функция "
"должна быть заменена"

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`post_replacement_code` Allows to provide additional code with the access to "
"the original function and to the wrapped function"
msgstr ""
"`post_replacement_code` Позволяет предоставить дополнительный код с доступом "
"к оригинальной функции и к обернутой функции"

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`freeze` if set to `true` causes the API to be freezed. It should not be "
"necessary if the wrapping is performed at the right level of the object's "
"prototype chain (i.e. where the property to be modified was originally "
"defined, i.e. usually in the object's prototype). Use this option with "
"caution, only if strictly needed, because native APIs are configurable "
"(otherwise our wrapping couldn't work) and therefore freezing them "
"introduces a \"weirdness\", exploitable for fingerprinting."
msgstr ""
"`freeze`, если установлено значение `true`, приводит к замораживанию API. "
"Это не обязательно, если обёртка выполняется на нужном уровне цепочки "
"прототипов объекта (т.е. там, где изначально было определено изменяемое "
"свойство, т.е. обычно в прототипе объекта). Используйте эту опцию с "
"осторожностью, только в случае крайней необходимости, поскольку нативные API "
"настраиваются (иначе наша обёртка не могла бы работать), и поэтому их "
"замораживание вносит \"странности\", которые можно использовать для "
"отпечатков пальцев."

#: ../content/pages/new-wrapper.md:block 17 (unordered list)
msgid ""
"`post_wrapping_code` is a list of additional wrapping objects with a similar "
"structure to the wrappers, see the section bellow."
msgstr ""
"`post_wrapping_code` - это список дополнительных объектов-оберток, имеющих "
"структуру, аналогичную оберткам, см. раздел ниже."

#: ../content/pages/new-wrapper.md:block 18 (header)
msgid "Post wrapping code"
msgstr "Обертывание кода"

#: ../content/pages/new-wrapper.md:block 19 (paragraph)
msgid "Complex wrappers need to provide additional wrapping code."
msgstr "Сложные обертки должны предоставлять дополнительный код обертки."

#: ../content/pages/new-wrapper.md:block 20 (paragraph)
msgid ""
"You can make the generation of the post wrapping code generation conditional "
"by using `apply_if`, e.g.:"
msgstr ""
"Вы можете сделать генерацию кода пост-обертки условной, используя `apply_if`"
", например:"

#: ../content/pages/new-wrapper.md:block 22 (paragraph)
msgid "(`enableGeolocation` is a Booloean variable)"
msgstr "(`enableGeolocation` - переменная Booloean)"

#: ../content/pages/new-wrapper.md:block 23 (paragraph)
msgid "Currently jShelter supports additional wrapping of:"
msgstr "В настоящее время jShelter поддерживает дополнительные обертывания:"

#: ../content/pages/new-wrapper.md:block 24 (unordered list)
msgid ""
"Definition of a function (used, for example, to reintroduce `Date.now()` "
"function to the wrapped `Date` object)"
msgstr ""
"Определение функции (используется, например, для повторного внедрения "
"функции `Date.now()` в обернутый объект `Дата`)"

#: ../content/pages/new-wrapper.md:block 26 (unordered list)
msgid ""
"Export a function from the wrapping namespace (currently not used, the "
"following code exposes the unwrapped, i.e. original, version of Date.now to "
"page scripts)"
msgstr ""
"Экспорт функции из пространства имен обертки (в настоящее время не "
"используется, следующий код предоставляет скриптам страницы развернутую, "
"т.е. оригинальную, версию Date.now)"

#: ../content/pages/new-wrapper.md:block 28 (unordered list)
msgid ""
"Redefine an object property (used to prevent leaking iframe properties to "
"the unwrapped objects):"
msgstr ""
"Переопределите свойство объекта (используется для предотвращения утечки "
"свойств iframe в разворачиваемые объекты):"

#: ../content/pages/new-wrapper.md:block 30 (unordered list)
msgid "Deleting a property (used when you want to completely disable an API):"
msgstr ""
"Удаление свойства (используется, когда вы хотите полностью отключить API):"

#: ../content/pages/new-wrapper.md:block 32 (header)
msgid "The WrapHelper API"
msgstr "API для WrapHelper"

#: ../content/pages/new-wrapper.md:block 33 (paragraph)
msgid ""
"A `WrapHelper` object is globally available to wrappers code, exposing some "
"methods and properties which are mostly used internally by the code builders "
"to automate tasks such as handling [Firefox's content script sandbox]"
"(https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/"
"Sharing_objects_with_page_scripts) or making replacement objects look as "
"native as possible. However a few of them may be useful to complex wrappers "
"or in edge case not covered by `callable_name` and other declarative object "
"replacement / property definition wrapper constructs:"
msgstr ""
"Объект `WrapHelper` глобально доступен для кода обёрток, раскрывая некоторые "
"методы и свойства, которые в основном используются внутренними сборщиками "
"кода для автоматизации таких задач, как работа с "
"[Firefox's content script sandbox](https://developer.mozilla.org/en-US/docs/"
"Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts) или "
"придание объектам замены как можно более естественного вида. Однако "
"некоторые из них могут быть полезны для сложных обёрток или в крайних "
"случаях, не охваченных `callable_name` и другими декларативными "
"конструкциями обёрток для замены объектов / определения свойств:"

#: ../content/pages/new-wrapper.md:block 34 (unordered list)
msgid ""
"`WrapHelper.shared: {}` - a \"bare\" JavaScript object which a wrapper can "
"use to share information with other wrappers (e.g. to coordinate behavior "
"between related parts of the same API requiring multiple wrappings) by "
"attaching its own data objects as properties. **Warning**: namespacing is "
"not enforced and up to the wrapper implementor, but obviously recommended."
msgstr ""
"`WrapHelper.shared: {}` - \"голый\" объект JavaScript, который обертка может "
"использовать для обмена информацией с другими обертками (например, для "
"координации поведения между связанными частями одного и того же API, "
"требующими нескольких оберток), присоединяя свои собственные объекты данных "
"в качестве свойств. **Предупреждение**: распределение имен не является "
"обязательным и зависит от исполнителя обертки, но, очевидно, рекомендуется."

#: ../content/pages/new-wrapper.md:block 34 (unordered list)
msgid ""
"`WrapHelper.overlay(obj, data)` - Proxies the prototype of the `obj` object "
"in order to return the properties of the `data` object as if they were "
"native properties (e.g. as if they were returned by getters on the prototype "
"chain, rather than defined on the instance). This allows spoofing some "
"native objects data in a less detectable / fingerprintable way than by using "
"`Object.defineProperty()`. See `wrappingS-MCS.js` for an example."
msgstr ""
"`WrapHelper.overlay(obj, data)` - Проксирует прототип объекта `obj`, чтобы "
"вернуть свойства объекта `data` так, как если бы они были нативными "
"свойствами (например, как если бы они возвращались геттерами на цепочке "
"прототипа, а не определялись на экземпляре). Это позволяет подделать данные "
"некоторых нативных объектов менее заметным/отпечатываемым способом, чем при "
"использовании `Object.defineProperty()`. Пример смотрите в файле `wrappingS-"
"MCS.js`."

#: ../content/pages/new-wrapper.md:block 34 (unordered list)
msgid ""
"`WrapHelper.forPage(obj)` - it's mostly used internally and transparently by "
"`code_builder.js`, but may be useful to very complex proxies in edge cases "
"needing to explicitly prepare an object/function created in [Firefox's "
"sandboxed content script environment](https://developer.mozilla.org/en-US/"
"docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts) to be "
"consumed/called from the page context, and to make replacements for native "
"objects and functions provided by the wrappers look as much native as "
"possible (on Chromium, too). In most cases, however, this gets automated by "
"the code builders replacing Object methods with their WrapHelper counterpart "
"in the wrapper sources and by proxying \"callable_name\" function references "
"through `WrapHelper.pageAPI()` (see below)."
msgstr ""
"`WrapHelper.forPage(obj)` - в основном используется внутри и прозрачно "
"`code_builder.js`, но может быть полезен для очень сложных прокси в крайних "
"случаях, когда нужно явно подготовить объект/функцию, созданную в "
"[среде скриптов контента в песочнице Firefox](https://developer.mozilla.org/"
"en-US/docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts), "
"к потреблению/вызову из контекста страницы, и чтобы замены нативных объектов "
"и функций, предоставляемые обертками, выглядели как можно более нативными ("
"на Chromium тоже). В большинстве случаев, однако, это автоматизируется "
"сборщиками кода, которые заменяют методы Object их аналогами WrapHelper в "
"исходниках оберток и проксируют ссылки на функции \"callable_name\" через "
"`WrapHelper.pageAPI()` (см. ниже)."

#: ../content/pages/new-wrapper.md:block 34 (unordered list)
msgid ""
"`WrapHelper.pageAPI(f)` - proxies the function/method f so that arguments "
"and return values, and especially callbacks and `Promise` objects, are "
"recursively managed in order to transparently marshal objects back and forth "
"[Firefox's sandbox for extensions (https://developer.mozilla.org/en-US/docs/"
"Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts). **Wrapper "
"implementors should almost never need to use this API directly**, since any "
"function referenced via its \"callable_name\" goes automatically through it."
msgstr ""
"`WrapHelper.pageAPI(f)` - проксирует функцию/метод f таким образом, что "
"аргументы и возвращаемые значения, и особенно обратные вызовы и объекты "
"`Promise`, управляются рекурсивно для прозрачного маршала объектов туда и "
"обратно [Firefox's sandbox for extensions (https://developer.mozilla.org/"
"en-US/docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts). "
"**Реализаторам обертки почти никогда не нужно использовать этот API "
"напрямую**, поскольку любая функция, на которую ссылаются через ее "
"\"callable_name\", автоматически проходит через него."

#: ../content/pages/new-wrapper.md:block 35 (header)
msgid "The generated wrapper structure"
msgstr "Созданная структура обертки"

#: ../content/pages/new-wrapper.md:block 36 (paragraph)
msgid ""
"To get a better idea how the code is generated see the following pseudo "
"code. Please do not refer to any name created by the code builders from your "
"wrapper. Use your custom names. If it is not available, please, open an "
"issue where you explain what you are trying to achieve. It is probable that "
"we will introduce a new property that allows to provide your name to the "
"code builders. The code lives in an anonymous namespaces, so variables "
"introduced here do not directly leak to page scripts."
msgstr ""
"Чтобы лучше понять, как генерируется код, посмотрите следующий псевдокод. "
"Пожалуйста, не ссылайтесь на имена, созданные сборщиками кода из вашей "
"обертки. Используйте свои собственные имена. Если это недоступно, "
"пожалуйста, откройте вопрос, в котором объясните, чего вы пытаетесь достичь. "
"Вероятно, мы введем новое свойство, которое позволит указывать свое имя "
"сборщикам кода. Код живет в анонимном пространстве имен, поэтому переменные, "
"введенные здесь, не просачиваются напрямую в скрипты страницы."

#: ../content/pages/new-wrapper.md:block 38 (header)
msgid "Compiling the wrappers"
msgstr "Соединение оберток"

#: ../content/pages/new-wrapper.md:block 39 (paragraph)
msgid ""
"Of course the wrappers need to be compiled to JavaScript before inserting "
"the code to page scripts. See `code_builders.js`."
msgstr ""
"Конечно, обертки должны быть скомпилированы в JavaScript перед вставкой кода "
"в сценарии страницы. Смотрите `code_builders.js`."

#: ../content/pages/new-wrapper.md:block 40 (header)
msgid "Registering a new wrapper"
msgstr "Регистрация новой обертки"

#: ../content/pages/new-wrapper.md:block 41 (paragraph)
msgid ""
"`fix_manifest.sh` automatically adds all modules with file name of "
"`wrapping*.js` to the manifest.json of the extension. There is no need for "
"any additional action."
msgstr ""
"`fix_manifest.sh` автоматически добавляет все модули с именем файла "
"`wrapping*.js` в manifest.json расширения. Никаких дополнительных действий "
"не требуется."

#: ../content/pages/new-wrapper.md:block 42 (header)
msgid ""
"Register new wrapper to be used by the extension in a level or available in "
"the GUI."
msgstr ""
"Зарегистрируйте новую обертку, которая будет использоваться расширением на "
"уровне или доступна в графическом интерфейсе."

#: ../content/pages/new-wrapper.md:block 43 (paragraph)
msgid ""
"See `levels.js` and its list `wrapping_groups.groups`. Once you add your "
"wrapper to an existing group or create a new group, the wrapper becomes "
"available in the built-in levels containing the group and in the GUI for "
"custom levels."
msgstr ""
"Смотрите `levels.js` и его список `wrapping_groups.groups`. Как только вы "
"добавите свою обертку в существующую группу или создадите новую группу, она "
"станет доступна во встроенных уровнях, содержащих эту группу, и в "
"графическом интерфейсе для пользовательских уровней."

#: ../content/pages/new-wrapper.md:block 44 (header)
msgid "Describe the wrapper for Doxygen documentation"
msgstr "Опишите обертку для документации Doxygen"

#: ../content/pages/new-wrapper.md:block 45 (paragraph)
msgid "Describe what the wrapper tries to accomplish and its approach:"
msgstr "Опишите, чего пытается добиться обертка и каков ее подход:"

#: ../content/pages/new-wrapper.md:block 46 (unordered list)
msgid ""
"Add Doxygen comment at the top of the file with the following structure:"
msgstr ""
"Добавьте комментарий Doxygen в верхней части файла со следующей структурой:"

#: ../content/pages/new-wrapper.md:block 48 (unordered list)
msgid "Describe helping functions and `wrapping_function_body`"
msgstr "Опишите помогающие функции и `wrapping_function_body`"

#: ../content/pages/new-wrapper.md:block 48 (unordered list)
msgid ""
"Use Doxygen command `\\fn fake wrapped.object` for each "
"`wrapping_function_body`"
msgstr ""
"Используйте команду Doxygen `\\fn fake wrapped.object` для каждой "
"`wrapping_function_body`"

#: ../content/pages/new-wrapper.md:block 48 (unordered list)
msgid "Use the following structure for function comments:"
msgstr "Используйте следующую структуру для комментариев к функциям:"

#: ../content/pages/new-wrapper.md:block 50 (header)
msgid "Write unit tests or integration tests for the wrapper"
msgstr "Напишите модульные или интеграционные тесты для обертки"

#: ../content/pages/new-wrapper.md:block 51 (paragraph)
msgid ""
"Follow instructions for [unit testing](/unit_tests/) and [integration "
"testing](/integration_tests/)."
msgstr ""
"Следуйте инструкциям для [модульного тестирования](/unit_tests/) и "
"[интеграционного тестирования](/integration_tests/)."

#: ../content/pages/permissions.md:block 1 (paragraph)
msgid "Title: Permissions"
msgstr "Title: Разрешения"

#: ../content/pages/permissions.md:block 2 (paragraph)
msgid "JShelter requires these permissions:"
msgstr "JShelter требует этих разрешений:"

#: ../content/pages/permissions.md:block 3 (unordered list)
msgid "**storage**: for storing extension configuration and user options"
msgstr ""
"**хранилище**: для хранения конфигурации расширений и пользовательских опций"

#: ../content/pages/permissions.md:block 3 (unordered list)
msgid "**tabs**: for updating the extension's icon badge on tab change"
msgstr "**tabs**: для обновления значка расширения при смене вкладок"

#: ../content/pages/permissions.md:block 3 (unordered list)
msgid ""
"**webRequest, webRequestBlocking, all_urls**: for modifying JavaScript "
"objects and APIs on all pages, and for capturing and blocking malicious HTTP "
"requests"
msgstr ""
"**webRequest, webRequestBlocking, all_urls**: для модификации объектов "
"JavaScript и API на всех страницах, а также для перехвата и блокировки "
"вредоносных HTTP-запросов"

#: ../content/pages/permissions.md:block 3 (unordered list)
msgid ""
"**dns**: for resolving DNS queries in Firefox version of HTTP request shield"
msgstr ""
"**dns**: для разрешения DNS-запросов в Firefox-версии экрана HTTP-запросов"

#: ../content/pages/permissions.md:block 3 (unordered list)
msgid "**notifications**: for notifying users on blocked HTTP requests/hosts"
msgstr ""
"**уведомления**: для уведомления пользователей о заблокированных "
"HTTP-запросах/хостах"

#: ../content/pages/permissions.md:block 3 (unordered list)
msgid ""
"**browsingData**: Fingerprint Detector needs to remove data from any storage "
"that can save the fingerprint"
msgstr ""
"**browsingData**: Детектор отпечатков пальцев должен удалить данные из "
"любого хранилища, в котором может быть сохранен отпечаток пальца"

#: ../content/pages/permissions.md:block 3 (unordered list)
msgid ""
"**webNavigation**: for deploying wrappers as early as possible to avoid page "
"scripts accessing unwrapped objects. NSCL use a different approch for this "
"purpose in Chromium-based browsers. All brosers need the permission to apply "
"`window.name` protection"
msgstr ""
"**webNavigation**: для развертывания оберток как можно раньше, чтобы "
"избежать обращения скриптов страницы к необернутым объектам. NSCL использует "
"другой подход для этой цели в браузерах на базе Chromium. Всем броузерам "
"необходимо разрешение на применение защиты `window.name`"

#: ../content/pages/permissions.md:block 4 (paragraph)
msgid ""
"jShelter stores all configuration data in the browser or in the user "
"account. It does not upload any data to our servers."
msgstr ""
"jShelter хранит все данные конфигурации в браузере или в учетной записи "
"пользователя. Он не загружает никаких данных на наши серверы."

#: ../content/pages/threatmodel.md:block 1 (paragraph)
msgid "Title: Threat model"
msgstr "Title: Модель угрозы"

#: ../content/pages/threatmodel.md:block 2 (paragraph)
msgid ""
"JShelter focuses on threats that target mainstream internet users. Attackers "
"derive information and create attacks aimed at mainstream browsers, using "
"approaches that minimize the performance requirements for such attacks. For "
"example, we can consider an adversary interested in identifying the user for "
"targeted advertisement purposes. So, they will need to identify the user "
"quickly to display an advertisement; it does not make sense for such an "
"attacker to deploy scripts that take minutes to compute a fingerprint."
msgstr ""
"JShelter фокусируется на угрозах, направленных на обычных пользователей "
"Интернета. Злоумышленники добывают информацию и создают атаки, направленные "
"на основные браузеры, используя подходы, которые минимизируют требования к "
"производительности таких атак. Например, мы можем рассмотреть противника, "
"заинтересованного в идентификации пользователя в целях целевой рекламы. "
"Таким образом, для показа рекламы ему необходимо быстро идентифицировать "
"пользователя; такому злоумышленнику не имеет смысла развертывать скрипты, "
"которым требуются минуты для вычисления отпечатка пальца."

#: ../content/pages/threatmodel.md:block 3 (header)
msgid "Fingerprinting countermeasures"
msgstr "Противодействие отпечаткам пальцев"

#: ../content/pages/threatmodel.md:block 4 (paragraph)
msgid ""
"Our adversary might try to apply low-performance counterattacks. For "
"example, previous literature identified extensions that modify calls in a "
"wrong position in the JavaScript prototype chain. It is straightforward for "
"an adversary to use `Performance.prototype.now()` instead of `performance."
"now()` so we apply code that modifies the original method, `Performance."
"prototype.now()`, in the example. Another example is an adversary running "
"canvas fingerprinting several times. If the adversary receives different "
"results, they can compute an average value (or a minimal or maximal value) "
"and use this information to derive the correct fingerprint. As these "
"modifications to fingerprinting are not performance-heavy, we consider them "
"in the JShelter threat model."
msgstr ""
"Наш противник может попытаться применить низкопроизводительные контратаки. "
"Например, в предыдущей литературе были найдены расширения, которые "
"модифицируют вызовы в неправильной позиции в цепочке прототипов JavaScript. "
"Для противника не составит труда использовать `Performance.prototype.now()` "
"вместо `performance.now()`, поэтому в примере мы применяем код, "
"модифицирующий оригинальный метод `Performance.prototype.now()`. Другой "
"пример - противник несколько раз запускает отпечатки пальцев на холсте. Если "
"противник получает разные результаты, он может вычислить среднее значение ("
"или минимальное, или максимальное) и использовать эту информацию для "
"получения правильного отпечатка. Поскольку эти модификации отпечатков "
"пальцев не требуют большой производительности, мы рассматриваем их в модели "
"угроз JShelter."

#: ../content/pages/threatmodel.md:block 5 (paragraph)
msgid ""
"It is well-known that some extensions modify the environment of the browser "
"or the web page. For example, password managers add buttons to fill in "
"passwords automatically. Page tweakers add additional buttons to web pages "
"to simplify common tasks or add information likely wanted by a user. "
"JShelter expects such users and tries to help such users from being "
"identifiable. For example, a dumb fingerprinter can combine all "
"fingerprintable data to create a single number. Such a fingerprinter would "
"unintentionally create a unique fingerprint of the users with a unique set "
"of extensions. Such a dumb fingerprinter would not link different visits of "
"the user with Jshelter. JShelter should confuse a more advanced "
"fingerprinter if they identify single or multiple users."
msgstr ""
"Хорошо известно, что некоторые расширения изменяют окружение браузера или "
"веб-страницы. Например, менеджеры паролей добавляют кнопки для "
"автоматического заполнения паролей. Настройщики страниц добавляют "
"дополнительные кнопки на веб-страницы, чтобы упростить выполнение обычных "
"задач или добавить информацию, которая, вероятно, нужна пользователю. "
"JShelter ожидает таких пользователей и пытается помочь им не быть "
"идентифицированными. Например, тупой дактилоскопист может объединить все "
"данные отпечатков пальцев, чтобы создать единый номер. Такой дактилоскопист "
"непреднамеренно создаст уникальный отпечаток пальца пользователя с "
"уникальным набором расширений. Такой дактилоскопист не свяжет различные "
"визиты пользователя с Jshelter. JShelter должен сбить с толку более "
"продвинутого фингерпринтера, если он идентифицирует одного или нескольких "
"пользователей."

#: ../content/pages/threatmodel.md:block 6 (paragraph)
msgid ""
"We also want to provide an option that will limit the information that is "
"readable from the computer, even if such behaviour generally results in "
"better fingerprintability. For example, a user might want to disable canvas "
"operations for pages that should not use canvas (from the user's "
"standpoint). As the webpage is in a better position to deploy "
"countermeasures for JShelter anti-fingerprinting techniques, the user might "
"want the page to always read an empty, white, or random canvas. That would "
"limit the information available for the web page at the cost of giving the "
"page an easy way to determine that some countermeasures are in place. Our "
"aim is to explain the consequences of taking such an option but letting the "
"user decide for themselves."
msgstr ""
"Мы также хотим предоставить опцию, которая ограничивает информацию, "
"считываемую с компьютера, даже если такое поведение в целом приводит к "
"улучшению отпечатков пальцев. Например, пользователь может захотеть "
"отключить операции с холстом для страниц, которые не должны использовать "
"холст (с точки зрения пользователя). Поскольку веб-страница находится в "
"лучшем положении для развертывания мер противодействия техникам JShelter по "
"борьбе с отпечатками пальцев, пользователь может захотеть, чтобы страница "
"всегда читала пустой, белый или случайный холст. Это ограничило бы "
"информацию, доступную для веб-страницы, ценой предоставления ей легкого "
"способа определить, что некоторые контрмеры уже приняты. Наша цель - "
"объяснить последствия принятия такого варианта, но предоставить пользователю "
"возможность решать самому."

#: ../content/pages/threatmodel.md:block 7 (paragraph)
msgid ""
"Previous literature identified that it is easy for an adversary to detect "
"inconsistencies in API calls. For example, a fingerprinter can learn the "
"operating system from HTTP headers, `navigator.oscpu`, installed fonts, "
"results of mathematical operations, and other techniques. We do not want to "
"replace such techniques as we do not have the resources to create a "
"consistent environment."
msgstr ""
"В предыдущей литературе указывалось, что противнику легко обнаружить "
"несоответствия в вызовах API. Например, fingerprinter может узнать "
"операционную систему по HTTP-заголовкам, `navigator.oscpu`, установленным "
"шрифтам, результатам математических операций и другим методам. Мы не хотим "
"заменять такие техники, поскольку у нас нет ресурсов для создания "
"непротиворечивой среды."

#: ../content/pages/threatmodel.md:block 8 (paragraph)
msgid ""
"Besides fingerprinting, JShelter also focuses on other threats appearing on "
"the web. For example, JShelter prevents web pages from turning the browser "
"into a proxy to the local [network](/localportscanning/). The user should be "
"able to decouple anti-fingerprinting countermeasures and other "
"countermeasures."
msgstr ""
"Помимо отпечатков пальцев, JShelter также фокусируется на других угрозах, "
"появляющихся в Интернете. Например, JShelter не позволяет веб-страницам "
"превращать браузер в прокси для доступа к локальной [сети] (/"
"localportscanning/). Пользователь должен уметь разделять меры по борьбе с "
"отпечатками пальцев и другие меры противодействия."

#: ../content/pages/threatmodel.md:block 9 (header)
msgid "Limitations and mitigation methods"
msgstr "Ограничения и методы смягчения последствий"

#: ../content/pages/threatmodel.md:block 10 (paragraph)
msgid ""
"We do not have the resources to create a bullet-proof solution that "
"eliminates all side channels. For example, we expect that an adversary will "
"be able to detect that something strange is happening in the browser. For "
"example, an adversary might fill a canvas with content controlled by the "
"adversary and detect modifications after reading back the content. Or, the "
"adversary might time the length of each/some operation(s). We modify the "
"time readings, and the countermeasures take some time. Hence, we expect that "
"an adversary will be able to detect that the user has modified the "
"JavaScript environment with a patch or an extension. Our goal is to create a "
"bigger anonymity set into which the user belongs. Hence, we try to eliminate "
"the possibility of an attacker identifying the user uniquely. Still, we "
"accept that the attacker can detect a JShelter user in the worst case. To do "
"so reliably, the attacker should need to keep track of the code base changes."
msgstr ""
"У нас нет ресурсов для создания пуленепробиваемого решения, устраняющего все "
"побочные каналы. Например, мы ожидаем, что противник сможет обнаружить, что "
"в браузере происходит что-то странное. Например, противник может заполнить "
"холст содержимым, контролируемым противником, и обнаружить изменения после "
"считывания содержимого. Или противник может засечь длительность каждой/"
"некоторых операций. Мы изменяем время считывания, и контрмеры занимают "
"некоторое время. Таким образом, мы ожидаем, что противник сможет обнаружить, "
"что пользователь изменил среду JavaScript с помощью патча или расширения. "
"Наша цель - создать больший набор анонимности, к которому принадлежит "
"пользователь. Таким образом, мы стараемся исключить возможность однозначной "
"идентификации пользователя злоумышленником. Тем не менее, мы допускаем, что "
"в худшем случае злоумышленник может обнаружить пользователя JShelter. Чтобы "
"сделать это надежно, злоумышленнику необходимо следить за изменениями "
"кодовой базы."

#: ../content/pages/threatmodel.md:block 11 (paragraph)
msgid ""
"Nevertheless, we want to avoid allowing the attacker to identify JShelter "
"users easily. We are not aware of any isolated side-effect that reveals "
"JShelter. For example, some similar webextensions do not modify `Function."
"prototype.toString`. A page script could detect such a webextension as each "
"webextension modifying the same API call by the same technique will likely "
"use a different code. Our goal is to offer protection indistinguishable from "
"another privacy-improving tool for each modified API. Nevertheless, a "
"focused observer will very likely be always able to learn that a user is "
"using JShelter if they aggregate the observable inconsistencies of all APIs "
"produced by JShelter. We are aware and do not hide that users of JShelter "
"are vulnerable to focused attacks."
msgstr ""
"Тем не менее, мы хотим избежать того, чтобы злоумышленник мог легко "
"идентифицировать пользователей JShelter. Мы не знаем ни одного "
"изолированного побочного эффекта, который бы раскрывал JShelter. Например, "
"некоторые похожие веб-расширения не изменяют `Function.prototype.toString`. "
"Скрипт страницы может обнаружить такое расширение, поскольку каждое "
"расширение, модифицирующее один и тот же вызов API с помощью одной и той же "
"техники, скорее всего, будет использовать разный код. Наша цель - обеспечить "
"защиту, неотличимую от другого средства повышения конфиденциальности, для "
"каждого измененного API. Тем не менее, внимательный наблюдатель, скорее "
"всего, всегда сможет узнать, что пользователь использует JShelter, если "
"соберет воедино наблюдаемые несоответствия всех API, созданных JShelter. Мы "
"знаем и не скрываем, что пользователи JShelter уязвимы для целенаправленных "
"атак."

#: ../content/pages/threatmodel.md:block 12 (paragraph)
msgid ""
"JShelter's goal is to make targeted attacks harder. Still, we do not believe "
"that we are in a position to prevent them completely. We suggest using [Tor "
"Browser](https://www.torproject.org/download/) or a similar privacy-"
"enhancing tool for users concerned with targeted attacks."
msgstr ""
"Цель JShelter - сделать целевые атаки более сложными. Тем не менее, мы не "
"считаем, что в состоянии полностью предотвратить их. Мы предлагаем "
"использовать [Tor Browser](https://www.torproject.org/download/) или "
"аналогичный инструмент для повышения конфиденциальности для пользователей, "
"обеспокоенных целенаправленными атаками."

#: ../content/pages/unit_tests.md:block 1 (paragraph)
msgid "Title: Instructions on how to run unit tests"
msgstr "Title: Инструкции по выполнению модульных тестов"

#: ../content/pages/unit_tests.md:block 2 (header)
msgid "on Linux"
msgstr "под Linux"

#: ../content/pages/unit_tests.md:block 3 (ordered list)
msgid "Install [NodeJS](https://nodejs.org)."
msgstr "Установить [NodeJS](https://nodejs.org)."

#: ../content/pages/unit_tests.md:block 3 (ordered list)
msgid "Install `jq` and another necessary tools (e.g. `sed`)."
msgstr "Установить `jq` и другие необходимые инструменты (например, `sed`)."

#: ../content/pages/unit_tests.md:block 3 (ordered list)
msgid "Open Terminal."
msgstr "Открытый терминал."

#: ../content/pages/unit_tests.md:block 3 (ordered list)
msgid "Run `npm install`."
msgstr "Запустить `npm install`."

#: ../content/pages/unit_tests.md:block 3 (ordered list)
msgid "Run `npm test`."
msgstr "Запустить `npm install`."

#: ../content/pages/unit_tests.md:block 4 (header)
msgid "on Windows"
msgstr "на Windows"

#: ../content/pages/unit_tests.md:block 5 (ordered list)
msgid ""
"Convert EOL in the script *./start_unit_tests.sh* from Windows (CR LF) to "
"Unix (LF) - you can use the tool `dos2unix` in WSL to convert CR LF to LF."
msgstr ""
"Преобразуйте EOL в скрипте *./start_unit_tests.sh* из Windows (CR LF) в Unix "
"(LF) - вы можете использовать инструмент `dos2unix` в WSL для преобразования "
"CR LF в LF."

#: ../content/pages/unit_tests.md:block 5 (ordered list)
msgid ""
"Follow the instructions for Linux. Install NodeJS and run the following "
"commands in WSL."
msgstr ""
"Следуйте инструкциям для Linux. Установите NodeJS и выполните следующие "
"команды в WSL."

#: ../content/pages/unit_tests.md:block 6 (header)
msgid "Developer documentation"
msgstr "Документация для разработчиков"

#: ../content/pages/unit_tests.md:block 7 (header)
msgid "The framework"
msgstr "Рамки"

#: ../content/pages/unit_tests.md:block 8 (paragraph)
msgid ""
"The test cases are based on top of Jasmine framework. `start_unit_tests.sh` "
"preprocesses the files using shell commands. Use `bash` if in doubt. Patches "
"for other shells might be accepted but will probably not be supported by the "
"core team."
msgstr ""
"Тестовые примеры основаны на фреймворке Jasmine. `start_unit_tests.sh` "
"выполняет предварительную обработку файлов с помощью команд оболочки. В "
"случае сомнений используйте `bash`. Патчи для других оболочек могут быть "
"приняты, но, скорее всего, не будут поддерживаться основной командой."

#: ../content/pages/unit_tests.md:block 9 (header)
msgid "Structure"
msgstr "Структура"

#: ../content/pages/unit_tests.md:block 10 (paragraph)
msgid ""
"The test cases are stored in the `tests` directory. The file names typically "
"mirror the tested files in the `common` webextension directory with the "
"suffix `_tests.js`. Each file and its requirements needs to be registered in "
"`config/global.json` file."
msgstr ""
"Тестовые примеры хранятся в директории `тесты`. Имена файлов обычно "
"повторяют имена тестируемых файлов в директории `common` веб-расширения с "
"суффиксом `_tests.js`. Каждый файл и его требования должны быть "
"зарегистрированы в файле `config/global.json`."

#: ../content/pages/unit_tests.md:block 11 (paragraph)
msgid "The configuration file stores for each test:"
msgstr "Файл конфигурации хранится для каждого теста:"

#: ../content/pages/unit_tests.md:block 13 (unordered list)
msgid "`name` represents the tested file name (no `_tests.js` suffix)"
msgstr ""
"`name` представляет собой имя тестируемого файла (без суффикса `_tests.js`)"

#: ../content/pages/unit_tests.md:block 13 (unordered list)
msgid ""
"`remove_custom_namespace` modifies the source file to remove the IIFE to "
"make its internals global. This is typically necessary to test wrappers that "
"commonly create IIFE."
msgstr ""
"`remove_custom_namespace` модифицирует исходный файл, удаляя IIFE, чтобы "
"сделать его внутреннее пространство глобальным. Это обычно необходимо для "
"тестирования оберток, которые часто создают IIFE."

#: ../content/pages/unit_tests.md:block 13 (unordered list)
msgid ""
"`let_to_var` allows transforming all let variables to var variables. This "
"might be necessary to transform inner variables but might modify the "
"behaviour. Set to `false` unless you have good reason for the modification."
msgstr ""
"`let_to_var` позволяет преобразовать все переменные let в переменные var. "
"Это может быть необходимо для преобразования внутренних переменных, но может "
"изменить поведение. Установите значение `false`, если у вас нет веских "
"причин для модификации."

#: ../content/pages/unit_tests.md:block 13 (unordered list)
msgid ""
"`src_script_requirements` allows specifying dependencies of the file under "
"test (the file used by the webextension)."
msgstr ""
"`src_script_requirements` позволяет указать зависимости тестируемого файла ("
"файла, используемого webextension)."

#: ../content/pages/unit_tests.md:block 13 (unordered list)
msgid ""
"`test_script_requirements` allows specifying dependencies of the file with "
"test cases (the file with the `_tests.js` suffix)."
msgstr ""
"`test_script_requirements` позволяет указать зависимости от файла с "
"тестовыми примерами (файл с суффиксом `_tests.js`)."

#: ../content/pages/unit_tests.md:block 13 (unordered list)
msgid ""
"`extra_exports` appends export line to the file under test and imports these "
"objects to the file with the test cases."
msgstr ""
"`extra_exports` добавляет строку экспорта в тестируемый файл и импортирует "
"эти объекты в файл с тестовыми примерами."

#: ../content/pages/unit_tests.md:block 13 (unordered list)
msgid ""
"`replace_in_src` allows replacing lines in the file under test with a "
"different code, use with caution as this modifies the behaviour."
msgstr ""
"`replace_in_src` позволяет заменить строки в тестируемом файле на другой "
"код, используйте с осторожностью, так как это изменяет поведение."

#: ../content/pages/unit_tests.md:block 13 (unordered list)
msgid ""
"`inject_code_to_src` allows injecting additional code to the file under "
"test. Currently only inserting to `begin` (first line) and `end` (last line) "
"are supported."
msgstr ""
"`inject_code_to_src` позволяет инжектировать дополнительный код в "
"тестируемый файл. В настоящее время поддерживается только вставка в `begin` ("
"первая строка) и `end` (последняя строка)."

#: ../content/pages/unit_tests.md:block 14 (paragraph)
msgid ""
"Note that the preprocessor (`start_unit_tests.sh`) modifies the files under "
"test and the file with test cases according to the instuctions in `global."
"json`. The files are temporarily stored in the `tmp` directory."
msgstr ""
"Обратите внимание, что препроцессор (`start_unit_tests.sh`) изменяет "
"тестируемые файлы и файл с тестовыми примерами в соответствии с указаниями в "
"`global.json`. Файлы временно хранятся в директории `tmp`."

#: ../content/pages/unit_tests.md:block 15 (header)
msgid "Add new unit tests if a test set already exists"
msgstr "Добавьте новые модульные тесты, если набор тестов уже существует"

#: ../content/pages/unit_tests.md:block 16 (paragraph)
msgid ""
"If a test set already exists for the target modul (e.g. a test set "
"*background_tests.js* for the *background.js* file), you can add your own "
"tests to the test script (e.g. to the *background_tests.js* file)."
msgstr ""
"Если для целевого модуля уже существует набор тестов (например, набор тестов "
"*background_tests.js* для файла *background.js*), вы можете добавить свои "
"собственные тесты в тестовый скрипт (например, в файл *background_tests.js*)."

#: ../content/pages/unit_tests.md:block 17 (paragraph)
msgid ""
"You may need to update the requirements in the global configuration (*./"
"config/global.json* file). Open the global configuration file for editing "
"and find the configuration of the target script (according to the `name` "
"property). Add the necessary requirements to the `src_script_requirements` "
"and `test_script_requirements` sections."
msgstr ""
"Возможно, вам потребуется обновить требования в глобальной конфигурации ("
"файл *./config/global.json*). Откройте файл глобальной конфигурации для "
"редактирования и найдите конфигурацию целевого скрипта (в соответствии со "
"свойством `name`). Добавьте необходимые требования в секции "
"`src_script_requirements` и `test_script_requirements`."

#: ../content/pages/unit_tests.md:block 18 (header)
msgid "Add new unit tests if a test set does not already exists"
msgstr "Добавьте новые модульные тесты, если набор тестов еще не существует"

#: ../content/pages/unit_tests.md:block 19 (paragraph)
msgid ""
"If a test set does not already exists for the target modul (e.g. a test set "
"*background_tests.js* for the *background.js* file), create new file (e.g. "
"*background_tests.js* file) in the *./tests* directory. It is recommended to "
"create a new test script by copying any existing test script, deleting its "
"tests, and creating new ones."
msgstr ""
"Если тестовый набор для целевого модуля еще не существует (например, "
"тестовый набор *background_tests.js* для файла *background.js*), создайте "
"новый файл (например, файл *background_tests.js*) в каталоге *./tests*. "
"Рекомендуется создавать новый тестовый скрипт путем копирования любого "
"существующего тестового скрипта, удаления его тестов и создания новых."

#: ../content/pages/unit_tests.md:block 20 (paragraph)
msgid ""
"When a new test script is created, add a new entry to the global "
"configuration (*./config/global.json* file). The new entry must be created "
"according to the example (*./config/global-example.json* file) and schema "
"(*./config/global-schema.json* file)."
msgstr ""
"Когда создается новый тестовый сценарий, добавьте новую запись в глобальную "
"конфигурацию (файл *./config/global.json*). Новая запись должна быть создана "
"в соответствии с примером (*./config/global-example.json* файл) и схемой (*./"
"config/global-schema.json* файл)."

#: ../content/pages/versions.md:block 1 (paragraph)
msgid "Title: Release history"
msgstr "Title: История выпуска"

#: ../content/pages/versions.md:block 2 (header)
#, fuzzy
msgid "0.17"
msgstr "0.17"

#: ../content/pages/versions.md:block 3 (unordered list)
msgid ""
"Added support for built-in tweaks for specific domains. The goal is to list "
"several domains that break unnecessarily. Typically, an addition to the list "
"should be well explained and must not lower protection. A nice candidate is "
"WebWorker and the protection of Strict (break) and Remove."
msgstr ""
"Добавлена поддержка встроенных твиков для определенных доменов. Цель состоит "
"в том, чтобы перечислить несколько доменов, которые ломаются без "
"необходимости. Как правило, добавление в список должно быть хорошо объяснено "
"и не должно снижать защиту. Хорошим кандидатом является WebWorker и защита "
"Strict (break) и Remove."

#: ../content/pages/versions.md:block 3 (unordered list)
msgid "Updated translations"
msgstr "Обновленные переводы"

#: ../content/pages/versions.md:block 3 (unordered list)
msgid "Improved FPD report based on user feedback:"
msgstr "Улучшенный отчет FPD на основе обратной связи с пользователями:"

#: ../content/pages/versions.md:block 3 (unordered list)
msgid ""
"Do not refresh report automatically when tracking callers but introduce an "
"update button so that users refresh when convenient (prevent glitches in the "
"interfaces)"
msgstr ""
"Не обновлять отчет автоматически при отслеживании звонков, а ввести кнопку "
"обновления, чтобы пользователи обновляли отчет, когда им удобно ("
"предотвратить сбои в интерфейсах)"

#: ../content/pages/versions.md:block 3 (unordered list)
msgid "Add buttons to hide/show details and fold/unfold groups"
msgstr ""
"Добавьте кнопки для скрытия/показа деталей и складывания/раскладывания групп"

#: ../content/pages/versions.md:block 3 (unordered list)
msgid ""
"Do not show traces in bold to better differentiate between API names and "
"traces."
msgstr ""
"Не выделяйте трассы жирным шрифтом, чтобы лучше различать названия API и "
"трасс."

#: ../content/pages/versions.md:block 3 (unordered list)
msgid ""
"Add possibility to forget current traces. Useful when there is a "
"fingerprinting script that activates after some action. The button allows "
"the user to hide the traces triggered in the past and later load only new "
"traces."
msgstr ""
"Добавляет возможность забывать текущие следы. Полезно, когда есть скрипт "
"отпечатков пальцев, который активируется после какого-либо действия. Кнопка "
"позволяет пользователю скрыть следы, запущенные в прошлом, и в дальнейшем "
"загружать только новые следы."

#: ../content/pages/versions.md:block 3 (unordered list)
msgid ""
"Add support for [signing for Android on AMO](https://blog.mozilla.org/"
"addons/2023/10/05/changes-to-android-extension-signing/), so we needed to "
"increase minimal supported version"
msgstr ""
"Добавьте поддержку [подписи для Android на AMO](https://blog.mozilla.org/"
"addons/2023/10/05/changes-to-android-extension-signing/), поэтому нам "
"пришлось увеличить минимальную поддерживаемую версию"

#: ../content/pages/versions.md:block 4 (header)
#, fuzzy
msgid "0.16"
msgstr "0.16"

#: ../content/pages/versions.md:block 5 (unordered list)
msgid ""
"Remove Workers in Recommended JSS level to make JShelter compatible with "
"some pages. This change might be reverted when [Pagure issue 80](https://"
"pagure.io/JShelter/webextension/issue/80#comment-852202) is solved."
msgstr ""
"Удалите Workers в Рекомендуемом уровне JSS, чтобы сделать JShelter "
"совместимым с некоторыми страницами. Это изменение может быть отменено, "
"когда будет решена проблема [Pagure issue 80](https://pagure.io/JShelter/"
"webextension/issue/80#comment-852202)."

#: ../content/pages/versions.md:block 5 (unordered list)
msgid ""
"FPD: Add possibility to learn the calling stack of functions that lead to "
"the tracked APIs ([Pagure issue 52](https://pagure.io/JShelter/webextension/"
"issue/52)). This information can be used to create block list or to study "
"the calling code and its effects."
msgstr ""
"FPD: Добавьте возможность узнать стек вызовов функций, которые ведут к "
"отслеживаемым API ([Pagure issue 52](https://pagure.io/JShelter/webextension/"
"issue/52)). Эта информация может быть использована для создания списка "
"блоков или для изучения вызывающего кода и его эффектов."

#: ../content/pages/versions.md:block 5 (unordered list)
msgid ""
"FPD: Fix browser overloading by FPD messages by HTMLElement.prototype."
"offsetHeight and offsetWidth wrappers that might have crashed browsers."
msgstr ""
"FPD: Исправлена перегрузка браузеров сообщениями FPD в обертках "
"HTMLElement.prototype.offsetHeight и offsetWidth, которая могла привести к "
"сбоям в браузерах."

#: ../content/pages/versions.md:block 5 (unordered list)
msgid "FPD: code cleanup"
msgstr "FPD: очистка кода"

#: ../content/pages/versions.md:block 6 (header)
#, fuzzy
msgid "0.15.2"
msgstr "0.15.2"

#: ../content/pages/versions.md:block 7 (unordered list)
msgid ""
"Fix `window.name` protection, do not clear the property in the first visited "
"page see https://pagure.io/JShelter/webextension/issue/116#comment-875070 "
"for more details. The fix affects all Chromium-based browsers and Firefox "
"installs with the protection active (by default it is off in Firefox as "
"Firefox contains the protection since Firefox 88). This fixes, for example, "
"reCaptcha."
msgstr ""
"Исправьте защиту `window.name`, не очищайте свойство на первой посещенной "
"странице, подробнее см. на https://pagure.io/JShelter/webextension/issue/"
"116#comment-875070. Исправление затрагивает все браузеры на базе Chromium и "
"установки Firefox с активной защитой (по умолчанию она отключена в Firefox, "
"так как Firefox содержит защиту с Firefox 88). Это исправляет, например, "
"reCaptcha."

#: ../content/pages/versions.md:block 7 (unordered list)
msgid ""
"options: Improve space distribution, see https://github.com/polcak/"
"jsrestrictor/pull/204#issuecomment-1727519706"
msgstr ""
"варианты: Улучшить распределение пространства, см. https://github.com/polcak/"
"jsrestrictor/pull/204#issuecomment-1727519706"

#: ../content/pages/versions.md:block 8 (header)
#, fuzzy
msgid "0.15.1"
msgstr "0.15.1"

#: ../content/pages/versions.md:block 9 (unordered list)
msgid ""
"Fix Chrome manifest that by mistake included a file from a non-existing "
"path. The error prevented the extension from starting."
msgstr ""
"Исправьте манифест Chrome, который по ошибке включал файл из несуществующего "
"пути. Из-за этой ошибки расширение не запускалось."

#: ../content/pages/versions.md:block 10 (header)
#, fuzzy
msgid "0.15"
msgstr "0.15"

#: ../content/pages/versions.md:block 11 (unordered list)
msgid "Update NSCL to uses built-in and faster function to compute sha256."
msgstr ""
"Обновите NSCL, чтобы использовать встроенную и более быструю функцию для "
"вычисления sha256."

#: ../content/pages/versions.md:block 11 (unordered list)
msgid "Russian translation added."
msgstr "Добавлен русский перевод."

#: ../content/pages/versions.md:block 12 (header)
#, fuzzy
msgid "0.14"
msgstr "0.14"

#: ../content/pages/versions.md:block 13 (unordered list)
msgid ""
"Added support for internationalization, Czech translation added, see [blog "
"post](/i18n/) for instrctions for translators"
msgstr ""
"Добавлена поддержка интернационализации, добавлен перевод на чешский язык, "
"инструкции для переводчиков см. в [blog post](/i18n/)"

#: ../content/pages/versions.md:block 13 (unordered list)
msgid "All texts revisited, clarified, and fixed grammar and typos"
msgstr ""
"Все тексты переработаны, уточнены, исправлены грамматические ошибки и "
"опечатки"

#: ../content/pages/versions.md:block 13 (unordered list)
msgid ""
"Improved performance of Canvas and Audio little-lies wrappers by executing "
"in WebAssembly, there will be a separate blog post with additional "
"explanations. See the [bachelor thesis of Martin Zmitko](https://www.vut.cz/"
"en/students/final-thesis/detail/147218) for more details."
msgstr ""
"Улучшена производительность оберток Canvas и Audio little-lies за счет "
"выполнения на WebAssembly, о чем будет отдельная запись в блоге с "
"дополнительными пояснениями. Более подробную информацию можно найти в "
"[бакалаврской работе Мартина Змитко](https://www.vut.cz/en/students/"
"final-thesis/detail/147218)."

#: ../content/pages/versions.md:block 13 (unordered list)
msgid ""
"Improved performance of FPD. See the [bachelor thesis of Martin Zmitko]"
"(https://www.vut.cz/en/students/final-thesis/detail/147218) for more details."
msgstr ""
"Улучшенная производительность FPD. Подробнее см. в "
"[бакалаврской работе Мартина Змитко](https://www.vut.cz/en/students/"
"final-thesis/detail/147218)."

#: ../content/pages/versions.md:block 13 (unordered list)
msgid ""
"Expand description of the wrappers applied when the user interacts with the "
"tweak GUI (suggested by the Plain Text UX review)"
msgstr ""
"Расширьте описание обёрток, применяемых при взаимодействии пользователя с "
"графическим интерфейсом твика (предложено в обзоре UX Plain Text)"

#: ../content/pages/versions.md:block 13 (unordered list)
msgid "Make level names in main options section stable width"
msgstr "Сделайте названия уровней в разделе основных опций стабильной ширины"

#: ../content/pages/versions.md:block 13 (unordered list)
msgid "NSCL updated:"
msgstr "NSCL обновил:"

#: ../content/pages/versions.md:block 13 (unordered list)
msgid ""
"Prevent dead object access on using backward/forward cache of the browser"
msgstr ""
"Предотвращение доступа к мертвым объектам при использовании кэша браузера в "
"прямом и обратном направлении"

#: ../content/pages/versions.md:block 13 (unordered list)
msgid "Fixed property/function mismatch"
msgstr "Исправлено несоответствие свойств и функций"

#: ../content/pages/versions.md:block 14 (header)
#, fuzzy
msgid "0.13"
msgstr "0.13"

#: ../content/pages/versions.md:block 15 (paragraph)
msgid ""
"Improve performance of the code injection. See the [bachelor thesis of "
"Martin Zmitko](https://www.vut.cz/en/students/final-thesis/detail/147218) "
"for more details."
msgstr ""
"Повысить производительность инъекции кода. Подробнее см. в "
"[бакалаврской работе Мартина Змитко](https://www.vut.cz/en/students/"
"final-thesis/detail/147218)."

#: ../content/pages/versions.md:block 16 (unordered list)
msgid ""
"The code is no longer generated in the background due to the latency of "
"passing huge messages from background to content scripts."
msgstr ""
"Код больше не генерируется в фоновом режиме из-за задержки при передаче "
"огромных сообщений из фонового режима в скрипты контента."

#: ../content/pages/versions.md:block 16 (unordered list)
msgid "Optimize injection code size (remove duplicate code)."
msgstr "Оптимизация размера кода инъекций (удаление дублирующегося кода)."

#: ../content/pages/versions.md:block 16 (unordered list)
msgid "Do not generate xray wrapper when in Chromium-based browsers."
msgstr "Не генерируйте обертку xray в браузерах на базе Chromium."

#: ../content/pages/versions.md:block 17 (header)
#, fuzzy
msgid "0.12.2"
msgstr "0.12.2"

#: ../content/pages/versions.md:block 18 (unordered list)
msgid ""
"Reimplement AudioBuffer.prototype.copyFromChannel to prevent multiple "
"farbling of the same data"
msgstr ""
"Реализуйте AudioBuffer.prototype.copyFromChannel, чтобы предотвратить "
"многократную перенаборку одних и тех же данных"

#: ../content/pages/versions.md:block 18 (unordered list)
msgid "bugfix (Chromium-based): Fix popup to always load current level"
msgstr ""
"исправление (на базе Chromium): Исправьте всплывающее окно, чтобы всегда "
"загружался текущий уровень"

#: ../content/pages/versions.md:block 18 (unordered list)
msgid "Optimize performance of Canvas and Audio wrappers"
msgstr "Оптимизация производительности оберток Canvas и Audio"

#: ../content/pages/versions.md:block 18 (unordered list)
msgid ""
"NSCL updated: JShelter benefits from the mechanism to prevent "
"inconsistencies / breakages when the extension gets updated and therefore "
"the old wrappers are invalidated by Firefox which nukes their sandbox and "
"new ones are installed on extension's automatic restart"
msgstr ""
"Обновлено NSCL: JShelter использует механизм для предотвращения "
"несоответствий / поломок, когда расширение обновляется, и поэтому старые "
"обертки аннулируются Firefox, который уничтожает их песочницу, а новые "
"устанавливаются при автоматическом перезапуске расширения"

#: ../content/pages/versions.md:block 19 (header)
#, fuzzy
msgid "0.12.1"
msgstr "0.12.1"

#: ../content/pages/versions.md:block 20 (unordered list)
msgid ""
"bugfix: Return the correctly created Worker object from the `Strict` wrapper."
msgstr ""
"Исправление: Возвращайте корректно созданный объект Рабочий из обертки "
"`Строгий`."

#: ../content/pages/versions.md:block 21 (header)
#, fuzzy
msgid "0.12"
msgstr "0.12"

#: ../content/pages/versions.md:block 22 (unordered list)
msgid ""
"Cope with the changes of reported plugins and supported MIME types in the "
"HTML standard and browsers: The purpose of the wrappers is solely to prevent "
"fingerprinting. As browsers return the same 5 plugins, browsers modyfing the "
"array stand out, which makes them more fingerprintable. Hence, JShelter does "
"not modify the empty list or the list of five standard plugins."
msgstr ""
"Приспосабливаются к изменениям в сообщаемых плагинах и поддерживаемых типах "
"MIME в стандарте HTML и браузерах: Обертки предназначены исключительно для "
"предотвращения отпечатков пальцев. Поскольку браузеры возвращают одни и те "
"же 5 плагинов, браузеры, модифицирующие массив, выделяются, что делает их "
"более уязвимыми для отпечатков пальцев. Поэтому JShelter не изменяет пустой "
"список или список из пяти стандартных плагинов."

#: ../content/pages/versions.md:block 23 (paragraph)
msgid "Reconsider and rewrite Web Worker wrappers (pagure issue 80)"
msgstr ""
"Пересмотрите и перепишите обертки для веб-рабочих ( проблема 80 в публикации)"

#: ../content/pages/versions.md:block 24 (unordered list)
msgid "`Strict` WebWorker policy intentionally breakes Web Workers"
msgstr "Политика `Строгой` WebWorker намеренно нарушает работу веб-рабочих"

#: ../content/pages/versions.md:block 24 (unordered list)
msgid ""
"New policy to `Remove` Web Workers used for `Turn fingerprinting protection "
"off` and `Strict` level."
msgstr ""
"Новая политика для `Удаления` веб-рабочих, используемых для `Включить защиту "
"от отпечатков пальцев` и `Строго` уровня."

#: ../content/pages/versions.md:block 24 (unordered list)
msgid ""
"`Medium` WebWorker policy renamed to `Low` as it only tackles a single issue "
"with Workers."
msgstr ""
"Политика `Средний` WebWorker переименована в `Низкий`, поскольку она решает "
"только одну проблему с Рабочими."

#: ../content/pages/versions.md:block 25 (paragraph)
msgid "See FAQ for more information on current Worker wrappers."
msgstr ""
"Дополнительную информацию о текущих Рабочих обертках см. в разделе Часто "
"задаваемые вопросы."

#: ../content/pages/versions.md:block 26 (paragraph)
msgid ""
"Note that the `Low` policy does not work as intended in Firefox and will be "
"fixed in future. However, it was broken in the same way before 0.12 and the "
"other changes are worth distributing among our users."
msgstr ""
"Обратите внимание, что политика `Низкий` не работает в Firefox так, как "
"задумано, и будет исправлена в будущем. Тем не менее, она была сломана таким "
"же образом до версии 0.12, и остальные изменения стоит распространить среди "
"наших пользователей."

#: ../content/pages/versions.md:block 27 (header)
#, fuzzy
msgid "0.11.4"
msgstr "0.11.4"

#: ../content/pages/versions.md:block 28 (unordered list)
msgid ""
"bugfix: allow tweaking all levels except L0 in the popup (pagure issue 89)"
msgstr ""
"исправление: разрешено настраивать все уровни, кроме L0, во всплывающем окне "
"( проблема 89)"

#: ../content/pages/versions.md:block 28 (unordered list)
msgid ""
"bugfix: clarify and fix the description of changes to NBS in 0.11.3 (pagure "
"issue 41)"
msgstr ""
"исправление: уточнить и исправить описание изменений в NBS в 0.11.3 ( "
"проблема 41)"

#: ../content/pages/versions.md:block 29 (header)
#, fuzzy
msgid "0.11.3"
msgstr "0.11.3"

#: ../content/pages/versions.md:block 30 (unordered list)
msgid ""
"bugfix: Remove race condition that reset default level to Recommended from "
"custom levels. Unfortunately, affected users need to manually restore the "
"default level as JShelter cannot distinguish affected users automatically."
msgstr ""
"исправление: Устранено состояние гонки, при котором уровень по умолчанию "
"сбрасывался на Рекомендуемый из пользовательских уровней. К сожалению, "
"затронутым пользователям необходимо вручную восстанавливать уровень по "
"умолчанию, поскольку JShelter не может автоматически различать затронутых "
"пользователей."

#: ../content/pages/versions.md:block 30 (unordered list)
msgid ""
"bugfix: Prevent DNS leaks in NBS in the presence of HTTP proxy in Firefox, "
"see pagure issues #41 and #85 and FAQ for more details on the interaction of "
"NBS and proxies."
msgstr ""
"Исправление: Предотвращение утечки DNS в NBS при наличии HTTP-прокси в "
"Firefox, подробнее о взаимодействии NBS и прокси см. в проблемах пагубной "
"ситуации #41 и #85 и часто задаваемых вопросах."

#: ../content/pages/versions.md:block 30 (unordered list)
msgid "enhancement: Fix empty spaces to improve the look of the option page"
msgstr ""
"Улучшение: Исправьте пустые места, чтобы улучшить внешний вид страницы опций"

#: ../content/pages/versions.md:block 31 (header)
#, fuzzy
msgid "0.11.2"
msgstr "0.11.2"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid "bugfix: check domains property in advanced options (introduced in 0.10)"
msgstr ""
"исправление: проверка свойства доменов в расширенных опциях (появилось в "
"0.10)"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid "bugfix: remove unused config.whitelistedHosts"
msgstr "исправление: удалить неиспользуемый config.whitelistedHosts"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid "bugfix: Fix several typos in the text in options"
msgstr "Исправление: Исправьте несколько опечаток в тексте в опциях"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid ""
"bugfix: Do not use hard-coded level in the advanced options validity checks "
"of configuration"
msgstr ""
"Исправление: не использовать жестко закодированный уровень при проверке "
"валидности расширенных опций конфигурации"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid "feature: Add option to reset configuration to advanced options"
msgstr ""
"функция: Добавьте возможность сброса конфигурации к расширенным параметрам"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid ""
"enhancement: Reimplement JSS configuration in option to improve "
"understandability"
msgstr "Улучшение: Реализация конфигурации JSS в опции для улучшения понимания"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid ""
"enhancement: Fix race conditions in displaying stored configuration after "
"changes through options"
msgstr ""
"Улучшение: Исправление условий гонки при отображении сохраненной "
"конфигурации после изменений через опции"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid "enhancement: Add undo to advanced options"
msgstr "Улучшение: Добавьте отмену в расширенные опции"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid ""
"enhancement: Warn users from tweaking their settings due to higher risks of "
"reidentification via browser fingerprinting"
msgstr ""
"Улучшение: Предостережение пользователей от изменения настроек из-за "
"повышенного риска повторной идентификации через отпечатки пальцев браузера"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid ""
"enhancement: Add button to cancel the addition of a new level, update the "
"error texts"
msgstr ""
"Улучшения: Добавлена кнопка для отмены добавления нового уровня, обновлены "
"тексты ошибок"

#: ../content/pages/versions.md:block 32 (unordered list)
msgid "website: little improvements and clarifications"
msgstr "Веб-сайт: небольшие улучшения и уточнения"

#: ../content/pages/versions.md:block 33 (paragraph)
msgid "Most of the changes were influenced by the Plain Text UX review"
msgstr "На большинство изменений повлиял обзор UX простого текста"

#: ../content/pages/versions.md:block 34 (header)
#, fuzzy
msgid "0.11.1"
msgstr "0.11.1"

#: ../content/pages/versions.md:block 35 (unordered list)
msgid ""
"NBS: do not show notifications for hostnames resolving to undefined IP "
"addresses as described in FAQ (broken in 0.11 that does not show "
"notifications only for undefined IP addresses, but shows notifications for "
"hostnames resolving to undefined IP addresses)"
msgstr ""
"NBS: не показывать уведомления для имен хостов, разрешающихся в "
"неопределенные IP-адреса, как описано в FAQ (исправлено в 0.11, которая не "
"показывает уведомления только для неопределенных IP-адресов, но показывает "
"уведомления для имен хостов, разрешающихся в неопределенные IP-адреса)"

#: ../content/pages/versions.md:block 36 (header)
#, fuzzy
msgid "0.11"
msgstr "0.11"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid "Reset `window.name` only on eTLD+1 changes"
msgstr "Сброс `window.name` только при изменении eTLD+1"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid "Farbling: Use eTLD+1 instead of origin to generate hash"
msgstr "Фарблинг: Используйте eTLD+1 вместо происхождения для генерации хэша"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid ""
"FPD: Clear storage during navigation (prevent the page from storing the hash "
"to a local storage and loading the hash after page reload)"
msgstr ""
"FPD: Очистка хранилища во время навигации (предотвращение сохранения хэша в "
"локальном хранилище и его загрузки после перезагрузки страницы)"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid ""
"FPD configuration: Decouple notification and behaviour settings. Let a user "
"to optionally disable notifications without strict effect on behaviour"
msgstr ""
"Конфигурация FPD: Разделите настройки уведомлений и поведения. Позволяет "
"пользователю опционально отключать уведомления без строгого влияния на "
"поведение"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid "Improve CSP of the extension pages, fix broken favicons in FPD report"
msgstr ""
"Улучшение CSP страниц расширений, исправление неработающих фавиконов в "
"отчете FPD"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid ""
"NBS: Block requests to undefined IP address (0.0.0.0 or [::]) but do not "
"show notifications"
msgstr ""
"NBS: блокировать запросы на неопределенный IP-адрес (0.0.0.0 или [::]), но "
"не показывать уведомлений"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid "Fix extension initialization in permanent private mode"
msgstr "Исправьте инициализацию расширения в постоянном приватном режиме"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid "options: Add external links to JShelter.org FAQ and threat model"
msgstr "опции: Добавить внешние ссылки на FAQ по JShelter.org и модель угроз"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid "Add favicons to options pages"
msgstr "Добавьте фавиконки на страницы опций"

#: ../content/pages/versions.md:block 37 (unordered list)
msgid "Remove unused icons"
msgstr "Удалите неиспользуемые значки"

#: ../content/pages/versions.md:block 38 (header)
#, fuzzy
msgid "0.10"
msgstr "0.10"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"Add wrappers modifying calls detecting supported media types and installed "
"codecs (Multimedia playback), github issue 66"
msgstr ""
"Добавьте обертки, изменяющие вызовы, определяющие поддерживаемые типы "
"медиафайлов и установленные кодеки (воспроизведение мультимедиа), github "
"issue 66"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"Add wrappers modifying `HTMLMediaElement.prototype.canPlayType` (Multimedia "
"playback)"
msgstr ""
"Добавьте обертки, изменяющие `HTMLMediaElement.prototype.canPlayType` ("
"воспроизведение мультимедиа)"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"Add wrappers disabling Network Information API inspired by Brave, github "
"issue 66"
msgstr ""
"Добавьте обёртки для отключения API сетевой информации, вдохновлённые Brave, "
"github issue 66"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid "Add wrappers disabling Web NFC API, github issue 66"
msgstr "Добавьте обёртки, отключающие Web NFC API, github issue 66"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"Add wrappers for Cooperative Scheduling of Background Tasks API, github "
"issue 66"
msgstr ""
"Добавьте обёртки для API кооперативного планирования фоновых задач, github "
"issue 66"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid "Add wrappers for User idle detection, github issue 66"
msgstr "Добавьте обёртки для определения простоя пользователя, github issue 66"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"Add possibility to set NBS as passive (notify user but do not block), github "
"issue 66"
msgstr ""
"Добавьте возможность настроить NBS как пассивный (уведомлять пользователя, "
"но не блокировать), github issue 66"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid "Fix Web Audio wrappers (Pagure issue #16)"
msgstr "Исправьте обертки для веб-аудио (проблема Pagure #16)"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid "FPD Report allows exporting data as JSON"
msgstr "FPD Report позволяет экспортировать данные в формате JSON"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid "Modified FPD wrappers independent on JSS"
msgstr "Модифицированные обертки FPD, независимые от JSS"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"FPD can be configured as strict (more aggressive fingerprinting detection)"
msgstr ""
"FPD может быть настроен как строгий (более агрессивное обнаружение "
"отпечатков пальцев)"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"Better storages removal through content script in the absence of browserData "
"permissions by FPD"
msgstr ""
"Улучшенное удаление хранилищ через скрипт контента при отсутствии разрешений "
"браузераData в FPD"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"Fix early loading of module configuration (FPD used to be disabled after "
"first installation)"
msgstr ""
"Исправьте раннюю загрузку конфигурации модуля (после первой установки FPD "
"отключался)"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid "FPD initialization reworked"
msgstr "Переработана инициализация FPD"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"Add support for customizing settings for file:// scheme (Github issue #180)"
msgstr ""
"Добавьте поддержку настройки параметров для схемы file:// (Github issue #180)"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid "Improve config checker in advanced options"
msgstr "Улучшена проверка конфигурации в расширенных опциях"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid "Improved English, naming consistency, and some descriptions"
msgstr "Улучшен английский язык, согласованность названий и некоторые описания"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid "Apply Content-Security-Policy to webextension pages"
msgstr ""
"Применение политики безопасности содержимого (Content-Security-Policy) к "
"страницам веб-расширения"

#: ../content/pages/versions.md:block 39 (unordered list)
msgid ""
"Fix some issues with invalid domains in advanced JavaScript Shield "
"configuration (Pagure issue 45)"
msgstr ""
"Исправьте некоторые проблемы с недействительными доменами в расширенной "
"конфигурации JavaScript Shield (Pagure issue 45)"

#: ../content/pages/versions.md:block 40 (header)
#, fuzzy
msgid "0.9"
msgstr "0.9"

#: ../content/pages/versions.md:block 41 (unordered list)
msgid ""
"Firefox: deactivate window.name wrapper for Firefox; Firefox provides "
"protection since 88 and JShelter wrapper brakes pages"
msgstr ""
"Firefox: деактивируйте обертку window.name для Firefox; Firefox обеспечивает "
"защиту с 88 года, а обёртка JShelter тормозит страницы"

#: ../content/pages/versions.md:block 41 (unordered list)
msgid ""
"Enable webworker wrappers by default, see the paper https://arxiv.org/"
"abs/2204.01392, §4.3"
msgstr ""
"Включите обёртки для веб-рабочих по умолчанию, см. статью https://arxiv.org/"
"abs/2204.01392, §4.3"

#: ../content/pages/versions.md:block 41 (unordered list)
msgid "Tidy up popup UI and FPD report UI"
msgstr ""
"Приведите в порядок пользовательский интерфейс всплывающих окон и "
"пользовательский интерфейс отчетов FPD"

#: ../content/pages/versions.md:block 41 (unordered list)
msgid "Show wrapper groups descriptions in options.html"
msgstr "Показывайте описания групп оберток в файле options.html"

#: ../content/pages/versions.md:block 42 (header)
#, fuzzy
msgid "0.8.1"
msgstr "0.8.1"

#: ../content/pages/versions.md:block 43 (unordered list)
msgid ""
"Add \"Turn fingerprinting protection off\" level. As the AFPD shows the "
"likelihood of fingerprinting, some users might be tempted to trade some "
"performance gain for no protection against fingerprinting. See for example "
"Github #179."
msgstr ""
"Добавьте уровень \"Отключить защиту от отпечатков пальцев\". Поскольку AFPD "
"показывает вероятность отпечатков пальцев, у некоторых пользователей может "
"возникнуть соблазн обменять некоторый прирост производительности на "
"отсутствие защиты от отпечатков пальцев. Смотрите, например, Github #179."

#: ../content/pages/versions.md:block 43 (unordered list)
msgid "Fix displaying empty FPD report"
msgstr "Исправление отображения пустого отчета FPD"

#: ../content/pages/versions.md:block 44 (header)
#, fuzzy
msgid "0.8"
msgstr "0.8"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid "Add FPD report page"
msgstr "Добавить страницу отчета FPD"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid "Show fingerprinting likelihood in the popup and badge icon colour"
msgstr ""
"Отображение вероятности снятия отпечатков пальцев во всплывающем окне и "
"цвета значка значка"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"GPS wrapper reimplemented to use farbling (simulate a stationary device for "
"per domain and sessions), previously each page load generated a new position"
msgstr ""
"GPS-обертка переделана для использования farbling (имитация стационарного "
"устройства для каждого домена и сессии), ранее при каждой загрузке страницы "
"генерировалась новая позиция"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid "Reorganize canvas reading wrappers, all are in the same group"
msgstr ""
"Реорганизуйте обертки для чтения холста, все они находятся в одной группе"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid "Security review and hardening of the wrappers"
msgstr "Проверка безопасности и укрепление обёрток"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid "Do not change values depending on activated tweaks"
msgstr "Не меняйте значения в зависимости от активированных твиков"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid "Remove obvious reversibility of the canvas farbling"
msgstr "Устраните явную обратимость фарбирования холста"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid "Unify wrapping between H-C and WEBGL"
msgstr "Унификация обертки между H-C и WEBGL"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"Unify the wrappers in Strict and Farbling wrapping of WebGL parameters (some "
"were farbled but not disabled on Strict)"
msgstr ""
"Унификация оберток в Strict и фарблинг оберток параметров WebGL (некоторые "
"были фарблингованы, но не отключены в Strict)"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"Farbling of WebGL parameters spread more wildly to hide the correct number "
"(that might have been revealed after several visits)"
msgstr ""
"Разброс параметров WebGL более дикий, чтобы скрыть правильное число (которое "
"можно было бы обнаружить после нескольких посещений)"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid "WebGL: Farble renderer and vendor the same way as unmasked versions"
msgstr ""
"webGL: рендерер и производитель Farble так же, как и немаскированные версии"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"Remove possible dependencies between multiple wrapping groups using "
"randomString()"
msgstr ""
"Устраните возможные зависимости между несколькими группами оберток с помощью "
"функции randomString()"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"Strict: Return empty UNMASKED VENDOR and RENDERER - Previosuly, these values "
"depended on the domainHash, that meant that the unique value could be used "
"to uniquely fingerprint the device."
msgstr ""
"Строгий: Возвращать пустые UNMASKED VENDOR и RENDERER - Раньше эти значения "
"зависели от domainHash, что означало, что уникальное значение может быть "
"использовано для уникального отпечатка устройства."

#: ../content/pages/versions.md:block 45 (unordered list)
msgid "Harden WEBA farbling"
msgstr "Жесткий фарбинг WEBA"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"Scramble the output of PRNG with domainHash to prevent guessing the future "
"PRNs"
msgstr ""
"Скремблируйте выход ГПСЧ с domainHash, чтобы предотвратить угадывание "
"будущих ГПСЧ"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"Try to improve speed as possible but the wrapping is likely slower than 0.7.x"
msgstr ""
"Постарайтесь улучшить скорость, насколько это возможно, но, скорее всего, "
"обертка будет медленнее, чем в 0.7.x"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"Github #125: Add option to disable NBS notifications, limit the number of "
"notifications"
msgstr ""
"Github #125: Добавить возможность отключения уведомлений NBS, ограничить "
"количество уведомлений"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"Fix Pagure #18 Optional permissions for AFPD - it is not necessary to give "
"browsingData"
msgstr ""
"Исправить Pagure #18 Необязательные разрешения для AFPD - не обязательно "
"давать browsingData"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"Allowlist options in NBS and FPD changed breaking backwards compatibility"
msgstr ""
"Изменены опции списка разрешений в NBS и FPD, что нарушает обратную "
"совместимость"

#: ../content/pages/versions.md:block 45 (unordered list)
msgid ""
"When optionally activated, wrap BigInt typed arrays the same way as other "
"typed arrays"
msgstr ""
"Если активировать опцию, то типизированные массивы BigInt будут обернуты так "
"же, как и другие типизированные массивы"

#: ../content/pages/versions.md:block 46 (header)
#, fuzzy
msgid "0.7.1"
msgstr "0.7.1"

#: ../content/pages/versions.md:block 47 (unordered list)
msgid "Apply proper shielding for `navigator.plugins` in Firefox."
msgstr "Примените надлежащее экранирование для `navigator.plugins` в Firefox."

#: ../content/pages/versions.md:block 47 (unordered list)
msgid ""
"Hide FPD notification after a while to prevent windows notification spam in "
"chromium-based browsers"
msgstr ""
"Скрывайте уведомления FPD через некоторое время, чтобы предотвратить спам "
"уведомлений windows в браузерах на базе хрома"

#: ../content/pages/versions.md:block 48 (header)
#, fuzzy
msgid "0.7"
msgstr "0.7"

#: ../content/pages/versions.md:block 49 (unordered list)
msgid "JavaScript Restrictor rebranded to JShelter."
msgstr "JavaScript Restrictor переименован в JShelter."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"The extension officially consists of JavaScript Shield (originally called "
"wrappers), NBS, and FPD. Unified way to disable each component in the pop "
"up. This should prevent users from disabling NBS thinking they disabled JSS."
msgstr ""
"Расширение официально состоит из JavaScript Shield (первоначально "
"называвшихся обертками), NBS и FPD. Унифицированный способ отключения "
"каждого компонента во всплывающем окне. Это должно предотвратить отключение "
"NBS, думая, что пользователи отключили JSS."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid "New UI to create and tweak JavaScript Shield levels."
msgstr ""
"Новый пользовательский интерфейс для создания и настройки уровней JavaScript "
"Shield."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"Pop up redesigned. Try not to confuse the user about global/per-page "
"settings."
msgstr ""
"Изменен дизайн всплывающих окон. Постарайтесь не запутать пользователя в "
"глобальных/первостраничных настройках."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"It is possible to create per-domain JavaScript Shield tweaks, i.e. enable or "
"disable specific group of wrappers for certain domain only without the "
"necessity to create a new level."
msgstr ""
"Можно создавать твики JavaScript Shield для каждого домена, то есть включать "
"или отключать определенную группу оберток только для определенного домена "
"без необходимости создавать новый уровень."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid "The wrapping strength is defined by the user with a range input."
msgstr "Сила обмотки задается пользователем с помощью диапазона."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"The badge icon does not show level ID anymore. JShelter shows the number of "
"wrapping groups accessed by the current page. Report the number of calls for "
"wrapped APIs in the pop up."
msgstr ""
"Значок бейджа больше не показывает ID уровня. JShelter показывает количество "
"групп обёрток, к которым обращается текущая страница. Сообщение о количестве "
"вызовов обернутых API во всплывающем окне."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid "Level 1 removed as it was not properly maintained."
msgstr "Уровень 1 удален, так как он не поддерживался должным образом."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid "Timestamp protection in level 2 increased to match level 3."
msgstr "Защита временных меток на уровне 2 увеличена до уровня 3."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"XHR wrappings and (sharred) array buffers not wrapped anymore as XHR is "
"superseded by FPD and array buffers break other APIs."
msgstr ""
"Обертки XHR и (sharred) буферов массивов больше не обертываются, поскольку "
"XHR вытеснен FPD, а буферы массивов нарушают другие API."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid "New experimental level added that is based on original level 3."
msgstr ""
"Добавлен новый экспериментальный уровень, основанный на оригинальном уровне "
"3."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid "Better and much longer description of built-in levels."
msgstr "Улучшенное и гораздо более длинное описание встроенных уровней."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"Added support for device rotation. Accelerometer, LinearAccelerationSensor, "
"GravitySensor, and Magnetometer now adjust the gravity vector by the "
"rotation matrix."
msgstr ""
"Добавлена поддержка вращения устройства. Акселерометр, датчик линейного "
"ускорения, датчик гравитации и магнитометр теперь корректируют вектор "
"гравитации по матрице вращения."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"AmbientLightSensor, Gyroscope, AbsoluteOrientationSensor, and "
"RelativeOrientationSensor wrappers added."
msgstr ""
"Добавлены обертки AmbientLightSensor, Гироскоп, AbsoluteOrientationSensor и "
"RelativeOrientationSensor."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid "Accessibility improvements in pop up."
msgstr "Улучшение доступности во всплывающем окне."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"New colour scheme based on the logo and JShelter.org web site for both light "
"and dark theme."
msgstr ""
"Новая цветовая схема, основанная на логотипе и сайте JShelter.org, для "
"светлой и темной темы."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid "Load FPD settings from advanced options correctly."
msgstr "Правильная загрузка настроек FPD из дополнительных параметров."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"Some inconsistences in update mechanism of hardware and enumerateDevices "
"found and fixed."
msgstr ""
"Найдены и исправлены некоторые несоответствия в механизме обновления "
"аппаратного обеспечения и enumerateDevices."

#: ../content/pages/versions.md:block 49 (unordered list)
msgid ""
"Level settings are not backward-comptible, backup 0.6.x configuration if you "
"plan to downgrade."
msgstr ""
"Настройки уровня не поддерживают обратную совместимость, создайте резервную "
"копию конфигурации 0.6.x, если вы планируете переходить на новый уровень."

#: ../content/pages/versions.md:block 50 (header)
#, fuzzy
msgid "0.6.5"
msgstr "0.6.5"

#: ../content/pages/versions.md:block 51 (unordered list)
msgid "Update NSCL to work around a change in Chrome permissions:"
msgstr "Обновите NSCL, чтобы обойти изменения в разрешениях Chrome:"

#: ../content/pages/versions.md:block 51 (unordered list)
msgid ""
"Use HTTPS endpoint for Chromium (works around lack of file access by default "
"on packed extensions), see also https://forums.informaction.com/viewtopic."
"php?p=104921#p104921"
msgstr ""
"Используйте конечную точку HTTPS для Chromium (позволяет обойти отсутствие "
"доступа к файлам по умолчанию для упакованных расширений), см. также https://"
"forums.informaction.com/viewtopic.php?p=104921#p104921"

#: ../content/pages/versions.md:block 51 (unordered list)
msgid ""
"Also includes a work-around for object element initialization "
"inconsistencies on Firefox"
msgstr ""
"Также включено решение проблемы несоответствия инициализации элементов "
"объекта в Firefox"

#: ../content/pages/versions.md:block 52 (header)
#, fuzzy
msgid "0.6.4"
msgstr "0.6.4"

#: ../content/pages/versions.md:block 53 (unordered list)
msgid ""
"Fix wrapping of `navigator.plugins` in Firefox. This regression appeared in "
"0.6 in the generated code restricted by `apply_if` condition."
msgstr ""
"Исправление обертывания `navigator.plugins` в Firefox. Эта регрессия "
"появилась в 0.6 в сгенерированном коде, ограниченном условием `apply_if`."

#: ../content/pages/versions.md:block 54 (header)
#, fuzzy
msgid "0.6.3"
msgstr "0.6.3"

#: ../content/pages/versions.md:block 55 (unordered list)
msgid ""
"Make sure that dynamically created iframes are not vulnerable to leaking "
"unwrapped APIs (Update NSCL)"
msgstr ""
"Убедитесь, что динамически создаваемые iframes не уязвимы для утечки "
"незакрытых API (Обновление NSCL)"

#: ../content/pages/versions.md:block 55 (unordered list)
msgid "Fix FPD when run in a limited environment"
msgstr "Исправление FPD при запуске в ограниченном окружении"

#: ../content/pages/versions.md:block 55 (unordered list)
msgid "Do not interfere with time explicitly given to Date object"
msgstr "Не вмешивайтесь во время, явно отведенное объекту Date"

#: ../content/pages/versions.md:block 55 (unordered list)
msgid "Fix Network Boundary Shield name in the popup"
msgstr "Исправьте название щита сетевой границы во всплывающем окне"

#: ../content/pages/versions.md:block 56 (header)
#, fuzzy
msgid "0.6.2"
msgstr "0.6.2"

#: ../content/pages/versions.md:block 57 (unordered list)
msgid ""
"Fix required permissions for Chromium-based browsers - webNavigation is not "
"needed"
msgstr ""
"Исправьте необходимые разрешения для браузеров на базе Chromium - "
"webNavigation не нужна"

#: ../content/pages/versions.md:block 58 (header)
#, fuzzy
msgid "0.6.1"
msgstr "0.6.1"

#: ../content/pages/versions.md:block 59 (unordered list)
msgid "Disable FPD by default, you are welcome to opt-in"
msgstr "Отключите FPD по умолчанию, вы можете отказаться от использования"

#: ../content/pages/versions.md:block 59 (unordered list)
msgid "Provide access to advanced options from the main options page"
msgstr "Обеспечьте доступ к расширенным опциям с главной страницы опций"

#: ../content/pages/versions.md:block 59 (unordered list)
msgid "Fix update script to migrate to new configuration"
msgstr "Исправьте скрипт обновления для перехода на новую конфигурацию"

#: ../content/pages/versions.md:block 60 (header)
#, fuzzy
msgid "0.6"
msgstr "0.6"

#: ../content/pages/versions.md:block 61 (unordered list)
msgid "New protection: Fingerprint detector, see the blogpost for explanation."
msgstr "Новая защита: Детектор отпечатков пальцев, см. пояснения в блоге."

#: ../content/pages/versions.md:block 61 (unordered list)
msgid ""
"Physical environment wrapper group added. It contains `Sensor`, "
"`Magnetometer`, `Accelerometer`, `LinearAccelerationSensor`, `GravitySensor` "
"wrappers. Some readings might be inconsistent. `Gyroscope` and `Orientation` "
"sensors will be a part of a future release."
msgstr ""
"Добавлена группа оберток для физической среды. Она содержит обертки `Датчик`"
", `Магнитометр`, `Акселерометр`, `Датчик линейного ускорения`, `Датчик "
"гравитации`. Некоторые показания могут быть непоследовательными. Датчики "
"`Гироскоп` и `Ориентация` будут включены в будущий релиз."

#: ../content/pages/versions.md:block 61 (unordered list)
msgid "It is possible to import/export configuration (Github issue #159)."
msgstr ""
"Появилась возможность импорта/экспорта конфигурации (Github issue #159)."

#: ../content/pages/versions.md:block 61 (unordered list)
msgid "Improved accessibility of the pop up and option pages."
msgstr "Улучшена доступность всплывающих и дополнительных страниц."

#: ../content/pages/versions.md:block 61 (unordered list)
msgid ""
"Bugfix: Fix double injection of some wrappers. For example, this solves "
"regression in Geolocation wrapper introduced in 0.5."
msgstr ""
"Исправление: Исправление двойной инъекции в некоторых обертках. Например, "
"это решает регрессию в обертке Геолокация, появившуюся в 0.5."

#: ../content/pages/versions.md:block 62 (header)
#, fuzzy
msgid "0.5.5"
msgstr "0.5.5"

#: ../content/pages/versions.md:block 63 (unordered list)
msgid "Tighter content script initialization"
msgstr "Более жесткая инициализация сценариев контента"

#: ../content/pages/versions.md:block 63 (unordered list)
msgid ""
"Bugfix: wrap `Navigator.prototype` and `Geolocation.prototype` instead of "
"`navigator` and `navigator.geolocation`"
msgstr ""
"Исправление: оберните `Navigator.prototype` и `Geolocation.prototype` вместо "
"`navigator` и `navigator.geolocation`"

#: ../content/pages/versions.md:block 63 (unordered list)
msgid ""
"Remove additional Geolocation API objects when Geolocation is disabled "
"completely"
msgstr ""
"Удалите дополнительные объекты Geolocation API, когда геолокация полностью "
"отключена"

#: ../content/pages/versions.md:block 63 (unordered list)
msgid "Icons updated and synced with the JShelter website"
msgstr "Иконки обновляются и синхронизируются с веб-сайтом JShelter"

#: ../content/pages/versions.md:block 64 (header)
#, fuzzy
msgid "0.5.4"
msgstr "0.5.4"

#: ../content/pages/versions.md:block 65 (unordered list)
msgid "Dark style support added (Github issue #134)"
msgstr "Добавлена поддержка темного стиля (Github issue #134)"

#: ../content/pages/versions.md:block 65 (unordered list)
msgid "Bugfix: Removal of debugging noise (Github issue #139)"
msgstr "Исправление: Удаление шума при отладке (Github issue #139)"

#: ../content/pages/versions.md:block 65 (unordered list)
msgid ""
"Bugfix: Allow removal of user-defined levels with names of a built-in level"
msgstr ""
"Исправление: Разрешить удаление пользовательских уровней с именами "
"встроенного уровня"

#: ../content/pages/versions.md:block 65 (unordered list)
msgid ""
"Bugfix: Make sure that all user-defined levels are displayed in \"Specific "
"domain level configuration\" settings page"
msgstr ""
"Исправление: Убедитесь, что все пользовательские уровни отображаются на "
"странице настроек \"Конфигурация конкретного уровня домена\""

#: ../content/pages/versions.md:block 65 (unordered list)
msgid "Bugfix: Ignore non-existing levels for a specific domain"
msgstr ""
"Исправление: игнорирование несуществующих уровней для определенного домена"

#: ../content/pages/versions.md:block 66 (header)
#, fuzzy
msgid "0.5.3"
msgstr "0.5.3"

#: ../content/pages/versions.md:block 67 (unordered list)
msgid ""
"Bugfix: Cascade top document's level to subframes with no explicitly "
"assigned level. (workaround for Github issue #133)."
msgstr ""
"Исправление: каскадный перенос уровня верхнего документа на подкадры без "
"явно заданного уровня. (обходное решение для проблемы #133 на Github)."

#: ../content/pages/versions.md:block 67 (unordered list)
msgid "Bugfix: Improve IPv6 handling in NBS"
msgstr "Исправление: Улучшение работы с IPv6 в NBS"

#: ../content/pages/versions.md:block 67 (unordered list)
msgid ""
"Bugfix (Chromium-based browsers): Fix per-domain level options/settings page "
"(Github issue #147)"
msgstr ""
"Исправление (браузеры на базе Chromium): Исправление страницы опций/настроек "
"на уровне домена (Github issue #147)"

#: ../content/pages/versions.md:block 67 (unordered list)
msgid ""
"Do not display NBS notifications when accessing 0.0.0.0 and :: (workaround "
"for Github issue #125)"
msgstr ""
"Не отображать уведомления NBS при доступе к 0.0.0.0 и :: (обходное решение "
"для проблемы #125 на Github)"

#: ../content/pages/versions.md:block 67 (unordered list)
msgid "Improve NBS description in the option/settings page."
msgstr "Улучшите описание NBS на странице опций/настроек."

#: ../content/pages/versions.md:block 67 (unordered list)
msgid "Display level names in the pop up to improve usability."
msgstr ""
"Отображение названий уровней во всплывающем окне для повышения удобства "
"использования."

#: ../content/pages/versions.md:block 68 (header)
#, fuzzy
msgid "0.5.2"
msgstr "0.5.2"

#: ../content/pages/versions.md:block 69 (unordered list)
msgid ""
"Bugfix: Do not modify JS environment on level 0. Regression appeared in 0.5."
msgstr ""
"Исправление: Не изменяйте окружение JS на уровне 0. Регрессия появилась в "
"0.5."

#: ../content/pages/versions.md:block 70 (header)
#, fuzzy
msgid "0.5.1"
msgstr "0.5.1"

#: ../content/pages/versions.md:block 71 (unordered list)
msgid ""
"Bugfix: Display correctly NBS status at the current page (Github issue #114)"
msgstr ""
"Исправление: корректное отображение статуса NBS на текущей странице (Github "
"issue #114)"

#: ../content/pages/versions.md:block 71 (unordered list)
msgid "Rebranding step 1: change UI-facing icons"
msgstr ""
"Шаг 1. Ребрендинг: измените иконки, обращенные к пользовательскому интерфейсу"

#: ../content/pages/versions.md:block 71 (unordered list)
msgid ""
"Set minimal pop up width so that the pop up is usable in Chrome (Github "
"issue #112, Pagure issue #7)"
msgstr ""
"Установите минимальную ширину всплывающего окна, чтобы его можно было "
"использовать в Chrome (Github issue #112, Pagure issue #7)"

#: ../content/pages/versions.md:block 71 (unordered list)
msgid ""
"Chromium-based browsers: revise Battery API protection that should match the "
"expectations of page scripts (mimic Firefox behaviour)."
msgstr ""
"Браузеры на базе Chromium: пересмотрите защиту батареи API, которая должна "
"соответствовать ожиданиям скриптов страниц (подражание поведению Firefox)."

#: ../content/pages/versions.md:block 71 (unordered list)
msgid "Fixed typos in settings."
msgstr "Исправлены опечатки в настройках."

#: ../content/pages/versions.md:block 72 (header)
#, fuzzy
msgid "0.5"
msgstr "0.5"

#: ../content/pages/versions.md:block 73 (unordered list)
msgid ""
"Add fingerprinting defenses based on Farbling developed by the Brave browser "
"(improved or added wrappers for Canvas, Audio, WebGL, device memory, "
"hardware concurrency, enumerateDevices). Most wrappers support provisioning "
"of little lies that differ between origins and sessions (the fingeprint is "
"different across origins and across sessions)."
msgstr ""
"Добавьте защиту от отпечатков пальцев на основе Farbling, разработанного "
"браузером Brave (улучшенные или добавленные обертки для Canvas, Audio, "
"WebGL, памяти устройств, аппаратного параллелизма, enumerateDevices). "
"Большинство обёрток поддерживают предоставление отпечатков пальцев, которые "
"отличаются в разных источниках и сессиях (отпечаток пальца отличается в "
"разных источниках и сессиях)."

#: ../content/pages/versions.md:block 73 (unordered list)
msgid ""
"We claimed to generate white image fake Canvas value but instead generated "
"fully transparent black image. We now generate the white image as it is more "
"common in other anti-canvas fingerprinting tools (level 3)."
msgstr ""
"Мы заявляли, что генерируем белое изображение, подделывая значение Canvas, "
"но вместо этого сгенерировали полностью прозрачное черное изображение. "
"Теперь мы генерируем белое изображение, так как оно более распространено в "
"других инструментах для борьбы с отпечатками пальцев (уровень 3)."

#: ../content/pages/versions.md:block 73 (unordered list)
msgid "toDataUrl() no longer destructs the original canvas."
msgstr "toDataUrl() больше не уничтожает исходный холст."

#: ../content/pages/versions.md:block 73 (unordered list)
msgid ""
"We use NoScript Commons Library to simplify some tasks like cross-browser "
"support."
msgstr ""
"Мы используем библиотеку NoScript Commons библиотеку для упрощения некоторых "
"задач, таких как поддержка кросс-браузерности."

#: ../content/pages/versions.md:block 73 (unordered list)
msgid "More reliable early content script configuration."
msgstr "Более надежная настройка сценария раннего контента."

#: ../content/pages/versions.md:block 73 (unordered list)
msgid ""
"CSP headers no longer prevents the extension from wrapping JS APIs in "
"Firefox (Github issue #25)"
msgstr ""
"Заголовки CSP больше не мешают расширению оборачивать JS API в Firefox ("
"Github issue #25)"

#: ../content/pages/versions.md:block 73 (unordered list)
msgid ""
"Wrappers should be injected reliably before page scripts start to operate "
"(Github issue #40)"
msgstr ""
"Обертки должны надежно внедряться до того, как начнут работать скрипты "
"страницы (проблема #40 на Github)"

#: ../content/pages/versions.md:block 73 (unordered list)
msgid "We use NSCL to wrap APIs in iframes and workers"
msgstr "Мы используем NSCL, чтобы обернуть API в фреймы и рабочие элементы"

#: ../content/pages/versions.md:block 73 (unordered list)
msgid ""
"It is no longer possible to access unwrapped functions from iframes and "
"workers (Pagure issue #2, Github issue #56)"
msgstr ""
"Больше невозможно получить доступ к развернутым функциям из ифреймов и "
"рабочих (Pagure issue #2, Github issue #56)"

#: ../content/pages/versions.md:block 73 (unordered list)
msgid ""
"Ignore trailing '.' in domain names when selecting appropriate custom level."
msgstr ""
"Игнорируйте концевые '.' в именах доменов при выборе соответствующего "
"пользовательского уровня."

#: ../content/pages/versions.md:block 73 (unordered list)
msgid ""
"Do not freeze wrappers to prevent fingerprintability of the users of "
"JShelter. We wrap the correct function in the prototype chain instead."
msgstr ""
"Не замораживайте обертки, чтобы предотвратить отпечатки пальцев у "
"пользователей JShelter. Вместо этого мы обертываем нужную функцию в цепочку "
"прототипов."

#: ../content/pages/versions.md:block 73 (unordered list)
msgid "navigator.getGamepads() wrapper added"
msgstr "Добавлена обертка navigator.getGamepads()"

#: ../content/pages/versions.md:block 73 (unordered list)
msgid "navigator.activeVRDisplays() and navigator.xr wrappers added"
msgstr "Добавлены обертки navigator.activeVRDisplays() и navigator.xr"

#: ../content/pages/versions.md:block 73 (unordered list)
msgid ""
"Limit precision of high resolution timestamps in the Event, VRFrameData, and "
"Gamepad interface to be consistent with Date and Performance precision"
msgstr ""
"Ограничьте точность временных меток высокого разрешения в интерфейсе "
"Событий, VRFrameData и Геймпада, чтобы она соответствовала точности Даты и "
"Производительности"

#: ../content/pages/versions.md:block 74 (header)
#, fuzzy
msgid "0.4.7"
msgstr "0.4.7"

#: ../content/pages/versions.md:block 75 (unordered list)
msgid "Wrap Beacon API"
msgstr "API для обертывания маяков"

#: ../content/pages/versions.md:block 75 (unordered list)
msgid "Bugfix: inject content scripts to all iframes"
msgstr "Исправление: внедрение скриптов содержимого во все фреймы"

#: ../content/pages/versions.md:block 75 (unordered list)
msgid ""
"Fix exception throwing in the code generator dealing with Firefox bug 1267027"
msgstr ""
"Исправьте выброс исключений в генераторе кода, связанный с ошибкой Firefox "
"1267027"

#: ../content/pages/versions.md:block 76 (header)
#, fuzzy
msgid "0.4.6"
msgstr "0.4.6"

#: ../content/pages/versions.md:block 77 (unordered list)
msgid ""
"NBS improvements for Chromium-based browsers: block a host after detecting "
"the first suspicious HTTP request from the public to the private network."
msgstr ""
"Улучшения NBS для браузеров на базе Chromium: блокировка хоста после "
"обнаружения первого подозрительного HTTP-запроса из публичной в частную сеть."

#: ../content/pages/versions.md:block 78 (header)
#, fuzzy
msgid "0.4.5"
msgstr "0.4.5"

#: ../content/pages/versions.md:block 79 (unordered list)
msgid "Add wrapper of MediaDevices.prototype.enumerateDevices"
msgstr "Добавьте обертку MediaDevices.prototype.enumerateDevices"

#: ../content/pages/versions.md:block 79 (unordered list)
msgid "Fix missing Date properties"
msgstr "Исправьте отсутствующие свойства даты"

#: ../content/pages/versions.md:block 79 (unordered list)
msgid "Fix Geolocation overflows appearing near poles"
msgstr "Исправьте переполнения геолокации, возникающие вблизи полюсов"

#: ../content/pages/versions.md:block 79 (unordered list)
msgid "Improve handling of domain names (URLs):"
msgstr "Улучшение работы с доменными именами (URL):"

#: ../content/pages/versions.md:block 79 (unordered list)
msgid "Handle IPv4 addresses used as hostnames correctly"
msgstr "Правильная обработка адресов IPv4, используемых в качестве имен хостов"

#: ../content/pages/versions.md:block 79 (unordered list)
msgid ""
"Do not treat TLD specially and allow specifying wrapping levels for TLDs"
msgstr ""
"Не относиться к ДВУ особым образом и разрешить указывать уровни обертки для "
"ДВУ"

#: ../content/pages/versions.md:block 79 (unordered list)
msgid "Fix handling of two-letters 2-nd level domains"
msgstr "Исправление обработки двухбуквенных доменов 2-го уровня"

#: ../content/pages/versions.md:block 80 (header)
#, fuzzy
msgid "0.4.4"
msgstr "0.4.4"

#: ../content/pages/versions.md:block 81 (unordered list)
msgid ""
"Bugfix: Do not try to redefine undefined objects. The exceptions thrown in "
"injected code used to prevent application of all the wrapping code."
msgstr ""
"Исправление: не пытайтесь переопределять неопределенные объекты. Исключения, "
"брошенные в инжектированном коде, не позволяли применить весь обёрточный код."

#: ../content/pages/versions.md:block 82 (header)
#, fuzzy
msgid "0.4.3"
msgstr "0.4.3"

#: ../content/pages/versions.md:block 83 (unordered list)
msgid "Add an option to clear `window.name` with each page reload."
msgstr ""
"Добавьте возможность очищать `window.name` при каждой перезагрузке страницы."

#: ../content/pages/versions.md:block 84 (header)
#, fuzzy
msgid "0.4.2"
msgstr "0.4.2"

#: ../content/pages/versions.md:block 85 (unordered list)
msgid ""
"Rewrite the NBS for Chromium-based browsers with custom DNS cache build with "
"resolved data available in onResponseStartedListener()"
msgstr ""
"Перепишите NBS для браузеров на базе Chromium с пользовательской сборкой DNS-"
"кэша, чтобы разрешенные данные были доступны в onResponseStartedListener()"

#: ../content/pages/versions.md:block 86 (header)
#, fuzzy
msgid "0.4.1"
msgstr "0.4.1"

#: ../content/pages/versions.md:block 87 (unordered list)
msgid ""
"Fix the amount of saved data through pop-up (for a specific domain), it is "
"much harder to reach the quoa"
msgstr ""
"Фиксируйте количество сохраненных данных через всплывающее окно (для "
"конкретного домена), так гораздо сложнее достичь квоа"

#: ../content/pages/versions.md:block 88 (header)
#, fuzzy
msgid "0.4"
msgstr "0.4"

#: ../content/pages/versions.md:block 89 (unordered list)
msgid "Re-introduced Geolocation API wrapping (several settings available)."
msgstr ""
"Вновь введена обёртка Геолокационного API (доступно несколько настроек)."

#: ../content/pages/versions.md:block 90 (header)
#, fuzzy
msgid "0.3.2"
msgstr "0.3.2"

#: ../content/pages/versions.md:block 91 (unordered list)
msgid "Bugfix: Set up domain-specific levels from storage correctly"
msgstr "Исправление: корректная настройка доменных уровней из хранилища"

#: ../content/pages/versions.md:block 91 (unordered list)
msgid ""
"Wrap PerformanceEntry instead of performance.getEntries\\*() - prevents a "
"known leak of precise time stamps in Chromium-based browsers."
msgstr ""
"Оберните PerformanceEntry вместо performance.getEntries\\*() - предотвращает "
"известную утечку точных временных меток в браузерах на базе Chromium."

#: ../content/pages/versions.md:block 91 (unordered list)
msgid "Add note on the effectivity of time randomization"
msgstr "Добавьте заметку об эффективности рандомизации времени"

#: ../content/pages/versions.md:block 91 (unordered list)
msgid ""
"Firefox fix background and content scripts synchronization, use correct "
"naming (improves speed)"
msgstr ""
"Firefox исправляет синхронизацию скриптов фона и контента, использует "
"правильное именование (улучшает скорость)"

#: ../content/pages/versions.md:block 91 (unordered list)
msgid ""
"Time wrappers in Firefox affected by the <a href=\"https://bugzilla.mozilla."
"org/show_bug.cgi?id=1267027\">Fiefox CSP bug</a> should work better. "
"However, the precise timers are not wrapped, see also <a href=\"https://"
"github.com/polcak/jsrestrictor/issues/25\">#25</a>."
msgstr ""
"Временные обертки в Firefox, затронутые <a href="
"\"https://bugzilla.mozilla.org/show_bug.cgi?id=1267027\">багом CSP в "
"Firefox</a>, должны работать лучше. Однако точные таймеры не оборачиваются, "
"см. также <a href=\"https://github.com/polcak/jsrestrictor/issues/25\""
">#25</a>."

#: ../content/pages/versions.md:block 91 (unordered list)
msgid "NBS message for Chromium-based browsers reworded."
msgstr "Переформулировано сообщение NBS для браузеров на базе Chromium."

#: ../content/pages/versions.md:block 92 (header)
#, fuzzy
msgid "0.3.1"
msgstr "0.3.1"

#: ../content/pages/versions.md:block 93 (unordered list)
msgid "Improve compatibility with Chromium based browsers"
msgstr "Улучшение совместимости с браузерами на базе Chromium"

#: ../content/pages/versions.md:block 94 (header)
#, fuzzy
msgid "0.3"
msgstr "0.3"

#: ../content/pages/versions.md:block 95 (unordered list)
msgid "Major code rewrite - make the code more modular, remove duplications"
msgstr ""
"Большая переработка кода - сделать код более модульным, убрать дублирование"

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"Add wrappings inspired by [JavaScript Zero: Real JavaScript and Zero S ide-"
"Channel Attacks](https://misc0110.net/web/files/jszero.pdf)"
msgstr ""
"Добавьте обертки, вдохновленные "
"[JavaScript Zero: Реальный JavaScript и атаки на нулевые каналы](https://"
"misc0110.net/web/files/jszero.pdf)"

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"Network Boundary Shield prevents web pages to use the browser as a proxy "
"between local network and the public Internet. See the [Force Point report]"
"(https://www.forcepoint.com/sites/default/files/resources/files/report-"
"attacking-internal-network-en_0.pdf) for an example of the attack. The "
"protection encapsulates the WebRequest API, so it captures all outgoing "
"requests."
msgstr ""
"Network Boundary Shield предотвращает использование веб-страниц браузером в "
"качестве прокси между локальной сетью и публичным Интернетом. Пример атаки "
"см. в [отчете Force Point](https://www.forcepoint.com/sites/default/files/"
"resources/files/report-attacking-internal-network-en_0.pdf). Защита "
"инкапсулирует API WebRequest, поэтому перехватывает все исходящие запросы."

#: ../content/pages/versions.md:block 95 (unordered list)
msgid "Allow multiple custom levels"
msgstr "Разрешить несколько пользовательских уровней"

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"Do not modify DOM of displayed pages (the modifications were detectable by "
"the page scripts and may reveal that the user is running JShelter)"
msgstr ""
"Не модифицировать DOM отображаемых страниц (модификации могут быть "
"обнаружены скриптами страниц и могут показать, что пользователь запускает "
"JShelter)"

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"Canvas fingerprinting: originally, only `toDataURL` was blocked. The "
"extension now blocks `CanvasRenderingContext2D.prototype.getImageData` and "
"`HTMLCanvasElement.prototype.toBlob`."
msgstr ""
"Отпечаток холста: первоначально блокировался только `toDataURL`. Теперь "
"расширение блокирует `CanvasRenderingContext2D.prototype.getImageData` и "
"`HTMLCanvasElement.prototype.toBlob`."

#: ../content/pages/versions.md:block 95 (unordered list)
msgid "Block additionaly methods to get performance data."
msgstr "Блокируйте дополнительные методы получения данных о производительности."

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"Unfortunately, we do not migrate old settings as the levels were redesigned "
"and several features were removed. We expect to migrate previous settings in "
"the future."
msgstr ""
"К сожалению, мы не переносим старые настройки, так как уровни были "
"переработаны и некоторые функции были удалены. Мы планируем перенести "
"прежние настройки в будущем."

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"Initial attempt to deal with a bug <https://bugzilla.mozilla.org/show_bug."
"cgi?id=1267027> but it does not work completely as expected, yet."
msgstr ""
"Первая попытка справиться с ошибкой <https://bugzilla.mozilla.org/"
"show_bug.cgi?id=1267027>, но она пока работает не совсем так, как ожидалось."

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"Make sure that calling toString on the wrapped function does not leak the "
"wrapping code."
msgstr ""
"Убедитесь, что вызов toString в обернутой функции не приводит к утечке кода "
"обертки."

#: ../content/pages/versions.md:block 95 (unordered list)
msgid "Fix original canvas method leaks through iframes"
msgstr "Исправьте утечку метода оригинального холста через фреймы"

#: ../content/pages/versions.md:block 95 (unordered list)
msgid "Do not allow page scripts to delete wrappers"
msgstr "Не разрешайте скриптам страниц удалять обертки"

#: ../content/pages/versions.md:block 95 (unordered list)
msgid "GUI rewritten."
msgstr "GUI переписан."

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"Do not open the main page after browser or extension update as it is "
"irritating and may send a signal that the user is tracked."
msgstr ""
"Не открывайте главную страницу после обновления браузера или расширения, так "
"как это раздражает и может послужить сигналом, что за пользователем следят."

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"*Removed feature* Do not change request HTTP headers. See the paper FP-"
"Scanner: The privacy implications of browser fingerprint inconsistencies and "
"pages like <https://ghacksuserjs.github.io/TorZillaPrint/TorZillaPrint.html>."
msgstr ""
"*Удаленная функция* Не изменяйте HTTP-заголовки запросов. См. статью FP-"
"Scanner: Последствия несоответствия отпечатков пальцев в браузере для "
"конфиденциальности и страницы вроде <https://ghacksuserjs.github.io/"
"TorZillaPrint/TorZillaPrint.html>."

#: ../content/pages/versions.md:block 95 (unordered list)
msgid ""
"*Removed feature* GPS/location is not blocked anymore, we expect to "
"reintroduce this feature in the future."
msgstr ""
"*Удаленная функция* GPS/локация больше не блокируется, мы планируем "
"восстановить эту функцию в будущем."

#: ../content/pages/versions.md:block 96 (header)
#, fuzzy
msgid "0.2.1"
msgstr "0.2.1"

#: ../content/pages/versions.md:block 97 (unordered list)
msgid ""
"Fix `Date` wrapping that used to break some pages; `Date` wrapping code "
"improved"
msgstr ""
"Исправление обертывания `даты`, которое приводило к поломке некоторых "
"страниц; улучшен код обертывания `даты`"

#: ../content/pages/versions.md:block 97 (unordered list)
msgid "Improve `XMLHttpRequest` wrapping"
msgstr "Улучшение обертки `XMLHttpRequest`"

#: ../content/pages/versions.md:block 98 (header)
#, fuzzy
msgid "0.2"
msgstr "0.2"

#: ../content/pages/versions.md:block 99 (unordered list)
msgid "Additional APIs that can be wrapped:"
msgstr "Дополнительные API, которые можно обернуть:"

#: ../content/pages/versions.md:block 99 (unordered list)
msgid ""
"`navigator` properties: `userAgent`, `vendor`, `platform`, `appVersion`, "
"`oscpu`, `language`, `languages`"
msgstr ""
"Свойства `навигатора`: `userAgent`, `вендор`, `платформа`, `appVersion`, "
"`oscpu`, `язык`, `языки`"

#: ../content/pages/versions.md:block 99 (unordered list)
msgid "`document` properties: `referrer`"
msgstr "Свойства `документа`: `реферрер`"

#: ../content/pages/versions.md:block 100 (header)
#, fuzzy
msgid "0.1"
msgstr "0.1"

#: ../content/pages/versions.md:block 101 (unordered list)
msgid "Initial public version"
msgstr "Первоначальная публичная версия"

#: ../content/pages/home-tmp.md:block 2 (header)
msgid ""
"JShelter logo\n"
"JShelter"
msgstr ""
"Логотип JShelter\n"
"JShelter"

#: ../content/pages/home-tmp.md:block 3 (paragraph)
msgid ""
"An anti-malware Web browser extension to mitigate potential threats from "
"JavaScript, including fingerprinting, tracking, and data collection!"
msgstr ""
"Расширение для веб-браузеров, защищающее от потенциальных угроз JavaScript, "
"включая отпечатки пальцев, отслеживание и сбор данных!"

#: ../content/pages/home-tmp.md:block 4 (paragraph)
msgid ""
"[Install in Firefox](https://addons.mozilla.org/firefox/addon/javascript-"
"restrictor/ \"https://addons.mozilla.org/firefox/addon/javascript-restrictor/"
"\") [Install in Chrome](https://chrome.google.com/webstore/detail/javascript-"
"restrictor/ammoloihpcbognfddfjcljgembpibcmb \"https://chrome.google.com/"
"webstore/detail/javascript-restrictor/ammoloihpcbognfddfjcljgembpibcmb\") "
"[Install in Opera](https://addons.opera.com/extensions/details/javascript-"
"restrictor/ \"https://addons.opera.com/extensions/details/javascript-"
"restrictor/\")"
msgstr ""
"[Установить в Firefox](https://addons.mozilla.org/firefox/addon/"
"javascript-restrictor/ "
"\"https://addons.mozilla.org/firefox/addon/javascript-restrictor/\") "
"[Установить в Chrome](https://chrome.google.com/webstore/detail/"
"javascript-restrictor/ammoloihpcbognfddfjcljgembpibcmb \"https://"
"chrome.google.com/webstore/detail/javascript-restrictor/"
"ammoloihpcbognfddfjcljgembpibcmb\") [Установить в Opera](https://"
"addons.opera.com/extensions/details/javascript-restrictor/ "
"\"https://addons.opera.com/extensions/details/javascript-restrictor/\")"

#: ../content/pages/home-tmp.md:block 5 (paragraph)
msgid "Visit the [Install page](/install \"/install\") for other options"
msgstr ""
"Посетите страницу [Установка](/install \"/install\"), чтобы узнать другие "
"варианты"

#: ../content/pages/home-tmp.md:block 6 (header)
msgid "About"
msgstr "Об"

#: ../content/pages/home-tmp.md:block 7 (header)
msgid "What is JShelter?"
msgstr "Что такое JShelter?"

#: ../content/pages/home-tmp.md:block 8 (paragraph)
msgid ""
"JShelter is a browser extension to give you control over what your browser "
"is doing. A JavaScript-enabled web page can access much of the browser's "
"functionality, with little control over this process available to the user: "
"malicious websites can uniquely identify you through fingerprinting and use "
"other tactics for tracking your activity. JShelter improves the privacy and "
"security of your web browsing. For more details, see JShelter [threat model]"
"(/threatmodel/ \"/threatmodel/\")."
msgstr ""
"JShelter - это расширение для браузера, позволяющее контролировать действия "
"браузера. Веб-страница с поддержкой JavaScript может получить доступ ко "
"многим функциям браузера, при этом пользователь практически не может "
"контролировать этот процесс: вредоносные веб-сайты могут однозначно "
"идентифицировать вас по отпечаткам пальцев и использовать другие тактики для "
"отслеживания вашей активности. JShelter повышает уровень конфиденциальности "
"и безопасности просмотра веб-страниц. Более подробную информацию можно найти "
"в разделе JShelter [модель угрозы](/threatmodel/ \"/threatmodel/\")."

#: ../content/pages/home-tmp.md:block 9 (header)
msgid "How does it work?"
msgstr "Как это работает?"

#: ../content/pages/home-tmp.md:block 10 (paragraph)
msgid ""
"Like a firewall that controls network connections, JShelter controls the "
"APIs provided by the browser, restricting the data that they gather and send "
"out to websites. JShelter adds a safety layer that allows the user to choose "
"if a certain action should be forbidden on a site, or if it should be "
"allowed with restrictions, such as reducing the precision of geolocation to "
"the city area. This layer can also aid as a countermeasure against attacks "
"targeting the browser, operating system or hardware."
msgstr ""
"Подобно брандмауэру, контролирующему сетевые соединения, JShelter "
"контролирует API, предоставляемые браузером, ограничивая данные, которые они "
"собирают и отправляют на сайты. JShelter добавляет уровень безопасности, "
"который позволяет пользователю выбирать, запрещать ли определенное действие "
"на сайте или разрешать его с ограничениями, например, уменьшая точность "
"геолокации до района города. Этот слой также может помочь в борьбе с "
"атаками, направленными на браузер, операционную систему или аппаратное "
"обеспечение."

#: ../content/pages/home-tmp.md:block 11 (header)
msgid "How can I get started?"
msgstr "Как я могу начать?"

#: ../content/pages/home-tmp.md:block 12 (paragraph)
msgid ""
"First, install the extension using the button above or checking the various "
"[installation options](/install/ \"/install/\")."
msgstr ""
"Сначала установите расширение, используя кнопку выше или проверяя различные "
"[варианты установки](/install/ \"/install/\")."

#: ../content/pages/home-tmp.md:block 13 (paragraph)
msgid ""
"Afterwards, read our [FAQ](/faq/ \"/faq/\"), the [required permissions](/"
"permissions/ \"/permissions/\") and the different protection [levels](/"
"levels/ \"/levels/\")."
msgstr ""
"После этого прочитайте наш [FAQ](/faq/ \"/faq/\"), [необходимые разрешения](/"
"permissions/ \"/permissions/\") и различные [уровни] защиты (/levels/ "
"\"/levels/\")."

#: ../content/pages/home-tmp.md:block 14 (paragraph)
msgid ""
"For more details about what's going on under the hood, check out the "
"[JShelter blog](/blog/ \"/blog/\") and [paper](https://arxiv.org/"
"abs/2204.01392 \"https://arxiv.org/abs/2204.01392\")."
msgstr ""
"Более подробную информацию о том, что происходит под капотом, можно найти в "
"[блоге JShelter](/blog/ \"/blog/\") и [paper](https://arxiv.org/abs/"
"2204.01392 \"https://arxiv.org/abs/2204.01392\")."

#: ../content/pages/home-tmp.md:block 15 (header)
msgid "Who's behind this project?"
msgstr "Кто стоит за этим проектом?"

#: ../content/pages/home-tmp.md:block 16 (paragraph)
msgid "See the [credits page](/credits/ \"/credits/\")."
msgstr "См. страницу [credits page](/credits/ \"/credits/\")."

#: ../content/pages/home-tmp.md:block 17 (header)
msgid "Contribute"
msgstr "Вклад"

#: ../content/pages/home-tmp.md:block 18 (header)
msgid "I found a bug!"
msgstr "Я нашел ошибку!"

#: ../content/pages/home-tmp.md:block 19 (paragraph)
msgid ""
"If you have any questions or you spotted a bug, the project's [issue tracker]"
"(https://pagure.io/JShelter/webextension/issues \"https://pagure.io/JShelter/"
"webextension/issues\") is the place for posting those. We especially "
"appreciate feedback, so feel free to use the issue tracker for chiming in."
msgstr ""
"Если у вас есть вопросы или вы заметили ошибку, вы можете написать об этом в "
"[issue tracker](https://pagure.io/JShelter/webextension/issues "
"\"https://pagure.io/JShelter/webextension/issues\"). Мы особенно ценим "
"обратную связь, поэтому не стесняйтесь использовать issue tracker для "
"сообщений."

#: ../content/pages/home-tmp.md:block 20 (header)
msgid "How can I help?"
msgstr "Как я могу помочь?"

#: ../content/pages/home-tmp.md:block 21 (paragraph)
msgid ""
"Using JShelter and reporting any problems you find in our [issue tracker]"
"(https://pagure.io/JShelter/webextension/issues \"https://pagure.io/JShelter/"
"webextension/issues\") is a huge help. If you want to contribute to the "
"project itself, post your ideas on the issue tracker or just go ahead and "
"make a pull request."
msgstr ""
"Использование JShelter и сообщения о найденных проблемах в нашем "
"[issue tracker](https://pagure.io/JShelter/webextension/issues "
"\"https://pagure.io/JShelter/webextension/issues\") - это огромная помощь. "
"Если вы хотите внести свой вклад в сам проект, опубликуйте свои идеи на "
"трекере проблем или просто сделайте pull request."

#: ../content/pages/home-tmp.md:block 22 (header)
msgid "What is the license?"
msgstr "Что такое лицензия?"

#: ../content/pages/home-tmp.md:block 23 (paragraph)
msgid ""
"JShelter is copylefted software, available under the [GNU General Public "
"License](/license/ \"/license/\")."
msgstr ""
"JShelter - это программное обеспечение с авторским левом, доступное на "
"условиях [GNU General Public License] (/license/ \"/license/\")."
