src/eric7/i18n/eric7_ru.ts

branch
eric7
changeset 9392
e4ef29776404
parent 9389
7b2344009d7a
child 9405
99e65bd24e7d
--- a/src/eric7/i18n/eric7_ru.ts	Fri Oct 07 14:27:24 2022 +0200
+++ b/src/eric7/i18n/eric7_ru.ts	Fri Oct 07 14:48:48 2022 +0200
@@ -56481,8 +56481,8 @@
       <translation>&lt;b&gt;Покрытие кода...&lt;/b&gt;&lt;p&gt;Показать информацию покрытия кода всех Python-файлов проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5832" />
-      <location filename="../Project/Project.py" line="5819" />
+      <location filename="../Project/Project.py" line="5856" />
+      <location filename="../Project/Project.py" line="5843" />
       <location filename="../Project/Project.py" line="4649" />
       <source>Profile Data</source>
       <translation>Данные профайлера</translation>
@@ -56503,7 +56503,7 @@
       <translation>&lt;b&gt;Данные профайлера...&lt;/b&gt;&lt;p&gt;Отображение результатов профилирования проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5884" />
+      <location filename="../Project/Project.py" line="5908" />
       <location filename="../Project/Project.py" line="4675" />
       <source>Application Diagram</source>
       <translation>Диаграмма приложения</translation>
@@ -56544,8 +56544,8 @@
       <translation>&lt;b&gt;Загрузить диаграмму...&lt;/b&gt;&lt;p&gt;Загрузить диаграмму из файла.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6079" />
-      <location filename="../Project/Project.py" line="6020" />
+      <location filename="../Project/Project.py" line="6103" />
+      <location filename="../Project/Project.py" line="6044" />
       <location filename="../Project/Project.py" line="4719" />
       <source>Create Package List</source>
       <translation>Создать список пакета</translation>
@@ -56566,7 +56566,7 @@
       <translation>&lt;b&gt;Создать список пакета&lt;/b&gt;&lt;p&gt;Создаёт начальный список файлов для включения в архив плагина eric. Список создаётся из файла проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6148" />
+      <location filename="../Project/Project.py" line="6172" />
       <location filename="../Project/Project.py" line="4742" />
       <source>Create Plugin Archives</source>
       <translation>Создать архивы плагина</translation>
@@ -56607,9 +56607,9 @@
       <translation>&lt;b&gt;Создать архивы плагина (Snapshot)&lt;/b&gt;&lt;p&gt;Создание архивных файлов плагина eric, используя список файлов, приведенный в файле PKGLIST. Имя архива, если оно не задано в файле со списком пакета, создается из имени главного сценария. Версия главного скрипта изменяется в соответствии релизом snapshot.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6565" />
-      <location filename="../Project/Project.py" line="6536" />
-      <location filename="../Project/Project.py" line="6487" />
+      <location filename="../Project/Project.py" line="6589" />
+      <location filename="../Project/Project.py" line="6560" />
+      <location filename="../Project/Project.py" line="6511" />
       <location filename="../Project/Project.py" line="4795" />
       <source>Execute Make</source>
       <translation>Выполнить Make</translation>
@@ -56630,7 +56630,7 @@
       <translation>&lt;b&gt;Выполнить Make&lt;/b&gt;&lt;p&gt;Выполнение прогона 'make' для пересборки настроеной цели.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6542" />
+      <location filename="../Project/Project.py" line="6566" />
       <location filename="../Project/Project.py" line="4814" />
       <source>Test for Changes</source>
       <translation>Проверить изменения</translation>
@@ -56671,7 +56671,7 @@
       <translation>&lt;b&gt;Создать файл SBOM&lt;/b&gt;&lt;p&gt;Создание SBOM файла зависимостей проекта. Он может быть основан на различных источниках ввода и будет сохранен как файл CycloneDX SBOM.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6720" />
+      <location filename="../Project/Project.py" line="6744" />
       <location filename="../Project/Project.py" line="4871" />
       <source>About Black</source>
       <translation>О Black</translation>
@@ -56824,270 +56824,290 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5078" />
-      <source>&amp;Project</source>
-      <translation>&amp;Проект</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5079" />
-      <source>Open &amp;Recent Projects</source>
-      <translation>Открыть &amp;недавние проекты</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5080" />
-      <source>Session</source>
-      <translation>Сессия</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5081" />
-      <source>Debugger</source>
-      <translation>Отладка</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5082" />
-      <source>Embedded Environment</source>
-      <translation>Встроенная среда окружения</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5084" />
-      <source>Project-T&amp;ools</source>
-      <translation>&amp;Инструменты-проекта</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5085" />
-      <source>&amp;Version Control</source>
-      <translation>Контроль &amp;версий</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5089" />
-      <source>Chec&amp;k</source>
-      <translation>&amp;Проверить</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5091" />
-      <source>Code &amp;Formatting</source>
-      <translation>&amp;Форматирование кода</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5093" />
-      <source>Sho&amp;w</source>
-      <translation>По&amp;казать</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5094" />
-      <source>&amp;Diagrams</source>
-      <translation>&amp;Диаграммы</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5095" />
-      <source>Pac&amp;kagers</source>
-      <translation>У&amp;паковщики</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5096" />
-      <source>Source &amp;Documentation</source>
-      <translation>&amp;Документация исходников</translation>
+      <location filename="../Project/Project.py" line="5060" />
+      <source>Recreate</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5061" />
+      <source>&amp;Recreate</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5067" />
+      <source>Recreate the embedded environment.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5069" />
+      <source>&lt;b&gt;Recreate&lt;/b&gt;&lt;p&gt;This opens a dialog to enter the parameters to recreate the embedded virtual environment of the project. The existing environment is cleared first.&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="5098" />
-      <source>Make</source>
-      <translation>Make</translation>
+      <source>&amp;Project</source>
+      <translation>&amp;Проект</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="5099" />
+      <source>Open &amp;Recent Projects</source>
+      <translation>Открыть &amp;недавние проекты</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5100" />
+      <source>Session</source>
+      <translation>Сессия</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5101" />
+      <source>Debugger</source>
+      <translation>Отладка</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5102" />
+      <source>Embedded Environment</source>
+      <translation>Встроенная среда окружения</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5104" />
+      <source>Project-T&amp;ools</source>
+      <translation>&amp;Инструменты-проекта</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5105" />
+      <source>&amp;Version Control</source>
+      <translation>Контроль &amp;версий</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5109" />
+      <source>Chec&amp;k</source>
+      <translation>&amp;Проверить</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5111" />
+      <source>Code &amp;Formatting</source>
+      <translation>&amp;Форматирование кода</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5113" />
+      <source>Sho&amp;w</source>
+      <translation>По&amp;казать</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5114" />
+      <source>&amp;Diagrams</source>
+      <translation>&amp;Диаграммы</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5115" />
+      <source>Pac&amp;kagers</source>
+      <translation>У&amp;паковщики</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5116" />
+      <source>Source &amp;Documentation</source>
+      <translation>&amp;Документация исходников</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5118" />
+      <source>Make</source>
+      <translation>Make</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5119" />
       <source>Other Tools</source>
       <translation>Другие инструменты</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5251" />
-      <location filename="../Project/Project.py" line="5248" />
+      <location filename="../Project/Project.py" line="5275" />
+      <location filename="../Project/Project.py" line="5272" />
       <source>Project</source>
       <translation>Проект</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5314" />
+      <location filename="../Project/Project.py" line="5338" />
       <source>&amp;Clear</source>
       <translation>&amp;Очистить</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5473" />
+      <location filename="../Project/Project.py" line="5497" />
       <source>Search New Files</source>
       <translation>Поиск новых файлов</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5474" />
+      <location filename="../Project/Project.py" line="5498" />
       <source>There were no new files found to be added.</source>
       <translation>Не найдено новых файлов для добавления.</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5625" />
-      <location filename="../Project/Project.py" line="5612" />
+      <location filename="../Project/Project.py" line="5649" />
+      <location filename="../Project/Project.py" line="5636" />
       <source>Version Control System</source>
       <translation>Система контроля версий</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5613" />
+      <location filename="../Project/Project.py" line="5637" />
       <source>&lt;p&gt;The selected VCS &lt;b&gt;{0}&lt;/b&gt; could not be found. &lt;br/&gt;Reverting override.&lt;/p&gt;&lt;p&gt;{1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Выбранная VCS &lt;b&gt;{0}&lt;/b&gt; не найдена.&lt;br/&gt;Возврат отвергнут.&lt;/p&gt;&lt;p&gt;{1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5626" />
+      <location filename="../Project/Project.py" line="5650" />
       <source>&lt;p&gt;The selected VCS &lt;b&gt;{0}&lt;/b&gt; could not be found.&lt;br/&gt;Disabling version control.&lt;/p&gt;&lt;p&gt;{1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Выбранная VCS &lt;b&gt;{0}&lt;/b&gt; не найдена.&lt;br/&gt;Контроль версий отключен.&lt;/p&gt;&lt;p&gt;{1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5774" />
+      <location filename="../Project/Project.py" line="5798" />
       <source>Coverage Data</source>
       <translation>Данные покрытия</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5820" />
-      <location filename="../Project/Project.py" line="5775" />
+      <location filename="../Project/Project.py" line="5844" />
+      <location filename="../Project/Project.py" line="5799" />
       <source>There is no main script defined for the current project. Aborting</source>
       <translation>Для текущего проекта не определён главный сценарий. Отмена</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5787" />
+      <location filename="../Project/Project.py" line="5811" />
       <source>Code Coverage</source>
       <translation>Покрытие кода</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5788" />
+      <location filename="../Project/Project.py" line="5812" />
       <source>Please select a coverage file</source>
       <translation>Пожалуйста, выберите файл покрытия</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5833" />
+      <location filename="../Project/Project.py" line="5857" />
       <source>Please select a profile file</source>
       <translation>Пожалуйста, выберите файл профиля</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5885" />
+      <location filename="../Project/Project.py" line="5909" />
       <source>Include module names?</source>
       <translation>Включать имена модулей?</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6021" />
+      <location filename="../Project/Project.py" line="6045" />
       <source>&lt;p&gt;The file &lt;b&gt;PKGLIST&lt;/b&gt; already exists.&lt;/p&gt;&lt;p&gt;Overwrite it?&lt;/p&gt;</source>
       <translation>&lt;p&gt;Файл &lt;b&gt;PKGLIST&lt;/b&gt; уже существует. Переписать?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6080" />
+      <location filename="../Project/Project.py" line="6104" />
       <source>&lt;p&gt;The file &lt;b&gt;PKGLIST&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно создать файл &lt;b&gt;PKGLIST&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Причина: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6369" />
-      <location filename="../Project/Project.py" line="6327" />
-      <location filename="../Project/Project.py" line="6281" />
-      <location filename="../Project/Project.py" line="6270" />
-      <location filename="../Project/Project.py" line="6252" />
-      <location filename="../Project/Project.py" line="6219" />
-      <location filename="../Project/Project.py" line="6189" />
-      <location filename="../Project/Project.py" line="6161" />
-      <location filename="../Project/Project.py" line="6131" />
-      <location filename="../Project/Project.py" line="6117" />
-      <location filename="../Project/Project.py" line="6100" />
+      <location filename="../Project/Project.py" line="6393" />
+      <location filename="../Project/Project.py" line="6351" />
+      <location filename="../Project/Project.py" line="6305" />
+      <location filename="../Project/Project.py" line="6294" />
+      <location filename="../Project/Project.py" line="6276" />
+      <location filename="../Project/Project.py" line="6243" />
+      <location filename="../Project/Project.py" line="6213" />
+      <location filename="../Project/Project.py" line="6185" />
+      <location filename="../Project/Project.py" line="6155" />
+      <location filename="../Project/Project.py" line="6141" />
+      <location filename="../Project/Project.py" line="6124" />
       <source>Create Plugin Archive</source>
       <translation>Создать архив плагина</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6101" />
+      <location filename="../Project/Project.py" line="6125" />
       <source>The project does not have a main script defined. Aborting...</source>
       <translation>Для текущего проекта не определён главный сценарий. Отмена...</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6118" />
+      <location filename="../Project/Project.py" line="6142" />
       <source>Select package lists:</source>
       <translation>Выбор списков пакета:</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6132" />
+      <location filename="../Project/Project.py" line="6156" />
       <source>&lt;p&gt;No package list files (PKGLIST*) available or selected. Aborting...&lt;/p&gt;</source>
       <translation>&lt;p&gt;Файлы со списком пакета (PKGLIST*) не доступны или не выбраны. Отмена...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6140" />
+      <location filename="../Project/Project.py" line="6164" />
       <source>Creating plugin archives...</source>
       <translation>Создание архивов плагина...</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6141" />
+      <location filename="../Project/Project.py" line="6165" />
       <source>Abort</source>
       <translation>Прервать</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6144" />
+      <location filename="../Project/Project.py" line="6168" />
       <source>%v/%m Archives</source>
       <translation>%v из %m архивов</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6162" />
+      <location filename="../Project/Project.py" line="6186" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно прочитать файл &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6190" />
+      <location filename="../Project/Project.py" line="6214" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; is not ready yet.&lt;/p&gt;&lt;p&gt;Please rework it and delete the'; initial_list' line of the header.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; пока не готов.&lt;/p&gt;&lt;p&gt;Пожалуйста переработайте его и удалите строки '; initial_list' из его заголовка.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6220" />
+      <location filename="../Project/Project.py" line="6244" />
       <source>&lt;p&gt;The eric plugin archive file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно создать архив плагина &lt;b&gt;{0}&lt;/b&gt; eric.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6253" />
+      <location filename="../Project/Project.py" line="6277" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be stored in the archive. Ignoring it.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно сохранить файл &lt;b&gt;{0}&lt;/b&gt; в архиве. Игнорируем его.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6271" />
+      <location filename="../Project/Project.py" line="6295" />
       <source>&lt;p&gt;The eric plugin archive files were created with some errors.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Файлы архива плагина eric были созданы с ошибками.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6282" />
+      <location filename="../Project/Project.py" line="6306" />
       <source>&lt;p&gt;The eric plugin archive files were created successfully.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Файлы архива плагина eric созданы успешно.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6328" />
+      <location filename="../Project/Project.py" line="6352" />
       <source>&lt;p&gt;The plugin file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно прочитать файл плагина &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6370" />
+      <location filename="../Project/Project.py" line="6394" />
       <source>&lt;p&gt;The plugin file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt; &lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно прочитать файл плагина &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6488" />
+      <location filename="../Project/Project.py" line="6512" />
       <source>The make process did not start.</source>
       <translation>Make-процесс не был запущен.</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6537" />
+      <location filename="../Project/Project.py" line="6561" />
       <source>The make process crashed.</source>
       <translation>Make-процесс разрушен.</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6545" />
+      <location filename="../Project/Project.py" line="6569" />
       <source>&lt;p&gt;There are changes that require the configured make target &lt;b&gt;{0}&lt;/b&gt; to be rebuilt.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Существуют изменения, которые требуют конфигурации make-цели &lt;b&gt;{0}&lt;/b&gt; для ее пересборки.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6550" />
+      <location filename="../Project/Project.py" line="6574" />
       <source>&lt;p&gt;There are changes that require the default make target to be rebuilt.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Существуют изменения, которые требуют make-цель по умолчанию для ее пересборки.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6566" />
+      <location filename="../Project/Project.py" line="6590" />
       <source>The makefile contains errors.</source>
       <translation>Makefile содержит ошибки.</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6721" />
+      <location filename="../Project/Project.py" line="6745" />
       <source>&lt;p&gt;&lt;b&gt;Black Version {0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Black&lt;/i&gt; is the uncompromising Python code formatter.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Black вер. {0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Black&lt;/i&gt; – это бескомпромиссный форматер кода Python.&lt;/p&gt;</translation>
     </message>

eric ide

mercurial