diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 83be4c91..f14d1622 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -14,8 +14,8 @@ jobs:
runs-on: ubuntu-20.04
env:
- QT_VERSION: 6.5.1
- QIF_VERSION: 4.6
+ QT_VERSION: 6.6.2
+ QIF_VERSION: 4.7
steps:
- name: 'Install Qt'
@@ -72,8 +72,8 @@ jobs:
runs-on: windows-latest
env:
- QT_VERSION: 6.5.1
- QIF_VERSION: 4.6
+ QT_VERSION: 6.6.2
+ QIF_VERSION: 4.7
BUILD_ARCH: 64
steps:
@@ -134,7 +134,7 @@ jobs:
runs-on: macos-13
env:
- QT_VERSION: 6.5.2
+ QT_VERSION: 6.6.2
CC: cc
CXX: c++
@@ -245,10 +245,15 @@ jobs:
modules: 'qtremoteobjects qt5compat qtshadertools'
dir: ${{ runner.temp }}
setup-python: 'true'
- tools: 'tools_ifw'
set-env: 'true'
extra: '--external 7z --base ${{ env.QT_MIRROR }}'
+ - name: 'Install Qt Installer Framework ${{ env.QIF_VERSION }}'
+ run: |
+ mkdir -pv ${{ runner.temp }}/Qt/Tools/QtInstallerFramework
+ wget https://qt.amzsvc.com/tools/ifw/${{ env.QIF_VERSION }}.zip
+ unzip ${{ env.QIF_VERSION }}.zip -d ${{ runner.temp }}/Qt/Tools/QtInstallerFramework/
+
- name: 'Get sources'
uses: actions/checkout@v4
with:
@@ -286,7 +291,7 @@ jobs:
env:
ANDROID_BUILD_PLATFORM: android-34
- QT_VERSION: 6.6.1
+ QT_VERSION: 6.6.2
QT_MODULES: 'qtremoteobjects qt5compat qtimageformats qtshadertools'
steps:
diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
index 9fb07d61..439e10c5 100644
--- a/client/CMakeLists.txt
+++ b/client/CMakeLists.txt
@@ -15,6 +15,15 @@ set(PACKAGES
Core5Compat Concurrent LinguistTools
)
+execute_process(
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ COMMAND git rev-parse --short HEAD
+ OUTPUT_VARIABLE GIT_COMMIT_HASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+
+add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
+
if(IOS)
set(PACKAGES ${PACKAGES} Multimedia)
endif()
diff --git a/client/images/controls/split-tunneling.svg b/client/images/controls/split-tunneling.svg
new file mode 100644
index 00000000..3062054d
--- /dev/null
+++ b/client/images/controls/split-tunneling.svg
@@ -0,0 +1,6 @@
+
diff --git a/client/mozilla/localsocketcontroller.cpp b/client/mozilla/localsocketcontroller.cpp
index 8583de4e..54f87a12 100644
--- a/client/mozilla/localsocketcontroller.cpp
+++ b/client/mozilla/localsocketcontroller.cpp
@@ -125,7 +125,7 @@ void LocalSocketController::activate(const QJsonObject &rawConfig) {
json.insert("privateKey", wgConfig.value(amnezia::config_key::client_priv_key));
json.insert("deviceIpv4Address", wgConfig.value(amnezia::config_key::client_ip));
// todo review wg ipv6
-#ifndef Q_OS_WINDOWS
+#ifdef Q_OS_MACOS
json.insert("deviceIpv6Address", "dead::1");
#endif
json.insert("serverPublicKey", wgConfig.value(amnezia::config_key::server_pub_key));
diff --git a/client/resources.qrc b/client/resources.qrc
index 59a540cc..b9a69023 100644
--- a/client/resources.qrc
+++ b/client/resources.qrc
@@ -224,6 +224,8 @@
ui/qml/Pages2/PageShareFullAccess.qmlimages/controls/close.svgimages/controls/search.svg
+ ui/qml/Components/HomeSplitTunnelingDrawer.qml
+ images/controls/split-tunneling.svgui/qml/Controls2/DrawerType2.qml
diff --git a/client/server_scripts/remove_all_containers.sh b/client/server_scripts/remove_all_containers.sh
index 32bdc55d..ce706f80 100644
--- a/client/server_scripts/remove_all_containers.sh
+++ b/client/server_scripts/remove_all_containers.sh
@@ -1,4 +1,5 @@
-sudo docker ps -a | grep amnezia | awk '{print $1}' | xargs sudo docker stop
-sudo docker ps -a | grep amnezia | awk '{print $1}' | xargs sudo docker rm -fv
-sudo docker images -a | grep amnezia | awk '{print $3}' | xargs sudo docker rmi
-sudo docker network ls | grep amnezia-dns-net | awk '{print $1}' | xargs sudo docker network rm
+sudo docker ps -a | grep amnezia | awk '{print $1}' | xargs sudo docker stop;\
+sudo docker ps -a | grep amnezia | awk '{print $1}' | xargs sudo docker rm -fv;\
+sudo docker images -a | grep amnezia | awk '{print $3}' | xargs sudo docker rmi;\
+sudo docker network ls | grep amnezia-dns-net | awk '{print $1}' | xargs sudo docker network rm;\
+sudo rm -frd /opt/amnezia
diff --git a/client/server_scripts/remove_container.sh b/client/server_scripts/remove_container.sh
index 3f127aa0..3e894e8f 100644
--- a/client/server_scripts/remove_container.sh
+++ b/client/server_scripts/remove_container.sh
@@ -1,3 +1,3 @@
-sudo docker stop $CONTAINER_NAME
-sudo docker rm -fv $CONTAINER_NAME
+sudo docker stop $CONTAINER_NAME;\
+sudo docker rm -fv $CONTAINER_NAME;\
sudo docker rmi $CONTAINER_NAME
diff --git a/client/translations/amneziavpn_ar.ts b/client/translations/amneziavpn_ar.ts
index 14b6ed03..dde6bad6 100644
--- a/client/translations/amneziavpn_ar.ts
+++ b/client/translations/amneziavpn_ar.ts
@@ -51,17 +51,17 @@
ConnectionTypeSelectionDrawer
-
+ Add new connectionإضافة اتصال جديد
-
+ Configure your serverقم بتهيئة الخادم الخاص بك
-
+ Open config file, key or QR codeافتح ملف تعريف, مفتاح تعريف او رمز QR
@@ -92,7 +92,7 @@
ExportController
-
+ Access error!خطأ في الوصول!
@@ -100,16 +100,60 @@
HomeContainersListView
-
+ Unable change protocol while there is an active connectionقم بتغيير البروتوكول عند تواجد اتصال
-
+ The selected protocol is not supported on the current platformالبروتوكول المحدد غير مدعوم علي المنصة الحالية
+
+ HomeSplitTunnelingDrawer
+
+
+ Split tunneling
+ تقسيم الانفاق
+
+
+
+ Allows you to connect to some sites or applications through a VPN connection and bypass others
+
+
+
+
+ Split tunneling on the server
+
+
+
+
+ Enabled
+Can't be disabled for current server
+
+
+
+
+ Site-based split tunneling
+ انقسام الانفاق القائم علي الموقع
+
+
+
+ Enabled
+ مٌفعل
+
+
+
+ Disabled
+ مٌعطل
+
+
+
+ App-based split tunneling
+ انقسام الانفاق القائم علي التطبيق
+
+ImportController
@@ -270,17 +314,27 @@ Already installed containers were found on the server. All installed containers
PageHome
-
+
+ Split tunneling enabled
+
+
+
+
+ Split tunneling disabled
+
+
+
+ VPN protocolبروتوكول VPN
-
+ Serversالخوادم
-
+ Unable change server while there is an active connectionلا يمكن تغير الخادم بينما هناك اتصال مفعل
@@ -288,87 +342,42 @@ Already installed containers were found on the server. All installed containers
PageProtocolAwgSettings
-
+ AmneziaWG settingsاعدادات AmneziaWG
-
+ Portمنفذ
-
- Junk packet count
- عدد الحزم الغير مرغوب فيها
-
-
-
- Junk packet minimum size
- الحد الادني لحجم الحزمة الغير مرغوب فيها
-
-
-
- Junk packet maximum size
- الحجم الاقصي للحزمة الغير مرغوب فيها
-
-
-
- Init packet junk size
- Init packet junk size
-
-
-
- Response packet junk size
- حجم حزمة الاستجابة الغير مرغوب فيها
-
-
-
- Init packet magic header
- إطلاق حزمة magic header
-
-
-
- Response packet magic header
- حزمة الرد magic header
-
-
-
- Transport packet magic header
- نقل حزمة magic header
-
-
-
- Underload packet magic header
- تحميل حزمة magic header
-
-
-
+ Remove AmneziaWGقم بحذف AmneziaWG
-
+ Remove AmneziaWG from server?قم بحذف AmneziaWG من الخادم؟
-
+ All users with whom you shared a connection will no longer be able to connect to it.جميع المستخدمين الذين قمت بمشاركة اتصال معهم لن يستطيعو الاتصال.
-
+ Continueواصل
-
+ Cancelإلغاء
-
+ Save and Restart Amneziaاحفظ و اعِد تشغيل Amnezia
@@ -376,28 +385,28 @@ Already installed containers were found on the server. All installed containers
PageProtocolCloakSettings
-
+ Cloak settingsCloak إعدادات
-
+ Disguised as traffic fromمتنكراً في حركة مرور من
-
+ Portمنفذ
-
-
+
+ Cipherالشفرة
-
+ Save and Restart Amneziaاحفظ و اعِد تشغيل Amnezia
@@ -405,180 +414,180 @@ Already installed containers were found on the server. All installed containers
PageProtocolOpenVpnSettings
-
+ OpenVPN settingsOpenVPN اعدادات
-
+ VPN address subnetالشبكة الفرعية لعنوان VPN
-
+ Network protocolبروتوكول الشبكة
-
+ Portمنفذ
-
+ Auto-negotiate encryptionالتفاوض التلقائي علي الشبكة
-
-
+
+ Hash
-
+ SHA512
-
+ SHA384
-
+ SHA256
-
+ SHA3-512
-
+ SHA3-384
-
+ SHA3-256
-
+ whirlpool
-
+ BLAKE2b512
-
+ BLAKE2s256
-
+ SHA1
-
-
+
+ Cipherشفرة
-
+ AES-256-GCM
-
+ AES-192-GCM
-
+ AES-128-GCM
-
+ AES-256-CBC
-
+ AES-192-CBC
-
+ AES-128-CBC
-
+ ChaCha20-Poly1305
-
+ ARIA-256-CBC
-
+ CAMELLIA-256-CBC
-
+ noneلا شئ
-
+ TLS authTLS مصادقة
-
+ Block DNS requests outside of VPNاحظر طلبات DNS خارج ال VPN
-
+ Additional client configuration commandsاوامر تكوين العميل الاضافية
-
-
+
+ Commands:الاوامر:
-
+ Additional server configuration commandsاوامر تكوين الخادم الاضافية
-
+ Remove OpenVPNاحذف OpenVPN
-
+ Remove OpenVpn from server?احذف OpenVPN من الخادم?
-
+ All users with whom you shared a connection will no longer be able to connect to it.جميع المستخدمين الذين شاركت معهم الاتصال لن يستطيعو الاتصال مجدداً.
@@ -587,17 +596,17 @@ Already installed containers were found on the server. All installed containers
جميع المستخدمين الذين شاركت اتصال معهم لن يستطيعو الاتصال بعد الان
-
+ Continueواصل
-
+ Cancelإلغاء
-
+ Save and Restart Amneziaاحفظ واعِد تشغيل Amnezia
@@ -619,22 +628,22 @@ Already installed containers were found on the server. All installed containers
اختيارات الاتصال
-
+ Connection options %1%1 اختيارات الاتصال
-
+ Remove احذف
-
+ Remove %1 from server?احذف %1 من الخادم ?
-
+ All users with whom you shared a connection will no longer be able to connect to it.جميع المستخدمين الذين شاركت معهم اتصال لن يستطيعو الاتصال بعد الان.
@@ -647,12 +656,12 @@ Already installed containers were found on the server. All installed containers
جميع المستخدمين الذين شاركت اتصال معهم لن يستطيعو الاتصال بعد الان
-
+ Continueواصل
-
+ Cancelإلغاء
@@ -660,23 +669,23 @@ Already installed containers were found on the server. All installed containers
PageProtocolShadowSocksSettings
-
+ ShadowSocks settingsShadowSocks إعدادات
-
+ Portمنفذ
-
-
+
+ Cipherتشفير
-
+ Save and Restart Amneziaاحفظ واعِد تشغيل Amnezia
@@ -943,62 +952,67 @@ And if you don't like the app, all the more support it - the donation will
اظهر المزيد علي GitHub
-
+ https://github.com/amnezia-vpn/amnezia-client#donate
-
+ Contactsالتواصل
-
+ Telegram groupمجموعة ال Telegram
-
+ To discuss featuresلمناقشة الميزات
-
+ https://t.me/amnezia_vpn_en
-
+ Mailالبريد
-
+ For reviews and bug reportsلل مراجعات والابلاغات عن المشاكل
-
+ Github
-
+ https://github.com/amnezia-vpn/amnezia-client
-
+ Websiteموقع
-
+ https://amnezia.org
-
+
+ Software version: %1
+ %1 :إصدار البرنامج
+
+
+ Check for updatesتحقق من وجود تحديثات
@@ -1035,56 +1049,66 @@ And if you don't like the app, all the more support it - the donation will
+ Auto connect
+ الاتصال التلقائي
+
+
+
+ Connect to VPN on app start
+ اتصل ب ال VPN عند تشغيل التطبيق
+
+
+ Start minimizedابدأ ب الحجم الادني
-
+ Launch application minimizedتشغيل التطبيق في الحد الادني
-
+ Languageاللغة
-
+ Loggingتسجيل
-
+ Enabledمٌفعل
-
+ Disabledمٌعطل
-
+ Reset settings and remove all data from the applicationإعادة ضبط الاعدادات ومسح جميع البيانات من التطبيق
-
+ Reset settings and remove all data from the application?إعادة ضبط الاعدادات ومسح جميع البيانات من التطبيق؟
-
+ All settings will be reset to default. All installed AmneziaVPN services will still remain on the server.سيتم ضبط الاعدادات الافتراضية. جميع خدمات AmneziaVPN المٌثبتة ستبقي علي الخادم.
-
+ Continueواصل
-
+ Cancelإلغاء
@@ -1175,22 +1199,20 @@ And if you don't like the app, all the more support it - the donation will
الاتصال
- Auto connect
- الاتصال التلقائي
+ الاتصال التلقائي
- Connect to VPN on app start
- اتصل ب ال VPN عند تشغيل التطبيق
+ اتصل ب ال VPN عند تشغيل التطبيق
-
+ When AmneziaDNS is not used or installedعندما يكون AmneziaDNS غير مٌثبت او غير مستخدم
-
+ Allows you to use the VPN only for certain Appsيسمح لك بأستخدام ال VPN علي تطبيقات معينة
@@ -1199,32 +1221,32 @@ And if you don't like the app, all the more support it - the donation will
استخدم AmneziaDNS إذا كان مٌثبت علي الخادم
-
+ Use AmneziaDNSاستخدم AmneziaDNS
-
+ If AmneziaDNS is installed on the serverفي حالة كان AmneziaDNS مٌثبت علي الخادم
-
+ DNS serversخوادم DNS
-
+ Site-based split tunnelingانقسام الانفاق القائم علي الموقع
-
+ Allows you to select which sites you want to access through the VPNيسمح لك بتحديد اي موقع تريد الوصول له عن طريق ال VPN
-
+ App-based split tunnelingانقسام الانفاق القائم علي التطبيق
@@ -1244,62 +1266,62 @@ And if you don't like the app, all the more support it - the donation will
PageSettingsDns
-
+ Default server does not support custom dnsالخادم الافتراضي لا يدعم DNS مخصص
-
+ DNS serversخوادم ال DNS
-
+ If AmneziaDNS is not used or installedAmneziaVPN ليس مٌستخدم او مٌثبت
-
+ Primary DNSالرئيسي DNS
-
+ Secondary DNSالثانوي DNS
-
+ Restore defaultاستعادة الافتراضي
-
+ Restore default DNS settings?قم بأعادة ضبط إعدادات ال DNS الافتراضية؟
-
+ Continueواصل
-
+ Cancelإلغاء
-
+ Settings have been resetلم يتم إعادة ضبط الإعدادات
-
+ Saveاحفظ
-
+ Settings savedتم حفظ الإعدادات
@@ -1357,12 +1379,12 @@ And if you don't like the app, all the more support it - the donation will
إلغاء
-
+ Logs have been cleaned upتم مسح السجلات
-
+ Clear logsاحذف السجلات
@@ -1395,13 +1417,12 @@ And if you don't like the app, all the more support it - the donation will
حذف الملفات الشخصية المخزنة مؤقتاً؟
-
+ Do you want to reboot the server?هل تريد إعادة تشغيل الخادم؟
-
-
+ Do you want to clear server from Amnezia software?هل تريد حذف الخادم من Amnezia?
@@ -1412,78 +1433,74 @@ And if you don't like the app, all the more support it - the donation will
-
-
-
-
-
+
+
+
+ Continueواصل
-
-
-
-
-
+
+
+
+ Cancelإلغاء
-
+ Check the server for previously installed Amnezia servicesافحص الخادم عن اي خدمات Amnezia مٌثبتة سابقاُ
-
+ Add them to the application if they were not displayedاضفهم إلي التطبيق إذا لم يكونو ظاهرين
-
+ Reboot serverإعادة تشغيل الخادم
-
+ The reboot process may take approximately 30 seconds. Are you sure you wish to proceed?عملية إعادة التشغيل قد تستغرق 30 ثانية, هل تريد الاستكمال؟
-
+ Remove server from applicationاحذف خادم من التطبيق
-
+ Do you want to remove the server from application?هل تريد حذف الخادم من التطبيق؟
-
+ Reset API configإعادة تكوين API
-
+ Do you want to reset API config?هل تريد إعادة تكوين API?
-
+ All installed AmneziaVPN services will still remain on the server.جميع خدمات AmneziaVPN المٌثبتة ستظل علي الخادم.
-
-
+ Clear server from Amnezia softwareاحذف خادم من Amnezia
-
-
+ All containers will be deleted on the server. This means that configuration files, keys and certificates will be deleted.سيتم حذف جميع الحاويات, هذا يعني ان جميع ملفات التكوين, شهادات و مفاتيح التعريف سيتم حذفهم.
@@ -1491,27 +1508,27 @@ And if you don't like the app, all the more support it - the donation will
PageSettingsServerInfo
-
+ Server nameاسم الخادم
-
+ Saveاحفظ
-
+ Protocolsالبروتوكولات
-
+ Servicesالخدمات
-
+ Dataالبيانات
@@ -1580,95 +1597,100 @@ And if you don't like the app, all the more support it - the donation will
قسم نفق الموقع
-
+ Default server does not support split tunneling functionالسرفر الافتراضي لا يدعم ميزة تقسيم الانفاق
-
+ Addresses from the list should not be accessed via VPNلا يجب الولوج للعنواين المذكورة هنا من خلال ال VPN
-
+ Split tunnelingتقسيم الانفاق
-
+ Modeوضع
-
+ Remove احذف
-
+ Continueواصل
-
+ Cancelإلغاء
-
+ Only the sites listed here will be accessed through the VPNسيتم الولوج للمواقع المذكورة هنا فقط عن طريق ال VPN
-
+
+ Cannot change split tunneling settings during active connection
+
+
+
+ website or IPموقع او IP
-
+ Import / Export Sites
-
+ Importاسترد
-
+ Save site listاحفظ قائمة المواقع
-
+ Save sitesاحفظ المواقع
-
-
-
+
+
+ Sites files (*.json)
-
+ Import a list of sitesاسترد قائمة من المواقع
-
+ Replace site listتبديل قائمة المواقع
-
-
+
+ Open sites fileافتح ملف المواقع
-
+ Add imported sites to existing onesإضافة المواقع المستردة للمواقع الموجودة
@@ -1723,57 +1745,57 @@ It's okay as long as it's from someone you trust.
PageSetupWizardCredentials
-
+ Configure your serverتكوين الخادم الخاص بك
-
+ Server IP address [:port]عنوان خادم IP [:منفذ]
-
+ Login to connect via SSHقم بتسجيل الدخول للأتصال عن طريق SSH
-
+ Continueواصل
-
+ All data you enter will remain strictly confidential and will not be shared or disclosed to the Amnezia or any third partiesستظل جميع البيانات التي تدخلها سرية للغاية ولن تتم مشاركتها أو الكشف عنها ل Amnezia أو أي طرف ثالث
-
+ 255.255.255.255:22
-
+ Password or SSH private keyكلمة مرور او مفتاح SSH خاص
-
+ Ip address cannot be emptyلا يمكن لعنوان IP ان يكون فارغ
-
+ Enter the address in the format 255.255.255.255:88ادخل العنوان في شكل 255.255.255.255:88
-
+ Login cannot be emptyتسجيل دخول لا يمكن ان يكون فارغ
-
+ Password/private key cannot be emptyكلمة مرور/مفتاح خاص لأ يمكن ان يكونو فارغين
@@ -1801,7 +1823,7 @@ It's okay as long as it's from someone you trust.
واصل
-
+ Set up laterإعداد في وقت لاحق
@@ -1848,32 +1870,32 @@ It's okay as long as it's from someone you trust.
PageSetupWizardProtocolSettings
-
+ Installing %1جاري تثبيت %1
-
+ More detailedاكثر تفصيلاً
-
+ Closeاغلق
-
+ Network protocolبروتوكول شبكة
-
+ Portمنفذ
-
+ Installتثبيت
@@ -1927,7 +1949,7 @@ It's okay as long as it's from someone you trust.
ليس لدي اي شئ
-
+ https://amnezia.org/instructions/0_starter-guide
@@ -1935,28 +1957,28 @@ It's okay as long as it's from someone you trust.
PageSetupWizardTextKey
-
+ Connection keyمفتاح اتصال
-
+ A line that starts with vpn://...يجب ان تٌكتب بهذه الطريقة حتي بوجود الخطأ كي تظهر بشكل صحيح داخل التطبيقسطر يبدأ ب ...//:vpn
-
+ Keyمفتاح
-
+ Insertادخل
-
+ Continueواصل
@@ -1992,128 +2014,138 @@ It's okay as long as it's from someone you trust.
PageShare
-
+ Save OpenVPN configاحفظ تكوين OpenVPN
-
+ Save WireGuard configاحفظ تكوين WireGuard
-
+
+ Save AmneziaWG config
+
+
+
+ Save ShadowSocks configاحفظ تكوين ShadowSocks
-
+ Save Cloak configاحفظ تكوين Cloak
-
+ For the AmneziaVPN appAmneziaVPN من اجل تطبيق
-
+ OpenVpn native formatتنسيق OpenVpn الاصلي
-
+ WireGuard native formatتنسيق WireGuard الاصلي
-
+
+ AmneziaWG native format
+
+
+
+ ShadowSocks native formatتنسيق ShadowSocks الاصلي
-
+ Cloak native formatتنسيق Cloak الاصلي
-
+ Share VPN Accessشارك اتصال VPN
-
+ Share full access to the server and VPNشارك ولوج كامل للخادم و ال VPN
-
+ Use for your own devices, or share with those you trust to manage the server.استخدمه للأجهزة الخاصة بك، أو شاركه مع من تثق بهم لإدارة الخادم.
-
-
+
+ Usersالمستخدمين
-
+ Share VPN access without the ability to manage the serverشارك اتصال VPN بدون القدرة علي إدارة الخادم
-
+ Searchابحث
-
+ Creation date: تاريخ الإنشاء:
-
+ Renameإعادة التسمية
-
+ Client nameاسم العميل
-
+ Saveاحفظ
-
+ Revokeسحب وإبطال
-
+ Revoke the config for a user - %1?سحب وإبطال للمستخدم - %1?
-
+ The user will no longer be able to connect to your server.المستخدم لن يكون قادر علي الاتصال بعد الان.
-
+ Continueواصل
-
+ Cancelإلغاء
-
+ Connectionالاتصال
@@ -2126,13 +2158,13 @@ It's okay as long as it's from someone you trust.
الخوادم
-
-
+
+ Serverخادم
-
+ File with connection settings to ملف بإعدادات إلي
@@ -2141,35 +2173,35 @@ It's okay as long as it's from someone you trust.
البروتوكولات
-
-
+
+ Protocolبروتوكول
-
+ Connection to اتصال إلي
-
+ Config revokedتم سحب وإبطال التكوين
-
+ User nameاسم المستخدم
-
-
+
+ Connection formatتنسيق الاتصال
-
-
+
+ Shareشارك
@@ -2194,33 +2226,33 @@ It's okay as long as it's from someone you trust.
إذا شاركت ولوج كامل مع الاشخاص, سيكونو قادرين علي حذف وإضافة بروتوكولات و خدمات إلي الخادم, والذي سيجعل VPN يعمل بشكل غير صحيح لجميع المستخدمين.
-
+ Serverخادم
-
+ Accessing التواصل
-
+ File with accessing settings to ملف مع إعدادات الوصول إلي
-
+ Shareمشاركة
-
+ Connection to اتصال إلي
-
+ File with connection settings to معلف مع إعدادات الاتصال إلي
@@ -2978,7 +3010,7 @@ While it offers a blend of security, stability, and speed, it's essential t
SelectLanguageDrawer
-
+ Choose languageاختر لغة
@@ -2999,11 +3031,6 @@ While it offers a blend of security, stability, and speed, it's essential t
SettingsController
-
-
- Software version
- إصدار البرنامج
- Backup file is corrupted
@@ -3024,33 +3051,33 @@ While it offers a blend of security, stability, and speed, it's essential t
ShareConnectionDrawer
-
+ Save AmneziaVPN configاحفظ تكوين AmneziaVPN
-
+ Shareشارك
-
+ Copyانسخ
-
-
+
+ Copiedتم النسخ
-
+ Copy config stringانسخ نص التكوين
-
+ Show connection settingsاظهر إعدادات الاتصال
@@ -3059,7 +3086,7 @@ While it offers a blend of security, stability, and speed, it's essential t
展示内容
-
+ To read the QR code in the Amnezia app, select "Add server" → "I have data to connect" → "QR code, key or settings file"حتي تقرأ رمز ال QR في تطبيق Amnezia, اختار "إضافة خادم" - "لدي بيانات الاتصال" - "رمز Qr, او مفتاح تعريف او ملف إعدادات"
@@ -3143,7 +3170,7 @@ While it offers a blend of security, stability, and speed, it's essential t
TextFieldWithHeaderType
-
+ The field can't be emptyالحقل لا يمكن ان يكون فارغ
@@ -3235,12 +3262,12 @@ While it offers a blend of security, stability, and speed, it's essential t
main2
-
+ Private key passphraseعبارة المرور الخاصة بالمفتاح
-
+ Saveاحفظ
diff --git a/client/translations/amneziavpn_fa_IR.ts b/client/translations/amneziavpn_fa_IR.ts
index 7a2172a8..b5caf979 100644
--- a/client/translations/amneziavpn_fa_IR.ts
+++ b/client/translations/amneziavpn_fa_IR.ts
@@ -27,56 +27,55 @@
ApiController
- Error when retrieving configuration from cloud server
- خطا در حین دریافت پیکربندی از سمت سرور
+ خطا در حین دریافت پیکربندی از سمت سرورConnectionController
-
+ VPN Protocols is not installed.
Please install VPN container at firstپروتکل ویپیان نصب نشده است
لطفا کانتینر ویپیان را نصب کنید
-
+ Connection...در حال ارتباط...
-
+ Connectedمتصل
-
+ Settings updated successfully, Reconnnection...تنظیمات به روز رسانی شد
در حال اتصال دوباره...
-
+ Settings updated successfullyتنظیمات با موفقیت بهروزرسانی شدند
-
+ Reconnection...اتصال دوباره...
-
-
-
-
+
+
+
+ Connectاتصال
-
+ Disconnection...قطع ارتباط...
@@ -84,17 +83,17 @@
ConnectionTypeSelectionDrawer
-
+ Add new connectionایجاد ارتباط جدید
-
+ Configure your serverتنظیم سرور
-
+ Open config file, key or QR codeبارگذاری فایل تنظیمات، کلید یا QR Code
@@ -125,7 +124,7 @@
ExportController
-
+ Access error!خطای دسترسی!
@@ -133,24 +132,68 @@
HomeContainersListView
-
+ Unable change protocol while there is an active connectionامکان تغییر پروتکل در هنگام متصل بودن وجود ندارد
-
+ The selected protocol is not supported on the current platformپروتکل انتخاب شده بر روی این پلتفرم پشتیبانی نمیشودReconnect via VPN Procotol:
- پروتکل VPN را متصل مجدد کنید"
+ پروتکل VPN را متصل مجدد کنید"
+
+
+
+ HomeSplitTunnelingDrawer
+
+
+ Split tunneling
+ جداسازی ترافیک
+
+
+
+ Allows you to connect to some sites or applications through a VPN connection and bypass others
+ اجازه میدهد به شما که از طریق اتصال VPN به برخی از وبسایتها یا برنامهها وصل شوید و از دیگران عبور کنید.
+
+
+
+ Split tunneling on the server
+
+
+
+
+ Enabled
+Can't be disabled for current server
+
+
+
+
+ Site-based split tunneling
+ جداسازی ترافیک بر اساس سایت
+
+
+
+ Enabled
+ فعال
+
+
+
+ Disabled
+ غیر فعال
+
+
+
+ App-based split tunneling
+ جداسازی ترافیک بر اساس نرمافزارImportController
-
+ Scanned %1 of %2.ارزیابی %1 از %2.
@@ -282,17 +325,27 @@ Already installed containers were found on the server. All installed containers
PageHome
-
+
+ Split tunneling enabled
+ فعال شدن تونل تقسیمشده
+
+
+
+ Split tunneling disabled
+ تونل تقسیمشده غیرفعال شده
+
+
+ VPN protocolپروتکل ویپیان
-
+ Serversسرورها
-
+ Unable change server while there is an active connectionامکان تغییر سرور در هنگام متصل بودن وجود ندارد
@@ -300,72 +353,27 @@ Already installed containers were found on the server. All installed containers
PageProtocolAwgSettings
-
+ AmneziaWG settingsتنظیمات AmneziaWG
-
+ Portپورت
-
- Junk packet count
- تعداد بستههای ناخواسته
-
-
-
- Junk packet minimum size
- Junk packet minimum size
-
-
-
- Junk packet maximum size
- Junk packet maximum size
-
-
-
- Init packet junk size
- Init packet junk size
-
-
-
- Response packet junk size
- Response packet junk size
-
-
-
- Init packet magic header
- Init packet magic header
-
-
-
- Response packet magic header
- Response packet magic header
-
-
-
- Transport packet magic header
- Transport packet magic header
-
-
-
- Underload packet magic header
- Underload packet magic header
-
-
-
+ Remove AmneziaWGحذف AmneziaWG
-
+ Remove AmneziaWG from server?آیا میخواهید AmneziaWG از سرور حذف شود؟
-
+ All users with whom you shared a connection will no longer be able to connect to it.تمام کاربرانی که این اتصال را با آنها با اشتراک گذاشتهاید دیگر نمیتوانند به آن متصل شوند.
@@ -374,17 +382,17 @@ Already installed containers were found on the server. All installed containers
همه کاربرانی که با آنها این پروتکل VPN را به اشتراک گذاشتهاید دیگر نمیتوانند به آن متصل شوند.
-
+ Continueادامه
-
+ Cancelکنسل
-
+ Save and Restart Amneziaذخیره و راه اندازی مجدد Amnezia
@@ -392,28 +400,28 @@ Already installed containers were found on the server. All installed containers
PageProtocolCloakSettings
-
+ Cloak settingsتنظیمات Cloak
-
+ Disguised as traffic fromپنهان کردن به عنوان ترافیک از
-
+ Portپورت
-
-
+
+ Cipherرمزگذاری
-
+ Save and Restart Amneziaذخیره و راه اندازی دوباره Amnezia
@@ -421,7 +429,7 @@ Already installed containers were found on the server. All installed containers
PageProtocolOpenVpnSettings
-
+ OpenVPN settingsتنظیمات OpenVPN
@@ -430,175 +438,175 @@ Already installed containers were found on the server. All installed containers
آدرس زیرشبکه ویپیان
-
+ VPN address subnet
-
+ Network protocolپروتکل شبکه
-
+ Portپورت
-
+ Auto-negotiate encryptionرمزگذاری خودکار
-
-
+
+ Hashهش
-
+ SHA512SHA512
-
+ SHA384SHA384
-
+ SHA256SHA256
-
+ SHA3-512SHA3-512
-
+ SHA3-384SHA3-384
-
+ SHA3-256SHA3-256
-
+ whirlpoolwhirlpool
-
+ BLAKE2b512BLAKE2b512
-
+ BLAKE2s256BLAKE2s256
-
+ SHA1SHA1
-
-
+
+ Cipherرمزگذاری
-
+ AES-256-GCMAES-256-GCM
-
+ AES-192-GCMAES-192-GCM
-
+ AES-128-GCMAES-128-GCM
-
+ AES-256-CBCAES-256-CBC
-
+ AES-192-CBCAES-192-CBC
-
+ AES-128-CBCAES-128-CBC
-
+ ChaCha20-Poly1305ChaCha20-Poly1305
-
+ ARIA-256-CBCARIA-256-CBC
-
+ CAMELLIA-256-CBCCAMELLIA-256-CBC
-
+ nonenone
-
+ TLS authاعتبار TLS
-
+ Block DNS requests outside of VPNمسدود کردن درخواستهای DNS خارج از ویپیان
-
+ Additional client configuration commandsتنظیمات و دستورات اضافه برنامه متصل شونده
-
-
+
+ Commands:دستورات:
-
+ Additional server configuration commandsتنظیمات و دستورات اضافه سرور
-
+ Remove OpenVPNحذف OpenVPN
-
+ Remove OpenVpn from server?آیا میخواهید OpenVPN از سرور حذف شود؟
-
+ All users with whom you shared a connection will no longer be able to connect to it.تمام کاربرانی که این اتصال را با آنها با اشتراک گذاشتهاید دیگر نمیتوانند به آن متصل شوند.
@@ -607,17 +615,17 @@ Already installed containers were found on the server. All installed containers
همه کاربرانی که با آن این پروتکل VPN را به اشتراک گذاشتهاید دیگر نمیتوانند به آن متصل شوند.
-
+ Continueادامه
-
+ Cancelکنسل
-
+ Save and Restart Amneziaذخیره و راه اندازی دوباره Amnezia
@@ -635,22 +643,22 @@ Already installed containers were found on the server. All installed containers
نمایش تنظیمات اتصال
-
+ Connection options %1تنظیمات اتصال %1
-
+ Remove حذف
-
+ Remove %1 from server?%1 از سرور حذف شود؟
-
+ All users with whom you shared a connection will no longer be able to connect to it.تمام کاربرانی که این اتصال را با آنها با اشتراک گذاشتهاید دیگر نمیتوانند به آن متصل شوند.
@@ -659,12 +667,12 @@ Already installed containers were found on the server. All installed containers
همه کاربرانی که با آن این پروتکل VPN را به اشتراک گذاشتهاید دیگر نمیتوانند به آن متصل شوند.
-
+ Continueادامه
-
+ Cancelکنسل
@@ -672,23 +680,23 @@ Already installed containers were found on the server. All installed containers
PageProtocolShadowSocksSettings
-
+ ShadowSocks settingsتنظیمات ShadowSocks
-
+ Portپورت
-
-
+
+ Cipherرمزگذاری
-
+ Save and Restart Amneziaذخیره و راه اندازی دوباره Amnezia
@@ -847,8 +855,12 @@ Already installed containers were found on the server. All installed containers
+ Use <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> to open this URL.
+
+
+ Use <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> to open this URL.
- استفاده <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> برای باز کردن این نشانی.
+ استفاده <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> برای باز کردن این نشانی.
@@ -968,62 +980,67 @@ Already installed containers were found on the server. All installed containers
نمایش متدهای دیگر در گیت هاب
-
+ https://github.com/amnezia-vpn/amnezia-client#donate
-
+ Contactsمخاطب
-
+ Telegram groupگروه تلگرام
-
+ To discuss featuresبرای گفتگو در مورد ویژگیها
-
+ https://t.me/amnezia_vpn_enhttps://t.me/amnezia_vpn
-
+ Mailایمیل
-
+ For reviews and bug reportsبرای ارائه نظرات و گزارشات باگ
-
+ GithubGithub
-
+ https://github.com/amnezia-vpn/amnezia-clienthttps://github.com/amnezia-vpn/amnezia-client
-
+ Websiteوب سایت
-
+ https://amnezia.orghttps://amnezia.org
-
+
+ Software version: %1
+ %1 :نسخه نرمافزار
+
+
+ Check for updatesبررسی بروزرسانی
@@ -1052,56 +1069,66 @@ Already installed containers were found on the server. All installed containers
+ Auto connect
+ اتصال خودکار
+
+
+
+ Connect to VPN on app start
+ اتصال به ویپیان با شروع نرمافزار
+
+
+ Start minimizedشروع به صورت کوچک
-
+ Launch application minimizedراهاندازی برنامه به صورت کوچک
-
+ Languageزبان
-
+ Loggingگزارشات
-
+ Enabledفعال
-
+ Disabledغیر فعال
-
+ Reset settings and remove all data from the applicationریست کردن تنظیمات و حذف تمام دادهها از نرمافزار
-
+ Reset settings and remove all data from the application?ریست کردن تنظیمات و حذف تمام دادهها از نرمافزار؟
-
+ All settings will be reset to default. All installed AmneziaVPN services will still remain on the server.تمام تنظیمات به حالت پیشفرض ریست میشوند. تمام سرویسهای Amnezia بر روی سرور باقی میمانند.
-
+ Continueادامه
-
+ Cancelکنسل
@@ -1188,37 +1215,35 @@ Already installed containers were found on the server. All installed containers
ارتباط
- Auto connect
- اتصال خودکار
+ اتصال خودکار
- Connect to VPN on app start
- اتصال به ویپیان با شروع نرمافزار
+ اتصال به ویپیان با شروع نرمافزار
-
+ Use AmneziaDNSاستفاده از AmneziaDNS
-
+ If AmneziaDNS is installed on the serverاگر AmneziaDNS بر روی سرور نصب شده باشد
-
+ DNS serversسرورهای DNS
-
+ When AmneziaDNS is not used or installedوقتی AmneziaDNS استفاده نشده یا نصب نشده است.
-
+ Allows you to use the VPN only for certain Apps
@@ -1227,17 +1252,17 @@ Already installed containers were found on the server. All installed containers
اگر AmneziaDNS نصب نشده یا استفاده نشود
-
+ Site-based split tunnelingجداسازی ترافیک بر اساس سایت
-
+ Allows you to select which sites you want to access through the VPNمیتوانید مشخص کنید که چه سایتهایی از ویپیان استفاده کنند
-
+ App-based split tunnelingجداسازی ترافیک بر اساس نرمافزار
@@ -1249,62 +1274,62 @@ Already installed containers were found on the server. All installed containers
PageSettingsDns
-
+ Default server does not support custom dnsسرور پیشفرض از دیاناس سفارشی پشتیبانی نمیکند.
-
+ DNS serversسرورهای DNS
-
+ If AmneziaDNS is not used or installedاگر AmneziaDNS نصب نباشد یا استفاده نشود
-
+ Primary DNSDNS اصلی
-
+ Secondary DNSDNS ثانویه
-
+ Restore defaultبازگشت به پیشفرض
-
+ Restore default DNS settings?بازگشت به تنظیمات پیشفرض DNS؟
-
+ Continueادامه
-
+ Cancelکنسل
-
+ Settings have been resetتنظیمات ریست شد
-
+ Saveذخیره
-
+ Settings savedذخیره تنظیمات
@@ -1362,12 +1387,12 @@ Already installed containers were found on the server. All installed containers
کنسل
-
+ Logs have been cleaned upگزارشات پاک شدند
-
+ Clear logsپاک کردن گزارشات
@@ -1406,57 +1431,69 @@ Already installed containers were found on the server. All installed containers
-
-
-
+
+
+
+ Continueادامه
-
-
-
+
+
+
+ Cancelکنسل
-
+ Check the server for previously installed Amnezia servicesچک کردن سرویسهای نصب شده Amnezia بر روی سرور
-
+ Add them to the application if they were not displayedاضافه کردن آنها به نرمافزار اگر نمایش داده نشدهاند
-
+ Reboot serverسرور را دوباره راهاندازی کنید.
-
+ Do you want to reboot the server?آیا میخواهید سرور را دوباره راهاندازی کنید؟
-
+ The reboot process may take approximately 30 seconds. Are you sure you wish to proceed?فرآیند راهاندازی ممکن است حدود ۳۰ ثانیه طول بکشد. آیا مطمئن هستید که میخواهید ادامه دهید؟
-
+ Do you want to remove the server from application?آیا میخواهید سرور را از برنامه حذف کنید؟
-
+ Do you want to clear server from Amnezia software?آیا میخواهید سرور را از نرمافزار Amnezia پاک کنید؟
-
+
+ Reset API config
+
+
+
+
+ Do you want to reset API config?
+
+
+
+ Remove server from applicationحذف کردن سرور از نرمافزار
@@ -1465,12 +1502,12 @@ Already installed containers were found on the server. All installed containers
حذف سرور؟
-
+ All installed AmneziaVPN services will still remain on the server.تمام سرویسهای نصبشده Amnezia همچنان بر روی سرور باقی خواهند ماند.
-
+ Clear server from Amnezia softwareپاک کردن سرور از نرمافزار Amnezia
@@ -1479,7 +1516,7 @@ Already installed containers were found on the server. All installed containers
سرور از نرمافزار Amnezia پاک شود؟
-
+ All containers will be deleted on the server. This means that configuration files, keys and certificates will be deleted.تمام کانتینرها از سرور پاک شوند، به این معنی که تمام فایلهای پیکربندی، کلیدها و مجوزها حذف خواهند شد.
@@ -1487,27 +1524,27 @@ Already installed containers were found on the server. All installed containers
PageSettingsServerInfo
-
+ Server nameنام سرور
-
+ Saveذخیره
-
+ Protocolsپروتکلها
-
+ Servicesسرویسها
-
+ Dataداده
@@ -1560,7 +1597,7 @@ Already installed containers were found on the server. All installed containers
PageSettingsSplitTunneling
-
+ Default server does not support split tunneling functionسرور پیشفرض از عملکرد تونلسازی تقسیم شده پشتیبانی نمیکند.
@@ -1569,32 +1606,32 @@ Already installed containers were found on the server. All installed containers
دسترسی به آدرسهای لیست از طریق ویپیان
-
+ Addresses from the list should not be accessed via VPNدسترسی به آدرسهای لیست بدون ویپیان
-
+ Split tunnelingجداسازی ترافیک
-
+ Modeحالت
-
+ Remove حذف
-
+ Continueادامه
-
+ Cancelکنسل
@@ -1607,60 +1644,65 @@ Already installed containers were found on the server. All installed containers
بارگذاری / خروجیگرفتن از سایتها
-
+
+ Cannot change split tunneling settings during active connection
+
+
+
+ Only the sites listed here will be accessed through the VPNتنها سایتهای موجود در اینجا از طریق VPN دسترسی داده خواهند شد.
-
+ website or IPوبسایت یا آدرس IP
-
+ Import / Export Sitesوارد کردن / صادر کردن وبسایتها
-
+ Importبارگذاری
-
+ Save site listذخیره لیست سایتها
-
+ Save sitesذخیره سایتها
-
-
-
+
+
+ Sites files (*.json)Sites files (*.json)
-
+ Import a list of sitesبارگذاری لیست سایتها
-
+ Replace site listجایگزین کردن لیست سایت
-
-
+
+ Open sites fileباز کردن فایل سایتها
-
+ Add imported sites to existing onesاضافه کردن سایتهای بارگذاری شده به سایتهای موجود
@@ -1719,7 +1761,7 @@ It's okay as long as it's from someone you trust.
اتصال به سرور
-
+ Server IP address [:port]آدرس آیپی سرور (:پورت)
@@ -1732,7 +1774,7 @@ It's okay as long as it's from someone you trust.
Password / SSH private key
-
+ Continueادامه
@@ -1742,47 +1784,47 @@ and will not be shared or disclosed to the Amnezia or any third parties
تمام دادههایی که شما وارد میکنید به شدت محرمانه است و با Amnezia یا هر شخص ثالث دیگری به اشتراک گذاشته نمیشود
-
+ Enter the address in the format 255.255.255.255:88آدرس را با فرمت 255.255.255.255:88 وارد کنید
-
+ Login to connect via SSHورود و اتصال با استفاده از SSH
-
+ Configure your serverسرور خود را پیکربندی کنید
-
+ 255.255.255.255:22
-
+ Password or SSH private key
-
+ All data you enter will remain strictly confidential and will not be shared or disclosed to the Amnezia or any third partiesتمام دادههایی که شما وارد میکنید به شدت محرمانه است و با Amnezia یا هر شخص ثالث دیگری به اشتراک گذاشته نمیشود
-
+ Ip address cannot be emptyآدرس آیپی نمیتواند خالی باشد
-
+ Login cannot be emptyنامکاربری نمیتواند خالی باشد
-
+ Password/private key cannot be emptyپسورد یا کلید خصوصی نمیتواند خالی باشد
@@ -1810,7 +1852,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
ادامه
-
+ Set up laterبعدا تنظیم شود
@@ -1822,23 +1864,15 @@ and will not be shared or disclosed to the Amnezia or any third parties
The server has already been added to the applicationسرور در حال حاضر به نرمافزار اضافه شده است
-
- Amnezia has detected that your server is currently
- Amnezia has detected that your server is currently
-
-
- busy installing other software. Amnezia installation
- busy installing other software. Amnezia installation
- Amnezia has detected that your server is currently
- برنامه Amnezia تشخیص داده است که سرور در حال حاضر
+ Amnezia has detected that your server is currently busy installing other software. Amnezia installation
- مشغول نصب نرمافزار دیگری است. نصب Amnezia
+ busy installing other software. Amnezia installation
@@ -1865,32 +1899,32 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageSetupWizardProtocolSettings
-
+ Installing %1در حال نصب %1
-
+ More detailedجزییات بیشتر
-
+ Closeبستن
-
+ Network protocolپروتکل شبکه
-
+ Portپورت
-
+ Installنصب
@@ -1944,7 +1978,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
من هیچی ندارم
-
+ https://amnezia.org/instructions/0_starter-guide
@@ -1952,27 +1986,27 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageSetupWizardTextKey
-
+ Connection keyکلید ارتباط
-
+ A line that starts with vpn://...یک کلید متنی که با vpn:// شروع میشود
-
+ Keyکلید
-
+ Insertوارد کردن
-
+ Continueادامه
@@ -1980,27 +2014,27 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageSetupWizardViewConfig
-
+ New connectionارتباط جدید
-
+ Do not use connection code from public sources. It could be created to intercept your data.از کد اتصالی که در منابع عمومی هست استفاده نکنید. ممکن است برای شنود اطلاعات شما ایجاد شده باشد.
-
+ Collapse contentجمع کردن محتوا
-
+ Show contentنمایش محتوا
-
+ Connectاتصال
@@ -2008,12 +2042,12 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageShare
-
+ OpenVpn native formatفرمت OpenVPN
-
+ WireGuard native formatفرمت WireGuard
@@ -2022,7 +2056,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
دسترسی VPN
-
+ Connectionارتباط
@@ -2035,8 +2069,8 @@ and will not be shared or disclosed to the Amnezia or any third parties
دسترسی به مدیریت سرور. کاربری که با او دسترسی کامل به اتصال را به اشتراک میگذارید، میتواند پروتکلها و سرویسهای شما را در سرور اضافه و حذف کند، همچنین تنظیمات را تغییر دهد.
-
-
+
+ Serverسرور
@@ -2049,113 +2083,123 @@ and will not be shared or disclosed to the Amnezia or any third parties
فایل شامل تنظیمات دسترسی به
-
+ Config revokedتنظیمات ابطالشد
-
+ Connection to ارتباط با
-
+ File with connection settings to فایل شامل تنظیمات ارتباط با
-
+ Save OpenVPN configذخیره تنظیمات OpenVPN
-
+ Save WireGuard configذخیره تنظیمات WireGuard
-
+
+ Save AmneziaWG config
+
+
+
+ Save ShadowSocks configذخیره تنظیمات ShadowSocks
-
+ Save Cloak configذخیره تنظیمات Cloak
-
+ For the AmneziaVPN appبرای نرمافزار AmneziaVPN
-
+
+ AmneziaWG native format
+
+
+
+ ShadowSocks native formatفرمت ShadowSocks
-
+ Cloak native formatفرمت Cloak
-
+ Share VPN Accessبه اشتراک گذاشتن دسترسی ویپیان
-
+ Share full access to the server and VPNبه اشتراک گذاشتن دسترسی کامل به سرور و ویپیان
-
+ Use for your own devices, or share with those you trust to manage the server.برای دستگاههای خودتان استفاده کنید یا با آنهایی که برای مدیریت سرور به آنها اعتماد دارید به اشتراک بگذارید.
-
-
+
+ Usersکاربران
-
+ User nameنام کاربری
-
+ Searchجستجو
-
+ Creation date: تاریخ ایجاد:
-
+ Renameتغییر نام
-
+ Client nameنام کلاینت
-
+ Saveذخیره
-
+ Revokeابطال
-
+ Revoke the config for a user - %1? لغو پیکربندی برای یک کاربر %1؟
@@ -2164,17 +2208,17 @@ and will not be shared or disclosed to the Amnezia or any third parties
ابطال تنظیمات برای کاربر
-
+ The user will no longer be able to connect to your server.کاربر دیگر نمیتواند به سرور وصل شود.
-
+ Continueادامه
-
+ Cancelکنسل
@@ -2183,7 +2227,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
دسترسی کامل
-
+ Share VPN access without the ability to manage the serverبه اشتراک گذاشتن دسترسی ویپیان بدون امکان مدیریت سرور
@@ -2192,20 +2236,20 @@ and will not be shared or disclosed to the Amnezia or any third parties
به اشتراک گذاری دسترسی به مدیریت سرور. کاربری که دسترسی کامل سرور با او به اشتراک گذاشته میشود میتواند پروتکلها و سرویسها را در سرور حذف یا اضافه کند و یا تنظیمات سرور را تغییر دهد.
-
-
+
+ Protocolپروتکل
-
-
+
+ Connection formatفرمت ارتباط
-
-
+
+ Shareاشتراکگذاری
@@ -2230,33 +2274,33 @@ and will not be shared or disclosed to the Amnezia or any third parties
اگر دسترسی کامل را با دیگران به اشتراک بگذارید، آنها میتوانند پروتکلها و سرویسها را حذف یا اضافه کنند که باعث میشود که ویپیان دیگر برای سایر کاربران کار نکند.
-
+ Serverسرور
-
+ Accessing در حال دسترسی به
-
+ File with accessing settings to فایل شامل تنظیمات دسترسی به
-
+ Shareاشتراکگذاری
-
+ Connection to ارتباط با
-
+ File with connection settings to فایل شامل تنظیمات ارتباط با
@@ -2657,7 +2701,17 @@ and will not be shared or disclosed to the Amnezia or any third parties
-
+
+ Error when retrieving configuration from API
+
+
+
+
+ This config has already been added to the application
+
+
+
+ ErrorCode: %1.
@@ -2720,7 +2774,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
The config does not contain any containers and credentiaks for connecting to the server
-
+ Internal errorInternal error
@@ -3086,7 +3140,7 @@ This means that AmneziaWG keeps the fast performance of the original while addin
SelectLanguageDrawer
-
+ Choose languageانتخاب زبان
@@ -3108,22 +3162,17 @@ This means that AmneziaWG keeps the fast performance of the original while addin
SettingsController
-
- Software version
- نسخه نرمافزار
-
-
-
+ All settings have been reset to default valuesتمام تنظیمات به مقادیر پیش فرض ریست شد
-
+ Cached profiles clearedپروفایل ذخیره شده پاک شد
-
+ Backup file is corruptedفایل بکآپ خراب شده است
@@ -3132,38 +3181,38 @@ This means that AmneziaWG keeps the fast performance of the original while addin
ShareConnectionDrawer
-
+ Save AmneziaVPN configذخیره تنظیمات AmneziaVPN
-
+ Shareاشتراکگذاری
-
+ Copyکپی
-
-
+
+ Copiedکپی شد
-
+ Copy config stringکپیکردن متن تنظیمات
-
+ Show connection settingsنمایش تنظیمات ارتباط
-
+ To read the QR code in the Amnezia app, select "Add server" → "I have data to connect" → "QR code, key or settings file"برای خواندن QR Code در نرمافزار AmneziaVPN "اضافه کردن سرور" -> "من داده برای اتصال دارم" -> "QR Code، کلید یا فایل تنظیمات"
@@ -3247,7 +3296,7 @@ This means that AmneziaWG keeps the fast performance of the original while addin
TextFieldWithHeaderType
-
+ The field can't be emptyاین فیلد نمیتواند خالی باشد.
@@ -3359,12 +3408,12 @@ This means that AmneziaWG keeps the fast performance of the original while addin
main2
-
+ Private key passphraseعبارت کلید خصوصی
-
+ Saveذخیره
diff --git a/client/translations/amneziavpn_ru.ts b/client/translations/amneziavpn_ru.ts
index e0ae9b79..ceeb434a 100644
--- a/client/translations/amneziavpn_ru.ts
+++ b/client/translations/amneziavpn_ru.ts
@@ -24,58 +24,50 @@
VPN Подключен
-
- ApiController
-
-
- Error when retrieving configuration from cloud server
-
-
-ConnectionController
-
+ VPN Protocols is not installed.
Please install VPN container at firstVPN протоколы не установлены.
Пожалуйста, установите протокол
-
+ Connection...Подключение...
-
+ ConnectedПодключено
-
+ Settings updated successfully, Reconnnection...Настройки успешно обновлены. Подключение...
-
+ Settings updated successfullyНастройки успешно обновлены
-
+ Reconnection...Переподключение...
-
-
-
-
+
+
+
+ ConnectПодключиться
-
+ Disconnection...Отключение...
@@ -83,17 +75,17 @@
ConnectionTypeSelectionDrawer
-
+ Add new connectionДобавить новое соединение
-
+ Configure your serverНастроить свой сервер
-
+ Open config file, key or QR codeОткрыть файл конфига, ключ или QR код
@@ -124,7 +116,7 @@
ExportController
-
+ Access error!Ошибка доступа!
@@ -132,12 +124,12 @@
HomeContainersListView
-
+ Unable change protocol while there is an active connectionНевозможно изменить протокол при активном соединении
-
+ The selected protocol is not supported on the current platformВыбранный протокол не поддерживается на данном устройстве
@@ -146,10 +138,54 @@
Переподключение через VPN протокол:
+
+ HomeSplitTunnelingDrawer
+
+
+ Split tunneling
+ Раздельное VPN-туннелирование
+
+
+
+ Allows you to connect to some sites or applications through a VPN connection and bypass others
+ Позволяет подключаться к одним сайтам или приложениям через защищенное соединение, а к другим в обход него
+
+
+
+ Split tunneling on the server
+
+
+
+
+ Enabled
+Can't be disabled for current server
+
+
+
+
+ Site-based split tunneling
+ Раздельное туннелирование сайтов
+
+
+
+ Enabled
+ Включено
+
+
+
+ Disabled
+ Отключено
+
+
+
+ App-based split tunneling
+ Раздельное VPN-туннелирование приложений
+
+ImportController
-
+ Scanned %1 of %2.Отсканировано %1 из%2.
@@ -280,17 +316,27 @@ Already installed containers were found on the server. All installed containers
PageHome
-
+
+ Split tunneling enabled
+ Раздельное туннелирование включено
+
+
+
+ Split tunneling disabled
+ Раздельное туннелирование выключено
+
+
+ VPN protocolVPN протокол
-
+ ServersСерверы
-
+ Unable change server while there is an active connectionНевозможно изменить сервер при активном соединении
@@ -298,72 +344,27 @@ Already installed containers were found on the server. All installed containers
PageProtocolAwgSettings
-
+ AmneziaWG settingsAmneziaWG настройки
-
+ PortПорт
-
- Junk packet count
- Junk packet count
-
-
-
- Junk packet minimum size
- Junk packet minimum size
-
-
-
- Junk packet maximum size
- Junk packet maximum size
-
-
-
- Init packet junk size
- Init packet junk size
-
-
-
- Response packet junk size
- Response packet junk size
-
-
-
- Init packet magic header
- Init packet magic header
-
-
-
- Response packet magic header
- Response packet magic header
-
-
-
- Transport packet magic header
- Transport packet magic header
-
-
-
- Underload packet magic header
- Underload packet magic header
-
-
-
+ Remove AmneziaWGУдалить AmneziaWG
-
+ Remove AmneziaWG from server?Удалить AmneziaWG с сервера?
-
+ All users with whom you shared a connection will no longer be able to connect to it.Все пользователи, с которыми вы поделились этим VPN-протоколом, больше не смогут к нему подключаться.
@@ -372,17 +373,17 @@ Already installed containers were found on the server. All installed containers
Все пользователи, с которыми вы поделились этим VPN-протоколом, больше не смогут к нему подключаться.
-
+ ContinueПродолжить
-
+ CancelОтменить
-
+ Save and Restart AmneziaСохранить и перезагрузить Amnezia
@@ -390,28 +391,28 @@ Already installed containers were found on the server. All installed containers
PageProtocolCloakSettings
-
+ Cloak settingsНастройки Cloak
-
+ Disguised as traffic fromЗамаскировать трафик под
-
+ PortПорт
-
-
+
+ CipherШифрование
-
+ Save and Restart AmneziaСохранить и перезагрузить Amnezia
@@ -419,7 +420,7 @@ Already installed containers were found on the server. All installed containers
PageProtocolOpenVpnSettings
-
+ OpenVPN settingsOpenVPN настройки
@@ -428,175 +429,175 @@ Already installed containers were found on the server. All installed containers
Подсеть для VPN
-
+ VPN address subnet
-
+ Network protocolСетевой протокол
-
+ PortПорт
-
+ Auto-negotiate encryptionШифрование с автоматическим согласованием
-
-
+
+ HashХэш
-
+ SHA512SHA512
-
+ SHA384SHA384
-
+ SHA256SHA256
-
+ SHA3-512SHA3-512
-
+ SHA3-384SHA3-384
-
+ SHA3-256SHA3-256
-
+ whirlpoolwhirlpool
-
+ BLAKE2b512BLAKE2b512
-
+ BLAKE2s256BLAKE2s256
-
+ SHA1SHA1
-
-
+
+ CipherШифрование
-
+ AES-256-GCMAES-256-GCM
-
+ AES-192-GCMAES-192-GCM
-
+ AES-128-GCMAES-128-GCM
-
+ AES-256-CBCAES-256-CBC
-
+ AES-192-CBCAES-192-CBC
-
+ AES-128-CBCAES-128-CBC
-
+ ChaCha20-Poly1305ChaCha20-Poly1305
-
+ ARIA-256-CBCARIA-256-CBC
-
+ CAMELLIA-256-CBCCAMELLIA-256-CBC
-
+ nonenone
-
+ TLS authTLS авторизация
-
+ Block DNS requests outside of VPNБлокировать DNS запросы за пределами VPN
-
+ Additional client configuration commandsДополнительные команды конфигурации клиента
-
-
+
+ Commands:Commands:
-
+ Additional server configuration commandsДополнительные команды конфигурации сервера
-
+ Remove OpenVPNУдалить OpenVPN
-
+ Remove OpenVpn from server?Удалить OpenVpn с сервера?
-
+ All users with whom you shared a connection will no longer be able to connect to it.Все пользователи, с которыми вы поделились этим VPN-протоколом, больше не смогут к нему подключаться.
@@ -605,17 +606,17 @@ Already installed containers were found on the server. All installed containers
Все пользователи, с которыми вы поделились этим VPN-протоколом, больше не смогут к нему подключаться.
-
+ ContinueПродолжить
-
+ CancelОтменить
-
+ Save and Restart AmneziaСохранить и перезагрузить
@@ -633,22 +634,22 @@ Already installed containers were found on the server. All installed containers
Показать параметры подключения
-
+ Connection options %1Параметры подключения %1
-
+ Remove Удалить
-
+ Remove %1 from server?Удалить %1 с сервера?
-
+ All users with whom you shared a connection will no longer be able to connect to it.Все пользователи, с которыми вы поделились этим VPN-протоколом, больше не смогут к нему подключаться.
@@ -657,12 +658,12 @@ Already installed containers were found on the server. All installed containers
Все пользователи, с которыми вы поделились этим VPN-протоколом, больше не смогут к нему подключаться.
-
+ ContinueПродолжить
-
+ CancelОтменить
@@ -670,23 +671,23 @@ Already installed containers were found on the server. All installed containers
PageProtocolShadowSocksSettings
-
+ ShadowSocks settingsНастройки ShadowSocks
-
+ PortПорт
-
-
+
+ CipherШифрование
-
+ Save and Restart AmneziaСохранить и перезагрузить Amnezia
@@ -846,20 +847,12 @@ Already installed containers were found on the server. All installed containers
Use <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> to open this URL.
-
+ Используйте <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> для открытия этой ссылки.After creating your onion site, it takes a few minutes for the Tor network to make it available for use.
-
-
-
- Use <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> to open this URL.
- Используйте <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> для открытия этой ссылки.
-
-
- After creating your onion site, it takes a few minutes for the Tor network to make it available for use.
- Через несколько минут после установки ваш Onion сайт станет доступен в сети Tor.
+ Через несколько минут после установки ваш Onion сайт станет доступен в сети Tor.
@@ -966,62 +959,67 @@ Already installed containers were found on the server. All installed containers
Показать другие способы на Github
-
+ https://github.com/amnezia-vpn/amnezia-client#donate
-
+ ContactsКонтакты
-
+ Telegram groupГруппа в Telegram
-
+ To discuss featuresДля обсуждений
-
+ https://t.me/amnezia_vpn_enhttps://t.me/amnezia_vpn
-
+ MailПочта
-
+ For reviews and bug reportsДля отзывов и сообщений об ошибках
-
+ GithubGithub
-
+ https://github.com/amnezia-vpn/amnezia-clienthttps://github.com/amnezia-vpn/amnezia-client
-
+ WebsiteВеб-сайт
-
+ https://amnezia.orghttps://amnezia.org
-
+
+ Software version: %1
+ Версия ПО: %1
+
+
+ Check for updatesПроверить обновления
@@ -1050,56 +1048,66 @@ Already installed containers were found on the server. All installed containers
+ Auto connect
+ Автоподключение
+
+
+
+ Connect to VPN on app start
+ Подключение к VPN при запуске приложения
+
+
+ Start minimizedЗапускать в свернутом виде
-
+ Launch application minimizedЗапускать приложение в свернутом виде
-
+ LanguageЯзык
-
+ LoggingЛогирование
-
+ EnabledВключено
-
+ DisabledОтключено
-
+ Reset settings and remove all data from the applicationСбросить настройки и удалить все данные из приложения
-
+ Reset settings and remove all data from the application?Сбросить настройки и удалить все данные из приложения?
-
+ All settings will be reset to default. All installed AmneziaVPN services will still remain on the server.Все данные из приложения будут удалены, все установленные сервисы AmneziaVPN останутся на сервере.
-
+ ContinueПродолжить
-
+ CancelОтменить
@@ -1186,56 +1194,50 @@ Already installed containers were found on the server. All installed containers
Соединение
- Auto connect
- Автоподключение
+ Автоподключение
- Connect to VPN on app start
- Подключение к VPN при запуске приложения
+ Подключение к VPN при запуске приложения
-
+ Use AmneziaDNSИспользовать Amnezia DNS
-
+ If AmneziaDNS is installed on the serverЕсли он уставновлен на сервере
-
+ DNS serversDNS сервер
-
+ When AmneziaDNS is not used or installed
-
+ Эти адреса будут использоваться, если не включен AmneziaDNS
-
+ Allows you to use the VPN only for certain Apps
- When AmneziaDNS is not used or installed
- Эти адреса будут использоваться, если не включен AmneziaDNS
-
-
-
+ Site-based split tunnelingРаздельное туннелирование сайтов
-
+ Allows you to select which sites you want to access through the VPNПозволяет подключаться к одним сайтам через VPN, а к другим в обход него
-
+ App-based split tunnelingРаздельное VPN-туннелирование приложений
@@ -1247,62 +1249,66 @@ Already installed containers were found on the server. All installed containers
PageSettingsDns
-
+ Default server does not support custom dns
-
+ DNS serversDNS сервер
- When AmneziaDNS is not used or installed
- Эти адреса будут использоваться, если не включен или не установлен AmneziaDNS
+ Эти адреса будут использоваться, если не включен или не установлен AmneziaDNS
-
+
+ If AmneziaDNS is not used or installed
+
+
+
+ Primary DNSПервичный DNS
-
+ Secondary DNSВторичный DNS
-
+ Restore defaultВосстановить по умолчанию
-
+ Restore default DNS settings?Восстановить настройки DNS по умолчанию?
-
+ ContinueПродолжить
-
+ CancelОтменить
-
+ Settings have been resetНастройки сброшены
-
+ SaveСохранить
-
+ Settings savedСохранить настройки
@@ -1360,12 +1366,12 @@ Already installed containers were found on the server. All installed containers
Отменить
-
+ Logs have been cleaned upЛоги удалены
-
+ Clear logsУдалить логи
@@ -1404,57 +1410,69 @@ Already installed containers were found on the server. All installed containers
-
-
-
+
+
+
+ ContinueПродолжить
-
-
-
+
+
+
+ CancelОтменить
-
+ Check the server for previously installed Amnezia servicesПроверить сервер на наличие ранее установленных сервисов Amnezia
-
+ Add them to the application if they were not displayedДобавить их в приложение, если они не были отображены
-
+ Reboot serverПерезагрузить сервер
-
+ Do you want to reboot the server?Вы уверены, что хотите перезагрузить сервер?
-
+ The reboot process may take approximately 30 seconds. Are you sure you wish to proceed?Процесс перезагрузки может занять около 30 секунд. Вы уверены, что хотите продолжить?
-
+ Do you want to remove the server from application?Вы уверена что хотите удалить сервер из приложения?
-
+ Do you want to clear server from Amnezia software?Вы хотите очистить сервер от всех сервисов Amnezia?
-
+
+ Reset API config
+
+
+
+
+ Do you want to reset API config?
+
+
+
+ Remove server from applicationУдалить сервер из приложения
@@ -1463,12 +1481,12 @@ Already installed containers were found on the server. All installed containers
Удалить сервер?
-
+ All installed AmneziaVPN services will still remain on the server.Все установленные сервисы и протоколы Amnezia всё ещё останутся на сервере.
-
+ Clear server from Amnezia softwareОчистить сервер от протоколов и сервисов Amnezia
@@ -1477,7 +1495,7 @@ Already installed containers were found on the server. All installed containers
Удалить все сервисы и протоколы Amnezia с сервера?
-
+ All containers will be deleted on the server. This means that configuration files, keys and certificates will be deleted.На сервере будут удалены все данные, связанные с Amnezia: протоколы, сервисы, конфигурационные файлы, ключи и сертификаты.
@@ -1485,27 +1503,27 @@ Already installed containers were found on the server. All installed containers
PageSettingsServerInfo
-
+ Server nameИмя сервера
-
+ SaveСохранить
-
+ ProtocolsПротоколы
-
+ ServicesСервисы
-
+ DataДанные
@@ -1558,41 +1576,41 @@ Already installed containers were found on the server. All installed containers
PageSettingsSplitTunneling
-
+ Default server does not support split tunneling function
- Only the sites listed here will be accesed via VPN
+ Only the sites listed here will be accessed via VPNТолько адреса из списка должны открываться через VPN
-
+ Addresses from the list should not be accessed via VPNАдреса из списка не должны открываться через VPN
-
+ Split tunnelingРаздельное VPN-туннелирование
-
+ ModeРежим
-
+ Remove Удалить
-
+ ContinueПродолжить
-
+ CancelОтменить
@@ -1601,64 +1619,65 @@ Already installed containers were found on the server. All installed containers
Сайт или IP
+ Import / Export Sites
- Импорт/экспорт Сайтов
+ Импорт/экспорт сайтов
-
+ Only the sites listed here will be accessed through the VPN
-
+ Только адреса из списка должны открываться через VPN
-
+
+ Cannot change split tunneling settings during active connection
+ Невозможно изменить настройки раздельного туннелирования при включенном VPN
+
+
+ website or IP
-
- Import / Export Sites
-
-
-
-
+ ImportИмпорт
-
+ Save site listСохранить список сайтов
-
+ Save sitesСохранить
-
-
-
+
+
+ Sites files (*.json)Sites files (*.json)
-
+ Import a list of sitesИмпортировать список с сайтами
-
+ Replace site listЗаменить список сайтов
-
-
+
+ Open sites fileОткрыть список с сайтами
-
+ Add imported sites to existing onesДобавить импортированные сайты к существующим
@@ -1717,7 +1736,7 @@ It's okay as long as it's from someone you trust.
Подключение к серверу
-
+ Server IP address [:port]Server IP address [:port]
@@ -1730,7 +1749,7 @@ It's okay as long as it's from someone you trust.
Password / SSH private key
-
+ ContinueПродолжить
@@ -1740,47 +1759,47 @@ and will not be shared or disclosed to the Amnezia or any third parties
Все данные, которые вы вводите, останутся строго конфиденциальными и не будут переданы или раскрыты Amnezia или каким-либо третьим сторонам
-
+ Enter the address in the format 255.255.255.255:88Введите адрес в формате 255.255.255.255:88
-
+ Login to connect via SSHLogin to connect via SSH
-
+ Configure your serverНастроить ваш сервер
-
+ 255.255.255.255:22
-
+ Password or SSH private key
-
+ All data you enter will remain strictly confidential and will not be shared or disclosed to the Amnezia or any third partiesВсе введенные вами данные останутся строго конфиденциальными и не будут переданы или раскрыты Amnezia или третьим лицам
-
+ Ip address cannot be emptyПоле Ip address не может быть пустым
-
+ Login cannot be emptyПоле Login не может быть пустым
-
+ Password/private key cannot be emptyПоле Password/private key не может быть пустым
@@ -1808,7 +1827,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
Продолжить
-
+ Set up laterНастроить позднее
@@ -1863,32 +1882,32 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageSetupWizardProtocolSettings
-
+ Installing %1Установить %1
-
+ More detailedПодробнее
-
+ CloseЗакрыть
-
+ Network protocolСетевой протокол
-
+ PortПорт
-
+ InstallУстановить
@@ -1942,7 +1961,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
У меня ничего нет
-
+ https://amnezia.org/instructions/0_starter-guide
@@ -1950,27 +1969,27 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageSetupWizardTextKey
-
+ Connection keyКлюч для подключения
-
+ A line that starts with vpn://...Строка, которая начинается с vpn://...
-
+ KeyКлюч
-
+ InsertВставить
-
+ ContinueПродолжить
@@ -1978,27 +1997,27 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageSetupWizardViewConfig
-
+ New connectionНовое соединение
-
+ Do not use connection code from public sources. It could be created to intercept your data.Не используйте код подключения из публичных источников. Его могли создать, чтобы перехватывать ваши данные.
-
+ Collapse contentСвернуть
-
+ Show contentПоказать содержимое ключа
-
+ ConnectПодключиться
@@ -2006,12 +2025,12 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageShare
-
+ OpenVpn native formatOpenVpn нативный формат
-
+ WireGuard native formatWireGuard нативный формат
@@ -2020,7 +2039,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
VPN-Доступ
-
+ ConnectionСоединение
@@ -2033,8 +2052,8 @@ and will not be shared or disclosed to the Amnezia or any third parties
Доступ к управлению сервером. Пользователь, с которым вы делитесь полным доступом к соединению, сможет добавлять и удалять ваши протоколы и службы на сервере, а также изменять настройки.
-
-
+
+ ServerСервер
@@ -2043,128 +2062,138 @@ and will not be shared or disclosed to the Amnezia or any third parties
Доступ
-
+ Config revoked
-
+ Connection to Подключение к
-
+ File with connection settings to Файл с настройками доступа к
-
+ Save OpenVPN configСохранить OpenVPN config
-
+ Save WireGuard configСохранить WireGuard config
-
+
+ Save AmneziaWG config
+
+
+
+ Save ShadowSocks configСохранить конфигурацию ShadowSocks
-
+ Save Cloak configСохранить конфигурацию Cloak
-
+ For the AmneziaVPN appДля AmneziaVPN
-
+
+ AmneziaWG native format
+
+
+
+ ShadowSocks native formatShadowSocks нативный формат
-
+ Cloak native formatCloak нативный формат
-
+ Share VPN AccessПоделиться VPN
-
+ Share full access to the server and VPNПоделиться полным доступом к серверу
-
+ Use for your own devices, or share with those you trust to manage the server.Используйте для собственных устройств или передайте управление сервером тем, кому вы доверяете.
-
-
+
+ UsersПользователи
-
+ User nameИмя пользователя
-
+ Search
-
+ Creation date: Дата создания
-
+ RenameПереименовать
-
+ Client name
-
+ SaveСохранить
-
+ RevokeОтозвать
-
+ Revoke the config for a user - %1?Отозвать доступ для пользователя - %1?
-
+ The user will no longer be able to connect to your server.Пользователь больше не сможет подключаться к вашему серверу
-
+ ContinueПродолжить
-
+ CancelОтменить
@@ -2173,25 +2202,25 @@ and will not be shared or disclosed to the Amnezia or any third parties
Полный доступ
-
+ Share VPN access without the ability to manage the serverПоделиться доступом к VPN, без возможности управления сервером
-
-
+
+ ProtocolПротокол
-
-
+
+ Connection formatФормат подключения
-
-
+
+ ShareПоделиться
@@ -2215,33 +2244,33 @@ and will not be shared or disclosed to the Amnezia or any third parties
Если вы поделитесь полным доступом с другими людьми, то они смогут удалять и добавлять протоколы и сервисы на сервер, что приведет к некорректной работе VPN для всех пользователей.
-
+ ServerСервер
-
+ Accessing Доступ
-
+ File with accessing settings to
-
+ ShareПоделиться
-
+ Connection to Подключение к
-
+ File with connection settings to Файл с настройками доступа к
@@ -2637,7 +2666,17 @@ and will not be shared or disclosed to the Amnezia or any third parties
Конфиг не содержит контейнеров и учетных данных для подключения к серверу
-
+
+ Error when retrieving configuration from API
+
+
+
+
+ This config has already been added to the application
+
+
+
+ ErrorCode: %1.
@@ -2701,7 +2740,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
-
+ Internal errorInternal error
@@ -2713,17 +2752,17 @@ and will not be shared or disclosed to the Amnezia or any third parties
ShadowSocks - masks VPN traffic, making it similar to normal web traffic, but it may be recognized by analysis systems in some highly censored regions.
-
+ ShadowSocks - маскирует VPN-трафик под обычный веб-трафик, но распознается системами анализа в некоторых регионах с высоким уровнем цензуры.OpenVPN over Cloak - OpenVPN with VPN masquerading as web traffic and protection against active-probing detection. Ideal for bypassing blocking in regions with the highest levels of censorship.
-
+ OpenVPN over Cloak - OpenVPN с маскировкой VPN под web-трафик и защитой от обнаружения active-probbing. Подходит для регионов с самым высоким уровнем цензуры.Create a file vault on your server to securely store and transfer files.
-
+ Создайте на сервере файловое хранилище для безопасного хранения и передачи файлов.
@@ -2807,14 +2846,6 @@ While it offers a blend of security, stability, and speed, it's essential t
OpenVPN is the most popular VPN protocol, with flexible configuration options. It uses its own security protocol with SSL/TLS for key exchange.OpenVPN - популярный VPN-протокол, с гибкой настройкой. Имеет собственный протокол безопасности с SSL/TLS для обмена ключами.
-
- ShadowSocks - masks VPN traffic, making it similar to normal web traffic, but it may be recognized by analysis systems in some highly censored regions.
- ShadowSocks - маскирует VPN-трафик под обычный веб-трафик, но распознается системами анализа в некоторых регионах с высоким уровнем цензуры.
-
-
- OpenVPN over Cloak - OpenVPN with VPN masquerading as web traffic and protection against active-probing detection. Ideal for bypassing blocking in regions with the highest levels of censorship.
- OpenVPN over Cloak - OpenVPN с маскировкой VPN под web-трафик и защитой от обнаружения active-probbing. Подходит для регионов с самым высоким уровнем цензуры.
- WireGuard - New popular VPN protocol with high performance, high speed and low power consumption. Recommended for regions with low levels of censorship.
@@ -2840,10 +2871,6 @@ While it offers a blend of security, stability, and speed, it's essential t
Replace the current DNS server with your own. This will increase your privacy level.Замените DNS-сервер на Amnezia DNS. Это повысит уровень конфиденциальности.
-
- Create a file vault on your server to securely store and transfer files.
- Создайте на сервере файловое хранилище для безопасного хранения и передачи файлов.
- OpenVPN stands as one of the most popular and time-tested VPN protocols available.
@@ -3037,7 +3064,7 @@ This means that AmneziaWG keeps the fast performance of the original while addin
SelectLanguageDrawer
-
+ Choose languageВыберите язык
@@ -3059,22 +3086,17 @@ This means that AmneziaWG keeps the fast performance of the original while addin
SettingsController
-
- Software version
- Версия ПО
-
-
-
+ All settings have been reset to default valuesВсе настройки были сброшены к значению "По умолчанию"
-
+ Cached profiles clearedКэш профиля очищен
-
+ Backup file is corruptedBackup файл поврежден
@@ -3083,38 +3105,38 @@ This means that AmneziaWG keeps the fast performance of the original while addin
ShareConnectionDrawer
-
+ Save AmneziaVPN configСохранить config AmneziaVPN
-
+ ShareПоделиться
-
+ CopyСкопировать
-
-
+
+ CopiedСкопировано
-
+ Copy config string
-
+ Show connection settingsПоказать настройки подключения
-
+ To read the QR code in the Amnezia app, select "Add server" → "I have data to connect" → "QR code, key or settings file"Для считывания QR-кода в приложении Amnezia выберите "Добавить сервер" → "У меня есть данные для подключения" → "QR-код, ключ или файл настроек"
@@ -3198,7 +3220,7 @@ This means that AmneziaWG keeps the fast performance of the original while addin
TextFieldWithHeaderType
-
+ The field can't be emptyПоле не может быть пустым
@@ -3310,12 +3332,12 @@ This means that AmneziaWG keeps the fast performance of the original while addin
main2
-
+ Private key passphraseКодовая фраза для закрытого ключа
-
+ SaveСохранить
diff --git a/client/translations/amneziavpn_zh_CN.ts b/client/translations/amneziavpn_zh_CN.ts
index 8eacc183..8410f8e2 100644
--- a/client/translations/amneziavpn_zh_CN.ts
+++ b/client/translations/amneziavpn_zh_CN.ts
@@ -16,57 +16,49 @@
VPN已连接
-
- ApiController
-
-
- Error when retrieving configuration from cloud server
-
-
-ConnectionController
-
-
-
-
+
+
+
+ Connect连接
-
+ VPN Protocols is not installed.
Please install VPN container at first请先安装VPN协议
-
+ Connection...连接中
-
+ Connected已连接
-
+ Reconnection...重连中
-
+ Disconnection...断开中
-
+ Settings updated successfully, Reconnnection...配置已更新,重连中
-
+ Settings updated successfully配置更新成功
@@ -78,17 +70,17 @@
连接方式
-
+ Add new connection添加新连接
-
+ Configure your server配置您的服务器
-
+ Open config file, key or QR code配置文件,授权码或二维码
@@ -127,7 +119,7 @@
ExportController
-
+ Access error!访问错误
@@ -135,12 +127,12 @@
HomeContainersListView
-
+ Unable change protocol while there is an active connection已建立连接时无法更改服务器配置
-
+ The selected protocol is not supported on the current platform当前平台不支持所选协议
@@ -149,10 +141,54 @@
重连VPN基于协议:
+
+ HomeSplitTunnelingDrawer
+
+
+ Split tunneling
+ 隧道分离
+
+
+
+ Allows you to connect to some sites or applications through a VPN connection and bypass others
+ 允许您通过 VPN 连接连接到某些站点或应用程序,并绕过其他站点或应用程序
+
+
+
+ Split tunneling on the server
+
+
+
+
+ Enabled
+Can't be disabled for current server
+
+
+
+
+ Site-based split tunneling
+ 基于网站的隧道分离
+
+
+
+ Enabled
+ 开启
+
+
+
+ Disabled
+ 禁用
+
+
+
+ App-based split tunneling
+ 基于应用的隧道分离
+
+ImportController
-
+ Scanned %1 of %2.扫描 %1 of %2.
@@ -307,17 +343,27 @@ Already installed containers were found on the server. All installed containers
PageHome
-
+
+ Split tunneling enabled
+ 用户分隔隧道已启用
+
+
+
+ Split tunneling disabled
+ 分隔隧道已禁用
+
+
+ VPN protocolVPN协议
-
+ Servers服务器
-
+ Unable change server while there is an active connection已建立连接时无法更改服务器配置
@@ -325,72 +371,27 @@ Already installed containers were found on the server. All installed containers
PageProtocolAwgSettings
-
+ AmneziaWG settingsAmneziaWG 配置
-
+ Port端口
-
- Junk packet count
- 垃圾包数量
-
-
-
- Junk packet minimum size
- 垃圾包最小值
-
-
-
- Junk packet maximum size
- 垃圾包最大值
-
-
-
- Init packet junk size
- 初始化垃圾包大小
-
-
-
- Response packet junk size
- 响应垃圾包大小
-
-
-
- Init packet magic header
- 初始化数据包魔数头
-
-
-
- Response packet magic header
- 响应包魔数头
-
-
-
- Transport packet magic header
- 传输包魔数头
-
-
-
- Underload packet magic header
- 低负载数据包魔数头
-
-
-
+ Remove AmneziaWG移除AmneziaWG
-
+ Remove AmneziaWG from server?从服务上移除AmneziaWG?
-
+ All users with whom you shared a connection will no longer be able to connect to it.与您共享连接的所有用户将无法再连接到该连接。
@@ -399,17 +400,17 @@ Already installed containers were found on the server. All installed containers
使用此共享连接的所有用户,将无法再连接它。
-
+ Continue继续
-
+ Cancel取消
-
+ Save and Restart Amnezia保存并重启Amnezia
@@ -417,28 +418,28 @@ Already installed containers were found on the server. All installed containers
PageProtocolCloakSettings
-
+ Cloak settingsCloak 配置
-
+ Disguised as traffic from伪装流量为
-
+ Port端口
-
-
+
+ Cipher加密算法
-
+ Save and Restart Amnezia保存并重启Amnezia
@@ -446,7 +447,7 @@ Already installed containers were found on the server. All installed containers
PageProtocolOpenVpnSettings
-
+ OpenVPN settingsOpenVPN 配置
@@ -455,175 +456,175 @@ Already installed containers were found on the server. All installed containers
VPN子网掩码
-
+ VPN address subnet
-
+ Network protocol网络协议
-
+ Port端口
-
+ Auto-negotiate encryption自定义加密方式
-
-
+
+ Hash
-
+ SHA512
-
+ SHA384
-
+ SHA256
-
+ SHA3-512
-
+ SHA3-384
-
+ SHA3-256
-
+ whirlpool
-
+ BLAKE2b512
-
+ BLAKE2s256
-
+ SHA1
-
-
+
+ Cipher
-
+ AES-256-GCM
-
+ AES-192-GCM
-
+ AES-128-GCM
-
+ AES-256-CBC
-
+ AES-192-CBC
-
+ AES-128-CBC
-
+ ChaCha20-Poly1305
-
+ ARIA-256-CBC
-
+ CAMELLIA-256-CBC
-
+ none无
-
+ TLS authTLS认证
-
+ Block DNS requests outside of VPN阻止VPN外的DNS请求
-
+ Additional client configuration commands附加客户端配置命令
-
-
+
+ Commands:命令:
-
+ Additional server configuration commands附加服务器端配置命令
-
+ Remove OpenVPN移除OpenVPN
-
+ Remove OpenVpn from server?从服务器移除OpenVPN吗?
-
+ All users with whom you shared a connection will no longer be able to connect to it.与您共享连接的所有用户将无法再连接到该连接。
@@ -636,17 +637,17 @@ Already installed containers were found on the server. All installed containers
与您共享连接的所有用户将无法再连接到此链接
-
+ Continue继续
-
+ Cancel取消
-
+ Save and Restart Amnezia保存并重启Amnezia
@@ -668,22 +669,22 @@ Already installed containers were found on the server. All installed containers
连接选项
-
+ Connection options %1%1 连接选项
-
+ Remove 移除
-
+ Remove %1 from server?从服务器移除 %1 ?
-
+ All users with whom you shared a connection will no longer be able to connect to it.与您共享连接的所有用户将无法再连接到该连接。
@@ -700,12 +701,12 @@ Already installed containers were found on the server. All installed containers
与您共享连接的所有用户将无法再连接到此链接
-
+ Continue继续
-
+ Cancel取消
@@ -713,23 +714,23 @@ Already installed containers were found on the server. All installed containers
PageProtocolShadowSocksSettings
-
+ ShadowSocks settingsShadowSocks 配置
-
+ Port端口
-
-
+
+ Cipher加密算法
-
+ Save and Restart Amnezia保存并重启Amnezia
@@ -886,17 +887,13 @@ Already installed containers were found on the server. All installed containers
Use <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> to open this URL.
-
+ 用 <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor 浏览器</a> 打开上面网址After creating your onion site, it takes a few minutes for the Tor network to make it available for use.创建您的洋葱网站后,需要几分钟时间,才能使其在Tor网络上可用
-
- Use <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor Browser</a> to open this URL.
- 用 <a href="https://www.torproject.org/download/" style="color: #FBB26A;">Tor 浏览器</a> 打开上面网址
- After installation it takes several minutes while your onion site will become available in the Tor Network.完成安装几分钟后,洋葱站点才会在 Tor 网络中生效。
@@ -1013,62 +1010,67 @@ And if you don't like the app, all the more support it - the donation will
其他捐款途径
-
+ https://github.com/amnezia-vpn/amnezia-client#donate
-
+ Contacts联系方式
-
+ Telegram group电报群
-
+ To discuss features用于功能讨论
-
+ https://t.me/amnezia_vpn_en
-
+ Mail邮件
-
+ For reviews and bug reports用于评论和提交软件的缺陷
-
+ Github
-
+ https://github.com/amnezia-vpn/amnezia-client
-
+ Website官网
-
+ https://amnezia.org
-
+
+ Software version: %1
+ 软件版本: %1
+
+
+ Check for updates检查更新
@@ -1109,56 +1111,66 @@ And if you don't like the app, all the more support it - the donation will
+ Auto connect
+ 自动连接
+
+
+
+ Connect to VPN on app start
+ 应用开启时连接VPN
+
+
+ Start minimized最小化
-
+ Launch application minimized开启应用软件时窗口最小化
-
+ Language语言
-
+ Logging日志
-
+ Enabled开启
-
+ Disabled禁用
-
+ Reset settings and remove all data from the application重置并清理应用的所有数据
-
+ Reset settings and remove all data from the application?重置并清理应用的所有数据?
-
+ All settings will be reset to default. All installed AmneziaVPN services will still remain on the server.所有配置恢复为默认值。服务器已安装的AmneziaVPN服务将被保留。
-
+ Continue继续
-
+ Cancel取消
@@ -1249,22 +1261,20 @@ And if you don't like the app, all the more support it - the donation will
连接
- Auto connect
- 自动连接
+ 自动连接
- Connect to VPN on app start
- 应用开启时连接VPN
+ 应用开启时连接VPN
-
+ When AmneziaDNS is not used or installed当未使用或未安装AmneziaDNS时
-
+ Allows you to use the VPN only for certain Apps
@@ -1273,17 +1283,17 @@ And if you don't like the app, all the more support it - the donation will
使用AmneziaDNS,如其已安装在服务器上
-
+ Use AmneziaDNS使用AmneziaDNS
-
+ If AmneziaDNS is installed on the server如果已在服务器安装AmneziaDNS
-
+ DNS serversDNS服务器
@@ -1292,17 +1302,17 @@ And if you don't like the app, all the more support it - the donation will
如果未使用或未安装AmneziaDNS
-
+ Site-based split tunneling基于网站的隧道分离
-
+ Allows you to select which sites you want to access through the VPN配置想要通过VPN访问网站
-
+ App-based split tunneling基于应用的隧道分离
@@ -1326,62 +1336,62 @@ And if you don't like the app, all the more support it - the donation will
PageSettingsDns
-
+ Default server does not support custom dns
-
+ DNS serversDNS服务器
-
+ If AmneziaDNS is not used or installed如果未使用或未安装AmneziaDNS
-
+ Primary DNS首选 DNS
-
+ Secondary DNS备用 DNS
-
+ Restore default恢复默认配置
-
+ Restore default DNS settings?是否恢复默认DNS配置?
-
+ Continue继续
-
+ Cancel取消
-
+ Settings have been reset已重置
-
+ Save保存
-
+ Settings saved配置已保存
@@ -1439,12 +1449,12 @@ And if you don't like the app, all the more support it - the donation will
取消
-
+ Logs have been cleaned up日志已清理
-
+ Clear logs清理日志
@@ -1477,12 +1487,12 @@ And if you don't like the app, all the more support it - the donation will
清除缓存?
-
+ Do you want to reboot the server?您想重新启动服务器吗?
-
+ Do you want to clear server from Amnezia software?您要清除服务器上的Amnezia软件吗?
@@ -1493,61 +1503,73 @@ And if you don't like the app, all the more support it - the donation will
-
-
-
+
+
+
+ Continue继续
-
-
-
+
+
+
+ Cancel取消
-
+ Check the server for previously installed Amnezia services检查服务器上,是否存在之前安装的 Amnezia 服务
-
+ Add them to the application if they were not displayed如果存在且未显示,则添加到应用软件
-
+ Reboot server重新启动服务器
-
+ The reboot process may take approximately 30 seconds. Are you sure you wish to proceed? 重新启动过程可能需要大约30秒。您确定要继续吗?
-
+ Remove server from application移除本地服务器信息
-
+ Do you want to remove the server from application?您想要从应用程序中移除服务器吗?
+
+
+ Reset API config
+
+
+
+
+ Do you want to reset API config?
+
+ Remove server?移除本地服务器信息?
-
+ All installed AmneziaVPN services will still remain on the server.所有已安装的 AmneziaVPN 服务仍将保留在服务器上。
-
+ Clear server from Amnezia software清理Amnezia中服务器信息
@@ -1556,7 +1578,7 @@ And if you don't like the app, all the more support it - the donation will
清理Amnezia中服务器信息
-
+ All containers will be deleted on the server. This means that configuration files, keys and certificates will be deleted.服务器上的所有容器都将被删除。配置文件、密钥和证书也将被删除。
@@ -1564,27 +1586,27 @@ And if you don't like the app, all the more support it - the donation will
PageSettingsServerInfo
-
+ Server name服务器名
-
+ Save保存
-
+ Protocols协议
-
+ Services服务
-
+ Data数据
@@ -1657,7 +1679,7 @@ And if you don't like the app, all the more support it - the donation will
网站级VPN分流
-
+ Default server does not support split tunneling function
@@ -1666,32 +1688,32 @@ And if you don't like the app, all the more support it - the donation will
仅使用VPN访问
-
+ Addresses from the list should not be accessed via VPN不使用VPN访问
-
+ Split tunneling隧道分离
-
+ Mode规则
-
+ Remove 移除
-
+ Continue继续
-
+ Cancel取消
@@ -1704,60 +1726,65 @@ And if you don't like the app, all the more support it - the donation will
导入/导出网站
-
+
+ Cannot change split tunneling settings during active connection
+
+
+
+ Only the sites listed here will be accessed through the VPN只有这里列出的网站将通过VPN访问
-
+ website or IP网站或IP
-
+ Import / Export Sites导入/导出网站
-
+ Import导入
-
+ Save site list保存网址
-
+ Save sites保存网址
-
-
-
+
+
+ Sites files (*.json)
-
+ Import a list of sites导入网址列表
-
+ Replace site list替换网址列表
-
-
+
+ Open sites file打开网址文件
-
+ Add imported sites to existing ones将导入的网址添加到现有网址中
@@ -1815,17 +1842,17 @@ It's okay as long as it's from someone you trust.
连接服务器
-
+ Configure your server配置服务器
-
+ Server IP address [:port]服务器IP [:端口]
-
+ Login to connect via SSH用户
@@ -1834,12 +1861,12 @@ It's okay as long as it's from someone you trust.
密码 或 私钥
-
+ Continue继续
-
+ All data you enter will remain strictly confidential and will not be shared or disclosed to the Amnezia or any third parties
@@ -1850,32 +1877,32 @@ and will not be shared or disclosed to the Amnezia or any third parties
不会向 Amnezia 或任何第三方分享或披露
-
+ 255.255.255.255:22
-
+ Password or SSH private key
-
+ Ip address cannot be emptyIP不能为空
-
+ Enter the address in the format 255.255.255.255:88按照这种格式输入 255.255.255.255:88
-
+ Login cannot be empty账号不能为空
-
+ Password/private key cannot be empty密码或私钥不能为空
@@ -1903,7 +1930,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
继续
-
+ Set up later稍后设置
@@ -1958,32 +1985,32 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageSetupWizardProtocolSettings
-
+ Installing %1正在安装 %1
-
+ More detailed更多细节
-
+ Close关闭
-
+ Network protocol网络协议
-
+ Port端口
-
+ Install安装
@@ -2037,7 +2064,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
我没有
-
+ https://amnezia.org/instructions/0_starter-guide
@@ -2045,27 +2072,27 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageSetupWizardTextKey
-
+ Connection key连接授权码
-
+ A line that starts with vpn://...以 vpn://... 开始的行
-
+ Key授权码
-
+ Insert插入
-
+ Continue继续
@@ -2073,27 +2100,27 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageSetupWizardViewConfig
-
+ New connection新连接
-
+ Do not use connection code from public sources. It could be created to intercept your data.请勿使用公共来源的连接码。它可以被创建来拦截您的数据。
-
+ Collapse content折叠内容
-
+ Show content显示内容
-
+ Connect连接
@@ -2101,123 +2128,133 @@ and will not be shared or disclosed to the Amnezia or any third parties
PageShare
-
+ Save OpenVPN config保存OpenVPN配置
-
+ Save WireGuard config保存WireGuard配置
-
+
+ Save AmneziaWG config
+
+
+
+ Save ShadowSocks config
-
+ Save Cloak config
-
+ For the AmneziaVPN appAmneziaVPN 应用
-
+ OpenVpn native formatOpenVPN原生格式
-
+ WireGuard native formatWireGuard原生格式
-
+
+ AmneziaWG native format
+
+
+
+ ShadowSocks native formatShadowSocks原生格式
-
+ Cloak native formatCloak原生格式
-
+ Share VPN Access共享 VPN 访问
-
+ Share full access to the server and VPN共享服务器和VPN的完全访问权限
-
+ Use for your own devices, or share with those you trust to manage the server.用于您自己的设备,或与您信任的人共享以管理服务器
-
-
+
+ Users用户
-
+ Share VPN access without the ability to manage the server共享 VPN 访问,无需管理服务器
-
+ Search
-
+ Creation date:
-
+ Rename
-
+ Client name
-
+ Save保存
-
+ Revoke撤销
-
+ Revoke the config for a user - %1?撤销用户的配置- %1?
-
+ The user will no longer be able to connect to your server.该用户将无法再连接到您的服务器
-
+ Continue继续
-
+ Cancel取消
@@ -2230,7 +2267,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
访问VPN
-
+ Connection连接
@@ -2259,8 +2296,8 @@ and will not be shared or disclosed to the Amnezia or any third parties
服务器
-
-
+
+ Server服务器
@@ -2273,7 +2310,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
访问配置文件的内容为:
-
+ File with connection settings to 连接配置文件的内容为:
@@ -2282,35 +2319,35 @@ and will not be shared or disclosed to the Amnezia or any third parties
协议
-
-
+
+ Protocol协议
-
+ Connection to 连接到
-
+ Config revoked配置已撤销
-
+ User name用户名
-
-
+
+ Connection format连接格式
-
-
+
+ Share共享
@@ -2334,33 +2371,33 @@ and will not be shared or disclosed to the Amnezia or any third parties
如果您与其他人共享完全访问权限,他们可以从服务器中删除和添加协议和服务,这将导致VPN对所有用户的工作出现问题。
-
+ Server服务器
-
+ Accessing 访问
-
+ File with accessing settings to 访问配置文件的内容为:
-
+ Share共享
-
+ Connection to 连接到
-
+ File with connection settings to 连接配置文件的内容为:
@@ -2761,7 +2798,17 @@ and will not be shared or disclosed to the Amnezia or any third parties
-
+
+ Error when retrieving configuration from API
+
+
+
+
+ This config has already been added to the application
+
+
+
+ ErrorCode: %1.
@@ -2829,7 +2876,7 @@ and will not be shared or disclosed to the Amnezia or any third parties
该配置不包含任何用于连接到服务器的容器和凭据。
-
+ Internal error
@@ -2865,9 +2912,8 @@ and will not be shared or disclosed to the Amnezia or any third parties
ShadowSocks - 掩盖VPN流量,使其类似于正常的网络流量,但在一些高度审查的地区可能会被分析系统识别
- OpenVPN over Cloak - OpenVPN with masquerading as web traffic and protection against active-probing detection. Ideal for bypassing blocking in regions with the highest levels of censorship.
- OpenVPN over Cloak - OpenVPN与VPN结合,伪装成Web流量,并保护免受主动探测的侦测。非常适合在具有最高审查水平的地区绕过封锁
+ OpenVPN over Cloak - OpenVPN与VPN结合,伪装成Web流量,并保护免受主动探测的侦测。非常适合在具有最高审查水平的地区绕过封锁
@@ -2922,8 +2968,9 @@ WireGuard非常容易被阻挡,因为其独特的数据包签名。与一些
ShadowSocks - 混淆 VPN 流量,使其与正常的 Web 流量相似,但在一些审查力度高的地区可以被分析系统识别。
+ OpenVPN over Cloak - OpenVPN with VPN masquerading as web traffic and protection against active-probing detection. Ideal for bypassing blocking in regions with the highest levels of censorship.
- OpenVPN over Cloak - OpenVPN与VPN结合,伪装成Web流量,并保护免受主动探测的侦测。非常适合在具有最高审查水平的地区绕过封锁
+ OpenVPN over Cloak - OpenVPN与VPN结合,伪装成Web流量,并保护免受主动探测的侦测。非常适合在具有最高审查水平的地区绕过封锁
@@ -3185,7 +3232,7 @@ While it offers a blend of security, stability, and speed, it's essential t
SelectLanguageDrawer
-
+ Choose language选择语言
@@ -3207,22 +3254,17 @@ While it offers a blend of security, stability, and speed, it's essential t
SettingsController
-
- Software version
- 软件版本
-
-
-
+ Backup file is corrupted备份文件已损坏
-
+ All settings have been reset to default values所配置恢复为默认值
-
+ Cached profiles cleared缓存的配置文件已清除
@@ -3231,33 +3273,33 @@ While it offers a blend of security, stability, and speed, it's essential t
ShareConnectionDrawer
-
+ Save AmneziaVPN config保存配置
-
+ Share共享
-
+ Copy拷贝
-
-
+
+ Copied已拷贝
-
+ Copy config string复制配置字符串
-
+ Show connection settings显示连接配置
@@ -3266,7 +3308,7 @@ While it offers a blend of security, stability, and speed, it's essential t
展示内容
-
+ To read the QR code in the Amnezia app, select "Add server" → "I have data to connect" → "QR code, key or settings file"要应用二维码到 Amnezia,请底部工具栏点击“+”→“连接方式”→“二维码、授权码或配置文件”
@@ -3350,7 +3392,7 @@ While it offers a blend of security, stability, and speed, it's essential t
TextFieldWithHeaderType
-
+ The field can't be empty输入不能为空
@@ -3462,12 +3504,12 @@ While it offers a blend of security, stability, and speed, it's essential t
main2
-
+ Private key passphrase私钥密码
-
+ Save保存
diff --git a/client/ui/controllers/exportController.cpp b/client/ui/controllers/exportController.cpp
index 0c328326..57d864e9 100644
--- a/client/ui/controllers/exportController.cpp
+++ b/client/ui/controllers/exportController.cpp
@@ -8,6 +8,7 @@
#include
#include
+#include "configurators/awg_configurator.h"
#include "configurators/cloak_configurator.h"
#include "configurators/openvpn_configurator.h"
#include "configurators/shadowsocks_configurator.h"
@@ -228,6 +229,45 @@ void ExportController::generateWireGuardConfig(const QString &clientName)
emit exportConfigChanged();
}
+void ExportController::generateAwgConfig(const QString &clientName)
+{
+ clearPreviousConfig();
+
+ int serverIndex = m_serversModel->getProcessedServerIndex();
+ ServerCredentials credentials = m_serversModel->getServerCredentials(serverIndex);
+
+ DockerContainer container = static_cast(m_containersModel->getCurrentlyProcessedContainerIndex());
+ QJsonObject containerConfig = m_containersModel->getContainerConfig(container);
+ containerConfig.insert(config_key::container, ContainerProps::containerToString(container));
+
+ QString clientId;
+ ErrorCode errorCode = ErrorCode::NoError;
+ QString config = m_configurator->awgConfigurator->genAwgConfig(credentials, container, containerConfig,
+ clientId, &errorCode);
+ if (errorCode) {
+ emit exportErrorOccurred(errorString(errorCode));
+ return;
+ }
+ config = m_configurator->processConfigWithExportSettings(serverIndex, container, Proto::Awg, config);
+
+ auto configJson = QJsonDocument::fromJson(config.toUtf8()).object();
+ QStringList lines = configJson.value(config_key::config).toString().replace("\r", "").split("\n");
+ for (const QString &line : lines) {
+ m_config.append(line + "\n");
+ }
+
+ qrcodegen::QrCode qr = qrcodegen::QrCode::encodeText(m_config.toUtf8(), qrcodegen::QrCode::Ecc::LOW);
+ m_qrCodes << svgToBase64(QString::fromStdString(toSvgString(qr, 1)));
+
+ errorCode = m_clientManagementModel->appendClient(clientId, clientName, container, credentials);
+ if (errorCode) {
+ emit exportErrorOccurred(errorString(errorCode));
+ return;
+ }
+
+ emit exportConfigChanged();
+}
+
void ExportController::generateShadowSocksConfig()
{
clearPreviousConfig();
diff --git a/client/ui/controllers/exportController.h b/client/ui/controllers/exportController.h
index a6dc468b..e5bd1657 100644
--- a/client/ui/controllers/exportController.h
+++ b/client/ui/controllers/exportController.h
@@ -34,6 +34,7 @@ public slots:
void generateConnectionConfig(const QString &clientName);
void generateOpenVpnConfig(const QString &clientName);
void generateWireGuardConfig(const QString &clientName);
+ void generateAwgConfig(const QString &clientName);
void generateShadowSocksConfig();
void generateCloakConfig();
diff --git a/client/ui/controllers/settingsController.cpp b/client/ui/controllers/settingsController.cpp
index 99645cde..6ec55321 100644
--- a/client/ui/controllers/settingsController.cpp
+++ b/client/ui/controllers/settingsController.cpp
@@ -28,7 +28,7 @@ SettingsController::SettingsController(const QSharedPointer &serve
m_sitesModel(sitesModel),
m_settings(settings)
{
- m_appVersion = QString("%1: %2 (%3)").arg(tr("Software version"), QString(APP_VERSION), __DATE__);
+ m_appVersion = QString("%1 (%2, %3)").arg(QString(APP_VERSION), __DATE__, GIT_COMMIT_HASH);
#ifdef Q_OS_ANDROID
if (!m_settings->isScreenshotsEnabled()) {
diff --git a/client/ui/models/servers_model.cpp b/client/ui/models/servers_model.cpp
index a4420255..3c72ee49 100644
--- a/client/ui/models/servers_model.cpp
+++ b/client/ui/models/servers_model.cpp
@@ -220,6 +220,11 @@ bool ServersModel::isDefaultServerCurrentlyProcessed()
return m_defaultServerIndex == m_processedServerIndex;
}
+bool ServersModel::isDefaultServerFromApi()
+{
+ return qvariant_cast(data(m_defaultServerIndex, IsServerFromApiRole));
+}
+
bool ServersModel::isProcessedServerHasWriteAccess()
{
return qvariant_cast(data(m_processedServerIndex, HasWriteAccessRole));
@@ -249,7 +254,7 @@ void ServersModel::editServer(const QJsonObject &server, const int serverIndex)
}
updateContainersModel();
- if (isDefaultServerCurrentlyProcessed()) {
+ if (serverIndex == m_defaultServerIndex) {
auto defaultContainer = qvariant_cast(getDefaultServerData("defaultContainer"));
emit defaultServerDefaultContainerChanged(defaultContainer);
}
@@ -577,3 +582,18 @@ void ServersModel::setProcessedServerData(const QString roleString, const QVaria
}
+bool ServersModel::isDefaultServerDefaultContainerHasSplitTunneling()
+{
+ auto server = m_servers.at(m_defaultServerIndex).toObject();
+ auto defaultContainer = ContainerProps::containerFromString(server.value(config_key::defaultContainer).toString());
+ auto containerConfig = server.value(config_key::containers).toArray().at(defaultContainer).toObject();
+ auto protocolConfig = containerConfig.value(ContainerProps::containerTypeToString(defaultContainer)).toObject();
+
+ if (defaultContainer == DockerContainer::Awg || defaultContainer == DockerContainer::WireGuard) {
+ return !(protocolConfig.value(config_key::last_config).toString().contains("AllowedIPs = 0.0.0.0/0, ::/0"));
+ } else if (defaultContainer == DockerContainer::Cloak || defaultContainer == DockerContainer::OpenVpn || defaultContainer == DockerContainer::ShadowSocks) {
+ return !(protocolConfig.value(config_key::last_config).toString().contains("redirect-gateway"));
+ }
+
+ return false;
+}
diff --git a/client/ui/models/servers_model.h b/client/ui/models/servers_model.h
index 1adaebae..3e24e46c 100644
--- a/client/ui/models/servers_model.h
+++ b/client/ui/models/servers_model.h
@@ -48,6 +48,8 @@ public:
Q_PROPERTY(QString defaultServerDefaultContainerName READ getDefaultServerDefaultContainerName NOTIFY defaultServerDefaultContainerChanged)
Q_PROPERTY(QString defaultServerDescriptionCollapsed READ getDefaultServerDescriptionCollapsed NOTIFY defaultServerDefaultContainerChanged)
Q_PROPERTY(QString defaultServerDescriptionExpanded READ getDefaultServerDescriptionExpanded NOTIFY defaultServerDefaultContainerChanged)
+ Q_PROPERTY(bool isDefaultServerDefaultContainerHasSplitTunneling READ isDefaultServerDefaultContainerHasSplitTunneling NOTIFY defaultServerDefaultContainerChanged)
+ Q_PROPERTY(bool isDefaultServerFromApi READ isDefaultServerFromApi NOTIFY defaultServerIndexChanged)
Q_PROPERTY(int processedIndex READ getProcessedServerIndex WRITE setProcessedServerIndex NOTIFY processedServerIndexChanged)
@@ -59,6 +61,7 @@ public slots:
const QString getDefaultServerDescriptionExpanded();
const QString getDefaultServerDefaultContainerName();
bool isDefaultServerCurrentlyProcessed();
+ bool isDefaultServerFromApi();
bool isProcessedServerHasWriteAccess();
bool isDefaultServerHasWriteAccess();
@@ -103,6 +106,8 @@ public slots:
QVariant getProcessedServerData(const QString roleString);
void setProcessedServerData(const QString roleString, const QVariant &value);
+ bool isDefaultServerDefaultContainerHasSplitTunneling();
+
protected:
QHash roleNames() const override;
diff --git a/client/ui/models/sites_model.cpp b/client/ui/models/sites_model.cpp
index f6cb9b13..96b6ca60 100644
--- a/client/ui/models/sites_model.cpp
+++ b/client/ui/models/sites_model.cpp
@@ -113,6 +113,7 @@ void SitesModel::toggleSplitTunneling(bool enabled)
m_settings->setRouteMode(Settings::RouteMode::VpnAllSites);
}
m_isSplitTunnelingEnabled = enabled;
+ emit splitTunnelingToggled();
}
QVector > SitesModel::getCurrentSites()
diff --git a/client/ui/models/sites_model.h b/client/ui/models/sites_model.h
index ad16b7a3..803b7fd1 100644
--- a/client/ui/models/sites_model.h
+++ b/client/ui/models/sites_model.h
@@ -22,6 +22,7 @@ public:
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
Q_PROPERTY(int routeMode READ getRouteMode WRITE setRouteMode NOTIFY routeModeChanged)
+ Q_PROPERTY(bool isTunnelingEnabled READ isSplitTunnelingEnabled NOTIFY splitTunnelingToggled)
public slots:
bool addSite(const QString &hostname, const QString &ip);
@@ -38,6 +39,7 @@ public slots:
signals:
void routeModeChanged();
+ void splitTunnelingToggled();
protected:
QHash roleNames() const override;
diff --git a/client/ui/qml/Components/HomeSplitTunnelingDrawer.qml b/client/ui/qml/Components/HomeSplitTunnelingDrawer.qml
new file mode 100644
index 00000000..bc1f1008
--- /dev/null
+++ b/client/ui/qml/Components/HomeSplitTunnelingDrawer.qml
@@ -0,0 +1,92 @@
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+import PageEnum 1.0
+
+import "../Controls2"
+import "../Controls2/TextTypes"
+import "../Config"
+
+DrawerType2 {
+ id: root
+
+ anchors.fill: parent
+ expandedHeight: parent.height * 0.7
+
+ expandedContent: ColumnLayout {
+ id: content
+
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ spacing: 0
+
+ Header2Type {
+ Layout.fillWidth: true
+ Layout.topMargin: 24
+ Layout.rightMargin: 16
+ Layout.leftMargin: 16
+ Layout.bottomMargin: 16
+
+ headerText: qsTr("Split tunneling")
+ descriptionText: qsTr("Allows you to connect to some sites or applications through a VPN connection and bypass others")
+ }
+
+ LabelWithButtonType {
+ Layout.fillWidth: true
+ Layout.topMargin: 16
+
+ visible: ServersModel.isDefaultServerDefaultContainerHasSplitTunneling && ServersModel.getDefaultServerData("isServerFromApi")
+
+ text: qsTr("Split tunneling on the server")
+ descriptionText: qsTr("Enabled \nCan't be disabled for current server")
+ rightImageSource: "qrc:/images/controls/chevron-right.svg"
+
+ clickedFunction: function() {
+// PageController.goToPage(PageEnum.PageSettingsSplitTunneling)
+// root.close()
+ }
+ }
+
+ DividerType {
+ visible: ServersModel.isDefaultServerDefaultContainerHasSplitTunneling && ServersModel.getDefaultServerData("isServerFromApi")
+ }
+
+ LabelWithButtonType {
+ Layout.fillWidth: true
+ Layout.topMargin: 16
+
+ enabled: ! ServersModel.isDefaultServerDefaultContainerHasSplitTunneling || !ServersModel.getDefaultServerData("isServerFromApi")
+
+ text: qsTr("Site-based split tunneling")
+ descriptionText: enabled && SitesModel.isTunnelingEnabled ? qsTr("Enabled") : qsTr("Disabled")
+ rightImageSource: "qrc:/images/controls/chevron-right.svg"
+
+ clickedFunction: function() {
+ PageController.goToPage(PageEnum.PageSettingsSplitTunneling)
+ root.close()
+ }
+ }
+
+ DividerType {
+ }
+
+ LabelWithButtonType {
+ Layout.fillWidth: true
+ visible: false
+
+ text: qsTr("App-based split tunneling")
+ rightImageSource: "qrc:/images/controls/chevron-right.svg"
+
+ clickedFunction: function() {
+// PageController.goToPage(PageEnum.PageSetupWizardConfigSource)
+ root.close()
+ }
+ }
+
+ DividerType {
+ visible: false
+ }
+ }
+}
diff --git a/client/ui/qml/Components/ShareConnectionDrawer.qml b/client/ui/qml/Components/ShareConnectionDrawer.qml
index c209c1ce..d816cd41 100644
--- a/client/ui/qml/Components/ShareConnectionDrawer.qml
+++ b/client/ui/qml/Components/ShareConnectionDrawer.qml
@@ -107,13 +107,6 @@ DrawerType2 {
text: qsTr("Copy")
imageSource: "qrc:/images/controls/copy.svg"
-
- clickedFunc: function() {
- configText.selectAll()
- configText.copy()
- configText.select(0, 0)
- PageController.showNotificationMessage(qsTr("Copied"))
- }
}
BasicButtonType {
@@ -132,13 +125,6 @@ DrawerType2 {
text: qsTr("Copy config string")
imageSource: "qrc:/images/controls/copy.svg"
-
- clickedFunc: function() {
- nativeConfigString.selectAll()
- nativeConfigString.copy()
- nativeConfigString.select(0, 0)
- PageController.showNotificationMessage(qsTr("Copied"))
- }
}
BasicButtonType {
@@ -201,7 +187,7 @@ DrawerType2 {
anchors.topMargin: 16
backButtonFunction: function() {
- configContentDrawer.open()
+ configContentDrawer.close()
}
}
diff --git a/client/ui/qml/Controls2/BasicButtonType.qml b/client/ui/qml/Controls2/BasicButtonType.qml
index 77d4b5fb..257486d6 100644
--- a/client/ui/qml/Controls2/BasicButtonType.qml
+++ b/client/ui/qml/Controls2/BasicButtonType.qml
@@ -21,6 +21,8 @@ Button {
property int borderFocusedWidth: 1
property string imageSource
+ property string rightImageSource
+ property string leftImageColor: textColor
property bool squareLeftSide: false
@@ -118,7 +120,7 @@ Button {
layer {
enabled: true
effect: ColorOverlay {
- color: textColor
+ color: leftImageColor
}
}
}
@@ -131,6 +133,21 @@ Button {
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
}
+
+ Image {
+ Layout.preferredHeight: 20
+ Layout.preferredWidth: 20
+
+ source: root.rightImageSource
+ visible: root.rightImageSource === "" ? false : true
+
+ layer {
+ enabled: true
+ effect: ColorOverlay {
+ color: textColor
+ }
+ }
+ }
}
}
diff --git a/client/ui/qml/Pages2/PageHome.qml b/client/ui/qml/Pages2/PageHome.qml
index 7b4e2601..e1ea6a4f 100644
--- a/client/ui/qml/Pages2/PageHome.qml
+++ b/client/ui/qml/Pages2/PageHome.qml
@@ -35,8 +35,45 @@ PageType {
anchors.bottomMargin: drawer.collapsedHeight
ConnectButton {
+ id: connectButton
anchors.centerIn: parent
}
+
+ BasicButtonType {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 34
+ leftPadding: 16
+ rightPadding: 16
+
+ implicitHeight: 36
+
+ defaultColor: "transparent"
+ hoveredColor: Qt.rgba(1, 1, 1, 0.08)
+ pressedColor: Qt.rgba(1, 1, 1, 0.12)
+ disabledColor: "#878B91"
+ textColor: "#878B91"
+ leftImageColor: "transparent"
+ borderWidth: 0
+
+ property bool isSplitTunnelingEnabled: SitesModel.isTunnelingEnabled ||
+ (ServersModel.isDefaultServerDefaultContainerHasSplitTunneling && ServersModel.getDefaultServerData("isServerFromApi"))
+
+ text: isSplitTunnelingEnabled ? qsTr("Split tunneling enabled") : qsTr("Split tunneling disabled")
+
+ imageSource: isSplitTunnelingEnabled ? "qrc:/images/controls/split-tunneling.svg" : ""
+ rightImageSource: "qrc:/images/controls/chevron-down.svg"
+
+ onClicked: {
+ homeSplitTunnelingDrawer.open()
+ }
+
+ HomeSplitTunnelingDrawer {
+ id: homeSplitTunnelingDrawer
+
+ parent: root
+ }
+ }
}
DrawerType2 {
@@ -155,7 +192,7 @@ PageType {
LabelTextType {
id: expandedServersMenuDescription
- Layout.bottomMargin: 24
+ Layout.bottomMargin: ServersModel.isDefaultServerFromApi ? 69 : 24
Layout.fillWidth: true
horizontalAlignment: Qt.AlignHCenter
verticalAlignment: Qt.AlignVCenter
@@ -166,6 +203,9 @@ PageType {
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
spacing: 8
+ visible: !ServersModel.isDefaultServerFromApi
+ onVisibleChanged: expandedServersMenuDescription.Layout
+
DropDownType {
id: containersDropDown
diff --git a/client/ui/qml/Pages2/PageProtocolAwgSettings.qml b/client/ui/qml/Pages2/PageProtocolAwgSettings.qml
index df9f0b9f..16946fdf 100644
--- a/client/ui/qml/Pages2/PageProtocolAwgSettings.qml
+++ b/client/ui/qml/Pages2/PageProtocolAwgSettings.qml
@@ -111,7 +111,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: 16
- headerText: qsTr("Junk packet count")
+ headerText: "Jc - Junk packet count"
textFieldText: junkPacketCount
textField.validator: IntValidator { bottom: 0 }
@@ -136,7 +136,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: 16
- headerText: qsTr("Junk packet minimum size")
+ headerText: "Jmin - Junk packet minimum size"
textFieldText: junkPacketMinSize
textField.validator: IntValidator { bottom: 0 }
@@ -156,7 +156,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: 16
- headerText: qsTr("Junk packet maximum size")
+ headerText: "Jmax - Junk packet maximum size"
textFieldText: junkPacketMaxSize
textField.validator: IntValidator { bottom: 0 }
@@ -176,7 +176,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: 16
- headerText: qsTr("Init packet junk size")
+ headerText: "S1 - Init packet junk size"
textFieldText: initPacketJunkSize
textField.validator: IntValidator { bottom: 0 }
@@ -196,7 +196,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: 16
- headerText: qsTr("Response packet junk size")
+ headerText: "S2 - Response packet junk size"
textFieldText: responsePacketJunkSize
textField.validator: IntValidator { bottom: 0 }
@@ -216,7 +216,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: 16
- headerText: qsTr("Init packet magic header")
+ headerText: "H1 - Init packet magic header"
textFieldText: initPacketMagicHeader
textField.validator: IntValidator { bottom: 0 }
@@ -236,7 +236,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: 16
- headerText: qsTr("Response packet magic header")
+ headerText: "H2 - Response packet magic header"
textFieldText: responsePacketMagicHeader
textField.validator: IntValidator { bottom: 0 }
@@ -256,7 +256,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: 16
- headerText: qsTr("Transport packet magic header")
+ headerText: "H4 - Transport packet magic header"
textFieldText: transportPacketMagicHeader
textField.validator: IntValidator { bottom: 0 }
@@ -276,7 +276,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: 16
- headerText: qsTr("Underload packet magic header")
+ headerText: "H3 - Underload packet magic header"
textFieldText: underloadPacketMagicHeader
textField.validator: IntValidator { bottom: 0 }
diff --git a/client/ui/qml/Pages2/PageSettingsAbout.qml b/client/ui/qml/Pages2/PageSettingsAbout.qml
index b20c7440..b912e2cd 100644
--- a/client/ui/qml/Pages2/PageSettingsAbout.qml
+++ b/client/ui/qml/Pages2/PageSettingsAbout.qml
@@ -175,7 +175,7 @@ PageType {
horizontalAlignment: Text.AlignHCenter
- text: SettingsController.getAppVersion()
+ text: qsTr("Software version: %1").arg(SettingsController.getAppVersion())
color: "#878B91"
}
diff --git a/client/ui/qml/Pages2/PageSettingsApplication.qml b/client/ui/qml/Pages2/PageSettingsApplication.qml
index 372cd69e..af029b7b 100644
--- a/client/ui/qml/Pages2/PageSettingsApplication.qml
+++ b/client/ui/qml/Pages2/PageSettingsApplication.qml
@@ -84,6 +84,27 @@ PageType {
visible: !GC.isMobile()
}
+ SwitcherType {
+ visible: !GC.isMobile()
+
+ Layout.fillWidth: true
+ Layout.margins: 16
+
+ text: qsTr("Auto connect")
+ descriptionText: qsTr("Connect to VPN on app start")
+
+ checked: SettingsController.isAutoConnectEnabled()
+ onCheckedChanged: {
+ if (checked !== SettingsController.isAutoConnectEnabled()) {
+ SettingsController.toggleAutoConnect(checked)
+ }
+ }
+ }
+
+ DividerType {
+ visible: !GC.isMobile()
+ }
+
SwitcherType {
visible: !GC.isMobile()
diff --git a/client/ui/qml/Pages2/PageSettingsConnection.qml b/client/ui/qml/Pages2/PageSettingsConnection.qml
index 3a0c5c3c..4d88b397 100644
--- a/client/ui/qml/Pages2/PageSettingsConnection.qml
+++ b/client/ui/qml/Pages2/PageSettingsConnection.qml
@@ -41,27 +41,6 @@ PageType {
headerText: qsTr("Connection")
}
- SwitcherType {
- visible: !GC.isMobile()
-
- Layout.fillWidth: true
- Layout.margins: 16
-
- text: qsTr("Auto connect")
- descriptionText: qsTr("Connect to VPN on app start")
-
- checked: SettingsController.isAutoConnectEnabled()
- onCheckedChanged: {
- if (checked !== SettingsController.isAutoConnectEnabled()) {
- SettingsController.toggleAutoConnect(checked)
- }
- }
- }
-
- DividerType {
- visible: !GC.isMobile()
- }
-
SwitcherType {
Layout.fillWidth: true
Layout.margins: 16
diff --git a/client/ui/qml/Pages2/PageSettingsSplitTunneling.qml b/client/ui/qml/Pages2/PageSettingsSplitTunneling.qml
index 729a6e9d..1ce3cd64 100644
--- a/client/ui/qml/Pages2/PageSettingsSplitTunneling.qml
+++ b/client/ui/qml/Pages2/PageSettingsSplitTunneling.qml
@@ -29,8 +29,14 @@ PageType {
}
Component.onCompleted: {
- if (isServerFromApi) {
+ if (ConnectionController.isConnected) {
+ PageController.showNotificationMessage(qsTr("Cannot change split tunneling settings during active connection"))
+ root.pageEnabled = false
+ } else if (ServersModel.isDefaultServerDefaultContainerHasSplitTunneling && isServerFromApi) {
PageController.showNotificationMessage(qsTr("Default server does not support split tunneling function"))
+ root.pageEnabled = false
+ } else {
+ root.pageEnabled = true
}
}
@@ -108,7 +114,7 @@ PageType {
Layout.fillWidth: true
Layout.rightMargin: 16
- checked: SitesModel.isSplitTunnelingEnabled()
+ checked: SitesModel.isTunnelingEnabled
onToggled: {
SitesModel.toggleSplitTunneling(checked)
selector.text = root.routeModesModel[getRouteModesModelIndex()].name
diff --git a/client/ui/qml/Pages2/PageShare.qml b/client/ui/qml/Pages2/PageShare.qml
index cd012e27..cd7e7958 100644
--- a/client/ui/qml/Pages2/PageShare.qml
+++ b/client/ui/qml/Pages2/PageShare.qml
@@ -22,6 +22,7 @@ PageType {
AmneziaConnection,
OpenVpn,
WireGuard,
+ Awg,
ShadowSocks,
Cloak
}
@@ -48,7 +49,10 @@ PageType {
PageController.showBusyIndicator(true)
switch (type) {
- case PageShare.ConfigType.AmneziaConnection: ExportController.generateConnectionConfig(clientNameTextField.textFieldText); break;
+ case PageShare.ConfigType.AmneziaConnection: {
+ ExportController.generateConnectionConfig(clientNameTextField.textFieldText);
+ break;
+ }
case PageShare.ConfigType.OpenVpn: {
ExportController.generateOpenVpnConfig(clientNameTextField.textFieldText)
shareConnectionDrawer.configCaption = qsTr("Save OpenVPN config")
@@ -63,6 +67,13 @@ PageType {
shareConnectionDrawer.configFileName = "amnezia_for_wireguard"
break
}
+ case PageShare.ConfigType.Awg: {
+ ExportController.generateAwgConfig(clientNameTextField.textFieldText)
+ shareConnectionDrawer.configCaption = qsTr("Save AmneziaWG config")
+ shareConnectionDrawer.configExtension = ".conf"
+ shareConnectionDrawer.configFileName = "amnezia_for_awg"
+ break
+ }
case PageShare.ConfigType.ShadowSocks: {
ExportController.generateShadowSocksConfig()
shareConnectionDrawer.configCaption = qsTr("Save ShadowSocks config")
@@ -110,6 +121,11 @@ PageType {
property string name: qsTr("WireGuard native format")
property var type: PageShare.ConfigType.WireGuard
}
+ QtObject {
+ id: awgConnectionFormat
+ property string name: qsTr("AmneziaWG native format")
+ property var type: PageShare.ConfigType.Awg
+ }
QtObject {
id: shadowSocksConnectionFormat
property string name: qsTr("ShadowSocks native format")
@@ -402,6 +418,8 @@ PageType {
root.connectionTypesModel.push(openVpnConnectionFormat)
} else if (index === ContainerProps.containerFromString("amnezia-wireguard")) {
root.connectionTypesModel.push(wireGuardConnectionFormat)
+ } else if (index === ContainerProps.containerFromString("amnezia-awg")) {
+ root.connectionTypesModel.push(awgConnectionFormat)
} else if (index === ContainerProps.containerFromString("amnezia-shadowsocks")) {
root.connectionTypesModel.push(openVpnConnectionFormat)
root.connectionTypesModel.push(shadowSocksConnectionFormat)
diff --git a/client/ui/qml/Pages2/PageStart.qml b/client/ui/qml/Pages2/PageStart.qml
index 38a8e0b8..dac9db93 100644
--- a/client/ui/qml/Pages2/PageStart.qml
+++ b/client/ui/qml/Pages2/PageStart.qml
@@ -44,6 +44,7 @@ PageType {
function onClosePage() {
tabBar.isServerInfoShow = tabBarStackView.currentItem.objectName !== PageController.getPagePath(PageEnum.PageSettingsServerInfo)
+ && tabBarStackView.currentItem.objectName !== PageController.getPagePath(PageEnum.PageSettingsSplitTunneling)
if (tabBarStackView.depth <= 1) {
return
@@ -60,7 +61,7 @@ PageType {
tabBarStackView.push(pagePath, { "objectName" : pagePath }, StackView.Immediate)
}
- tabBar.isServerInfoShow = page === PageEnum.PageSettingsServerInfo || tabBar.isServerInfoShow
+ tabBar.isServerInfoShow = page === PageEnum.PageSettingsServerInfo || PageEnum.PageSettingsSplitTunneling || tabBar.isServerInfoShow
}
function onGoToStartPage() {
diff --git a/deploy/build_ios.sh b/deploy/build_ios.sh
index 7f16b916..5dc11ff1 100755
--- a/deploy/build_ios.sh
+++ b/deploy/build_ios.sh
@@ -20,7 +20,7 @@ PLIST_NAME=$APP_NAME.plist
# Search Qt
if [ -z "${QT_VERSION+x}" ]; then
- QT_VERSION=6.5.2;
+ QT_VERSION=6.6.2;
QT_BIN_DIR=$HOME/Qt/$QT_VERSION/ios/bin
fi
diff --git a/deploy/build_linux.sh b/deploy/build_linux.sh
index c90e781a..57217a1e 100755
--- a/deploy/build_linux.sh
+++ b/deploy/build_linux.sh
@@ -36,7 +36,7 @@ QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash
# Search Qt
if [ -z "${QT_VERSION+x}" ]; then
- QT_VERSION=5.15.2
+ QT_VERSION=6.6.2
if [ -f /opt/Qt/$QT_VERSION/gcc_64/bin/qmake ]; then
QT_BIN_DIR=/opt/Qt/$QT_VERSION/gcc_64/bin
elif [ -f $HOME/Qt/$QT_VERSION/gcc_64/bin/qmake ]; then
diff --git a/deploy/build_macos.sh b/deploy/build_macos.sh
index 0d64a9ec..5f6e9786 100755
--- a/deploy/build_macos.sh
+++ b/deploy/build_macos.sh
@@ -37,7 +37,7 @@ DMG_FILENAME=$PROJECT_DIR/${APP_NAME}.dmg
# Search Qt
if [ -z "${QT_VERSION+x}" ]; then
-QT_VERSION=6.5.1;
+QT_VERSION=6.4.3;
QIF_VERSION=4.6
QT_BIN_DIR=$HOME/Qt/$QT_VERSION/macos/bin
QIF_BIN_DIR=$QT_BIN_DIR/../../../Tools/QtInstallerFramework/$QIF_VERSION/bin
@@ -146,7 +146,8 @@ if [ "${MAC_CERT_PW+x}" ]; then
fi
echo "Building DMG installer..."
-hdiutil create -size 120mb -volname AmneziaVPN -srcfolder $BUILD_DIR/installer/$APP_NAME.app -ov -format UDZO $DMG_FILENAME
+# Allow Terminal to make changes in Privacy & Security > App Management
+hdiutil create -size 256mb -volname AmneziaVPN -srcfolder $BUILD_DIR/installer/$APP_NAME.app -ov -format UDZO $DMG_FILENAME
if [ "${MAC_CERT_PW+x}" ]; then
echo "Signing DMG installer..."