From a36c2fde468fd070510f9f01cc7c7f329a470d93 Mon Sep 17 00:00:00 2001 From: bim Date: Thu, 23 Sep 2021 13:22:46 -0400 Subject: [PATCH] Removes V2 Onion Services From Orbot - Removes V2 Hosted Services and Client Cookies - Removes Assocaited Code in OrbotService - OrbotApp will delete local v2 databases - Removes XML Resources - Refactored V2 code that V3 used to appropriate V3 Backages --- app-mini/src/main/res/values-ar/strings.xml | 13 +- app-mini/src/main/res/values-ay/strings.xml | 13 +- app-mini/src/main/res/values-az/strings.xml | 3 +- app-mini/src/main/res/values-be/strings.xml | 13 +- app-mini/src/main/res/values-bg/strings.xml | 6 +- app-mini/src/main/res/values-ca/strings.xml | 13 +- .../src/main/res/values-cs-rCZ/strings.xml | 3 +- app-mini/src/main/res/values-cs/strings.xml | 3 +- app-mini/src/main/res/values-cy/strings.xml | 3 +- app-mini/src/main/res/values-da/strings.xml | 6 +- app-mini/src/main/res/values-de/strings.xml | 13 +- app-mini/src/main/res/values-el/strings.xml | 13 +- app-mini/src/main/res/values-eo/strings.xml | 3 +- app-mini/src/main/res/values-es/strings.xml | 13 +- app-mini/src/main/res/values-et/strings.xml | 3 +- app-mini/src/main/res/values-eu/strings.xml | 13 +- app-mini/src/main/res/values-fa/strings.xml | 13 +- app-mini/src/main/res/values-fi/strings.xml | 6 +- .../src/main/res/values-fr-rFR/strings.xml | 3 +- app-mini/src/main/res/values-fr/strings.xml | 13 +- app-mini/src/main/res/values-gl/strings.xml | 13 +- app-mini/src/main/res/values-hi/strings.xml | 13 +- app-mini/src/main/res/values-hr/strings.xml | 3 +- app-mini/src/main/res/values-hu/strings.xml | 13 +- app-mini/src/main/res/values-in/strings.xml | 3 +- app-mini/src/main/res/values-is/strings.xml | 13 +- app-mini/src/main/res/values-it/strings.xml | 13 +- app-mini/src/main/res/values-iw/strings.xml | 3 +- app-mini/src/main/res/values-ja/strings.xml | 13 +- app-mini/src/main/res/values-ko/strings.xml | 3 +- app-mini/src/main/res/values-lv/strings.xml | 6 +- app-mini/src/main/res/values-mk/strings.xml | 13 +- .../src/main/res/values-ms-rMY/strings.xml | 6 +- app-mini/src/main/res/values-ms/strings.xml | 3 +- app-mini/src/main/res/values-my/strings.xml | 3 +- app-mini/src/main/res/values-nb/strings.xml | 13 +- app-mini/src/main/res/values-nl/strings.xml | 13 +- app-mini/src/main/res/values-pl/strings.xml | 6 +- .../src/main/res/values-pt-rBR/strings.xml | 8 +- app-mini/src/main/res/values-pt/strings.xml | 6 +- app-mini/src/main/res/values-ro/strings.xml | 6 +- app-mini/src/main/res/values-ru/strings.xml | 13 +- .../src/main/res/values-si-rLK/strings.xml | 6 +- app-mini/src/main/res/values-sk/strings.xml | 3 +- app-mini/src/main/res/values-sr/strings.xml | 13 +- app-mini/src/main/res/values-sv/strings.xml | 13 +- app-mini/src/main/res/values-ta/strings.xml | 6 +- app-mini/src/main/res/values-th/strings.xml | 13 +- app-mini/src/main/res/values-tl/strings.xml | 3 +- app-mini/src/main/res/values-tr/strings.xml | 13 +- app-mini/src/main/res/values-uk/strings.xml | 13 +- app-mini/src/main/res/values-vi/strings.xml | 3 +- .../src/main/res/values-zh-rCN/strings.xml | 3 +- .../src/main/res/values-zh-rTW/strings.xml | 13 +- app-mini/src/main/res/values/strings.xml | 11 - app-tv/src/main/res/values-ar/strings.xml | 13 +- app-tv/src/main/res/values-ay/strings.xml | 13 +- app-tv/src/main/res/values-az/strings.xml | 3 +- app-tv/src/main/res/values-be/strings.xml | 13 +- app-tv/src/main/res/values-bg/strings.xml | 6 +- app-tv/src/main/res/values-ca/strings.xml | 13 +- app-tv/src/main/res/values-cs-rCZ/strings.xml | 3 +- app-tv/src/main/res/values-cs/strings.xml | 3 +- app-tv/src/main/res/values-cy/strings.xml | 3 +- app-tv/src/main/res/values-da/strings.xml | 6 +- app-tv/src/main/res/values-de/strings.xml | 13 +- app-tv/src/main/res/values-el/strings.xml | 13 +- app-tv/src/main/res/values-eo/strings.xml | 3 +- app-tv/src/main/res/values-es/strings.xml | 13 +- app-tv/src/main/res/values-et/strings.xml | 3 +- app-tv/src/main/res/values-eu/strings.xml | 13 +- app-tv/src/main/res/values-fa/strings.xml | 13 +- app-tv/src/main/res/values-fi/strings.xml | 6 +- app-tv/src/main/res/values-fr-rFR/strings.xml | 3 +- app-tv/src/main/res/values-fr/strings.xml | 13 +- app-tv/src/main/res/values-gl/strings.xml | 13 +- app-tv/src/main/res/values-hi/strings.xml | 13 +- app-tv/src/main/res/values-hr/strings.xml | 3 +- app-tv/src/main/res/values-hu/strings.xml | 13 +- app-tv/src/main/res/values-in/strings.xml | 3 +- app-tv/src/main/res/values-is/strings.xml | 13 +- app-tv/src/main/res/values-it/strings.xml | 13 +- app-tv/src/main/res/values-iw/strings.xml | 3 +- app-tv/src/main/res/values-ja/strings.xml | 13 +- app-tv/src/main/res/values-ko/strings.xml | 3 +- app-tv/src/main/res/values-lv/strings.xml | 6 +- app-tv/src/main/res/values-mk/strings.xml | 13 +- app-tv/src/main/res/values-ms-rMY/strings.xml | 6 +- app-tv/src/main/res/values-ms/strings.xml | 3 +- app-tv/src/main/res/values-my/strings.xml | 3 +- app-tv/src/main/res/values-nb/strings.xml | 13 +- app-tv/src/main/res/values-nl/strings.xml | 13 +- app-tv/src/main/res/values-pl/strings.xml | 6 +- app-tv/src/main/res/values-pt-rBR/strings.xml | 8 +- app-tv/src/main/res/values-pt/strings.xml | 6 +- app-tv/src/main/res/values-ro/strings.xml | 6 +- app-tv/src/main/res/values-ru/strings.xml | 13 +- app-tv/src/main/res/values-si-rLK/strings.xml | 6 +- app-tv/src/main/res/values-sk/strings.xml | 3 +- app-tv/src/main/res/values-sr/strings.xml | 13 +- app-tv/src/main/res/values-sv/strings.xml | 13 +- app-tv/src/main/res/values-ta/strings.xml | 6 +- app-tv/src/main/res/values-th/strings.xml | 13 +- app-tv/src/main/res/values-tl/strings.xml | 3 +- app-tv/src/main/res/values-tr/strings.xml | 13 +- app-tv/src/main/res/values-uk/strings.xml | 13 +- app-tv/src/main/res/values-vi/strings.xml | 3 +- app-tv/src/main/res/values-zh-rCN/strings.xml | 3 +- app-tv/src/main/res/values-zh-rTW/strings.xml | 13 +- app-tv/src/main/res/values/strings.xml | 11 - app/src/main/AndroidManifest.xml | 28 -- .../java/org/torproject/android/OrbotApp.java | 3 + .../torproject/android/OrbotMainActivity.java | 179 +------- .../hiddenservices/ClientCookiesActivity.java | 175 -------- .../HiddenServicesActivity.java | 194 --------- .../adapters/ClientCookiesAdapter.java | 52 --- .../adapters/OnionListAdapter.java | 59 --- .../ui/hiddenservices/backup/BackupUtils.java | 388 ------------------ .../hiddenservices/database/HSDatabase.java | 50 --- .../dialogs/AddCookieDialog.java | 95 ----- .../dialogs/CookieActionsDialog.java | 119 ------ .../dialogs/CookieDeleteDialog.java | 37 -- .../dialogs/HSActionsDialog.java | 117 ------ .../dialogs/HSCookieDialog.java | 57 --- .../hiddenservices/dialogs/HSDataDialog.java | 106 ----- .../dialogs/HSDeleteDialog.java | 46 --- .../providers/CookieContentProvider.java | 133 ------ .../providers/HSContentProvider.java | 143 ------- .../ui/onboarding/OnboardingActivity.java | 2 +- .../OnionServiceActionsDialogFragment.java | 5 +- .../v3onionservice/OnionServiceActivity.java | 7 +- .../PermissionManager.java | 2 +- .../ui/v3onionservice/V3BackupUtils.java | 188 +++++++++ .../ZipUtilities.java | 3 +- .../clientauth/ClientAuthActivity.java | 6 +- .../ClientAuthBackupDialogFragment.java | 6 +- .../layout/layout_activity_client_cookies.xml | 36 -- .../layout_add_client_cookie_dialog.xml | 33 -- .../layout/layout_content_client_cookies.xml | 20 - app/src/main/res/menu/cookie_menu.xml | 10 - app/src/main/res/menu/orbot_main.xml | 15 - app/src/main/res/values-ar/strings.xml | 11 - app/src/main/res/values-ay/strings.xml | 13 +- app/src/main/res/values-az/strings.xml | 3 +- app/src/main/res/values-be/strings.xml | 13 +- app/src/main/res/values-bg/strings.xml | 6 +- app/src/main/res/values-ca/strings.xml | 11 - app/src/main/res/values-cs-rCZ/strings.xml | 1 - app/src/main/res/values-cs/strings.xml | 3 +- app/src/main/res/values-cy/strings.xml | 3 +- app/src/main/res/values-da/strings.xml | 6 +- app/src/main/res/values-de/strings.xml | 12 - app/src/main/res/values-el/strings.xml | 11 - app/src/main/res/values-eo/strings.xml | 3 +- app/src/main/res/values-es/strings.xml | 11 - app/src/main/res/values-et/strings.xml | 3 +- app/src/main/res/values-eu/strings.xml | 11 - app/src/main/res/values-fa/strings.xml | 11 - app/src/main/res/values-fi/strings.xml | 5 - app/src/main/res/values-fr-rFR/strings.xml | 12 - app/src/main/res/values-fr/strings.xml | 13 +- app/src/main/res/values-gl/strings.xml | 11 - app/src/main/res/values-hi/strings.xml | 11 - app/src/main/res/values-hr/strings.xml | 3 +- app/src/main/res/values-hu/strings.xml | 11 - app/src/main/res/values-in/strings.xml | 2 - app/src/main/res/values-is/strings.xml | 12 - app/src/main/res/values-it/strings.xml | 11 - app/src/main/res/values-iw/strings.xml | 1 - app/src/main/res/values-ja/strings.xml | 11 - app/src/main/res/values-ko/strings.xml | 3 +- app/src/main/res/values-lt-rLT/strings.xml | 12 - app/src/main/res/values-lv/strings.xml | 6 +- app/src/main/res/values-mk/strings.xml | 11 - app/src/main/res/values-ms-rMY/strings.xml | 2 - app/src/main/res/values-ms/strings.xml | 3 +- app/src/main/res/values-my/strings.xml | 3 +- app/src/main/res/values-nb/strings.xml | 11 - app/src/main/res/values-nl/strings.xml | 11 - app/src/main/res/values-pl/strings.xml | 11 - app/src/main/res/values-pt-rBR/strings.xml | 12 - app/src/main/res/values-pt-rPT/strings.xml | 12 - app/src/main/res/values-pt/strings.xml | 12 - app/src/main/res/values-ro-rRO/strings.xml | 12 - app/src/main/res/values-ro/strings.xml | 6 +- app/src/main/res/values-ru/strings.xml | 12 - app/src/main/res/values-si-rLK/strings.xml | 2 - app/src/main/res/values-sk/strings.xml | 3 +- app/src/main/res/values-sr/strings.xml | 13 +- app/src/main/res/values-sv/strings.xml | 11 - app/src/main/res/values-ta/strings.xml | 6 +- app/src/main/res/values-th/strings.xml | 11 - app/src/main/res/values-tl/strings.xml | 3 +- app/src/main/res/values-tr/strings.xml | 12 - app/src/main/res/values-uk/strings.xml | 12 - app/src/main/res/values-vi/strings.xml | 12 - app/src/main/res/values-zh-rCN/strings.xml | 12 - app/src/main/res/values-zh-rTW/strings.xml | 13 +- app/src/main/res/values/strings.xml | 12 - .../android/service/OrbotService.java | 158 +------ .../src/main/res/values-ar/strings.xml | 3 +- .../src/main/res/values-az/strings.xml | 3 +- .../src/main/res/values-bg/strings.xml | 3 +- .../src/main/res/values-ca/strings.xml | 3 +- .../src/main/res/values-cs-rCZ/strings.xml | 3 +- .../src/main/res/values-da/strings.xml | 3 +- .../src/main/res/values-de/strings.xml | 3 +- .../src/main/res/values-el/strings.xml | 3 +- .../src/main/res/values-eo/strings.xml | 3 +- .../src/main/res/values-es/strings.xml | 3 +- .../src/main/res/values-et/strings.xml | 3 +- .../src/main/res/values-eu/strings.xml | 3 +- .../src/main/res/values-fa/strings.xml | 3 +- .../src/main/res/values-fi/strings.xml | 3 +- .../src/main/res/values-fr-rFR/strings.xml | 3 +- .../src/main/res/values-gl/strings.xml | 3 +- .../src/main/res/values-hr/strings.xml | 3 +- .../src/main/res/values-hu/strings.xml | 3 +- .../src/main/res/values-in/strings.xml | 3 +- .../src/main/res/values-is/strings.xml | 3 +- .../src/main/res/values-it/strings.xml | 3 +- .../src/main/res/values-iw/strings.xml | 3 +- .../src/main/res/values-ja/strings.xml | 3 +- .../src/main/res/values-ko/strings.xml | 3 +- .../src/main/res/values-lv/strings.xml | 3 +- .../src/main/res/values-mk/strings.xml | 3 +- .../src/main/res/values-ms-rMY/strings.xml | 3 +- .../src/main/res/values-ms/strings.xml | 3 +- .../src/main/res/values-nb/strings.xml | 3 +- .../src/main/res/values-nl/strings.xml | 3 +- .../src/main/res/values-pl/strings.xml | 3 +- .../src/main/res/values-pt-rBR/strings.xml | 3 +- .../src/main/res/values-pt/strings.xml | 3 +- .../src/main/res/values-ro/strings.xml | 3 +- .../src/main/res/values-ru/strings.xml | 3 +- .../src/main/res/values-si-rLK/strings.xml | 3 +- .../src/main/res/values-sr/strings.xml | 3 +- .../src/main/res/values-sv/strings.xml | 3 +- .../src/main/res/values-th/strings.xml | 3 +- .../src/main/res/values-tl/strings.xml | 3 +- .../src/main/res/values-tr/strings.xml | 3 +- .../src/main/res/values-uk/strings.xml | 3 +- .../src/main/res/values-vi/strings.xml | 3 +- .../src/main/res/values-zh-rCN/strings.xml | 3 +- orbotservice/src/main/res/values/strings.xml | 1 - 245 files changed, 408 insertions(+), 3629 deletions(-) delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/ClientCookiesActivity.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/HiddenServicesActivity.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/adapters/ClientCookiesAdapter.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/adapters/OnionListAdapter.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/backup/BackupUtils.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/database/HSDatabase.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/AddCookieDialog.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/CookieActionsDialog.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/CookieDeleteDialog.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSActionsDialog.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSCookieDialog.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSDataDialog.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSDeleteDialog.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/providers/CookieContentProvider.java delete mode 100644 app/src/main/java/org/torproject/android/ui/hiddenservices/providers/HSContentProvider.java rename app/src/main/java/org/torproject/android/ui/{hiddenservices/permissions => v3onionservice}/PermissionManager.java (97%) create mode 100644 app/src/main/java/org/torproject/android/ui/v3onionservice/V3BackupUtils.java rename app/src/main/java/org/torproject/android/ui/{hiddenservices/backup => v3onionservice}/ZipUtilities.java (98%) delete mode 100644 app/src/main/res/layout/layout_activity_client_cookies.xml delete mode 100644 app/src/main/res/layout/layout_add_client_cookie_dialog.xml delete mode 100644 app/src/main/res/layout/layout_content_client_cookies.xml delete mode 100644 app/src/main/res/menu/cookie_menu.xml diff --git a/app-mini/src/main/res/values-ar/strings.xml b/app-mini/src/main/res/values-ar/strings.xml index 9f65f0ac3..5f78ed257 100644 --- a/app-mini/src/main/res/values-ar/strings.xml +++ b/app-mini/src/main/res/values-ar/strings.xml @@ -92,8 +92,7 @@ OpenSSL v1.0.2j: http://www.openssl.org عُثر علي عملية تور سابقة تعمل... حصل خطأ ما. افحص السجل - غير قادر على قراءة اسم الخدمة المخفية - غير قادر على بدء تور: + غير قادر على بدء تور: دائما ضع الأيقونة في شريط الأدوات عندما يكون اوربوت متصلاً تنبيهات دائمة قم بأظهار التنبيه بشكل موسع بأستخدام تور. أخرج من البلد ورقم الآي بي رقم العنوان على الشبكة @@ -125,7 +124,6 @@ أرسل بريد الكتروني شامل (تلقائي) خدمات خفية - خدمات خفية خدمات خفية حفظ المنفذ المحلي @@ -133,7 +131,6 @@ الاسم تم ! نسخ العنوان إلى الحافظة - عرض كعكة المصادقة النسخ الإحتياطي للخدمة حذف الخدمة تمت عملية حفظ النسخة الإحتياطية في ذاكرة التخزين الخارجية @@ -144,16 +141,8 @@ قم بالنقر ثانية للقيام بالنسخ الإحتياطي نوع الخدمة كعكة المصادقة - نسخ الكعكة إلى الحافظة - لم يتم إعداد كعكة المصادقة الرجاء إعادة تشغيل أوربوت لتفعيل التعديلات - كعكات العميل .onion - القراءة مِن رمز الكيو آر - النسخ الإحتياطي للكعكة - حذف الكعكة - تأكيد إزالة الكعكة - الخدمات المستضافة شارك كرمز كيو آر إلغاء تمكين diff --git a/app-mini/src/main/res/values-ay/strings.xml b/app-mini/src/main/res/values-ay/strings.xml index e4ab9f4c0..ecfb9328e 100644 --- a/app-mini/src/main/res/values-ay/strings.xml +++ b/app-mini/src/main/res/values-ay/strings.xml @@ -95,8 +95,7 @@ Imantat apayañ thakhinak Tor llikar mä wakichäwiw jist\'arañ muni %1$d. Wakichawitix uñt\'atachixa, iyaw sama. Utjir Toraw jikxatata... Mä jan walt\'äwiw utji. Qillqantayasit uñakipam - Janiw imantat yanapirin sutiman ullarañjamakänti - Janiw Torax aqtayañjamäkiti: + Janiw Torax aqtayañjamäkiti: Orbot aqtatäki ukjax chimpup uñstayañapuni Yatiyäwinakax purinipuniniwa Kawkja markans IP ukamp Toramp uñstani uka yatiyäw juk\'amp uñacht\'ayaña @@ -129,7 +128,6 @@ Qillqat apayaña Uraqpacha (justupaki) Imantat lurañanaka - Imantat lurañanaka Imantat lurañanaka Imaña Akankïr apayañ thakhi @@ -137,7 +135,6 @@ Suti ¡Tukuyata! Utjirinak waruqañawjar imam - Uñt\'ayktam uka cookie uñstayam Yanapirit imat luratanakam waruqam Lurañanak pichsuña Imat luratanakamax yaqha yänakar imataxiwa @@ -148,16 +145,8 @@ Imat luratanak utjañapatak mayamp limt\'am Kunayman lurañanaka Chiqat k\'arich uk katjir cookie - Cookie waruqañawjar imam - Chiqat k\'arich uk katjir cookiex janiw mayjt\'ayatäkiti Mayjt\'ayatanak aqtayañatak Orbot mayamp qhant\'ayam, amp suma - Apnaqirin Cookiepa .onion - QR ukamp ullaraña - Cookien imat luratanakapa - Cookie pichsum - Cookie pichsut mayamp uñxatam - Qurpachat lurañanaka QRjam ch\'iqiyaña Jiwt\'ayaña Aqtayaña diff --git a/app-mini/src/main/res/values-az/strings.xml b/app-mini/src/main/res/values-az/strings.xml index 4fcd73c34..76b784b60 100644 --- a/app-mini/src/main/res/values-az/strings.xml +++ b/app-mini/src/main/res/values-az/strings.xml @@ -92,8 +92,7 @@ Tor: https://www.torproject.org LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ mövcud Tor prosesi tapıldı... Nə isə pis bir şey oldu. Girişi yoxla - gizli xidmət adını oxumağı deaktivləşdir - Tor-un başlanmasını dayandır: + Tor-un başlanmasını dayandır: Həmişə Orbot qoşulduğu hallarda nişanı alətlət panelində saxla Həmişə Açıq Xəbərdarlıqlar Torla birlikdə ətraflı bildirişi göstərib ölkə və IP-dən çıxın. diff --git a/app-mini/src/main/res/values-be/strings.xml b/app-mini/src/main/res/values-be/strings.xml index d49d5fbb5..cda22e5a2 100644 --- a/app-mini/src/main/res/values-be/strings.xml +++ b/app-mini/src/main/res/values-be/strings.xml @@ -95,8 +95,7 @@ Дадатак хоча адкрыць схаваны порт сервера %1$d сеткі Tor. Гэта бяспечна, калі вы давяраеце дадзенаму дадатку. знойдзены існавалы працэс Tor... Адбылася нейкая памылка. Праверце журнал. - немагчыма прачытаць імя схаванай службы - Немагчыма запусціць Tor: + Немагчыма запусціць Tor: Заўсёды адлюстроўваць іконку у панэлі заданняў калі Orbot падключаны Нязменнае апавяшчэнне пра працу Паказаць пашыранае апавяшчэнне Tor з краінай выхаду і IP @@ -129,7 +128,6 @@ Адправіць ліст Свет (аўта) Схаваныя службы - Схаваныя службы Схаваныя службы Захаваць Лакальны порт @@ -137,7 +135,6 @@ Імя Гатова! Скапіяваць адрас у буфер памену - Паказаць аўтарызуючыя cookie Рэзерваваць службу Выдаліць службу Рэзервовая копія захавана на вонкавым сховішчы @@ -148,16 +145,8 @@ Націсніце яшчэ раз для рэзервавання Тып службы Аўтарызучыя cookie - Капіяваць cookie у буфер памену - Аўтарызучыя cookie не наладжаны Калі ласка, перазапусціце Orbot для ўступу змены ў сілу - Cookies кліента .onion - Прачытаць з QR-кода - Рэзерваваць cookie - Выдаліць cookies - Пацвердзіце выдаленне cookie - Размешчаныя службы Падзяліцца праз QR-код Адключыць Уключыць diff --git a/app-mini/src/main/res/values-bg/strings.xml b/app-mini/src/main/res/values-bg/strings.xml index 9452b2ab4..667ec5424 100644 --- a/app-mini/src/main/res/values-bg/strings.xml +++ b/app-mini/src/main/res/values-bg/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ намерил си съвместим Tor проект... Нещо лошо се случи. Проверете лога - не може да прочете име на скрита услуга - Не може да стартира Тор: + Не може да стартира Тор: Винаги показвай икона в тулбара когато Орбот е свързан Уведомления винаги включени Покажи разширена информация за Tor изходната държава и IP в лентата за известия @@ -122,8 +121,7 @@ Активирай Изпрати имейл Скрити услуги - Скрити услуги - Скрити услуги + Скрити услуги Запази Име Моля, рестартирай Orbot, за да влязат в действие промените diff --git a/app-mini/src/main/res/values-ca/strings.xml b/app-mini/src/main/res/values-ca/strings.xml index b7de95f99..ba0c0bd4c 100644 --- a/app-mini/src/main/res/values-ca/strings.xml +++ b/app-mini/src/main/res/values-ca/strings.xml @@ -96,8 +96,7 @@ Una aplicació vol obrir el port de servidor ocults%1$d a la xarxa Tor. Això és segur si confieu en l\'aplicació s\'ha trobat un procés Tor existent... Ha fallat alguna cosa. Comproveu el registre - ha estat impossible llegir el nom del servei ocult - Ha estat impossible iniciar Tor: + Ha estat impossible iniciar Tor: Manté la icona sempre a la barra d\'eines mentre l\'Orbot està connectat Notificacions sempre activades Mostra la informació de sortida addicional del Tor amb el país i la IP @@ -130,7 +129,6 @@ Envia correu-e Global (auto) Serveis ocults - Serveis ocults Serveis ocults Desa Port local @@ -138,7 +136,6 @@ Nom Fet! Copia adreça al portapapers - Mostrar galetes d\'autentificació Servei de còpia de seguretat Esborrar servei Còpia de seguretat desada a emmagatzematge extern @@ -149,16 +146,8 @@ Feu clic novament per fer còpia de seguretat Tipus de servei Auth cookie - Copieu les galetes al porta-retalls - No s\'ha configurat l\'Auth cookie Reinicieu l\'Orbot per aplicar els canvis - Client cookies .onion - Llegir de QR - Backup cookie - Elimina la galeta - Confirma la supressió de les galetes - Serveis allotjats Comparteix com a QR Deshabilitar Habilitar diff --git a/app-mini/src/main/res/values-cs-rCZ/strings.xml b/app-mini/src/main/res/values-cs-rCZ/strings.xml index 04544c89d..641a4eeda 100644 --- a/app-mini/src/main/res/values-cs-rCZ/strings.xml +++ b/app-mini/src/main/res/values-cs-rCZ/strings.xml @@ -90,8 +90,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ nalezev existující Tor proces… Stalo se něco špatného. Zkontrolujte log - nelze číst název skryté služby - Nelze spustit Tor: + Nelze spustit Tor: Vždy zobrazit ikonu ve stavovém řádku, pokud je Orbot připojen. Notifikace vždy zapnuté Zobrazit rozšířené oznánemí s Tor výstupní zemí a IP diff --git a/app-mini/src/main/res/values-cs/strings.xml b/app-mini/src/main/res/values-cs/strings.xml index 17b7fb4fe..373d8467b 100644 --- a/app-mini/src/main/res/values-cs/strings.xml +++ b/app-mini/src/main/res/values-cs/strings.xml @@ -35,8 +35,7 @@ Email Aktivovat Skryté Služby - Skryté Služby - Skryté Služby + Skryté Služby Uložit Jméno Hotovo! diff --git a/app-mini/src/main/res/values-cy/strings.xml b/app-mini/src/main/res/values-cy/strings.xml index a1c168d62..e91f2549e 100644 --- a/app-mini/src/main/res/values-cy/strings.xml +++ b/app-mini/src/main/res/values-cy/strings.xml @@ -36,8 +36,7 @@ Iaith Ysgogi Gwasanaethau Cudd - Gwasanaethau Cudd - Gwasanaethau Cudd + Gwasanaethau Cudd Cadw Enw diff --git a/app-mini/src/main/res/values-da/strings.xml b/app-mini/src/main/res/values-da/strings.xml index cd08b493c..43d49f7cc 100644 --- a/app-mini/src/main/res/values-da/strings.xml +++ b/app-mini/src/main/res/values-da/strings.xml @@ -88,8 +88,7 @@ Tor: https://www.torproject.org fandt eksisterende Tor process... Noget slemt er sket. Check loggen - ikke i stand til at læse navnet på den skjulte service - Kunne ikke starte Tor: + Kunne ikke starte Tor: Vis altid ikonet i statuslinien når Orbot er forbundet til netværket Vis altid notifikationer Sprog @@ -98,8 +97,7 @@ Mail Aktiver Skjulte tjenester - Skjulte tjenester - Skjulte tjenester + Skjulte tjenester Gem Navn Deaktivere diff --git a/app-mini/src/main/res/values-de/strings.xml b/app-mini/src/main/res/values-de/strings.xml index 0e7867c1c..c8fde9477 100644 --- a/app-mini/src/main/res/values-de/strings.xml +++ b/app-mini/src/main/res/values-de/strings.xml @@ -96,8 +96,7 @@ Eine Anwendung möchte den Versteckten Server-Anschluss %1$d zum Tor-Netz öffnen. Dies ist sicher, wenn Sie der Anwendung vertrauen. bestehenden Tor-Prozess gefunden … Etwas ist schief gelaufen. Bitte Protokoll überprüfen - Name des versteckten Dienstes kann nicht gelesen werden - Tor kann nicht gestartet werden: + Tor kann nicht gestartet werden: Behalte immer das Symbol in der Symbolleiste, wenn Orbot verbunden ist Aktivitätsanzeige Zeige erweiterte Benachrichtigung mit Tor-Ausgangsland und IP an @@ -130,7 +129,6 @@ E-Mail senden Global (Automatisch) Versteckte Dienste - Versteckte Dienste Versteckte Dienste Speichern Lokaler Anschluss @@ -138,7 +136,6 @@ Name Fertig! Adresse in die Zwischenablage kopieren - Authentifikationscookie anzeigen Sicherungsdienst Dienst löschen Sicherung auf externem Speicher gespeichert @@ -149,16 +146,8 @@ Zum Sichern noch einmal klicken Dienst-Typ Authentifikationscookie - Cookie in die Zwischenablage kopieren - Es wurde kein Authentifikationscookie festgelegt Bitte Orbot zum Aktivieren der Änderungen neustarten - Client Cookies .onion - Lese QR-Code - Cookie sichern - Cookie löschen - Cookie-Löschung bestätigen - Gehostete Dienste Teile als QR-Code Deaktivieren Aktivieren diff --git a/app-mini/src/main/res/values-el/strings.xml b/app-mini/src/main/res/values-el/strings.xml index d15f1026d..9d9bfc925 100644 --- a/app-mini/src/main/res/values-el/strings.xml +++ b/app-mini/src/main/res/values-el/strings.xml @@ -96,8 +96,7 @@ Κάποια εφαρμογή προσπαθεί να ανοίξει την κρυφή θύρα διακομιστή %1$dστο δίκτυο Tor. Πρόκειται για ασφαλή ενέργεια, εφόσον γνωρίζετε την εφαρμογή. αναζήτηση διεργασιών Tor... Κάτι κακό συνέβη. Ελέγξτε τις καταγραφές - αδυναμία ανάγνωσης του ονόματος της κρυφής υπηρεσίας - Αδυναμία εκκίνησης του Tor: + Αδυναμία εκκίνησης του Tor: Να διατηρείται πάντοτε το εικονίδιο στην γραμμή εργαλείων όταν το Orbot συνδέεται Ειδοποιήσεις διαρκούς σύνδεσης Εμφάνιση εκτεταμένης ειδοποίησης με τη χώρα εξόδου του Tor και τη διεύθυνση IP @@ -130,7 +129,6 @@ Στείλτε Email Παγκόσμια (Auto) Αποκρυφες υπηρεσιες - Αποκρυφες υπηρεσιες Αποκρυφες υπηρεσιες Αποθήκευση Τοπική θύρα @@ -138,7 +136,6 @@ Όνομα Έγινε! Αντιγραφή διέυθυνσης στο πρόχειρο - Εμφάνιση αναγνωριστικού cookie Υπηρεσία δημιουργίας αντιγράφου ασφαλείας Διαγραφή υπηρεσίας Το αντίγράφο ασφαλείας αποθηκεύθηκε σε εξωτερικό μέσο αποθήκευσης @@ -149,16 +146,8 @@ Πατήστε ξανά για το αντίγραφο ασφαλείας Τύπος υπηρεσίας Αναγνωριστικό cookie - Αντιγραφή τού cookie στο πρόχειρο - Το αναγνωριστικό cookie δεν διαμορφώθηκε Παρακαλούμε επανεκκινήστε το Orbot για να ενεργοποιήσετε τις αλλαγές - Cookies πελατών .onion - Ανάγνωση από QR - Cookie αντίγραφου ασφαλείας - Αφαίρεση Cookie - Επιβεβαίωση διαγραφής τού cookie - Φιλοξενημένες υπηρεσίες Κοινοποίηση ως QR Απενεργοποίηση Ενεργοποίηση diff --git a/app-mini/src/main/res/values-eo/strings.xml b/app-mini/src/main/res/values-eo/strings.xml index 488fdda3b..6210d7402 100644 --- a/app-mini/src/main/res/values-eo/strings.xml +++ b/app-mini/src/main/res/values-eo/strings.xml @@ -67,8 +67,7 @@ Entajpu pordojn Retpaĝaro(j) de la Projekto: trovi ekzistantan Tor-procedon... - ne eblas legi nomon de la kaŝita servo - Ne eblas startigi Tor: + Ne eblas startigi Tor: Lingvo Aktivi Konservi diff --git a/app-mini/src/main/res/values-es/strings.xml b/app-mini/src/main/res/values-es/strings.xml index 39e208682..052142591 100644 --- a/app-mini/src/main/res/values-es/strings.xml +++ b/app-mini/src/main/res/values-es/strings.xml @@ -97,8 +97,7 @@ direcciones (o rangos). No prevalecen sobre las configuraciones de exclusión de Una aplicación quiere abrir el puerto %1$d de servidor oculto a la red Tor. Esto es seguro si confía en la aplicación. Se encontró un proceso de Tor ya existente... Hubo algún tipo de problema. Compruebe el registro (log) - No fue posible leer el nombre del servicio oculto - No fue posible iniciar Tor: + No fue posible iniciar Tor: Mantener siempre el icono de Orbot en la barra de tareas cuando esté conectado Notificaciones siempre activadas Mostrar notificación expandida con el país de salida de Tor y la IP @@ -131,7 +130,6 @@ direcciones (o rangos). No prevalecen sobre las configuraciones de exclusión de Enviar correo Global (Automático) Servicios ocultos - Servicios ocultos Servicios ocultos Guardar Puerto local @@ -139,7 +137,6 @@ direcciones (o rangos). No prevalecen sobre las configuraciones de exclusión de Nombre ¡Hecho! Copiar dirección al portapapeles - Mostrar cookie de autentificación Hacer copia de seguridad del servicio Borrar servicio Copia de seguridad guardada en un almacenamiento externo @@ -150,16 +147,8 @@ direcciones (o rangos). No prevalecen sobre las configuraciones de exclusión de Pulse de nuevo para realizar copia de seguridad Tipo de servicio Cookie de autentificación - Copiar cookie al portapapeles - La cookie de autentificación no fue configurada Por favor, reinicie Orbot para habilitar los cambios - Cookies de cliente .onion - Leer desde QR - Realizar copia de seguridad de cookie - Borrar cookie - Confirmar borrado de cookie - Servicios alojados Compartir como QR Deshabilitar Habilitar diff --git a/app-mini/src/main/res/values-et/strings.xml b/app-mini/src/main/res/values-et/strings.xml index a3c8da108..286e76e51 100644 --- a/app-mini/src/main/res/values-et/strings.xml +++ b/app-mini/src/main/res/values-et/strings.xml @@ -84,8 +84,7 @@ Kolmanda osapoole tarkvara: leidus töötav Tor protsess... Juhtus midagi halba. Kontrollige logi - ei õnnestu lugeda varjatud teenuse nime - Tor käivitamine ebaõnnestus: + Tor käivitamine ebaõnnestus: Ühendatud Orbot korral näidata katkematult ikoonide tööriistariba Pidevalt kuvatavad teated Pole võrgu auto-und diff --git a/app-mini/src/main/res/values-eu/strings.xml b/app-mini/src/main/res/values-eu/strings.xml index 8850ac3ca..40f2c73a0 100644 --- a/app-mini/src/main/res/values-eu/strings.xml +++ b/app-mini/src/main/res/values-eu/strings.xml @@ -96,8 +96,7 @@ Aplikazio batek ezkutuko zerbitzariko %1$d ataka ireki nau du Tor sarera. Segurua da aplikazioaz fidatzen bazara. aurreko Tor prozesu bat aurkitu da... Zerbait txarra gertatu da. Begiratu egunkarian - ezin izan da ezkutuko zerbitzuaren izena irakurri - Ezin izan da Tor hasi: + Ezin izan da Tor hasi: Mantendu ikonoa tresna barran Orbot konektatuta dagoenean Beti piztutako jakinarazpenak Erakutsi hedatutako jakinarazpenak Tor irteera herrialde eta IP-arekin @@ -130,7 +129,6 @@ Bidali E-maila Orokorra (Automatikoa) Ezkutuko zerbitzuak - Ezkutuko zerbitzuak Ezkutuko zerbitzuak Gorde Ataka lokala @@ -138,7 +136,6 @@ Izena Egina! Kopiatu helbidea arbelera - Erakutsi autentifikazio cookie-a Egin zerbitzuaren babeskopia Ezabatu zerbitzua Babeskopia kanpo biltegiratzean gorde da @@ -149,16 +146,8 @@ Egin klik berriro babeskopiarako Zerbitzu mota Autentifikazio cookie-a - Kopiatu cookie-a arbelera - Ez da autentifikazio cookie-a konfiguratu Mesedez berrabiarazi Orbot aldaketak aktibatzeko - Bezero-cookie-ak .onion - Irakurri QR-tik - Egin cookie-aren babeskopia - Ezabatu cookie-a - Berretsi cookie-a ezabatzea - Ostatatutako zerbitzuak Partekatu QR gisa Desgaitu Gaitu diff --git a/app-mini/src/main/res/values-fa/strings.xml b/app-mini/src/main/res/values-fa/strings.xml index cb822f0b3..1e6f1e8d4 100644 --- a/app-mini/src/main/res/values-fa/strings.xml +++ b/app-mini/src/main/res/values-fa/strings.xml @@ -96,8 +96,7 @@ اپلیکیشنی می‌خواهد پورت سرور %1$d را به شبکه تور بگشاید. در صورتی که به این برنامه اطمینان دارید، چنین کاری امن است. یک تور درحال اجرا پیدا شد... اتفاق بدی افتاد. وقایع ثبت شده را چک کنید - ناتوان در خواندن نام سرویس مخفی - ناتوان در راه اندازی تور: + ناتوان در راه اندازی تور: وقتی ربات پیازی متصل است، همیشه آیکون مربوط را در نوار ابزار نگه دار. آگاهسازی همیشه روشن نمایش اطلاع رسانی گسترده با کشور خروجی Tor و IP @@ -130,7 +129,6 @@ ایمیل بفرست جهانی (خودکار) سرویس‌های مخفی - سرویس‌های مخفی سرویس‌های مخفی ذخيره درگاه محلی @@ -138,7 +136,6 @@ نام انجام شد! رونوشت نشانی‌ها در حافظه موقت - نمایش کوکی احراز هویت سرویس بک‌آپ حذف سرویس بک‌آپ در انباره خارجی ذخیره شد @@ -149,16 +146,8 @@ برای بک‌آپ، دوباره کلیک کنید نوع سرویس کوکی Auth - کپی کردن کوکی به کلیپ بورد - کوکی احراز هویت پیکربندی نشده بود برای دیدن تغییرات، اوربات را دوباره راه اندازی کنید - کوکی‌های Client onion. - از QR بخوان - بک‌آپ از کوکی - حذف کوکی - تایید حذف کوکی - سرویس‌های میزبانی‌شده هم‌رسانی با QR غیرفعال کن فعال کن diff --git a/app-mini/src/main/res/values-fi/strings.xml b/app-mini/src/main/res/values-fi/strings.xml index 46b634ba4..76f311845 100644 --- a/app-mini/src/main/res/values-fi/strings.xml +++ b/app-mini/src/main/res/values-fi/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ löytyi olemassaoleva Tor-prosessi... Jotain pahaa tapahtui. Tarkista loki - piilopalvelunimen lukeminen epäonnistui - Torin käynnistys epäonnistui: + Torin käynnistys epäonnistui: Pidä kuvake aina työkalupalkissa, kun Orbot on yhdistetty Ilmoitukset aina käytössä Näytä laajennettu ilmoitus (Torin ulostulon maa ja IP) @@ -122,8 +121,7 @@ Ota käyttöön Lähetä sähköpostia Piilopalvelut - Piilopalvelut - Piilopalvelut + Piilopalvelut Tallenna Nimi Valmis! diff --git a/app-mini/src/main/res/values-fr-rFR/strings.xml b/app-mini/src/main/res/values-fr-rFR/strings.xml index 7fcf32b88..6f1ebb4a9 100644 --- a/app-mini/src/main/res/values-fr-rFR/strings.xml +++ b/app-mini/src/main/res/values-fr-rFR/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21 : http://www.monkey.org/~provos/libevent/ un processus existant de Tor a été trouvé... Quelque chose n’a pas été. Vérifiez le journal - impossible de lire le nom du service caché - Impossible de démarrer Tor : + Impossible de démarrer Tor : Toujours conserver l’icône dans la barre des tâches quand Orbot est connecté. Notifications toujours actives Montrer des notifications étendues avec le pays de sortie de Tor et l’IP diff --git a/app-mini/src/main/res/values-fr/strings.xml b/app-mini/src/main/res/values-fr/strings.xml index 36a5526ff..2ded4be76 100644 --- a/app-mini/src/main/res/values-fr/strings.xml +++ b/app-mini/src/main/res/values-fr/strings.xml @@ -96,8 +96,7 @@ Une appli veut ouvrir le port %1$d du serveur caché au réseau Tor. Cela est sécuritaire si vous faites confiance à l’appli. un processus existant de Tor a été trouvé... Quelque chose n’a pas été. Vérifiez le journal - impossible de lire le nom du service caché - Impossible de démarrer Tor : + Impossible de démarrer Tor : Toujours conserver l’icône dans la barre des tâches quand Orbot est connecté. Notifications toujours actives Montrer des notifications étendues avec le pays de sortie de Tor et l’IP @@ -130,7 +129,6 @@ Envoyer un courriel Mondial (Auto) Services cachés - Services cachés Services cachés Enregistrer Port local @@ -138,7 +136,6 @@ Nom Fait ! Copier l’adresse vers le presse-papiers - Afficher le témoin auth Service de sauvegarde Supprimer le service La sauvegarde a été enregistrée sur une mémoire externe @@ -149,16 +146,8 @@ Recliquer pour sauvegarder Type de service Témoin auth - Copier le témoin vers le presse-papiers - Le témoin auth n’est pas configuré Veuillez redémarrer Orbot pour activer les changements - Témoins du client .onion - Lire d’un code QR - Sauvegarder le témoin - Supprimer le témoin - Confirmer la suppression du témoin - Services hébergés Partager comme code QR Désactiver Activer diff --git a/app-mini/src/main/res/values-gl/strings.xml b/app-mini/src/main/res/values-gl/strings.xml index 9597d09c2..91dd5df13 100644 --- a/app-mini/src/main/res/values-gl/strings.xml +++ b/app-mini/src/main/res/values-gl/strings.xml @@ -96,8 +96,7 @@ Unha aplicación quere abrir o porto oculto de servidor %1$d a rede Tor. Esto é seguro se vostede confía na app. atopado proceso Tor existente... Algo malo pasou. Comprobe o rexistro - imposible ler nome de servizo oculto - Incapaz de arrancar Tor + Incapaz de arrancar Tor Mostrar sempre a icona na barra de ferramentas cando Orbot estea conectado Notificacións Sempre Acesas Mostar notificación extendida co país de saída de Tor e IP @@ -130,7 +129,6 @@ Enviar correo Global (Auto) Servizos agochados - Servizos agochados Servizos agochados Gardar Porto local @@ -138,7 +136,6 @@ Nome Feito! Copiar enderezo ao portapapeis - Mostar testemuño de autorización Servizo de respaldo Eliminar servizo Respaldo gardado en almacenamento externo @@ -149,16 +146,8 @@ Pulse de novo para respaldar Tipo de servizo Testemuño de autorización - Copie o testemuño ao portapapeis - Non estableceu un testemuño de autorización Por favor, reinicie Orbot para activar os cambios - Testemuños do cliente .onion - Ler desde QR - Testemuño de respaldo - Eliminar testemuño - Confirme a eliminación do testemuño - Servizos hospedados Compartir como QR Inhabilitar Activar diff --git a/app-mini/src/main/res/values-hi/strings.xml b/app-mini/src/main/res/values-hi/strings.xml index 919048e28..6a884aea5 100644 --- a/app-mini/src/main/res/values-hi/strings.xml +++ b/app-mini/src/main/res/values-hi/strings.xml @@ -97,8 +97,7 @@ एक ऐप Tor नेटवर्क पर %1$dछिपा सर्वर पोर्ट खोलना चाहता है। यदि आप ऐप पर विश्वास करते हैं, तो यह सुरक्षित है मौजूदा तोर प्रक्रिया पाया ... कुछ बुरा हो गया। लॉग की जांच करें - छिपी हुई सेवा का नाम पढ़ने में असमर्थ - टो शुरू करने में असमर्थ: + टो शुरू करने में असमर्थ: ऑरबोट कनेक्ट होने पर टूलबार में हमेशा आइकन रखें हमेशा की सूचनाएं तोर एग्जिट देश और आईपी के साथ विस्तारित सूचना दिखाएं @@ -131,7 +130,6 @@ ईमेल भेजें ग्लोबल (ऑटो) हिडन सेवाएं - हिडन सेवाएं हिडन सेवाएं बचाना स्थानीय पोर्ट @@ -139,7 +137,6 @@ नाम किया हुआ! क्लिपबोर्ड को पता कॉपी करें - Auth कुकी दिखाएं बैकअप सेवा सेवा हटाएँ बाह्य संग्रहण में बैकअप सहेजा गया @@ -150,16 +147,8 @@ बैकअप के लिए फिर से क्लिक करें सेवा प्रकार Auth कुकी - क्लिपबोर्ड पर कुकी कॉपी करें - Auth कुकी कॉन्फ़िगर नहीं की गई थी परिवर्तन सक्षम करने के लिए Orbot पुनः प्रारंभ करें - क्लाइंट कुकीज़ .अनियन - QR से पढ़ें - बैकअप कुकी - कुकी हटाएं - कुकी हटाने की पुष्टि करें - होस्टेड सर्विसेस QR के रूप में शेयर करें अक्षम सक्षम करें diff --git a/app-mini/src/main/res/values-hr/strings.xml b/app-mini/src/main/res/values-hr/strings.xml index 62a2945c0..1d8f9fe5b 100644 --- a/app-mini/src/main/res/values-hr/strings.xml +++ b/app-mini/src/main/res/values-hr/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ pronađeni postojeći Tor procesi... Nešto loše se dogodilo. Provjerite dnevnik - nije moguće pročitati ime skrivene usluge - Nije moguće pokrenuti Tor: + Nije moguće pokrenuti Tor: Uvjek drži ikonu na alatnoj traci kad je Orbot spojen Obavijesti o stalnoj pokrenutosti Prikaži proširene obavijesti s Tor izlaznom državom i IP-em diff --git a/app-mini/src/main/res/values-hu/strings.xml b/app-mini/src/main/res/values-hu/strings.xml index 33932aa1b..6df55d32f 100644 --- a/app-mini/src/main/res/values-hu/strings.xml +++ b/app-mini/src/main/res/values-hu/strings.xml @@ -96,8 +96,7 @@ Egy app egy rejtett szerver portot %1$d nyitna a Tor hálózatra. Ez biztonságos, ha megbízik az appban. létező Tor folyamat találva... Valami rossz történt. Nézd meg a naplót. - nem olvasható a rejtett szolgáltatás neve - A Tor indítása sikertelen: + A Tor indítása sikertelen: Mindig tartsa az ikont az eszköztáron, ha az Orbot csatlakoztatva van. Mindig-bekapcsolt értesítések Mutassa a bővített értesítést a Tor kilépő országgal és IP-vel @@ -130,7 +129,6 @@ Email küldése Globális (Auto) Rejtett szolgáltatások - Rejtett szolgáltatások Rejtett szolgáltatások Mentés Helyi Port @@ -138,7 +136,6 @@ Név Kész! Cím másolása vágólapra - Azonosító süti megjelenítése Mentő szolgáltatás Szolgáltatás Törlése Külső tárhelyre mentve @@ -149,16 +146,8 @@ Kattintson még egyszer a mentéshez Szolgáltatás típus Azonosító süti - Süti másolása vágólapra - Azonosító süti nem konfigurált Kérlek indítsd újra az Orbot-ot a változások engedélyezéséhez - Kliens sütik .onion - Olvasás QR-ból - Süti mentése - Süti törlése - Süti törlés jóváhagyása - Futtatott szolgáltatások Megosztás QR-ként Kikapcsol Engedélyezés diff --git a/app-mini/src/main/res/values-in/strings.xml b/app-mini/src/main/res/values-in/strings.xml index d9906e11b..e12fa86a9 100644 --- a/app-mini/src/main/res/values-in/strings.xml +++ b/app-mini/src/main/res/values-in/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ menemukan proses Tor yang ada... Sesuatu yang buruk terjadi. Periksa log - tidak dapat membaca nama layanan tersembunyi - Tidak dapat memulai Tor: + Tidak dapat memulai Tor: Selalu pelihara icon dalam toolbar ketika Orbot terhubung Pemberitahuan Selalu-Hidup Tampilkan notifikasi melebar dengan negara dan IP keluar Tor diff --git a/app-mini/src/main/res/values-is/strings.xml b/app-mini/src/main/res/values-is/strings.xml index 0de01a5a1..542f55459 100644 --- a/app-mini/src/main/res/values-is/strings.xml +++ b/app-mini/src/main/res/values-is/strings.xml @@ -96,8 +96,7 @@ Forrit vill opna földu vefgáttina %1$d inn á Tor-netið. Þetta er öruggt ef þú treystir forritinu. fann annað Tor-ferli... Eitthvað slæmt gerðist. Athugaðu atvikakráninguna - get ekki lesið heiti földu þjónustunnar - Get ekki ræst Tor: + Get ekki ræst Tor: Alltaf hafa táknmynd í verkfærastiku þegar Orbot er tengt Alltaf-á tilkynningar Birta útflettar tilkynningar varðandi Tor-útgangsland og IP-vistfang @@ -130,7 +129,6 @@ Senda tölvupóst Víðvært (sjálfvirkt) Faldar þjónustur - Faldar þjónustur Faldar þjónustur Vista Staðvær gátt @@ -138,7 +136,6 @@ Heiti Lokið! Afrita vistfang yfir á klippispjald - Birta auðkenningar-vefköku Öryggisafritunarþjónusta Eyða þjónustu Öryggisafrit var vistað í ytri gagnageymslu @@ -149,16 +146,8 @@ Smelltu aftur fyrir öryggisafrit Tegund þjónustu Auðkenningar-vefkaka - Afrita vefköku á klippispjald - Auðkenningar-vefkaka var ekki stillt Endurræstu Orbot til að breytingarnar taki gildi - Vefkökur forritsins .onion - Lesa úr QR-kóða - Öryggisafrit af vefköku - Eyða vefköku - Staðfestu eyðingu vefköku - Hýstar þjónustur Deila sem QR-kóða Gera óvirkt Virkja diff --git a/app-mini/src/main/res/values-it/strings.xml b/app-mini/src/main/res/values-it/strings.xml index f8509416f..96f07e7cd 100644 --- a/app-mini/src/main/res/values-it/strings.xml +++ b/app-mini/src/main/res/values-it/strings.xml @@ -96,8 +96,7 @@ Un\'app vuole aprire la porta %1$d del server nascosto alla rete Tor. È un\'azione sicura se ti fidi dell\'app. trovato un processo Tor esistente... E\' accaduto un evento indesiderato. Controllare i log. - Impossibile leggere il nome del servizio nascosto. - Impossibile avviare Tor: + Impossibile avviare Tor: Mantieni sempre l\'icona nella barra degli strumenti quando Orbot è connesso. Notifiche sempre attive Visualizza notifica espansa con nazione e ip dell\'nodo d\'uscita Tor @@ -130,7 +129,6 @@ Invia email Globale (Auto) Servizi nascosti - Servizi nascosti Servizi nascosti Salva Porta locale @@ -138,7 +136,6 @@ Nome Fatto! Copia l\'indirizzo negli appunti - Mostra cookie di autenticazione Servizio di backup Elimina il servizio Backup salvato nell\'archiviazione esterna @@ -149,16 +146,8 @@ Clicca ancora per eseguire il backup Tipo di servizio Cookie autenticazione - Copia cookie negli appunti - Cookie di autenticazione non configurato Per favore riavvia Orbot per rendere effettive le modifiche - Cookie del client .onion - Leggi da QR - Backup cookie - Elimina cookie - Conferma eliminazione cookie - Servizi ospitati Condividi come QR Disabilita Abilità diff --git a/app-mini/src/main/res/values-iw/strings.xml b/app-mini/src/main/res/values-iw/strings.xml index 26b18ee73..67b62dbbd 100644 --- a/app-mini/src/main/res/values-iw/strings.xml +++ b/app-mini/src/main/res/values-iw/strings.xml @@ -81,8 +81,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ נמצא תהליך Tor קיים… משהו רע התרחש. בדוק את היומן - לא מסוגל לקרוא שם שירות נסתר - לא מסוגל להתחיל את Tor: + לא מסוגל להתחיל את Tor: לשמור תמיד את האיקון בסרגל כלים כשאורבוט מחובר שפה כבה את Tor כאשר אין חיבור לאינטרנט diff --git a/app-mini/src/main/res/values-ja/strings.xml b/app-mini/src/main/res/values-ja/strings.xml index c64409305..ec092fbc7 100644 --- a/app-mini/src/main/res/values-ja/strings.xml +++ b/app-mini/src/main/res/values-ja/strings.xml @@ -96,8 +96,7 @@ アプリが非公開サーバーポート %1$d をTorネットワークに開放しようとしています。信頼できるアプリであればこれは安全です。 Torプロセスを発見 何かが起こりました。ログを確認してください。 - hidden serviceの名前読込不能 - Torを実行できませんでした + Torを実行できませんでした Orbotが接続中はアイコンを常にツールバーに表示 通知を常に有効化 拡張通知で、Torの出口の国とIPを表示します @@ -130,7 +129,6 @@ メール送信 世界中 (自動) Hidden Services - Hidden Services Hidden Services 保存 ローカルポート @@ -138,7 +136,6 @@ 名前 完了 アドレスをクリップボードにコピー - Cookie 認証を非表示 バックアップサービス サービスを削除 バックアップは外部記憶装置に保存されました @@ -149,16 +146,8 @@ バックアップ作成に再クリック サービスタイプ Cookie 認証 - Cookie をクリップボードにコピー - Authクッキーは設定されませんでした 変更を有効にするにはOrbotを再起動してください - クライアント Cookie .onion - QRコードから読み取り - Cookie をバックアップ - Cookie を削除 - クッキー削除を確認 - ホスト型サービス QR でシェア 無効 有効 diff --git a/app-mini/src/main/res/values-ko/strings.xml b/app-mini/src/main/res/values-ko/strings.xml index bec5cc064..a80836850 100644 --- a/app-mini/src/main/res/values-ko/strings.xml +++ b/app-mini/src/main/res/values-ko/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ 존재하고 있는 Tor 프로세스 발견 어떤 나쁜 것이 발생. 로그 확인하세요. - 히든 서비스 이름을 읽을 수 없음 - Tor 시작 불가능 + Tor 시작 불가능 Orbot이 연결되었을 때 툴바에 아이콘 보이기 항상 켜진 알림 출구 및 IP 정보알림 보이기 diff --git a/app-mini/src/main/res/values-lv/strings.xml b/app-mini/src/main/res/values-lv/strings.xml index 51f936ad7..8ecc351f2 100644 --- a/app-mini/src/main/res/values-lv/strings.xml +++ b/app-mini/src/main/res/values-lv/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ Atrada esošu Tor procesu... Nav labi. Pārbaudiet žurnālu - Nespēj lasīt slēpta pakalpojuma nosaukumu - Nevar startēt Tor: + Nevar startēt Tor: Vienmēr paturēt ikonu rīkjoslā, kad Orbot ir savienots Vienmēr ieslēgtie paziņojumi Rādīt paplašinātus paziņojumus, kur norādīts IP un Tor izejas valsts @@ -122,8 +121,7 @@ Aktivizēt Nosūtīt e-pastu Slēptie pakalpojumi - Slēptie pakalpojumi - Slēptie pakalpojumi + Slēptie pakalpojumi Saglabāt Vārds Lūdzu pārstartējiet Orbot, lai iespējotu izmaiņas diff --git a/app-mini/src/main/res/values-mk/strings.xml b/app-mini/src/main/res/values-mk/strings.xml index c80156644..ecf2e8c97 100644 --- a/app-mini/src/main/res/values-mk/strings.xml +++ b/app-mini/src/main/res/values-mk/strings.xml @@ -96,8 +96,7 @@ Апликација сака да отвори сокриена серверска порта %1$d кон Tor мрежата. Ова е безбедно доколку и верувате на апликацијата. Пронајден постоечки Tor-процес ... Се случи грешка. Проверете го дневникот - не може да се прочита името на скриениот сервис - Tor не може да се стартува: + Tor не може да се стартува: Секогаш чувајте ја иконата во лентата со алатки кога Orbot е поврзан Известувања секогаш вклучени Прикажи проширено известување со излезната држава и IP на Tor @@ -130,7 +129,6 @@ Испратете е-пошта Глобално (Автоматски) Скриени сервиси - Скриени сервиси Скриени сервиси Зачувај Локална порта @@ -138,7 +136,6 @@ Име Завршено! Копирај ја адресата за залепување - Покажи автентично колаче Резервна копија Избриши услуга Резервната копија е снимена на надворешна меморија @@ -149,16 +146,8 @@ Кликни повторно за резервна копија Тип на услуга Автентично колаче - Копирај колаче за залепување - Автентичното колаче не е прилагодено Ве молиме стартувајте го повторно Orbot за да се овозможат промените - Клиентски колачиња .onion - Прочитај од QR - Направи резервна копија на колаче - Избриши колаче - Потврди бришење на колаче - Хостирани услуги Сподели како QR Оневозможи Овозможи diff --git a/app-mini/src/main/res/values-ms-rMY/strings.xml b/app-mini/src/main/res/values-ms-rMY/strings.xml index 071423e60..92e4c0c8d 100644 --- a/app-mini/src/main/res/values-ms-rMY/strings.xml +++ b/app-mini/src/main/res/values-ms-rMY/strings.xml @@ -82,14 +82,12 @@ 3rd-Party-Software: Proses Tor sedia ada ditemui.. Sesuatu yang buruk berlaku. Semak log. - tidak dapat membaca nama servis tersembunyi - Tidak dapat memulakan Tor: + Tidak dapat memulakan Tor: Sentiasa biar ikon pada toolbar apabila Orbot bersambung Sentiasa On Notifikasi Bahasa Perkhidmatan tersembunyi - Perkhidmatan tersembunyi - Perkhidmatan tersembunyi + Perkhidmatan tersembunyi Simpan Nama diff --git a/app-mini/src/main/res/values-ms/strings.xml b/app-mini/src/main/res/values-ms/strings.xml index c72da21c0..92d56d8a1 100644 --- a/app-mini/src/main/res/values-ms/strings.xml +++ b/app-mini/src/main/res/values-ms/strings.xml @@ -75,8 +75,7 @@ 3rd-Party-Software: Proses Tor sedia ada ditemui.. Sesuatu yang buruk berlaku. Semak log. - tidak dapat membaca nama servis tersembunyi - Tidak dapat memulakan Tor: + Tidak dapat memulakan Tor: Sentiasa biar ikon pada toolbar apabila Orbot bersambung Sentiasa On Notifikasi Tetapan Tempatan diff --git a/app-mini/src/main/res/values-my/strings.xml b/app-mini/src/main/res/values-my/strings.xml index f307da9fc..12e4d2b7c 100644 --- a/app-mini/src/main/res/values-my/strings.xml +++ b/app-mini/src/main/res/values-my/strings.xml @@ -23,8 +23,7 @@ အီးေမးလ္ Activate Hidden Services - Hidden Services - Hidden Services + Hidden Services သိမ္းဆည္းပါ အမည် diff --git a/app-mini/src/main/res/values-nb/strings.xml b/app-mini/src/main/res/values-nb/strings.xml index 1a281b9c9..f83f0a711 100644 --- a/app-mini/src/main/res/values-nb/strings.xml +++ b/app-mini/src/main/res/values-nb/strings.xml @@ -93,8 +93,7 @@ OpenSSL v1.0.2j: https://www.openssl.org fant eksisterende Tor-prosess… Noe alvorlig skjedde. Sjekk loggen. - klarte ikke å lese skjult tjenestenavn - Klarte ikke å starte Tor: + Klarte ikke å starte Tor: Alltid behold ikonet i verktøyslinjen når Orbot er tilkoblet Alltid-På -varslinger Vis utvidede merknader med land og IP for utgangstrafikk fra Tor @@ -125,7 +124,6 @@ VPN-modus Send e-post Hidden Services - Hidden Services Hidden Services Lagre Lokalt port @@ -141,15 +139,8 @@ Bekreft sletting av tjeneste Klikk igjen for å sikkerhetskopiere Tjenestetype - Kopier kake til utklippstavle - Gjør omstart av Orbot før endringer trer i kraft - Klientinformasjonskapsler + Gjør omstart av Orbot før endringer trer i kraft .onion - Les fra QR - Sikkerhetskopier informasjonskapsel - Slett informasjonskapsel - Bekreft sletting av informasjonskapsel - Vertstjenester Del som QR Skru av Slå på diff --git a/app-mini/src/main/res/values-nl/strings.xml b/app-mini/src/main/res/values-nl/strings.xml index ad6fa2d54..6e2eab343 100644 --- a/app-mini/src/main/res/values-nl/strings.xml +++ b/app-mini/src/main/res/values-nl/strings.xml @@ -96,8 +96,7 @@ Een app wil de verborgenserverpoort %1$d tot het Tor-netwerk openen. Dit is veilig als je de app vertrouwt. bestaand Tor-proces gevonden… Er is een fout opgetreden. Controleer de log - Kan verborgen dienst-naam niet lezen - Kan Tor niet starten: + Kan Tor niet starten: Houd icoon in taakbalk zolang Orbot verbonden is Meldingen altijd aan Toon uitgebreide melding met Tor-exitland en IP @@ -130,7 +129,6 @@ E-mail versturen Algemeen (automatisch) Verborgen diensten - Verborgen diensten Verborgen diensten Opslaan Lokale poort @@ -138,7 +136,6 @@ Naam Klaar! Adres kopiëren naar klembord - Authenticatiecookie tonen Back-updienst Dienst verwijderen Back-up opgeslagen op externe opslag @@ -149,16 +146,8 @@ Klik opnieuw voor back-up Diensttype Authenticatiecookie - Cookie kopiëren naar klembord - Authenticatiecookie is niet ingesteld Herstart Orbot om de wijzigingen in te schakelen - Cliëntcookies .onion - Lezen van QR-code - Back-up maken van cookie - Cookie verwijderen - Bevestig verwijderen van cookie - Gehoste diensten Delen als QR-code Uitschakelen Inschakelen diff --git a/app-mini/src/main/res/values-pl/strings.xml b/app-mini/src/main/res/values-pl/strings.xml index 65a9d0512..3f58662a0 100644 --- a/app-mini/src/main/res/values-pl/strings.xml +++ b/app-mini/src/main/res/values-pl/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ znaleziono istniejący proces Tora... Coś nie poszło nie tak. Sprawdź logi - uniemożliw czytanie nazw ukrytych serwisów - Nie można wystartować aplikacji Tor: + Nie można wystartować aplikacji Tor: Zawsze trzymaj ikonę w pasku powiadomień gdy Orbot jest połączony Powiadomienia zawsze aktywne Pokaż rozszerzone powiadomienie z krajem Tor exit node oraz jego IP @@ -123,8 +122,7 @@ Tryb VPN Wyślij Email Ukryte Usługi - Ukryte Usługi - Ukryte Usługi + Ukryte Usługi Zapisz Lokalne Porty Nazwa diff --git a/app-mini/src/main/res/values-pt-rBR/strings.xml b/app-mini/src/main/res/values-pt-rBR/strings.xml index f89245390..3073310b8 100644 --- a/app-mini/src/main/res/values-pt-rBR/strings.xml +++ b/app-mini/src/main/res/values-pt-rBR/strings.xml @@ -96,8 +96,7 @@ Um aplicativo precisa abrir uma porta tipo servidor escondida %1$dpara a Rede Tor. Isso é seguro se você confiar nesta aplicação. procurando processos Tor existentes... Algo ruim aconteceu. Cheque o lo - habilitar ler o nome do serviço oculto - Habilitar iniciar o Tor: + Habilitar iniciar o Tor: Sempre manter o ícone na barra de tarefas quando o Orbot está conectado Notificações Sempre Ligadas Mostrar notificação expandida com Tor país de saída e IP @@ -130,7 +129,6 @@ Enviar Email Global (Automático) Serviços Ocultos - Serviços Ocultos Serviços Ocultos Salvar Porta Local @@ -138,8 +136,7 @@ Nome Feito! Copiar para a area de transferência - Mostre cookie de autenticação - Serviço de Backup + Serviço de Backup Remover Serviço Backup salvo em mídia externa Backup Restaurado @@ -148,7 +145,6 @@ Clique novamente para backup Tipo do Serviço Cookie de autenticação - Copiar cookie para a area de transferência Por favor reinicie Orbot para habilitar as mundanças Compartilhar como QR Desabilitar diff --git a/app-mini/src/main/res/values-pt/strings.xml b/app-mini/src/main/res/values-pt/strings.xml index 53f6d956e..ecbd6c126 100644 --- a/app-mini/src/main/res/values-pt/strings.xml +++ b/app-mini/src/main/res/values-pt/strings.xml @@ -60,8 +60,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ encontrado o processo Tor existente... Aconteceu algo de mau. Verifique o registo de eventos. - não é possível ler o nome do serviço ocultado - Não é possível iniciar o Tor: + Não é possível iniciar o Tor: Notificações Sempre Ativadas Notificações Estendidas Idioma @@ -76,8 +75,7 @@ Ativar Enviar Mensagem Serviços ocultos - Serviços ocultos - Serviços ocultos + Serviços ocultos Guardar Nome Concluído! diff --git a/app-mini/src/main/res/values-ro/strings.xml b/app-mini/src/main/res/values-ro/strings.xml index b1a1e322f..71277596b 100644 --- a/app-mini/src/main/res/values-ro/strings.xml +++ b/app-mini/src/main/res/values-ro/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ găsit proces Tor existent... Ceva rău s-a întâmplat. Verifică log-ul - nu am putut citi numele serviciului ascuns - Nu am reuşit să pornesc Tor: + Nu am reuşit să pornesc Tor: Arată tot timpul icoana în bară când Orbot este conectat Notificări active tot timpul Arată notificări extinse cu Tor exit country şi IP @@ -122,8 +121,7 @@ Activează Trimite email Servicii ascunse - Servicii ascunse - Servicii ascunse + Servicii ascunse Salvează Nume Gata! diff --git a/app-mini/src/main/res/values-ru/strings.xml b/app-mini/src/main/res/values-ru/strings.xml index 9f9d7e35f..be0538016 100644 --- a/app-mini/src/main/res/values-ru/strings.xml +++ b/app-mini/src/main/res/values-ru/strings.xml @@ -96,8 +96,7 @@ Приложение хочет открыть скрытый порт сервера %1$d сети Tor. Это безопасно, если вы доверяете данному приложению. найден существующий процесс Tor... Произошла какая-то ошибка. Проверьте журнал. - невозможно прочитать имя скрытой службы - Невозможно запустить Tor: + Невозможно запустить Tor: Всегда отображать иконку в панели задач когда Orbot подключён Постоянное уведомление о работе Показать расширенное уведомление Tor со страной выхода и IP @@ -130,7 +129,6 @@ Отправить письмо Мир (авто) Скрытые службы - Скрытые службы Скрытые службы Сохранить Локальный порт @@ -138,7 +136,6 @@ Имя Готово! Скопировать адрес в буфер обмена - Показать авторизирующие cookie Резервировать службу Удалить службу Резервная копия сохранена на внешнем хранилище @@ -149,16 +146,8 @@ Нажмите ещё раз для резервирования Тип службы Авторизирующие cookie - Копировать cookie в буфер обмена - Авторизирующие cookie не настроены Пожалуйста, перезапустите Orbot для вступления изменения в силу - Cookies клиента .onion - Прочитать из QR-кода - Резервировать cookie - Удалить cookies - Подтвердите удаление cookie - Размещённые службы Поделиться через QR-код Отключить Включить diff --git a/app-mini/src/main/res/values-si-rLK/strings.xml b/app-mini/src/main/res/values-si-rLK/strings.xml index c8a02b232..9f80bb48c 100644 --- a/app-mini/src/main/res/values-si-rLK/strings.xml +++ b/app-mini/src/main/res/values-si-rLK/strings.xml @@ -77,8 +77,7 @@ 3 වන පාර්ශව මෘදුකාංග පවතින Tor ක්‍රියාවලි හමුවිය... යම් නොමනා දෙයක් සිදුවිය. ලොගය පරික්ෂා කර බලන්න - සැගවුණු සේවා නාමය කියවීමට නොහැකිය - Tor ආරම්භ කිරීමට නොහැකිය: + Tor ආරම්භ කිරීමට නොහැකිය: Orbot සම්බන්ධ වී ඇති සැමවිටම විට මෙවලම් තීරුවේ නිරූපකය තබාගන්න නිවේදන ලැබීමට සලස්වන්න භාෂාව @@ -86,8 +85,7 @@ MB ක්‍රියාකරවන්න සැගවුණු සේවා - සැගවුණු සේවා - සැගවුණු සේවා + සැගවුණු සේවා සුරකින්න නම diff --git a/app-mini/src/main/res/values-sk/strings.xml b/app-mini/src/main/res/values-sk/strings.xml index e3f4a6bb4..23e393db1 100644 --- a/app-mini/src/main/res/values-sk/strings.xml +++ b/app-mini/src/main/res/values-sk/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ nájdený iný proces Tor... Deje sa niečo zlé. Skontrolujte podrobnosti. - nemožné prečítať názov skrytej služby - Nemožné spustiť Tor: + Nemožné spustiť Tor: Vždy ponechať ikonu v stavovom riadku, keď je Orbot pripojený Vždy zapnuté upozornenia Zobraziť rozšírené upozornenie s výstupnou krajinou a IP adresou siete Tor diff --git a/app-mini/src/main/res/values-sr/strings.xml b/app-mini/src/main/res/values-sr/strings.xml index b0d47010e..c4b3c1ec1 100644 --- a/app-mini/src/main/res/values-sr/strings.xml +++ b/app-mini/src/main/res/values-sr/strings.xml @@ -94,8 +94,7 @@ Апликација жели да отвори сакривен порт%1$d на серверу за Тор мрежу. Ово је сигуран потез уколико верујете апликацији. нађен покренути Тор процес... Нешто лоше се догодило. Прегледајте логове - нисам у могућности да прочитам име сакривеног сервиса - Тор није у могућности да се покрене: + Тор није у могућности да се покрене: Увек прикажи икону у тулбару када је Орбот конектован Стално укључене нотификације Прикажи опширно обавештење Тор излаза државе и IP-ја @@ -128,7 +127,6 @@ Пошаљи Е-пошту Глобално (Аутоматски) Скривени Сервиси - Скривени Сервиси Скривени Сервиси Сачувај Локални Порт @@ -136,8 +134,7 @@ Име Готово ! Копирај адреса у clipboard - Покажите ауторизовани колачић - Услуга за резервне копије + Услуга за резервне копије Обриши Услугу Резербна копија је сачувана на спољној меморији Резервна копија је обновљена @@ -147,13 +144,7 @@ Кликните поново за резервну копију Тип Услуге Молимо покрените поново Орбот ради примењивања промена - Колачићи клијента .onion - Прочитај са QR кода - Резервна копија колачића - Избриши колачић - Потрврди брисање колачића - Хостоване Услуге Дели као QR код Онемогући Омогући diff --git a/app-mini/src/main/res/values-sv/strings.xml b/app-mini/src/main/res/values-sv/strings.xml index 588238d4b..2ed932e5c 100644 --- a/app-mini/src/main/res/values-sv/strings.xml +++ b/app-mini/src/main/res/values-sv/strings.xml @@ -96,8 +96,7 @@ En app vill öppna dold serverport %1$d till Tor-nätverket. Det här är säkert om du litar på appen. hittade existerande Tor process... Något dåligt hände. Kolla loggen. - kan inte läsa gömda tjänstens namn - Kan inte starta Tor: + Kan inte starta Tor: Behåll alltid ikonen i verktygsfältet när Orbot är ansluten Alltid-På Notifikationer Visa utökad notis med Tors utgångsland och IP @@ -130,7 +129,6 @@ Skicka e-post Global (automatisk) Hidden Services - Hidden Services Hidden Services Spara Lokal port @@ -138,7 +136,6 @@ Namn Klart! Kopiera adress till urklipp - Visa auth kaka Säkerhetskopiera tjänst Ta bort tjänst Säkerhetskopiering sparad i externt lagringsutrymme @@ -149,16 +146,8 @@ Klicka igen för säkerhetskopiering Typ av tjänst Auth kaka - Kopiera kaka till urklipp - Auth kaka var inte konfigurerad Vänligen starta om Orbot för att aktivera ändringarna - Klientkakor .onion - Läs från QR - Säkerhetskopiera kaka - Ta bort kaka - Bekräfta borttagning av kaka - Värdtjänster Dela som QR Inaktivera Aktivera diff --git a/app-mini/src/main/res/values-ta/strings.xml b/app-mini/src/main/res/values-ta/strings.xml index fb6d59d41..e5946e823 100644 --- a/app-mini/src/main/res/values-ta/strings.xml +++ b/app-mini/src/main/res/values-ta/strings.xml @@ -37,11 +37,7 @@ சேமி பெயர் சேவை வகை - நினைவிகளை காப்புப்பிரதிகலெடு - நினைவிகளை ஆழி - நினைவிகளின் நீக்கத்தை உறுதிப்படுத்து - வழங்கப்பட்ட சேவைகள் - QR ஆக பகிர் + QR ஆக பகிர் முடக்கு செயல்படுத்து இணைப்பதில் சிக்கலா ? diff --git a/app-mini/src/main/res/values-th/strings.xml b/app-mini/src/main/res/values-th/strings.xml index a7288a46b..273d08936 100644 --- a/app-mini/src/main/res/values-th/strings.xml +++ b/app-mini/src/main/res/values-th/strings.xml @@ -96,8 +96,7 @@ โปรแกรมต้องการเปิดพอร์ต %1$d ที่ซ่อนอยู่ของเซิร์ฟเวอร์ให้เชื่อมกับเครือข่าย Tor การกระทำนี้ปลอดภัยถ้าคุณเชื่อถือโปรแกรมนั้น พบกระบวนการ Tor ที่มีอยู่แล้ว... เกิดอะไรไม่ดีสักอย่าง ให้ตรวจดูจากบันทึก - ไม่สามารถอ่านชื่อของบริการที่ซ่อน - ไม่สามารถเริ่ม Tor: + ไม่สามารถเริ่ม Tor: แสดงไอคอนในทูลบาร์เสมอเมื่อ Orbot เชื่อมต่ออยู่ การแจ้งเตือนแบบตลอดเวลา แสดงการแจ้งเตือนแบบขยายที่ระบุประเทศปลายทางและ IP ของ Tor @@ -130,7 +129,6 @@ ส่งอีเมล ส่วนรวม (อัตโนมัติ) บริการที่ซ่อน - บริการที่ซ่อน บริการที่ซ่อน บันทึก พอร์ตในเครื่อง @@ -138,7 +136,6 @@ ชื่อเอกสาร เสร็จสิ้น! คัดลอกที่อยู่ลงในคลิปบอร์ด - แสดงคุกกี้ที่ได้รับอนุญาต บริการสำรองข้อมูล บริการลบ ข้อมูลสำรองบันทึกที่ที่เก็บข้อมูลภายนอก @@ -149,16 +146,8 @@ กดอีกครั้งเพื่อเรียกข้อมูลสำรอง ประเภทของบริการ คุกกี้ที่ได้รับอนุญาต - คัดลอกคุกกี้ลงในคลิปบอร์ด - ยังไม่ได้กำหนดค่าคุกกี้ที่ได้รับอนุญาต กรุณาเริ่ม Orbot ใหม่เพื่อให้การเปลี่ยนแปลงใช้งานได้ - คุกกี้ของไคลเอ็นต์ .onion - อ่านจากคิวอาร์ - สำรองข้อมูลคุกกี้ - ลบคุกกี้ - ยืนยันการลบคุกกี้ - บริการโฮสต์ แชร์ในรูปแบบคิวอาร์ ปิดการใช้งาน เปิดใช้งาน diff --git a/app-mini/src/main/res/values-tl/strings.xml b/app-mini/src/main/res/values-tl/strings.xml index ca666b02a..8abd8b0e3 100644 --- a/app-mini/src/main/res/values-tl/strings.xml +++ b/app-mini/src/main/res/values-tl/strings.xml @@ -89,8 +89,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ nakakita ng umiiral na Tor process... May nangyaring masama. Tingnan ang log - hindi mabasa ang pangalan ng tagong serbisyo - Hindi masimulan ang Tor: + Hindi masimulan ang Tor: Palaging panatilihin ang icon sa toolbar kapag ang Orbot ay naka-connect Palaging i-On ang Notifications Ipakita ang pinalaking notification kasama ng Tor exit country at IP diff --git a/app-mini/src/main/res/values-tr/strings.xml b/app-mini/src/main/res/values-tr/strings.xml index 4ecd64b55..e514dad83 100644 --- a/app-mini/src/main/res/values-tr/strings.xml +++ b/app-mini/src/main/res/values-tr/strings.xml @@ -96,8 +96,7 @@ Bir uygulama Tor ağına %1$d gizli sunucu kapısını açmak istiyor. Uygulamaya güveniyorsanız bu işlem güvenlidir. varolan bir Tor işlemi bulundu... Bir şeyler ters gitti. Günlük kayıtlarına bakın - gizli hizmet adı okunamadı - Tor başlatılamadı: + Tor başlatılamadı: Orbot bağlı olduğu sürece simge araç çubuğunda görüntülensin Bildirimler Her Zaman Açık Tor çıkış ülkesi ve IP adresi ile ilgili ayrıntılı bildirim görüntülensin @@ -130,7 +129,6 @@ E-posta Gönder Genel (Otomatik) Gizli Hizmetler - Gizli Hizmetler Gizli Hizmetler Kaydet Yerel Kapı @@ -138,7 +136,6 @@ Ad Tamam! Adresi panoya kopyala - Kimlik doğrulama çerezini görüntüle Hizmeti Yedekle Hizmeti Sil Yedek dış depolamaya kaydedildi @@ -149,16 +146,8 @@ Yedeklemek için yeniden tıklayın Hizmet Türü Kimlik Doğrulama Çerezi - Çerezi panoya kopyala - Kimlik doğrulama çerezi yapılandırılmamış Değişiklikleri etkinleştirmek için Orbot uygulamasını yeniden başlatın - İstemci çerezleri .onion - QR kodundan oku - Çerezi yedekle - Çerezi sil - Çerezi silmeyi onayla - Barındırılan Hizmetler QR Olarak Paylaş Devre Dışı Bırak Etkinleştir diff --git a/app-mini/src/main/res/values-uk/strings.xml b/app-mini/src/main/res/values-uk/strings.xml index 997d01aa5..1da8521bf 100644 --- a/app-mini/src/main/res/values-uk/strings.xml +++ b/app-mini/src/main/res/values-uk/strings.xml @@ -96,8 +96,7 @@ Програма хоче відкрити прихований серверний порт %1$d у мережу Tor. Це безпечно, якщо ви довіряєте застосунку. знайдено існуючий процес Tor... Виникла якась помилка. Перевірте лог - неможливо прочитати ім\'я прихованої служби - Неможливо запустити Tor: + Неможливо запустити Tor: Завжди показувати іконку в панелі завдань коли Orbot підключений Сповіщення про постійну роботу Показати розширене сповіщення з країною виходу Tor та IP @@ -130,7 +129,6 @@ Надіслати листа Глобальний (автоматичний) Приховані Послуги - Приховані Послуги Приховані Послуги Зберегти Місцевий Порт @@ -138,7 +136,6 @@ Ім\'я Зроблено! Скопіювати адресу в буфер обміну - Показати авторизацію реп\'яшків Резервне копіювання Вилучити Сервіс Резервна копія збережена на зовнішній пам\'яті @@ -149,16 +146,8 @@ Ще раз натисніть щоби копіювати в резерв Тип сервісу Авторизація реп\'яшків - Копіювати реп\'яшки в буфер обміну - Авторизація реп\'яшків не налаштована Будь ласка, перезапустіть Orbot, щоб зміни ввійшли в силу - Клієнтські реп\'яшки .onion - Зчитати з QR-коду - Резервне копіювання реп\'яшків - Вилучити реп\'яшки - Підтвердити вилучення реп\'яшків - Розміщені Сервіси Поділитися у виді QR-коду Вимкнути Увімкнути diff --git a/app-mini/src/main/res/values-vi/strings.xml b/app-mini/src/main/res/values-vi/strings.xml index 4b4f9ce61..29be90ed3 100644 --- a/app-mini/src/main/res/values-vi/strings.xml +++ b/app-mini/src/main/res/values-vi/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ tìm ra tiến trình hiện hành của Tor... Có gì đó không ổn. Xin xem lại nhật ký - không thể đọc được tên dịch vụ ẩn - Không thể khởi động Tor được: + Không thể khởi động Tor được: Luôn giữ thông báo trong thanh trạng thái khi Orbot được kết nối Thông báo thường trực Hiển thị thông báo mở rộng với IP và quốc gia của nút cuối (Tor exit-node) diff --git a/app-mini/src/main/res/values-zh-rCN/strings.xml b/app-mini/src/main/res/values-zh-rCN/strings.xml index 0b23feef1..04ea52f44 100644 --- a/app-mini/src/main/res/values-zh-rCN/strings.xml +++ b/app-mini/src/main/res/values-zh-rCN/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ 发现当前已存在 Tor 进程... 发生错误,请检查日志 - 无法读取隐藏服务名称 - 无法启动 Tor: + 无法启动 Tor: Orbot 连接后始终在通知栏显示图标 始终显示通知 显示扩展的通知,有关 Tor 出口的国家和 IP diff --git a/app-mini/src/main/res/values-zh-rTW/strings.xml b/app-mini/src/main/res/values-zh-rTW/strings.xml index d8e73560c..6edaa889d 100644 --- a/app-mini/src/main/res/values-zh-rTW/strings.xml +++ b/app-mini/src/main/res/values-zh-rTW/strings.xml @@ -96,8 +96,7 @@ 有一個應用要開啟隱藏的伺服器端口 %1$d 到 Tor 網路,如果信得過此應用才進行此操作 發現已有 Tor 程序運行中 ... 發生錯誤。檢視日誌檔 - 無法讀取隱藏服務的名稱 - 無法啟動 Tor: + 無法啟動 Tor: 當 Orbot 連線成功時,總是在工具列顯示它的圖示 總是顯示連線通知 在通知中顯示 Tor 出口點的國家和 IP @@ -130,7 +129,6 @@ 寄送電子信件 全域(自動) 隱藏服務 - 隱藏服務 隱藏服務 儲存 本地端口 @@ -138,7 +136,6 @@ 名稱 已完成! 複製地址到剪貼簿 - 顯示 auth cookie 備份服務 刪除服務 備份檔儲存在外部儲存器 @@ -149,16 +146,8 @@ 再次點選以進行備份 服務類型 Auth cookie - 複製 Cookie 到剪貼簿 - Auth cookie 未設定 請重新啟動 Orbot 來讓設定生效。 - 客戶 cookies .onion - 由 QR 碼讀取 - 備分 cookie - 刪除 cookie - 確認刪除 cookie - 主機的服務 利用 QR 碼分享 關閉 啟用 diff --git a/app-mini/src/main/res/values/strings.xml b/app-mini/src/main/res/values/strings.xml index cd5a414a4..9cb11a08e 100644 --- a/app-mini/src/main/res/values/strings.xml +++ b/app-mini/src/main/res/values/strings.xml @@ -104,7 +104,6 @@ An app wants to open onion server port %1$d to the Tor network. This is safe if you trust the app. found existing Tor process… Something bad happened. Check the log - unable to read onion service name Unable to start Tor: Always keep the icon in toolbar when Orbot is connected @@ -166,7 +165,6 @@ Global (Auto) Onion Services - Onion Services Onion Services Save Local Port @@ -174,7 +172,6 @@ Name Done! Copy address to clipboard - Show auth cookie Backup Service Delete Service Backup saved at external storage @@ -185,16 +182,8 @@ Click again for backup Service type Auth cookie - Copy cookie to clipboard - Auth cookie was not configured Please restart Orbot to enable the changes - Client cookies .onion - Read from QR - Backup cookie - Delete cookie - Confirm cookie deletion - Hosted Services Share as QR Disable Enable diff --git a/app-tv/src/main/res/values-ar/strings.xml b/app-tv/src/main/res/values-ar/strings.xml index 9f65f0ac3..5f78ed257 100644 --- a/app-tv/src/main/res/values-ar/strings.xml +++ b/app-tv/src/main/res/values-ar/strings.xml @@ -92,8 +92,7 @@ OpenSSL v1.0.2j: http://www.openssl.org عُثر علي عملية تور سابقة تعمل... حصل خطأ ما. افحص السجل - غير قادر على قراءة اسم الخدمة المخفية - غير قادر على بدء تور: + غير قادر على بدء تور: دائما ضع الأيقونة في شريط الأدوات عندما يكون اوربوت متصلاً تنبيهات دائمة قم بأظهار التنبيه بشكل موسع بأستخدام تور. أخرج من البلد ورقم الآي بي رقم العنوان على الشبكة @@ -125,7 +124,6 @@ أرسل بريد الكتروني شامل (تلقائي) خدمات خفية - خدمات خفية خدمات خفية حفظ المنفذ المحلي @@ -133,7 +131,6 @@ الاسم تم ! نسخ العنوان إلى الحافظة - عرض كعكة المصادقة النسخ الإحتياطي للخدمة حذف الخدمة تمت عملية حفظ النسخة الإحتياطية في ذاكرة التخزين الخارجية @@ -144,16 +141,8 @@ قم بالنقر ثانية للقيام بالنسخ الإحتياطي نوع الخدمة كعكة المصادقة - نسخ الكعكة إلى الحافظة - لم يتم إعداد كعكة المصادقة الرجاء إعادة تشغيل أوربوت لتفعيل التعديلات - كعكات العميل .onion - القراءة مِن رمز الكيو آر - النسخ الإحتياطي للكعكة - حذف الكعكة - تأكيد إزالة الكعكة - الخدمات المستضافة شارك كرمز كيو آر إلغاء تمكين diff --git a/app-tv/src/main/res/values-ay/strings.xml b/app-tv/src/main/res/values-ay/strings.xml index e4ab9f4c0..ecfb9328e 100644 --- a/app-tv/src/main/res/values-ay/strings.xml +++ b/app-tv/src/main/res/values-ay/strings.xml @@ -95,8 +95,7 @@ Imantat apayañ thakhinak Tor llikar mä wakichäwiw jist\'arañ muni %1$d. Wakichawitix uñt\'atachixa, iyaw sama. Utjir Toraw jikxatata... Mä jan walt\'äwiw utji. Qillqantayasit uñakipam - Janiw imantat yanapirin sutiman ullarañjamakänti - Janiw Torax aqtayañjamäkiti: + Janiw Torax aqtayañjamäkiti: Orbot aqtatäki ukjax chimpup uñstayañapuni Yatiyäwinakax purinipuniniwa Kawkja markans IP ukamp Toramp uñstani uka yatiyäw juk\'amp uñacht\'ayaña @@ -129,7 +128,6 @@ Qillqat apayaña Uraqpacha (justupaki) Imantat lurañanaka - Imantat lurañanaka Imantat lurañanaka Imaña Akankïr apayañ thakhi @@ -137,7 +135,6 @@ Suti ¡Tukuyata! Utjirinak waruqañawjar imam - Uñt\'ayktam uka cookie uñstayam Yanapirit imat luratanakam waruqam Lurañanak pichsuña Imat luratanakamax yaqha yänakar imataxiwa @@ -148,16 +145,8 @@ Imat luratanak utjañapatak mayamp limt\'am Kunayman lurañanaka Chiqat k\'arich uk katjir cookie - Cookie waruqañawjar imam - Chiqat k\'arich uk katjir cookiex janiw mayjt\'ayatäkiti Mayjt\'ayatanak aqtayañatak Orbot mayamp qhant\'ayam, amp suma - Apnaqirin Cookiepa .onion - QR ukamp ullaraña - Cookien imat luratanakapa - Cookie pichsum - Cookie pichsut mayamp uñxatam - Qurpachat lurañanaka QRjam ch\'iqiyaña Jiwt\'ayaña Aqtayaña diff --git a/app-tv/src/main/res/values-az/strings.xml b/app-tv/src/main/res/values-az/strings.xml index 4fcd73c34..76b784b60 100644 --- a/app-tv/src/main/res/values-az/strings.xml +++ b/app-tv/src/main/res/values-az/strings.xml @@ -92,8 +92,7 @@ Tor: https://www.torproject.org LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ mövcud Tor prosesi tapıldı... Nə isə pis bir şey oldu. Girişi yoxla - gizli xidmət adını oxumağı deaktivləşdir - Tor-un başlanmasını dayandır: + Tor-un başlanmasını dayandır: Həmişə Orbot qoşulduğu hallarda nişanı alətlət panelində saxla Həmişə Açıq Xəbərdarlıqlar Torla birlikdə ətraflı bildirişi göstərib ölkə və IP-dən çıxın. diff --git a/app-tv/src/main/res/values-be/strings.xml b/app-tv/src/main/res/values-be/strings.xml index c1dfd166b..0f2317000 100644 --- a/app-tv/src/main/res/values-be/strings.xml +++ b/app-tv/src/main/res/values-be/strings.xml @@ -95,8 +95,7 @@ Дадатак хоча адкрыць схаваны порт сервера %1$d сеткі Tor. Гэта бяспечна, калі вы давяраеце дадзенаму дадатку. знойдзены існавалы працэс Tor... Адбылася нейкая памылка. Праверце журнал. - немагчыма прачытаць імя схаванай службы - Немагчыма запусціць Tor: + Немагчыма запусціць Tor: Заўсёды адлюстроўваць іконку у панэлі заданняў калі Orbot падключаны Нязменнае апавяшчэнне пра працу Паказаць пашыранае апавяшчэнне Tor з краінай выхаду і IP @@ -129,7 +128,6 @@ Адправіць ліст Свет (аўта) Схаваныя службы - Схаваныя службы Схаваныя службы Захаваць Лакальны порт @@ -137,7 +135,6 @@ Імя Гатова! Скапіяваць адрас у буфер памену - Паказаць аўтарызуючыя cookie Рэзерваваць службу Выдаліць службу Рэзервовая копія захавана на вонкавым сховішчы @@ -148,16 +145,8 @@ Націсніце яшчэ раз для рэзервавання Тып службы Аўтарызучыя cookie - Капіяваць cookie у буфер памену - Аўтарызучыя cookie не наладжаны Калі ласка, перазапусціце Orbot для ўступу змены ў сілу - Cookies кліента .onion - Прачытаць з QR-кода - Рэзерваваць cookie - Выдаліць cookies - Пацвердзіце выдаленне cookie - Размешчаныя службы Падзяліцца праз QR-код Адключыць Уключыць diff --git a/app-tv/src/main/res/values-bg/strings.xml b/app-tv/src/main/res/values-bg/strings.xml index 9452b2ab4..667ec5424 100644 --- a/app-tv/src/main/res/values-bg/strings.xml +++ b/app-tv/src/main/res/values-bg/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ намерил си съвместим Tor проект... Нещо лошо се случи. Проверете лога - не може да прочете име на скрита услуга - Не може да стартира Тор: + Не може да стартира Тор: Винаги показвай икона в тулбара когато Орбот е свързан Уведомления винаги включени Покажи разширена информация за Tor изходната държава и IP в лентата за известия @@ -122,8 +121,7 @@ Активирай Изпрати имейл Скрити услуги - Скрити услуги - Скрити услуги + Скрити услуги Запази Име Моля, рестартирай Orbot, за да влязат в действие промените diff --git a/app-tv/src/main/res/values-ca/strings.xml b/app-tv/src/main/res/values-ca/strings.xml index b7de95f99..ba0c0bd4c 100644 --- a/app-tv/src/main/res/values-ca/strings.xml +++ b/app-tv/src/main/res/values-ca/strings.xml @@ -96,8 +96,7 @@ Una aplicació vol obrir el port de servidor ocults%1$d a la xarxa Tor. Això és segur si confieu en l\'aplicació s\'ha trobat un procés Tor existent... Ha fallat alguna cosa. Comproveu el registre - ha estat impossible llegir el nom del servei ocult - Ha estat impossible iniciar Tor: + Ha estat impossible iniciar Tor: Manté la icona sempre a la barra d\'eines mentre l\'Orbot està connectat Notificacions sempre activades Mostra la informació de sortida addicional del Tor amb el país i la IP @@ -130,7 +129,6 @@ Envia correu-e Global (auto) Serveis ocults - Serveis ocults Serveis ocults Desa Port local @@ -138,7 +136,6 @@ Nom Fet! Copia adreça al portapapers - Mostrar galetes d\'autentificació Servei de còpia de seguretat Esborrar servei Còpia de seguretat desada a emmagatzematge extern @@ -149,16 +146,8 @@ Feu clic novament per fer còpia de seguretat Tipus de servei Auth cookie - Copieu les galetes al porta-retalls - No s\'ha configurat l\'Auth cookie Reinicieu l\'Orbot per aplicar els canvis - Client cookies .onion - Llegir de QR - Backup cookie - Elimina la galeta - Confirma la supressió de les galetes - Serveis allotjats Comparteix com a QR Deshabilitar Habilitar diff --git a/app-tv/src/main/res/values-cs-rCZ/strings.xml b/app-tv/src/main/res/values-cs-rCZ/strings.xml index 04544c89d..641a4eeda 100644 --- a/app-tv/src/main/res/values-cs-rCZ/strings.xml +++ b/app-tv/src/main/res/values-cs-rCZ/strings.xml @@ -90,8 +90,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ nalezev existující Tor proces… Stalo se něco špatného. Zkontrolujte log - nelze číst název skryté služby - Nelze spustit Tor: + Nelze spustit Tor: Vždy zobrazit ikonu ve stavovém řádku, pokud je Orbot připojen. Notifikace vždy zapnuté Zobrazit rozšířené oznánemí s Tor výstupní zemí a IP diff --git a/app-tv/src/main/res/values-cs/strings.xml b/app-tv/src/main/res/values-cs/strings.xml index 17b7fb4fe..373d8467b 100644 --- a/app-tv/src/main/res/values-cs/strings.xml +++ b/app-tv/src/main/res/values-cs/strings.xml @@ -35,8 +35,7 @@ Email Aktivovat Skryté Služby - Skryté Služby - Skryté Služby + Skryté Služby Uložit Jméno Hotovo! diff --git a/app-tv/src/main/res/values-cy/strings.xml b/app-tv/src/main/res/values-cy/strings.xml index a1c168d62..e91f2549e 100644 --- a/app-tv/src/main/res/values-cy/strings.xml +++ b/app-tv/src/main/res/values-cy/strings.xml @@ -36,8 +36,7 @@ Iaith Ysgogi Gwasanaethau Cudd - Gwasanaethau Cudd - Gwasanaethau Cudd + Gwasanaethau Cudd Cadw Enw diff --git a/app-tv/src/main/res/values-da/strings.xml b/app-tv/src/main/res/values-da/strings.xml index cd08b493c..43d49f7cc 100644 --- a/app-tv/src/main/res/values-da/strings.xml +++ b/app-tv/src/main/res/values-da/strings.xml @@ -88,8 +88,7 @@ Tor: https://www.torproject.org fandt eksisterende Tor process... Noget slemt er sket. Check loggen - ikke i stand til at læse navnet på den skjulte service - Kunne ikke starte Tor: + Kunne ikke starte Tor: Vis altid ikonet i statuslinien når Orbot er forbundet til netværket Vis altid notifikationer Sprog @@ -98,8 +97,7 @@ Mail Aktiver Skjulte tjenester - Skjulte tjenester - Skjulte tjenester + Skjulte tjenester Gem Navn Deaktivere diff --git a/app-tv/src/main/res/values-de/strings.xml b/app-tv/src/main/res/values-de/strings.xml index 0e7867c1c..c8fde9477 100644 --- a/app-tv/src/main/res/values-de/strings.xml +++ b/app-tv/src/main/res/values-de/strings.xml @@ -96,8 +96,7 @@ Eine Anwendung möchte den Versteckten Server-Anschluss %1$d zum Tor-Netz öffnen. Dies ist sicher, wenn Sie der Anwendung vertrauen. bestehenden Tor-Prozess gefunden … Etwas ist schief gelaufen. Bitte Protokoll überprüfen - Name des versteckten Dienstes kann nicht gelesen werden - Tor kann nicht gestartet werden: + Tor kann nicht gestartet werden: Behalte immer das Symbol in der Symbolleiste, wenn Orbot verbunden ist Aktivitätsanzeige Zeige erweiterte Benachrichtigung mit Tor-Ausgangsland und IP an @@ -130,7 +129,6 @@ E-Mail senden Global (Automatisch) Versteckte Dienste - Versteckte Dienste Versteckte Dienste Speichern Lokaler Anschluss @@ -138,7 +136,6 @@ Name Fertig! Adresse in die Zwischenablage kopieren - Authentifikationscookie anzeigen Sicherungsdienst Dienst löschen Sicherung auf externem Speicher gespeichert @@ -149,16 +146,8 @@ Zum Sichern noch einmal klicken Dienst-Typ Authentifikationscookie - Cookie in die Zwischenablage kopieren - Es wurde kein Authentifikationscookie festgelegt Bitte Orbot zum Aktivieren der Änderungen neustarten - Client Cookies .onion - Lese QR-Code - Cookie sichern - Cookie löschen - Cookie-Löschung bestätigen - Gehostete Dienste Teile als QR-Code Deaktivieren Aktivieren diff --git a/app-tv/src/main/res/values-el/strings.xml b/app-tv/src/main/res/values-el/strings.xml index d15f1026d..9d9bfc925 100644 --- a/app-tv/src/main/res/values-el/strings.xml +++ b/app-tv/src/main/res/values-el/strings.xml @@ -96,8 +96,7 @@ Κάποια εφαρμογή προσπαθεί να ανοίξει την κρυφή θύρα διακομιστή %1$dστο δίκτυο Tor. Πρόκειται για ασφαλή ενέργεια, εφόσον γνωρίζετε την εφαρμογή. αναζήτηση διεργασιών Tor... Κάτι κακό συνέβη. Ελέγξτε τις καταγραφές - αδυναμία ανάγνωσης του ονόματος της κρυφής υπηρεσίας - Αδυναμία εκκίνησης του Tor: + Αδυναμία εκκίνησης του Tor: Να διατηρείται πάντοτε το εικονίδιο στην γραμμή εργαλείων όταν το Orbot συνδέεται Ειδοποιήσεις διαρκούς σύνδεσης Εμφάνιση εκτεταμένης ειδοποίησης με τη χώρα εξόδου του Tor και τη διεύθυνση IP @@ -130,7 +129,6 @@ Στείλτε Email Παγκόσμια (Auto) Αποκρυφες υπηρεσιες - Αποκρυφες υπηρεσιες Αποκρυφες υπηρεσιες Αποθήκευση Τοπική θύρα @@ -138,7 +136,6 @@ Όνομα Έγινε! Αντιγραφή διέυθυνσης στο πρόχειρο - Εμφάνιση αναγνωριστικού cookie Υπηρεσία δημιουργίας αντιγράφου ασφαλείας Διαγραφή υπηρεσίας Το αντίγράφο ασφαλείας αποθηκεύθηκε σε εξωτερικό μέσο αποθήκευσης @@ -149,16 +146,8 @@ Πατήστε ξανά για το αντίγραφο ασφαλείας Τύπος υπηρεσίας Αναγνωριστικό cookie - Αντιγραφή τού cookie στο πρόχειρο - Το αναγνωριστικό cookie δεν διαμορφώθηκε Παρακαλούμε επανεκκινήστε το Orbot για να ενεργοποιήσετε τις αλλαγές - Cookies πελατών .onion - Ανάγνωση από QR - Cookie αντίγραφου ασφαλείας - Αφαίρεση Cookie - Επιβεβαίωση διαγραφής τού cookie - Φιλοξενημένες υπηρεσίες Κοινοποίηση ως QR Απενεργοποίηση Ενεργοποίηση diff --git a/app-tv/src/main/res/values-eo/strings.xml b/app-tv/src/main/res/values-eo/strings.xml index 488fdda3b..6210d7402 100644 --- a/app-tv/src/main/res/values-eo/strings.xml +++ b/app-tv/src/main/res/values-eo/strings.xml @@ -67,8 +67,7 @@ Entajpu pordojn Retpaĝaro(j) de la Projekto: trovi ekzistantan Tor-procedon... - ne eblas legi nomon de la kaŝita servo - Ne eblas startigi Tor: + Ne eblas startigi Tor: Lingvo Aktivi Konservi diff --git a/app-tv/src/main/res/values-es/strings.xml b/app-tv/src/main/res/values-es/strings.xml index 39e208682..052142591 100644 --- a/app-tv/src/main/res/values-es/strings.xml +++ b/app-tv/src/main/res/values-es/strings.xml @@ -97,8 +97,7 @@ direcciones (o rangos). No prevalecen sobre las configuraciones de exclusión de Una aplicación quiere abrir el puerto %1$d de servidor oculto a la red Tor. Esto es seguro si confía en la aplicación. Se encontró un proceso de Tor ya existente... Hubo algún tipo de problema. Compruebe el registro (log) - No fue posible leer el nombre del servicio oculto - No fue posible iniciar Tor: + No fue posible iniciar Tor: Mantener siempre el icono de Orbot en la barra de tareas cuando esté conectado Notificaciones siempre activadas Mostrar notificación expandida con el país de salida de Tor y la IP @@ -131,7 +130,6 @@ direcciones (o rangos). No prevalecen sobre las configuraciones de exclusión de Enviar correo Global (Automático) Servicios ocultos - Servicios ocultos Servicios ocultos Guardar Puerto local @@ -139,7 +137,6 @@ direcciones (o rangos). No prevalecen sobre las configuraciones de exclusión de Nombre ¡Hecho! Copiar dirección al portapapeles - Mostrar cookie de autentificación Hacer copia de seguridad del servicio Borrar servicio Copia de seguridad guardada en un almacenamiento externo @@ -150,16 +147,8 @@ direcciones (o rangos). No prevalecen sobre las configuraciones de exclusión de Pulse de nuevo para realizar copia de seguridad Tipo de servicio Cookie de autentificación - Copiar cookie al portapapeles - La cookie de autentificación no fue configurada Por favor, reinicie Orbot para habilitar los cambios - Cookies de cliente .onion - Leer desde QR - Realizar copia de seguridad de cookie - Borrar cookie - Confirmar borrado de cookie - Servicios alojados Compartir como QR Deshabilitar Habilitar diff --git a/app-tv/src/main/res/values-et/strings.xml b/app-tv/src/main/res/values-et/strings.xml index a3c8da108..286e76e51 100644 --- a/app-tv/src/main/res/values-et/strings.xml +++ b/app-tv/src/main/res/values-et/strings.xml @@ -84,8 +84,7 @@ Kolmanda osapoole tarkvara: leidus töötav Tor protsess... Juhtus midagi halba. Kontrollige logi - ei õnnestu lugeda varjatud teenuse nime - Tor käivitamine ebaõnnestus: + Tor käivitamine ebaõnnestus: Ühendatud Orbot korral näidata katkematult ikoonide tööriistariba Pidevalt kuvatavad teated Pole võrgu auto-und diff --git a/app-tv/src/main/res/values-eu/strings.xml b/app-tv/src/main/res/values-eu/strings.xml index 8850ac3ca..40f2c73a0 100644 --- a/app-tv/src/main/res/values-eu/strings.xml +++ b/app-tv/src/main/res/values-eu/strings.xml @@ -96,8 +96,7 @@ Aplikazio batek ezkutuko zerbitzariko %1$d ataka ireki nau du Tor sarera. Segurua da aplikazioaz fidatzen bazara. aurreko Tor prozesu bat aurkitu da... Zerbait txarra gertatu da. Begiratu egunkarian - ezin izan da ezkutuko zerbitzuaren izena irakurri - Ezin izan da Tor hasi: + Ezin izan da Tor hasi: Mantendu ikonoa tresna barran Orbot konektatuta dagoenean Beti piztutako jakinarazpenak Erakutsi hedatutako jakinarazpenak Tor irteera herrialde eta IP-arekin @@ -130,7 +129,6 @@ Bidali E-maila Orokorra (Automatikoa) Ezkutuko zerbitzuak - Ezkutuko zerbitzuak Ezkutuko zerbitzuak Gorde Ataka lokala @@ -138,7 +136,6 @@ Izena Egina! Kopiatu helbidea arbelera - Erakutsi autentifikazio cookie-a Egin zerbitzuaren babeskopia Ezabatu zerbitzua Babeskopia kanpo biltegiratzean gorde da @@ -149,16 +146,8 @@ Egin klik berriro babeskopiarako Zerbitzu mota Autentifikazio cookie-a - Kopiatu cookie-a arbelera - Ez da autentifikazio cookie-a konfiguratu Mesedez berrabiarazi Orbot aldaketak aktibatzeko - Bezero-cookie-ak .onion - Irakurri QR-tik - Egin cookie-aren babeskopia - Ezabatu cookie-a - Berretsi cookie-a ezabatzea - Ostatatutako zerbitzuak Partekatu QR gisa Desgaitu Gaitu diff --git a/app-tv/src/main/res/values-fa/strings.xml b/app-tv/src/main/res/values-fa/strings.xml index cb822f0b3..1e6f1e8d4 100644 --- a/app-tv/src/main/res/values-fa/strings.xml +++ b/app-tv/src/main/res/values-fa/strings.xml @@ -96,8 +96,7 @@ اپلیکیشنی می‌خواهد پورت سرور %1$d را به شبکه تور بگشاید. در صورتی که به این برنامه اطمینان دارید، چنین کاری امن است. یک تور درحال اجرا پیدا شد... اتفاق بدی افتاد. وقایع ثبت شده را چک کنید - ناتوان در خواندن نام سرویس مخفی - ناتوان در راه اندازی تور: + ناتوان در راه اندازی تور: وقتی ربات پیازی متصل است، همیشه آیکون مربوط را در نوار ابزار نگه دار. آگاهسازی همیشه روشن نمایش اطلاع رسانی گسترده با کشور خروجی Tor و IP @@ -130,7 +129,6 @@ ایمیل بفرست جهانی (خودکار) سرویس‌های مخفی - سرویس‌های مخفی سرویس‌های مخفی ذخيره درگاه محلی @@ -138,7 +136,6 @@ نام انجام شد! رونوشت نشانی‌ها در حافظه موقت - نمایش کوکی احراز هویت سرویس بک‌آپ حذف سرویس بک‌آپ در انباره خارجی ذخیره شد @@ -149,16 +146,8 @@ برای بک‌آپ، دوباره کلیک کنید نوع سرویس کوکی Auth - کپی کردن کوکی به کلیپ بورد - کوکی احراز هویت پیکربندی نشده بود برای دیدن تغییرات، اوربات را دوباره راه اندازی کنید - کوکی‌های Client onion. - از QR بخوان - بک‌آپ از کوکی - حذف کوکی - تایید حذف کوکی - سرویس‌های میزبانی‌شده هم‌رسانی با QR غیرفعال کن فعال کن diff --git a/app-tv/src/main/res/values-fi/strings.xml b/app-tv/src/main/res/values-fi/strings.xml index 46b634ba4..76f311845 100644 --- a/app-tv/src/main/res/values-fi/strings.xml +++ b/app-tv/src/main/res/values-fi/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ löytyi olemassaoleva Tor-prosessi... Jotain pahaa tapahtui. Tarkista loki - piilopalvelunimen lukeminen epäonnistui - Torin käynnistys epäonnistui: + Torin käynnistys epäonnistui: Pidä kuvake aina työkalupalkissa, kun Orbot on yhdistetty Ilmoitukset aina käytössä Näytä laajennettu ilmoitus (Torin ulostulon maa ja IP) @@ -122,8 +121,7 @@ Ota käyttöön Lähetä sähköpostia Piilopalvelut - Piilopalvelut - Piilopalvelut + Piilopalvelut Tallenna Nimi Valmis! diff --git a/app-tv/src/main/res/values-fr-rFR/strings.xml b/app-tv/src/main/res/values-fr-rFR/strings.xml index 7fcf32b88..6f1ebb4a9 100644 --- a/app-tv/src/main/res/values-fr-rFR/strings.xml +++ b/app-tv/src/main/res/values-fr-rFR/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21 : http://www.monkey.org/~provos/libevent/ un processus existant de Tor a été trouvé... Quelque chose n’a pas été. Vérifiez le journal - impossible de lire le nom du service caché - Impossible de démarrer Tor : + Impossible de démarrer Tor : Toujours conserver l’icône dans la barre des tâches quand Orbot est connecté. Notifications toujours actives Montrer des notifications étendues avec le pays de sortie de Tor et l’IP diff --git a/app-tv/src/main/res/values-fr/strings.xml b/app-tv/src/main/res/values-fr/strings.xml index 36a5526ff..2ded4be76 100644 --- a/app-tv/src/main/res/values-fr/strings.xml +++ b/app-tv/src/main/res/values-fr/strings.xml @@ -96,8 +96,7 @@ Une appli veut ouvrir le port %1$d du serveur caché au réseau Tor. Cela est sécuritaire si vous faites confiance à l’appli. un processus existant de Tor a été trouvé... Quelque chose n’a pas été. Vérifiez le journal - impossible de lire le nom du service caché - Impossible de démarrer Tor : + Impossible de démarrer Tor : Toujours conserver l’icône dans la barre des tâches quand Orbot est connecté. Notifications toujours actives Montrer des notifications étendues avec le pays de sortie de Tor et l’IP @@ -130,7 +129,6 @@ Envoyer un courriel Mondial (Auto) Services cachés - Services cachés Services cachés Enregistrer Port local @@ -138,7 +136,6 @@ Nom Fait ! Copier l’adresse vers le presse-papiers - Afficher le témoin auth Service de sauvegarde Supprimer le service La sauvegarde a été enregistrée sur une mémoire externe @@ -149,16 +146,8 @@ Recliquer pour sauvegarder Type de service Témoin auth - Copier le témoin vers le presse-papiers - Le témoin auth n’est pas configuré Veuillez redémarrer Orbot pour activer les changements - Témoins du client .onion - Lire d’un code QR - Sauvegarder le témoin - Supprimer le témoin - Confirmer la suppression du témoin - Services hébergés Partager comme code QR Désactiver Activer diff --git a/app-tv/src/main/res/values-gl/strings.xml b/app-tv/src/main/res/values-gl/strings.xml index 9597d09c2..91dd5df13 100644 --- a/app-tv/src/main/res/values-gl/strings.xml +++ b/app-tv/src/main/res/values-gl/strings.xml @@ -96,8 +96,7 @@ Unha aplicación quere abrir o porto oculto de servidor %1$d a rede Tor. Esto é seguro se vostede confía na app. atopado proceso Tor existente... Algo malo pasou. Comprobe o rexistro - imposible ler nome de servizo oculto - Incapaz de arrancar Tor + Incapaz de arrancar Tor Mostrar sempre a icona na barra de ferramentas cando Orbot estea conectado Notificacións Sempre Acesas Mostar notificación extendida co país de saída de Tor e IP @@ -130,7 +129,6 @@ Enviar correo Global (Auto) Servizos agochados - Servizos agochados Servizos agochados Gardar Porto local @@ -138,7 +136,6 @@ Nome Feito! Copiar enderezo ao portapapeis - Mostar testemuño de autorización Servizo de respaldo Eliminar servizo Respaldo gardado en almacenamento externo @@ -149,16 +146,8 @@ Pulse de novo para respaldar Tipo de servizo Testemuño de autorización - Copie o testemuño ao portapapeis - Non estableceu un testemuño de autorización Por favor, reinicie Orbot para activar os cambios - Testemuños do cliente .onion - Ler desde QR - Testemuño de respaldo - Eliminar testemuño - Confirme a eliminación do testemuño - Servizos hospedados Compartir como QR Inhabilitar Activar diff --git a/app-tv/src/main/res/values-hi/strings.xml b/app-tv/src/main/res/values-hi/strings.xml index 919048e28..6a884aea5 100644 --- a/app-tv/src/main/res/values-hi/strings.xml +++ b/app-tv/src/main/res/values-hi/strings.xml @@ -97,8 +97,7 @@ एक ऐप Tor नेटवर्क पर %1$dछिपा सर्वर पोर्ट खोलना चाहता है। यदि आप ऐप पर विश्वास करते हैं, तो यह सुरक्षित है मौजूदा तोर प्रक्रिया पाया ... कुछ बुरा हो गया। लॉग की जांच करें - छिपी हुई सेवा का नाम पढ़ने में असमर्थ - टो शुरू करने में असमर्थ: + टो शुरू करने में असमर्थ: ऑरबोट कनेक्ट होने पर टूलबार में हमेशा आइकन रखें हमेशा की सूचनाएं तोर एग्जिट देश और आईपी के साथ विस्तारित सूचना दिखाएं @@ -131,7 +130,6 @@ ईमेल भेजें ग्लोबल (ऑटो) हिडन सेवाएं - हिडन सेवाएं हिडन सेवाएं बचाना स्थानीय पोर्ट @@ -139,7 +137,6 @@ नाम किया हुआ! क्लिपबोर्ड को पता कॉपी करें - Auth कुकी दिखाएं बैकअप सेवा सेवा हटाएँ बाह्य संग्रहण में बैकअप सहेजा गया @@ -150,16 +147,8 @@ बैकअप के लिए फिर से क्लिक करें सेवा प्रकार Auth कुकी - क्लिपबोर्ड पर कुकी कॉपी करें - Auth कुकी कॉन्फ़िगर नहीं की गई थी परिवर्तन सक्षम करने के लिए Orbot पुनः प्रारंभ करें - क्लाइंट कुकीज़ .अनियन - QR से पढ़ें - बैकअप कुकी - कुकी हटाएं - कुकी हटाने की पुष्टि करें - होस्टेड सर्विसेस QR के रूप में शेयर करें अक्षम सक्षम करें diff --git a/app-tv/src/main/res/values-hr/strings.xml b/app-tv/src/main/res/values-hr/strings.xml index 62a2945c0..1d8f9fe5b 100644 --- a/app-tv/src/main/res/values-hr/strings.xml +++ b/app-tv/src/main/res/values-hr/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ pronađeni postojeći Tor procesi... Nešto loše se dogodilo. Provjerite dnevnik - nije moguće pročitati ime skrivene usluge - Nije moguće pokrenuti Tor: + Nije moguće pokrenuti Tor: Uvjek drži ikonu na alatnoj traci kad je Orbot spojen Obavijesti o stalnoj pokrenutosti Prikaži proširene obavijesti s Tor izlaznom državom i IP-em diff --git a/app-tv/src/main/res/values-hu/strings.xml b/app-tv/src/main/res/values-hu/strings.xml index 33932aa1b..6df55d32f 100644 --- a/app-tv/src/main/res/values-hu/strings.xml +++ b/app-tv/src/main/res/values-hu/strings.xml @@ -96,8 +96,7 @@ Egy app egy rejtett szerver portot %1$d nyitna a Tor hálózatra. Ez biztonságos, ha megbízik az appban. létező Tor folyamat találva... Valami rossz történt. Nézd meg a naplót. - nem olvasható a rejtett szolgáltatás neve - A Tor indítása sikertelen: + A Tor indítása sikertelen: Mindig tartsa az ikont az eszköztáron, ha az Orbot csatlakoztatva van. Mindig-bekapcsolt értesítések Mutassa a bővített értesítést a Tor kilépő országgal és IP-vel @@ -130,7 +129,6 @@ Email küldése Globális (Auto) Rejtett szolgáltatások - Rejtett szolgáltatások Rejtett szolgáltatások Mentés Helyi Port @@ -138,7 +136,6 @@ Név Kész! Cím másolása vágólapra - Azonosító süti megjelenítése Mentő szolgáltatás Szolgáltatás Törlése Külső tárhelyre mentve @@ -149,16 +146,8 @@ Kattintson még egyszer a mentéshez Szolgáltatás típus Azonosító süti - Süti másolása vágólapra - Azonosító süti nem konfigurált Kérlek indítsd újra az Orbot-ot a változások engedélyezéséhez - Kliens sütik .onion - Olvasás QR-ból - Süti mentése - Süti törlése - Süti törlés jóváhagyása - Futtatott szolgáltatások Megosztás QR-ként Kikapcsol Engedélyezés diff --git a/app-tv/src/main/res/values-in/strings.xml b/app-tv/src/main/res/values-in/strings.xml index d9906e11b..e12fa86a9 100644 --- a/app-tv/src/main/res/values-in/strings.xml +++ b/app-tv/src/main/res/values-in/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ menemukan proses Tor yang ada... Sesuatu yang buruk terjadi. Periksa log - tidak dapat membaca nama layanan tersembunyi - Tidak dapat memulai Tor: + Tidak dapat memulai Tor: Selalu pelihara icon dalam toolbar ketika Orbot terhubung Pemberitahuan Selalu-Hidup Tampilkan notifikasi melebar dengan negara dan IP keluar Tor diff --git a/app-tv/src/main/res/values-is/strings.xml b/app-tv/src/main/res/values-is/strings.xml index 0de01a5a1..542f55459 100644 --- a/app-tv/src/main/res/values-is/strings.xml +++ b/app-tv/src/main/res/values-is/strings.xml @@ -96,8 +96,7 @@ Forrit vill opna földu vefgáttina %1$d inn á Tor-netið. Þetta er öruggt ef þú treystir forritinu. fann annað Tor-ferli... Eitthvað slæmt gerðist. Athugaðu atvikakráninguna - get ekki lesið heiti földu þjónustunnar - Get ekki ræst Tor: + Get ekki ræst Tor: Alltaf hafa táknmynd í verkfærastiku þegar Orbot er tengt Alltaf-á tilkynningar Birta útflettar tilkynningar varðandi Tor-útgangsland og IP-vistfang @@ -130,7 +129,6 @@ Senda tölvupóst Víðvært (sjálfvirkt) Faldar þjónustur - Faldar þjónustur Faldar þjónustur Vista Staðvær gátt @@ -138,7 +136,6 @@ Heiti Lokið! Afrita vistfang yfir á klippispjald - Birta auðkenningar-vefköku Öryggisafritunarþjónusta Eyða þjónustu Öryggisafrit var vistað í ytri gagnageymslu @@ -149,16 +146,8 @@ Smelltu aftur fyrir öryggisafrit Tegund þjónustu Auðkenningar-vefkaka - Afrita vefköku á klippispjald - Auðkenningar-vefkaka var ekki stillt Endurræstu Orbot til að breytingarnar taki gildi - Vefkökur forritsins .onion - Lesa úr QR-kóða - Öryggisafrit af vefköku - Eyða vefköku - Staðfestu eyðingu vefköku - Hýstar þjónustur Deila sem QR-kóða Gera óvirkt Virkja diff --git a/app-tv/src/main/res/values-it/strings.xml b/app-tv/src/main/res/values-it/strings.xml index f8509416f..96f07e7cd 100644 --- a/app-tv/src/main/res/values-it/strings.xml +++ b/app-tv/src/main/res/values-it/strings.xml @@ -96,8 +96,7 @@ Un\'app vuole aprire la porta %1$d del server nascosto alla rete Tor. È un\'azione sicura se ti fidi dell\'app. trovato un processo Tor esistente... E\' accaduto un evento indesiderato. Controllare i log. - Impossibile leggere il nome del servizio nascosto. - Impossibile avviare Tor: + Impossibile avviare Tor: Mantieni sempre l\'icona nella barra degli strumenti quando Orbot è connesso. Notifiche sempre attive Visualizza notifica espansa con nazione e ip dell\'nodo d\'uscita Tor @@ -130,7 +129,6 @@ Invia email Globale (Auto) Servizi nascosti - Servizi nascosti Servizi nascosti Salva Porta locale @@ -138,7 +136,6 @@ Nome Fatto! Copia l\'indirizzo negli appunti - Mostra cookie di autenticazione Servizio di backup Elimina il servizio Backup salvato nell\'archiviazione esterna @@ -149,16 +146,8 @@ Clicca ancora per eseguire il backup Tipo di servizio Cookie autenticazione - Copia cookie negli appunti - Cookie di autenticazione non configurato Per favore riavvia Orbot per rendere effettive le modifiche - Cookie del client .onion - Leggi da QR - Backup cookie - Elimina cookie - Conferma eliminazione cookie - Servizi ospitati Condividi come QR Disabilita Abilità diff --git a/app-tv/src/main/res/values-iw/strings.xml b/app-tv/src/main/res/values-iw/strings.xml index 26b18ee73..67b62dbbd 100644 --- a/app-tv/src/main/res/values-iw/strings.xml +++ b/app-tv/src/main/res/values-iw/strings.xml @@ -81,8 +81,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ נמצא תהליך Tor קיים… משהו רע התרחש. בדוק את היומן - לא מסוגל לקרוא שם שירות נסתר - לא מסוגל להתחיל את Tor: + לא מסוגל להתחיל את Tor: לשמור תמיד את האיקון בסרגל כלים כשאורבוט מחובר שפה כבה את Tor כאשר אין חיבור לאינטרנט diff --git a/app-tv/src/main/res/values-ja/strings.xml b/app-tv/src/main/res/values-ja/strings.xml index c64409305..ec092fbc7 100644 --- a/app-tv/src/main/res/values-ja/strings.xml +++ b/app-tv/src/main/res/values-ja/strings.xml @@ -96,8 +96,7 @@ アプリが非公開サーバーポート %1$d をTorネットワークに開放しようとしています。信頼できるアプリであればこれは安全です。 Torプロセスを発見 何かが起こりました。ログを確認してください。 - hidden serviceの名前読込不能 - Torを実行できませんでした + Torを実行できませんでした Orbotが接続中はアイコンを常にツールバーに表示 通知を常に有効化 拡張通知で、Torの出口の国とIPを表示します @@ -130,7 +129,6 @@ メール送信 世界中 (自動) Hidden Services - Hidden Services Hidden Services 保存 ローカルポート @@ -138,7 +136,6 @@ 名前 完了 アドレスをクリップボードにコピー - Cookie 認証を非表示 バックアップサービス サービスを削除 バックアップは外部記憶装置に保存されました @@ -149,16 +146,8 @@ バックアップ作成に再クリック サービスタイプ Cookie 認証 - Cookie をクリップボードにコピー - Authクッキーは設定されませんでした 変更を有効にするにはOrbotを再起動してください - クライアント Cookie .onion - QRコードから読み取り - Cookie をバックアップ - Cookie を削除 - クッキー削除を確認 - ホスト型サービス QR でシェア 無効 有効 diff --git a/app-tv/src/main/res/values-ko/strings.xml b/app-tv/src/main/res/values-ko/strings.xml index bec5cc064..a80836850 100644 --- a/app-tv/src/main/res/values-ko/strings.xml +++ b/app-tv/src/main/res/values-ko/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ 존재하고 있는 Tor 프로세스 발견 어떤 나쁜 것이 발생. 로그 확인하세요. - 히든 서비스 이름을 읽을 수 없음 - Tor 시작 불가능 + Tor 시작 불가능 Orbot이 연결되었을 때 툴바에 아이콘 보이기 항상 켜진 알림 출구 및 IP 정보알림 보이기 diff --git a/app-tv/src/main/res/values-lv/strings.xml b/app-tv/src/main/res/values-lv/strings.xml index 51f936ad7..8ecc351f2 100644 --- a/app-tv/src/main/res/values-lv/strings.xml +++ b/app-tv/src/main/res/values-lv/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ Atrada esošu Tor procesu... Nav labi. Pārbaudiet žurnālu - Nespēj lasīt slēpta pakalpojuma nosaukumu - Nevar startēt Tor: + Nevar startēt Tor: Vienmēr paturēt ikonu rīkjoslā, kad Orbot ir savienots Vienmēr ieslēgtie paziņojumi Rādīt paplašinātus paziņojumus, kur norādīts IP un Tor izejas valsts @@ -122,8 +121,7 @@ Aktivizēt Nosūtīt e-pastu Slēptie pakalpojumi - Slēptie pakalpojumi - Slēptie pakalpojumi + Slēptie pakalpojumi Saglabāt Vārds Lūdzu pārstartējiet Orbot, lai iespējotu izmaiņas diff --git a/app-tv/src/main/res/values-mk/strings.xml b/app-tv/src/main/res/values-mk/strings.xml index c80156644..ecf2e8c97 100644 --- a/app-tv/src/main/res/values-mk/strings.xml +++ b/app-tv/src/main/res/values-mk/strings.xml @@ -96,8 +96,7 @@ Апликација сака да отвори сокриена серверска порта %1$d кон Tor мрежата. Ова е безбедно доколку и верувате на апликацијата. Пронајден постоечки Tor-процес ... Се случи грешка. Проверете го дневникот - не може да се прочита името на скриениот сервис - Tor не може да се стартува: + Tor не може да се стартува: Секогаш чувајте ја иконата во лентата со алатки кога Orbot е поврзан Известувања секогаш вклучени Прикажи проширено известување со излезната држава и IP на Tor @@ -130,7 +129,6 @@ Испратете е-пошта Глобално (Автоматски) Скриени сервиси - Скриени сервиси Скриени сервиси Зачувај Локална порта @@ -138,7 +136,6 @@ Име Завршено! Копирај ја адресата за залепување - Покажи автентично колаче Резервна копија Избриши услуга Резервната копија е снимена на надворешна меморија @@ -149,16 +146,8 @@ Кликни повторно за резервна копија Тип на услуга Автентично колаче - Копирај колаче за залепување - Автентичното колаче не е прилагодено Ве молиме стартувајте го повторно Orbot за да се овозможат промените - Клиентски колачиња .onion - Прочитај од QR - Направи резервна копија на колаче - Избриши колаче - Потврди бришење на колаче - Хостирани услуги Сподели како QR Оневозможи Овозможи diff --git a/app-tv/src/main/res/values-ms-rMY/strings.xml b/app-tv/src/main/res/values-ms-rMY/strings.xml index 071423e60..92e4c0c8d 100644 --- a/app-tv/src/main/res/values-ms-rMY/strings.xml +++ b/app-tv/src/main/res/values-ms-rMY/strings.xml @@ -82,14 +82,12 @@ 3rd-Party-Software: Proses Tor sedia ada ditemui.. Sesuatu yang buruk berlaku. Semak log. - tidak dapat membaca nama servis tersembunyi - Tidak dapat memulakan Tor: + Tidak dapat memulakan Tor: Sentiasa biar ikon pada toolbar apabila Orbot bersambung Sentiasa On Notifikasi Bahasa Perkhidmatan tersembunyi - Perkhidmatan tersembunyi - Perkhidmatan tersembunyi + Perkhidmatan tersembunyi Simpan Nama diff --git a/app-tv/src/main/res/values-ms/strings.xml b/app-tv/src/main/res/values-ms/strings.xml index c72da21c0..92d56d8a1 100644 --- a/app-tv/src/main/res/values-ms/strings.xml +++ b/app-tv/src/main/res/values-ms/strings.xml @@ -75,8 +75,7 @@ 3rd-Party-Software: Proses Tor sedia ada ditemui.. Sesuatu yang buruk berlaku. Semak log. - tidak dapat membaca nama servis tersembunyi - Tidak dapat memulakan Tor: + Tidak dapat memulakan Tor: Sentiasa biar ikon pada toolbar apabila Orbot bersambung Sentiasa On Notifikasi Tetapan Tempatan diff --git a/app-tv/src/main/res/values-my/strings.xml b/app-tv/src/main/res/values-my/strings.xml index f307da9fc..12e4d2b7c 100644 --- a/app-tv/src/main/res/values-my/strings.xml +++ b/app-tv/src/main/res/values-my/strings.xml @@ -23,8 +23,7 @@ အီးေမးလ္ Activate Hidden Services - Hidden Services - Hidden Services + Hidden Services သိမ္းဆည္းပါ အမည် diff --git a/app-tv/src/main/res/values-nb/strings.xml b/app-tv/src/main/res/values-nb/strings.xml index 1a281b9c9..f83f0a711 100644 --- a/app-tv/src/main/res/values-nb/strings.xml +++ b/app-tv/src/main/res/values-nb/strings.xml @@ -93,8 +93,7 @@ OpenSSL v1.0.2j: https://www.openssl.org fant eksisterende Tor-prosess… Noe alvorlig skjedde. Sjekk loggen. - klarte ikke å lese skjult tjenestenavn - Klarte ikke å starte Tor: + Klarte ikke å starte Tor: Alltid behold ikonet i verktøyslinjen når Orbot er tilkoblet Alltid-På -varslinger Vis utvidede merknader med land og IP for utgangstrafikk fra Tor @@ -125,7 +124,6 @@ VPN-modus Send e-post Hidden Services - Hidden Services Hidden Services Lagre Lokalt port @@ -141,15 +139,8 @@ Bekreft sletting av tjeneste Klikk igjen for å sikkerhetskopiere Tjenestetype - Kopier kake til utklippstavle - Gjør omstart av Orbot før endringer trer i kraft - Klientinformasjonskapsler + Gjør omstart av Orbot før endringer trer i kraft .onion - Les fra QR - Sikkerhetskopier informasjonskapsel - Slett informasjonskapsel - Bekreft sletting av informasjonskapsel - Vertstjenester Del som QR Skru av Slå på diff --git a/app-tv/src/main/res/values-nl/strings.xml b/app-tv/src/main/res/values-nl/strings.xml index ad6fa2d54..6e2eab343 100644 --- a/app-tv/src/main/res/values-nl/strings.xml +++ b/app-tv/src/main/res/values-nl/strings.xml @@ -96,8 +96,7 @@ Een app wil de verborgenserverpoort %1$d tot het Tor-netwerk openen. Dit is veilig als je de app vertrouwt. bestaand Tor-proces gevonden… Er is een fout opgetreden. Controleer de log - Kan verborgen dienst-naam niet lezen - Kan Tor niet starten: + Kan Tor niet starten: Houd icoon in taakbalk zolang Orbot verbonden is Meldingen altijd aan Toon uitgebreide melding met Tor-exitland en IP @@ -130,7 +129,6 @@ E-mail versturen Algemeen (automatisch) Verborgen diensten - Verborgen diensten Verborgen diensten Opslaan Lokale poort @@ -138,7 +136,6 @@ Naam Klaar! Adres kopiëren naar klembord - Authenticatiecookie tonen Back-updienst Dienst verwijderen Back-up opgeslagen op externe opslag @@ -149,16 +146,8 @@ Klik opnieuw voor back-up Diensttype Authenticatiecookie - Cookie kopiëren naar klembord - Authenticatiecookie is niet ingesteld Herstart Orbot om de wijzigingen in te schakelen - Cliëntcookies .onion - Lezen van QR-code - Back-up maken van cookie - Cookie verwijderen - Bevestig verwijderen van cookie - Gehoste diensten Delen als QR-code Uitschakelen Inschakelen diff --git a/app-tv/src/main/res/values-pl/strings.xml b/app-tv/src/main/res/values-pl/strings.xml index 65a9d0512..3f58662a0 100644 --- a/app-tv/src/main/res/values-pl/strings.xml +++ b/app-tv/src/main/res/values-pl/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ znaleziono istniejący proces Tora... Coś nie poszło nie tak. Sprawdź logi - uniemożliw czytanie nazw ukrytych serwisów - Nie można wystartować aplikacji Tor: + Nie można wystartować aplikacji Tor: Zawsze trzymaj ikonę w pasku powiadomień gdy Orbot jest połączony Powiadomienia zawsze aktywne Pokaż rozszerzone powiadomienie z krajem Tor exit node oraz jego IP @@ -123,8 +122,7 @@ Tryb VPN Wyślij Email Ukryte Usługi - Ukryte Usługi - Ukryte Usługi + Ukryte Usługi Zapisz Lokalne Porty Nazwa diff --git a/app-tv/src/main/res/values-pt-rBR/strings.xml b/app-tv/src/main/res/values-pt-rBR/strings.xml index f89245390..3073310b8 100644 --- a/app-tv/src/main/res/values-pt-rBR/strings.xml +++ b/app-tv/src/main/res/values-pt-rBR/strings.xml @@ -96,8 +96,7 @@ Um aplicativo precisa abrir uma porta tipo servidor escondida %1$dpara a Rede Tor. Isso é seguro se você confiar nesta aplicação. procurando processos Tor existentes... Algo ruim aconteceu. Cheque o lo - habilitar ler o nome do serviço oculto - Habilitar iniciar o Tor: + Habilitar iniciar o Tor: Sempre manter o ícone na barra de tarefas quando o Orbot está conectado Notificações Sempre Ligadas Mostrar notificação expandida com Tor país de saída e IP @@ -130,7 +129,6 @@ Enviar Email Global (Automático) Serviços Ocultos - Serviços Ocultos Serviços Ocultos Salvar Porta Local @@ -138,8 +136,7 @@ Nome Feito! Copiar para a area de transferência - Mostre cookie de autenticação - Serviço de Backup + Serviço de Backup Remover Serviço Backup salvo em mídia externa Backup Restaurado @@ -148,7 +145,6 @@ Clique novamente para backup Tipo do Serviço Cookie de autenticação - Copiar cookie para a area de transferência Por favor reinicie Orbot para habilitar as mundanças Compartilhar como QR Desabilitar diff --git a/app-tv/src/main/res/values-pt/strings.xml b/app-tv/src/main/res/values-pt/strings.xml index 53f6d956e..ecbd6c126 100644 --- a/app-tv/src/main/res/values-pt/strings.xml +++ b/app-tv/src/main/res/values-pt/strings.xml @@ -60,8 +60,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ encontrado o processo Tor existente... Aconteceu algo de mau. Verifique o registo de eventos. - não é possível ler o nome do serviço ocultado - Não é possível iniciar o Tor: + Não é possível iniciar o Tor: Notificações Sempre Ativadas Notificações Estendidas Idioma @@ -76,8 +75,7 @@ Ativar Enviar Mensagem Serviços ocultos - Serviços ocultos - Serviços ocultos + Serviços ocultos Guardar Nome Concluído! diff --git a/app-tv/src/main/res/values-ro/strings.xml b/app-tv/src/main/res/values-ro/strings.xml index b1a1e322f..71277596b 100644 --- a/app-tv/src/main/res/values-ro/strings.xml +++ b/app-tv/src/main/res/values-ro/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ găsit proces Tor existent... Ceva rău s-a întâmplat. Verifică log-ul - nu am putut citi numele serviciului ascuns - Nu am reuşit să pornesc Tor: + Nu am reuşit să pornesc Tor: Arată tot timpul icoana în bară când Orbot este conectat Notificări active tot timpul Arată notificări extinse cu Tor exit country şi IP @@ -122,8 +121,7 @@ Activează Trimite email Servicii ascunse - Servicii ascunse - Servicii ascunse + Servicii ascunse Salvează Nume Gata! diff --git a/app-tv/src/main/res/values-ru/strings.xml b/app-tv/src/main/res/values-ru/strings.xml index 9f9d7e35f..be0538016 100644 --- a/app-tv/src/main/res/values-ru/strings.xml +++ b/app-tv/src/main/res/values-ru/strings.xml @@ -96,8 +96,7 @@ Приложение хочет открыть скрытый порт сервера %1$d сети Tor. Это безопасно, если вы доверяете данному приложению. найден существующий процесс Tor... Произошла какая-то ошибка. Проверьте журнал. - невозможно прочитать имя скрытой службы - Невозможно запустить Tor: + Невозможно запустить Tor: Всегда отображать иконку в панели задач когда Orbot подключён Постоянное уведомление о работе Показать расширенное уведомление Tor со страной выхода и IP @@ -130,7 +129,6 @@ Отправить письмо Мир (авто) Скрытые службы - Скрытые службы Скрытые службы Сохранить Локальный порт @@ -138,7 +136,6 @@ Имя Готово! Скопировать адрес в буфер обмена - Показать авторизирующие cookie Резервировать службу Удалить службу Резервная копия сохранена на внешнем хранилище @@ -149,16 +146,8 @@ Нажмите ещё раз для резервирования Тип службы Авторизирующие cookie - Копировать cookie в буфер обмена - Авторизирующие cookie не настроены Пожалуйста, перезапустите Orbot для вступления изменения в силу - Cookies клиента .onion - Прочитать из QR-кода - Резервировать cookie - Удалить cookies - Подтвердите удаление cookie - Размещённые службы Поделиться через QR-код Отключить Включить diff --git a/app-tv/src/main/res/values-si-rLK/strings.xml b/app-tv/src/main/res/values-si-rLK/strings.xml index c8a02b232..9f80bb48c 100644 --- a/app-tv/src/main/res/values-si-rLK/strings.xml +++ b/app-tv/src/main/res/values-si-rLK/strings.xml @@ -77,8 +77,7 @@ 3 වන පාර්ශව මෘදුකාංග පවතින Tor ක්‍රියාවලි හමුවිය... යම් නොමනා දෙයක් සිදුවිය. ලොගය පරික්ෂා කර බලන්න - සැගවුණු සේවා නාමය කියවීමට නොහැකිය - Tor ආරම්භ කිරීමට නොහැකිය: + Tor ආරම්භ කිරීමට නොහැකිය: Orbot සම්බන්ධ වී ඇති සැමවිටම විට මෙවලම් තීරුවේ නිරූපකය තබාගන්න නිවේදන ලැබීමට සලස්වන්න භාෂාව @@ -86,8 +85,7 @@ MB ක්‍රියාකරවන්න සැගවුණු සේවා - සැගවුණු සේවා - සැගවුණු සේවා + සැගවුණු සේවා සුරකින්න නම diff --git a/app-tv/src/main/res/values-sk/strings.xml b/app-tv/src/main/res/values-sk/strings.xml index e3f4a6bb4..23e393db1 100644 --- a/app-tv/src/main/res/values-sk/strings.xml +++ b/app-tv/src/main/res/values-sk/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ nájdený iný proces Tor... Deje sa niečo zlé. Skontrolujte podrobnosti. - nemožné prečítať názov skrytej služby - Nemožné spustiť Tor: + Nemožné spustiť Tor: Vždy ponechať ikonu v stavovom riadku, keď je Orbot pripojený Vždy zapnuté upozornenia Zobraziť rozšírené upozornenie s výstupnou krajinou a IP adresou siete Tor diff --git a/app-tv/src/main/res/values-sr/strings.xml b/app-tv/src/main/res/values-sr/strings.xml index b0d47010e..c4b3c1ec1 100644 --- a/app-tv/src/main/res/values-sr/strings.xml +++ b/app-tv/src/main/res/values-sr/strings.xml @@ -94,8 +94,7 @@ Апликација жели да отвори сакривен порт%1$d на серверу за Тор мрежу. Ово је сигуран потез уколико верујете апликацији. нађен покренути Тор процес... Нешто лоше се догодило. Прегледајте логове - нисам у могућности да прочитам име сакривеног сервиса - Тор није у могућности да се покрене: + Тор није у могућности да се покрене: Увек прикажи икону у тулбару када је Орбот конектован Стално укључене нотификације Прикажи опширно обавештење Тор излаза државе и IP-ја @@ -128,7 +127,6 @@ Пошаљи Е-пошту Глобално (Аутоматски) Скривени Сервиси - Скривени Сервиси Скривени Сервиси Сачувај Локални Порт @@ -136,8 +134,7 @@ Име Готово ! Копирај адреса у clipboard - Покажите ауторизовани колачић - Услуга за резервне копије + Услуга за резервне копије Обриши Услугу Резербна копија је сачувана на спољној меморији Резервна копија је обновљена @@ -147,13 +144,7 @@ Кликните поново за резервну копију Тип Услуге Молимо покрените поново Орбот ради примењивања промена - Колачићи клијента .onion - Прочитај са QR кода - Резервна копија колачића - Избриши колачић - Потрврди брисање колачића - Хостоване Услуге Дели као QR код Онемогући Омогући diff --git a/app-tv/src/main/res/values-sv/strings.xml b/app-tv/src/main/res/values-sv/strings.xml index 588238d4b..2ed932e5c 100644 --- a/app-tv/src/main/res/values-sv/strings.xml +++ b/app-tv/src/main/res/values-sv/strings.xml @@ -96,8 +96,7 @@ En app vill öppna dold serverport %1$d till Tor-nätverket. Det här är säkert om du litar på appen. hittade existerande Tor process... Något dåligt hände. Kolla loggen. - kan inte läsa gömda tjänstens namn - Kan inte starta Tor: + Kan inte starta Tor: Behåll alltid ikonen i verktygsfältet när Orbot är ansluten Alltid-På Notifikationer Visa utökad notis med Tors utgångsland och IP @@ -130,7 +129,6 @@ Skicka e-post Global (automatisk) Hidden Services - Hidden Services Hidden Services Spara Lokal port @@ -138,7 +136,6 @@ Namn Klart! Kopiera adress till urklipp - Visa auth kaka Säkerhetskopiera tjänst Ta bort tjänst Säkerhetskopiering sparad i externt lagringsutrymme @@ -149,16 +146,8 @@ Klicka igen för säkerhetskopiering Typ av tjänst Auth kaka - Kopiera kaka till urklipp - Auth kaka var inte konfigurerad Vänligen starta om Orbot för att aktivera ändringarna - Klientkakor .onion - Läs från QR - Säkerhetskopiera kaka - Ta bort kaka - Bekräfta borttagning av kaka - Värdtjänster Dela som QR Inaktivera Aktivera diff --git a/app-tv/src/main/res/values-ta/strings.xml b/app-tv/src/main/res/values-ta/strings.xml index fb6d59d41..e5946e823 100644 --- a/app-tv/src/main/res/values-ta/strings.xml +++ b/app-tv/src/main/res/values-ta/strings.xml @@ -37,11 +37,7 @@ சேமி பெயர் சேவை வகை - நினைவிகளை காப்புப்பிரதிகலெடு - நினைவிகளை ஆழி - நினைவிகளின் நீக்கத்தை உறுதிப்படுத்து - வழங்கப்பட்ட சேவைகள் - QR ஆக பகிர் + QR ஆக பகிர் முடக்கு செயல்படுத்து இணைப்பதில் சிக்கலா ? diff --git a/app-tv/src/main/res/values-th/strings.xml b/app-tv/src/main/res/values-th/strings.xml index a7288a46b..273d08936 100644 --- a/app-tv/src/main/res/values-th/strings.xml +++ b/app-tv/src/main/res/values-th/strings.xml @@ -96,8 +96,7 @@ โปรแกรมต้องการเปิดพอร์ต %1$d ที่ซ่อนอยู่ของเซิร์ฟเวอร์ให้เชื่อมกับเครือข่าย Tor การกระทำนี้ปลอดภัยถ้าคุณเชื่อถือโปรแกรมนั้น พบกระบวนการ Tor ที่มีอยู่แล้ว... เกิดอะไรไม่ดีสักอย่าง ให้ตรวจดูจากบันทึก - ไม่สามารถอ่านชื่อของบริการที่ซ่อน - ไม่สามารถเริ่ม Tor: + ไม่สามารถเริ่ม Tor: แสดงไอคอนในทูลบาร์เสมอเมื่อ Orbot เชื่อมต่ออยู่ การแจ้งเตือนแบบตลอดเวลา แสดงการแจ้งเตือนแบบขยายที่ระบุประเทศปลายทางและ IP ของ Tor @@ -130,7 +129,6 @@ ส่งอีเมล ส่วนรวม (อัตโนมัติ) บริการที่ซ่อน - บริการที่ซ่อน บริการที่ซ่อน บันทึก พอร์ตในเครื่อง @@ -138,7 +136,6 @@ ชื่อเอกสาร เสร็จสิ้น! คัดลอกที่อยู่ลงในคลิปบอร์ด - แสดงคุกกี้ที่ได้รับอนุญาต บริการสำรองข้อมูล บริการลบ ข้อมูลสำรองบันทึกที่ที่เก็บข้อมูลภายนอก @@ -149,16 +146,8 @@ กดอีกครั้งเพื่อเรียกข้อมูลสำรอง ประเภทของบริการ คุกกี้ที่ได้รับอนุญาต - คัดลอกคุกกี้ลงในคลิปบอร์ด - ยังไม่ได้กำหนดค่าคุกกี้ที่ได้รับอนุญาต กรุณาเริ่ม Orbot ใหม่เพื่อให้การเปลี่ยนแปลงใช้งานได้ - คุกกี้ของไคลเอ็นต์ .onion - อ่านจากคิวอาร์ - สำรองข้อมูลคุกกี้ - ลบคุกกี้ - ยืนยันการลบคุกกี้ - บริการโฮสต์ แชร์ในรูปแบบคิวอาร์ ปิดการใช้งาน เปิดใช้งาน diff --git a/app-tv/src/main/res/values-tl/strings.xml b/app-tv/src/main/res/values-tl/strings.xml index ca666b02a..8abd8b0e3 100644 --- a/app-tv/src/main/res/values-tl/strings.xml +++ b/app-tv/src/main/res/values-tl/strings.xml @@ -89,8 +89,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ nakakita ng umiiral na Tor process... May nangyaring masama. Tingnan ang log - hindi mabasa ang pangalan ng tagong serbisyo - Hindi masimulan ang Tor: + Hindi masimulan ang Tor: Palaging panatilihin ang icon sa toolbar kapag ang Orbot ay naka-connect Palaging i-On ang Notifications Ipakita ang pinalaking notification kasama ng Tor exit country at IP diff --git a/app-tv/src/main/res/values-tr/strings.xml b/app-tv/src/main/res/values-tr/strings.xml index 4ecd64b55..e514dad83 100644 --- a/app-tv/src/main/res/values-tr/strings.xml +++ b/app-tv/src/main/res/values-tr/strings.xml @@ -96,8 +96,7 @@ Bir uygulama Tor ağına %1$d gizli sunucu kapısını açmak istiyor. Uygulamaya güveniyorsanız bu işlem güvenlidir. varolan bir Tor işlemi bulundu... Bir şeyler ters gitti. Günlük kayıtlarına bakın - gizli hizmet adı okunamadı - Tor başlatılamadı: + Tor başlatılamadı: Orbot bağlı olduğu sürece simge araç çubuğunda görüntülensin Bildirimler Her Zaman Açık Tor çıkış ülkesi ve IP adresi ile ilgili ayrıntılı bildirim görüntülensin @@ -130,7 +129,6 @@ E-posta Gönder Genel (Otomatik) Gizli Hizmetler - Gizli Hizmetler Gizli Hizmetler Kaydet Yerel Kapı @@ -138,7 +136,6 @@ Ad Tamam! Adresi panoya kopyala - Kimlik doğrulama çerezini görüntüle Hizmeti Yedekle Hizmeti Sil Yedek dış depolamaya kaydedildi @@ -149,16 +146,8 @@ Yedeklemek için yeniden tıklayın Hizmet Türü Kimlik Doğrulama Çerezi - Çerezi panoya kopyala - Kimlik doğrulama çerezi yapılandırılmamış Değişiklikleri etkinleştirmek için Orbot uygulamasını yeniden başlatın - İstemci çerezleri .onion - QR kodundan oku - Çerezi yedekle - Çerezi sil - Çerezi silmeyi onayla - Barındırılan Hizmetler QR Olarak Paylaş Devre Dışı Bırak Etkinleştir diff --git a/app-tv/src/main/res/values-uk/strings.xml b/app-tv/src/main/res/values-uk/strings.xml index 997d01aa5..1da8521bf 100644 --- a/app-tv/src/main/res/values-uk/strings.xml +++ b/app-tv/src/main/res/values-uk/strings.xml @@ -96,8 +96,7 @@ Програма хоче відкрити прихований серверний порт %1$d у мережу Tor. Це безпечно, якщо ви довіряєте застосунку. знайдено існуючий процес Tor... Виникла якась помилка. Перевірте лог - неможливо прочитати ім\'я прихованої служби - Неможливо запустити Tor: + Неможливо запустити Tor: Завжди показувати іконку в панелі завдань коли Orbot підключений Сповіщення про постійну роботу Показати розширене сповіщення з країною виходу Tor та IP @@ -130,7 +129,6 @@ Надіслати листа Глобальний (автоматичний) Приховані Послуги - Приховані Послуги Приховані Послуги Зберегти Місцевий Порт @@ -138,7 +136,6 @@ Ім\'я Зроблено! Скопіювати адресу в буфер обміну - Показати авторизацію реп\'яшків Резервне копіювання Вилучити Сервіс Резервна копія збережена на зовнішній пам\'яті @@ -149,16 +146,8 @@ Ще раз натисніть щоби копіювати в резерв Тип сервісу Авторизація реп\'яшків - Копіювати реп\'яшки в буфер обміну - Авторизація реп\'яшків не налаштована Будь ласка, перезапустіть Orbot, щоб зміни ввійшли в силу - Клієнтські реп\'яшки .onion - Зчитати з QR-коду - Резервне копіювання реп\'яшків - Вилучити реп\'яшки - Підтвердити вилучення реп\'яшків - Розміщені Сервіси Поділитися у виді QR-коду Вимкнути Увімкнути diff --git a/app-tv/src/main/res/values-vi/strings.xml b/app-tv/src/main/res/values-vi/strings.xml index 4b4f9ce61..29be90ed3 100644 --- a/app-tv/src/main/res/values-vi/strings.xml +++ b/app-tv/src/main/res/values-vi/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ tìm ra tiến trình hiện hành của Tor... Có gì đó không ổn. Xin xem lại nhật ký - không thể đọc được tên dịch vụ ẩn - Không thể khởi động Tor được: + Không thể khởi động Tor được: Luôn giữ thông báo trong thanh trạng thái khi Orbot được kết nối Thông báo thường trực Hiển thị thông báo mở rộng với IP và quốc gia của nút cuối (Tor exit-node) diff --git a/app-tv/src/main/res/values-zh-rCN/strings.xml b/app-tv/src/main/res/values-zh-rCN/strings.xml index 0b23feef1..04ea52f44 100644 --- a/app-tv/src/main/res/values-zh-rCN/strings.xml +++ b/app-tv/src/main/res/values-zh-rCN/strings.xml @@ -91,8 +91,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ 发现当前已存在 Tor 进程... 发生错误,请检查日志 - 无法读取隐藏服务名称 - 无法启动 Tor: + 无法启动 Tor: Orbot 连接后始终在通知栏显示图标 始终显示通知 显示扩展的通知,有关 Tor 出口的国家和 IP diff --git a/app-tv/src/main/res/values-zh-rTW/strings.xml b/app-tv/src/main/res/values-zh-rTW/strings.xml index d8e73560c..6edaa889d 100644 --- a/app-tv/src/main/res/values-zh-rTW/strings.xml +++ b/app-tv/src/main/res/values-zh-rTW/strings.xml @@ -96,8 +96,7 @@ 有一個應用要開啟隱藏的伺服器端口 %1$d 到 Tor 網路,如果信得過此應用才進行此操作 發現已有 Tor 程序運行中 ... 發生錯誤。檢視日誌檔 - 無法讀取隱藏服務的名稱 - 無法啟動 Tor: + 無法啟動 Tor: 當 Orbot 連線成功時,總是在工具列顯示它的圖示 總是顯示連線通知 在通知中顯示 Tor 出口點的國家和 IP @@ -130,7 +129,6 @@ 寄送電子信件 全域(自動) 隱藏服務 - 隱藏服務 隱藏服務 儲存 本地端口 @@ -138,7 +136,6 @@ 名稱 已完成! 複製地址到剪貼簿 - 顯示 auth cookie 備份服務 刪除服務 備份檔儲存在外部儲存器 @@ -149,16 +146,8 @@ 再次點選以進行備份 服務類型 Auth cookie - 複製 Cookie 到剪貼簿 - Auth cookie 未設定 請重新啟動 Orbot 來讓設定生效。 - 客戶 cookies .onion - 由 QR 碼讀取 - 備分 cookie - 刪除 cookie - 確認刪除 cookie - 主機的服務 利用 QR 碼分享 關閉 啟用 diff --git a/app-tv/src/main/res/values/strings.xml b/app-tv/src/main/res/values/strings.xml index f4b1ffdbe..e05864007 100644 --- a/app-tv/src/main/res/values/strings.xml +++ b/app-tv/src/main/res/values/strings.xml @@ -104,7 +104,6 @@ An app wants to open onion server port %1$d to the Tor network. This is safe if you trust the app. found existing Tor process… Something bad happened. Check the log - unable to read onion service name Unable to start Tor: Always keep the icon in toolbar when Orbot is connected @@ -166,7 +165,6 @@ Global (Auto) Onion Services - Onion Services Onion Services Save Local Port @@ -174,7 +172,6 @@ Name Done! Copy address to clipboard - Show auth cookie Backup Service Delete Service Backup saved at external storage @@ -185,16 +182,8 @@ Click again for backup Service type Auth cookie - Copy cookie to clipboard - Auth cookie was not configured Please restart Orbot to enable the changes - Client cookies .onion - Read from QR - Backup cookie - Delete cookie - Confirm cookie deletion - Hosted Services Share as QR Disable Enable diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2a98ad6fa..3779e3864 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,15 +93,6 @@ android:label="@string/apps_mode" android:theme="@style/Theme.AppCompat" /> - - - - - - - - @@ -145,11 +127,6 @@ android:name=".ui.onboarding.CustomBridgesActivity" android:label="@string/use_custom_bridges" /> - - - - 0) { - StringTokenizer st = new StringTokenizer(hsPortString, ","); - ContentResolver cr = getContentResolver(); - while (st.hasMoreTokens()) { - int hsPort = Integer.parseInt(st.nextToken().split(" ")[0]); - ContentValues fields = new ContentValues(); - fields.put("name", hsPort); - fields.put("port", hsPort); - fields.put("onion_port", hsPort); - cr.insert(HSContentProvider.CONTENT_URI, fields); - } - - Editor pEdit = mPrefs.edit(); - pEdit.remove("pref_hs_ports"); - pEdit.apply(); - } - } - /** * Called when the activity is first created. */ @@ -245,8 +210,6 @@ public void onCreate(Bundle savedInstanceState) { mPrefs = Prefs.getSharedPrefs(getApplicationContext()); - migratePreferences(); // Migrate old preferences - /* Create the widgets before registering for broadcasts to guarantee * that the widgets exist when the status updates try to update them */ doLayout(); @@ -468,10 +431,6 @@ public boolean onOptionsItemSelected(MenuItem item) { startActivity(new Intent(this, OnionServiceActivity.class)); } else if (item.getItemId() == R.id.menu_v3_onion_client_auth) { startActivity(new Intent(this, ClientAuthActivity.class)); - } else if (item.getItemId() == R.id.menu_hidden_services) { - startActivity(new Intent(this, HiddenServicesActivity.class)); - } else if (item.getItemId() == R.id.menu_client_cookies) { - startActivity(new Intent(this, ClientCookiesActivity.class)); } return super.onOptionsItemSelected(item); @@ -556,125 +515,6 @@ private void enableV3OnionService(int localPort, int onionPort, String name) { stopTor(); Toast.makeText(this, R.string.start_tor_again_for_finish_the_process, Toast.LENGTH_LONG).show(); } - - - - } - - private void enableHiddenServicePortV2(String hsName, final int hsPort, int hsRemotePort, - final String backupToPackage, final Uri hsKeyPath, final Boolean authCookie) { - String onionHostname = null; - - if (hsName == null) - hsName = "hs" + hsPort; - - if (hsRemotePort == -1) - hsRemotePort = hsPort; - - ContentValues fields = new ContentValues(); - fields.put(HSContentProvider.HiddenService.NAME, hsName); - fields.put(HSContentProvider.HiddenService.PORT, hsPort); - fields.put(HSContentProvider.HiddenService.ONION_PORT, hsRemotePort); - fields.put(HSContentProvider.HiddenService.AUTH_COOKIE, authCookie); - - ContentResolver cr = getContentResolver(); - - Cursor row = cr.query( - HSContentProvider.CONTENT_URI, - HSContentProvider.PROJECTION, - HSContentProvider.HiddenService.ONION_PORT + "=" + hsPort, - null, - null - ); - - if (row == null || row.getCount() < 1) { - cr.insert(HSContentProvider.CONTENT_URI, fields); - } else if (row.moveToFirst()) { - onionHostname = row.getString(row.getColumnIndex(HSContentProvider.HiddenService.DOMAIN)); - row.close(); - } - - if (onionHostname == null || onionHostname.length() < 1) { - - if (hsKeyPath != null) { - BackupUtils hsutils = new BackupUtils(getApplicationContext()); - hsutils.restoreKeyBackup(hsPort, hsKeyPath); - } - - if (torStatus.equals(TorServiceConstants.STATUS_OFF)) { - startTor(); - } else { - stopTor(); - Toast.makeText(this, R.string.start_tor_again_for_finish_the_process, Toast.LENGTH_LONG).show(); - } - - new Thread() { - - public void run() { - String hostname = null; - Intent nResult = new Intent(); - - while (hostname == null) { - try { - Thread.sleep(3000); //wait three seconds - } catch (Exception e) { - e.printStackTrace(); - } - - Cursor onion = getContentResolver().query( - HSContentProvider.CONTENT_URI, - HSContentProvider.PROJECTION, - HSContentProvider.HiddenService.ONION_PORT + "=" + hsPort, - null, - null - ); - - if (onion != null && onion.getCount() > 0) { - onion.moveToNext(); - hostname = onion.getString(onion.getColumnIndex(HSContentProvider.HiddenService.DOMAIN)); - - if (hostname == null || hostname.length() < 1) - continue; - - nResult.putExtra("hs_host", hostname); - - if (authCookie) { - nResult.putExtra( - "hs_auth_cookie", - onion.getString(onion.getColumnIndex(HSContentProvider.HiddenService.AUTH_COOKIE_VALUE)) - ); - } - - if (backupToPackage != null && backupToPackage.length() > 0) { - String servicePath = getFilesDir() + "/" + TorServiceConstants.HIDDEN_SERVICES_DIR + "/hs" + hsPort; - File hidden_service_key = new File(servicePath, "private_key"); - Context context = getApplicationContext(); - - Uri contentUri = getUriForFile( - context, - "org.torproject.android.ui.hiddenservices.storage", - hidden_service_key - ); - - context.grantUriPermission(backupToPackage, contentUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); - nResult.setData(contentUri); - nResult.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - } - - onion.close(); - setResult(RESULT_OK, nResult); - finish(); - } - } - } - }.start(); - - } else { - Intent nResult = new Intent(); - nResult.putExtra("hs_host", onionHostname); - setResult(RESULT_OK, nResult); - finish(); - } } private synchronized void handleIntents() { @@ -702,23 +542,6 @@ private synchronized void handleIntents() { .show(); return; - case INTENT_ACTION_REQUEST_HIDDEN_SERVICE: - final int v2hiddenServicePort = intent.getIntExtra("hs_port", -1); - final int v2hiddenServiceRemotePort = intent.getIntExtra("hs_onion_port", -1); - final String v2hiddenServiceName = intent.getStringExtra("hs_name"); - final String v2backupToPackage = intent.getStringExtra("hs_backup_to_package"); - final Boolean v2authCookie = intent.getBooleanExtra("hs_auth_cookie", false); - final Uri v2KeyUri = intent.getData(); - - String v2RequestMsg = getString(R.string.hidden_service_request, v2hiddenServicePort); - new AlertDialog.Builder(this).setMessage(v2RequestMsg) - .setPositiveButton(R.string.allow, (dialog, which) -> enableHiddenServicePortV2( - v2hiddenServiceName, v2hiddenServicePort, - v2hiddenServiceRemotePort, v2backupToPackage, - v2KeyUri, v2authCookie)) - .setNegativeButton(R.string.deny, (d, w) -> d.dismiss()).show(); - return; //don't null the setIntent() as we need it later - case INTENT_ACTION_REQUEST_START_TOR: autoStartFromIntent = true; startTor(); diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/ClientCookiesActivity.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/ClientCookiesActivity.java deleted file mode 100644 index 3e1b60a39..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/ClientCookiesActivity.java +++ /dev/null @@ -1,175 +0,0 @@ -package org.torproject.android.ui.hiddenservices; - -import android.app.AlertDialog; -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.content.Intent; -import android.database.ContentObserver; -import android.database.Cursor; -import android.os.Bundle; -import android.os.Handler; -import android.view.Menu; -import android.view.MenuItem; -import android.widget.ListView; -import android.widget.Toast; - -import androidx.appcompat.app.AppCompatActivity; - -import com.google.zxing.integration.android.IntentIntegrator; -import com.google.zxing.integration.android.IntentResult; - -import org.json.JSONException; -import org.json.JSONObject; -import org.torproject.android.R; -import org.torproject.android.core.DiskUtils; -import org.torproject.android.core.LocaleHelper; -import org.torproject.android.ui.hiddenservices.adapters.ClientCookiesAdapter; -import org.torproject.android.ui.hiddenservices.backup.BackupUtils; -import org.torproject.android.ui.hiddenservices.dialogs.AddCookieDialog; -import org.torproject.android.ui.hiddenservices.dialogs.CookieActionsDialog; -import org.torproject.android.ui.hiddenservices.providers.CookieContentProvider; - -import java.io.File; -import java.util.Locale; - -public class ClientCookiesActivity extends AppCompatActivity { - public static final String BUNDLE_KEY_ID = "_id", - BUNDLE_KEY_DOMAIN = "domain", - BUNDLE_KEY_COOKIE = "auth_cookie_value", - BUNDLE_KEY_ENABLED = "enabled"; - private static final int REQUEST_CODE_READ_COOKIE = 54; - private ContentResolver mResolver; - private ClientCookiesAdapter mAdapter; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.layout_activity_client_cookies); - - setSupportActionBar(findViewById(R.id.toolbar)); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - - mResolver = getContentResolver(); - - findViewById(R.id.fab).setOnClickListener(view -> - new AddCookieDialog().show(getSupportFragmentManager(), AddCookieDialog.class.getSimpleName())); - - mAdapter = new ClientCookiesAdapter(this, mResolver.query(CookieContentProvider.CONTENT_URI, CookieContentProvider.PROJECTION, null, null, null), 0); - - mResolver.registerContentObserver(CookieContentProvider.CONTENT_URI, true, new HSObserver(new Handler())); - - ListView cookies = findViewById(R.id.clien_cookies_list); - cookies.setAdapter(mAdapter); - - cookies.setOnItemClickListener((parent, view, position, id) -> { - Cursor item = (Cursor) parent.getItemAtPosition(position); - - Bundle arguments = new Bundle(); - arguments.putInt(BUNDLE_KEY_ID, item.getInt(item.getColumnIndex(CookieContentProvider.ClientCookie._ID))); - arguments.putString(BUNDLE_KEY_DOMAIN, item.getString(item.getColumnIndex(CookieContentProvider.ClientCookie.DOMAIN))); - arguments.putString(BUNDLE_KEY_COOKIE, item.getString(item.getColumnIndex(CookieContentProvider.ClientCookie.AUTH_COOKIE_VALUE))); - arguments.putInt(BUNDLE_KEY_ENABLED, item.getInt(item.getColumnIndex(CookieContentProvider.ClientCookie.ENABLED))); - - CookieActionsDialog dialog = new CookieActionsDialog(); - dialog.setArguments(arguments); - dialog.show(getSupportFragmentManager(), CookieActionsDialog.class.getSimpleName()); - }); - } - - @Override - protected void attachBaseContext(Context base) { - super.attachBaseContext(LocaleHelper.onAttach(base)); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.cookie_menu, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - - if (id == R.id.cookie_restore_backup) { - if (DiskUtils.supportsStorageAccessFramework()) { - Intent readCookieIntent = DiskUtils.createReadFileIntent("application/json"); - startActivityForResult(readCookieIntent, REQUEST_CODE_READ_COOKIE); - } else { // api 16,17,18 - restoreBackupLegacy(); - } - - } else if (id == R.id.cookie_from_qr) { - IntentIntegrator integrator = new IntentIntegrator(ClientCookiesActivity.this); - integrator.initiateScan(); - } - - return super.onOptionsItemSelected(item); - } - - private void restoreBackupLegacy() { - File backupDir = DiskUtils.getOrCreateLegacyBackupDir(getString(R.string.app_name)); - - try { - File[] files = backupDir.listFiles((dir, name) -> name.toLowerCase(Locale.ENGLISH).endsWith(".json")); - if (files != null) { - if (files.length == 0) { - Toast.makeText(this, R.string.create_a_backup_first, Toast.LENGTH_LONG).show(); - return; - } - - CharSequence[] fileNames = new CharSequence[files.length]; - for (int i = 0; i < files.length; i++) fileNames[i] = files[i].getName(); - - new AlertDialog.Builder(this) - .setItems(fileNames, (dialog, which) -> { - String text = DiskUtils.readFile(mResolver, files[which]); - new BackupUtils(this).restoreCookieBackup(text); - }) - .setTitle(R.string.restore_backup) - .show(); - } - } catch (Exception e) { - Toast.makeText(this, R.string.error, Toast.LENGTH_LONG).show(); - } - } - - @Override - protected void onActivityResult(int request, int response, Intent data) { - super.onActivityResult(request, response, data); - if (request == REQUEST_CODE_READ_COOKIE && response == RESULT_OK) { - String cookieStr = DiskUtils.readFileFromInputStream(mResolver, data.getData()); - new BackupUtils(this).restoreCookieBackup(cookieStr); - } else { - IntentResult scanResult = IntentIntegrator.parseActivityResult(request, response, data); - if (scanResult == null) return; - - String results = scanResult.getContents(); - if (results == null || results.length() < 1) return; - try { - JSONObject savedValues = new JSONObject(results); - ContentValues fields = new ContentValues(); - fields.put(CookieContentProvider.ClientCookie.DOMAIN, savedValues.getString(CookieContentProvider.ClientCookie.DOMAIN)); - fields.put(CookieContentProvider.ClientCookie.AUTH_COOKIE_VALUE, savedValues.getString(CookieContentProvider.ClientCookie.AUTH_COOKIE_VALUE)); - mResolver.insert(CookieContentProvider.CONTENT_URI, fields); - } catch (JSONException e) { - e.printStackTrace(); - Toast.makeText(this, R.string.error, Toast.LENGTH_LONG).show(); - } - } - } - - class HSObserver extends ContentObserver { - HSObserver(Handler handler) { - super(handler); - } - - @Override - public void onChange(boolean selfChange) { - mAdapter.changeCursor(mResolver.query( - CookieContentProvider.CONTENT_URI, CookieContentProvider.PROJECTION, null, null, null - )); - } - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/HiddenServicesActivity.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/HiddenServicesActivity.java deleted file mode 100644 index 147c4e7e8..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/HiddenServicesActivity.java +++ /dev/null @@ -1,194 +0,0 @@ -package org.torproject.android.ui.hiddenservices; - -import android.content.ContentResolver; -import android.content.Context; -import android.content.Intent; -import android.database.ContentObserver; -import android.database.Cursor; -import android.os.Bundle; -import android.os.Handler; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.ListView; -import android.widget.RadioButton; -import android.widget.Toast; - -import androidx.appcompat.app.AlertDialog; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; - -import com.google.android.material.floatingactionbutton.FloatingActionButton; - -import org.torproject.android.R; -import org.torproject.android.core.DiskUtils; -import org.torproject.android.core.LocaleHelper; -import org.torproject.android.ui.hiddenservices.adapters.OnionListAdapter; -import org.torproject.android.ui.hiddenservices.backup.BackupUtils; -import org.torproject.android.ui.hiddenservices.backup.ZipUtilities; -import org.torproject.android.ui.hiddenservices.dialogs.HSActionsDialog; -import org.torproject.android.ui.hiddenservices.dialogs.HSDataDialog; -import org.torproject.android.ui.hiddenservices.permissions.PermissionManager; -import org.torproject.android.ui.hiddenservices.providers.HSContentProvider; - -import java.io.File; -import java.util.Locale; - -public class HiddenServicesActivity extends AppCompatActivity { - public static final String BUNDLE_KEY_ID = "_id", - BUNDLE_KEY_PORT = "port", - BUNDLE_KEY_ONION = "onion", - BUNDLE_KEY_AUTH_COOKIE = "auth_cookie", - BUNDLE_KEY_AUTH_COOKIE_VALUE = "auth_cookie_value", - BUNDLE_KEY_PATH = "path"; - private static final int REQUEST_CODE_READ_ZIP_BACKUP = 125; - private static final String BUNDLE_KEY_SHOW_USER_SERVICES = "show_user_services"; - private ContentResolver mResolver; - private OnionListAdapter mAdapter; - private RadioButton radioShowUserServices; - private FloatingActionButton fab; - private String mWhere = HSContentProvider.HiddenService.CREATED_BY_USER + "=1"; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.layout_hs_list_view); - radioShowUserServices = findViewById(R.id.radioUserServices); - RadioButton radioShowAppServices = findViewById(R.id.radioAppServices); - - Toolbar toolbar = findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - - mResolver = getContentResolver(); - - fab = findViewById(R.id.fab); - fab.setOnClickListener(view -> new HSDataDialog().show(getSupportFragmentManager(), HSDataDialog.class.getSimpleName())); - - mAdapter = new OnionListAdapter(this, mResolver.query(HSContentProvider.CONTENT_URI, HSContentProvider.PROJECTION, mWhere, null, null), 0); - mResolver.registerContentObserver(HSContentProvider.CONTENT_URI, true, new HSObserver(new Handler())); - - ListView onion_list = findViewById(R.id.onion_list); - boolean selectUserServices = savedInstanceState == null || savedInstanceState.getBoolean(BUNDLE_KEY_SHOW_USER_SERVICES); - if (selectUserServices) radioShowUserServices.setChecked(true); - else radioShowAppServices.setChecked(true); - filterServices(selectUserServices); - onion_list.setAdapter(mAdapter); - - onion_list.setOnItemClickListener((parent, view, position, id) -> { - Cursor item = (Cursor) parent.getItemAtPosition(position); - - Bundle arguments = new Bundle(); - arguments.putInt(BUNDLE_KEY_ID, item.getInt(item.getColumnIndex(HSContentProvider.HiddenService._ID))); - arguments.putString(BUNDLE_KEY_PORT, item.getString(item.getColumnIndex(HSContentProvider.HiddenService.PORT))); - arguments.putString(BUNDLE_KEY_ONION, item.getString(item.getColumnIndex(HSContentProvider.HiddenService.DOMAIN))); - arguments.putInt(BUNDLE_KEY_AUTH_COOKIE, item.getInt(item.getColumnIndex(HSContentProvider.HiddenService.AUTH_COOKIE))); - arguments.putString(BUNDLE_KEY_AUTH_COOKIE_VALUE, item.getString(item.getColumnIndex(HSContentProvider.HiddenService.AUTH_COOKIE_VALUE))); - arguments.putString(BUNDLE_KEY_PATH, item.getString(item.getColumnIndex(HSContentProvider.HiddenService.PATH))); - - HSActionsDialog dialog = new HSActionsDialog(); - dialog.setArguments(arguments); - dialog.show(getSupportFragmentManager(), HSActionsDialog.class.getSimpleName()); - }); - } - - @Override - protected void onSaveInstanceState(Bundle icicle) { - super.onSaveInstanceState(icicle); - icicle.putBoolean(BUNDLE_KEY_SHOW_USER_SERVICES, radioShowUserServices.isChecked()); - } - - @Override - protected void attachBaseContext(Context base) { - super.attachBaseContext(LocaleHelper.onAttach(base)); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.hs_menu, menu); - return true; - } - - private void doRestoreLegacy() { // API 16, 17, 18 - File backupDir = DiskUtils.getOrCreateLegacyBackupDir(getString(R.string.app_name)); - File[] files = backupDir.listFiles(ZipUtilities.FILTER_ZIP_FILES); - if (files != null) { - if (files.length == 0) { - Toast.makeText(this, R.string.create_a_backup_first, Toast.LENGTH_LONG).show(); - return; - } - - CharSequence[] fileNames = new CharSequence[files.length]; - for (int i = 0; i < files.length; i++) fileNames[i] = files[i].getName(); - - new AlertDialog.Builder(this) - .setTitle(R.string.restore_backup) - .setItems(fileNames, (dialog, which) -> new BackupUtils(this).restoreZipBackupV2Legacy(files[which])) - .show(); - - } - } - - @Override - protected void onActivityResult(int request, int response, Intent data) { - super.onActivityResult(request, response, data); - if (request == REQUEST_CODE_READ_ZIP_BACKUP) { - if (response != RESULT_OK) return; - BackupUtils backupUtils = new BackupUtils(this); - backupUtils.restoreZipBackupV2(data.getData()); - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == R.id.menu_restore_backup) { - if (DiskUtils.supportsStorageAccessFramework()) { - Intent readFile = DiskUtils.createReadFileIntent(ZipUtilities.ZIP_MIME_TYPE); - startActivityForResult(readFile, REQUEST_CODE_READ_ZIP_BACKUP); - } else { // API 16, 17, 18 - doRestoreLegacy(); - } - } - - return super.onOptionsItemSelected(item); - } - - private void filterServices(boolean showUserServices) { - if (showUserServices) { - mWhere = HSContentProvider.HiddenService.CREATED_BY_USER + "=1"; - fab.show(); - } else { - mWhere = HSContentProvider.HiddenService.CREATED_BY_USER + "=0"; - fab.hide(); - } - mAdapter.changeCursor(mResolver.query(HSContentProvider.CONTENT_URI, HSContentProvider.PROJECTION, mWhere, null, null)); - } - - public void onRadioButtonClick(View view) { - if (view.getId() == R.id.radioUserServices) { - filterServices(true); - } else if (view.getId() == R.id.radioAppServices) { - filterServices(false); - } - } - - class HSObserver extends ContentObserver { - HSObserver(Handler handler) { - super(handler); - } - - @Override - public void onChange(boolean selfChange) { - mAdapter.changeCursor(mResolver.query(HSContentProvider.CONTENT_URI, HSContentProvider.PROJECTION, mWhere, null, null)); - if (!PermissionManager.isLollipopOrHigher()) return; - Cursor active = mResolver.query(HSContentProvider.CONTENT_URI, HSContentProvider.PROJECTION, HSContentProvider.HiddenService.ENABLED + "=1", null, null); - if (active == null) return; - if (active.getCount() > 0) // Call only if there running services - PermissionManager.requestBatteryPermissions(HiddenServicesActivity.this, getApplicationContext()); - else // Drop whe not needed - PermissionManager.requestDropBatteryPermissions(HiddenServicesActivity.this, getApplicationContext()); - - active.close(); - } - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/adapters/ClientCookiesAdapter.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/adapters/ClientCookiesAdapter.java deleted file mode 100644 index d40fa34db..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/adapters/ClientCookiesAdapter.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.torproject.android.ui.hiddenservices.adapters; - -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; - -import androidx.appcompat.widget.SwitchCompat; -import androidx.cursoradapter.widget.CursorAdapter; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import android.widget.Toast; -import org.torproject.android.R; -import org.torproject.android.ui.hiddenservices.providers.CookieContentProvider; - -public class ClientCookiesAdapter extends CursorAdapter { - private LayoutInflater cursorInflater; - - public ClientCookiesAdapter(Context context, Cursor c, int flags) { - super(context, c, flags); - cursorInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - } - - @Override - public void bindView(View view, Context context, Cursor cursor) { - final Context mContext = context; - int id = cursor.getInt(cursor.getColumnIndex(CookieContentProvider.ClientCookie._ID)); - final String where = CookieContentProvider.ClientCookie._ID + "=" + id; - - TextView domain = view.findViewById(R.id.cookie_onion); - domain.setText(cursor.getString(cursor.getColumnIndex(CookieContentProvider.ClientCookie.DOMAIN))); - - SwitchCompat enabled = view.findViewById(R.id.cookie_switch); - enabled.setChecked(cursor.getInt(cursor.getColumnIndex(CookieContentProvider.ClientCookie.ENABLED)) == 1); - - enabled.setOnCheckedChangeListener((buttonView, isChecked) -> { - ContentResolver resolver = mContext.getContentResolver(); - ContentValues fields = new ContentValues(); - fields.put(CookieContentProvider.ClientCookie.ENABLED, isChecked); - resolver.update(CookieContentProvider.CONTENT_URI, fields, where, null); - - Toast.makeText(mContext, R.string.please_restart_Orbot_to_enable_the_changes, Toast.LENGTH_LONG).show(); - }); - } - - @Override - public View newView(Context context, Cursor cursor, ViewGroup parent) { - return cursorInflater.inflate(R.layout.layout_client_cookie_list_item, parent, false); - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/adapters/OnionListAdapter.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/adapters/OnionListAdapter.java deleted file mode 100644 index c925fb205..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/adapters/OnionListAdapter.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.torproject.android.ui.hiddenservices.adapters; - -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import android.widget.Toast; - -import androidx.appcompat.widget.SwitchCompat; -import androidx.cursoradapter.widget.CursorAdapter; - -import org.torproject.android.R; -import org.torproject.android.ui.hiddenservices.providers.HSContentProvider; - -public class OnionListAdapter extends CursorAdapter { - private LayoutInflater cursorInflater; - - public OnionListAdapter(Context context, Cursor c, int flags) { - super(context, c, flags); - cursorInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - } - - @Override - public void bindView(View view, final Context context, Cursor cursor) { - int id = cursor.getInt(cursor.getColumnIndex(HSContentProvider.HiddenService._ID)); - final String where = HSContentProvider.HiddenService._ID + "=" + id; - - TextView port = view.findViewById(R.id.hs_port); - port.setText(String.format("%s\n%s", context.getString(R.string.local_port), - cursor.getString(cursor.getColumnIndex(HSContentProvider.HiddenService.PORT)))); - TextView onionPort = view.findViewById(R.id.onion_port); - onionPort.setText(String.format("%s\n%s", context.getString(R.string.onion_port), - cursor.getString(cursor.getColumnIndex(HSContentProvider.HiddenService.ONION_PORT)))); - TextView name = view.findViewById(R.id.hs_name); - name.setText(cursor.getString(cursor.getColumnIndex(HSContentProvider.HiddenService.NAME))); - TextView domain = view.findViewById(R.id.hs_onion); - domain.setText(cursor.getString(cursor.getColumnIndex(HSContentProvider.HiddenService.DOMAIN))); - - SwitchCompat enabled = view.findViewById(R.id.hs_switch); - enabled.setChecked(cursor.getInt(cursor.getColumnIndex(HSContentProvider.HiddenService.ENABLED)) == 1); - enabled.setOnCheckedChangeListener((buttonView, isChecked) -> { - ContentResolver resolver = context.getContentResolver(); - ContentValues fields = new ContentValues(); - fields.put(HSContentProvider.HiddenService.ENABLED, isChecked); - resolver.update(HSContentProvider.CONTENT_URI, fields, where, null); - - Toast.makeText(context, R.string.please_restart_Orbot_to_enable_the_changes, Toast.LENGTH_LONG).show(); - }); - } - - @Override - public View newView(Context context, Cursor cursor, ViewGroup parent) { - return cursorInflater.inflate(R.layout.layout_hs_list_item, parent, false); - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/backup/BackupUtils.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/backup/BackupUtils.java deleted file mode 100644 index 64ca1e8da..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/backup/BackupUtils.java +++ /dev/null @@ -1,388 +0,0 @@ -package org.torproject.android.ui.hiddenservices.backup; - -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.net.Uri; -import android.os.ParcelFileDescriptor; -import android.provider.OpenableColumns; -import android.widget.Toast; - -import org.json.JSONException; -import org.json.JSONObject; -import org.torproject.android.R; -import org.torproject.android.service.OrbotService; -import org.torproject.android.service.TorServiceConstants; -import org.torproject.android.ui.hiddenservices.providers.CookieContentProvider; -import org.torproject.android.ui.hiddenservices.providers.HSContentProvider; -import org.torproject.android.ui.v3onionservice.OnionServiceContentProvider; -import org.torproject.android.ui.v3onionservice.clientauth.ClientAuthContentProvider; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.MappedByteBuffer; -import java.nio.channels.FileChannel; -import java.nio.charset.Charset; - -public class BackupUtils { - private static final String configFileName = "config.json"; - private final Context mContext; - private final ContentResolver mResolver; - - public BackupUtils(Context context) { - mContext = context; - mResolver = mContext.getContentResolver(); - } - - public String createV3ZipBackup(String port, String relativePath, Uri zipFile) { - String[] files = createFilesForZippingV3(relativePath); - ZipUtilities zip = new ZipUtilities(files, zipFile, mResolver); - if (!zip.zip()) return null; - return zipFile.getPath(); - } - - public String createV3AuthBackup(String domain, String keyHash, Uri backupFile) { - String fileText = OrbotService.buildV3ClientAuthFile(domain, keyHash); - try { - ParcelFileDescriptor pfd = mContext.getContentResolver().openFileDescriptor(backupFile, "w"); - FileOutputStream fos = new FileOutputStream(pfd.getFileDescriptor()); - fos.write(fileText.getBytes()); - fos.close(); - pfd.close(); - } catch (IOException ioe) { - return null; - } - return backupFile.getPath(); - } - - public String createV2ZipBackup(int port, String relativePath, Uri zipFile) { - String[] files = createFilesForZippingV2(relativePath); - ZipUtilities zip = new ZipUtilities(files, zipFile, mResolver); - - if (!zip.zip()) - return null; - - return zipFile.getPath(); - } - - // todo this doesn't export data for onions that orbot hosts which have authentication (not supported yet...) - private String[] createFilesForZippingV3(String relativePath) { - final String v3BasePath = getV3BasePath() + "/" + relativePath + "/"; - final String hostnamePath = v3BasePath + "hostname", - configFilePath = v3BasePath + configFileName, - privKeyPath = v3BasePath + "hs_ed25519_secret_key", - pubKeyPath = v3BasePath + "hs_ed25519_public_key"; - - Cursor portData = mResolver.query(OnionServiceContentProvider.CONTENT_URI, OnionServiceContentProvider.PROJECTION, - OnionServiceContentProvider.OnionService.PATH + "=\"" + relativePath + "\"", null, null); - - JSONObject config = new JSONObject(); - try { - if (portData == null || portData.getCount() != 1) - return null; - portData.moveToNext(); - - - config.put(OnionServiceContentProvider.OnionService.NAME, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.NAME))); - config.put(OnionServiceContentProvider.OnionService.PORT, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.PORT))); - config.put(OnionServiceContentProvider.OnionService.ONION_PORT, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.ONION_PORT))); - config.put(OnionServiceContentProvider.OnionService.DOMAIN, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.DOMAIN))); - config.put(OnionServiceContentProvider.OnionService.CREATED_BY_USER, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.CREATED_BY_USER))); - config.put(OnionServiceContentProvider.OnionService.ENABLED, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.ENABLED))); - - portData.close(); - - FileWriter fileWriter = new FileWriter(configFilePath); - fileWriter.write(config.toString()); - fileWriter.close(); - } catch (JSONException | IOException ioe) { - ioe.printStackTrace(); - return null; - } - - return new String[]{hostnamePath, configFilePath, privKeyPath, pubKeyPath}; - } - - private String[] createFilesForZippingV2(String relativePath) { - final String hsBasePath = getHSBasePath() + "/" + relativePath + "/"; - String configFilePath = hsBasePath + configFileName; - String hostnameFilePath = hsBasePath + "hostname"; - String keyFilePath = hsBasePath + "private_key"; - - Cursor portData = mResolver.query( - HSContentProvider.CONTENT_URI, - HSContentProvider.PROJECTION, - HSContentProvider.HiddenService.PATH + "=\"" + relativePath + "\"", - null, - null - ); - - JSONObject config = new JSONObject(); - try { - if (portData == null || portData.getCount() != 1) - return null; - - portData.moveToNext(); - - config.put(HSContentProvider.HiddenService.NAME, portData.getString(portData.getColumnIndex(HSContentProvider.HiddenService.NAME))); - config.put(HSContentProvider.HiddenService.PORT, portData.getInt(portData.getColumnIndex(HSContentProvider.HiddenService.PORT))); - config.put(HSContentProvider.HiddenService.ONION_PORT, portData.getInt(portData.getColumnIndex(HSContentProvider.HiddenService.ONION_PORT))); - config.put(HSContentProvider.HiddenService.DOMAIN, portData.getString(portData.getColumnIndex(HSContentProvider.HiddenService.DOMAIN))); - config.put(HSContentProvider.HiddenService.AUTH_COOKIE, portData.getInt(portData.getColumnIndex(HSContentProvider.HiddenService.AUTH_COOKIE))); - config.put(HSContentProvider.HiddenService.AUTH_COOKIE_VALUE, portData.getString(portData.getColumnIndex(HSContentProvider.HiddenService.AUTH_COOKIE_VALUE))); - config.put(HSContentProvider.HiddenService.CREATED_BY_USER, portData.getInt(portData.getColumnIndex(HSContentProvider.HiddenService.CREATED_BY_USER))); - config.put(HSContentProvider.HiddenService.ENABLED, portData.getInt(portData.getColumnIndex(HSContentProvider.HiddenService.ENABLED))); - } catch (JSONException | NullPointerException e) { - e.printStackTrace(); - return null; - } - - portData.close(); - - try { - FileWriter file = new FileWriter(configFilePath); - file.write(config.toString()); - file.close(); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - return new String[]{hostnameFilePath, keyFilePath, configFilePath}; - } - - private void extractConfigFromUnzippedBackupV3(String backupName) { - File v3BasePath = getV3BasePath(); - String v3Dir = backupName.substring(0, backupName.lastIndexOf('.')); - String configFilePath = v3BasePath + "/" + v3Dir + "/" + configFileName; - File v3Path = new File(v3BasePath.getAbsolutePath(), v3Dir); - if (!v3Path.isDirectory()) v3Path.mkdirs(); - - File configFile = new File(configFilePath); - try { - FileInputStream fis = new FileInputStream(configFile); - FileChannel fc = fis.getChannel(); - MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); - String jsonString = Charset.defaultCharset().decode(bb).toString(); - JSONObject savedValues = new JSONObject(jsonString); - ContentValues fields = new ContentValues(); - - int port = savedValues.getInt(OnionServiceContentProvider.OnionService.PORT); - fields.put(OnionServiceContentProvider.OnionService.PORT, port); - fields.put(OnionServiceContentProvider.OnionService.NAME, savedValues.getString(OnionServiceContentProvider.OnionService.NAME)); - fields.put(OnionServiceContentProvider.OnionService.ONION_PORT, savedValues.getInt(OnionServiceContentProvider.OnionService.ONION_PORT)); - fields.put(OnionServiceContentProvider.OnionService.DOMAIN, savedValues.getString(OnionServiceContentProvider.OnionService.DOMAIN)); - fields.put(OnionServiceContentProvider.OnionService.CREATED_BY_USER, savedValues.getInt(OnionServiceContentProvider.OnionService.CREATED_BY_USER)); - fields.put(OnionServiceContentProvider.OnionService.ENABLED, savedValues.getInt(OnionServiceContentProvider.OnionService.ENABLED)); - - Cursor dbService = mResolver.query(OnionServiceContentProvider.CONTENT_URI, OnionServiceContentProvider.PROJECTION, - OnionServiceContentProvider.OnionService.PORT + "=" + port, null, null); - if (dbService == null || dbService.getCount() == 0) - mResolver.insert(OnionServiceContentProvider.CONTENT_URI, fields); - else - mResolver.update(OnionServiceContentProvider.CONTENT_URI, fields, OnionServiceContentProvider.OnionService.PORT + "=" + port, null); - dbService.close(); - - configFile.delete(); - if (v3Path.renameTo(new File(v3BasePath, "/v3" + port))) { - Toast.makeText(mContext, R.string.backup_restored, Toast.LENGTH_LONG).show(); - } else { - // collision, clean up files - for (File file : v3Path.listFiles()) - file.delete(); - v3Path.delete(); - Toast.makeText(mContext, mContext.getString(R.string.backup_port_exist, port), Toast.LENGTH_LONG).show(); - } - } catch (IOException | JSONException e) { - e.printStackTrace(); - Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); - } - } - - private void extractConfigFromUnzippedBackupV2(String backupName) { - File mHSBasePath = getHSBasePath(); - int port; - String hsDir = backupName.substring(0, backupName.lastIndexOf('.')); - String configFilePath = mHSBasePath + "/" + hsDir + "/" + configFileName; - String jString; - - File hsPath = new File(mHSBasePath.getAbsolutePath(), hsDir); - if (!hsPath.isDirectory()) - hsPath.mkdirs(); - - File config = new File(configFilePath); - FileInputStream stream; - - try { - stream = new FileInputStream(config); - FileChannel fc = stream.getChannel(); - MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); - jString = Charset.defaultCharset().decode(bb).toString(); - stream.close(); - - JSONObject savedValues = new JSONObject(jString); - ContentValues fields = new ContentValues(); - - fields.put(HSContentProvider.HiddenService.NAME, savedValues.getString(HSContentProvider.HiddenService.NAME)); - fields.put(HSContentProvider.HiddenService.ONION_PORT, savedValues.getInt(HSContentProvider.HiddenService.ONION_PORT)); - fields.put(HSContentProvider.HiddenService.DOMAIN, savedValues.getString(HSContentProvider.HiddenService.DOMAIN)); - fields.put(HSContentProvider.HiddenService.AUTH_COOKIE, savedValues.getInt(HSContentProvider.HiddenService.AUTH_COOKIE)); - fields.put(HSContentProvider.HiddenService.CREATED_BY_USER, savedValues.getInt(HSContentProvider.HiddenService.CREATED_BY_USER)); - fields.put(HSContentProvider.HiddenService.ENABLED, savedValues.getInt(HSContentProvider.HiddenService.ENABLED)); - - port = savedValues.getInt(HSContentProvider.HiddenService.PORT); - fields.put(HSContentProvider.HiddenService.PORT, port); - - Cursor service = mResolver.query( - HSContentProvider.CONTENT_URI, - HSContentProvider.PROJECTION, - HSContentProvider.HiddenService.PORT + "=" + port, - null, - null - ); - - if (service == null || service.getCount() == 0) { - mResolver.insert(HSContentProvider.CONTENT_URI, fields); - } else { - mResolver.update( - HSContentProvider.CONTENT_URI, - fields, - HSContentProvider.HiddenService.PORT + "=" + port, - null - ); - - service.close(); - } - Toast.makeText(mContext, R.string.backup_restored, Toast.LENGTH_LONG).show(); - } catch (IOException | JSONException e) { - e.printStackTrace(); - Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); - } - } - - private File getHSBasePath() { - return new File(mContext.getFilesDir().getAbsolutePath(), TorServiceConstants.HIDDEN_SERVICES_DIR); - } - - private File getV3BasePath() { - return new File(mContext.getFilesDir().getAbsolutePath(), TorServiceConstants.ONION_SERVICES_DIR); - } - - public void restoreZipBackupV2Legacy(File zipFile) { - String backupName = zipFile.getName(); - ZipUtilities zip = new ZipUtilities(null, null, mResolver); - String hsDir = backupName.substring(0, backupName.lastIndexOf('.')); - File hsPath = new File(getHSBasePath().getAbsolutePath(), hsDir); - if (zip.unzipLegacy(hsPath.getAbsolutePath(), zipFile)) - extractConfigFromUnzippedBackupV2(backupName); - else - Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); - } - - public void restoreZipBackupV3Legacy(File zipFile) { - String backupName = zipFile.getName(); - ZipUtilities zip = new ZipUtilities(null, null, mResolver); - String v3Dir = backupName.substring(0, backupName.lastIndexOf('.')); - File v3Path = new File(getV3BasePath().getAbsolutePath(), v3Dir); - if (zip.unzipLegacy(v3Path.getAbsolutePath(), zipFile)) - extractConfigFromUnzippedBackupV3(backupName); - else - Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); - } - - - public void restoreZipBackupV2(Uri zipUri) { - Cursor returnCursor = mResolver.query(zipUri, null, null, null, null); - int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); - returnCursor.moveToFirst(); - String backupName = returnCursor.getString(nameIndex); - returnCursor.close(); - - String hsDir = backupName.substring(0, backupName.lastIndexOf('.')); - File hsPath = new File(getHSBasePath().getAbsolutePath(), hsDir); - if (new ZipUtilities(null, zipUri, mResolver).unzip(hsPath.getAbsolutePath())) - extractConfigFromUnzippedBackupV2(backupName); - else - Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); - } - - public void restoreZipBackupV3(Uri zipUri) { - Cursor returnCursor = mResolver.query(zipUri, null, null, null, null); - int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); - returnCursor.moveToFirst(); - String backupName = returnCursor.getString(nameIndex); - returnCursor.close(); - - String v3Dir = backupName.substring(0, backupName.lastIndexOf('.')); - File v3Path = new File(getV3BasePath().getAbsolutePath(), v3Dir); - if (new ZipUtilities(null, zipUri, mResolver).unzip(v3Path.getAbsolutePath())) - extractConfigFromUnzippedBackupV3(backupName); - else - Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); - } - - public void restoreKeyBackup(int hsPort, Uri hsKeyPath) { - File mHSBasePath = new File( - mContext.getFilesDir().getAbsolutePath(), - TorServiceConstants.HIDDEN_SERVICES_DIR - ); - - File serviceDir = new File(mHSBasePath, "hs" + hsPort); - - if (!serviceDir.isDirectory()) - serviceDir.mkdirs(); - - try { - ParcelFileDescriptor mInputPFD = mContext.getContentResolver().openFileDescriptor(hsKeyPath, "r"); - InputStream fileStream = new FileInputStream(mInputPFD.getFileDescriptor()); - OutputStream file = new FileOutputStream(serviceDir.getAbsolutePath() + "/private_key"); - - byte[] buffer = new byte[1024]; - int length; - while ((length = fileStream.read(buffer)) > 0) { - file.write(buffer, 0, length); - } - file.close(); - - } catch (IOException | NullPointerException e) { - e.printStackTrace(); - } - } - - - public void restoreClientAuthBackup(String authFileContents) { - ContentValues fields = new ContentValues(); - String[] split = authFileContents.split(":"); - if (split.length != 4) { - Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); - return; - } - fields.put(ClientAuthContentProvider.V3ClientAuth.DOMAIN, split[0]); - fields.put(ClientAuthContentProvider.V3ClientAuth.HASH, split[3]); - mResolver.insert(ClientAuthContentProvider.CONTENT_URI, fields); - Toast.makeText(mContext, R.string.backup_restored, Toast.LENGTH_LONG).show(); - } - - public void restoreCookieBackup(String jString) { - try { - JSONObject savedValues = new JSONObject(jString); - ContentValues fields = new ContentValues(); - - fields.put(CookieContentProvider.ClientCookie.DOMAIN, savedValues.getString(CookieContentProvider.ClientCookie.DOMAIN)); - fields.put(CookieContentProvider.ClientCookie.AUTH_COOKIE_VALUE, savedValues.getString(CookieContentProvider.ClientCookie.AUTH_COOKIE_VALUE)); - fields.put(CookieContentProvider.ClientCookie.ENABLED, savedValues.getInt(CookieContentProvider.ClientCookie.ENABLED)); - - mResolver.insert(CookieContentProvider.CONTENT_URI, fields); - Toast.makeText(mContext, R.string.backup_restored, Toast.LENGTH_LONG).show(); - - } catch (JSONException e) { - e.printStackTrace(); - Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); - } - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/database/HSDatabase.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/database/HSDatabase.java deleted file mode 100644 index d9a398bd6..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/database/HSDatabase.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.torproject.android.ui.hiddenservices.database; - - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; - -public class HSDatabase extends SQLiteOpenHelper { - - public static final String HS_DATA_TABLE_NAME = "hs_data"; - public static final String HS_CLIENT_COOKIE_TABLE_NAME = "hs_client_cookie"; - private static final int DATABASE_VERSION = 4; - private static final String DATABASE_NAME = "hidden_services"; - private static final String HS_DATA_TABLE_CREATE = - "CREATE TABLE " + HS_DATA_TABLE_NAME + " (" + - "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + - "name TEXT, " + - "domain TEXT, " + - "onion_port INTEGER, " + - "auth_cookie INTEGER DEFAULT 0, " + - "auth_cookie_value TEXT, " + - "created_by_user INTEGER DEFAULT 0, " + - "enabled INTEGER DEFAULT 1, " + - "port INTEGER, " + - "filepath TEXT);"; - - private static final String HS_CLIENT_COOKIE_TABLE_CREATE = - "CREATE TABLE " + HS_CLIENT_COOKIE_TABLE_NAME + " (" + - "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + - "domain TEXT, " + - "auth_cookie_value TEXT, " + - "enabled INTEGER DEFAULT 1);"; - - public HSDatabase(Context context) { - super(context, DATABASE_NAME, null, DATABASE_VERSION); - } - - @Override - public void onCreate(SQLiteDatabase db) { - db.execSQL(HS_DATA_TABLE_CREATE); - db.execSQL(HS_CLIENT_COOKIE_TABLE_CREATE); - } - - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - if (newVersion > oldVersion) { - db.execSQL("ALTER TABLE " + HS_DATA_TABLE_NAME + " ADD COLUMN filepath TEXT"); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/AddCookieDialog.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/AddCookieDialog.java deleted file mode 100644 index 1da1d1e44..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/AddCookieDialog.java +++ /dev/null @@ -1,95 +0,0 @@ -package org.torproject.android.ui.hiddenservices.dialogs; - -import android.app.Dialog; -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.os.Bundle; -import android.text.Editable; -import android.text.TextUtils; -import android.text.TextWatcher; -import android.view.View; -import android.widget.EditText; -import android.widget.Toast; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; - -import org.torproject.android.R; -import org.torproject.android.ui.hiddenservices.backup.BackupUtils; -import org.torproject.android.ui.hiddenservices.providers.CookieContentProvider; - -public class AddCookieDialog extends DialogFragment { - - private EditText etOnion, etCookie; - private TextWatcher inputValidator; - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final View dialogView = getActivity().getLayoutInflater().inflate(R.layout.layout_add_client_cookie_dialog, null); - final AlertDialog ad = new AlertDialog.Builder(getActivity()) - .setView(dialogView) - .setTitle(R.string.client_cookies) - .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss()) - .setPositiveButton(R.string.save, (dialog, which) -> doSave(getContext())) - .create(); - - etOnion = dialogView.findViewById(R.id.cookie_onion); - etCookie = dialogView.findViewById(R.id.cookie_value); - - inputValidator = new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - - } - - @Override - public void afterTextChanged(Editable s) { - ad.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(checkInput()); - } - }; - - etOnion.addTextChangedListener(inputValidator); - etCookie.addTextChangedListener(inputValidator); - - return ad; - } - - @Override - public void onStart() { - super.onStart(); - inputValidator.afterTextChanged(null); // set positive button to be initially disabled - } - private void doSave(Context context) { - saveData(etOnion.getText().toString(), etCookie.getText().toString()); - Toast.makeText(context, R.string.please_restart_Orbot_to_enable_the_changes, Toast.LENGTH_LONG).show(); - } - - private boolean checkInput() { - String onion = etOnion.getText().toString(); - String cookie = etCookie.getText().toString(); - if (TextUtils.isEmpty(onion.trim()) || TextUtils.isEmpty(cookie.trim())) return false; - return isV2OnionAddressValid(onion); - } - - private static boolean isV2OnionAddressValid(String onionToTest) { - return onionToTest.matches("([a-z0-9]{16}).onion"); - } - - private void saveData(String domain, String cookie) { - ContentValues fields = new ContentValues(); - fields.put(CookieContentProvider.ClientCookie.DOMAIN, domain); - fields.put(CookieContentProvider.ClientCookie.AUTH_COOKIE_VALUE, cookie); - - ContentResolver cr = getContext().getContentResolver(); - - cr.insert(CookieContentProvider.CONTENT_URI, fields); - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/CookieActionsDialog.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/CookieActionsDialog.java deleted file mode 100644 index d3286ab17..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/CookieActionsDialog.java +++ /dev/null @@ -1,119 +0,0 @@ -package org.torproject.android.ui.hiddenservices.dialogs; - -import android.app.Activity; -import android.app.Dialog; -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; -import android.os.ParcelFileDescriptor; -import android.widget.Toast; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; - -import org.json.JSONException; -import org.json.JSONObject; -import org.torproject.android.R; -import org.torproject.android.core.DiskUtils; -import org.torproject.android.ui.hiddenservices.ClientCookiesActivity; -import org.torproject.android.ui.hiddenservices.providers.CookieContentProvider; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; - -public class CookieActionsDialog extends DialogFragment { - private static final int REQUEST_CODE_WRITE_FILE = 123; - private String domain; - private String cookie; - private int enabled; - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final Bundle arguments = getArguments(); - domain = arguments.getString(ClientCookiesActivity.BUNDLE_KEY_DOMAIN); - cookie = arguments.getString(ClientCookiesActivity.BUNDLE_KEY_COOKIE); - enabled = arguments.getInt(ClientCookiesActivity.BUNDLE_KEY_ENABLED); - - AlertDialog ad = new AlertDialog.Builder(getActivity()) - .setTitle(R.string.client_cookies) - .setItems(new CharSequence[]{ - getString(R.string.backup_cookie), - getString(R.string.delete_cookie) - }, null) - .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss()) - .create(); - - ad.getListView().setOnItemClickListener((parent, view, position, id) -> { - if (position == 0) doBackup(); - else { - doDelete(arguments); - ad.dismiss(); - } - }); - - return ad; - } - - private void doDelete(Bundle arguments) { - CookieDeleteDialog dialog = new CookieDeleteDialog(); - dialog.setArguments(arguments); - dialog.show(getFragmentManager(), "CookieDeleteDialog"); - dismiss(); - } - - private void doBackup() { - String filename = domain.replace(".onion", ".json"); - if (DiskUtils.supportsStorageAccessFramework()) { - Intent createFile = DiskUtils.createWriteFileIntent(filename, "application/json"); - startActivityForResult(createFile, REQUEST_CODE_WRITE_FILE); - } else { // API 16, 17, and 18 - int msg = R.string.backup_saved_at_external_storage; - try { - File externalStorage = DiskUtils.getOrCreateLegacyBackupDir(getString(R.string.app_name)); - String backupFile = externalStorage.getAbsolutePath() + "/" + filename; - String data = createBackupData(); - FileWriter writer = new FileWriter(backupFile); - writer.write(data); - writer.close(); - } catch (JSONException | IOException e) { - msg = R.string.error; - } - Toast.makeText(getContext(), msg, Toast.LENGTH_LONG).show(); - dismiss(); - } - } - - private String createBackupData() throws JSONException { - JSONObject backup = new JSONObject(); - backup.put(CookieContentProvider.ClientCookie.DOMAIN, domain); - backup.put(CookieContentProvider.ClientCookie.AUTH_COOKIE_VALUE, cookie); - backup.put(CookieContentProvider.ClientCookie.ENABLED, enabled); - return backup.toString(); - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == REQUEST_CODE_WRITE_FILE && resultCode == Activity.RESULT_OK) { - if (data != null) { - int msg = R.string.backup_saved_at_external_storage; - Uri file = data.getData(); - try { - ParcelFileDescriptor pfd = getActivity().getContentResolver().openFileDescriptor(file, "w"); - FileOutputStream fileOutputStream = new FileOutputStream(pfd.getFileDescriptor()); - fileOutputStream.write(createBackupData().getBytes()); - fileOutputStream.close(); // Let the document provider know you're done by closing the stream - pfd.close(); - } catch (JSONException | IOException e) { - e.printStackTrace(); - msg = R.string.error; - } - dismiss(); - Toast.makeText(getContext(), msg, Toast.LENGTH_LONG).show(); - } - } - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/CookieDeleteDialog.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/CookieDeleteDialog.java deleted file mode 100644 index fd596578a..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/CookieDeleteDialog.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.torproject.android.ui.hiddenservices.dialogs; - -import android.app.Dialog; -import android.content.Context; -import android.os.Bundle; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; - -import org.torproject.android.R; -import org.torproject.android.ui.hiddenservices.ClientCookiesActivity; -import org.torproject.android.ui.hiddenservices.providers.CookieContentProvider; - -public class CookieDeleteDialog extends DialogFragment { - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final Bundle arguments = getArguments(); - final Context context = getContext(); - - return new AlertDialog.Builder(context) - .setTitle(R.string.confirm_cookie_deletion) - .setPositiveButton(android.R.string.ok, (dialog, which) -> doDelete(arguments, context)) - .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.cancel()) - .create(); - } - - private void doDelete(Bundle arguments, Context context) { - context.getContentResolver().delete( // delete from db - CookieContentProvider.CONTENT_URI, - CookieContentProvider.ClientCookie._ID + "=" + arguments.getInt(ClientCookiesActivity.BUNDLE_KEY_ID), - null - ); - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSActionsDialog.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSActionsDialog.java deleted file mode 100644 index 8d319324d..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSActionsDialog.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.torproject.android.ui.hiddenservices.dialogs; - -import android.app.Activity; -import android.app.Dialog; -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; -import android.text.Html; -import android.widget.Toast; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; - -import org.torproject.android.R; -import org.torproject.android.core.ClipboardUtils; -import org.torproject.android.core.DiskUtils; -import org.torproject.android.ui.hiddenservices.HiddenServicesActivity; -import org.torproject.android.ui.hiddenservices.backup.BackupUtils; - -import java.io.File; - -public class HSActionsDialog extends DialogFragment { - private static final int REQUEST_CODE_WRITE_FILE = 123; - private int port; - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final Bundle arguments = getArguments(); - port = Integer.parseInt(arguments.getString(HiddenServicesActivity.BUNDLE_KEY_PORT)); - AlertDialog ad = new AlertDialog.Builder(getActivity()) - .setItems(new CharSequence[]{ - getString(R.string.copy_address_to_clipboard), - getString(R.string.show_auth_cookie), - Html.fromHtml(getString(R.string.backup_service)), - getString(R.string.delete_service)}, null) - .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss()) - .setTitle(R.string.hidden_services) - .create(); - - // done this way so we can startActivityForResult on backup without the dialog vanishing - ad.getListView().setOnItemClickListener((parent, view, position, id) -> { - if (position == 0) doCopy(arguments, getContext()); - else if (position == 1) doShowAuthCookie(arguments, getContext()); - else if (position == 2) doBackup(arguments, getContext()); - else if (position == 3) doDelete(arguments); - if (position != 2) dismiss(); - }); - - return ad; - } - - private void doDelete(Bundle arguments) { - HSDeleteDialog dialog = new HSDeleteDialog(); - dialog.setArguments(arguments); - dialog.show(getFragmentManager(), "HSDeleteDialog"); - } - - private void doShowAuthCookie(Bundle arguments, Context context) { - String auth_cookie_value = arguments.getString(HiddenServicesActivity.BUNDLE_KEY_AUTH_COOKIE_VALUE); - - if (arguments.getInt(HiddenServicesActivity.BUNDLE_KEY_AUTH_COOKIE) == 1) { - if (auth_cookie_value == null || auth_cookie_value.length() < 1) { - Toast.makeText(context, R.string.please_restart_Orbot_to_enable_the_changes, Toast.LENGTH_LONG).show(); - } else { - HSCookieDialog dialog = new HSCookieDialog(); - dialog.setArguments(arguments); - dialog.show(getFragmentManager(), "HSCookieDialog"); - } - } else { - Toast.makeText(context, R.string.auth_cookie_was_not_configured, Toast.LENGTH_LONG).show(); - } - } - - private void doCopy(Bundle arguments, Context context) { - String onion = arguments.getString(HiddenServicesActivity.BUNDLE_KEY_ONION); - if (onion == null) - Toast.makeText(context, R.string.please_restart_Orbot_to_enable_the_changes, Toast.LENGTH_LONG).show(); - else - ClipboardUtils.copyToClipboard("onion", onion, getString(R.string.done), context); - } - - private void doBackup(Bundle arguments, Context context) { - String filename = "hs" + port + ".zip"; - String onion = arguments.getString(HiddenServicesActivity.BUNDLE_KEY_ONION); - if (onion == null) { - Toast.makeText(context, R.string.please_restart_Orbot_to_enable_the_changes, Toast.LENGTH_LONG).show(); - return; - } - if (DiskUtils.supportsStorageAccessFramework()) { - Intent createFile = DiskUtils.createWriteFileIntent(filename, "application/zip"); - startActivityForResult(createFile, REQUEST_CODE_WRITE_FILE); - } else { // API 16, 17, 18 - attemptToWriteBackup(Uri.fromFile(new File(DiskUtils.getOrCreateLegacyBackupDir(getString(R.string.app_name)), filename))); - } - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == REQUEST_CODE_WRITE_FILE && resultCode == Activity.RESULT_OK) { - if (data != null) { - attemptToWriteBackup(data.getData()); - } - } - } - - private void attemptToWriteBackup(Uri outputFile) { - String path = getArguments().getString(HiddenServicesActivity.BUNDLE_KEY_PATH); - BackupUtils backupUtils = new BackupUtils(getContext()); - String backup = backupUtils.createV2ZipBackup(port, path, outputFile); - Toast.makeText(getContext(), backup != null ? R.string.backup_saved_at_external_storage : R.string.error, Toast.LENGTH_LONG).show(); - dismiss(); - } - -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSCookieDialog.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSCookieDialog.java deleted file mode 100644 index 2bc29e59c..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSCookieDialog.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.torproject.android.ui.hiddenservices.dialogs; - -import android.app.Dialog; -import android.os.Bundle; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; - -import com.google.zxing.integration.android.IntentIntegrator; - -import org.json.JSONException; -import org.json.JSONObject; -import org.torproject.android.R; -import org.torproject.android.core.ClipboardUtils; -import org.torproject.android.ui.hiddenservices.HiddenServicesActivity; -import org.torproject.android.ui.hiddenservices.providers.CookieContentProvider; - -public class HSCookieDialog extends DialogFragment { - private String authCookieValue, onion; - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final Bundle arguments = getArguments(); - authCookieValue = arguments.getString(HiddenServicesActivity.BUNDLE_KEY_AUTH_COOKIE_VALUE); - onion = arguments.getString(HiddenServicesActivity.BUNDLE_KEY_ONION); - return new AlertDialog.Builder(getActivity()) - .setTitle(authCookieValue) - .setItems(new CharSequence[]{ - getString(R.string.copy_cookie_to_clipboard), - getString(R.string.share_as_qr) - }, (dialog, which) -> { - if (which == 0) doCopy(); - else if (which == 1) doShareQr(); - }) - .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss()) - .create(); - } - - private void doShareQr() { - try { - JSONObject backup = new JSONObject(); - backup.put(CookieContentProvider.ClientCookie.DOMAIN, onion); - backup.put(CookieContentProvider.ClientCookie.AUTH_COOKIE_VALUE, authCookieValue); - new IntentIntegrator(getActivity()).shareText(backup.toString()); - } catch (JSONException e) { - e.printStackTrace(); - } - } - - private void doCopy() { - if (authCookieValue != null) - ClipboardUtils.copyToClipboard("cookie", authCookieValue, getString(R.string.done), getContext()); - } - -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSDataDialog.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSDataDialog.java deleted file mode 100644 index fdd513c8b..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSDataDialog.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.torproject.android.ui.hiddenservices.dialogs; - -import android.app.Dialog; -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.os.Bundle; -import android.text.Editable; -import android.text.TextUtils; -import android.text.TextWatcher; -import android.view.View; -import android.widget.Button; -import android.widget.CheckBox; -import android.widget.EditText; -import android.widget.Toast; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; - -import org.torproject.android.R; -import org.torproject.android.ui.hiddenservices.providers.HSContentProvider; - -public class HSDataDialog extends DialogFragment { - - private EditText etServer, etLocalPort, etOnionPort; - private TextWatcher inputValidator; - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final View dialogView = getActivity().getLayoutInflater().inflate(R.layout.layout_hs_data_dialog, null); - etServer = dialogView.findViewById(R.id.hsName); - etLocalPort = dialogView.findViewById(R.id.hsLocalPort); - etOnionPort = dialogView.findViewById(R.id.hsOnionPort); - AlertDialog ad = new AlertDialog.Builder(getActivity()) - .setTitle(R.string.hidden_services) - .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.cancel()) - .setPositiveButton(R.string.save, (dialog, which) -> doSave(dialogView, getContext())) - .setView(dialogView) - .create(); - - inputValidator = new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - - } - - @Override - public void afterTextChanged(Editable s) { - Button btn = ad.getButton(AlertDialog.BUTTON_POSITIVE); - try { - int localPort = Integer.parseInt(etLocalPort.getText().toString()); - int onionPort = Integer.parseInt(etOnionPort.getText().toString()); - btn.setEnabled(checkInput(localPort, onionPort)); - } catch (NumberFormatException nfe) { - btn.setEnabled(false); - } - } - }; - - etOnionPort.addTextChangedListener(inputValidator); - etLocalPort.addTextChangedListener(inputValidator); - etServer.addTextChangedListener(inputValidator); - - return ad; - } - - @Override - public void onStart() { - super.onStart(); - inputValidator.afterTextChanged(null); // initially disable positive button - } - - private void doSave(View dialogView, Context context) { - String serverName = etServer.getText().toString().trim(); - int localPort = Integer.parseInt(etLocalPort.getText().toString()); - int onionPort = Integer.parseInt(etOnionPort.getText().toString()); - boolean authCookie = ((CheckBox) dialogView.findViewById(R.id.hsAuth)).isChecked(); - saveData(serverName, localPort, onionPort, authCookie); - Toast.makeText(context, R.string.please_restart_Orbot_to_enable_the_changes, Toast.LENGTH_LONG).show(); - } - - private boolean checkInput(int local, int remote) { - if ((local < 1 || local > 65535) || (remote < 1 || remote > 65535)) return false; - return !TextUtils.isEmpty(etServer.getText().toString().trim()); - } - - private void saveData(String name, int local, int remote, boolean authCookie) { - ContentValues fields = new ContentValues(); - fields.put(HSContentProvider.HiddenService.NAME, name); - fields.put(HSContentProvider.HiddenService.PORT, local); - fields.put(HSContentProvider.HiddenService.ONION_PORT, remote); - fields.put(HSContentProvider.HiddenService.AUTH_COOKIE, authCookie); - fields.put(HSContentProvider.HiddenService.CREATED_BY_USER, 1); - - ContentResolver cr = getContext().getContentResolver(); - - cr.insert(HSContentProvider.CONTENT_URI, fields); - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSDeleteDialog.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSDeleteDialog.java deleted file mode 100644 index 065f68e39..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/dialogs/HSDeleteDialog.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.torproject.android.ui.hiddenservices.dialogs; - -import android.app.Dialog; -import android.content.Context; -import android.os.Bundle; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; - -import org.torproject.android.R; -import org.torproject.android.service.TorServiceConstants; -import org.torproject.android.ui.hiddenservices.HiddenServicesActivity; -import org.torproject.android.ui.hiddenservices.providers.HSContentProvider; - -import java.io.File; - -public class HSDeleteDialog extends DialogFragment { - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - return new AlertDialog.Builder(getContext()) - .setTitle(R.string.confirm_service_deletion) - .setPositiveButton(android.R.string.ok, (dialog, which) -> doDelete(getArguments(), getContext())) - .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.cancel()) - .create(); - } - - private void doDelete(Bundle arguments, Context context) { - context.getContentResolver().delete(HSContentProvider.CONTENT_URI, - HSContentProvider.HiddenService._ID + "=" + arguments.getInt(HiddenServicesActivity.BUNDLE_KEY_ID), null); - - // Delete from internal storage - String base = context.getFilesDir().getAbsolutePath() + "/" + TorServiceConstants.HIDDEN_SERVICES_DIR; - File dir = new File(base, arguments.getString(HiddenServicesActivity.BUNDLE_KEY_PATH)); - - if (dir.isDirectory()) { - String[] children = dir.list(); - for (String aChildren : children) { - new File(dir, aChildren).delete(); - } - dir.delete(); - } - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/providers/CookieContentProvider.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/providers/CookieContentProvider.java deleted file mode 100644 index 26a6d9d63..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/providers/CookieContentProvider.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.torproject.android.ui.hiddenservices.providers; - -import android.content.ContentProvider; -import android.content.ContentUris; -import android.content.ContentValues; -import android.content.Context; -import android.content.UriMatcher; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.net.Uri; -import android.provider.BaseColumns; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import org.torproject.android.ui.hiddenservices.database.HSDatabase; - - -public class CookieContentProvider extends ContentProvider { - public static final String[] PROJECTION = new String[]{ - ClientCookie._ID, - ClientCookie.DOMAIN, - ClientCookie.AUTH_COOKIE_VALUE, - ClientCookie.ENABLED - }; - private static final String AUTH = "org.torproject.android.ui.hiddenservices.providers.cookie"; - public static final Uri CONTENT_URI = - Uri.parse("content://" + AUTH + "/cookie"); - //UriMatcher - private static final int COOKIES = 1; - private static final int COOKIE_ID = 2; - - private static final UriMatcher uriMatcher; - - static { - uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); - uriMatcher.addURI(AUTH, "hs", COOKIES); - uriMatcher.addURI(AUTH, "hs/#", COOKIE_ID); - } - - private HSDatabase mServervices; - private Context mContext; - - @Override - public boolean onCreate() { - mContext = getContext(); - mServervices = new HSDatabase(mContext); - return true; - } - - @Nullable - @Override - public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { - String where = selection; - if (uriMatcher.match(uri) == COOKIE_ID) { - where = "_id=" + uri.getLastPathSegment(); - } - - SQLiteDatabase db = mServervices.getReadableDatabase(); - - return db.query(HSDatabase.HS_CLIENT_COOKIE_TABLE_NAME, projection, where, - selectionArgs, null, null, sortOrder); - } - - @Nullable - @Override - public String getType(@NonNull Uri uri) { - int match = uriMatcher.match(uri); - - switch (match) { - case COOKIES: - return "vnd.android.cursor.dir/vnd.torproject.cookies"; - case COOKIE_ID: - return "vnd.android.cursor.item/vnd.torproject.cookie"; - default: - return null; - } - } - - @Nullable - @Override - public Uri insert(@NonNull Uri uri, ContentValues values) { - long regId; - - SQLiteDatabase db = mServervices.getWritableDatabase(); - - regId = db.insert(HSDatabase.HS_CLIENT_COOKIE_TABLE_NAME, null, values); - - mContext.getContentResolver().notifyChange(CONTENT_URI, null); - - return ContentUris.withAppendedId(CONTENT_URI, regId); - } - - @Override - public int delete(@NonNull Uri uri, String selection, String[] selectionArgs) { - - String where = selection; - if (uriMatcher.match(uri) == COOKIE_ID) { - where = "_id=" + uri.getLastPathSegment(); - } - - SQLiteDatabase db = mServervices.getWritableDatabase(); - - int rows = db.delete(HSDatabase.HS_CLIENT_COOKIE_TABLE_NAME, where, selectionArgs); - - mContext.getContentResolver().notifyChange(CONTENT_URI, null); - - return rows; - - } - - @Override - public int update(@NonNull Uri uri, ContentValues values, String selection, String[] selectionArgs) { - SQLiteDatabase db = mServervices.getWritableDatabase(); - - String where = selection; - if (uriMatcher.match(uri) == COOKIE_ID) { - where = "_id=" + uri.getLastPathSegment(); - } - - int rows = db.update(HSDatabase.HS_CLIENT_COOKIE_TABLE_NAME, values, where, null); - mContext.getContentResolver().notifyChange(CONTENT_URI, null); - - return rows; - } - - public static final class ClientCookie implements BaseColumns { - public static final String DOMAIN = "domain"; - public static final String AUTH_COOKIE_VALUE = "auth_cookie_value"; - public static final String ENABLED = "enabled"; - - private ClientCookie() { - } - } -} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/providers/HSContentProvider.java b/app/src/main/java/org/torproject/android/ui/hiddenservices/providers/HSContentProvider.java deleted file mode 100644 index bc4e16b1f..000000000 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/providers/HSContentProvider.java +++ /dev/null @@ -1,143 +0,0 @@ -package org.torproject.android.ui.hiddenservices.providers; - -import android.content.ContentProvider; -import android.content.ContentUris; -import android.content.ContentValues; -import android.content.Context; -import android.content.UriMatcher; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.net.Uri; -import android.provider.BaseColumns; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import org.torproject.android.ui.hiddenservices.database.HSDatabase; - - -public class HSContentProvider extends ContentProvider { - public static final String[] PROJECTION = new String[]{ - HiddenService._ID, - HiddenService.NAME, - HiddenService.PORT, - HiddenService.DOMAIN, - HiddenService.ONION_PORT, - HiddenService.AUTH_COOKIE, - HiddenService.AUTH_COOKIE_VALUE, - HiddenService.CREATED_BY_USER, - HiddenService.ENABLED, - HiddenService.PATH - }; - private static final String AUTH = "org.torproject.android.ui.hiddenservices.providers"; - public static final Uri CONTENT_URI = Uri.parse("content://" + AUTH + "/hs"); - //UriMatcher - private static final int ONIONS = 1; - private static final int ONION_ID = 2; - - private static final UriMatcher uriMatcher; - - static { - uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); - uriMatcher.addURI(AUTH, "hs", ONIONS); - uriMatcher.addURI(AUTH, "hs/#", ONION_ID); - } - - private HSDatabase mServervices; - private Context mContext; - - @Override - public boolean onCreate() { - mContext = getContext(); - mServervices = new HSDatabase(mContext); - return true; - } - - @Nullable - @Override - public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { - String where = selection; - if (uriMatcher.match(uri) == ONION_ID) { - where = "_id=" + uri.getLastPathSegment(); - } - - SQLiteDatabase db = mServervices.getReadableDatabase(); - - return db.query(HSDatabase.HS_DATA_TABLE_NAME, projection, where, selectionArgs, null, null, sortOrder); - } - - @Nullable - @Override - public String getType(@NonNull Uri uri) { - int match = uriMatcher.match(uri); - - switch (match) { - case ONIONS: - return "vnd.android.cursor.dir/vnd.torproject.onions"; - case ONION_ID: - return "vnd.android.cursor.item/vnd.torproject.onion"; - default: - return null; - } - } - - @Nullable - @Override - public Uri insert(@NonNull Uri uri, ContentValues values) { - long regId; - - SQLiteDatabase db = mServervices.getWritableDatabase(); - - regId = db.insert(HSDatabase.HS_DATA_TABLE_NAME, null, values); - - mContext.getContentResolver().notifyChange(CONTENT_URI, null); - - return ContentUris.withAppendedId(CONTENT_URI, regId); - } - - @Override - public int delete(@NonNull Uri uri, String selection, String[] selectionArgs) { - - String where = selection; - if (uriMatcher.match(uri) == ONION_ID) { - where = "_id=" + uri.getLastPathSegment(); - } - - SQLiteDatabase db = mServervices.getWritableDatabase(); - - int rows = db.delete(HSDatabase.HS_DATA_TABLE_NAME, where, selectionArgs); - - mContext.getContentResolver().notifyChange(CONTENT_URI, null); - - return rows; - - } - - @Override - public int update(@NonNull Uri uri, ContentValues values, String selection, String[] selectionArgs) { - SQLiteDatabase db = mServervices.getWritableDatabase(); - - String where = selection; - if (uriMatcher.match(uri) == ONION_ID) { - where = "_id=" + uri.getLastPathSegment(); - } - - int rows = db.update(HSDatabase.HS_DATA_TABLE_NAME, values, where, null); - mContext.getContentResolver().notifyChange(CONTENT_URI, null); - - return rows; - } - - public static final class HiddenService implements BaseColumns { - public static final String NAME = "name"; - public static final String PORT = "port"; - public static final String ONION_PORT = "onion_port"; - public static final String DOMAIN = "domain"; - public static final String AUTH_COOKIE = "auth_cookie"; - public static final String AUTH_COOKIE_VALUE = "auth_cookie_value"; - public static final String CREATED_BY_USER = "created_by_user"; - public static final String ENABLED = "enabled"; - public static final String PATH = "filepath"; - - private HiddenService() { - } - } -} diff --git a/app/src/main/java/org/torproject/android/ui/onboarding/OnboardingActivity.java b/app/src/main/java/org/torproject/android/ui/onboarding/OnboardingActivity.java index 7868faf59..0e20ae20e 100644 --- a/app/src/main/java/org/torproject/android/ui/onboarding/OnboardingActivity.java +++ b/app/src/main/java/org/torproject/android/ui/onboarding/OnboardingActivity.java @@ -14,7 +14,7 @@ import org.torproject.android.core.LocaleHelper; import org.torproject.android.service.util.Prefs; import org.torproject.android.ui.AppManagerActivity; -import org.torproject.android.ui.hiddenservices.permissions.PermissionManager; +import org.torproject.android.ui.v3onionservice.PermissionManager; public class OnboardingActivity extends AppIntro { diff --git a/app/src/main/java/org/torproject/android/ui/v3onionservice/OnionServiceActionsDialogFragment.java b/app/src/main/java/org/torproject/android/ui/v3onionservice/OnionServiceActionsDialogFragment.java index 6c1a8e950..c51612dde 100644 --- a/app/src/main/java/org/torproject/android/ui/v3onionservice/OnionServiceActionsDialogFragment.java +++ b/app/src/main/java/org/torproject/android/ui/v3onionservice/OnionServiceActionsDialogFragment.java @@ -16,7 +16,6 @@ import org.torproject.android.R; import org.torproject.android.core.ClipboardUtils; import org.torproject.android.core.DiskUtils; -import org.torproject.android.ui.hiddenservices.backup.BackupUtils; import java.io.File; @@ -88,8 +87,8 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { private void attemptToWriteBackup(Uri outputFile) { String port = getArguments().getString(OnionServiceActivity.BUNDLE_KEY_PORT); String relativePath = getArguments().getString(OnionServiceActivity.BUNDLE_KEY_PATH); - BackupUtils backupUtils = new BackupUtils(getContext()); - String backup = backupUtils.createV3ZipBackup(port, relativePath, outputFile); + V3BackupUtils v3BackupUtils = new V3BackupUtils(getContext()); + String backup = v3BackupUtils.createV3ZipBackup(port, relativePath, outputFile); Toast.makeText(getContext(), backup != null ? R.string.backup_saved_at_external_storage : R.string.error, Toast.LENGTH_LONG).show(); dismiss(); } diff --git a/app/src/main/java/org/torproject/android/ui/v3onionservice/OnionServiceActivity.java b/app/src/main/java/org/torproject/android/ui/v3onionservice/OnionServiceActivity.java index 88f055647..2e8c99bdc 100644 --- a/app/src/main/java/org/torproject/android/ui/v3onionservice/OnionServiceActivity.java +++ b/app/src/main/java/org/torproject/android/ui/v3onionservice/OnionServiceActivity.java @@ -24,9 +24,6 @@ import org.torproject.android.R; import org.torproject.android.core.DiskUtils; import org.torproject.android.core.LocaleHelper; -import org.torproject.android.ui.hiddenservices.backup.BackupUtils; -import org.torproject.android.ui.hiddenservices.backup.ZipUtilities; -import org.torproject.android.ui.hiddenservices.permissions.PermissionManager; import java.io.File; @@ -134,7 +131,7 @@ private void doRestoreLegacy() { // APIs 16, 17, 18 new AlertDialog.Builder(this) .setTitle(R.string.restore_backup) - .setItems(fileNames, (dialog, which) -> new BackupUtils(this).restoreZipBackupV3Legacy(files[which])) + .setItems(fileNames, (dialog, which) -> new V3BackupUtils(this).restoreZipBackupV3Legacy(files[which])) .show(); } @@ -142,7 +139,7 @@ private void doRestoreLegacy() { // APIs 16, 17, 18 protected void onActivityResult(int requestCode, int result, Intent data) { super.onActivityResult(requestCode, result, data); if (requestCode == REQUEST_CODE_READ_ZIP_BACKUP && result == RESULT_OK) { - new BackupUtils(this).restoreZipBackupV3(data.getData()); + new V3BackupUtils(this).restoreZipBackupV3(data.getData()); } } diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/permissions/PermissionManager.java b/app/src/main/java/org/torproject/android/ui/v3onionservice/PermissionManager.java similarity index 97% rename from app/src/main/java/org/torproject/android/ui/hiddenservices/permissions/PermissionManager.java rename to app/src/main/java/org/torproject/android/ui/v3onionservice/PermissionManager.java index 52c5dc209..7397ef8d1 100644 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/permissions/PermissionManager.java +++ b/app/src/main/java/org/torproject/android/ui/v3onionservice/PermissionManager.java @@ -1,4 +1,4 @@ -package org.torproject.android.ui.hiddenservices.permissions; +package org.torproject.android.ui.v3onionservice; import android.annotation.TargetApi; import android.content.Context; diff --git a/app/src/main/java/org/torproject/android/ui/v3onionservice/V3BackupUtils.java b/app/src/main/java/org/torproject/android/ui/v3onionservice/V3BackupUtils.java new file mode 100644 index 000000000..1d584db04 --- /dev/null +++ b/app/src/main/java/org/torproject/android/ui/v3onionservice/V3BackupUtils.java @@ -0,0 +1,188 @@ +package org.torproject.android.ui.v3onionservice; + +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.os.ParcelFileDescriptor; +import android.provider.OpenableColumns; +import android.widget.Toast; + +import org.json.JSONException; +import org.json.JSONObject; +import org.torproject.android.R; +import org.torproject.android.service.OrbotService; +import org.torproject.android.service.TorServiceConstants; +import org.torproject.android.ui.v3onionservice.clientauth.ClientAuthContentProvider; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.nio.MappedByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.charset.Charset; + +public class V3BackupUtils { + private static final String configFileName = "config.json"; + private final Context mContext; + private final ContentResolver mResolver; + + public V3BackupUtils(Context context) { + mContext = context; + mResolver = mContext.getContentResolver(); + } + + public String createV3ZipBackup(String port, String relativePath, Uri zipFile) { + String[] files = createFilesForZippingV3(relativePath); + ZipUtilities zip = new ZipUtilities(files, zipFile, mResolver); + if (!zip.zip()) return null; + return zipFile.getPath(); + } + + public String createV3AuthBackup(String domain, String keyHash, Uri backupFile) { + String fileText = OrbotService.buildV3ClientAuthFile(domain, keyHash); + try { + ParcelFileDescriptor pfd = mContext.getContentResolver().openFileDescriptor(backupFile, "w"); + FileOutputStream fos = new FileOutputStream(pfd.getFileDescriptor()); + fos.write(fileText.getBytes()); + fos.close(); + pfd.close(); + } catch (IOException ioe) { + return null; + } + return backupFile.getPath(); + } + + // todo this doesn't export data for onions that orbot hosts which have authentication (not supported yet...) + private String[] createFilesForZippingV3(String relativePath) { + final String v3BasePath = getV3BasePath() + "/" + relativePath + "/"; + final String hostnamePath = v3BasePath + "hostname", + configFilePath = v3BasePath + configFileName, + privKeyPath = v3BasePath + "hs_ed25519_secret_key", + pubKeyPath = v3BasePath + "hs_ed25519_public_key"; + + Cursor portData = mResolver.query(OnionServiceContentProvider.CONTENT_URI, OnionServiceContentProvider.PROJECTION, + OnionServiceContentProvider.OnionService.PATH + "=\"" + relativePath + "\"", null, null); + + JSONObject config = new JSONObject(); + try { + if (portData == null || portData.getCount() != 1) + return null; + portData.moveToNext(); + + + config.put(OnionServiceContentProvider.OnionService.NAME, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.NAME))); + config.put(OnionServiceContentProvider.OnionService.PORT, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.PORT))); + config.put(OnionServiceContentProvider.OnionService.ONION_PORT, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.ONION_PORT))); + config.put(OnionServiceContentProvider.OnionService.DOMAIN, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.DOMAIN))); + config.put(OnionServiceContentProvider.OnionService.CREATED_BY_USER, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.CREATED_BY_USER))); + config.put(OnionServiceContentProvider.OnionService.ENABLED, portData.getString(portData.getColumnIndex(OnionServiceContentProvider.OnionService.ENABLED))); + + portData.close(); + + FileWriter fileWriter = new FileWriter(configFilePath); + fileWriter.write(config.toString()); + fileWriter.close(); + } catch (JSONException | IOException ioe) { + ioe.printStackTrace(); + return null; + } + + return new String[]{hostnamePath, configFilePath, privKeyPath, pubKeyPath}; + } + + private void extractConfigFromUnzippedBackupV3(String backupName) { + File v3BasePath = getV3BasePath(); + String v3Dir = backupName.substring(0, backupName.lastIndexOf('.')); + String configFilePath = v3BasePath + "/" + v3Dir + "/" + configFileName; + File v3Path = new File(v3BasePath.getAbsolutePath(), v3Dir); + if (!v3Path.isDirectory()) v3Path.mkdirs(); + + File configFile = new File(configFilePath); + try { + FileInputStream fis = new FileInputStream(configFile); + FileChannel fc = fis.getChannel(); + MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); + String jsonString = Charset.defaultCharset().decode(bb).toString(); + JSONObject savedValues = new JSONObject(jsonString); + ContentValues fields = new ContentValues(); + + int port = savedValues.getInt(OnionServiceContentProvider.OnionService.PORT); + fields.put(OnionServiceContentProvider.OnionService.PORT, port); + fields.put(OnionServiceContentProvider.OnionService.NAME, savedValues.getString(OnionServiceContentProvider.OnionService.NAME)); + fields.put(OnionServiceContentProvider.OnionService.ONION_PORT, savedValues.getInt(OnionServiceContentProvider.OnionService.ONION_PORT)); + fields.put(OnionServiceContentProvider.OnionService.DOMAIN, savedValues.getString(OnionServiceContentProvider.OnionService.DOMAIN)); + fields.put(OnionServiceContentProvider.OnionService.CREATED_BY_USER, savedValues.getInt(OnionServiceContentProvider.OnionService.CREATED_BY_USER)); + fields.put(OnionServiceContentProvider.OnionService.ENABLED, savedValues.getInt(OnionServiceContentProvider.OnionService.ENABLED)); + + Cursor dbService = mResolver.query(OnionServiceContentProvider.CONTENT_URI, OnionServiceContentProvider.PROJECTION, + OnionServiceContentProvider.OnionService.PORT + "=" + port, null, null); + if (dbService == null || dbService.getCount() == 0) + mResolver.insert(OnionServiceContentProvider.CONTENT_URI, fields); + else + mResolver.update(OnionServiceContentProvider.CONTENT_URI, fields, OnionServiceContentProvider.OnionService.PORT + "=" + port, null); + dbService.close(); + + configFile.delete(); + if (v3Path.renameTo(new File(v3BasePath, "/v3" + port))) { + Toast.makeText(mContext, R.string.backup_restored, Toast.LENGTH_LONG).show(); + } else { + // collision, clean up files + for (File file: v3Path.listFiles()) + file.delete(); + v3Path.delete(); + Toast.makeText(mContext, mContext.getString(R.string.backup_port_exist, port), Toast.LENGTH_LONG).show(); + } + } catch (IOException | JSONException e) { + e.printStackTrace(); + Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); + } + } + + private File getV3BasePath() { + return new File(mContext.getFilesDir().getAbsolutePath(), TorServiceConstants.ONION_SERVICES_DIR); + } + + public void restoreZipBackupV3Legacy(File zipFile) { + String backupName = zipFile.getName(); + ZipUtilities zip = new ZipUtilities(null, null, mResolver); + String v3Dir = backupName.substring(0, backupName.lastIndexOf('.')); + File v3Path = new File(getV3BasePath().getAbsolutePath(), v3Dir); + if (zip.unzipLegacy(v3Path.getAbsolutePath(), zipFile)) + extractConfigFromUnzippedBackupV3(backupName); + else + Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); + } + + public void restoreZipBackupV3(Uri zipUri) { + Cursor returnCursor = mResolver.query(zipUri, null, null, null, null); + int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); + returnCursor.moveToFirst(); + String backupName = returnCursor.getString(nameIndex); + returnCursor.close(); + + String v3Dir = backupName.substring(0, backupName.lastIndexOf('.')); + File v3Path = new File(getV3BasePath().getAbsolutePath(), v3Dir); + if (new ZipUtilities(null, zipUri, mResolver).unzip(v3Path.getAbsolutePath())) + extractConfigFromUnzippedBackupV3(backupName); + else + Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); + } + + public void restoreClientAuthBackup(String authFileContents) { + ContentValues fields = new ContentValues(); + String[] split = authFileContents.split(":"); + if (split.length != 4) { + Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show(); + return; + } + fields.put(ClientAuthContentProvider. V3ClientAuth.DOMAIN, split[0]); + fields.put(ClientAuthContentProvider.V3ClientAuth.HASH, split[3]); + mResolver.insert(ClientAuthContentProvider.CONTENT_URI, fields); + Toast.makeText(mContext, R.string.backup_restored, Toast.LENGTH_LONG).show(); + } + +} diff --git a/app/src/main/java/org/torproject/android/ui/hiddenservices/backup/ZipUtilities.java b/app/src/main/java/org/torproject/android/ui/v3onionservice/ZipUtilities.java similarity index 98% rename from app/src/main/java/org/torproject/android/ui/hiddenservices/backup/ZipUtilities.java rename to app/src/main/java/org/torproject/android/ui/v3onionservice/ZipUtilities.java index 11fd17431..026e8eae6 100644 --- a/app/src/main/java/org/torproject/android/ui/hiddenservices/backup/ZipUtilities.java +++ b/app/src/main/java/org/torproject/android/ui/v3onionservice/ZipUtilities.java @@ -1,4 +1,4 @@ -package org.torproject.android.ui.hiddenservices.backup; +package org.torproject.android.ui.v3onionservice; import android.content.ContentResolver; import android.net.Uri; @@ -10,7 +10,6 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; -import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FilenameFilter; diff --git a/app/src/main/java/org/torproject/android/ui/v3onionservice/clientauth/ClientAuthActivity.java b/app/src/main/java/org/torproject/android/ui/v3onionservice/clientauth/ClientAuthActivity.java index 761ce171b..8ff108d1b 100644 --- a/app/src/main/java/org/torproject/android/ui/v3onionservice/clientauth/ClientAuthActivity.java +++ b/app/src/main/java/org/torproject/android/ui/v3onionservice/clientauth/ClientAuthActivity.java @@ -22,7 +22,7 @@ import org.torproject.android.R; import org.torproject.android.core.DiskUtils; import org.torproject.android.core.LocaleHelper; -import org.torproject.android.ui.hiddenservices.backup.BackupUtils; +import org.torproject.android.ui.v3onionservice.V3BackupUtils; import java.io.File; import java.util.List; @@ -82,7 +82,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { return; } String authText = DiskUtils.readFileFromInputStream(getContentResolver(), uri); - new BackupUtils(this).restoreClientAuthBackup(authText); + new V3BackupUtils(this).restoreClientAuthBackup(authText); } } else { super.onActivityResult(requestCode, resultCode, data); @@ -139,7 +139,7 @@ private void doRestoreLegacy() { .setTitle(R.string.restore_backup) .setItems(fileNames, (dialog, which) -> { String authFileText = DiskUtils.readFile(getContentResolver(), files[which]); - new BackupUtils(this).restoreClientAuthBackup(authFileText); + new V3BackupUtils(this).restoreClientAuthBackup(authFileText); }) .show(); } diff --git a/app/src/main/java/org/torproject/android/ui/v3onionservice/clientauth/ClientAuthBackupDialogFragment.java b/app/src/main/java/org/torproject/android/ui/v3onionservice/clientauth/ClientAuthBackupDialogFragment.java index b56bc3376..e6f76b3ca 100644 --- a/app/src/main/java/org/torproject/android/ui/v3onionservice/clientauth/ClientAuthBackupDialogFragment.java +++ b/app/src/main/java/org/torproject/android/ui/v3onionservice/clientauth/ClientAuthBackupDialogFragment.java @@ -20,7 +20,7 @@ import org.torproject.android.R; import org.torproject.android.core.DiskUtils; import org.torproject.android.core.ui.NoPersonalizedLearningEditText; -import org.torproject.android.ui.hiddenservices.backup.BackupUtils; +import org.torproject.android.ui.v3onionservice.V3BackupUtils; import java.io.File; @@ -119,10 +119,10 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { } private void attemptToWriteBackup(Uri outputFile) { - BackupUtils backupUtils = new BackupUtils(getContext()); + V3BackupUtils v3BackupUtils = new V3BackupUtils(getContext()); String domain = getArguments().getString(ClientAuthActivity.BUNDLE_KEY_DOMAIN); String hash = getArguments().getString(ClientAuthActivity.BUNDLE_KEY_HASH); - String backup = backupUtils.createV3AuthBackup(domain, hash, outputFile); + String backup = v3BackupUtils.createV3AuthBackup(domain, hash, outputFile); Toast.makeText(getContext(), backup != null ? R.string.backup_saved_at_external_storage : R.string.error, Toast.LENGTH_LONG).show(); dismiss(); } diff --git a/app/src/main/res/layout/layout_activity_client_cookies.xml b/app/src/main/res/layout/layout_activity_client_cookies.xml deleted file mode 100644 index a0e667410..000000000 --- a/app/src/main/res/layout/layout_activity_client_cookies.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/layout_add_client_cookie_dialog.xml b/app/src/main/res/layout/layout_add_client_cookie_dialog.xml deleted file mode 100644 index ec310a0cb..000000000 --- a/app/src/main/res/layout/layout_add_client_cookie_dialog.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/layout/layout_content_client_cookies.xml b/app/src/main/res/layout/layout_content_client_cookies.xml deleted file mode 100644 index 2517d8e1a..000000000 --- a/app/src/main/res/layout/layout_content_client_cookies.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - diff --git a/app/src/main/res/menu/cookie_menu.xml b/app/src/main/res/menu/cookie_menu.xml deleted file mode 100644 index 3593f5659..000000000 --- a/app/src/main/res/menu/cookie_menu.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/menu/orbot_main.xml b/app/src/main/res/menu/orbot_main.xml index 1751e5364..850c2ba27 100644 --- a/app/src/main/res/menu/orbot_main.xml +++ b/app/src/main/res/menu/orbot_main.xml @@ -30,21 +30,6 @@ android:title="@string/v3_client_auth" yourapp:showAsAction="never" /> - - - - - - - diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index a9904933c..1cb80b233 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -90,7 +90,6 @@ OpenSSL v1.0.2j: http://www.openssl.org عُثر علي عملية تور سابقة تعمل… حصل خطأ ما. افحص السجل - غير قادر على قراءة اسم الخدمة المخفية غير قادر على بدء تور: دائما ضع الأيقونة في شريط الأدوات عندما يكون اوربوت متصلاً تنبيهات دائمة @@ -120,7 +119,6 @@ أرسل بريد الكتروني شامل (تلقائي) خدمات خفية - خدمات خفية خدمات خفية حفظ المنفذ المحلي @@ -128,7 +126,6 @@ الاسم تم ! نسخ العنوان إلى الحافظة - عرض كعكة المصادقة النسخ الإحتياطي للخدمة حذف الخدمة تمت عملية حفظ النسخة الإحتياطية في ذاكرة التخزين الخارجية @@ -139,16 +136,8 @@ تأكيد حذف الخدمة نوع الخدمة كعكة المصادقة - نسخ الكعكة إلى الحافظة - لم يتم إعداد كعكة المصادقة الرجاء إعادة تشغيل أوربوت لتفعيل التعديلات - كعكات العميل .onion - القراءة مِن رمز الكيو آر - النسخ الإحتياطي للكعكة - حذف الكعكة - تأكيد إزالة الكعكة - الخدمات المستضافة شارك كرمز كيو آر إلغاء تمكين diff --git a/app/src/main/res/values-ay/strings.xml b/app/src/main/res/values-ay/strings.xml index 9910db382..1fe09e38e 100644 --- a/app/src/main/res/values-ay/strings.xml +++ b/app/src/main/res/values-ay/strings.xml @@ -92,8 +92,7 @@ Imantat apayañ thakhinak Tor llikar mä wakichäwiw jist\'arañ muni %1$d. Wakichawitix uñt\'atachixa, iyaw sama. Utjir Toraw jikxatata… Mä jan walt\'äwiw utji. Qillqantayasit uñakipam - Janiw imantat yanapirin sutiman ullarañjamakänti - Janiw Torax aqtayañjamäkiti: + Janiw Torax aqtayañjamäkiti: Orbot aqtatäki ukjax chimpup uñstayañapuni Yatiyäwinakax purinipuniniwa Kawkja markans IP ukamp Toramp uñstani uka yatiyäw juk\'amp uñacht\'ayaña @@ -123,7 +122,6 @@ Qillqat apayaña Uraqpacha (justupaki) Imantat lurañanaka - Imantat lurañanaka Imantat lurañanaka Imaña Akankïr apayañ thakhi @@ -131,7 +129,6 @@ Suti ¡Tukuyata! Utjirinak waruqañawjar imam - Uñt\'ayktam uka cookie uñstayam Yanapirit imat luratanakam waruqam Lurañanak pichsuña Imat luratanakamax yaqha yänakar imataxiwa @@ -142,16 +139,8 @@ Lurañanakax pichsutäniwa Kunayman lurañanaka Chiqat k\'arich uk katjir cookie - Cookie waruqañawjar imam - Chiqat k\'arich uk katjir cookiex janiw mayjt\'ayatäkiti Mayjt\'ayatanak aqtayañatak Orbot mayamp qhant\'ayam, amp suma - Apnaqirin Cookiepa .onion - QR ukamp ullaraña - Cookien imat luratanakapa - Cookie pichsum - Cookie pichsut mayamp uñxatam - Qurpachat lurañanaka QRjam ch\'iqiyaña Jiwt\'ayaña Aqtayaña diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 516b26eab..95d6653e8 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -90,8 +90,7 @@ Tor: https://www.torproject.org LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ mövcud Tor prosesi tapıldı… Nə isə pis bir şey oldu. Girişi yoxla - gizli xidmət adını oxumağı deaktivləşdir - Tor-un başlanmasını dayandır: + Tor-un başlanmasını dayandır: Həmişə Orbot qoşulduğu hallarda nişanı alətlət panelində saxla Həmişə Açıq Xəbərdarlıqlar Torla birlikdə ətraflı bildirişi göstərib ölkə və IP-dən çıxın. diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index acfddbfad..21727a419 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -92,8 +92,7 @@ Дадатак хоча адкрыць схаваны порт сервера %1$d сеткі Tor. Гэта бяспечна, калі вы давяраеце дадзенаму дадатку. знойдзены існавалы працэс Tor… Адбылася нейкая памылка. Праверце журнал. - немагчыма прачытаць імя схаванай службы - Немагчыма запусціць Tor: + Немагчыма запусціць Tor: Заўсёды адлюстроўваць іконку у панэлі заданняў калі Orbot падключаны Нязменнае апавяшчэнне пра працу Паказаць пашыранае апавяшчэнне Tor з краінай выхаду і IP @@ -123,7 +122,6 @@ Адправіць ліст Свет (аўта) Схаваныя службы - Схаваныя службы Схаваныя службы Захаваць Лакальны порт @@ -131,7 +129,6 @@ Імя Гатова! Скапіяваць адрас у буфер памену - Паказаць аўтарызуючыя cookie Рэзерваваць службу Выдаліць службу Рэзервовая копія захавана на вонкавым сховішчы @@ -142,16 +139,8 @@ Пацверджанне выдалення службы Тып службы Аўтарызучыя cookie - Капіяваць cookie у буфер памену - Аўтарызучыя cookie не наладжаны Калі ласка, перазапусціце Orbot для ўступу змены ў сілу - Cookies кліента .onion - Прачытаць з QR-кода - Рэзерваваць cookie - Выдаліць cookies - Пацвердзіце выдаленне cookie - Размешчаныя службы Падзяліцца праз QR-код Адключыць Уключыць diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index a01815a82..5377f78f4 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -88,8 +88,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ намерил си съвместим Tor проект… Нещо лошо се случи. Проверете лога - не може да прочете име на скрита услуга - Не може да стартира Тор: + Не може да стартира Тор: Винаги показвай икона в тулбара когато Орбот е свързан Уведомления винаги включени Покажи разширена информация за Tor изходната държава и IP в лентата за известия @@ -116,8 +115,7 @@ Имейл Изпрати имейл Скрити услуги - Скрити услуги - Скрити услуги + Скрити услуги Запази Име Моля, рестартирай Orbot, за да влязат в действие промените diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 997244633..94ae2c59f 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -92,7 +92,6 @@ Una aplicació vol obrir el port de servidor ocults%1$d a la xarxa Tor. Això és segur si confieu en l\'aplicació. s\'ha trobat un procés Tor existent… Ha fallat alguna cosa. Comproveu el registre - ha estat impossible llegir el nom del servei ocult Ha estat impossible iniciar Tor: Manté la icona sempre a la barra d\'eines mentre l\'Orbot està connectat Notificacions sempre activades @@ -123,7 +122,6 @@ Envia correu-e Global (auto) Serveis ocults - Serveis ocults Serveis ocults Desa Port local @@ -131,7 +129,6 @@ Nom Fet! Copia adreça al portapapers - Mostrar galetes d\'autentificació Servei de còpia de seguretat Esborrar servei Còpia de seguretat desada a emmagatzematge extern @@ -142,16 +139,8 @@ Confirma la supressió del servei Tipus de servei Auth cookie - Copieu les galetes al porta-retalls - No s\'ha configurat l\'Auth cookie Reinicieu l\'Orbot per aplicar els canvis - Client cookies .onion - Llegir de QR - Backup cookie - Elimina la galeta - Confirma la supressió de les galetes - Serveis allotjats Comparteix com a QR Deshabilitar Habilitar diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index a3232ae84..328eb65cb 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -87,7 +87,6 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ nalezev existující Tor proces… Stalo se něco špatného. Zkontrolujte log - nelze číst název skryté služby Nelze spustit Tor: Vždy zobrazit ikonu ve stavovém řádku, pokud je Orbot připojen. Notifikace vždy zapnuté diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 092ff884d..b064e0c97 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -34,8 +34,7 @@ Jazyk Email Skryté Služby - Skryté Služby - Skryté Služby + Skryté Služby Uložit Jméno Hotovo! diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index a2b24ffb1..ef85ec013 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -34,8 +34,7 @@ Meddalwedd 3ydd-parti Iaith Gwasanaethau Cudd - Gwasanaethau Cudd - Gwasanaethau Cudd + Gwasanaethau Cudd Cadw Enw diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 3d77ae62f..c41936a22 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -85,15 +85,13 @@ Tor: https://www.torproject.org fandt eksisterende Tor process… Noget slemt er sket. Check loggen - ikke i stand til at læse navnet på den skjulte service - Kunne ikke starte Tor: + Kunne ikke starte Tor: Vis altid ikonet i statuslinien når Orbot er forbundet til netværket Vis altid notifikationer Sprog Mail Skjulte tjenester - Skjulte tjenester - Skjulte tjenester + Skjulte tjenester Gem Navn Deaktivere diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 27fabb26c..6bd8ef681 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -92,7 +92,6 @@ Eine Anwendung möchte den Onion Server auf Port %1$s zum Tor-Netzwerk öffnen. Dies ist sicher, wenn Sie der Anwendung vertrauen. bestehenden Tor-Prozess gefunden … Etwas ist schief gelaufen. Bitte Protokoll überprüfen - Name des versteckten Dienstes kann nicht gelesen werden Tor kann nicht gestartet werden: Symbol immer in der Statusleiste lassen, wenn Orbot verbunden ist Aktivitätsanzeige @@ -123,7 +122,6 @@ E-Mail senden Global (Automatisch) Onion Dienste - Onion-Dienste Onion-Dienste Speichern Lokaler Port @@ -131,7 +129,6 @@ Name Fertig! Adresse in die Zwischenablage kopieren - Authentifikationscookie anzeigen Backup Service (Warnung: Dadurch könnte Ihre Service Konfiguration anderen Apps zugänglich gemacht werden) Dienst löschen Sicherung auf externem Speicher abgelegt @@ -142,16 +139,8 @@ Löschen des Dienstes bestätigen Dienst-Typ Authentifikationscookie - Cookie in die Zwischenablage kopieren - Es wurde kein Authentifikationscookie festgelegt Bitte Orbot zum Aktivieren der Änderungen neustarten - Client-Cookies .onion - QR-Code einlesen - Cookie sichern - Cookie löschen - Cookie-Löschung bestätigen - Gehostete Dienste Als QR-Code teilen Deaktivieren Aktivieren @@ -207,7 +196,6 @@ Sicherungsdateiname … Entferne Client Authorisierung v3 Onion Dienst Client Authorisierung - v2 Onion Dienste (veraltet) Gehostete v3 Onion Dienste Entferne Client Authorisierungs-Schlüssel Warnung: Dadurch könnten Ihre Schlüssel anderen Apps zugänglich gemacht werden diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 15b75da68..3cab2df29 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -92,7 +92,6 @@ Κάποια εφαρμογή προσπαθεί να ανοίξει την κρυφή θύρα διακομιστή %1$dστο δίκτυο Tor. Πρόκειται για ασφαλή ενέργεια, εφόσον γνωρίζετε την εφαρμογή. αναζήτηση διεργασιών Tor… Κάτι κακό συνέβη. Ελέγξτε τις καταγραφές - αδυναμία ανάγνωσης του ονόματος της κρυφής υπηρεσίας Αδυναμία εκκίνησης του Tor: Να διατηρείται πάντοτε το εικονίδιο στην γραμμή εργαλείων όταν το Orbot συνδέεται Ειδοποιήσεις διαρκούς σύνδεσης @@ -123,7 +122,6 @@ Στείλτε Email Παγκόσμια (Auto) Αποκρυφες υπηρεσιες - Αποκρυφες υπηρεσιες Αποκρυφες υπηρεσιες Αποθήκευση Τοπική θύρα @@ -131,7 +129,6 @@ Όνομα Έγινε! Αντιγραφή διέυθυνσης στο πρόχειρο - Εμφάνιση αναγνωριστικού cookie Υπηρεσία δημιουργίας αντιγράφου ασφαλείας Διαγραφή υπηρεσίας Το αντίγράφο ασφαλείας αποθηκεύθηκε σε εξωτερικό μέσο αποθήκευσης @@ -142,16 +139,8 @@ Επιβεβαίωση διαγραφής υπηρεσίας Τύπος υπηρεσίας Αναγνωριστικό cookie - Αντιγραφή τού cookie στο πρόχειρο - Το αναγνωριστικό cookie δεν διαμορφώθηκε Παρακαλούμε επανεκκινήστε το Orbot για να ενεργοποιήσετε τις αλλαγές - Cookies πελατών .onion - Ανάγνωση από QR - Cookie αντίγραφου ασφαλείας - Αφαίρεση Cookie - Επιβεβαίωση διαγραφής τού cookie - Φιλοξενημένες υπηρεσίες Κοινοποίηση ως QR Απενεργοποίηση Ενεργοποίηση diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index c543030c0..db021c1f9 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -66,8 +66,7 @@ Entajpu pordojn Retpaĝaro(j) de la Projekto: trovi ekzistantan Tor-procedon… - ne eblas legi nomon de la kaŝita servo - Ne eblas startigi Tor: + Ne eblas startigi Tor: Lingvo Konservi Nomo diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 85ae1a5c4..7884cfbba 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -92,7 +92,6 @@ Una aplicación quiere abrir el puerto %1$d de servidor oculto a la red Tor. Esto es seguro si confía en la aplicación. Se encontró un proceso de Tor ya existente… Hubo algún tipo de problema. Compruebe el registro (log) - No fue posible leer el nombre del servicio oculto No fue posible iniciar Tor: Mantener siempre el icono de Orbot en la barra de tareas cuando esté conectado Notificaciones siempre activadas @@ -123,7 +122,6 @@ Enviar correo Global (Automático) Servicios ocultos - Servicios ocultos Servicios ocultos Guardar Puerto local @@ -131,7 +129,6 @@ Nombre ¡Hecho! Copiar dirección al portapapeles - Mostrar cookie de autentificación Hacer copia de seguridad del servicio Borrar servicio Copia de seguridad guardada en un almacenamiento externo @@ -142,16 +139,8 @@ Confirme el borrado del servicio Tipo de servicio Cookie de autentificación - Copiar cookie al portapapeles - La cookie de autentificación no fue configurada Por favor, reinicie Orbot para habilitar los cambios - Cookies de cliente .onion - Leer desde QR - Realizar copia de seguridad de cookie - Borrar cookie - Confirmar borrado de cookie - Servicios alojados Compartir como QR Deshabilitar Habilitar diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index a718a5a1d..844b61c9b 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -81,8 +81,7 @@ Kolmanda osapoole tarkvara: leidus töötav Tor protsess… Juhtus midagi halba. Kontrollige logi - ei õnnestu lugeda varjatud teenuse nime - Tor käivitamine ebaõnnestus: + Tor käivitamine ebaõnnestus: Ühendatud Orbot korral näidata katkematult ikoonide tööriistariba Pidevalt kuvatavad teated Pole võrgu auto-und diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 23791307e..e782d9636 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -92,7 +92,6 @@ Aplikazio batek ezkutuko zerbitzariko %1$d ataka ireki nau du Tor sarera. Segurua da aplikazioaz fidatzen bazara. aurreko Tor prozesu bat aurkitu da… Zerbait txarra gertatu da. Begiratu egunkarian - ezin izan da ezkutuko zerbitzuaren izena irakurri Ezin izan da Tor hasi: Mantendu ikonoa tresna barran Orbot konektatuta dagoenean Beti piztutako jakinarazpenak @@ -123,7 +122,6 @@ Bidali E-maila Orokorra (Automatikoa) Ezkutuko zerbitzuak - Ezkutuko zerbitzuak Ezkutuko zerbitzuak Gorde Ataka lokala @@ -131,7 +129,6 @@ Izena Egina! Kopiatu helbidea arbelera - Erakutsi autentifikazio cookie-a Egin zerbitzuaren babeskopia Ezabatu zerbitzua Babeskopia kanpo biltegiratzean gorde da @@ -142,16 +139,8 @@ Berretsi zerbitzua ezabatzea Zerbitzu mota Autentifikazio cookie-a - Kopiatu cookie-a arbelera - Ez da autentifikazio cookie-a konfiguratu Mesedez berrabiarazi Orbot aldaketak aktibatzeko - Bezero-cookie-ak .onion - Irakurri QR-tik - Egin cookie-aren babeskopia - Ezabatu cookie-a - Berretsi cookie-a ezabatzea - Ostatatutako zerbitzuak Partekatu QR gisa Desgaitu Gaitu diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 3ecbbf574..7acbd5f62 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -92,7 +92,6 @@ اپلیکیشنی می‌خواهد پورت سرور %1$d را به شبکه تور بگشاید. در صورتی که به این برنامه اطمینان دارید، چنین کاری امن است. یک تور درحال اجرا پیدا شد… اتفاق بدی افتاد. وقایع ثبت شده را چک کنید - ناتوان در خواندن نام سرویس مخفی ناتوان در راه اندازی تور: وقتی ربات پیازی متصل است، همیشه آیکون مربوط را در نوار ابزار نگه دار. آگاهسازی همیشه روشن @@ -123,7 +122,6 @@ ایمیل بفرست جهانی (خودکار) سرویس‌های مخفی - سرویس‌های مخفی سرویس‌های مخفی ذخيره درگاه محلی @@ -131,7 +129,6 @@ نام انجام شد! رونوشت نشانی‌ها در حافظه موقت - نمایش کوکی احراز هویت سرویس بک‌آپ حذف سرویس بک‌آپ در انباره خارجی ذخیره شد @@ -142,16 +139,8 @@ حذف سرویس را تایید کنید نوع سرویس کوکی Auth - کپی کردن کوکی به کلیپ بورد - کوکی احراز هویت پیکربندی نشده بود برای دیدن تغییرات، اوربات را دوباره راه اندازی کنید - کوکی‌های Client onion. - از QR بخوان - بک‌آپ از کوکی - حذف کوکی - تایید حذف کوکی - سرویس‌های میزبانی‌شده هم‌رسانی با QR غیرفعال کن فعال کن diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 606da9bb9..fd9b3136d 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -88,7 +88,6 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ löytyi olemassaoleva Tor-prosessi… Jotain pahaa tapahtui. Tarkista loki - piilopalvelunimen lukeminen epäonnistui Torin käynnistys epäonnistui: Pidä kuvake aina työkalupalkissa, kun Orbot on yhdistetty Ilmoitukset aina käytössä @@ -116,7 +115,6 @@ Sähköposti Lähetä sähköpostia Piilopalvelut - Piilopalvelut Piilopalvelut Tallenna Nimi @@ -137,7 +135,6 @@ Paikallinen portti Sipuliportti Kopioi osoite leikepöydälle - Näytä autenttinen eväste Poista palvelu Varmuuskopio tallennettu ulkoiseen tallennustilaan Varmuuskopio palautettu @@ -146,8 +143,6 @@ Käynnistä Tor uudelleen prosessin viimeistelemiseksi Vahvista palvelun poisto Palvelun tyyppi - Kopioi eväste leikepöydälle - Asiakasohjelman evästeet .onion Käytä QR-koodia Vahvista diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 158ac4145..818d7194f 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -88,7 +88,6 @@ LibEvent v2.0.21 : http://www.monkey.org/~provos/libevent/ un processus Tor existant a été trouvé… Une problème est survenu. Consultez le journal - impossible de lire le nom du service onion Impossible de démarrer Tor : Toujours conserver l’icône dans la barre d’outils quand Orbot est connecté Notifications toujours actives @@ -131,13 +130,11 @@ Mode RPV Global (automatique) Services onion - Services onion Services onion Port local Port onion Terminé Copier l’adresse dans le presse-papiers - Afficher le témoin d’authentification Sauvegarder le service (Avertissement : La configuration de votre service pourrait être exposée à d’autres applis) Supprimer le service La sauvegarde a été enregistrée sur la mémoire externe @@ -148,15 +145,7 @@ Confirmez la suppression du service Type de service Témoin d’authentification - Copier le témoin dans le presse-papiers - Le témoin d’authentification n’a pas été configuré - Témoins des clients .onion - Balayer un code QR - Sauvegarder le témoin - Supprimer le témoin - Confirmer la suppression du témoin - Services hébergés Partager en tant que code QR Désactiver Activer @@ -221,7 +210,6 @@ Autorisation client v3 Autorisation client Onion Service v3 Services Onion v3 hébergés - Services Onion v2 (déconseillés) Refuser Autoriser Erreur : Un service onion utilise déjà le port %s diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ae748ad36..7acca81da 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -92,8 +92,7 @@ Une appli veut ouvrir le port %1$d du serveur caché au réseau Tor. Cela est sécuritaire si vous faites confiance à l’appli. un processus existant de Tor a été trouvé… Quelque chose n’a pas été. Vérifiez le journal - impossible de lire le nom du service caché - Impossible de démarrer Tor : + Impossible de démarrer Tor : Toujours conserver l’icône dans la barre des tâches quand Orbot est connecté. Notifications toujours actives Montrer des notifications étendues avec le pays de sortie de Tor et l’IP @@ -123,7 +122,6 @@ Envoyer un courriel Mondial (Auto) Services cachés - Services cachés Services cachés Enregistrer Port local @@ -131,7 +129,6 @@ Nom Fait ! Copier l’adresse vers le presse-papiers - Afficher le témoin auth Service de sauvegarde Supprimer le service La sauvegarde a été enregistrée sur une mémoire externe @@ -142,16 +139,8 @@ Confirmer la suppression du service Type de service Témoin auth - Copier le témoin vers le presse-papiers - Le témoin auth n’est pas configuré Veuillez redémarrer Orbot pour activer les changements - Témoins du client .onion - Lire d’un code QR - Sauvegarder le témoin - Supprimer le témoin - Confirmer la suppression du témoin - Services hébergés Partager comme code QR Désactiver Activer diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 5e3862f38..fe428b35f 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -92,7 +92,6 @@ Unha aplicación quere abrir o porto oculto de servidor %1$d a rede Tor. Esto é seguro se vostede confía na app. atopado proceso Tor existente… Algo malo pasou. Comprobe o rexistro - imposible ler nome de servizo oculto Incapaz de arrancar Tor Mostrar sempre a icona na barra de ferramentas cando Orbot estea conectado Notificacións Sempre Acesas @@ -123,7 +122,6 @@ Enviar correo Global (Auto) Servizos agochados - Servizos agochados Servizos agochados Gardar Porto local @@ -131,7 +129,6 @@ Nome Feito! Copiar enderezo ao portapapeis - Mostar testemuño de autorización Servizo de respaldo Eliminar servizo Respaldo gardado en almacenamento externo @@ -142,16 +139,8 @@ Confirme a eliminación do servizo Tipo de servizo Testemuño de autorización - Copie o testemuño ao portapapeis - Non estableceu un testemuño de autorización Por favor, reinicie Orbot para activar os cambios - Testemuños do cliente .onion - Ler desde QR - Testemuño de respaldo - Eliminar testemuño - Confirme a eliminación do testemuño - Servizos hospedados Compartir como QR Inhabilitar Activar diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 84e33502b..a62178808 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -93,7 +93,6 @@ एक ऐप Tor नेटवर्क पर %1$dछिपा सर्वर पोर्ट खोलना चाहता है। यदि आप ऐप पर विश्वास करते हैं, तो यह सुरक्षित है मौजूदा तोर प्रक्रिया पाया … कुछ बुरा हो गया। लॉग की जांच करें - छिपी हुई सेवा का नाम पढ़ने में असमर्थ टो शुरू करने में असमर्थ: ऑरबोट कनेक्ट होने पर टूलबार में हमेशा आइकन रखें हमेशा की सूचनाएं @@ -124,7 +123,6 @@ ईमेल भेजें ग्लोबल (ऑटो) हिडन सेवाएं - हिडन सेवाएं हिडन सेवाएं बचाना स्थानीय पोर्ट @@ -132,7 +130,6 @@ नाम किया हुआ! क्लिपबोर्ड को पता कॉपी करें - Auth कुकी दिखाएं बैकअप सेवा सेवा हटाएँ बाह्य संग्रहण में बैकअप सहेजा गया @@ -143,16 +140,8 @@ सेवा हटाने की पुष्टि करें सेवा प्रकार Auth कुकी - क्लिपबोर्ड पर कुकी कॉपी करें - Auth कुकी कॉन्फ़िगर नहीं की गई थी परिवर्तन सक्षम करने के लिए Orbot पुनः प्रारंभ करें - क्लाइंट कुकीज़ .अनियन - QR से पढ़ें - बैकअप कुकी - कुकी हटाएं - कुकी हटाने की पुष्टि करें - होस्टेड सर्विसेस QR के रूप में शेयर करें अक्षम सक्षम करें diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index d61ec60ba..9f1e01621 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -88,8 +88,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ pronađeni postojeći Tor procesi… Nešto loše se dogodilo. Provjerite dnevnik - nije moguće pročitati ime skrivene usluge - Nije moguće pokrenuti Tor: + Nije moguće pokrenuti Tor: Uvjek drži ikonu na alatnoj traci kad je Orbot spojen Obavijesti o stalnoj pokrenutosti Prikaži proširene obavijesti s Tor izlaznom državom i IP-em diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index f0ef09eb0..6ac2622d0 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -92,7 +92,6 @@ Egy app egy rejtett szerver portot %1$d nyitna a Tor hálózatra. Ez biztonságos, ha megbízik az appban. létező Tor folyamat találva… Valami rossz történt. Nézd meg a naplót. - nem olvasható a rejtett szolgáltatás neve A Tor indítása sikertelen: Mindig tartsa az ikont az eszköztáron, ha az Orbot csatlakoztatva van. Mindig-bekapcsolt értesítések @@ -123,7 +122,6 @@ Email küldése Globális (Auto) Rejtett szolgáltatások - Rejtett szolgáltatások Rejtett szolgáltatások Mentés Helyi Port @@ -131,7 +129,6 @@ Név Kész! Cím másolása vágólapra - Azonosító süti megjelenítése Mentő szolgáltatás Szolgáltatás Törlése Külső tárhelyre mentve @@ -142,16 +139,8 @@ Szolgáltatás törlés jóváhagyása Szolgáltatás típus Azonosító süti - Süti másolása vágólapra - Azonosító süti nem konfigurált Kérlek indítsd újra az Orbot-ot a változások engedélyezéséhez - Kliens sütik .onion - Olvasás QR-ból - Süti mentése - Süti törlése - Süti törlés jóváhagyása - Futtatott szolgáltatások Megosztás QR-ként Kikapcsol Engedélyezés diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 672bd7a61..cae385180 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -88,7 +88,6 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ menemukan proses Tor yang ada… Sesuatu yang buruk terjadi. Periksa log - tidak dapat membaca nama layanan tersembunyi Tidak dapat memulai Tor: Selalu pelihara icon dalam toolbar ketika Orbot terhubung Pemberitahuan Selalu-Hidup @@ -120,7 +119,6 @@ Beres! Nama Perkhidmatan Onion - Perkhidmatan Onion Mode VPN MiB KiB diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index f3b43b3e6..9b23f2fed 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -92,7 +92,6 @@ Forrit vill opna onion-netþjón á gáttinni %1$s inn á Tor-netið. Þetta er öruggt ef þú treystir forritinu. fann annað Tor-ferli… Eitthvað slæmt gerðist. Athugaðu atvikakráninguna - get ekki lesið heiti földu þjónustunnar Get ekki ræst Tor: Alltaf hafa táknmynd í verkfærastiku þegar Orbot er tengt Alltaf-á tilkynningar @@ -123,7 +122,6 @@ Senda tölvupóst Víðvært (sjálfvirkt) Faldar þjónustur - Faldar þjónustur Faldar þjónustur Vista Staðvær gátt @@ -131,7 +129,6 @@ Heiti Lokið! Afrita vistfang yfir á klippispjald - Birta auðkenningar-vefköku Öryggisafritunarþjónusta (Aðvörun: Þetta gæti gert uppsetningu þjónustunnar þinnar sýnilega öðrum forritum) Eyða þjónustu Öryggisafrit var vistað í ytri gagnageymslu @@ -142,16 +139,8 @@ Staðfestu eyðingu á þjónustu Tegund þjónustu Auðkenningar-vefkaka - Afrita vefköku á klippispjald - Auðkenningar-vefkaka var ekki stillt Endurræstu Orbot til að breytingarnar taki gildi - Vefkökur forritsins .onion - Lesa úr QR-kóða - Öryggisafrit af vefköku - Eyða vefköku - Staðfestu eyðingu vefköku - Hýstar þjónustur Deila sem QR-kóða Gera óvirkt Virkja @@ -224,7 +213,6 @@ v3 auðkenning biðlara Auðkenning biðlara á v3 onion-þjónustum Hýstar v3 onion-þjónustur - v2 onion-þjónustur (úrelt) Hafna Leyfa SNOWFLAKE-MILLIÞJÓNSHAMUR VIRKUR diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index a51480060..19f07d709 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -92,7 +92,6 @@ Un\'app vuole aprire unserver nascosto sulla porta %1$s verso la rete Tor. È un\'azione sicura se ti fidi dell\'app. trovato un processo Tor esistente… E\' accaduto un evento indesiderato. Controllare i log - Impossibile leggere il nome del servizio onion Impossibile avviare Tor: Mantieni sempre l\'icona nella barra degli strumenti quando Orbot è connesso Notifiche sempre attive @@ -123,7 +122,6 @@ Invia email Globale (Auto) Servizi nascosti - Servizi nascosti Servizi nascosti Salva Porta locale @@ -131,7 +129,6 @@ Nome Fatto! Copia l\'indirizzo negli appunti - Mostra cookie di autenticazione Servizio di backup (Attenzione: ciò può esporre la configurazione del tuo servizio ad altre app) Elimina il servizio Backup salvato nell\'archiviazione esterna @@ -142,16 +139,8 @@ Conferma l\'eliminazione del servizio Tipo di servizio Cookie autenticazione - Copia cookie negli appunti - Cookie di autenticazione non configurato Per favore riavvia Orbot per rendere effettive le modifiche - Cookie del client .onion - Leggi da QR - Backup cookie - Elimina cookie - Conferma eliminazione cookie - Servizi ospitati Condividi come QR Disabilita Abilita diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 609fc7f8c..6609092c0 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -78,7 +78,6 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ נמצא תהליך Tor קיים… משהו רע התרחש. בדוק את היומן - לא מסוגל לקרוא שם שירות נסתר לא מסוגל להתחיל את Tor: לשמור תמיד את האיקון בסרגל כלים כשאורבוט מחובר שפה diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index d9f963fc1..18c10e0ad 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -92,7 +92,6 @@ アプリが非公開サーバーポート %1$d をTorネットワークに開放しようとしています。信頼できるアプリであればこれは安全です。 Torプロセスを発見 何かが起こりました。ログを確認してください。 - hidden serviceの名前読込不能 Torを実行できませんでした Orbotが接続中はアイコンを常にツールバーに表示 通知を常に有効化 @@ -123,7 +122,6 @@ メール送信 世界中 (自動) Hidden Services - Hidden Services Hidden Services 保存 ローカルポート @@ -131,7 +129,6 @@ 名前 完了 アドレスをクリップボードにコピー - Cookie 認証を非表示 バックアップサービス サービスを削除 バックアップは外部記憶装置に保存されました @@ -142,16 +139,8 @@ サービス削除を確認 サービスタイプ Cookie 認証 - Cookie をクリップボードにコピー - Authクッキーは設定されませんでした 変更を有効にするにはOrbotを再起動してください - クライアント Cookie .onion - QRコードから読み取り - Cookie をバックアップ - Cookie を削除 - クッキー削除を確認 - ホスト型サービス QR でシェア 無効 有効 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index cfd5a59b3..e0d6a39f1 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -88,8 +88,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ 존재하고 있는 Tor 프로세스 발견 어떤 나쁜 것이 발생. 로그 확인하세요. - 히든 서비스 이름을 읽을 수 없음 - Tor 시작 불가능 + Tor 시작 불가능 Orbot이 연결되었을 때 툴바에 아이콘 보이기 항상 켜진 알림 출구 및 IP 정보알림 보이기 diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml index f56b9f76c..84f4a16cb 100644 --- a/app/src/main/res/values-lt-rLT/strings.xml +++ b/app/src/main/res/values-lt-rLT/strings.xml @@ -20,7 +20,6 @@ Norėdami sumažinti duomenų ir akumuliatoriaus naudojimą, naudokite žemesnius užpildymo algoritmus Įgalinti grandinės užpildymą, kad būtų galima apsisaugoti nuo kai kurių srauto analizės formų Kiekvienam paskirties adresui naudoti skirtingą grandinę - Patalpintos paslaugos Klaida: „Onion Service“ jau naudoja prievadą %s Pavadinimas „v3 Onion Services“ priegloba @@ -38,7 +37,6 @@ x25519 privatus raktas 32 bazėje Prisijungti per kitus „Tor“ sujungimus (eksperimentinis) Išspręskite CAPTCHA, kad galėtumėte prašyti tiltų. - nepavyksta perskaityti onion paslaugos pavadinimo Prievadai, pasiekiami už ribojančiosios ugniasienės „Tor“ relės klausymo prievadas v3 „Onion Service“ kliento autorizavimas @@ -46,7 +44,6 @@ Prisijungti tiesiogiai prie „Tor“ (geriausia) Sėkmė. Tilto konfigūracija gera! Tikrinamas tilto prijungimas prie „Tor“…. - Auth slapukas nebuvo sukonfigūruotas Atsarginė kopija išsaugota išorinėje saugykloje atnaujinami „Tor“ paslaugos nustatymai Atidaryti įgaliotąjį serverį visose sąsajose @@ -54,7 +51,6 @@ Naudoti *tik* šiuos nurodytus mazgus Ištrinti kliento autorizavimo raktą Padaryti kliento autorizavimo rakto atsarginę kopiją - v2 „Onion Services“ (nebenaudojama) Prašyti tiltų iš torproject.org Įveskite simbolius iš vaizdo Bandomas ryšys su „Tor“… @@ -65,7 +61,6 @@ NEPAVYKO. Išbandykite kitą parinktį Apsvarstykite galimybę įjungti baterijos optimizavimą Apsvarstykite galimybę išjungti baterijos optimizavimą - Kopijuoti slapuką į iškarpinę Pirmiausia sukurkite atsarginę kopiją Kopijuoti adresą į iškarpinę Nepavyko paleisti „Tor“: @@ -89,10 +84,7 @@ Sumažintas ryšio užpildymas Išskirti paskirties adresus Bendrinti kaip QR - Patvirtinti slapuko ištrynimą - Skaityti iš QR Patvirtinti paslaugos ištrynimą - Rodyti auth slapuką „Torrc“ pasirinktinė konfigūracija DNS prievado konfigūracija „Tor“ DNS prievadas @@ -133,9 +125,6 @@ Nepavyksta prisijungti\? „Tor“ įgalintos programos Ryšio užpildymas - Ištrinti slapuką - Atsarginės kopijos slapukas - Kliento slapukai Auth slapukas Paslaugos tipas Atkurti atsarginę kopiją @@ -144,7 +133,6 @@ Onion prievadas Vietinis prievadas Onion paslaugos - Onion paslaugos Onion paslaugos Visuotinis (automatinis) Siųsti el. laišką diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index fb007f457..b5e416988 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -88,8 +88,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ Atrada esošu Tor procesu… Nav labi. Pārbaudiet žurnālu - Nespēj lasīt slēpta pakalpojuma nosaukumu - Nevar startēt Tor: + Nevar startēt Tor: Vienmēr paturēt ikonu rīkjoslā, kad Orbot ir savienots Vienmēr ieslēgtie paziņojumi Rādīt paplašinātus paziņojumus, kur norādīts IP un Tor izejas valsts @@ -116,8 +115,7 @@ E-pasts Nosūtīt e-pastu Slēptie pakalpojumi - Slēptie pakalpojumi - Slēptie pakalpojumi + Slēptie pakalpojumi Saglabāt Vārds Lūdzu pārstartējiet Orbot, lai iespējotu izmaiņas diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 58a2637a5..d464ec58a 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -92,7 +92,6 @@ Апликација сака да отвори сокриена серверска порта %1$d кон Tor мрежата. Ова е безбедно доколку и верувате на апликацијата. Пронајден постоечки Tor-процес … Се случи грешка. Проверете го дневникот - не може да се прочита името на скриениот сервис Tor не може да се стартува: Секогаш чувајте ја иконата во лентата со алатки кога Orbot е поврзан Известувања секогаш вклучени @@ -123,7 +122,6 @@ Испратете е-пошта Глобално (Автоматски) Скриени сервиси - Скриени сервиси Скриени сервиси Зачувај Локална порта @@ -131,7 +129,6 @@ Име Завршено! Копирај ја адресата за залепување - Покажи автентично колаче Резервна копија Избриши услуга Резервната копија е снимена на надворешна меморија @@ -142,16 +139,8 @@ Потврди бришење на услугата Тип на услуга Автентично колаче - Копирај колаче за залепување - Автентичното колаче не е прилагодено Ве молиме стартувајте го повторно Orbot за да се овозможат промените - Клиентски колачиња .onion - Прочитај од QR - Направи резервна копија на колаче - Избриши колаче - Потврди бришење на колаче - Хостирани услуги Сподели како QR Оневозможи Овозможи diff --git a/app/src/main/res/values-ms-rMY/strings.xml b/app/src/main/res/values-ms-rMY/strings.xml index f35b7910c..bfd5f44c0 100644 --- a/app/src/main/res/values-ms-rMY/strings.xml +++ b/app/src/main/res/values-ms-rMY/strings.xml @@ -79,13 +79,11 @@ 3rd-Party-Software: Proses Tor sedia ada ditemui.. Sesuatu yang buruk berlaku. Semak log. - tidak dapat membaca nama servis tersembunyi Tidak dapat memulakan Tor: Sentiasa biar ikon pada toolbar apabila Orbot bersambung Sentiasa On Notifikasi Bahasa Perkhidmatan tersembunyi - Perkhidmatan tersembunyi Perkhidmatan tersembunyi Simpan Nama diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index 01d411b45..c3acfb105 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -72,8 +72,7 @@ 3rd-Party-Software: Proses Tor sedia ada ditemui.. Sesuatu yang buruk berlaku. Semak log. - tidak dapat membaca nama servis tersembunyi - Tidak dapat memulakan Tor: + Tidak dapat memulakan Tor: Sentiasa biar ikon pada toolbar apabila Orbot bersambung Sentiasa On Notifikasi Tetapan Tempatan diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml index c2a6e7bdc..d63dceec3 100644 --- a/app/src/main/res/values-my/strings.xml +++ b/app/src/main/res/values-my/strings.xml @@ -20,8 +20,7 @@ ဘာသာစကား အီးေမးလ္ Hidden Services - Hidden Services - Hidden Services + Hidden Services သိမ္းဆည္းပါ အမည် diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 0b7203efa..bb64e5971 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -90,7 +90,6 @@ OpenSSL v1.0.2j: https://www.openssl.org fant eksisterende Tor-prosess… Noe alvorlig skjedde. Sjekk loggen. - klarte ikke å lese skjult tjenestenavn Klarte ikke å starte Tor: Alltid behold ikonet i verktøyslinjen når Orbot er tilkoblet Alltid-På -varslinger @@ -119,7 +118,6 @@ VPN-modus Send e-post Hidden Services - Hidden Services Hidden Services Lagre Lokalt port @@ -135,15 +133,8 @@ Start Tor igjen for å fullføre prosessen Bekreft sletting av tjeneste Tjenestetype - Kopier kake til utklippstavle Gjør omstart av Orbot før endringer trer i kraft - Klientinformasjonskapsler .onion - Les fra QR - Sikkerhetskopier informasjonskapsel - Slett informasjonskapsel - Bekreft sletting av informasjonskapsel - Vertstjenester Del som QR Skru av Slå på @@ -161,7 +152,6 @@ SOCKS: - HTTP: - HTTP-portoppsett Identitetsbekreftelseskake - Identitetsbekreftelseskake ikke satt opp Overvei å skru av batterioptimalisering Overvei å skru på batterioptimalisering Isoler måladresser @@ -178,7 +168,6 @@ Redusert tilknytningsutfylling Tillat tilknytningsutfylling for å beskytte mot noen typer trafikkanalyse. Forvalg: auto Tilkoblingsutfylling - Vis identitetsbekreftelseskake Tillat Wi-Fi-likemenn, tjudrede enheter, og alle som kan koble til din IP; tilgang til Tor Programmer som kan bruke Tor Brooppsettet fungerer. diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index b690a5abd..9140435ca 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -92,7 +92,6 @@ Een app wil de verborgenserverpoort %1$d tot het Tor-netwerk openen. Dit is veilig als je de app vertrouwt. bestaand Tor-proces gevonden… Er is een fout opgetreden. Controleer de log - Kan verborgen dienst-naam niet lezen Kan Tor niet starten: Houd icoon in taakbalk zolang Orbot verbonden is Meldingen altijd aan @@ -123,7 +122,6 @@ E-mail versturen Algemeen (automatisch) Verborgen diensten - Verborgen diensten Verborgen diensten Opslaan Lokale poort @@ -131,7 +129,6 @@ Naam Klaar! Adres kopiëren naar klembord - Authenticatiecookie tonen Back-updienst Dienst verwijderen Back-up opgeslagen op externe opslag @@ -142,16 +139,8 @@ Bevestig verwijderen van dienst Diensttype Authenticatiecookie - Cookie kopiëren naar klembord - Authenticatiecookie is niet ingesteld Herstart Orbot om de wijzigingen in te schakelen - Cliëntcookies .onion - Lezen van QR-code - Back-up maken van cookie - Cookie verwijderen - Bevestig verwijderen van cookie - Gehoste diensten Delen als QR-code Uitschakelen Inschakelen diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index d41d70ae0..8498ab0d7 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -88,7 +88,6 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ znaleziono istniejący proces Tora… Coś nie poszło nie tak. Sprawdź logi - uniemożliw czytanie nazw ukrytych serwisów Nie można wystartować aplikacji Tor: Zawsze trzymaj ikonę w pasku powiadomień gdy Orbot jest połączony Powiadomienia zawsze aktywne @@ -117,7 +116,6 @@ Tryb VPN Wyślij Email Ukryte Usługi - Ukryte Usługi Ukryte Usługi Zapisz Lokalne Porty @@ -138,12 +136,7 @@ Obfs4proxy: https://github.com/Yawning/obfs4 Rozważ wyłączenie optymalizacji baterii Udostępnij jako QR - Potwierdź usunięcie pliku cookie - Usuń plik cookie - Kopia zapasowa pliku cookie - Czytaj z QR .onion - Skopiuj plik cookie do schowka Typ usługi Potwierdź usunięcie usługi Uruchom Tor ponownie, aby zakończyć proces @@ -153,10 +146,7 @@ Kopia zapasowa zapisywana w pamięci zewnętrznej Usługa tworzenia kopii zapasowych Aplikacja chce otworzyć port serwera cebulowego %1$d do sieci Tor. Jest to bezpieczne, jeśli zaufasz aplikacji. - Klient cookies Autoryzacja cookie - Pokaż autoryzację cookie - Autoryzowany plik cookie nie został skonfigurowany Jeśli twoja sieć komórkowa aktywnie blokuje Tor, możesz użyć „Serwer mostkowy” jako alternatywnego sposobu wejścia. Wybierz jedną z opcji, aby skonfigurować i przetestować … Orbot to aplikacja typu open source, która zawiera Tor, Obfs4Proxy, BadVPN, Tun2Socks i LibEvent. Zapewnia lokalny serwer proxy HTTP (8118) i serwer proxy SOCKS (9050) do sieci Tor. Orbot ma również możliwość, na zrootowanym urządzeniu, wysyłania całego ruchu internetowego przez Tor. Odśwież aplikacje @@ -180,7 +170,6 @@ Użyj innego obwodu dla każdego adresu docelowego Izoluj adresy docelowe Rozważ wyłączenie optymalizacji baterii - Usługi Hostingowe Wypełnienie połączenia Zawsze włącza wypełnienie połączenia, aby chronić się przed niektórymi formami analizy ruchu. Domyślnie: auto SOCKS: - HTTP: - diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index bd62525fd..192fdb6ca 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -92,7 +92,6 @@ Um aplicativo quer abrir uma porta no servidor onion %1$s para a rede Tor. É seguro caso você confie neste aplicativo. processos Tor existentes foram encontrados… Algo ruim aconteceu. Verifique o registro de log - incapaz de ler o nome do serviço onion Não é possível iniciar o Tor: Mantenha sempre um ícone na barra de ferramentas quando o Orbot estiver conectado Notificações Sempre Ligadas @@ -123,7 +122,6 @@ Enviar Email Global (Automático) Serviços Ocultos - Serviços Ocultos Serviços Ocultos Salve Porta Local @@ -131,7 +129,6 @@ Nome Feito! Copiar para a area de transferência - Mostre cookie de autenticação Serviço de Backup (Aviso: Isso pode expor a sua configuração de serviço para os outros aplicativos) Remover Serviço Backup salvo em mídia externa @@ -141,7 +138,6 @@ Confirmar a remoção do serviço Tipo do Serviço Cookie de autenticação - Copiar cookie para a area de transferência Por favor reinicie Orbot para habilitar as mundanças Compartilhar como QR Desabilitar @@ -173,14 +169,7 @@ Isole os endereços do destino Considere ativar as otimizações da bateria Considere a desativação das otimizações da bateria - Serviços Hospedados - Confirmar a exclusão do cookie - Excluir o cookie - Cópia de segurança do cookie - Ler a partir do QR .onion - Cookie dos Clientes - O cookie de Autenticação não foi configurado Inicie o Tor novamente para encerrar o processo Configuração da Porta HTTP Porta HTTP onde o proxy do Tor está escutando (a predefinição é: 8118 ou 0 para desativar) @@ -223,7 +212,6 @@ Autorização v3 do cliente Autorização do cliente do serviço Onion v3 Serviços Onion v3 hospedados - v2 Onion Services (Descontinuado) Negue Permita Erro: Um serviço Onion já está usando a porta %s diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index d3c9255f9..02490a926 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -62,11 +62,9 @@ Usar um circuito diferente para cada endereço de destino Permita que pares Wi-Fi, aparelhos conectados e outros que se possam conectar ao seu IP, acessem o Tor Serviços ao utilizador - Cookie de backup Nova Identidade VPN Desativado Considere a possibilidade de ativar otimizações de bateria - O cookie de autenticação não foi configurado Sempre ativa o preenchimento de conexão para se defender de algumas formas de análise de tráfego. Predefinição: auto Isolar os endereços de destino Diz às saídas para não se conectarem a endereços IPv4 @@ -74,7 +72,6 @@ Serviços de app Preenchimento de conexão reduzido Reiniciar o Tor para terminar o processo - Eliminar cookie SOCKS: - HTTP: - Fecha conexões de relé mais cedo e envia menos pacotes de preenchimento para reduzir dados e uso de bateria Atualizar apps @@ -85,21 +82,15 @@ Preferir conexões IPv6 Aconteceu algo de mau. Verifique o registo de eventos Porta em que o Tor oferece o seu proxy HTTP (predefinição: 8118 ou 0 para desativar) - Confirmar eliminação de cookies - Cookie dos Clientes Preenchimento de conexão Abrir o Proxy em Todas as Interfaces Configuração da Porta HTTP - Ler do QR Considere a possibilidade de desativar otimizações de bateria - Serviços Hospedados - não é possível ler o nome do serviço ocultado Porta Proxy de Saída Portas alcançáveis por detrás de uma Firewal restritiva Nome do Utilizador do Proxy de Saída Nome do Hospedeiro do Servidor Proxy a atualizar as definições no serviço Tor - Serviços ocultos Serviços ocultos Protocolo para usar para o servidor proxy: HTTP, HTTPS, Socks4, Socks5 Porta do Servidor Proxy @@ -131,7 +122,6 @@ Aplicações ativadas para o Tor Compartilhar como QR Por favor reinicie Orbot para ativar as mundanças - Copiar cookie para a area de transferência Cookie de autenticação Tipo do Serviço Confirmar a remoção do serviço @@ -141,7 +131,6 @@ Backup gravado em mídia externa Remover Serviço Serviço de Backup (Aviso: Isso pode expor a sua configuração de serviço para as outras apps) - Mostre cookie de autenticação Copiar para a area de transferência Porta Onion Porta Local @@ -221,7 +210,6 @@ Autorização v3 do cliente Autorização do cliente do serviço Onion v3 Serviços Onion v3 hospedados - v2 Onion Services (Descontinuado) Solicite Pontes através do E-mail MiB KiB diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index b8eca00c6..31728d347 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -58,7 +58,6 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ processo Tor existente foi encontrado… Aconteceu algo de mau. Verifique o registo de eventos - não é possível ler o nome do serviço ocultado Não é possível iniciar o Tor: Notificações Sempre Ativadas Notificações Estendidas @@ -71,7 +70,6 @@ Correio Eletrônico Enviar Mensagem Serviços ocultos - Serviços ocultos Serviços ocultos Guardar Nome @@ -96,14 +94,7 @@ Isolar os endereços de destino Considere a possibilidade de ativar otimizações de bateria Considere a possibilidade de desativar otimizações de bateria - Serviços Hospedados - Confirmar eliminação de cookies - Eliminar cookie - Cookie de backup - Ler do QR .onion - Cookie dos Clientes - O cookie de autenticação não foi configurado Reiniciar o Tor para terminar o processo Configuração da Porta HTTP Porta em que o Tor oferece o seu proxy HTTP (predefinição: 8118 ou 0 para desativar) @@ -121,7 +112,6 @@ Aplicações ativadas para o Tor Compartilhar como QR Por favor reinicie Orbot para ativar as mundanças - Copiar cookie para a area de transferência Cookie de autenticação Tipo do Serviço Confirmar a remoção do serviço @@ -131,7 +121,6 @@ Backup gravado em mídia externa Remover Serviço Serviço de Backup (Aviso: Isso pode expor a sua configuração de serviço para as outras apps) - Mostre cookie de autenticação Copiar para a area de transferência Porta Onion Porta Local @@ -221,7 +210,6 @@ Autorização v3 do cliente Autorização do cliente do serviço Onion v3 Serviços Onion v3 hospedados - v2 Onion Services (Descontinuado) Solicite Pontes através do E-mail MiB KiB diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index c67ef3f43..7c95af48d 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -95,16 +95,8 @@ Activați Dezactivați Partajați ca QR - Servicii găzduite - Confirmați ștergerea cookie-urilor - Ștergeți cookie-ul - Cookie de rezervă - Citiți din QR .onion - Cookie-uri pentru clienți Vă rugăm să reporniți Orbot pentru a activa modificările - Cookie-ul de autentificare nu a fost configurat - Copiați cookie-ul în clipboard Cookie de autentificare Tipul de serviciu Confirmați ștergerea serviciului @@ -116,7 +108,6 @@ Copie de rezervă salvată la o unitate de stocare externă Ștergeți serviciul Serviciul de backup (Atenție: Acest lucru ar putea expune configurația serviciului dvs. altor aplicații) - Arată cookie-ul de autentificare Copiați adresa în clipboard Realizat! Nume @@ -124,7 +115,6 @@ Port local Salvați Onion Servicii - Onion Servicii Confirmați Importați .auth_private Nume fișier de rezervă… @@ -137,7 +127,6 @@ Autorizare client v3 v3 Onion Service Autorizare client Servicii găzduite v3 Onion - v2 Onion Servicii (Depreciat) Onion Servicii Nivel global (Auto) Trimiteți un e-mail @@ -176,7 +165,6 @@ Notificări Always-On Păstrați întotdeauna pictograma în bara de instrumente atunci când Orbot este conectat Nu se poate porni Tor: - nu se poate citi numele serviciului onion S-a întâmplat ceva rău. Verifică jurnalul a găsit procesul Tor existent… Refuzați diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 8ca871160..60e863f1f 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -88,8 +88,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ găsit proces Tor existent… Ceva rău s-a întâmplat. Verifică log-ul - nu am putut citi numele serviciului ascuns - Nu am reuşit să pornesc Tor: + Nu am reuşit să pornesc Tor: Arată tot timpul icoana în bară când Orbot este conectat Notificări active tot timpul Arată notificări extinse cu Tor exit country şi IP @@ -116,8 +115,7 @@ Email Trimite email Servicii ascunse - Servicii ascunse - Servicii ascunse + Servicii ascunse Salvează Nume Gata! diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index fd97674d2..fff536623 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -92,7 +92,6 @@ Приложение хочет открыть onion-сервер на порту %1$s в сети Tor. Это безопасно, если вы доверяете приложению. найден существующий процесс Tor… Произошло что-то плохое. Проверьте журнал - невозможно прочитать имя скрытой службы Невозможно запустить Tor: Всегда отображать иконку в панели задач когда Orbot подключён Постоянное уведомление о работе @@ -123,7 +122,6 @@ Отправить письмо Мир (авто) Скрытые службы - Скрытые службы Скрытые службы Сохранить Локальный порт @@ -131,7 +129,6 @@ Имя Готово! Скопировать адрес в буфер обмена - Показать авторизирующие cookie Резервное копирование службы (Внимание: это может раскрыть конфигурацию вашей службы другим приложениям) Удалить службу Резервная копия сохранена на внешнем хранилище @@ -142,16 +139,8 @@ Подтверждение удаления службы Тип службы Авторизирующие cookie - Копировать cookie в буфер обмена - Авторизирующие cookie не настроены Пожалуйста, перезапустите Orbot для вступления изменения в силу - Cookies для клиентов .onion - Прочитать из QR-кода - Резервировать cookie - Удалить cookies - Подтвердите удаление cookie - Размещённые службы Поделиться через QR-код Отключить Включить @@ -223,7 +212,6 @@ v3 Авторизация клиента v3 Onion Service Авторизация Клиента Хостинг v3 Onion Services - v2 Onion Services (Устаревшие) Запросить мосты по электронной почте MiB KiB diff --git a/app/src/main/res/values-si-rLK/strings.xml b/app/src/main/res/values-si-rLK/strings.xml index 2a490c831..d969e0c36 100644 --- a/app/src/main/res/values-si-rLK/strings.xml +++ b/app/src/main/res/values-si-rLK/strings.xml @@ -74,13 +74,11 @@ 3 වන පාර්ශව මෘදුකාංග පවතින Tor ක්‍රියාවලි හමුවිය… යම් නොමනා දෙයක් සිදුවිය. ලොගය පරික්ෂා කර බලන්න - සැගවුණු සේවා නාමය කියවීමට නොහැකිය Tor ආරම්භ කිරීමට නොහැකිය: Orbot සම්බන්ධ වී ඇති සැමවිටම විට මෙවලම් තීරුවේ නිරූපකය තබාගන්න නිවේදන ලැබීමට සලස්වන්න භාෂාව සැගවුණු සේවා - සැගවුණු සේවා සැගවුණු සේවා සුරකින්න නම diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index e99fcfadb..e9f5f7799 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -88,8 +88,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ nájdený iný proces Tor… Deje sa niečo zlé. Skontrolujte podrobnosti. - nemožné prečítať názov skrytej služby - Nemožné spustiť Tor: + Nemožné spustiť Tor: Vždy ponechať ikonu v stavovom riadku, keď je Orbot pripojený Vždy zapnuté upozornenia Zobraziť rozšírené upozornenie s výstupnou krajinou a IP adresou siete Tor diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index fd39aabac..23ed463d6 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -90,8 +90,7 @@ Апликација жели да отвори сакривен порт%1$d на серверу за Тор мрежу. Ово је сигуран потез уколико верујете апликацији. нађен покренути Тор процес… Нешто лоше се догодило. Прегледајте логове - нисам у могућности да прочитам име сакривеног сервиса - Тор није у могућности да се покрене: + Тор није у могућности да се покрене: Увек прикажи икону у тулбару када је Орбот конектован Стално укључене нотификације Прикажи опширно обавештење Тор излаза државе и IP-ја @@ -121,7 +120,6 @@ Пошаљи Е-пошту Глобално (Аутоматски) Скривени Сервиси - Скривени Сервиси Скривени Сервиси Сачувај Локални Порт @@ -129,8 +127,7 @@ Име Готово ! Копирај адреса у clipboard - Покажите ауторизовани колачић - Услуга за резервне копије + Услуга за резервне копије Обриши Услугу Резербна копија је сачувана на спољној меморији Резервна копија је обновљена @@ -140,13 +137,7 @@ Потрврди брисанје услуге Тип Услуге Молимо покрените поново Орбот ради примењивања промена - Колачићи клијента .onion - Прочитај са QR кода - Резервна копија колачића - Избриши колачић - Потрврди брисање колачића - Хостоване Услуге Дели као QR код Онемогући Омогући diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index da8533397..2dc2eaebd 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -92,7 +92,6 @@ En app vill öppna dold serverport %1$d till Tor-nätverket. Det här är säkert om du litar på appen. hittade existerande Tor process… Något dåligt hände. Kolla loggen - kan inte läsa gömda tjänstens namn Kan inte starta Tor: Behåll alltid ikonen i verktygsfältet när Orbot är ansluten Alltid-På Notifikationer @@ -123,7 +122,6 @@ Skicka e-post Global (automatisk) Hidden Services - Hidden Services Hidden Services Spara Lokal port @@ -131,7 +129,6 @@ Namn Klart! Kopiera adress till urklipp - Visa auth kaka Säkerhetskopiera tjänst Ta bort tjänst Säkerhetskopiering sparad i externt lagringsutrymme @@ -142,16 +139,8 @@ Bekräfta tjänst borttagning Typ av tjänst Auth kaka - Kopiera kaka till urklipp - Auth kaka var inte konfigurerad Vänligen starta om Orbot för att aktivera ändringarna - Klientkakor .onion - Läs från QR - Säkerhetskopiera kaka - Ta bort kaka - Bekräfta borttagning av kaka - Värdtjänster Dela som QR Inaktivera Aktivera diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index ae302dc09..1971ddc29 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -35,11 +35,7 @@ சேமி பெயர் சேவை வகை - நினைவிகளை காப்புப்பிரதிகலெடு - நினைவிகளை ஆழி - நினைவிகளின் நீக்கத்தை உறுதிப்படுத்து - வழங்கப்பட்ட சேவைகள் - QR ஆக பகிர் + QR ஆக பகிர் முடக்கு செயல்படுத்து இணைப்பதில் சிக்கலா ? diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 63695c38b..52f7d9fa9 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -92,7 +92,6 @@ โปรแกรมต้องการเปิดพอร์ต %1$d ที่ซ่อนอยู่ของเซิร์ฟเวอร์ให้เชื่อมกับเครือข่าย Tor การกระทำนี้ปลอดภัยถ้าคุณเชื่อถือโปรแกรมนั้น พบกระบวนการ Tor ที่มีอยู่แล้ว… เกิดอะไรไม่ดีสักอย่าง ให้ตรวจดูจากบันทึก - ไม่สามารถอ่านชื่อของบริการที่ซ่อน ไม่สามารถเริ่ม Tor: แสดงไอคอนในทูลบาร์เสมอเมื่อ Orbot เชื่อมต่ออยู่ การแจ้งเตือนแบบตลอดเวลา @@ -123,7 +122,6 @@ ส่งอีเมล ทั่วโลก (อัตโนมัติ) บริการที่ซ่อน - บริการที่ซ่อน บริการที่ซ่อน บันทึก พอร์ตในเครื่อง @@ -131,7 +129,6 @@ ชื่อเอกสาร เสร็จสิ้น! คัดลอกที่อยู่ลงในคลิปบอร์ด - แสดงคุกกี้ที่ได้รับอนุญาต บริการสำรองข้อมูล บริการลบ ข้อมูลสำรองบันทึกที่ที่เก็บข้อมูลภายนอก @@ -142,16 +139,8 @@ ยืนยันการลบบริการ ประเภทของบริการ คุกกี้ที่ได้รับอนุญาต - คัดลอกคุกกี้ลงในคลิปบอร์ด - ยังไม่ได้กำหนดค่าคุกกี้ที่ได้รับอนุญาต กรุณาเริ่ม Orbot ใหม่เพื่อให้การเปลี่ยนแปลงใช้งานได้ - คุกกี้ของไคลเอ็นต์ .onion - อ่านจากคิวอาร์ - สำรองข้อมูลคุกกี้ - ลบคุกกี้ - ยืนยันการลบคุกกี้ - บริการโฮสต์ แชร์ในรูปแบบคิวอาร์ ปิดการใช้งาน เปิดใช้งาน diff --git a/app/src/main/res/values-tl/strings.xml b/app/src/main/res/values-tl/strings.xml index 13709dbac..26bf66016 100644 --- a/app/src/main/res/values-tl/strings.xml +++ b/app/src/main/res/values-tl/strings.xml @@ -86,8 +86,7 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ nakakita ng umiiral na Tor process… May nangyaring masama. Tingnan ang log - hindi mabasa ang pangalan ng tagong serbisyo - Hindi masimulan ang Tor: + Hindi masimulan ang Tor: Palaging panatilihin ang icon sa toolbar kapag ang Orbot ay naka-connect Palaging i-On ang Notifications Ipakita ang pinalaking notification kasama ng Tor exit country at IP diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 63a7cdd27..81a13a472 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -92,7 +92,6 @@ Bir uygulama %1$s numaralı bağlantı noktasındaki onion sunucusunu Tor ağına açmak istiyor. Uygulamaya güveniyorsanız bu güvenlidir. varolan bir Tor işlemi bulundu… Bir şeyler ters gitti. Günlük kayıtlarına bakın - gizli hizmet adı okunamadı Tor başlatılamadı: Orbot bağlı olduğu sürece simge araç çubuğunda görüntülensin Bildirimler Her Zaman Açık @@ -123,7 +122,6 @@ E-posta Gönder Genel (Otomatik) Gizli Hizmetler - Gizli Hizmetler Gizli Hizmetler Kaydet Yerel Bağlantı Noktası @@ -131,7 +129,6 @@ Ad Tamam! Adresi panoya kopyala - Kimlik doğrulama çerezini görüntüle Hizmeti Yedekle (Uyarı: Bu, Diğer Uygulamaların Hizmet Yapılandırmanıza Erişebilmesine Neden Olabilir) Hizmeti Sil Yedek dış depolamaya kaydedildi @@ -142,16 +139,8 @@ Hizmeti Silmeyi Onayla Hizmet Türü Kimlik Doğrulama Çerezi - Çerezi panoya kopyala - Kimlik doğrulama çerezi yapılandırılmamış Değişiklikleri etkinleştirmek için Orbot uygulamasını yeniden başlatın - İstemci Çerezleri .onion - QR kodundan oku - Çerezi yedekle - Çerezi sil - Çerezi silmeyi onayla - Barındırılan Hizmetler QR Olarak Paylaş Devre Dışı Bırak Etkinleştir @@ -223,7 +212,6 @@ v3 İstemci Yetkilendirmesi v3 Onion Hizmeti İstemci Yetkilendirmesi Barındırılan v3 Onion Hizmetleri - v2 Onion Hizmetleri (Kullanımdan Kaldırıldı) Reddet İzin ver Hata: Bir Onion Hizmeti Zaten %s Bağlantı Noktasını Kullanıyor diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index fa5ad41b8..2cb12888b 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -92,7 +92,6 @@ Застосунок хоче відкрити сервер onion на порту %1$s до мережі Tor. Це безпечно, якщо ви довіряєте застосунку. знайдено наявний процес Tor… Виникла якась помилка. Перевірте лог - неможливо прочитати ім\'я прихованої служби Неможливо запустити Tor: Завжди показувати іконку в панелі завдань коли Orbot підключений Сповіщення про постійну роботу @@ -123,7 +122,6 @@ Надіслати листа Глобальний (автоматичний) Приховані Послуги - Приховані Послуги Приховані Послуги Зберегти Місцевий Порт @@ -131,7 +129,6 @@ Ім\'я Зроблено! Скопіювати адресу в буфер обміну - Показати авторизацію реп\'яшків Резервне копіювання (Попередження: це може надати конфігурацію вашої служби іншим програмам) Вилучити Сервіс Резервна копія збережена на зовнішній пам\'яті @@ -142,16 +139,8 @@ Підтвердьте видалення сервісу Тип сервісу Авторизація реп\'яшків - Копіювати реп\'яшки в буфер обміну - Авторизація реп\'яшків не налаштована Будь ласка, перезапустіть Orbot, щоб зміни ввійшли в силу - Клієнтські Cookie .onion - Зчитати з QR-коду - Резервне копіювання реп\'яшків - Вилучити реп\'яшки - Підтвердити вилучення реп\'яшків - Розміщені Сервіси Поділитися у виді QR-коду Вимкнути Увімкнути @@ -223,7 +212,6 @@ Авторизація клієнта v3 Авторизація клієнта служби Onion v3 Хостинг служб Onion v3 - Служби Onion v2 (застарілі) Заборонити Длзволити Помилка: служба Onion вже використовує порт %s diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 73d36ced5..6d2436c23 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -88,7 +88,6 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ tìm ra tiến trình hiện hành của Tor… Có gì đó không ổn. Xin xem lại nhật ký - không thể đọc được tên dịch vụ ẩn Không thể khởi động Tor được: Luôn giữ thông báo trong thanh trạng thái khi Orbot được kết nối Thông báo thường trực @@ -162,15 +161,7 @@ Hãy cân nhắc việc bật tối ưu hoá pin Hãy cân nhắc việc tắt tối ưu hoá pin Chia sẻ dưới dạng QR - Dịch vụ được lưu trữ - Xác nhận xoá cookie - Xoá cookie - Sao lưu cookie - Đọc từ QR .onion - Cookie khách - Cookie xác thực không được thiết lập - Sao chép cookie vào bộ nhớ tạm Cookie xác thực Loại dịch vụ Xác nhận xoá dịch vụ @@ -182,13 +173,11 @@ Đã lưu bản sao lưu ở bộ nhớ ngoài Xoá dịch vụ Sao lưu dịch vụ (Cảnh báo: Việc này có thể sẽ làm lộ thiết lập dịch vụ của bạn cho các ứng dụng khác) - Hiện cookie xác thực Sao chép địa chỉ vào bộ nhớ tạm Xong! Cổng Onion Cổng cục bộ Dịch vụ Onion - Dịch vụ Onion Xác nhận Nhập .auth_private Tên tệp sao lưu… @@ -201,7 +190,6 @@ Uỷ quyền khách v3 Uỷ quyền khách cho dịch vụ Onion v3 Dịch vụ Onion v3 được lưu trữ - Dịch vụ Onion v2 (Không được hỗ trợ nữa) MiB KiB Làm mới các ứng dụng diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index c6f652b0b..2c035a475 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -88,7 +88,6 @@ LibEvent v2.0.21: http://www.monkey.org/~provos/libevent/ 发现现有的Tor进程… 发生错误,请检查日志 - 无法读取隐藏服务名称 无法启动 Tor: Orbot 连接后始终在通知栏显示图标 始终显示通知 @@ -140,7 +139,6 @@ 再次启动 Tor 以完成该过程 确认服务删除 服务类型 - 从二维码读取 以 QR 码形式分享 禁用 启用 @@ -158,10 +156,6 @@ 全设备 VPN VPN 已禁用 SOCKS: - HTTP: - - 复制 cookie 到剪贴板 - 备份 cookie - 删除 cookie - 确认 cookie 删除 对每个目标地址使用不同的回路 刷新应用程序 应用服务 @@ -176,17 +170,12 @@ 隔离目标地址 认证 cookie 先建立一个备份 - 显示 auth cookie 洋葱端口 洋葱服务 - 洋葱服务 洋葱服务 一个应用程序想要在端口 %1$s上打开到 Tor 网络的洋葱服务器。如果你信任这个应用程序,这是安全的。 连接填充 - 托管的服务 .onion 地址 - 客户端 Cookies - 未配置 Auth cookie 通过其他 Tor 对等端连接 (实验性) 使用二维码 粘贴网桥 @@ -223,7 +212,6 @@ v3 客户端授权 v3 Onion 服务客户端授权 托管的 v3 Onion 服务 - v2 Onion 服务 (已废弃) 拒绝 允许 错误:一个 Onion 服务已经在使用端口 %s diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d84a766c5..3896c7420 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -92,8 +92,7 @@ 有一個應用要開啟隱藏的伺服器端口 %1$d 到 Tor 網路,如果信得過此應用才進行此操作 發現已有 Tor 程序運行中 … 發生錯誤。檢視日誌檔 - 無法讀取隱藏服務的名稱 - 無法啟動 Tor: + 無法啟動 Tor: 當 Orbot 連線成功時,總是在工具列顯示它的圖示 總是顯示連線通知 在通知中顯示 Tor 出口點的國家和 IP @@ -123,7 +122,6 @@ 寄送電子信件 全域(自動) 隱藏服務 - 隱藏服務 隱藏服務 儲存 本地端口 @@ -131,7 +129,6 @@ 名稱 已完成! 複製地址到剪貼簿 - 顯示 auth cookie 備份服務 刪除服務 備份檔儲存在外部儲存器 @@ -142,16 +139,8 @@ 確認服務刪除 服務類型 Auth cookie - 複製 Cookie 到剪貼簿 - Auth cookie 未設定 請重新啟動 Orbot 來讓設定生效。 - 客戶 cookies .onion - 由 QR 碼讀取 - 備分 cookie - 刪除 cookie - 確認刪除 cookie - 主機的服務 利用 QR 碼分享 關閉 啟用 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 98fc6c828..7936af5b3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -102,7 +102,6 @@ Deny found existing Tor process… Something bad happened. Check the log - unable to read onion service name Unable to start Tor: Always keep the icon in toolbar when Orbot is connected @@ -162,7 +161,6 @@ Global (Auto) Onion Services - v2 Onion Services (Deprecated) Hosted v3 Onion Services v3 Onion Service Client Authorization v3 Client Authorization @@ -175,7 +173,6 @@ Backup filename… Import .auth_private Confirm - Onion Services Onion Services Save Local Port @@ -183,7 +180,6 @@ Name Done! Copy address to clipboard - Show auth cookie Backup Service <i>(Warning: This Could Expose Your Service Configuration to Other Apps)</i> Delete Service Backup saved at external storage @@ -195,16 +191,8 @@ Confirm service deletion Service type Auth cookie - Copy cookie to clipboard - Auth cookie was not configured Please restart Orbot to enable the changes - Client Cookies .onion - Read from QR - Backup cookie - Delete cookie - Confirm cookie deletion - Hosted Services Share as QR Disable Enable diff --git a/orbotservice/src/main/java/org/torproject/android/service/OrbotService.java b/orbotservice/src/main/java/org/torproject/android/service/OrbotService.java index 70ccf17ef..e90be3f34 100644 --- a/orbotservice/src/main/java/org/torproject/android/service/OrbotService.java +++ b/orbotservice/src/main/java/org/torproject/android/service/OrbotService.java @@ -53,7 +53,6 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; @@ -85,22 +84,9 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb static final int NOTIFY_ID = 1; private static final int ERROR_NOTIFY_ID = 3; - private static final int HS_NOTIFY_ID = 4; - private static final Uri V2_HS_CONTENT_URI = Uri.parse("content://org.torproject.android.ui.hiddenservices.providers/hs"); private static final Uri V3_ONION_SERVICES_CONTENT_URI = Uri.parse("content://org.torproject.android.ui.v3onionservice/v3"); - private static final Uri COOKIE_CONTENT_URI = Uri.parse("content://org.torproject.android.ui.hiddenservices.providers.cookie/cookie"); private static final Uri V3_CLIENT_AUTH_URI = Uri.parse("content://org.torproject.android.ui.v3onionservice.clientauth/v3auth"); private final static String NOTIFICATION_CHANNEL_ID = "orbot_channel_1"; - private static final String[] LEGACY_V2_ONION_SERVICE_PROJECTION = new String[]{ - OnionService._ID, - OnionService.NAME, - OnionService.DOMAIN, - OnionService.PORT, - OnionService.AUTH_COOKIE, - OnionService.AUTH_COOKIE_VALUE, - OnionService.ONION_PORT, - OnionService.ENABLED, - OnionService.PATH}; private static final String[] V3_ONION_SERVICE_PROJECTION = new String[]{ OnionService._ID, OnionService.NAME, @@ -110,11 +96,6 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb OnionService.ENABLED, OnionService.PATH }; - private static final String[] LEGACY_COOKIE_PROJECTION = new String[]{ - ClientCookie._ID, - ClientCookie.DOMAIN, - ClientCookie.AUTH_COOKIE_VALUE, - ClientCookie.ENABLED}; private static final String[] V3_CLIENT_AUTH_PROJECTION = new String[]{ V3ClientAuth._ID, V3ClientAuth.DOMAIN, @@ -144,7 +125,7 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb private NotificationManager mNotificationManager = null; private NotificationCompat.Builder mNotifyBuilder; private boolean mNotificationShowing = false; - private File mHSBasePath, mV3OnionBasePath, mV3AuthBasePath; + private File mV3OnionBasePath, mV3AuthBasePath; private ArrayList alBridges = null; /** @@ -464,10 +445,6 @@ public void onCreate() { if (!appCacheHome.exists()) appCacheHome.mkdirs(); - mHSBasePath = new File(getFilesDir().getAbsolutePath(), TorServiceConstants.HIDDEN_SERVICES_DIR); - if (!mHSBasePath.isDirectory()) - mHSBasePath.mkdirs(); - mV3OnionBasePath = new File(getFilesDir().getAbsolutePath(), TorServiceConstants.ONION_SERVICES_DIR); if (!mV3OnionBasePath.isDirectory()) mV3OnionBasePath.mkdirs(); @@ -717,11 +694,6 @@ private void startTor() { startTorService(); if (Prefs.hostOnionServicesEnabled()) { - try { - updateLegacyV2OnionNames(); - } catch (SecurityException se) { - logNotice("unable to upload legacy v2 onion names"); - } try { updateV3OnionNames(); } catch (SecurityException se) { @@ -763,54 +735,6 @@ private void updateV3OnionNames() throws SecurityException { } } - private void updateLegacyV2OnionNames() throws SecurityException { - // Tor is running, update new .onion names at db - ContentResolver mCR = getApplicationContext().getContentResolver(); - Cursor hidden_services = mCR.query(V2_HS_CONTENT_URI, LEGACY_V2_ONION_SERVICE_PROJECTION, null, null, null); - if (hidden_services != null) { - try { - while (hidden_services.moveToNext()) { - String HSDomain = hidden_services.getString(hidden_services.getColumnIndex(OnionService.DOMAIN)); - int HSAuthCookie = hidden_services.getInt(hidden_services.getColumnIndex(OnionService.AUTH_COOKIE)); - String HSAuthCookieValue = hidden_services.getString(hidden_services.getColumnIndex(OnionService.AUTH_COOKIE_VALUE)); - // Update only new domains or restored from backup with auth cookie - if ((HSDomain == null || HSDomain.length() < 1) || (HSAuthCookie == 1 && (HSAuthCookieValue == null || HSAuthCookieValue.length() < 1))) { - String hsDirPath = new File(mHSBasePath.getAbsolutePath(), hidden_services.getString(hidden_services.getColumnIndex(OnionService.PATH))).getCanonicalPath(); - File file = new File(hsDirPath, "hostname"); - - if (file.exists()) { - ContentValues fields = new ContentValues(); - - try { - int id = hidden_services.getInt(hidden_services.getColumnIndex(OnionService._ID)); - String onionHostname = Utils.readString(new FileInputStream(file)).trim(); - if (HSAuthCookie == 1) { - String[] aux = onionHostname.split(" "); - onionHostname = aux[0]; - fields.put(OnionService.AUTH_COOKIE_VALUE, aux[1]); - } - fields.put(OnionService.DOMAIN, onionHostname); - mCR.update(V2_HS_CONTENT_URI, fields, OnionService._ID + "=" + id, null); - } catch (FileNotFoundException e) { - logException("unable to read onion hostname file", e); - showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr); - } - } else { - showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr); - } - } - } - - } catch (NumberFormatException e) { - Log.e(OrbotConstants.TAG, "error parsing hsport", e); - } catch (Exception e) { - Log.e(OrbotConstants.TAG, "error starting share server", e); - } - - hidden_services.close(); - } - } - private synchronized void startTorService() throws Exception { updateTorConfigCustom(TorService.getDefaultsTorrc(this), "DNSPort 0\n" + @@ -1200,8 +1124,6 @@ private StringBuffer processSettingsImpl(StringBuffer extraLines) throws IOExcep ContentResolver contentResolver = getApplicationContext().getContentResolver(); addV3OnionServicesToTorrc(extraLines, contentResolver); addV3ClientAuthToTorrc(extraLines, contentResolver); - addV2HiddenServicesToTorrc(extraLines, contentResolver); - addV2ClientCookiesToTorrc(extraLines, contentResolver); } return extraLines; @@ -1249,58 +1171,6 @@ private void addV3OnionServicesToTorrc(StringBuffer torrc, ContentResolver conte } } - private void addV2HiddenServicesToTorrc(StringBuffer torrc, ContentResolver contentResolver) { - try { - Cursor hidden_services = contentResolver.query(V2_HS_CONTENT_URI, LEGACY_V2_ONION_SERVICE_PROJECTION, OnionService.ENABLED + "=1", null, null); - if (hidden_services != null) { - try { - while (hidden_services.moveToNext()) { - int id = hidden_services.getInt(hidden_services.getColumnIndex(OnionService._ID)); - String HSname = hidden_services.getString(hidden_services.getColumnIndex(OnionService.NAME)); - String domain = hidden_services.getString(hidden_services.getColumnIndex(OnionService.DOMAIN)); - int HSLocalPort = hidden_services.getInt(hidden_services.getColumnIndex(OnionService.PORT)); - int HSOnionPort = hidden_services.getInt(hidden_services.getColumnIndex(OnionService.ONION_PORT)); - int HSAuthCookie = hidden_services.getInt(hidden_services.getColumnIndex(OnionService.AUTH_COOKIE)); - String path = hidden_services.getString(hidden_services.getColumnIndex(OnionService.PATH)); - - // logic to fix bug where you can't have 2+ hidden services on same local port without breaking services that were configured before the bug fix - if (path == null) { - String newPath = "hs"; - if (domain == null) - newPath +=UUID.randomUUID().toString(); - else - newPath += HSLocalPort; - - ContentValues cv = new ContentValues(); - cv.put(OnionService.PATH, newPath); - contentResolver.update(V2_HS_CONTENT_URI, cv, OnionService._ID + "=" + id, null); - path = newPath; - } - - String hsDirPath = new File(mHSBasePath.getAbsolutePath(), path).getCanonicalPath(); - - - debug("Adding hidden service on port: " + HSLocalPort); - - torrc.append("HiddenServiceDir" + ' ' + hsDirPath).append('\n'); - torrc.append("HiddenServiceVersion 2").append('\n'); - torrc.append("HiddenServicePort" + ' ' + HSOnionPort + " 127.0.0.1:" + HSLocalPort).append('\n'); - - if (HSAuthCookie == 1) - torrc.append("HiddenServiceAuthorizeClient stealth " + HSname).append('\n'); - } - } catch (NumberFormatException e) { - Log.e(OrbotConstants.TAG, "error parsing hsport", e); - } catch (Exception e) { - Log.e(OrbotConstants.TAG, "error starting share server", e); - } - - hidden_services.close(); - } - } catch (SecurityException se) { - } - } - public static String buildV3ClientAuthFile(String domain, String keyHash) { return domain + ":descriptor:x25519:" + keyHash; } @@ -1330,25 +1200,6 @@ private void addV3ClientAuthToTorrc(StringBuffer torrc, ContentResolver contentR } } - private void addV2ClientCookiesToTorrc(StringBuffer torrc, ContentResolver contentResolver) { - try { - Cursor client_cookies = contentResolver.query(COOKIE_CONTENT_URI, LEGACY_COOKIE_PROJECTION, ClientCookie.ENABLED + "=1", null, null); - if (client_cookies != null) { - try { - while (client_cookies.moveToNext()) { - String domain = client_cookies.getString(client_cookies.getColumnIndex(ClientCookie.DOMAIN)); - String cookie = client_cookies.getString(client_cookies.getColumnIndex(ClientCookie.AUTH_COOKIE_VALUE)); - torrc.append("HidServAuth" + ' ' + domain + ' ' + cookie).append('\n'); - } - } catch (Exception e) { - Log.e(OrbotConstants.TAG, "error starting share server", e); - } - client_cookies.close(); - } - } catch (SecurityException se) { - } - } - //using Google DNS for now as the public DNS server private String writeDNSFile() throws IOException { File file = new File(appBinHome, "resolv.conf"); @@ -1516,8 +1367,6 @@ public static final class OnionService implements BaseColumns { public static final String PORT = "port"; public static final String ONION_PORT = "onion_port"; public static final String DOMAIN = "domain"; - public static final String AUTH_COOKIE = "auth_cookie"; - public static final String AUTH_COOKIE_VALUE = "auth_cookie_value"; public static final String ENABLED = "enabled"; public static final String PATH = "filepath"; } @@ -1528,11 +1377,6 @@ public static final class V3ClientAuth implements BaseColumns { public static final String ENABLED = "enabled"; } - public static final class ClientCookie implements BaseColumns { - public static final String DOMAIN = "domain"; - public static final String AUTH_COOKIE_VALUE = "auth_cookie_value"; - public static final String ENABLED = "enabled"; - } // for bridge loading from the assets default bridges.txt file static class Bridge { diff --git a/orbotservice/src/main/res/values-ar/strings.xml b/orbotservice/src/main/res/values-ar/strings.xml index a131e2e3d..cdf47d6a3 100644 --- a/orbotservice/src/main/res/values-ar/strings.xml +++ b/orbotservice/src/main/res/values-ar/strings.xml @@ -19,8 +19,7 @@ إعدادات المرحلات لديك تسببت بخطأ! عُثر علي عملية تور سابقة تعمل... حصل خطأ ما. افحص السجل - غير قادر على قراءة اسم الخدمة المخفية - غير قادر على بدء تور: + غير قادر على بدء تور: لقد تحولت الى هوية تور جديدة تحديث الاعدادات في خدمات تور diff --git a/orbotservice/src/main/res/values-az/strings.xml b/orbotservice/src/main/res/values-az/strings.xml index a0da0477c..da3bc381b 100644 --- a/orbotservice/src/main/res/values-az/strings.xml +++ b/orbotservice/src/main/res/values-az/strings.xml @@ -19,8 +19,7 @@ Sənin keçid seçimlərin istisnaya səbəb oldu! mövcud Tor prosesi tapıldı... Nə isə pis bir şey oldu. Girişi yoxla - gizli xidmət adını oxumağı deaktivləşdir - Tor-un başlanmasını dayandır: + Tor-un başlanmasını dayandır: Yeni Tor oxşarına qoşuldun! Tor xidmətində quraşdırmalar yüklənir diff --git a/orbotservice/src/main/res/values-bg/strings.xml b/orbotservice/src/main/res/values-bg/strings.xml index 43d541bf8..ec4af47b0 100644 --- a/orbotservice/src/main/res/values-bg/strings.xml +++ b/orbotservice/src/main/res/values-bg/strings.xml @@ -19,8 +19,7 @@ Твоите настройки за препращане предизвикаха изключение! намерил си съвместим Tor проект... Нещо лошо се случи. Проверете лога - не може да прочете име на скрита услуга - Не може да стартира Тор: + Не може да стартира Тор: Сменихте своята Тор идентичност! обновяване на настройките в Tor услугата diff --git a/orbotservice/src/main/res/values-ca/strings.xml b/orbotservice/src/main/res/values-ca/strings.xml index 601951267..f6f5ba61b 100644 --- a/orbotservice/src/main/res/values-ca/strings.xml +++ b/orbotservice/src/main/res/values-ca/strings.xml @@ -17,7 +17,6 @@ Els paràmetres de reemissió han causat una excepció. s\'ha trobat un procés Tor existent... Ha fallat alguna cosa. Comproveu el registre - ha estat impossible llegir el nom del servei ocult - Ha estat impossible iniciar Tor: + Ha estat impossible iniciar Tor: Heu canviat a una nova identitat Tor. diff --git a/orbotservice/src/main/res/values-cs-rCZ/strings.xml b/orbotservice/src/main/res/values-cs-rCZ/strings.xml index c997196e4..a6adb5dcb 100644 --- a/orbotservice/src/main/res/values-cs-rCZ/strings.xml +++ b/orbotservice/src/main/res/values-cs-rCZ/strings.xml @@ -17,7 +17,6 @@ Vaše nastavení relace způsobilo výjimku! nalezev existující Tor proces… Stalo se něco špatného. Zkontrolujte log - nelze číst název skryté služby - Nelze spustit Tor: + Nelze spustit Tor: Vaše identita na Toru byla změněna! diff --git a/orbotservice/src/main/res/values-da/strings.xml b/orbotservice/src/main/res/values-da/strings.xml index 7abda0710..118015a94 100644 --- a/orbotservice/src/main/res/values-da/strings.xml +++ b/orbotservice/src/main/res/values-da/strings.xml @@ -18,6 +18,5 @@ Dine relæindstillinger forårsagede en fejl! fandt eksisterende Tor process... Noget slemt er sket. Check loggen - ikke i stand til at læse navnet på den skjulte service - Kunne ikke starte Tor: + Kunne ikke starte Tor: diff --git a/orbotservice/src/main/res/values-de/strings.xml b/orbotservice/src/main/res/values-de/strings.xml index 821e9dcdc..2ad6f0e10 100644 --- a/orbotservice/src/main/res/values-de/strings.xml +++ b/orbotservice/src/main/res/values-de/strings.xml @@ -19,8 +19,7 @@ Ihre Relaiseinstellungen haben einen Ausnahmefehler verursacht! bestehender Tor-Prozess gefunden … Etwas ist schief gelaufen. Bitte Protokoll prüfen - Name des versteckten Dienstes kann nicht gelesen werden - Tor kann nicht gestartet werden: + Tor kann nicht gestartet werden: Sie haben zu einer neuen Tor-Identität gewechselt! Einstellungen im Tor-Dienst werden aktualisiert MiB/s diff --git a/orbotservice/src/main/res/values-el/strings.xml b/orbotservice/src/main/res/values-el/strings.xml index 1241bdf99..5833649b4 100644 --- a/orbotservice/src/main/res/values-el/strings.xml +++ b/orbotservice/src/main/res/values-el/strings.xml @@ -17,7 +17,6 @@ Οι ρυθμίσεις αναμεταδότη σας προκάλεσαν μια εξαίρεση! αναζήτηση διεργασιών Tor... Κάτι κακό συνέβη. Ελέγξτε τις καταγραφές - αδυναμία ανάγνωσης του ονόματος της κρυφής υπηρεσίας - Αδυναμία εκκίνησης του Tor: + Αδυναμία εκκίνησης του Tor: Έχετε αλλάξει επιτυχώς την ταυτότητα σας στο Tor! diff --git a/orbotservice/src/main/res/values-eo/strings.xml b/orbotservice/src/main/res/values-eo/strings.xml index b3e4bf94e..5f492fcbe 100644 --- a/orbotservice/src/main/res/values-eo/strings.xml +++ b/orbotservice/src/main/res/values-eo/strings.xml @@ -15,6 +15,5 @@ Tor-procedo ne sukcesis stariĝi: Via agordo de relajso kaŭzis escepton! trovi ekzistantan Tor-procedon... - ne eblas legi nomon de la kaŝita servo - Ne eblas startigi Tor: + Ne eblas startigi Tor: diff --git a/orbotservice/src/main/res/values-es/strings.xml b/orbotservice/src/main/res/values-es/strings.xml index 981f39c60..24667d37e 100644 --- a/orbotservice/src/main/res/values-es/strings.xml +++ b/orbotservice/src/main/res/values-es/strings.xml @@ -19,8 +19,7 @@ ¡La configuración de su repetidor ha producido una excepción! Se encontró un proceso de Tor ya existente... Hubo algún tipo de problema. Compruebe el registro (log) - No fue posible leer el nombre del servicio oculto - No fue posible iniciar Tor: + No fue posible iniciar Tor: ¡Ha cambiado a una nueva identidad de Tor! actualizando la configuración en el servicio Tor diff --git a/orbotservice/src/main/res/values-et/strings.xml b/orbotservice/src/main/res/values-et/strings.xml index 1843e29fc..035fbb404 100644 --- a/orbotservice/src/main/res/values-et/strings.xml +++ b/orbotservice/src/main/res/values-et/strings.xml @@ -17,7 +17,6 @@ Teie releeseadistus põhjustas ekse! leidus töötav Tor protsess... Juhtus midagi halba. Kontrollige logi - ei õnnestu lugeda varjatud teenuse nime - Tor käivitamine ebaõnnestus: + Tor käivitamine ebaõnnestus: Lülitusite uuele Tor identiteedile! diff --git a/orbotservice/src/main/res/values-eu/strings.xml b/orbotservice/src/main/res/values-eu/strings.xml index e1e0bed29..6e7792dea 100644 --- a/orbotservice/src/main/res/values-eu/strings.xml +++ b/orbotservice/src/main/res/values-eu/strings.xml @@ -17,7 +17,6 @@ Zure errele ezarpenak salbuespena sortu dute! Aurreko Tor prozesua topatuta... Zerbait txarra gertatu da. Begiratu logetan - ezkutuko zerbitzuare izena ezin da irakurri - Ezin izan da Tor hasi: + Ezin izan da Tor hasi: ChatSecure - Andriodentzako berehalako mezulari bezero ziurra diff --git a/orbotservice/src/main/res/values-fa/strings.xml b/orbotservice/src/main/res/values-fa/strings.xml index fad3a1756..b8afd7c31 100644 --- a/orbotservice/src/main/res/values-fa/strings.xml +++ b/orbotservice/src/main/res/values-fa/strings.xml @@ -19,8 +19,7 @@ تنظیمات رله شما موجب خطا شده اند یک تور درحال اجرا پیدا شد... اتفاق بدی افتاد. وقایع ثبت شده را چک کنید - ناتوان در خواندن نام سرویس مخفی - ناتوان در راه اندازی تور: + ناتوان در راه اندازی تور: شما به شناسه جدید تور منتقل شدید به روز رسانی تنظیمات در سرویس Tor diff --git a/orbotservice/src/main/res/values-fi/strings.xml b/orbotservice/src/main/res/values-fi/strings.xml index ba45a7b99..952d37d14 100644 --- a/orbotservice/src/main/res/values-fi/strings.xml +++ b/orbotservice/src/main/res/values-fi/strings.xml @@ -18,8 +18,7 @@ Releasetuksesi aiheuttivat virheen! löytyi olemassaoleva Tor-prosessi... Jotain pahaa tapahtui. Tarkista loki - piilopalvelunimen lukeminen epäonnistui - Torin käynnistys epäonnistui: + Torin käynnistys epäonnistui: Vaihdoit Tor-identiteettisi uuteen! päivitetään Tor-palvelun asetuksia diff --git a/orbotservice/src/main/res/values-fr-rFR/strings.xml b/orbotservice/src/main/res/values-fr-rFR/strings.xml index 8d98d8d8b..3a83744f3 100644 --- a/orbotservice/src/main/res/values-fr-rFR/strings.xml +++ b/orbotservice/src/main/res/values-fr-rFR/strings.xml @@ -19,8 +19,7 @@ Vos paramètres de relais ont causé une exception ! un processus existant de Tor a été trouvé... Quelque chose n\'a pas été. Vérifiez le journal - impossible de lire le nom du service caché - Impossible de démarrer Tor : + Impossible de démarrer Tor : Vous avez basculé vers une nouvelle identité Tor ! mise à jour des paramètres dans le service Tor Mio/s diff --git a/orbotservice/src/main/res/values-gl/strings.xml b/orbotservice/src/main/res/values-gl/strings.xml index e43495be5..a8c51b9b6 100644 --- a/orbotservice/src/main/res/values-gl/strings.xml +++ b/orbotservice/src/main/res/values-gl/strings.xml @@ -18,7 +18,6 @@ Os seus axustes de relay causou unha excepción! atopado proceso Tor existente... Algo malo pasou. Comprobe o rexistro - imposible ler nome de servizo oculto - Incapaz de arrancar Tor + Incapaz de arrancar Tor Cambiou a unha nova identidade Tor! diff --git a/orbotservice/src/main/res/values-hr/strings.xml b/orbotservice/src/main/res/values-hr/strings.xml index 1e9d6f575..a81a72db9 100644 --- a/orbotservice/src/main/res/values-hr/strings.xml +++ b/orbotservice/src/main/res/values-hr/strings.xml @@ -19,8 +19,7 @@ Vaše postavke releja su uzrokovale iznimku! pronađeni postojeći Tor procesi... Nešto loše se dogodilo. Provjerite dnevnik - nije moguće pročitati ime skrivene usluge - Nije moguće pokrenuti Tor: + Nije moguće pokrenuti Tor: Prebacili ste se na nov Tor identitet! ažuriram postavke u Tor usluzi diff --git a/orbotservice/src/main/res/values-hu/strings.xml b/orbotservice/src/main/res/values-hu/strings.xml index 440f40220..649c5efad 100644 --- a/orbotservice/src/main/res/values-hu/strings.xml +++ b/orbotservice/src/main/res/values-hu/strings.xml @@ -19,8 +19,7 @@ Az átjátszód beállításai kivételt okoztak! létező Tor folyamat találva... Valami rossz történt. Nézd meg a naplót. - nem olvasható a rejtett szolgáltatás neve - A Tor indítása sikertelen: + A Tor indítása sikertelen: Új Tor identitásra váltottál! a Tor szolgáltatás beállításainak frissítése diff --git a/orbotservice/src/main/res/values-in/strings.xml b/orbotservice/src/main/res/values-in/strings.xml index 61f38f07e..bc9561234 100644 --- a/orbotservice/src/main/res/values-in/strings.xml +++ b/orbotservice/src/main/res/values-in/strings.xml @@ -19,8 +19,7 @@ Pengaturan relay anda menyebabkan kesalahan! menemukan proses Tor yang ada... Sesuatu yang buruk terjadi. Periksa log - tidak dapat membaca nama layanan tersembunyi - Tidak dapat memulai Tor: + Tidak dapat memulai Tor: Anda telah beralih ke identitas Tor baru! memperbarui setting pada layanan Tor diff --git a/orbotservice/src/main/res/values-is/strings.xml b/orbotservice/src/main/res/values-is/strings.xml index 742dffa4c..e1c31a2ca 100644 --- a/orbotservice/src/main/res/values-is/strings.xml +++ b/orbotservice/src/main/res/values-is/strings.xml @@ -18,8 +18,7 @@ Endurvarp stillingar þínar ollu undanþágu! fann annan Tor þráð... Eitthvað slæmt gerðist. Athugaðu skráninguna - get ekki lesið nafn földu þjónustunnar - Get ekki kveikt á Tor: + Get ekki kveikt á Tor: Þú ert komin með nýtt Tor auðkenni! uppfæri stillingar í Tor þjónustu diff --git a/orbotservice/src/main/res/values-it/strings.xml b/orbotservice/src/main/res/values-it/strings.xml index 734e80b77..a1ab523d3 100644 --- a/orbotservice/src/main/res/values-it/strings.xml +++ b/orbotservice/src/main/res/values-it/strings.xml @@ -19,8 +19,7 @@ La configurazione del tuo relay ha causato un\'eccezione! trovato un processo Tor esistente... E\' accaduto un evento indesiderato. Controllare i log. - Impossibile leggere il nome del servizio nascosto. - Impossibile avviare Tor: + Impossibile avviare Tor: Sei passato a una nuova identità Tor! aggiornamento impostazioni nel servizio Tor diff --git a/orbotservice/src/main/res/values-iw/strings.xml b/orbotservice/src/main/res/values-iw/strings.xml index aa7e87eaf..4d04faf76 100644 --- a/orbotservice/src/main/res/values-iw/strings.xml +++ b/orbotservice/src/main/res/values-iw/strings.xml @@ -16,8 +16,7 @@ אין אפשרות להתחיל תהליך Tor: נמצא תהליך Tor קיים… משהו רע התרחש. בדוק את היומן - לא מסוגל לקרוא שם שירות נסתר - לא מסוגל להתחיל את Tor: + לא מסוגל להתחיל את Tor: החלפת אל זהות Tor חדשה! מעדכן הגדרות Tor במכשיר diff --git a/orbotservice/src/main/res/values-ja/strings.xml b/orbotservice/src/main/res/values-ja/strings.xml index 4a536bc02..1db39f3de 100644 --- a/orbotservice/src/main/res/values-ja/strings.xml +++ b/orbotservice/src/main/res/values-ja/strings.xml @@ -19,8 +19,7 @@ あなたのリレー設定により例外が発生しました! Torプロセスを発見 何かが起こりました。ログを確認してください。 - hidden serviceの名前読込不能 - Torを実行できませんでした + Torを実行できませんでした 新たな Tor の身元に切り替えました。 Torサービスの設定を更新中 diff --git a/orbotservice/src/main/res/values-ko/strings.xml b/orbotservice/src/main/res/values-ko/strings.xml index 0e420193f..08f335800 100644 --- a/orbotservice/src/main/res/values-ko/strings.xml +++ b/orbotservice/src/main/res/values-ko/strings.xml @@ -17,7 +17,6 @@ 귀하의 중계서버 설정은 예외를 발생시켰습니다! 존재하고 있는 Tor 프로세스 발견 어떤 나쁜 것이 발생. 로그 확인하세요. - 히든 서비스 이름을 읽을 수 없음 - Tor 시작 불가능 + Tor 시작 불가능 새로운 Tor 신원으로 전환되었습니다! diff --git a/orbotservice/src/main/res/values-lv/strings.xml b/orbotservice/src/main/res/values-lv/strings.xml index abf085b54..35203a303 100644 --- a/orbotservice/src/main/res/values-lv/strings.xml +++ b/orbotservice/src/main/res/values-lv/strings.xml @@ -18,8 +18,7 @@ Jūsu retranslatora iestatījumi izraisīja izņēmuma situāciju! Atrada esošu Tor procesu... Nav labi. Pārbaudiet žurnālu - Nespēj lasīt slēpta pakalpojuma nosaukumu - Nevar startēt Tor: + Nevar startēt Tor: Jūs pārslēdzāties uz jaunu Tor\'a identitāti! atjaunina Tor pakalpojuma iestatījumus diff --git a/orbotservice/src/main/res/values-mk/strings.xml b/orbotservice/src/main/res/values-mk/strings.xml index dfc09fe39..ca87d2434 100644 --- a/orbotservice/src/main/res/values-mk/strings.xml +++ b/orbotservice/src/main/res/values-mk/strings.xml @@ -18,8 +18,7 @@ Вашите поставки за реле предизвикаа грешка! Пронајден постоечки Tor-процес ... Настана грешка. Проверете во дневникот - не може да се прочита името на скриениот сервис - Tor не може да се стартува: + Tor не може да се стартува: Се префрливте на нов идентитет на Tor! ажурирање на поставките во сервисот Tor diff --git a/orbotservice/src/main/res/values-ms-rMY/strings.xml b/orbotservice/src/main/res/values-ms-rMY/strings.xml index 4ca71d26f..f491595b9 100644 --- a/orbotservice/src/main/res/values-ms-rMY/strings.xml +++ b/orbotservice/src/main/res/values-ms-rMY/strings.xml @@ -17,6 +17,5 @@ Tetapan relay anda menyebabkan pengecualian! Proses Tor sedia ada ditemui.. Sesuatu yang buruk berlaku. Semak log. - tidak dapat membaca nama servis tersembunyi - Tidak dapat memulakan Tor: + Tidak dapat memulakan Tor: diff --git a/orbotservice/src/main/res/values-ms/strings.xml b/orbotservice/src/main/res/values-ms/strings.xml index badbaf866..74ec832ae 100644 --- a/orbotservice/src/main/res/values-ms/strings.xml +++ b/orbotservice/src/main/res/values-ms/strings.xml @@ -18,6 +18,5 @@ Tetapan relay anda menyebabkan pengecualian! Proses Tor sedia ada ditemui.. Sesuatu yang buruk berlaku. Semak log. - tidak dapat membaca nama servis tersembunyi - Tidak dapat memulakan Tor: + Tidak dapat memulakan Tor: diff --git a/orbotservice/src/main/res/values-nb/strings.xml b/orbotservice/src/main/res/values-nb/strings.xml index 584a7ba8e..49a91a221 100644 --- a/orbotservice/src/main/res/values-nb/strings.xml +++ b/orbotservice/src/main/res/values-nb/strings.xml @@ -18,8 +18,7 @@ Dine relé-innstillinger forårsaket et unntak! fant eksisterende Tor-prosess... Noe alvorlig skjedde. Sjekk loggen. - klarte ikke å lese skjult tjenestenavn - Klarte ikke å starte Tor: + Klarte ikke å starte Tor: Du har byttet til en ny Tor-identitet! Oppdaterer innstillinger i Tor service MiB/s diff --git a/orbotservice/src/main/res/values-nl/strings.xml b/orbotservice/src/main/res/values-nl/strings.xml index 795b7ff98..189f59509 100644 --- a/orbotservice/src/main/res/values-nl/strings.xml +++ b/orbotservice/src/main/res/values-nl/strings.xml @@ -19,8 +19,7 @@ Je relay-instellingen veroorzaakten een fout! bestaand Tor-proces gevonden… Er is een fout opgetreden. Controleer de log - Kan verborgen dienst-naam niet lezen - Kan Tor niet starten: + Kan Tor niet starten: Je bent naar een nieuwe Tor identiteit gewisseld! instellingen in Tor-dienst worden bijgewerkt diff --git a/orbotservice/src/main/res/values-pl/strings.xml b/orbotservice/src/main/res/values-pl/strings.xml index 6ea259369..eec5fc49c 100644 --- a/orbotservice/src/main/res/values-pl/strings.xml +++ b/orbotservice/src/main/res/values-pl/strings.xml @@ -19,8 +19,7 @@ Ustawienia Twojego przekaźnika spowodowały wyjątek! znaleziono istniejący proces Tora... Coś nie poszło nie tak. Sprawdź logi - uniemożliw czytanie nazw ukrytych serwisów - Nie można wystartować aplikacji Tor: + Nie można wystartować aplikacji Tor: Nowa tożsamość Tor\'a została zmieniona! aktualizowanie ustawień w serwisie Tor diff --git a/orbotservice/src/main/res/values-pt-rBR/strings.xml b/orbotservice/src/main/res/values-pt-rBR/strings.xml index f62530aac..04aea4ac7 100644 --- a/orbotservice/src/main/res/values-pt-rBR/strings.xml +++ b/orbotservice/src/main/res/values-pt-rBR/strings.xml @@ -19,8 +19,7 @@ Suas configurações de retransmissão causaram uma exceção! procurando processos Tor existentes... Algo ruim aconteceu. Cheque o lo - habilitar ler o nome do serviço oculto - Habilitar iniciar o Tor: + Habilitar iniciar o Tor: Você trocou para uma nova identidade Tor! atualizando configurações no serviço Tor MiB/s diff --git a/orbotservice/src/main/res/values-pt/strings.xml b/orbotservice/src/main/res/values-pt/strings.xml index f73e0c7d8..f41be4164 100644 --- a/orbotservice/src/main/res/values-pt/strings.xml +++ b/orbotservice/src/main/res/values-pt/strings.xml @@ -15,8 +15,7 @@ Não foi possível iniciar o processo Tor: encontrado o processo Tor existente... Aconteceu algo de mau. Verifique o registo de eventos. - não é possível ler o nome do serviço ocultado - Não é possível iniciar o Tor: + Não é possível iniciar o Tor: Mudou para uma nova identidade do Tor! a atualizar as definições no serviço Tor MiB/s diff --git a/orbotservice/src/main/res/values-ro/strings.xml b/orbotservice/src/main/res/values-ro/strings.xml index 5b5d08c26..a7243777e 100644 --- a/orbotservice/src/main/res/values-ro/strings.xml +++ b/orbotservice/src/main/res/values-ro/strings.xml @@ -17,8 +17,7 @@ Setarile tale de relay au cauzat o exceptie! gasit proces Tor existent... Ceva rau s-a intamplat. Verifica log-ul - nu am putut citi numele serviciului ascuns - Nu am reusit sa pornesc Tor: + Nu am reusit sa pornesc Tor: Ați comutat la o nouă identitate Tor! se actualizează configurările în serviciul Tor diff --git a/orbotservice/src/main/res/values-ru/strings.xml b/orbotservice/src/main/res/values-ru/strings.xml index 2b0cca3ff..ac01e282e 100644 --- a/orbotservice/src/main/res/values-ru/strings.xml +++ b/orbotservice/src/main/res/values-ru/strings.xml @@ -19,8 +19,7 @@ Настройки вашего ретранслятора вызвали исключение! найден существующий процесс Tor... Произошла какая-то ошибка. Проверьте журнал. - невозможно прочитать имя скрытой службы - Невозможно запустить Tor: + Невозможно запустить Tor: Вы переключились на новый идентификатор Tor! обновление настроек в сервисе Tor diff --git a/orbotservice/src/main/res/values-si-rLK/strings.xml b/orbotservice/src/main/res/values-si-rLK/strings.xml index 51c9389a2..ed2140e0a 100644 --- a/orbotservice/src/main/res/values-si-rLK/strings.xml +++ b/orbotservice/src/main/res/values-si-rLK/strings.xml @@ -17,6 +17,5 @@ ඔබේ ප්‍රතියෝජක සිටුවම්වල ව්‍යතිරේකයක් හටගෙන ඇත! පවතින Tor ක්‍රියාවලි හමුවිය... යම් නොමනා දෙයක් සිදුවිය. ලොගය පරික්ෂා කර බලන්න - සැගවුණු සේවා නාමය කියවීමට නොහැකිය - Tor ආරම්භ කිරීමට නොහැකිය: + Tor ආරම්භ කිරීමට නොහැකිය: diff --git a/orbotservice/src/main/res/values-sr/strings.xml b/orbotservice/src/main/res/values-sr/strings.xml index ab08b3ec2..9bd0e6315 100644 --- a/orbotservice/src/main/res/values-sr/strings.xml +++ b/orbotservice/src/main/res/values-sr/strings.xml @@ -18,6 +18,5 @@ Ваше поставке релеја су изазвале изузетак! нађен покренути Тор процес... Нешто лоше се догодило. Прегледајте логове - нисам у могућности да прочитам име сакривеног сервиса - Тор није у могућности да се покрене: + Тор није у могућности да се покрене: diff --git a/orbotservice/src/main/res/values-sv/strings.xml b/orbotservice/src/main/res/values-sv/strings.xml index e0a93631d..7e28840b8 100644 --- a/orbotservice/src/main/res/values-sv/strings.xml +++ b/orbotservice/src/main/res/values-sv/strings.xml @@ -19,8 +19,7 @@ Din relä inställning orsakade ett undantag! hittade existerande Tor process... Något dåligt hände. Kolla loggen. - kan inte läsa gömda tjänstens namn - Kan inte starta Tor: + Kan inte starta Tor: Du har bytt till en ny Tor identitet! uppdaterar inställningar i Tor-tjänsten diff --git a/orbotservice/src/main/res/values-th/strings.xml b/orbotservice/src/main/res/values-th/strings.xml index 00c8b4a26..9754a202f 100644 --- a/orbotservice/src/main/res/values-th/strings.xml +++ b/orbotservice/src/main/res/values-th/strings.xml @@ -14,6 +14,5 @@ การตั้งค่า ReachableAddresses ของคุณทำให้เกิดข้อผิดพลาด การตั้งค่ารีเลย์ของคุณทำให้เกิดข้อผิดพลาด เกิดอะไรไม่ดีสักอย่าง ให้ตรวจดูจากปูม - ไม่สามารถอ่านชื่อของบริการไม่เปิดเผย - ไม่สามารถเริ่ม Tor + ไม่สามารถเริ่ม Tor diff --git a/orbotservice/src/main/res/values-tl/strings.xml b/orbotservice/src/main/res/values-tl/strings.xml index cdc446fc8..d49f44e1b 100644 --- a/orbotservice/src/main/res/values-tl/strings.xml +++ b/orbotservice/src/main/res/values-tl/strings.xml @@ -17,7 +17,6 @@ Ang iyong relay settings ay nag sanhi ng exception! nakakita ng umiiral na Tor process... May nangyaring masama. Tingnan ang log - hindi mabasa ang pangalan ng tagong serbisyo - Hindi masimulan ang Tor: + Hindi masimulan ang Tor: Ikaw ay nagpalit ng bagong pagkakakilanlan sa Tor! diff --git a/orbotservice/src/main/res/values-tr/strings.xml b/orbotservice/src/main/res/values-tr/strings.xml index 249b42d55..6c300f6e3 100644 --- a/orbotservice/src/main/res/values-tr/strings.xml +++ b/orbotservice/src/main/res/values-tr/strings.xml @@ -19,8 +19,7 @@ Tor aktarıcı ayarlarınız bir istisnaya yol açtı! varolan bir Tor işlemi bulundu... Kötü bir şey oldu. Kayıtlara bakınız - gizli hizmet adı okunamıyor - Tor başlatılamadı: + Tor başlatılamadı: Yeni bir Tor kimliğine geçiş yaptınız! Tor hizmet ayarları güncellemesi MiB/s diff --git a/orbotservice/src/main/res/values-uk/strings.xml b/orbotservice/src/main/res/values-uk/strings.xml index 34860e4c8..28fd020d3 100644 --- a/orbotservice/src/main/res/values-uk/strings.xml +++ b/orbotservice/src/main/res/values-uk/strings.xml @@ -18,8 +18,7 @@ Налаштування вашого ретранслятора викликали виключення! знайдено існуючий процес Tor... Виникла якась помилка. Перевірте лог - неможливо прочитати ім\'я прихованої служби - Неможливо запустити Tor: + Неможливо запустити Tor: Ви перемкнулись на новий ідентифікатор Tor! оновлення налаштувань у сервісі Tor МіБ/с diff --git a/orbotservice/src/main/res/values-vi/strings.xml b/orbotservice/src/main/res/values-vi/strings.xml index aee8a4f21..9a284b5af 100644 --- a/orbotservice/src/main/res/values-vi/strings.xml +++ b/orbotservice/src/main/res/values-vi/strings.xml @@ -19,8 +19,7 @@ Thiết lập relay của bạn đã gây ra một vấn đề! tìm ra tiến trình hiện hành của Tor... Có gì đó không ổn. Xin xem lại nhật ký - không thể đọc được tên dịch vụ ẩn - Không thể khởi động Tor được: + Không thể khởi động Tor được: Bạn đã chuyển sang một mạch Tor mới! đang cập nhật cài đặt dịch vụ Tor MiB/s diff --git a/orbotservice/src/main/res/values-zh-rCN/strings.xml b/orbotservice/src/main/res/values-zh-rCN/strings.xml index a79da66fa..5048ab70e 100644 --- a/orbotservice/src/main/res/values-zh-rCN/strings.xml +++ b/orbotservice/src/main/res/values-zh-rCN/strings.xml @@ -19,8 +19,7 @@ 中继设置导致异常! 发现当前已存在 Tor 进程... 发生错误,请检查日志 - 无法读取隐藏服务名称 - 无法启动 Tor: + 无法启动 Tor: 已切换为新的 Tor 标识! 正在更新 Tor 服务中的设置 MiB/秒 diff --git a/orbotservice/src/main/res/values/strings.xml b/orbotservice/src/main/res/values/strings.xml index ed3464ac9..80f80ca32 100644 --- a/orbotservice/src/main/res/values/strings.xml +++ b/orbotservice/src/main/res/values/strings.xml @@ -12,7 +12,6 @@ Your relay settings caused an exception! found existing Tor process… Something bad happened. Check the log - unable to read onion service name Unable to start Tor: You\'ve switched to a new Tor identity!