fix: premium key duplication (#1818)

* ru translation fix

* crc saving

* little fix

* updated crc saving

* fix: added comparison by key

* remaded fix
This commit is contained in:
MrMirDan
2025-09-03 06:54:11 +03:00
committed by GitHub
parent 3ca8b534e8
commit 17d2fa5532
3 changed files with 144 additions and 111 deletions

View File

@@ -123,8 +123,8 @@
</message> </message>
<message> <message>
<location filename="../ui/qml/Components/ApiPremV1MigrationDrawer.qml" line="76"/> <location filename="../ui/qml/Components/ApiPremV1MigrationDrawer.qml" line="76"/>
<source>&lt;li&gt;13 locations (with more coming soon)&lt;/li&gt;</source> <source>&lt;li&gt;20 locations (with more coming soon)&lt;/li&gt;</source>
<translation>&lt;li&gt;13 локаций (их число будет расти)&lt;/li&gt;</translation> <translation>&lt;li&gt;20 локаций (их число будет расти)&lt;/li&gt;</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Components/ApiPremV1MigrationDrawer.qml" line="77"/> <location filename="../ui/qml/Components/ApiPremV1MigrationDrawer.qml" line="77"/>
@@ -1952,7 +1952,7 @@ Thank you for staying with us!</source>
<translation>Сетевые адреса одного или нескольких серверов были обновлены. Пожалуйста, удалите старые конфигурацию и загрузите новые файлы</translation> <translation>Сетевые адреса одного или нескольких серверов были обновлены. Пожалуйста, удалите старые конфигурацию и загрузите новые файлы</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="238"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="235"/>
<source>Manage configuration files</source> <source>Manage configuration files</source>
<translation>Управление файлами конфигурации</translation> <translation>Управление файлами конфигурации</translation>
</message> </message>
@@ -1987,91 +1987,91 @@ Thank you for staying with us!</source>
<translation>Ключ для подключения</translation> <translation>Ключ для подключения</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="236"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="233"/>
<source>Configuration Files</source> <source>Configuration Files</source>
<translation>Файлы конфигурации</translation> <translation>Файлы конфигурации</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="256"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="253"/>
<source>Active Devices</source> <source>Active Devices</source>
<translation>Активные устройства</translation> <translation>Активные устройства</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="258"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="255"/>
<source>Manage currently connected devices</source> <source>Manage currently connected devices</source>
<translation>Управление подключенными устройствами</translation> <translation>Управление подключенными устройствами</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="275"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="272"/>
<source>Support</source> <source>Support</source>
<translation>Поддержка</translation> <translation>Поддержка</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="290"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="287"/>
<source>How to connect on another device</source> <source>How to connect on another device</source>
<translation>Как подключить другие устройства</translation> <translation>Как подключить другие устройства</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="315"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="312"/>
<source>Reload API config</source> <source>Reload API config</source>
<translation>Перезагрузить конфигурацию API</translation> <translation>Перезагрузить конфигурацию API</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="318"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="315"/>
<source>Reload API config?</source> <source>Reload API config?</source>
<translation>Перезагрузить конфигурацию API?</translation> <translation>Перезагрузить конфигурацию API?</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="319"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="316"/>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="357"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="354"/>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="394"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="391"/>
<source>Continue</source> <source>Continue</source>
<translation>Продолжить</translation> <translation>Продолжить</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="320"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="317"/>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="358"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="355"/>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="395"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="392"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Отменить</translation> <translation>Отменить</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="324"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="321"/>
<source>Cannot reload API config during active connection</source> <source>Cannot reload API config during active connection</source>
<translation>Невозможно перзагрузить API конфигурацию при активном соединении</translation> <translation>Невозможно перзагрузить API конфигурацию при активном соединении</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="352"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="349"/>
<source>Unlink this device</source> <source>Unlink this device</source>
<translation>Отвязать это устройство</translation> <translation>Отвязать это устройство</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="355"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="352"/>
<source>Are you sure you want to unlink this device?</source> <source>Are you sure you want to unlink this device?</source>
<translation>Вы уверены, что хотите отвязать это устройство?</translation> <translation>Вы уверены, что хотите отвязать это устройство?</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="356"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="353"/>
<source>This will unlink the device from your subscription. You can reconnect it anytime by pressing&#xa0;&quot;Reload API config&quot; in subscription settings on device.</source> <source>This will unlink the device from your subscription. You can reconnect it anytime by pressing&#xa0;&quot;Reload API config&quot; in subscription settings on device.</source>
<translation>Это отключит устройство от вашей подписки. Вы можете повторно подключить его в любое время, нажав &quot;Перезагрузить конфигурацию API&quot; в настройках подписки на устройстве.</translation> <translation>Это отключит устройство от вашей подписки. Вы можете повторно подключить его в любое время, нажав &quot;Перезагрузить конфигурацию API&quot; в настройках подписки на устройстве.</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="362"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="359"/>
<source>Cannot unlink device during active connection</source> <source>Cannot unlink device during active connection</source>
<translation>Невозможно отвязать устройство во время активного соединения</translation> <translation>Невозможно отвязать устройство во время активного соединения</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="390"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="387"/>
<source>Remove from application</source> <source>Remove from application</source>
<translation>Удалить из приложения</translation> <translation>Удалить из приложения</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="393"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="390"/>
<source>Remove from application?</source> <source>Remove from application?</source>
<translation>Удалить из приложения?</translation> <translation>Удалить из приложения?</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="399"/> <location filename="../ui/qml/Pages2/PageSettingsApiServerInfo.qml" line="396"/>
<source>Cannot remove server during active connection</source> <source>Cannot remove server during active connection</source>
<translation>Невозможно удалить сервер во время активного соединения</translation> <translation>Невозможно удалить сервер во время активного соединения</translation>
</message> </message>
@@ -2086,42 +2086,42 @@ subscription key</source>
ключ подключения</translation> ключ подключения</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="64"/> <location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="56"/>
<source>Copy key</source> <source>Copy key</source>
<translation>Скопировать ключ</translation> <translation>Скопировать ключ</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="69"/> <location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="61"/>
<source>Copied</source> <source>Copied</source>
<translation>Скопировано</translation> <translation>Скопировано</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="85"/> <location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="77"/>
<source>Save key as a file</source> <source>Save key as a file</source>
<translation>Сохранить ключ как файл</translation> <translation>Сохранить ключ как файл</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="92"/> <location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="84"/>
<source>Save AmneziaVPN config</source> <source>Save AmneziaVPN config</source>
<translation>Сохранить конфигурацию AmneziaVPN</translation> <translation>Сохранить конфигурацию AmneziaVPN</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="93"/> <location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="85"/>
<source>Config files (*.vpn)</source> <source>Config files (*.vpn)</source>
<translation>Файлы конфигов (*.vpn)</translation> <translation>Файлы конфигов (*.vpn)</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="118"/> <location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="110"/>
<source>Show key text</source> <source>Show key text</source>
<translation>Показать ключ</translation> <translation>Показать ключ</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="155"/> <location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="147"/>
<source>To read the QR code in the Amnezia app, tap + in the main menu &apos;QR code&apos;</source> <source>To read the QR code in the Amnezia app, tap + in the main menu &apos;QR code&apos;</source>
<translation>Для считывания QR-кода в приложении Amnezia выберите + в главном меню &apos;QR-код&apos;</translation> <translation>Для считывания QR-кода в приложении Amnezia выберите + в главном меню &apos;QR-код&apos;</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="184"/> <location filename="../ui/qml/Pages2/PageSettingsApiSubscriptionKey.qml" line="176"/>
<source>Amnezia Premium Subscription key</source> <source>Amnezia Premium Subscription key</source>
<translation>Ключ подключения Amnezia Premium</translation> <translation>Ключ подключения Amnezia Premium</translation>
</message> </message>
@@ -3111,32 +3111,32 @@ subscription key</source>
<context> <context>
<name>PageSetupWizardApiServiceInfo</name> <name>PageSetupWizardApiServiceInfo</name>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="137"/> <location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="139"/>
<source>For the region</source> <source>For the region</source>
<translation>Для региона</translation> <translation>Для региона</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="146"/> <location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="148"/>
<source>Price</source> <source>Price</source>
<translation>Цена</translation> <translation>Цена</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="155"/> <location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="157"/>
<source>Work period</source> <source>Work period</source>
<translation>Период работы</translation> <translation>Период работы</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="164"/> <location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="166"/>
<source>Speed</source> <source>Speed</source>
<translation>Скорость</translation> <translation>Скорость</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="173"/> <location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="175"/>
<source>Features</source> <source>Features</source>
<translation>Особенности</translation> <translation>Особенности</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="107"/> <location filename="../ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml" line="109"/>
<source>Connect</source> <source>Connect</source>
<translation>Подключиться</translation> <translation>Подключиться</translation>
</message> </message>
@@ -3144,12 +3144,12 @@ subscription key</source>
<context> <context>
<name>PageSetupWizardApiServicesList</name> <name>PageSetupWizardApiServicesList</name>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardApiServicesList.qml" line="50"/> <location filename="../ui/qml/Pages2/PageSetupWizardApiServicesList.qml" line="52"/>
<source>VPN by Amnezia</source> <source>VPN by Amnezia</source>
<translation>VPN от Amnezia</translation> <translation>VPN от Amnezia</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardApiServicesList.qml" line="51"/> <location filename="../ui/qml/Pages2/PageSetupWizardApiServicesList.qml" line="53"/>
<source>Choose a VPN service that suits your needs.</source> <source>Choose a VPN service that suits your needs.</source>
<translation>Выберите VPN-сервис, который подходит именно вам.</translation> <translation>Выберите VPN-сервис, который подходит именно вам.</translation>
</message> </message>
@@ -3561,23 +3561,23 @@ subscription key</source>
<context> <context>
<name>PageShare</name> <name>PageShare</name>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="103"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="130"/>
<source>OpenVPN native format</source> <source>OpenVPN native format</source>
<translation>Оригинальный формат OpenVPN</translation> <translation>Оригинальный формат OpenVPN</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="108"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="135"/>
<source>WireGuard native format</source> <source>WireGuard native format</source>
<translation>Оригинальный формат WireGuard</translation> <translation>Оригинальный формат WireGuard</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="233"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="260"/>
<source>Connection</source> <source>Connection</source>
<translation>Соединение</translation> <translation>Соединение</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="301"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="328"/>
<location filename="../ui/qml/Pages2/PageShare.qml" line="302"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="329"/>
<source>Server</source> <source>Server</source>
<translation>Сервер</translation> <translation>Сервер</translation>
</message> </message>
@@ -3587,146 +3587,191 @@ subscription key</source>
<translation>Конфигурация отозвана</translation> <translation>Конфигурация отозвана</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="98"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="55"/>
<source>Save AmneziaVPN config</source>
<translation>Сохранить конфигурацию AmneziaVPN</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="62"/>
<source>Save OpenVPN config</source>
<translation>Сохранить конфигурацию OpenVPN</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="69"/>
<source>Save WireGuard config</source>
<translation>Сохранить конфигурацию WireGuard</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="76"/>
<source>Save AmneziaWG config</source>
<translation>Сохранить конфигурацию AmneziaWG</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="83"/>
<source>Save Shadowsocks config</source>
<translation>Сохранить конфигурацию Shadowsocks</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="90"/>
<source>Save Cloak config</source>
<translation>Сохранить конфигурацию Cloak</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="97"/>
<source>Save XRay config</source>
<translation>Сохранить конфигурацию XRay</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="106"/>
<source>Connection to </source>
<translation>Подключение к </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="107"/>
<source>File with connection settings to </source>
<translation>Файл с настройками подключения к </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="125"/>
<source>For the AmneziaVPN app</source> <source>For the AmneziaVPN app</source>
<translation>Для приложения AmneziaVPN</translation> <translation>Для приложения AmneziaVPN</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="113"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="140"/>
<source>AmneziaWG native format</source> <source>AmneziaWG native format</source>
<translation>Оригинальный формат AmneziaWG</translation> <translation>Оригинальный формат AmneziaWG</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="118"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="145"/>
<source>Shadowsocks native format</source> <source>Shadowsocks native format</source>
<translation>Оригинальный формат Shadowsocks</translation> <translation>Оригинальный формат Shadowsocks</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="123"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="150"/>
<source>Cloak native format</source> <source>Cloak native format</source>
<translation>Оригинальный формат Cloak</translation> <translation>Оригинальный формат Cloak</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="128"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="155"/>
<source>XRay native format</source> <source>XRay native format</source>
<translation>Оригинальный формат XRay</translation> <translation>Оригинальный формат XRay</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="156"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="183"/>
<source>Share VPN Access</source> <source>Share VPN Access</source>
<translation>Поделиться VPN</translation> <translation>Поделиться VPN</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="190"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="217"/>
<source>Share full access to the server and VPN</source> <source>Share full access to the server and VPN</source>
<translation>Поделиться полным доступом к серверу и VPN</translation> <translation>Поделиться полным доступом к серверу и VPN</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="191"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="218"/>
<source>Use for your own devices, or share with those you trust to manage the server.</source> <source>Use for your own devices, or share with those you trust to manage the server.</source>
<translation>Используйте для собственных устройств или передайте управление сервером тем, кому вы доверяете.</translation> <translation>Используйте для собственных устройств или передайте управление сервером тем, кому вы доверяете.</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="248"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="275"/>
<location filename="../ui/qml/Pages2/PageShare.qml" line="528"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="555"/>
<source>Users</source> <source>Users</source>
<translation>Пользователи</translation> <translation>Пользователи</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="282"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="309"/>
<source>User name</source> <source>User name</source>
<translation>Имя пользователя</translation> <translation>Имя пользователя</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="544"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="571"/>
<source>Search</source> <source>Search</source>
<translation>Поиск</translation> <translation>Поиск</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="667"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="694"/>
<source>Creation date: %1</source> <source>Creation date: %1</source>
<translation>Дата создания: %1</translation> <translation>Дата создания: %1</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="679"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="706"/>
<source>Latest handshake: %1</source> <source>Latest handshake: %1</source>
<translation>Последнее рукопожатие: %1</translation> <translation>Последнее рукопожатие: %1</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="691"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="718"/>
<source>Data received: %1</source> <source>Data received: %1</source>
<translation>Получено данных: %1</translation> <translation>Получено данных: %1</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="703"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="730"/>
<source>Data sent: %1</source> <source>Data sent: %1</source>
<translation>Отправлено данных: %1</translation> <translation>Отправлено данных: %1</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="713"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="740"/>
<source>Allowed IPs: %1</source> <source>Allowed IPs: %1</source>
<translation>Разрешенные подсети: %1</translation> <translation>Разрешенные подсети: %1</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="728"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="755"/>
<source>Rename</source> <source>Rename</source>
<translation>Переименовать</translation> <translation>Переименовать</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="753"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="780"/>
<source>Client name</source> <source>Client name</source>
<translation>Имя клиента</translation> <translation>Имя клиента</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="764"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="791"/>
<source>Save</source> <source>Save</source>
<translation>Сохранить</translation> <translation>Сохранить</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="798"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="825"/>
<source>Revoke</source> <source>Revoke</source>
<translation>Отозвать</translation> <translation>Отозвать</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="801"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="828"/>
<source>Revoke the config for a user - %1?</source> <source>Revoke the config for a user - %1?</source>
<translation>Отозвать конфигурацию для пользователя - %1?</translation> <translation>Отозвать конфигурацию для пользователя - %1?</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="802"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="829"/>
<source>The user will no longer be able to connect to your server.</source> <source>The user will no longer be able to connect to your server.</source>
<translation>Пользователь больше не сможет подключаться к вашему серверу.</translation> <translation>Пользователь больше не сможет подключаться к вашему серверу.</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="803"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="830"/>
<source>Continue</source> <source>Continue</source>
<translation>Продолжить</translation> <translation>Продолжить</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="804"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="831"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Отменить</translation> <translation>Отменить</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="271"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="298"/>
<source>Share VPN access without the ability to manage the server</source> <source>Share VPN access without the ability to manage the server</source>
<translation>Поделиться доступом к VPN без возможности управления сервером</translation> <translation>Поделиться доступом к VPN без возможности управления сервером</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="362"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="389"/>
<location filename="../ui/qml/Pages2/PageShare.qml" line="363"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="390"/>
<source>Protocol</source> <source>Protocol</source>
<translation>Протокол</translation> <translation>Протокол</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="469"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="496"/>
<location filename="../ui/qml/Pages2/PageShare.qml" line="470"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="497"/>
<source>Connection format</source> <source>Connection format</source>
<translation>Формат подключения</translation> <translation>Формат подключения</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="198"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="225"/>
<location filename="../ui/qml/Pages2/PageShare.qml" line="510"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="537"/>
<source>Share</source> <source>Share</source>
<translation>Поделиться</translation> <translation>Поделиться</translation>
</message> </message>
@@ -3734,51 +3779,38 @@ subscription key</source>
<context> <context>
<name>PageShareConnection</name> <name>PageShareConnection</name>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="27"/> <location filename="../ui/qml/Pages2/PageShareConnection.qml" line="25"/>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="46"/>
<source>Connection to </source>
<translation>Подключение к </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="28"/>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="47"/>
<source>File with connection settings to </source>
<translation>Файл с настройками подключения к </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="31"/>
<source>Share</source> <source>Share</source>
<translation>Поделиться</translation> <translation>Поделиться</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="32"/> <location filename="../ui/qml/Pages2/PageShareConnection.qml" line="26"/>
<source>Copy</source> <source>Copy</source>
<translation>Скопировать</translation> <translation>Скопировать</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="36"/> <location filename="../ui/qml/Pages2/PageShareConnection.qml" line="30"/>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="41"/>
<source>Save AmneziaVPN config</source> <source>Save AmneziaVPN config</source>
<translation>Сохранить конфигурацию AmneziaVPN</translation> <translation>Сохранить конфигурацию AmneziaVPN</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="156"/> <location filename="../ui/qml/Pages2/PageShareConnection.qml" line="150"/>
<source>Copy config string</source> <source>Copy config string</source>
<translation>Скопировать строку конфигурации</translation> <translation>Скопировать строку конфигурации</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="174"/> <location filename="../ui/qml/Pages2/PageShareConnection.qml" line="168"/>
<source>Show connection settings</source> <source>Show connection settings</source>
<translation>Показать настройки подключения</translation> <translation>Показать настройки подключения</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="195"/> <location filename="../ui/qml/Pages2/PageShareConnection.qml" line="189"/>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="205"/> <location filename="../ui/qml/Pages2/PageShareConnection.qml" line="199"/>
<source>Copied</source> <source>Copied</source>
<translation>Скопировано</translation> <translation>Скопировано</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareConnection.qml" line="325"/> <location filename="../ui/qml/Pages2/PageShareConnection.qml" line="319"/>
<source>To read the QR code in the Amnezia app, select &quot;Add server&quot; &quot;I have data to connect&quot; &quot;QR code, key or settings file&quot;</source> <source>To read the QR code in the Amnezia app, select &quot;Add server&quot; &quot;I have data to connect&quot; &quot;QR code, key or settings file&quot;</source>
<translation>Для считывания QR-кода в приложении Amnezia выберите &quot;Добавить сервер&quot; &quot;У меня есть данные для подключения&quot; &quot;Открыть файл конфигурации, ключ или QR-код&quot;</translation> <translation>Для считывания QR-кода в приложении Amnezia выберите &quot;Добавить сервер&quot; &quot;У меня есть данные для подключения&quot; &quot;Открыть файл конфигурации, ключ или QR-код&quot;</translation>
</message> </message>
@@ -3786,45 +3818,45 @@ subscription key</source>
<context> <context>
<name>PageShareFullAccess</name> <name>PageShareFullAccess</name>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="54"/> <location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="57"/>
<source>Full access to the server and VPN</source> <source>Full access to the server and VPN</source>
<translation>Полный доступ к серверу и VPN</translation> <translation>Полный доступ к серверу и VPN</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="64"/> <location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="67"/>
<source>We recommend that you use full access to the server only for your own additional devices. <source>We recommend that you use full access to the server only for your own additional devices.
</source> </source>
<translation>Мы рекомендуем использовать полный доступ к серверу только для собственных устройств. <translation>Мы рекомендуем использовать полный доступ к серверу только для собственных устройств.
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="65"/> <location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="68"/>
<source>If you share full access with other people, they can remove and add protocols and services to the server, which will cause the VPN to work incorrectly for all users. </source> <source>If you share full access with other people, they can remove and add protocols and services to the server, which will cause the VPN to work incorrectly for all users. </source>
<translation>Если вы поделитесь полным доступом с другими людьми, то они смогут удалять и добавлять протоколы и сервисы на сервер, что приведет к некорректной работе VPN для всех пользователей. </translation> <translation>Если вы поделитесь полным доступом с другими людьми, то они смогут удалять и добавлять протоколы и сервисы на сервер, что приведет к некорректной работе VPN для всех пользователей. </translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="84"/> <location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="87"/>
<location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="85"/> <location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="88"/>
<source>Server</source> <source>Server</source>
<translation>Сервер</translation> <translation>Сервер</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="111"/> <location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="114"/>
<source>Accessing </source> <source>Accessing </source>
<translation>Доступ </translation> <translation>Доступ </translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="112"/> <location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="115"/>
<source>File with accessing settings to </source> <source>File with accessing settings to </source>
<translation>Файл с настройками доступа к </translation> <translation>Файл с настройками доступа к </translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="143"/> <location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="146"/>
<source>Share</source> <source>Share</source>
<translation>Поделиться</translation> <translation>Поделиться</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="151"/> <location filename="../ui/qml/Pages2/PageShareFullAccess.qml" line="154"/>
<source>Access error!</source> <source>Access error!</source>
<translation>Ошибка доступа!</translation> <translation>Ошибка доступа!</translation>
</message> </message>
@@ -3832,17 +3864,17 @@ subscription key</source>
<context> <context>
<name>PageStart</name> <name>PageStart</name>
<message> <message>
<location filename="../ui/qml/Pages2/PageStart.qml" line="187"/> <location filename="../ui/qml/Pages2/PageStart.qml" line="200"/>
<source>Logging was disabled after 14 days, log files were deleted</source> <source>Logging was disabled after 14 days, log files were deleted</source>
<translation>Логирование было отключено по прошествии 14 дней, файлы логов были удалены.</translation> <translation>Логирование было отключено по прошествии 14 дней, файлы логов были удалены.</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageStart.qml" line="191"/> <location filename="../ui/qml/Pages2/PageStart.qml" line="204"/>
<source>Settings restored from backup file</source> <source>Settings restored from backup file</source>
<translation>Настройки восстановлены из бэкап файла</translation> <translation>Настройки восстановлены из бэкап файла</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageStart.qml" line="197"/> <location filename="../ui/qml/Pages2/PageStart.qml" line="210"/>
<source>Logging is enabled. Note that logs will be automaticallydisabled after 14 days, and all log files will be deleted.</source> <source>Logging is enabled. Note that logs will be automaticallydisabled after 14 days, and all log files will be deleted.</source>
<translation>Логирование включено. Обратите внимание, что через 14 дней оно будет автоматически отключено, а все файлы логов будут удалены.</translation> <translation>Логирование включено. Обратите внимание, что через 14 дней оно будет автоматически отключено, а все файлы логов будут удалены.</translation>
</message> </message>

View File

@@ -462,6 +462,7 @@ bool ApiConfigsController::updateServiceFromGateway(const int serverIndex, const
newServerConfig.insert(configKey::apiConfig, newApiConfig); newServerConfig.insert(configKey::apiConfig, newApiConfig);
newServerConfig.insert(configKey::authData, gatewayRequestData.authData); newServerConfig.insert(configKey::authData, gatewayRequestData.authData);
newServerConfig.insert(config_key::crc, serverConfig.value(config_key::crc));
if (serverConfig.value(config_key::nameOverriddenByUser).toBool()) { if (serverConfig.value(config_key::nameOverriddenByUser).toBool()) {
newServerConfig.insert(config_key::name, serverConfig.value(config_key::name)); newServerConfig.insert(config_key::name, serverConfig.value(config_key::name));

View File

@@ -73,7 +73,7 @@ DrawerType2 {
var str = qsTr("We'll preserve all remaining days of your current subscription and give you an extra month as a thank you. ") var str = qsTr("We'll preserve all remaining days of your current subscription and give you an extra month as a thank you. ")
str += qsTr("This new subscription type will be actively developed with more locations and features added regularly. Currently available:") str += qsTr("This new subscription type will be actively developed with more locations and features added regularly. Currently available:")
str += "<ul style='margin-left: -16px;'>" str += "<ul style='margin-left: -16px;'>"
str += qsTr("<li>13 locations (with more coming soon)</li>") str += qsTr("<li>20 locations (with more coming soon)</li>")
str += qsTr("<li>Easier switching between countries in the app</li>") str += qsTr("<li>Easier switching between countries in the app</li>")
str += qsTr("<li>Personal dashboard to manage your subscription</li>") str += qsTr("<li>Personal dashboard to manage your subscription</li>")
str += "</ul>" str += "</ul>"