diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 32226e9cfe..961b05c88e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,7 +12,8 @@
android:required="false" />
-
@@ -45,11 +46,11 @@
+
+
=
listOf(
GERMANY, AUSTRIA, SWEDEN,
diff --git a/app/src/main/java/org/torproject/android/service/OrbotConstants.kt b/app/src/main/java/org/torproject/android/service/OrbotConstants.kt
index 22512a9d7e..d40c83c545 100644
--- a/app/src/main/java/org/torproject/android/service/OrbotConstants.kt
+++ b/app/src/main/java/org/torproject/android/service/OrbotConstants.kt
@@ -145,9 +145,6 @@ object OrbotConstants {
"app.accrescent.client"
)
- const val ONION_EMOJI: String = "\uD83E\uDDC5"
-
-
// Constants for getting bridges in semi-manual ways.
val GET_BRIDES_BRIDGES_URI = "https://bridges.torproject.org/".toUri()
diff --git a/app/src/main/java/org/torproject/android/service/OrbotService.java b/app/src/main/java/org/torproject/android/service/OrbotService.java
index 08f1b8ceb1..50063703cd 100644
--- a/app/src/main/java/org/torproject/android/service/OrbotService.java
+++ b/app/src/main/java/org/torproject/android/service/OrbotService.java
@@ -758,10 +758,6 @@ public void onReceive(Context context, Intent intent) {
// hack for https://github.com/guardianproject/tor-android/issues/73 remove when fixed
var newStatus = intent.getStringExtra(EXTRA_STATUS);
- if (STATUS_ON.equals(newStatus) && Prefs.getTransport() == Transport.NONE && !Prefs.getHasDirectConnected()) {
- Prefs.setHasDirectConnected(true);
- }
-
if (STATUS_OFF.equals(mCurrentStatus) && STATUS_STOPPING.equals(newStatus))
break;
mCurrentStatus = newStatus;
diff --git a/app/src/main/java/org/torproject/android/service/circumvention/BuiltInBridges.kt b/app/src/main/java/org/torproject/android/service/circumvention/BuiltInBridges.kt
index c206465354..7cbe33978c 100644
--- a/app/src/main/java/org/torproject/android/service/circumvention/BuiltInBridges.kt
+++ b/app/src/main/java/org/torproject/android/service/circumvention/BuiltInBridges.kt
@@ -135,7 +135,7 @@ data class BuiltInBridges(
*/
fun getUdpDnstt(context: Context, countryCode: String?): List? {
if (countryCode.isNullOrEmpty()) return null
- if (countryCode != "global" && !dnsCountries.contains(countryCode.lowercase())) return null
+ if (countryCode != "global" && !Regionalization.getCountriesWithDnsttSupport().contains(countryCode)) return null
val dnsInfo: DnsInfo
diff --git a/app/src/main/java/org/torproject/android/ui/OrbotBottomSheetDialogFragment.kt b/app/src/main/java/org/torproject/android/ui/OrbotBottomSheetDialogFragment.kt
index 263dd453aa..526c900f85 100644
--- a/app/src/main/java/org/torproject/android/ui/OrbotBottomSheetDialogFragment.kt
+++ b/app/src/main/java/org/torproject/android/ui/OrbotBottomSheetDialogFragment.kt
@@ -6,6 +6,7 @@ import android.graphics.Color
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
+import android.view.ViewGroup
import android.widget.EditText
import android.widget.FrameLayout
@@ -21,7 +22,9 @@ import org.torproject.android.R
Class to set up default bottom sheet behavior for Config Connection, MOAT and any other
bottom sheets to come
*/
-open class OrbotBottomSheetDialogFragment : BottomSheetDialogFragment() {
+open class OrbotBottomSheetDialogFragment(
+ val minMode: Boolean = false
+) : BottomSheetDialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog = BottomSheetDialog(requireActivity(), theme)
dialog.setOnShowListener {
@@ -30,8 +33,8 @@ open class OrbotBottomSheetDialogFragment : BottomSheetDialogFragment() {
bottomSheetView?.let {
it.setBackgroundResource(R.drawable.bottom_sheet_rounded)
it.setBackgroundColor(Color.TRANSPARENT)
- setHeightResponsive(it)
val behavior = BottomSheetBehavior.from(it)
+ setHeightResponsive(it, behavior)
behavior.state = BottomSheetBehavior.STATE_EXPANDED
}
}
@@ -39,16 +42,24 @@ open class OrbotBottomSheetDialogFragment : BottomSheetDialogFragment() {
return dialog
}
- private fun setHeightResponsive(bottomSheet: View) {
+ private fun setHeightResponsive(bottomSheet: View, behavior: BottomSheetBehavior<*>) {
val windowMetrics = WindowMetricsCalculator
.getOrCreate()
.computeCurrentWindowMetrics(requireActivity())
val windowHeight = windowMetrics.bounds.height()
val height = (windowHeight * getHeightRatio()).toInt()
-
val layoutParams = bottomSheet.layoutParams
- layoutParams.height = height
+
+ if (minMode) {
+ behavior.maxHeight = height
+
+ layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT
+ }
+ else {
+ layoutParams.height = height
+ }
+
bottomSheet.layoutParams = layoutParams
}
diff --git a/app/src/main/java/org/torproject/android/ui/connect/ConfigConnectionBottomSheet.kt b/app/src/main/java/org/torproject/android/ui/connect/ConfigConnectionBottomSheet.kt
index dcb94461d3..1fa8c68299 100644
--- a/app/src/main/java/org/torproject/android/ui/connect/ConfigConnectionBottomSheet.kt
+++ b/app/src/main/java/org/torproject/android/ui/connect/ConfigConnectionBottomSheet.kt
@@ -26,7 +26,6 @@ import org.torproject.android.Regionalization
import org.torproject.android.databinding.ConfigConnectionBottomSheetBinding
import org.torproject.android.service.OrbotConstants
import org.torproject.android.service.circumvention.AutoConf
-import org.torproject.android.service.circumvention.BuiltInBridges
import org.torproject.android.service.circumvention.Transport
import org.torproject.android.util.Prefs
import org.torproject.android.ui.OrbotBottomSheetDialogFragment
@@ -90,7 +89,9 @@ class ConfigConnectionBottomSheet :
binding.acCountry.onItemClickListener = this
binding.dnsttContainer.visibility =
- if (BuiltInBridges.dnsCountries.contains(selectedCountryCode?.lowercase())) View.VISIBLE else View.GONE
+ if (Regionalization.getCountriesWithDnsttSupport()
+ .contains(selectedCountryCode)
+ ) View.VISIBLE else View.GONE
radios = arrayListOf(
binding.rbDirect,
@@ -428,7 +429,7 @@ class ConfigConnectionBottomSheet :
}
private fun updateDnsttVisibility() {
- if (BuiltInBridges.dnsCountries.contains(selectedCountryCode?.lowercase())) {
+ if (Regionalization.getCountriesWithDnsttSupport().contains(selectedCountryCode)) {
binding.dnsttContainer.visibility = View.VISIBLE
} else {
binding.dnsttContainer.visibility = View.GONE
diff --git a/app/src/main/java/org/torproject/android/ui/connect/ConnectUiState.kt b/app/src/main/java/org/torproject/android/ui/connect/ConnectUiState.kt
index 27c0ec7274..8567504392 100644
--- a/app/src/main/java/org/torproject/android/ui/connect/ConnectUiState.kt
+++ b/app/src/main/java/org/torproject/android/ui/connect/ConnectUiState.kt
@@ -1,6 +1,12 @@
package org.torproject.android.ui.connect
sealed class ConnectUiState {
+ /**
+ * NoInternet can mean two things, the device doesn't have *any* reliable WiFi/Cellular/USB signal
+ * TODO If the device has a VALID WIFI CONNECTION, but the device is using another VPN that is
+ * blocking Orbot from connecting to the web, NoInternet DOES NOT REGISTER, even though Orbot
+ * is effectively offline...
+ */
object NoInternet : ConnectUiState()
object Off : ConnectUiState()
data class Starting(val bootstrapPercent: Int?) : ConnectUiState()
diff --git a/app/src/main/java/org/torproject/android/ui/kindness/KindnessConfigBottomSheet.kt b/app/src/main/java/org/torproject/android/ui/kindness/KindnessConfigBottomSheet.kt
index 44beadad06..6a378b2666 100644
--- a/app/src/main/java/org/torproject/android/ui/kindness/KindnessConfigBottomSheet.kt
+++ b/app/src/main/java/org/torproject/android/ui/kindness/KindnessConfigBottomSheet.kt
@@ -4,45 +4,45 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.Button
-import androidx.appcompat.widget.SwitchCompat
-import androidx.fragment.app.FragmentActivity
-import org.torproject.android.R
-import org.torproject.android.util.Prefs
+import androidx.fragment.app.FragmentManager
+import androidx.fragment.app.setFragmentResult
+import org.torproject.android.databinding.KindnessConfigBottomSheetBinding
import org.torproject.android.ui.OrbotBottomSheetDialogFragment
+import org.torproject.android.util.Prefs
-class KindnessConfigBottomSheet : OrbotBottomSheetDialogFragment() {
+class KindnessConfigBottomSheet : OrbotBottomSheetDialogFragment(true) {
- private lateinit var btnAction: Button
+ private lateinit var mBinding: KindnessConfigBottomSheetBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
- ): View? {
- val v = inflater.inflate(R.layout.kindess_config_bottom_sheet, container, false)
- v.findViewById(R.id.tvCancel).setOnClickListener { dismiss() }
- btnAction = v.findViewById(R.id.btnAction)
+ ): View {
+ mBinding = KindnessConfigBottomSheetBinding.inflate(inflater, container, false)
+
+ mBinding.tvCancel.setOnClickListener { dismiss() }
- val configWifi = v.findViewById(R.id.swKindnessConfigWifi)
- val configCharging = v.findViewById(R.id.swKindnessConfigCharging)
+ mBinding.btnAction.setOnClickListener {
+ Prefs.setBeSnowflakeProxyLimitWifi(mBinding.swKindnessConfigWifi.isChecked)
+ Prefs.setBeSnowflakeProxyLimitCharging(mBinding.swKindnessConfigCharging.isChecked)
- btnAction.setOnClickListener {
- Prefs.setBeSnowflakeProxyLimitWifi(configWifi.isChecked)
- Prefs.setBeSnowflakeProxyLimitCharging(configCharging.isChecked)
+ setFragmentResult(KEY_CONFIG_CHANGED, Bundle())
dismiss()
}
- configWifi.isChecked = Prefs.limitSnowflakeProxyingWifi()
- configCharging.isChecked = Prefs.limitSnowflakeProxyingCharging()
- return v
+ mBinding.swKindnessConfigWifi.isChecked = Prefs.limitSnowflakeProxyingWifi()
+ mBinding.swKindnessConfigCharging.isChecked = Prefs.limitSnowflakeProxyingCharging()
+
+ return mBinding.root
}
companion object {
- fun openKindnessSettings(fragmentActivity: FragmentActivity) {
+ const val KEY_CONFIG_CHANGED = "kindness_config_changed"
+
+ fun show(fragmentManager: FragmentManager) {
KindnessConfigBottomSheet().show(
- fragmentActivity.supportFragmentManager,
+ fragmentManager,
"KindnessConfig"
)
}
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/org/torproject/android/ui/kindness/KindnessFragment.kt b/app/src/main/java/org/torproject/android/ui/kindness/KindnessFragment.kt
index c1f053c0c5..f8615a94ca 100644
--- a/app/src/main/java/org/torproject/android/ui/kindness/KindnessFragment.kt
+++ b/app/src/main/java/org/torproject/android/ui/kindness/KindnessFragment.kt
@@ -1,118 +1,227 @@
package org.torproject.android.ui.kindness
+import IPtProxy.IPtProxy
import android.app.AlertDialog
+import android.content.ComponentName
+import android.content.Intent
+import android.content.ServiceConnection
+import android.content.SharedPreferences
+import android.content.res.ColorStateList
import android.os.Bundle
+import android.os.IBinder
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.Button
-import android.widget.TextView
-import androidx.appcompat.widget.SwitchCompat
+import androidx.core.net.toUri
+import androidx.core.view.ViewCompat
import androidx.fragment.app.Fragment
+import androidx.preference.PreferenceManager
import org.torproject.android.R
-import org.torproject.android.service.circumvention.BuiltInBridges
-import org.torproject.android.service.circumvention.Transport
+import org.torproject.android.Regionalization
+import org.torproject.android.databinding.FragmentKindnessBinding
import org.torproject.android.util.Prefs
-import java.util.Locale
-import kotlin.collections.contains
class KindnessFragment : Fragment() {
- private lateinit var tvAllTimeTotal: TextView
- private lateinit var tvWeeklyTotal: TextView
- private lateinit var swVolunteerMode: SwitchCompat
- private lateinit var btnActionActivate: Button
- private lateinit var pnlActivate: View
- private lateinit var pnlStatus: View
+ private lateinit var mBinding: FragmentKindnessBinding
+ private var mService: SnowflakeProxyService? = null
+ private var mBound = false
+
+ private val connection = object : ServiceConnection {
+ override fun onServiceConnected(className: ComponentName, service: IBinder) {
+ val binder = service as SnowflakeProxyService.LocalBinder
+ mService = binder.getService()
+ mBound = true
+ }
+
+ override fun onServiceDisconnected(arg0: ComponentName) {
+ mBound = false
+ mService = null
+ }
+ }
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
- ): View? {
- val view = inflater.inflate(R.layout.fragment_kindness, container, false)
- tvAllTimeTotal = view.findViewById(R.id.tvAlltimeTotal)
- tvWeeklyTotal = view.findViewById(R.id.tvWeeklyTotal)
- swVolunteerMode = view.findViewById(R.id.swVolunteerMode)
- btnActionActivate = view.findViewById(R.id.btnActionActivate)
- pnlActivate = view.findViewById(R.id.panel_kindness_activate)
- pnlStatus = view.findViewById(R.id.panel_kindness_status)
- getErrorStringIfAny()?.let {
- Prefs.setBeSnowflakeProxy(false)
- }
- swVolunteerMode.isChecked = Prefs.beSnowflakeProxy()
- swVolunteerMode.setOnCheckedChangeListener { _, isChecked ->
+ ): View {
+ mBinding = FragmentKindnessBinding.inflate(inflater)
+
+ mBinding.swVolunteerMode.isChecked = Prefs.beSnowflakeProxy()
+ mBinding.swVolunteerMode.setOnCheckedChangeListener { _, isChecked ->
Prefs.setBeSnowflakeProxy(isChecked)
- showPanelStatus(isChecked)
activity?.let {
if (isChecked) {
SnowflakeProxyService.startSnowflakeProxyForegroundService(it)
} else {
SnowflakeProxyService.stopSnowflakeProxyForegroundService(it)
+
+ updateNatTypeUi(IPtProxy.NATUnknown)
}
}
}
- view.findViewById(R.id.ivGear).setOnClickListener {
- KindnessConfigBottomSheet.openKindnessSettings(requireActivity())
+ mBinding.rowUsageLimits.setOnClickListener {
+ KindnessConfigBottomSheet.show(parentFragmentManager)
}
- view.findViewById(R.id.swVolunteerAdjust)
- .setOnClickListener { KindnessConfigBottomSheet.openKindnessSettings(requireActivity()) }
+ updateNatTypeUi(IPtProxy.NATUnknown)
- btnActionActivate.setOnClickListener {
- getErrorStringIfAny()?.let {
- showDisabledDialog(it)
- return@setOnClickListener
+ mBinding.rowProxyQuality.setOnClickListener {
+ if (Prefs.lastSnowflakeNatType == IPtProxy.NATRestricted) {
+ showQualityHint()
}
- swVolunteerMode.isChecked = true
}
- showPanelStatus(Prefs.beSnowflakeProxy())
- return view
- }
+ mBinding.btnActionActivate.setOnClickListener {
+ TestingDialogFragment.show(parentFragmentManager)
+ }
+
+ if (Regionalization.isKindnessModeDisabledForCountry()) {
+ mBinding.btnActionActivate.isEnabled = false
+
+ // set text explaining that kindness mode isn't available from the user's country
+ mBinding.tvActivateInstructions.text =
+ getString(
+ R.string.kindness_mode_unsupported_country,
+ Regionalization.getLocalizedNameForCountryCode()
+ )
- private fun getErrorStringIfAny(): Int? {
- val country = Prefs.bridgeCountry?.lowercase(Locale.getDefault())
- if (BuiltInBridges.dnsCountries.contains(country))
- return R.string.kindness_mode_cant_run_in_your_country
- if (Prefs.useVpn() && Prefs.transport != Transport.NONE)
- R.string.kindness_mode_cant_run_with_bridge
- if (!Prefs.hasDirectConnected) {
- return R.string.kindness_never_had_a_direct_connection
+ // set the activate button to be gray, making it not the primary button
+ ViewCompat.setBackgroundTintList(
+ mBinding.btnActionActivate,
+ ColorStateList.valueOf(resources.getColor(R.color.orbot_btn_disable_grey, null))
+ )
+ ViewCompat.setBackgroundTintList(
+ mBinding.btnActionLearnMore,
+ ColorStateList.valueOf(resources.getColor(R.color.orbot_btn_enabled_purple, null))
+ )
}
- return null
- }
- private fun showDisabledDialog(msg: Int) {
- AlertDialog.Builder(requireContext())
- .setTitle(R.string.kindness_mode_cant_start)
- .setMessage(msg)
- .setPositiveButton(android.R.string.ok, null)
- .show()
+ mBinding.btnActionLearnMore.setOnClickListener {
+ val i = Intent(Intent.ACTION_VIEW, "https://orbot.app/kindness".toUri())
+ val pm = context?.packageManager
+
+ if (pm != null && i.resolveActivity(pm) != null) {
+ startActivity(i)
+ }
+ }
+
+ showPanelStatus(!Prefs.snowflakeNeedsQualityCheck)
+
+ parentFragmentManager.setFragmentResultListener(
+ KindnessConfigBottomSheet.KEY_CONFIG_CHANGED,
+ viewLifecycleOwner
+ ) { _, _ ->
+ updateUsageLimitsUi()
+ }
+
+ parentFragmentManager.setFragmentResultListener(
+ TestingDialogFragment.KEY_RESULT,
+ viewLifecycleOwner
+ ) { _, bundle ->
+
+ if (bundle.getBoolean(TestingDialogFragment.KEY_RESULT)) {
+ if (!Prefs.snowflakeNeedsQualityCheck) {
+ mBinding.swVolunteerMode.isChecked = true
+ showPanelStatus(true)
+ }
+ }
+ }
+
+ return mBinding.root
}
override fun onResume() {
super.onResume()
- // updates these values when user returns to screen after running snowflake proxy for some time
- tvAllTimeTotal.text = "${Prefs.snowflakesServed}"
- tvWeeklyTotal.text = "${Prefs.snowflakesServedWeekly}"
+ // Updates these values when user returns to screen after running snowflake proxy for some time.
+ updateUsageLimitsUi()
+ updateNatTypeUi(Prefs.lastSnowflakeNatType)
+ mBinding.tvAlltimeTotal.text = "${Prefs.snowflakesServed}"
+ mBinding.tvWeeklyTotal.text = "${Prefs.snowflakesServedWeekly}"
+ }
+
+ private val natTypeObserver =
+ SharedPreferences.OnSharedPreferenceChangeListener { sharedPrefs, key ->
+ if (key != Prefs.PREF_LAST_SNOWFLAKE_NAT_TYPE) return@OnSharedPreferenceChangeListener
+ updateNatTypeUi(Prefs.lastSnowflakeNatType)
+ }
+
+ override fun onStart() {
+ super.onStart()
+ PreferenceManager
+ .getDefaultSharedPreferences(requireContext())
+ .registerOnSharedPreferenceChangeListener(natTypeObserver)
+ }
+
+ override fun onStop() {
+ super.onStop()
+ PreferenceManager
+ .getDefaultSharedPreferences(requireContext())
+ .unregisterOnSharedPreferenceChangeListener(natTypeObserver)
+
+ if (mBound) {
+ context?.unbindService(connection)
+ mBound = false
+ }
+ }
+
+ private fun updateNatTypeUi(natType: String) {
+ mBinding.tvProxyQualityStatus.text = when (natType) {
+ IPtProxy.NATUnknown -> getString(R.string.kindness_proxy_quality_unknown)
+ IPtProxy.NATRestricted -> getString(R.string.kindness_proxy_quality_restricted)
+ IPtProxy.NATUnrestricted -> getString(R.string.kindness_proxy_quality_unrestricted)
+ else -> natType
+ }
+
+ if (natType == IPtProxy.NATRestricted) {
+ mBinding.redDot.visibility = View.VISIBLE
+ mBinding.chevron2.visibility = View.VISIBLE
+ } else {
+ mBinding.redDot.visibility = View.GONE
+ mBinding.chevron2.visibility = View.GONE
+ }
+ }
+
+ private fun updateUsageLimitsUi() {
+ mBinding.tvUsageLimitsStatus.text =
+ getString(
+ if (Prefs.limitSnowflakeProxyingWifi() || Prefs.limitSnowflakeProxyingCharging())
+ R.string.kindness_usage_limits_status_on
+ else R.string.kindness_usage_limits_status_off
+ )
+ }
+
+ private fun showQualityHint() {
+ val context = context ?: return
+
+ AlertDialog.Builder(context)
+ .setTitle(R.string.kindness_quality_upgrade_title)
+ .setMessage(
+ String.format(
+ "%s\n\n%s",
+ getString(R.string.kindness_quality_upgrade_line1),
+ getString(R.string.kindness_quality_upgrade_line2)
+ )
+ )
+ .setPositiveButton(android.R.string.ok, null)
+ .show()
}
private fun showPanelStatus(isActivated: Boolean) {
val duration = 250L
if (isActivated) {
- pnlActivate.animate().alpha(0f).setDuration(0).withEndAction {
- pnlActivate.visibility = View.GONE
+ mBinding.panelKindnessActivate.animate().alpha(0f).setDuration(0).withEndAction {
+ mBinding.panelKindnessActivate.visibility = View.GONE
}
- pnlStatus.visibility = View.VISIBLE
- pnlStatus.animate().alpha(1f).duration = duration
+ mBinding.panelKindnessStatus.visibility = View.VISIBLE
+ mBinding.panelKindnessStatus.animate().alpha(1f).duration = duration
} else {
- pnlActivate.visibility = View.VISIBLE
- pnlActivate.animate().alpha(1f).duration = duration
+ mBinding.panelKindnessActivate.visibility = View.VISIBLE
+ mBinding.panelKindnessActivate.animate().alpha(1f).duration = duration
- pnlStatus.animate().alpha(0f).setDuration(0).withEndAction {
- pnlStatus.visibility = View.GONE
+ mBinding.panelKindnessStatus.animate().alpha(0f).setDuration(0).withEndAction {
+ mBinding.panelKindnessStatus.visibility = View.GONE
}
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/org/torproject/android/ui/kindness/SnowflakeProxyService.kt b/app/src/main/java/org/torproject/android/ui/kindness/SnowflakeProxyService.kt
index ee3824e4c0..bbb95effad 100644
--- a/app/src/main/java/org/torproject/android/ui/kindness/SnowflakeProxyService.kt
+++ b/app/src/main/java/org/torproject/android/ui/kindness/SnowflakeProxyService.kt
@@ -10,6 +10,7 @@ import android.content.IntentFilter
import android.net.ConnectivityManager
import android.net.Network
import android.net.NetworkCapabilities
+import android.os.Binder
import android.os.Build
import android.os.IBinder
import android.util.Log
@@ -21,15 +22,21 @@ import org.torproject.android.util.Prefs
class SnowflakeProxyService : Service() {
+ inner class LocalBinder : Binder() {
+ fun getService(): SnowflakeProxyService = this@SnowflakeProxyService
+ }
+
+ private val binder = LocalBinder()
+
private lateinit var snowflakeProxyWrapper: SnowflakeProxyWrapper
private lateinit var powerConnectionReceiver: PowerConnectionReceiver
private lateinit var notificationChannelId: String
private lateinit var networkCallbacks: ConnectivityManager.NetworkCallback
- override fun onBind(intent: Intent?): IBinder? {
+ override fun onBind(intent: Intent?): IBinder {
Log.d(TAG, "onBind: $intent")
- return null
+ return binder
}
override fun onCreate() {
@@ -102,6 +109,7 @@ class SnowflakeProxyService : Service() {
val hasWifi = capabilities?.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) == true
val hasVpn = capabilities?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) == true
+
if (Prefs.limitSnowflakeProxyingWifi() && !hasWifi) {
refreshNotification(getString(R.string.kindness_mode_disabled_wifi))
stopSnowflakeProxy("required wifi condition not met")
@@ -111,9 +119,9 @@ class SnowflakeProxyService : Service() {
stopSnowflakeProxy("has network, but non Orbot VPN is running")
return
}
+ stopSnowflakeProxy("stopping on new network event to refresh NAT type")
startSnowflakeProxy("got network (wifi=${hasWifi}, limit wifi=${Prefs.limitSnowflakeProxyingWifi()}")
- }
- else {
+ } else {
refreshNotification(getString(R.string.kindness_mode_disabled_internet))
}
}
@@ -144,6 +152,7 @@ class SnowflakeProxyService : Service() {
private fun stopSnowflakeProxy(logMessage: String? = null) {
Log.d(TAG, "Stopping snowflake proxy - reason: $logMessage")
+ Prefs.lastSnowflakeNatType = IPtProxy.IPtProxy.NATUnknown
snowflakeProxyWrapper.stopProxy()
}
@@ -170,24 +179,20 @@ class SnowflakeProxyService : Service() {
private const val CHANNEL_ID = "snowflake"
private const val ACTION_STOP_SNOWFLAKE_SERVICE = "ACTION_STOP_SNOWFLAKE_SERVICE"
- private fun getIntent(context: Context) = Intent(context, SnowflakeProxyService::class.java)
+ fun getIntent(context: Context) = Intent(context, SnowflakeProxyService::class.java)
// start this service, but not necessarily snowflake proxy from the app UI
- fun startSnowflakeProxyForegroundService(context: Context) {
+ fun startSnowflakeProxyForegroundService(context: Context) =
ContextCompat.startForegroundService(
context,
getIntent(context)
)
- }
// stop this service, and snowflake proxy if its running, from the app UI
-
- fun stopSnowflakeProxyForegroundService(context: Context) {
+ fun stopSnowflakeProxyForegroundService(context: Context) =
ContextCompat.startForegroundService(
context,
getIntent(context).setAction(ACTION_STOP_SNOWFLAKE_SERVICE)
)
- }
-
}
}
diff --git a/app/src/main/java/org/torproject/android/ui/kindness/SnowflakeProxyWrapper.kt b/app/src/main/java/org/torproject/android/ui/kindness/SnowflakeProxyWrapper.kt
index 26323bbbb5..e98964e5c2 100644
--- a/app/src/main/java/org/torproject/android/ui/kindness/SnowflakeProxyWrapper.kt
+++ b/app/src/main/java/org/torproject/android/ui/kindness/SnowflakeProxyWrapper.kt
@@ -11,7 +11,6 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.torproject.android.R
import org.torproject.android.service.OrbotConstants
-import org.torproject.android.service.OrbotConstants.ONION_EMOJI
import org.torproject.android.service.circumvention.BuiltInBridges
import org.torproject.android.util.Prefs
import org.torproject.android.util.showToast
@@ -49,9 +48,9 @@ class SnowflakeProxyWrapper(private val service: SnowflakeProxyService) {
releaseMappedPorts()
}
- val stunServers = BuiltInBridges.getInstance(service)?.snowflake?.firstOrNull()?.ice
- ?.split(",".toRegex())?.dropLastWhile { it.isEmpty() }?.toTypedArray()
- ?: emptyArray()
+ val stunServers =
+ BuiltInBridges.getInstance(service)?.snowflake?.firstOrNull()?.ice?.split(",".toRegex())
+ ?.dropLastWhile { it.isEmpty() }?.toTypedArray() ?: emptyArray()
val stunUrl = stunServers[SecureRandom().nextInt(stunServers.size)]
proxy = SnowflakeProxy()
@@ -65,18 +64,9 @@ class SnowflakeProxyWrapper(private val service: SnowflakeProxyService) {
this?.relayUrl = fronts["snowflake-relay-url"]
this?.natProbeUrl = fronts["snowflake-nat-probe"]
this?.clientEvents = object : SnowflakeClientEvents {
- override fun connected() {
- onConnected()
- }
-
- override fun connectionFailed() {
- // Ignored.
- }
-
- override fun disconnected(country: String?) {
- // Ignored.
- }
-
+ override fun connected() = onConnected()
+ override fun connectionFailed() {}
+ override fun disconnected(country: String?) {}
override fun stats(
connectionCount: Long,
failedConnectionCount: Long,
@@ -86,11 +76,10 @@ class SnowflakeProxyWrapper(private val service: SnowflakeProxyService) {
outboundUnit: String?,
summaryInterval: Long
) {
- // Ignored.
}
- override fun natTypeUpdated(natType: String?) {
- // TODO feature added in IPtProxy 5.4.1
+ override fun natTypeUpdated(natType: String) {
+ Prefs.lastSnowflakeNatType = natType
}
}
@@ -107,6 +96,7 @@ class SnowflakeProxyWrapper(private val service: SnowflakeProxyService) {
@Synchronized
fun stopProxy() {
if (proxy == null) return
+
proxy?.stop()
proxy = null
@@ -153,4 +143,8 @@ class SnowflakeProxyWrapper(private val service: SnowflakeProxyService) {
}
return map
}
+
+ companion object {
+ private const val ONION_EMOJI: String = "\uD83E\uDDC5"
+ }
}
diff --git a/app/src/main/java/org/torproject/android/ui/kindness/TestTorForSnowflakeProxyService.kt b/app/src/main/java/org/torproject/android/ui/kindness/TestTorForSnowflakeProxyService.kt
new file mode 100644
index 0000000000..c97012ad21
--- /dev/null
+++ b/app/src/main/java/org/torproject/android/ui/kindness/TestTorForSnowflakeProxyService.kt
@@ -0,0 +1,80 @@
+package org.torproject.android.ui.kindness
+
+import android.app.Activity
+import android.content.BroadcastReceiver
+import android.content.ComponentName
+import android.content.Intent
+import android.content.IntentFilter
+import android.content.ServiceConnection
+import android.os.IBinder
+import android.util.Log
+import androidx.core.content.ContextCompat
+import org.torproject.android.util.DiskUtils
+import org.torproject.jni.TorService
+
+class TestTorForSnowflakeProxyService : TorService() {
+
+ override fun onCreate() {
+ super.onCreate()
+ Log.d(TAG, "onCreate()")
+ }
+
+
+ override fun onDestroy() {
+ super.onDestroy()
+ Log.d(TAG, "onDestroy()")
+ }
+
+ companion object {
+ const val TAG = "SnowflakeTestTorService"
+
+ fun launchTorTestingService(
+ orbotActivity: Activity,
+ torStatusReceiver: BroadcastReceiver,
+ ): ServiceConnection {
+ Log.wtf(TAG, "Preparing to launch tor testing service...")
+
+ // 1. Write a barebones torrc to disk
+ writeMinimalTorrcToDisk(orbotActivity)
+
+ // 2. Subscribe to status events
+ ContextCompat.registerReceiver(
+ orbotActivity,
+ torStatusReceiver,
+ IntentFilter(ACTION_STATUS),
+ RECEIVER_NOT_EXPORTED
+ )
+
+ val serviceConnection = getServiceConnection()
+
+ // 3. Bind the Service, starting tor...
+ orbotActivity.bindService(
+ Intent(orbotActivity, TestTorForSnowflakeProxyService::class.java),
+ serviceConnection,
+ BIND_AUTO_CREATE
+ )
+
+ return serviceConnection
+ }
+
+
+ private fun writeMinimalTorrcToDisk(orbotActivity: Activity) {
+ // write the bare minimum torrc needed to directly connect to the tor network
+ val minimalTorrc = listOf("RunAsDaemon 1", "AvoidDiskWrites 1").joinToString("\n")
+ val torrcFile = getTorrc(orbotActivity)
+ DiskUtils.flushTextToFile(torrcFile, minimalTorrc, append = false)
+ }
+
+ // Activities are connected to Services via these objects, we bind and unbind to this
+ // Service via a reference to the object returned by this method...
+ private fun getServiceConnection(): ServiceConnection = object : ServiceConnection {
+ override fun onServiceConnected(name: ComponentName?, binding: IBinder?) {
+ Log.d(TAG, "ServiceConnection: onServiceConnected")
+ }
+
+ override fun onServiceDisconnected(name: ComponentName?) {
+ Log.d(TAG, "ServiceConnection: onServiceDisconnected")
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/torproject/android/ui/kindness/TestingDialogFragment.kt b/app/src/main/java/org/torproject/android/ui/kindness/TestingDialogFragment.kt
new file mode 100644
index 0000000000..ab9904964a
--- /dev/null
+++ b/app/src/main/java/org/torproject/android/ui/kindness/TestingDialogFragment.kt
@@ -0,0 +1,305 @@
+package org.torproject.android.ui.kindness
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.content.ServiceConnection
+import android.content.pm.ActivityInfo
+import android.os.Bundle
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.DialogFragment
+import androidx.fragment.app.FragmentManager
+import androidx.fragment.app.activityViewModels
+import androidx.fragment.app.setFragmentResult
+import androidx.lifecycle.lifecycleScope
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
+import org.torproject.android.R
+import org.torproject.android.databinding.FragmentTestingBinding
+import org.torproject.android.service.circumvention.Transport
+import org.torproject.android.service.vpn.VpnServicePrepareWrapper
+import org.torproject.android.ui.connect.ConnectUiState
+import org.torproject.android.ui.connect.ConnectViewModel
+import org.torproject.android.util.NetworkUtils
+import org.torproject.android.util.Prefs
+import org.torproject.android.util.sendIntentToService
+import org.torproject.jni.TorService
+import kotlin.getValue
+import kotlin.time.Duration.Companion.milliseconds
+import kotlin.time.Duration.Companion.seconds
+
+/**
+ * Kindness Mode Quality Test
+ *
+ * - First, immediately fail the test if there's a non orbot VPN running
+ * - Second, if we've passed a quality test in the past 24 hours, skip retesting
+ * otherwise, take the test:
+ * A: if the user is connected to tor with no bridges/proxy, you pass
+ * B: if the user isn't connected to tor, warn the user about connecting to tor and attempt
+ * a direct connection. Pass if we succeed.
+ * C: if the user has a bridge/proxy, turn tor off. perform option B. When the test is
+ * completed, turn the user's original Tor connection back on.
+ *
+ * Set Prefs.snowflakeNeedsQualityCheck to false if test passes, true if otherwise
+ */
+class TestingDialogFragment : DialogFragment() {
+
+ private lateinit var mBinding: FragmentTestingBinding
+ val torConnectedViewModel: ConnectViewModel by activityViewModels()
+
+ private var stoppedNormalTorConnection = false
+
+ private var connectionTestServiceConnection: ServiceConnection? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ // disable device rotation while this dialog is running
+ activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ mBinding = FragmentTestingBinding.inflate(inflater, container, false)
+
+ mBinding.tvTitleApproved.text = getString(R.string.testing_title_approved, "✅")
+ mBinding.tvTitleDeclined.text = getString(R.string.testing_title_declined, "\uD83D\uDEAB")
+ mBinding.btnAbortTest.setOnClickListener { dismiss() }
+ mBinding.btContinue.setOnClickListener {
+ setFragmentResult(KEY_RESULT, Bundle().apply {
+ putBoolean(KEY_RESULT, true)
+ })
+ dismiss()
+ }
+
+ mBinding.btnDeclinedBoxOk.setOnClickListener {
+ setFragmentResult(KEY_RESULT, Bundle())
+ dismiss()
+ }
+
+ return mBinding.root
+ }
+
+ override fun onStart() {
+ super.onStart()
+ dialog?.window?.let { window ->
+ window.setBackgroundDrawableResource(android.R.color.transparent)
+ dialog?.window?.setLayout(
+ (resources.displayMetrics.widthPixels * 0.9).toInt(),
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ )
+
+ // benign tests to immediately see if the user can/can't use kindness mode
+ // if we don't get a definite answer, prompt the user for consent to determine for sure
+ doQualityTestRequiringNoUserConsent()
+ }
+
+ }
+
+ /**
+ * This part of the connection test doesn't require user consent
+ * It automatically fails if:
+ * - Orbot doesn't have a direct Internet connection
+ * - the user is using a non-Orbot VPN
+ *
+ * If we didn't automatically fail, we can automatically pass if:
+ * - the user currently has a direct connection to the tor network
+ * - the user has passed the quality test in the past 24 hours
+ *
+ * Otherwise, the test is still inconclusive. Obtain the user's consent to complete the text
+ * and give them the option to stop testing...
+ */
+ private fun doQualityTestRequiringNoUserConsent() {
+
+ // immediately fail if there's another VPN running
+ if (NetworkUtils.isNonOrbotVpnActive(requireContext())) {
+ showTestFailedUi(
+ errorExplanation = getString(R.string.testing_explanation_other_vpn),
+ bubbleMsg = getString(R.string.testing_explanation_other_vpn_bubble),
+ bubbleAction = {
+ VpnServicePrepareWrapper.openVpnSystemSettings(this)
+ dismiss()
+ }
+ )
+ return
+ }
+
+ // immediately fail if there's no internet
+ val torConnectionState = torConnectedViewModel.uiState.value
+ if (torConnectionState == ConnectUiState.NoInternet) {
+ showTestFailedUi(bubbleMsg = getString(R.string.testing_explanation_no_net))
+ return
+ }
+
+ // immediately succeed if we've recently succeeded
+ if (!Prefs.snowflakeNeedsQualityCheck) {
+ Log.wtf(TAG, "recently passed quality check, proceeding")
+ mBinding.btContinue.callOnClick()
+ return
+ }
+
+ // immediately succeed if you're already connecting directly to Tor
+ if (torConnectionState == ConnectUiState.On && Prefs.transport == Transport.NONE && Prefs.outboundProxy.first == null) {
+ Log.wtf(TAG, "there's an active direct connection to tor, stop testing")
+ Prefs.snowflakeNeedsQualityCheck = false
+ mBinding.btContinue.callOnClick()
+ return
+ }
+
+ // at this point, we need to obtain user consent to actually do the connection test...
+ showUserConsentUI()
+ }
+
+ private fun showUserConsentUI() {
+ with(mBinding.btnAbortTest) {
+ visibility = View.VISIBLE
+ setOnClickListener { dismiss() }
+ }
+ with(mBinding.btnStartTestWithConsent) {
+ visibility = View.VISIBLE
+ setOnClickListener {
+ showUserConsentUI()
+ doQualityTestRequiringConsent()
+ }
+ }
+
+ // if there's a tor connection over a bridge, explain we have to shut tor off
+ if (isOrbotOnOrStarting()) {
+ mBinding.tvTestingDisconnectVpnDisclaimer.visibility = View.VISIBLE
+ mBinding.tvDisclaimerConnectionLeak.visibility = View.VISIBLE
+ }
+ }
+
+ private fun isOrbotOnOrStarting(): Boolean {
+ val torConnectionState = torConnectedViewModel.uiState.value
+ return torConnectionState is ConnectUiState.On || torConnectionState is ConnectUiState.Starting
+ }
+
+
+ /* set UI for when the connecting directly to tor test is underway */
+ private fun showOngoingTestWithConsentUi() {
+ mBinding.progress.visibility = View.VISIBLE
+ mBinding.tvTestingConsentTorDisclaimer.visibility = View.GONE
+ mBinding.tvDisclaimerConnectionLeak.visibility = View.GONE
+ mBinding.tvTestingHeader.text = getString(R.string.testing_explanation_testing)
+ mBinding.btnAbortTest.visibility = View.GONE
+ mBinding.btnStartTestWithConsent.visibility = View.GONE
+ mBinding.tvTitleTesting.text = getString(R.string.testing_title_testing)
+ mBinding.tvTestingDisconnectVpnDisclaimer.visibility = View.GONE
+ }
+
+ /** This part of the connection test requires the user's consent, since it involves attempting
+ * a direct tor connection that censors can trivially detect, and possibly also temporarily
+ * disabling Orbot VPN if there's an active connection with censorship circumvention tech.
+ */
+ private fun doQualityTestRequiringConsent() {
+ showOngoingTestWithConsentUi()
+ lifecycleScope.launch {
+ if (isOrbotOnOrStarting()) {
+ Log.wtf(TAG, "OrbotService is running, we need to turn it off")
+ stoppedNormalTorConnection = true
+ requireActivity().sendIntentToService(TorService.ACTION_STOP)
+ delay(250.milliseconds)
+ }
+
+ if (torConnectedViewModel.uiState.value != ConnectUiState.Off) {
+ stoppedNormalTorConnection = false
+ showTestFailedUi()
+ Log.wtf(TAG, "OrbotService isn't off yet")
+ }
+
+ Log.wtf(TAG, "current tor state is ${torConnectedViewModel.uiState.value}")
+
+ connectionTestServiceConnection =
+ TestTorForSnowflakeProxyService.launchTorTestingService(
+ requireActivity(),
+ torStatusReceiver
+ )
+
+ delay(CONNECTION_TEST_TIMEOUT.seconds)
+ // if we haven't established a connection, cleanup and show error state
+ if (connectionTestServiceConnection != null) {
+ Log.wtf(
+ TAG,
+ "Couldn't establish a tor connection after waiting for $CONNECTION_TEST_TIMEOUT seconds"
+ )
+ unbindServiceIfBound()
+ showTestFailedUi()
+ }
+ }
+ }
+
+ val torStatusReceiver: BroadcastReceiver = object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ val status = intent?.getStringExtra(TorService.EXTRA_STATUS)
+ Log.wtf(TAG, "Got tor status from testing service: $status")
+ if (status == TorService.STATUS_ON) {
+ lifecycleScope.launch {
+ Prefs.snowflakeNeedsQualityCheck = false
+ unbindServiceIfBound()
+ showTestPassedUi()
+ if (stoppedNormalTorConnection) {
+ delay(250.milliseconds)
+ Log.wtf(TAG, "relaunching OrbotService...")
+ requireActivity().sendIntentToService(TorService.ACTION_START)
+ }
+ }
+ }
+ }
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ unbindServiceIfBound()
+ // restore device rotation
+ activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR
+ }
+
+ private fun unbindServiceIfBound() {
+ if (connectionTestServiceConnection != null) {
+ Log.wtf(TAG, "unregistering receiver, killing service")
+ val connection = connectionTestServiceConnection!!
+ requireActivity().unregisterReceiver(torStatusReceiver)
+ requireActivity().unbindService(connection)
+ connectionTestServiceConnection = null
+ }
+ }
+
+ fun showTestPassedUi() {
+ Prefs.snowflakeNeedsQualityCheck = false
+ mBinding.boxTesting.visibility = View.GONE
+ mBinding.boxApproved.visibility = View.VISIBLE
+ }
+
+ fun showTestFailedUi(
+ errorExplanation: String? = null,
+ bubbleMsg: String? = null,
+ bubbleAction: View.OnClickListener = {}
+ ) {
+ Prefs.snowflakeNeedsQualityCheck = true
+ mBinding.boxTesting.visibility = View.GONE
+ mBinding.boxDeclined.visibility = View.VISIBLE
+ errorExplanation?.let {
+ mBinding.tvExplanationDeclined.text = errorExplanation
+ }
+ bubbleMsg?.let {
+ mBinding.tvErrorBubbleMessage.text = bubbleMsg
+ mBinding.tvErrorBubbleMessage.setOnClickListener(bubbleAction)
+ }
+ }
+
+ companion object {
+ const val KEY_RESULT = "kindness_test_result"
+ const val TAG = "TestingFragment"
+ const val CONNECTION_TEST_TIMEOUT = 90
+
+ fun show(fragmentManager: FragmentManager) {
+ TestingDialogFragment().show(fragmentManager, TAG)
+ }
+ }
+}
diff --git a/app/src/main/java/org/torproject/android/util/NetworkUtils.kt b/app/src/main/java/org/torproject/android/util/NetworkUtils.kt
index 10bf2f7952..cae4dbf480 100644
--- a/app/src/main/java/org/torproject/android/util/NetworkUtils.kt
+++ b/app/src/main/java/org/torproject/android/util/NetworkUtils.kt
@@ -3,6 +3,8 @@ package org.torproject.android.util
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
+import android.net.VpnService
+import android.util.Log
import java.net.InetSocketAddress
import java.net.Socket
@@ -21,6 +23,35 @@ object NetworkUtils {
}
}
+ /** Used for kindness mode connection test, returns true *if and only if* Orbot is the registered
+ * VPN app. We can't use Prefs.useVpn() since this only tells us if Orbot is the registered VPN
+ * app when Tor is on. When it's off, we don't know which, if any VPN, is configured.
+ *
+ * - first cheaply check Prefs.useVpn(), this is true when orbot is running
+ * - if not, check to see if the system sees a VPN connection, return false if not
+ * - ensure for certain that Orbot isn't the registered VPN, this can be done by seeing if the
+ * system gives Orbot an Intent to register to be the active VPN app. If it's non-null, we
+ * know for certain we have a non-Orbot VPN config on the system
+ */
+ fun isNonOrbotVpnActive(context: Context): Boolean {
+ if (Prefs.useVpn()) {
+ return false
+ }
+
+ val connectivityManager =
+ context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
+ val network = connectivityManager.activeNetwork ?: return false
+ val capabilities = connectivityManager.getNetworkCapabilities(network) ?: return false
+ val deviceUsingVpn = capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)
+ Log.wtf("bim", "VPN? $deviceUsingVpn")
+
+ // we either don't have a VPN app running, if it is, check for certain it's not Orbot
+ if (!deviceUsingVpn) return false
+ val isOrbotRegisteredAsVpn = VpnService.prepare(context) != null
+ Log.wtf("bim", "isOrbotRegisteredAsVpn: $isOrbotRegisteredAsVpn")
+ return isOrbotRegisteredAsVpn
+ }
+
fun checkPortOrAuto(portString: String): String {
if (!portString.equals("auto", ignoreCase = true)) {
var isPortUsed = true
diff --git a/app/src/main/java/org/torproject/android/util/Prefs.kt b/app/src/main/java/org/torproject/android/util/Prefs.kt
index fd3cb0d940..2f7bea05df 100644
--- a/app/src/main/java/org/torproject/android/util/Prefs.kt
+++ b/app/src/main/java/org/torproject/android/util/Prefs.kt
@@ -5,6 +5,7 @@ import android.content.Context
import androidx.work.ExistingPeriodicWorkPolicy
import androidx.work.PeriodicWorkRequest
import androidx.work.WorkManager
+import org.torproject.android.Regionalization
import org.torproject.android.service.OrbotConstants
import org.torproject.android.service.circumvention.Transport
import org.torproject.android.service.tor.ShadowSocks
@@ -15,6 +16,7 @@ import java.util.concurrent.TimeUnit
object Prefs {
private const val PREF_BRIDGES_LIST = "pref_bridges_list"
+ private const val PREF_BRIDGE_COUNTRY = "pref_bridge_country"
private const val PREF_DEFAULT_LOCALE = "pref_default_locale"
private const val PREF_DETECT_ROOT = "pref_detect_root"
private const val PREF_ENABLE_LOGGING = "pref_enable_logging"
@@ -22,12 +24,13 @@ object Prefs {
private const val PREF_ALLOW_BACKGROUND_STARTS = "pref_allow_background_starts"
private const val PREF_OPEN_PROXY_ON_ALL_INTERFACES = "pref_open_proxy_on_all_interfaces"
private const val PREF_USE_VPN = "pref_vpn"
- private const val PREF_DIRECT_CONNECT_SUCCESS = "pref_direct_connect"
+ private const val PREF_LAST_SNOWFLAKE_QUALITY_CHECK = "pref_last_snowflake_quality_check"
private const val PREF_EXIT_NODES = "pref_exit_nodes"
private const val PREF_BE_A_SNOWFLAKE = "pref_be_a_snowflake"
private const val PREF_SHOW_SNOWFLAKE_MSG = "pref_show_snowflake_proxy_msg"
private const val PREF_BE_A_SNOWFLAKE_LIMIT_WIFI = "pref_be_a_snowflake_limit_wifi"
private const val PREF_BE_A_SNOWFLAKE_LIMIT_CHARGING = "pref_be_a_snowflake_limit_charing"
+ const val PREF_LAST_SNOWFLAKE_NAT_TYPE = "pref_snowflake_last_nat"
private const val PREF_USE_SMART_CONNECT = "pref_use_smart_connect"
private const val PREF_SMART_CONNECT_TIMEOUT = "pref_smart_connect_timeout"
@@ -101,8 +104,16 @@ object Prefs {
}
var bridgeCountry: String?
- get() = cr?.getPrefString("pref_bridge_country")
- set(value) = cr?.putPref("pref_bridge_country", value) ?: Unit
+ get() = cr?.getPrefString(PREF_BRIDGE_COUNTRY)
+ set(value) {
+ cr?.let {
+ it.putPref(PREF_BRIDGE_COUNTRY, value)
+ if (Regionalization.isKindnessModeDisabledForCountry()) {
+ setBeSnowflakeProxy(beSnowflakeProxy = false)
+ snowflakeNeedsQualityCheck = true
+ }
+ }
+ }
@JvmStatic
var defaultLocale: String
@@ -164,11 +175,19 @@ object Prefs {
cr?.putPref(PREF_USE_VPN, value)
}
- @JvmStatic
- var hasDirectConnected: Boolean
- get() = cr?.getPrefBoolean(PREF_DIRECT_CONNECT_SUCCESS) ?: false
- set(value) = cr?.putPref(PREF_DIRECT_CONNECT_SUCCESS, value) ?: Unit
+ var snowflakeNeedsQualityCheck: Boolean
+ get() {
+ val last = cr?.getPrefLong(PREF_LAST_SNOWFLAKE_QUALITY_CHECK) ?: 0
+ // A new quality check should be done every 24 hours.
+ return last <= System.currentTimeMillis() - 24 * 60 * 60 * 1000
+ }
+ set(value) {
+ cr?.putPref(
+ PREF_LAST_SNOWFLAKE_QUALITY_CHECK,
+ if (value) 0 else System.currentTimeMillis()
+ )
+ }
fun startOnBoot(): Boolean {
return cr?.getPrefBoolean(PREF_START_ON_BOOT, true) ?: true
@@ -179,6 +198,10 @@ object Prefs {
get() = cr?.getPrefString(PREF_EXIT_NODES)
set(country) = cr?.putPref(PREF_EXIT_NODES, country) ?: Unit
+ var lastSnowflakeNatType: String
+ get() = cr?.getPrefString(PREF_LAST_SNOWFLAKE_NAT_TYPE) ?: IPtProxy.IPtProxy.NATUnknown
+ set(natType) = cr?.putPref(PREF_LAST_SNOWFLAKE_NAT_TYPE, natType) ?: Unit
+
val snowflakesServed: Int
get() = cr?.getPrefInt(PREF_SNOWFLAKES_SERVED_COUNT) ?: 0
@@ -226,8 +249,7 @@ object Prefs {
return try {
Pair(URI(config), null)
- }
- catch (_: URISyntaxException) {
+ } catch (_: URISyntaxException) {
Pair(null, config)
}
}
diff --git a/app/src/main/res/drawable/bg_modal_rounded.xml b/app/src/main/res/drawable/bg_modal_rounded.xml
new file mode 100644
index 0000000000..2be0a25b6e
--- /dev/null
+++ b/app/src/main/res/drawable/bg_modal_rounded.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_rounded_orange.xml b/app/src/main/res/drawable/bg_rounded_orange.xml
new file mode 100644
index 0000000000..35f0504b4e
--- /dev/null
+++ b/app/src/main/res/drawable/bg_rounded_orange.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_heart.xml b/app/src/main/res/drawable/ic_heart.xml
index 93e83fc3f4..eedd464160 100644
--- a/app/src/main/res/drawable/ic_heart.xml
+++ b/app/src/main/res/drawable/ic_heart.xml
@@ -1,10 +1,12 @@
+ android:viewportWidth="24"
+ android:viewportHeight="24">
-
\ No newline at end of file
+ android:pathData="M12,9C12,9 12,3 17.25,3C22.5,3 22.5,7.5 22.5,9C22.5,15.75 12,22.5 12,22.5V9Z"
+ android:fillColor="#7D7C80"/>
+
+
diff --git a/app/src/main/res/drawable/ic_snowflake.png b/app/src/main/res/drawable/ic_snowflake.png
new file mode 100644
index 0000000000..3a554d917e
Binary files /dev/null and b/app/src/main/res/drawable/ic_snowflake.png differ
diff --git a/app/src/main/res/drawable/kindness.png b/app/src/main/res/drawable/kindness.png
deleted file mode 100644
index cc379915b7..0000000000
Binary files a/app/src/main/res/drawable/kindness.png and /dev/null differ
diff --git a/app/src/main/res/drawable/orbiesnoozing.png b/app/src/main/res/drawable/orbiesnoozing.png
deleted file mode 100644
index 35eac329b7..0000000000
Binary files a/app/src/main/res/drawable/orbiesnoozing.png and /dev/null differ
diff --git a/app/src/main/res/layout-land/fragment_kindness.xml b/app/src/main/res/layout-land/fragment_kindness.xml
new file mode 100644
index 0000000000..6b857c8aa1
--- /dev/null
+++ b/app/src/main/res/layout-land/fragment_kindness.xml
@@ -0,0 +1,422 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_kindness.xml b/app/src/main/res/layout/fragment_kindness.xml
index 309ff86e7f..434ed95202 100644
--- a/app/src/main/res/layout/fragment_kindness.xml
+++ b/app/src/main/res/layout/fragment_kindness.xml
@@ -22,19 +22,21 @@
android:paddingEnd="4dp">
+ android:src="@drawable/ic_snowflake" />
+ android:textColor="@android:color/white"
+ android:textStyle="italic" />
+
+
+
@@ -91,155 +105,306 @@
android:visibility="gone"
tools:visibility="gone">
-
-
-
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp">
+ app:layout_constraintTop_toTopOf="parent" />
+ app:cardElevation="4dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/tvTitleOn">
-
+ android:layout_height="wrap_content">
+ android:id="@+id/ivHeader"
+ android:layout_width="41dp"
+ android:layout_height="41dp"
+ android:layout_margin="16dp"
+ android:contentDescription="@null"
+ android:src="@drawable/ic_snowflake"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toEndOf="@id/ivHeader"
+ app:layout_constraintTop_toTopOf="parent" />
-
+ android:layout_marginEnd="16dp"
+ android:checked="true"
+ android:textSize="18sp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:showText="false" />
+
+
+
+ app:cardElevation="4dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/rowVolunteerMode">
-
+ android:layout_height="wrap_content">
-
+
-
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/chevron1"
+ app:layout_constraintTop_toTopOf="parent" />
+
+
+
+
+
+ app:cardElevation="4dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/rowUsageLimits">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:padding="16dp">
+ android:textSize="12sp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ android:textColor="@color/progress_bar_purple"
+ android:textSize="40sp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/tvWeeklyTotalHeader"
+ tools:text="#" />
+
+
+
+
+
+
+
+
+
+
+ android:textSize="12sp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ android:layout_height="match_parent"
+ android:textColor="@color/progress_bar_purple"
+ android:textSize="40sp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/tvAlltimeTotalHeader"
+ tools:text="#" />
+
+
-
-
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_testing.xml b/app/src/main/res/layout/fragment_testing.xml
new file mode 100644
index 0000000000..c005fd765a
--- /dev/null
+++ b/app/src/main/res/layout/fragment_testing.xml
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/kindess_config_bottom_sheet.xml b/app/src/main/res/layout/kindness_config_bottom_sheet.xml
similarity index 72%
rename from app/src/main/res/layout/kindess_config_bottom_sheet.xml
rename to app/src/main/res/layout/kindness_config_bottom_sheet.xml
index a12ec55be2..8c8c8511f8 100644
--- a/app/src/main/res/layout/kindess_config_bottom_sheet.xml
+++ b/app/src/main/res/layout/kindness_config_bottom_sheet.xml
@@ -20,23 +20,19 @@
@@ -73,10 +69,7 @@
android:id="@+id/tvOptionOnlyWhenCharging"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="4dp"
- android:layout_marginBottom="8dp"
- android:paddingStart="20dp"
- android:paddingEnd="20dp"
+ android:layout_margin="16dp"
android:text="@string/option_only_when_charging"
android:textColor="@android:color/white"
android:textSize="14sp"
@@ -87,48 +80,45 @@
android:id="@+id/swKindnessConfigCharging"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="4dp"
+ android:layout_marginEnd="16dp"
android:textColor="@android:color/white"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@id/tvOptionOnlyWhenCharging"
- app:layout_constraintStart_toEndOf="@+id/tvOptionOnlyWhenCharging"
+ app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tvOptionOnlyWhenCharging"
app:showText="false" />
-
-
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintWidth_default="percent"
+ app:layout_constraintWidth_percent="50" />
+ app:layout_constraintTop_toBottomOf="@id/tvOptionOnlyWhenCharging"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintWidth_default="percent"
+ app:layout_constraintWidth_percent="50" />
\ No newline at end of file
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 9b26142892..cb3c37b5f7 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -110,11 +110,8 @@
اختر كيفية الاتصالاختر التطبيقاتغيّر الخروج
- مساعدة الآخرين
-\nالاتصال بتوراتصل بالإنترنتتحتاج إلى اتصال بالإنترنت لاستخدام Orbot.
- إعداداتضبط منفذ HTTPتطبيقات المقترحةتطبيقات أخرى
@@ -153,14 +150,6 @@
استخدم مسار مختلف لكل منفذ وجهةتعطيل اتصالات IPv4يخبر المخارج بعدم الاتصال بعناوين IPv4
- المجموع الأسبوعي
- إجمالي الوقت
- يتيح وضع اللطف لجهازك أن يكون جسرًا للآخرين. يساعد الأشخاص على استخدام تور في الأماكن التي يتم حظره فيها.
-\n
-\n• لن تستنزف البطارية
-\n• لن يبطئ الإنترنت لديك
-\n• يمكن تشغيله عبر wifi فقط
-\n• يمكن إيقاف تشغيله في أي وقتالاتصال الذكياتصال مباشرأفضل طريقة للاتصال بتور. استخدم إذا لم يُحظر تور.
@@ -170,8 +159,6 @@
اضبط كيف ومتى يمكن لجهازك العمل كوسيط Snowflake لمستخدمي تور الآخرين.وضع المستخدم المتقدمللمستخدمين المطلعين على تور. يسمح لك ببدء تشغيل Orbot بدون إعداد VPN ويعرض منافذ SOCKS و HTTP المفتوحة
- اليوم أفضل
-\nبسببك.فقط على شبكة Wifiغير متأكد؟اسأل تور
@@ -294,11 +281,6 @@
هناك ملف تعريف VPN مخصص تم إعداده ليكون \"دائم التفعيل\". يُرجى تعطيله قبل تشغيل Orbot.ضُبط تطبيق %1$s ليكون VPN \"دائم التفعيل\". يُرجى تعطيله قبل تشغيل Orbot.رُفض إذن الـ VPN أو أن هناك تطبيق VPN آخر لديه ميزة \"VPN دائم التفعيل\" مفعلة. يمكنك تجاهل هذا التنبيه وإعادة الاتصال إذا كنت قد خرجت من نافذة طلب الـ VPN السابقة عن طريق الخطأ. بالنسبة للمستخدمين التقنيين، يمكنكم استخدام تطبيق VPN آخر واستخدام Tor كوسيط SOCKS عن طريق تفعيل \"وضع المستخدم المتقدم\" في Orbot.
- تعذر تشغيل وضع اللطف
- لاستخدام \"وضع اللطف\"، يجب أن تكون قد اتصلت مباشرة بشبكة تور (بدون استخدام أي جسور) لمرة واحدة على الأقل. بعد الاتصال، يُرجى العودة إلى هنا لتفعيل \"وضع اللطف\". بمجرد إتمام اختبار الاتصال المباشر هذا، يمكنك استخدام \"وضع اللطف\" بحرية سواء كنت متصلاً بشبكة تور أم لا.
- لا يمكن تشغيل \"وضع اللطف\" أثناء استخدام جسر للاتصال بشبكة تور.
- استخدام \"وضع اللطف\" لمساعدة الآخرين على الاتصال بمتصفح تور معطل حاليًا في بلدك بسبب الرقابة.
- لا تستخدم \"وضع اللطف\" إذا كنت في منطقة تخضع للرقابة أو إذا كنت بحاجة إلى استخدام جسر للاتصال بشبكة تور.عطّل تحسينات البطاريةإعداد لبعض المستخدمين الذين يشكون في أن أجهزتهم تنهي عمل تطبيق Orbot قبل الأوان أثناء تشغيله في الخلفية.قد تقوم بعض أجهزة أندرويد بإغلاق تطبيق Orbot أثناء تشغيله في الخلفية. بالنسبة لمعظم المستخدمين الذين يرغبون في التأكد من بقاء Orbot متصلاً وقيد التشغيل، يكفي ضبط Orbot ليعمل كـ \"VPN دائم التفعيل\" في إعدادات النظام. ومع ذلك، لا يزال بإمكانك المضي قدمًا لمنع جهازك من إجراء أي تحسينات للبطارية على Orbot إذا شعرت أن ذلك ضروريًا.
diff --git a/app/src/main/res/values-ay/strings.xml b/app/src/main/res/values-ay/strings.xml
index 16f61f1989..ba97e1e76a 100644
--- a/app/src/main/res/values-ay/strings.xml
+++ b/app/src/main/res/values-ay/strings.xml
@@ -110,7 +110,6 @@
Maynichat chakanakaLisinsya:Waythapita
- Simanan taqpachaJiskt\'askiwa…Tor ukar jiskt\'am.onion chiqa
@@ -119,13 +118,6 @@
Apnaqirir iyawsañaPuriñ waythapiwjanak sapachañaApnaqirinakan prutukulunakap sapachaña
- Yanapt\'asiña ukax yaqhanakatakiw tispusitiwum mä chakjam tukuyi. Jark\'antata uka chiqanakanx jaqiruw Tor apnaqañ yanapt\'i.
-\n
-\n• Janiw watiriyax tukstkaniti
-\n• Janiw intirnitax k\'achantkaniti
-\n• Wifi ukatuqikiw phunsyunaspa
-\n• Kuna pachas jiwt\'akispawa
- Jak\'ankiriQ\'umachañaYanapt\'asiñaKarjaski ukjaki
@@ -142,15 +134,10 @@
Waythapiwja kawkjanti Tor ukax HTTP proxyp uñachayi (utt\'ayata: jiwt\'ayañatakix 8118 jan ukax 0)Apnaqirin sirwisyunakapaKunjam waythapiyañasa uk ajllt\'am
- Yaqhanakar yanapt\'aña
-\nTor ukar mantañaTor ukar chiqak waythapïwiCh\'ikhi waythapïwi (utt\'ayata)Akjamat Tor ukar kusa waythapisispa. Tor ukax jan jark\'antatäkchi uka apnaqaña.Tor ukan inak irnaqirinakaptuqiw waythapisi. Yaqhippachax janiw Tor ukar jark\'antaykiti.
- Taqpach pachat taqpacha
- Jichhürux kusawa
-\njumïpana.Pächastati\?Internetar waythapiyañaTor ukarux kunaymantuqit waythapiyasispa. Yaqhipanakax yaqhanakat sipan kusa jumatak irnaqi.
diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml
index 89d9607b92..11362986db 100644
--- a/app/src/main/res/values-az/strings.xml
+++ b/app/src/main/res/values-az/strings.xml
@@ -141,19 +141,11 @@
Xeyirxahlıq rejimiQoşulmağa hazırdırTətbiqləri şəbəkə monitorinqindən gizlədin və bloklandıqda giriş əldə edin.
- Bütün Zamanların CəmiƏmin deyilsiniz?Tor könüllüləri vasitəsilə bağlanır. Bəzi Tor bloklamalarının ətrafında olur.
- Xeyirxahlıq rejimi cihazınızın başqaları üçün körpü olmasına imkan verir. Bu, insanlara Torun bloklandığı yerlərdə istifadə etməyə kömək edir.
-\n
-\n• Bu, batareyanızı boşaltmayacaq
-\n• İnternetinizi yavaşlatmayacaq
-\n• Yalnız wifi üzərində işləyə bilər
-\n• İstənilən vaxt söndürülə bilərGüc istifadəçi rejimiSmart Connect (defolt)Digər Proqramlar
- Həftəlik CəmiTəklif olunan proqramlarQeyd kopyalandıQeydi Kopyala
@@ -163,16 +155,11 @@
Snowflake (Orijinal)Orbot mesajlaşma və sosial media proqramları ilə ən yaxşı şəkildə işləyir.Proqramları seçin
- Başqalarına kömək edin
-\nTor-a qoşulunTor-a qoşulmağın ən yaxşı yolu. Tor bloklanmadıqda istifadə edin.
- Bu gün daha yaxşıdır
-\nsənə görə.Orbotdan istifadə etmək üçün internet bağlantısı lazımdır.Tordan soruşunYalnız şarj edərkənİnternetə qoşulun
- ParametrlərDoldurmaYalnız Wi-Fi-daSORUŞMAQ…
diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml
index d97b2a4606..d0559e3a23 100644
--- a/app/src/main/res/values-bg/strings.xml
+++ b/app/src/main/res/values-bg/strings.xml
@@ -131,21 +131,16 @@
СвързаниНастройки на връзкатаПрезареждане на връзката
- Помогнете на другите\nда се свържат с Тор
- Общо седмично
- Общо за цялото времеИнтелигентна връзкаSnowflakeВръзката се осъществява през доброволци на Тор. Заобикаля някои забрани на Тор.СвързванеНапред
- Режимът на доброта дава възможност устройството ви да бъде използвано като мост. Така други потребители могат да ползват Тор, на места където е забранен.\n\n• не изразходва батерията\n• не забавя връзката с интернет\n• работи само през безжична мрежа\n• може да бъде спрян по всяко времеДиректна връзкаНай-добрия начин за свързване с Тор. Използвайте ако Тор не е забранен.Режим за опитни потребителиЗа потребители, запознати с Тор. Дава възможност Орбот да бъде пуснат без настройки на ВЧМ, показва отворените портове на SOCKS и HTTPВключване
- Денят е по-добър\nзаради васOrbot работи най-добре с приложения за съобщения и социални медии.Препоръчани приложенияДруги приложения
@@ -155,7 +150,6 @@
Snowflake AMPЗАПИТВАНЕ…Свързване с интернет
- НастройкиЗа да използвате Orbot е необходим достъп до интернет.Не сте сигурни?Попитайте Тор
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index e51f9b7dd3..faa81ad1a1 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -106,19 +106,12 @@
Versió:Llicència:Ponts personalitzats
- Total globalFarciment del circuitUs cal una connexió a internet per a utilitzar l\'Orbot.Serveis Onion hostatjatsIndica a les sortides que no connectin a adreces IPv4No n\'esteu segur?Connecta mitjançant voluntaris del Tor. Evita algun blocatge del Tor.
- El mode altruista permet que el vostre dispositiu sigui un pont per als altres. Ajuda la gent a utilitzar el Tor en llocs on és blocat.
-\n
-\n• No esgotarà la bateria
-\n• No alentirà la connexió a internet
-\n• Només pot anar amb Wi-Fi
-\n• Es pot desconnectar en qualsevol momentPregunteu al TorConfiguració del port HTTPMode d\'usuari avançat
@@ -133,8 +126,6 @@
Mostra la notificació de connexióAïlla els protocols de clientOculteu les aplicacions al rastreig de la xarxa i obteniu-ne accés quan són blocades.
- Total setmanal
- ParàmetresAplicacions suggeridesActiva el farciment del circuit per a defensar-se d\'algunes formes d\'anàlisis de trànsitS\'ha copiat el registre
@@ -170,13 +161,9 @@
Tracta els paràmetres d\'exclusió de nodes com a requeriment per a construir tots els circuits. Podria trencar la funcionalitat si no es pot generar cap circuit amb aquests paràmetres.L\'Orbot funciona millor amb aplicacions de missatgeria i xarxes socials.Preparat per a connectar
- Ajudeu els altres
-\na connectar-se al TorSuprimeix l\'autorització del clientPort al qual el Tor ofereix el seu servidor intermediari HTTP (per defecte: 8118, o 0 per a desactivar)La millor manera de connectar-se al Tor. Utilitzeu-la si el Tor no és blocat.
- L\'avui és millor
-\ngràcies a vós.Hi ha moltes maneres d\'arribar al Tor. Algunes podrien funcionar millor que altres.Domini .onionClau privada x25519 en Base32
diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml
index 1c10d23c7f..05ee773d60 100644
--- a/app/src/main/res/values-cs-rCZ/strings.xml
+++ b/app/src/main/res/values-cs-rCZ/strings.xml
@@ -81,7 +81,6 @@
Vlastní mostyPřipojování…Obnovit
- Celkově za celou dobuVycpávky obvodůK používání služby Orbot potřebujete připojení k internetu.Pro každou cílovou adresu použijte jiný okruh
@@ -89,12 +88,6 @@
Informuje exity, že jsou upřednostňovány adresy IPv6Nejste si jisti\?Připojuje se prostřednictvím dobrovolníků Tor. Obchází některé blokace Toru.
- Režim laskavosti umožňuje, aby se vaše zařízení stalo mostem pro ostatní. Pomáhá lidem používat Tor v místech, kde je blokován.
-\n
-\n- Nevybíjí baterii
-\n- Nezpomalí váš internet
-\n- Může běžet pouze přes wifi
-\n- Lze ji kdykoli vypnoutZeptejte se ToruKonfigurace portu HTTPSpuštěné hostované služby, zvažte vypnutí optimalizací baterie
@@ -117,8 +110,6 @@
Izolovat cílové adresyIzolovat klientské protokolySkrýt aplikace před sledováním sítě a získat k nim přístup, když jsou blokovány.
- Týdenní součet
- NastaveníNavrhované aplikaceUmožňuje vyplňování obvodů pro obranu proti některým formám analýzy provozuÚplné zařízení VPN
@@ -167,14 +158,10 @@
Nastavení Vyloučit uzly považujte za požadavek pro sestavení všech obvodů. To může narušit funkčnost, pokud s nastavením Exclude Nodes nebude možné vygenerovat žádné obvody.Orbot nejlépe funguje s aplikacemi pro zasílání zpráv a sociální sítě.Připraveno k připojení
- Pomáhat ostatním
-\npřipojit se k síti TorOdstranění autorizace klientaPort, na kterém Tor nabízí svůj proxy server HTTP (výchozí: 8118 nebo 0 pro vypnutí)Uzavírá relay spojení dříve a odesílá méně paketů s vycpávkami, aby se snížila spotřeba dat a baterieNejlepší způsob připojení k síti Tor. Použijte, pokud Tor není blokován.
- Dnešek je lepší
-\ndíky tobě.Existuje mnoho způsobů, jak dosáhnout sítě Tor. Některé z nich vám mohou vyhovovat lépe než jiné.Místní přístavObnovení zálohy
diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml
index 834788b827..6784ddc305 100644
--- a/app/src/main/res/values-cy/strings.xml
+++ b/app/src/main/res/values-cy/strings.xml
@@ -70,7 +70,6 @@
Rhowch Tor i gysgu pan nad oes rhyngrwyd ar gaelPorthladdoedd cyraeddadwyCyfeiriadau Cyrraeddadwy
- GosodiadauPadin cylchedPorthladd y mae Tor yn cynnig ei DNS arno (rhagosodedig: 9053 neu 0 i\'w analluogi)Defnyddiwch gylched wahanol ar gyfer pob cyfeiriad cyrchfan
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 9b298305ca..1294b77a00 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -134,22 +134,10 @@
Power-User-ModusAktivierenVorgeschlagene Apps
- Der Freundlichkeitsmodus erlaubt es deinem Gerät, eine Brücke für andere zu sein. Er hilft Menschen, Tor an Orten zu nutzen, wo es blockiert wird.
-\n
-\n• Er wird deinen Akku nicht entladen
-\n• Er verlangsamt dein Internet nicht
-\n• Er kann nur über WLAN laufen
-\n• Er kann jederzeit ausgeschaltet werdenFür Benutzer, die mit Tor vertraut sind. Ermöglicht den Start von Orbot ohne die VPN-Einstellung und zeigt offene SOCKS- und HTTP-Ports anApps auswählen
- Heute ist es besser
-\nwegen dir.Orbot funktioniert am besten mit Messaging- und Social-Media-Apps.Andere Apps
- Anderen helfen,
-\nsich mit Tor zu verbinden
- Wöchentlich Insgesamt
- Gesamtzeit gesamtSmart ConnectDirekte VerbindungDer beste Weg, sich mit Tor zu verbinden. Benutze ihn, wenn Tor nicht blockiert wird.
@@ -178,7 +166,6 @@
Tor fragenNur beim LadenFür jeden Zielport eine andere Leitung verwenden
- EinstellungenLog kopiertLog kopierenNur über WLAN
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 43ab4a9ef2..86b90cbdd7 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -143,10 +143,6 @@
Χρησιμοποιήστε διαφορετικό κύκλωμα για κάθε πρωτόκολλο σύνδεσηςΧρήση διαφορετικού κυκλώματος για κάθε θύρα προορισμούΑπομόνωση πρωτοκόλλων πελάτη
- Βοηθήστε τους άλλους
-\nσυνδεθείτε στο Tor
- Εβδομαδιαίο σύνολο
- Όλος ο χρόνος ΣύνολοSmart Connect (προεπιλογή)Συνδέστε τοΕπόμενο
@@ -161,22 +157,13 @@
Χρειάζεστε σύνδεση στο διαδίκτυο για να χρησιμοποιήσετε το Orbot.ΕνεργοποίησηΛειτουργία Power User
- Σήμερα είναι καλύτερα
-\nεξαιτίας σου.Άλλες εφαρμογέςΤο Orbot λειτουργεί καλύτερα με εφαρμογές ανταλλαγής μηνυμάτων και μέσων κοινωνικής δικτύωσης.Προτεινόμενες εφαρμογέςΣυνδέεται μέσω εθελοντών του Tor. Παρακάμπτει κάποιο μπλοκάρισμα του Tor.
- Η λειτουργία \"Ευγένεια\" επιτρέπει στη συσκευή σας να γίνει γέφυρα για τους άλλους. Βοηθάει τους ανθρώπους να χρησιμοποιούν το Tor σε μέρη όπου είναι μπλοκαρισμένο.
-\n
-\n- Δεν θα αδειάσει την μπαταρία σας
-\n- Δεν θα επιβραδύνει το διαδίκτυο σας
-\n- Μπορεί να λειτουργήσει μόνο μέσω wifi
-\n- Μπορεί να απενεργοποιηθεί ανά πάσα στιγμήΆμεση σύνδεση στο TorΧιονονιφάδα (AMP)Για χρήστες που είναι εξοικειωμένοι με το Tor. Σας επιτρέπει να ξεκινήσετε το Orbot χωρίς τη ρύθμιση VPN και εμφανίζει τις ανοιχτές θύρες SOCKS και HTTP
- ΡυθμίσειςΡυθμίστε πώς και πότε η συσκευή σας μπορεί να ενεργεί ως διακομιστής μεσολάβησης Snowflake για άλλους χρήστες Tor.Ο καλύτερος τρόπος για να συνδεθείτε στο Tor. Χρησιμοποιήστε το αν το Tor δεν είναι μπλοκαρισμένο.Χιονονιφάδα (πρωτότυπο)
diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml
index da6f1e065f..e021d7a9e2 100644
--- a/app/src/main/res/values-en-rGB/strings.xml
+++ b/app/src/main/res/values-en-rGB/strings.xml
@@ -32,7 +32,6 @@
Power User ModeFor users familiar with Tor. Allows you to start Orbot without the VPN setting and shows open SOCKS and HTTP portsActivate
- Today is better\nbecause of you.Choose AppsOrbot works best with messaging and social media apps.Suggested Apps
@@ -87,13 +86,9 @@
Backup Service (Warning: This Could Expose Your Service Configuration to Other Apps)Always enables connection padding to defend against some forms of traffic analysis. Default: autoPrefer IPv6 connections
- Weekly TotalFull Device VPNCustom BridgesShow Connection Notification
- Help others\nconnect to Tor
- All Time Total
- Kindness mode allows your device to be a bridge for others. It helps people use Tor in places where it is blocked.\n\n• It will not drain your battery\n• It will not slow down your internet\n• It can run only over wifi\n• It can be turned off anytimeSmart ConnectDirect ConnectionThe best way to connect to Tor. Use if Tor is not blocked.
@@ -168,7 +163,6 @@
There are many ways to reach Tor. Some may work better than others for you.ASKING…You need an Internet connection to use Orbot.
- SettingsConfigure how and when your device can act as a Snowflake proxy for other Tor users.Hide apps from network monitoring and get access when they are blocked.Isolate client protocols
@@ -287,11 +281,6 @@
The VPN permission was denied or another VPN app has the \"Always-on VPN\" feature enabled. You can dismiss this and reconnect if you exited the previous VPN Request dialogue by mistake. Technical users can use another VPN app and use Tor as a SOCKS Proxy by enabling Orbot\'s Power User Mode.Open Android VPN SettingsRemove Country
- Unable to Start Kindness Mode
- In order to use Kindness Mode, you need to have connected directly to Tor (without using any bridges) at least once. After having connected, please come back here to activate Kindness Mode. After completing this direct connection test, you are free to use Kindness Mode whether or not you\'re connected to Tor.
- Kindness Mode can\'t run while you are using a bridge to connect to Tor.
- Using Kindness Mode to help other people connect to Tor is currently disabled for your country because of censorship.
- Don\'t Use Kindness Mode if you are in a region where you are censored or if you need to use a bridge to connect to Tor.Disable Battery OptimisationsSetting for some users that suspect their device is prematurely killing Orbot while it runs in the background.Certain Android devices may kill Orbot as it runs in the background. For most users who want to make sure Orbot stays connected and running, it\'s sufficient to set Orbot to function as an \"Always-on\" VPN in the system settings. However, you may still proceed to prevent your device from performing any battery optimisations on Orbot if you feel it to be necessary.
diff --git a/app/src/main/res/values-es-rCU/strings.xml b/app/src/main/res/values-es-rCU/strings.xml
index e858d680ae..f2c29053b0 100644
--- a/app/src/main/res/values-es-rCU/strings.xml
+++ b/app/src/main/res/values-es-rCU/strings.xml
@@ -142,16 +142,6 @@
Cambiar nodo de salidaRefrescarMostrar un mensaje cuando estés ayudando a alguien a evitar la censura
- Ayudar a otros
-\nconectarse a Tor
- Total semanal
- Suma total acumulada
- El modo bondad permite que tu dispositivo sea un puente para otros y así ayudar otras personas a usar Tor donde está bloqueado.
-\n
-\n• No consumirá batería de tu dispositivo
-\n• No ralentizará tu conexión a Internet
-\n• Solo funciona cuando estás conectado a una red Wi-Fi
-\n• Puedes desactivarlo en cualquier momentoConexión inteligente (por defecto)La mejor manera de conectarse a Tor. Usar si Tor no está bloqueado.Snowflake (Original)
@@ -161,8 +151,6 @@
SiguienteModo usuario avanzadoPara usuarios que conocen Tor. Permite iniciar Orbot sin el ajuste VPN y muestra puertos abiertos SOCKS y HTTP
- Hoy es mejor
-\ngracias a ti.Elegir aplicacionesOrbot funciona mejor con aplicaciones de mensajería y redes sociales.Aplicaciones sugeridas
@@ -174,7 +162,6 @@
PIDIENDO…Conectar a internetNecesitas una conexión a internet para usar Orbot.
- AjustesConfigurar cómo y cuándo tu dispositivo puede actuar como un Proxy Snowflake para otros usuarios de Tor.DepurarOrbot ha detectado que tu dispositivo está roteado, lo cual puede causar problemas de seguridad.
diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml
index da663dd34f..2833bc7dc5 100644
--- a/app/src/main/res/values-es-rES/strings.xml
+++ b/app/src/main/res/values-es-rES/strings.xml
@@ -133,19 +133,6 @@
Oculta las aplicaciones de la supervisión de la red y obten acceso cuando estén bloqueadas.La mejor manera de conectarse a Tor. Usar si Tor no está bloqueado.Se conecta a través de los voluntarios de Tor. Evita algunos bloqueos de Tor.
- Ayudar a otros
-\nconectarse a Tor
- Total de la Semana
- Total de Todo el Tiempo
- El modo Solidario permite que tu dispositivo sea un puente para otros. Ayuda a la gente a usar Tor en lugares donde está bloqueado.
-\n
-\n- No agotará tu batería
-\n
-\n- No ralentizará tu internet
-\n
-\n- Puede funcionar sólo a través de wifi
-\n
-\n- Se puede apagar en cualquier momentoConexión inteligenteConexión directaSnowflake
@@ -154,8 +141,6 @@
Modo de usuario avanzadoPara usuarios familiarizados con Tor. Permite iniciar Orbot sin la configuración de la VPN y muestra los puertos SOCKS y HTTP abiertosActivar
- Hoy es mejor
-\ngracias a ti.Elija las aplicacionesOrbot funciona mejor con aplicaciones de mensajería y redes sociales.Aplicaciones sugeridas
@@ -168,7 +153,6 @@
PREGUNTANDO…Conectarse a InternetNecesitas estar conectado a Internet para usar Orbot.
- AjustesPreguntale a TorConfigura cómo y cuándo tu dispositivo puede actuar como un proxy Snowflake para otros usuarios de Tor.Aislar puertos de destino
@@ -289,11 +273,6 @@
La aplicación %1$s está configurada como una VPN \"siempre activa\". Desactívala antes de iniciar Orbot.Se denegó el permiso de VPN o bien otra aplicación VPN tiene activada la función \"VPN siempre activa\". Si cerraste el diálogo de solicitud de VPN por error, puedes descartar este mensaje y volver a conectarte. Los usuarios con conocimientos técnicos pueden usar otra aplicación VPN y Tor como proxy SOCKS activando el modo de usuario avanzado de Orbot.Abre la configuración de VPN de Android
- No se pudo iniciar el Modo Amabilidad
- Para usar el Modo Amabilidad, debes conectarte directamente a Tor (sin usar puentes) al menos una vez. Después de conectarte, regresa aquí para activar el Modo Amabilidad. Una vez completada esta prueba de conexión directa, podrás usar el Modo Amabilidad independientemente de si estás conectado a Tor o no.
- El modo de amabilidad no puede ejecutarse mientras se utiliza un puente para conectarse a Tor.
- Actualmente, la función \"Usar el Modo Amabilidad\" para ayudar a otras personas a conectarse a Tor está deshabilitada en tu país debido a la censura.
- No utilices el Modo Amabilidad si te encuentras en una región donde está sujeto a censura o si necesitas utilizar un puente para conectarte a Tor.Inhabilitar optimizaciones de bateríaAjuste para algunos usuarios que sospechen que su dispositivo está cerrando Orbot prematuramente mientras se ejecuta en segundo plano.Algunos dispositivos Android pueden cerrar Orbot mientras se ejecuta en segundo plano. Para la mayoría de los usuarios que desean asegurarse de que Orbot permanezca conectado y en funcionamiento, basta con configurarlo como una VPN siempre activa en los ajustes del sistema. Sin embargo, si lo considera necesario, puede impedir que su dispositivo realice optimizaciones de batería con Orbot.
diff --git a/app/src/main/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml
index 03796dd39f..2edaedcb3b 100644
--- a/app/src/main/res/values-es-rMX/strings.xml
+++ b/app/src/main/res/values-es-rMX/strings.xml
@@ -65,15 +65,6 @@
Usa algoritmos de relleno de gastos generales más bajos para reducir el uso de datos y bateríaPon Tor a dormir cuando no haya Internet disponiblePermite que las personas conectadas al mismo Wi-Fi, los dispositivos conectados y cualquier otra persona que pueda conectarse a tu IP acceda a Tor
- El modo Solidario permite que tu dispositivo sea un puente para los demás. Ayuda a las personas a usar Tor en lugares donde está bloqueado.
-\n
-\n• No agotará la batería
-\n
-\n• No ralentizará tu Internet
-\n
-\n• Puede funcionar solo cuando estas conectado a wifi
-\n
-\n• Lo puedes detener en cualquier momentoLa mejor manera de conectarse a Tor. Usar si Tor no está bloqueado.Orbot funciona mejor con aplicaciones de mensajería y redes sociales.Registro copiado
@@ -149,10 +140,6 @@
Conectando…Elegir aplicacionesActualizar
- Ayuda a otres
-\na conectarse a Tor
- Total Semanal
- Total de todos los tiemposConexión inteligente (predeterminado)Conexión directa a TorSnowflake (Original)
@@ -163,8 +150,6 @@
Modo de usuarie avanzadoPara usuaries familiarizados con Tor. Te permite iniciar Orbot sin la configuración de VPN y muestra SOCKS abiertos y puertos HTTPActivar
- Hoy es mejor
-\ngracias a ti.Elije aplicacionesAplicaciones sugeridasOculta las aplicaciones de la supervisión de la red y obten acceso cuando estén bloqueadas.
@@ -174,7 +159,6 @@
Hay muchas formas de conectarse a Tor. Algunas pueden funcionar mejor que otros para ti.PREGUNTANDO…Necesitas una conexión a Internet para usar Orbot.
- Ajustar cuando se ejecuta…Configura cómo y cuándo tu dispositivo puede actuar como un proxy Snowflake para otros usuarios de Tor.MasSolo cuando estes cargando tu telefono
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index c6cf6dc1de..ad9b5bdb5f 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -135,10 +135,6 @@
Vali rakendusedMuud rakendusedKÜSIME…
- Seadistused
- Aita teisi
-\nTori ühenduse loomisel
- Kordi läbi aegadeÜhendab Tori vabatahtlike kaudu. Saab ümber mõnest Tor\'i blokeeringust.Otsene ühendus TorigaÜhendage
@@ -148,13 +144,10 @@
Kasutage iga sihtkoha jaoks erinevat vooluahelatKasutage iga ühendusprotokolli jaoks erinevat vooluahelatIsoleerida kliendiprotokollid
- Kordi nädalasPeida rakendused võrgu jälgimise eest ja saada juurdepääs, kui need on blokeeritud.AktiveeriTorini jõudmiseks on mitmeid viise. Mõni neist võib teie jaoks toimida paremini kui teised.Toriga tuttavatele kasutajatele. Võimaldab käivitada Orbot ilma VPN-seadistusteta ja näitab avatud SOCKS- ja HTTP-porti
- Täna on parem
-\ntänu sinule.Orbot töötab kõige paremini koos sõnumite ja sotsiaalmeedia rakendustega.Ühendage internetigaOrbot\'i kasutamiseks on vaja internetiühendust.
@@ -162,12 +155,6 @@
Logi kopeeritudNutikas ühendus (vaikimisi)Parim viis Toriga ühendumiseks. Kasutage, kui Tor ei ole blokeeritud.
- Sõbralikkuse režiim võimaldab sinu seadmel olla teiste jaoks sillaks. See aitab inimestel kasutada Tori kohtades, kus see on blokeeritud.
-\n
-\n- See ei tühjenda sinu seadme akut
-\n- See ei aeglusta sinu internetiühendust
-\n- Seda saab kasutada ainult üle wifi
-\n- Seda saab igal ajal välja lülitadaKüsi ToriltLumehelbeke (originaal)Lumehelbeke (AMP)
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index 3ebb632fb3..3cde82d921 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -132,10 +132,6 @@
در حال وصلشدن…با تنظیمات گرههای مستثنی بهعنوان یک الزام برای ساخت همه مدارها برخورد کنید. درصورتی که با تنظیمات گرههای مستثنی شما، هیچ مداری نتواند تولید شود، ممکن است عملکرد را از بین ببرد.وصلشدن
- کمک به دیگران در \nوصلشدن به Tor
- حالت مهربانی اجازه میدهد تا دستگاهتان یک پل برای دیگران باشد. این کار به کمک میکند تا افراد در مکانهایی که Tor مسدود شده از آن استفاده کنند. \n \n- باتریتان را تخلیه نخواهد کرد\n- اینترنتتان را کند نخواهد کرد \n- فقط میتواند روی Wi-Fi اجرا شود \n- میتواند هر زمانی خاموش شود
- مجموع هفتگی
- مجموع تمامی زمانهااتّصال هوشمنداتّصال مستقیمبعدی
@@ -144,7 +140,6 @@
بهترین روش اتصال به Tor. درصورت مسدودنبودن Tor از آن استفاده کنید.حالت کاربری حرفهایفعالسازی
- به لطف شما امروز \nروز بهتری است.انتخاب برنامههادیگر برنامههابرای کاربران آشنا با Tor. اجازه میدهد تا Orbot را بدون تنظیمات VPN شروع کند و درگاههای باز HTTP و SOCKS را نشان میدهد
@@ -162,7 +157,6 @@
درحال پرسیدن…به اینترنت وصل شویدبرای استفاده از Orbot نیاز به اتصال اینترنتی دارید.
- تنظیماتاینکه چگونه و چه زمانی دستگاه شما میتواند بهعنوان یک پراکسی Snowflake برای سایر کاربران Tor عمل کند را پیکربندی کنید.گزارشها رونوشت شدندرونوشت گزارشها
@@ -279,9 +273,4 @@
اجازهٔ ویپیان رد شد یا کارهٔ ویپیانی دیگر قابلیت «همیشه روشن» را به کار انداخته. اگر گفتوگوی درخواست ویپیان پیشین را به اشتباه بستید این پیام را رد کرده و دوباره وصل شوید. کاربران فنی میتوانند با به کار انداختن حالت کاربر قدرتمند روبوت پیازی از کارهٔ ویپیانی دیگر استفاده کرده و تور را به عنوان پیشکار ساکس استفاده کنند.گشودن تنظیمات ویپیان اندرویدحذف کشور
- عدم امکان شروع حالت مهربانی
- برای استفاده از حالت مهربانی، شما باید به طور مستقیم به Tor (بدون استفاده از هر پل) حداقل یک بار متصل شوید. پس از اتصال، لطفا به اینجا برگردید تا حالت مهربانی را فعال کنید. پس از اتمام این تست اتصال مستقیم، شما آزاد هستید که از حالت مهربانی استفاده کنید یا به Tor متصل نیستید.
- مهربانی حالت نمی تواند اجرا شود در حالی که شما از یک پل برای اتصال به Tor استفاده می کنید.
- استفاده از Kindness حالت کمک به دیگران برای اتصال به Tor در حال حاضر به دلیل سانسور برای کشور شما معلول است.
- از مهربانی استفاده نکنید حالت اگر شما در منطقه ای هستید که در آن سانسور شده اید یا اگر نیاز دارید از یک پل برای اتصال به Tor استفاده کنید.
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index 84dbcc241b..e72dec3d68 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -134,14 +134,10 @@
Kokeneille Tor-käyttäjille. Mahdollistaa Orbotin käynnistyksen ilman VPN-asetusta ja näyttää avoimet SOCKS- ja HTTP-portit.TehokäyttäjätilaAktivoi
- Tänään on ansiostasi parempi päivä.Valitse sovelluksiaOrbot toimii parhaiten viestintäsovellusten ja sosiaalisen median sovellusten kanssa.Muut sovelluksetEhdotetut sovellukset
- Viikottainen kokonaismäärä
- Kaikkien aikojen kokonaismäärä
- Auta muita yhdistämään Tor-verkkoonÄlykäs yhdistäminen (oletus)Suora Tor-yhteysParas Tor-yhteyden muodostustapa. Käytä, jos Tor-verkkoa ei ole estetty.
@@ -149,15 +145,8 @@
Muodostaa Tor-yhteyden vapaaehtoisten välityksellä. Kiertää joitakin Tor-estoja.YhdistäSeuraava
- Ystävällisyystila tekee laitteestasi sillan muille. Se auttaa muita käyttämään Toria paikoissa, joissa se on estetty.
-\n
-\n• Se ei kuluta akkuasi
-\n• Se ei hidasta Internet-yhteyttäsi
-\n• Se voi toimia vain Wi-Fi-yhteydellä
-\n• Se voidaan poistaa käytöstä koska tahansaPiilota sovelluksia verkkoseurannalta ja käytä estettyjä palveluita.Lokitiedot kopioitu
- AsetuksetSnowflake (AMP)Kysy ToriltaKYSYTÄÄN…
diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml
index 169374aa14..a0738649d3 100644
--- a/app/src/main/res/values-fr-rFR/strings.xml
+++ b/app/src/main/res/values-fr-rFR/strings.xml
@@ -123,21 +123,10 @@
Afficher un message lorsque vous aidez quelqu\'un à contourner la censureMode utilisateur avancéActiver
- Aujourd’hui, c’est meilleur
-\ngrâce à toi.Choisir les applicationsOrbot fonctionne mieux avec les applications de messagerie et de médias sociaux.Applications suggéréesAutres applications
- Aidez les autres
-\nà se connecter à Tor
- Grand total
- Le mode gentillesse permet à votre appareil d\'être un pont pour les autres. Il aide les gens à utiliser Tor dans les endroits où il est bloqué.
-\n
-\n- Il n\'épuise pas votre batterie
-\n- Il ne ralentit pas l\'accès à l\'internet
-\n- Il ne peut fonctionner qu\'en wifi
-\n- Il peut être désactivé à tout momentConnexion intelligenteConnexion directeLa meilleure façon de se connecter à Tor. À utiliser si Tor n’est pas bloqué.
@@ -155,10 +144,8 @@
Isoler les ports de destinationIsoler les protocoles des clientsConfigurer
- Total hebdomadaireDemander à TorVous avez besoin d\'une connexion internet pour utiliser Orbot.
- ParamètresDEMANDER…RembourrageDébogage
diff --git a/app/src/main/res/values-ga/strings.xml b/app/src/main/res/values-ga/strings.xml
index ae19629a4f..357f8bb594 100644
--- a/app/src/main/res/values-ga/strings.xml
+++ b/app/src/main/res/values-ga/strings.xml
@@ -139,10 +139,6 @@
Roghnaigh aipeannaAthraigh an bealach amachAthnuachan an Nasc
- Cabhraigh le daoine eile\nceangal le Tor
- Iomlán Seachtainiúil
- Iomlán na nAmaí
- Ligeann modh cineálta do ghléas a bheith ina dhroichead do dhaoine eile. Cuidíonn sé le daoine Tor a úsáid in áiteanna ina bhfuil sé blocáilte.\n\n• Ní dhraenálfaidh sé do cheallraí\n• Ní mhoilleoidh sé d’idirlíon\n• Ní féidir leis rith ach thar wifi\n• Is féidir é a mhúchadh am ar bithTá Mód Cineáltais ag RithTá tú tar éis cabhrú le %1$d duine an chinsireacht a sheachaintTá Mód Cineáltais Díghníomhachtaithe
@@ -169,7 +165,6 @@
Mód Úsáideora CumhachtaD’úsáideoirí atá eolach ar Tor. Ligeann sé duit Orbot a thosú gan an socrú VPN agus taispeánann sé calafoirt SOCKS agus HTTP atá oscailteGníomhachtaigh
- Tá an lá inniu \nníos fearr mar gheall ort.Roghnaigh AipeannaOibríonn Orbot is fearr le haipeanna teachtaireachtaí agus meán sóisialta.Aipeanna Molta
@@ -183,7 +178,6 @@
AG CEIST…Ceangail leis an idirlíonTeastaíonn nasc idirlín uait chun Orbot a úsáid.
- SocruitheCumraigh conas agus cathain is féidir le do ghléas gníomhú mar seachfhreastalaí Snowflake d\'úsáideoirí Tor eile.CineáltasTuilleadh
@@ -279,11 +273,6 @@
Diúltaíodh an cead VPN nó tá an ghné \"VPN i gcónaí ar siúl\" cumasaithe ag aip VPN eile. Is féidir leat é seo a dhíbhe agus athcheangal má d’fhág tú an dialóg Iarratas VPN roimhe seo trí dhearmad. Is féidir le húsáideoirí teicniúla aip VPN eile a úsáid agus Tor a úsáid mar Socks Proxy trí Mhód Úsáideora Cumhachta Orbot a chumasú.Oscail Socruithe VPN AndroidBain Tír
- Ní féidir Mód Cineáltais a thosú
- Chun Mód Cineáltais a úsáid, ní mór duit a bheith ceangailte go díreach le Tor (gan aon droichid a úsáid) uair amháin ar a laghad. Tar éis duit ceangal a dhéanamh, tar ar ais anseo le Mód Cineáltais a ghníomhachtú. Tar éis duit an tástáil nasc díreach seo a chríochnú, is féidir leat Mód Cineáltais a úsáid cibé an bhfuil tú ceangailte le Tor nó nach bhfuil.
- Ní féidir Mód Cineáltais a rith agus tú ag úsáid droichead chun ceangal le Tor.
- Tá úsáid Mód Cineáltais chun cabhrú le daoine eile ceangal le Tor díchumasaithe faoi láthair i do thír mar gheall ar chinsireacht.
- Ná húsáid Mód Cineáltais má tá tú i réigiún ina bhfuil cinsireacht ort nó má theastaíonn uait droichead a úsáid chun ceangal le Tor.Díchumasaigh Optamaithe CeallraíSocrú do roinnt úsáideoirí a bhfuil amhras orthu go bhfuil a ngléas ag marú Orbot roimh am agus é ag rith sa chúlra.D’fhéadfadh gléasanna áirithe Android Orbot a mharú agus é ag rith sa chúlra. I gcás fhormhór na n-úsáideoirí ar mian leo a chinntiú go bhfanann Orbot ceangailte agus ag rith, is leor Orbot a shocrú chun feidhmiú mar VPN \"I gcónaí ar siúl\" i socruithe an chórais. Mar sin féin, féadfaidh tú fós cosc a chur ar do ghléas aon uasmhéaduithe ceallraí a dhéanamh ar Orbot má cheapann tú go bhfuil gá leis.
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index 727ced1633..3be6609bd6 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -123,7 +123,6 @@
Conectarse a través doutros usuarios de Tor utilizando Snowflake (Método 2 - AMP)Escolle aplicaciónsSnowflake (Orixinal)
- Total de todo o tempoConexión intelixente (default)Modo bondadeUtilizar un circuito diferente para cada porto de destino
@@ -148,21 +147,7 @@
Conectarse a través de voluntarios de Tor. Evita algúns bloqueos.Precísase conexión a Internet para utilizar Orbot.Activar o recheo do circuito para defenderse contra algunhas formas de análise de tráfico
- O modo bondade permite o uso do teu dispositivo coma ponte para outros. Axuda á xente a utilizar Tor en lugares onde está bloqueado.
-\n
-\n
-\n• Non esgotará a túa batería
-\n
-\n• Non atrasa a túa Internet
-\n
-\n• Só funciona a través de Wifi
-\n
-\n• Pode apagarse en calquer momentoConexión directa con Tor
- Axude a outros
-\na conectarse a Tor
- Total semanal
- ConfiguraciónOrbot está a se iniciar…Conectado á rede TorOrbot está desactivado
diff --git a/app/src/main/res/values-guc/strings.xml b/app/src/main/res/values-guc/strings.xml
index 82da9d0ccd..9a32f18f97 100644
--- a/app/src/main/res/values-guc/strings.xml
+++ b/app/src/main/res/values-guc/strings.xml
@@ -136,10 +136,6 @@ punjulaa apps, jupula anaijatuin pu kachuerrase
Apawua app Awuanajawua ajui\'tiaJekets juchikuaaya
- pukalijaa waneirrüa junain apainjirrawua numa Tor
- Jupushua semanaka.
- Jupushua akalia\'a
- Tor akalijúsh erre\'e suttuin , nojots ajattuín tu bateriaka, kawuatirras tu internetka,pulatiruín juma WIFI, es jupüla puyokujain Atujashi Apainjirrrawua. (default)Apainjirrawua numa Tor.Pansajeer numa Tor, paa´pa maka numojulee.
@@ -150,7 +146,6 @@ punjulaa apps, jupula anaijatuin pu kachuerrase
Kawatirras.Pirrajule Tor es jupula painjüin jumuywaya\'a, pirreer SOCKS and HTTP errulaínPainjamata.
- Joluu anashatas wamuin ka pukalijaín wayaApawúa aplikaciónOrbot anas jukaipa juma alwuatawüa je eerrajilawua wapushua \'yaAin\'nes juka tu aplicación ka
diff --git a/app/src/main/res/values-gum/strings.xml b/app/src/main/res/values-gum/strings.xml
index 598bf9e1b9..7a82e88555 100644
--- a/app/src/main/res/values-gum/strings.xml
+++ b/app/src/main/res/values-gum/strings.xml
@@ -137,12 +137,7 @@
Chi netɵ maram purukuntrapelan lawa pɵnsramikWam wepipikwan yunɵmaramikSrɵ tamara pasrɵp
- Katɵkanelan purukumik wan ketlitsamikyu
- Truneyu ketriku purayeikwan eshkapik
- Ketriku utɵmerayu purayeiklan eshkapik
- Tap meitɵ kɵntrei tamara pasrikpe ñui wamsrupik pekelan piuntsik lateik mara purukuntrapik kɵn .
-Toryu kepiam keik kasreik pasrɵpen pekelɵ kepamtreik purukupik kɵn \n\n-naktsi nikapikwan petɵ patsɵkɵmik kɵn\n\n- wam pirishipikwan tsuntastik marmik kɵn\n\n wifi kuik kutrimpe chi kɵpen maramtik kɵn \n\n- chiuras kɵpen kuetsamtik kɵn
- Smart Connect (trentө trek pasrөntrai tamarik)
+ Smart Connect (trentө trek pasrөntrai tamarik)Kan meitɵ Torsrɵ kɵlichipikɵyamei Toryu kelitsamikpe katɵ kuchi tap kɵn. Tor kuetsik pasrɵmupene kepintrunCopo de nieve teik
@@ -152,7 +147,6 @@ Toryu kepiam keik kasreik pasrɵpen pekelɵ kepamtreik purukupik kɵn \n\n-nakts
Power Usermei pasranTorwan ashipelai. Orbotwan pelpasrtrappe VPN palɵmentrun incha wam srɵl kuri pentrapelan SOCKSpa HTTPpa kenamartrun Pilɵkɵp
- Mɵi kualɵm ñi kutri ikpe katɵkuchi tapik kɵnMaram purukupele tamara pɵnsreilan lawa kemɵrOrbotpe tap pasrappe, pɵra ɵramikpa, wam pekuchipelɵpa tap pasrapik kɵn Katɵkan eshkeilɵ kɵn Maram purukupelɵ tamara pɵnsreiklɵ
diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml
index 1b7a48f15e..96aeb3d1eb 100644
--- a/app/src/main/res/values-hi/strings.xml
+++ b/app/src/main/res/values-hi/strings.xml
@@ -119,10 +119,7 @@
जुड़े हुएजुड़ रहे…रीफ्रेश करें
- हफ्ते का कुलसुपरयूज़र मोड
- आज का दिन बेहतर है
-\nआपके वजह से।सवाल हैं\?टॉर तक पहुंचने के कई तरीके है। आपके लिए कुछ तरीके दूसरों से बेहतर हो सकते है।टॉर से पूछें
@@ -134,14 +131,7 @@
सिर्फ वाईफाई पेसिर्फ चार्ज करते वक्तटॉर से वाकिफ लोगों के लिए। आपको वीपीएन सेटिंग के बिना ऑरबॉट शुरू करने देता है और खुले सॉक्स और एचटीटीपी पोर्ट दिखाता है
- मेहरबानी मोड आपके डिवाइस को दूसरे लोगों के लिए ब्रिज में बदल देता है। ये उन लोगों की मदद करता है जिनके इलाके में टॉर ब्लॉक किया गया है।
-\n
-\n• ये आपका बैट्री कम नहीं करेगा
-\n• ये आपका इंटरनेट रफ्तार कम नहीं करेगा
-\n• ये सिर्फ वाईफाई पे चलेगा
-\n• ये कभी भी बंद किया जा सकता हैइंटरनेट से जुड़ें
- चलते हुए अपनेआप बदलें…सेट करें कि आपका डिवाइस दूसरे टॉर यूज़रों के लिए कब स्नोफ्लेक्स प्रॉक्सी के तरह काम कर सकता है।पूछ रहे है।लॉग कॉपी करें
@@ -149,9 +139,6 @@
ऑरबॉट को मालूम हुआ कि आपका डिवाइस रूट किया गया है, जिससे सुरक्षा लफड़े हो सकते है।नेटवर्क निगरानी से ऐप छुपाएं और ब्लॉक होने पे एक्सेस दें।लॉग कॉपी किया गया
- टॉर से जुड़ने में
-\nदूसरों की मदद करें
- सारे वक्त का कुलसमझदार कनेक्शन (डिफॉल्ट)मंज़िल पोर्ट अलग करेंक्लाइंट प्रोटोकॉल अलग करें
diff --git a/app/src/main/res/values-hr-rHR/strings.xml b/app/src/main/res/values-hr-rHR/strings.xml
index dd6dc6bfb1..8f6325588e 100644
--- a/app/src/main/res/values-hr-rHR/strings.xml
+++ b/app/src/main/res/values-hr-rHR/strings.xml
@@ -87,18 +87,13 @@
Licenca:PotvrdiPrilagođeni mostovi
- PostavkeAutorizacija klijentaSnowflake AMP
- Ukupno (svo vrijeme)Izravna vezaNajbolji način povezivanja s Torom. Koristi ga ako Tor nije blokiran.Pametno povezivanje
- Pomogni drugima
-\nda se povežu na TorSnowflakePovezuje se preko Tor volontera. Zaobilazi neka blokiranja Tor-a.
- Ukupno (tjedno)Unutarnji odmakOrbot se pokreće…Spojen na Tor mrežu
diff --git a/app/src/main/res/values-hy-rAM/strings.xml b/app/src/main/res/values-hy-rAM/strings.xml
index 86a82607ca..97fc72ad8e 100644
--- a/app/src/main/res/values-hy-rAM/strings.xml
+++ b/app/src/main/res/values-hy-rAM/strings.xml
@@ -34,14 +34,10 @@
ՄիանալՊատրաստ է միացմանԽելացի միացում (լռելայն)
- Այսօր ավելի լավ է
-\nՁեր շնորհիվ:Վստահ չե՞քՄատյանՎրիպազերծումՄատչելի մատույցներ
- Օգնեք ուրիշներին
-\nմիանալ Tor-ինԱրտագնա փոխանորդի հյուրընկալՓոխանորդ սերվերի մատույցըԱրտագնա փոխանորդի մատույց
@@ -81,7 +77,6 @@
Ջնջել ծառայությունըՄատյանը պատճենվեցՀարցրեք Tor-ին
- ԿարգավորումներՄատչելի հասցեներՄուտքագրեք մատույցներըՆախագծի տնէջ.
diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml
index a09ab831f8..3aea08b34c 100644
--- a/app/src/main/res/values-ia/strings.xml
+++ b/app/src/main/res/values-ia/strings.xml
@@ -29,19 +29,13 @@
Connecter te a internetSeliger le applicationesOrbot
- Total de tote le temporeTu besonia un connexion de Internet pro usar Orbot.Modo de usator avantiate
- Total del septimanaSolmente in Wi-FiConnexion directe a TorSnowflake (AMP)Orbot functiona melior con applicationes de messageria e retes social.
- Adjuta a alteres
-\nin connecter se a TorLe melior maniera de connecter se a Tor. Usa lo si Tor non es blocate.
- Hodie es melior
-\ngratias a te.Copiar adresse al area de transferentiaVersion:Deler le servicio
@@ -49,7 +43,6 @@
Licentia:Typo de servicioServicios onion
- ParametrosPontes personalisatePreste pro connecterMonstrar notification de connexion
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index f2fecaaf78..bf7aade4e6 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -73,8 +73,6 @@
Mode Pengguna BerdayaUntuk pengguna yang familier dengan Tor. Memungkinkan Anda untuk memulai Orbot tanpa pengaturan VPN dan menampilkan porta SOCKS dan HTTP yang terbukaAktifkan
- Hari ini lebih baik
-\nkarena tindakan Anda.Pilih AplikasiOrbot bekerja baik dengan aplikasi perpesanan dan media sosial.Aplikasi yang Disarankan
@@ -88,10 +86,6 @@
Hubungkan melalui pengguna Tor lain menggunakan Snowflake (Metode 2 - AMP)Tampilkan Notifikasi KoneksiTampilkan pesan ketika Anda membantu seseorang melewati sensor
- Bantu orang lain
-\nmenghubung ke Tor
- Jumlah Setiap Minggu
- Jumlah Sepanjang WaktuSmart ConnectKoneksi LangsungCara yang terbaik untuk menghubungkan ke Tor. Gunakan jika Tor tidak diblokir.
@@ -124,7 +118,6 @@
Nonaktifkan koneksi IPv4Mode KebaikanPilih aplikasi
- Mode Kebaikan memungkinkan perangkat Anda menjadi jembatan bagi orang lain. Fitur ini membantu orang menggunakan Tor di tempat-tempat di mana Tor diblokir.\n\n• Tidak akan menguras baterai Anda\n• Tidak akan memperlambat koneksi internet Anda\n• Hanya dapat dijalankan melalui Wi-Fi\n• Dapat dimatikan kapan sajaKonfirmasiPeringatan: Ini dapat membocorkan kunci Anda ke aplikasi lainHapus Layanan
@@ -160,7 +153,6 @@
Ada lebih banyak cara untuk mencapai Tor. Beberapa dapat bekerja dengan baik daripada yang lain untuk Anda.Hubungkan ke internetAnda membutuhkan koneksi internet untuk menggunakan Orbot.
- PengaturanAtur bagaimana dan kapan perangkat Anda dapat menjadi sebagai proksi Snowflake untuk pengguna Tor lain.MENANYAKAN…Gunakan sirkuit yang berbeda untuk setiap porta tujuan
@@ -281,11 +273,6 @@
Izin VPN ditolak atau aplikasi VPN lain memiliki fitur \"Always-on VPN\" yang diaktifkan. Anda dapat mengabaikan ini dan menyambung kembali jika Anda keluar dari dialog VPN Request sebelumnya secara tidak sengaja. Pengguna teknis dapat menggunakan aplikasi VPN lain dan menggunakan Tor sebagai SOCKS Proxy dengan mengaktifkan Mode Pengguna Mahir Orbot.Buka Pengaturan VPN AndroidHapus Negara
- Tidak Dapat Memulai Mode Kebaikan
- Untuk menggunakan Mode Kebaikan, Anda perlu pernah terhubung langsung ke Tor (tanpa menggunakan jembatan apa pun) setidaknya sekali. Setelah terhubung, silakan kembali ke sini untuk mengaktifkan Mode Kebaikan. Setelah menyelesaikan uji koneksi langsung ini, Anda bebas menggunakan Mode Kebaikan baik saat terhubung ke Tor maupun tidak.
- Mode Kebaikan tidak dapat berjalan saat Anda menggunakan jembatan untuk terhubung ke Tor.
- Penggunaan Mode Kebaikan untuk membantu orang lain terhubung ke Tor saat ini dinonaktifkan untuk negara Anda karena penyensoran.
- Jangan Gunakan Mode Kebaikan jika Anda berada di wilayah yang disensor atau jika Anda perlu menggunakan jembatan untuk terhubung ke Tor.Nonaktifkan Optimasi BateraiPengaturan untuk beberapa pengguna yang menduga perangkat mereka menghentikan Orbot secara dini saat berjalan di latar belakang.Perangkat Android tertentu mungkin menghentikan Orbot saat berjalan di latar belakang. Bagi sebagian besar pengguna yang ingin memastikan Orbot tetap terhubung dan berjalan, sudah cukup dengan mengatur Orbot agar berfungsi sebagai VPN \"Selalu aktif\" di pengaturan sistem. Namun, Anda tetap dapat mencegah perangkat melakukan optimasi baterai pada Orbot jika dirasa perlu.
diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml
index c8fabb3893..1d6b083f66 100644
--- a/app/src/main/res/values-is/strings.xml
+++ b/app/src/main/res/values-is/strings.xml
@@ -133,10 +133,6 @@
Bein tengingSnowflakeFeldu forrit fyrir netvöktun og náðu aðgangi þegar lokað er á þau.
- Hjálpaðu öðrum \nað tengjast við Tor
- Alls í vikunni
- Samtals frá upphafi
- Vænleikahamur lætur tækið þitt verða að brú fyrir annað fólk. Það hjálpar því fólki til að nota Tori við aðstæður þar sem annars er lokað á það. \n \n• Það mun ekki eyða rafhlöðunni þinni um of \n• Það mun ekki hægja á internetinu \n• Það getur aðeins notað þráðlaust wi-fi net \n• Hægt er að slökkva á því hvenær sem erBesta leiðin til að tengjast við Tor. Notist ef ekki er lokað á Tor.Tengist í gegnum Tor-sjálfboðaliða. Kemst framhjá sumum hindrunum gagnvart Tor.Tengjast
@@ -144,7 +140,6 @@
Meðhöndla útilokaða punkta sem forsendu við byggingu allra rása. Þetta gæti skemmt fyrir virkni ef ekki er hægt að byggja upp neinar rásir út frá stillingum útilokaðra punkta.VirkjaVeldu forrit
- Dagurinn í dag er betri \nþökk sé þér.Tillögur að forritumÖnnur forritHamur fyrir vana notendur
@@ -158,7 +153,6 @@
Það eru margar aðferðir við að ná sambandi við Tor. Sumar gætu virkað betur fyrir þig en aðrar.Tengjast við internetiðÞú þarft internettengingu til að nota Orbot.
- StillingarNota mismunandi rás fyrir hverja markgáttFeldu forrit fyrir netvöktun og náðu aðgangi þegar lokað er á þau.Ekki viss?
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index e53e812ce6..8aeb39e094 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -142,7 +142,6 @@
Tratta l\'impostazione \"Nodi da escludere\" come requisito per creare tutti i circuiti. Può causare errori se nessun circuito è in grado di essere generato con la tua impostazione \"Nodi da escludere\".Solo su WifiSolo quando in carica
- La modalità altruismo consente al tuo dispositivo di fare da ponte per gli altri. Aiuta le persone ad usare Tor in luoghi dove viene bloccato. \n \n• Non consumerà la tua batteria \n• Non rallenterà il tuo internet \n• Può funzionare solo su wifi \n• Può essere spenta in qualsiasi momentoConnessione intelligenteSi connette tramite volontari di Tor. Aggira qualche blocco di Tor.Modalità altruismo
@@ -153,26 +152,19 @@
Configura come e quando il dispositivo può agire da proxy Snowflake per altri utenti Tor.Log copiatoCambia uscita
- Aiuta altri a
-\nconnettersi a Tor
- Totale assolutoConnessione direttaIl modo migliore per connettersi a Tor. Usalo se Tor non viene bloccato.Snowflake (originale)Snowflake (AMP)Per gli utenti familiari con Tor. Consente di avviare Orbot senza l\'impostazione VPN e mostra le porte SOCKS e HTTP aperte
- Un giorno migliore
-\ngrazie a te.App consigliateNascondi le app dal monitoraggio della rete e ottieni l\'accesso quando vengono bloccate.Non sei sicuro\?Chiedi a TorCi sono molti modi per raggiungere Tor. Alcuni possono funzionare meglio di altri per te.RICHIESTA…
- ImpostazioniOrbot ha rilevato che è stato fatto il root del dispositivo , il che può causare problemi di sicurezza.Nascondi le app dal monitoraggio della rete e ottieni l\'accesso quando vengono bloccate.
- Totale settimanaleRiempimento del circuitoAttiva il riempimento del circuito in difesa contro alcune forme di analisi del trafficoAvvisa all\'avvio se l\'autorizzazione root è attiva in questo dispositivo
@@ -281,11 +273,6 @@
L\'autorizzazione VPN è stata negata o un\'altra app VPN ha attivato la funzione \"VPN sempre attiva\". Puoi tornare indietro e riconnetterti se sei uscito dalla precedente finestra di richiesta VPN per errore. Gli utenti tecnici possono usare un\'altra app VPN e usare Tor come proxy SOCKS attivando la modalità Utente esperto di Orbot.Apri le impostazioni VPN di AndroidRimuovi nazione
- Impossibile avviare la modalità altruismo
- Per usare la modalità altruismo, devi avere connesso direttamente Tor (senza usare alcun bridge) almeno una volta. Torna qui a connessione avvenuta per attivare la modalità altruismo. Dopo aver completato questa prova di connessione diretta, puoi usare liberamente la modalità altruismo se Tor è connesso o meno.
- La modalità altruismo non può funzionare mentre usi un bridge per connetterti a Tor.
- L\'uso della modalità altruismo, per aiutare altre persone a connettersi a Tor, è attualmente disattivato per la tua nazione a causa della censura.
- Non usare la modalità altruismo se ti trovi in una regione in cui si viene censurati o se ti serve usare un bridge per connetterti a Tor.Disattiva ottimizzazioni della batteriaOpzione per alcuni utenti che sospettano che il loro dispositivo chiuda prematuramente Orbot mentre è in secondo piano.Alcuni dispositivi Android potrebbero chiudere Orbot mentre è in secondo piano. Per la maggior parte degli utenti che vogliono assicurarsi che Orbot rimanga connesso e in esecuzione, è sufficiente impostare Orbot per funzionare come una VPN \"sempre attiva\" nelle impostazioni del sistema. Tuttavia, puoi procedere ad impedire al dispositivo di eseguire qualsiasi ottimizzazione della batteria su Orbot se necessario.
diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml
index 2aabeb6410..b02f4ef958 100644
--- a/app/src/main/res/values-iw/strings.xml
+++ b/app/src/main/res/values-iw/strings.xml
@@ -131,17 +131,10 @@
להשתמש באלגוריתמים עם תקורת ריפוד נמוכה כדי לחסוך בתעבורת נתונים ובניצולת סוללהאפשר להפעיל ריפוד מעגל כדי להגן מפני מגוון צורות של ניתוח תעבורהריפוד מעגל מופחת
- סיכום לכל הזמןצריך חיבור לאינטרנט כדי להשתמש ב־Orbot.בספק\?חיבור דרך מתנדבי Tor. מעקף חלק מחסימות Tor.גשרים מותאמים אישית
- מצב חסד מאפשר למכשיר שלך להיות גשר עבור אחרים. זה עוזר לאנשים להשתמש ב־Tor במקומות שבהם הוא חסום.
-\n
-\n• זה לא ירוקן את הסוללה שלך
-\n• זה לא יאט את האינטרנט שלך
-\n• זה יכול לפעול רק על wifi
-\n• ניתן לכבות אותו בכל עתלשאול את Torשירותים מתארחים פועלים, כדאי להשבית את מיטוב הסוללהמצב משתמש פיכח
@@ -153,8 +146,6 @@
הסתרת יישומונים מניטור רשת וקבלת גישה כשהן חסומות.הצגת הודעת חיבורהסתרת יישומונים מניטור רשת וקבלת גישה כשהן חסומות.
- סיכום שבועי
- הגדרותיישומונים מוצעיםיומן הועתקהעתקת יומן
@@ -181,12 +172,8 @@
התייחסות להגדרות החרגה של צמתים כדרישה לבניית כל המעגלים. זה עלול לשבור את הפעילות אם לא ניתן ליצור מעגלים עם הגדרות החרגת הצמתים שנקבעו.Orbot עובד הכי טוב עם יישומוני הודעות ומדיה חברתית.מוכן להתחבר
- סיוע לאחרים
-\nלהתחבר ל־Torמחיקת הרשאת הלקוחהדרך הטובה ביותר להתחבר ל־Tor. אפשר להשתמש אם Tor לא חסום.
- היום טוב יותר
-\nבזכותך.ישנן דרכים רבות להגיע ל־Tor. חלקן עשויות לעבוד טוב יותר מאחרות עבורך.להזהיר בהתחלה אם המכשיר הזה פרוץ (root) וההרשאות האלה פעילותזיהוי פריצה (root)
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 6a44fb25f4..0d357dd3d8 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -132,12 +132,7 @@
.onion ドメイン除外ノード設定を、すべての回線構築における必須要件として扱います。除外ノード設定により回線が構築できない場合、正常に動作しなくなる可能性があります。次へ
- 他の人の Tor への
-\n接続を支援する
- Kindness Mode は、あなたのデバイスが他のユーザーのためのブリッジとして機能するようにします。これにより、他のユーザーが Tor がブロックされている場所でも使えるようにします。 \n \n• バッテリーを消耗しません \n• インターネット速度を低下させることはありません \n• Wi-Fi のみで動作可能です \n• いつでもオフにできますスマート接続
- 週間合計
- 全期間累計直接接続Tor に接続する最良の手段です。Tor がブロックされてないときに使用します。Snowflake
@@ -160,12 +155,9 @@
Orbot を使用するには、インターネット接続が必要です。Snowflake AMPログをコピーしました
- 今日の方がいい。
-\nあなたのおかげで。ご質問がありますか?Tor に聞く質問…
- 設定あなたのデバイスが他の Tor ユーザーの Snowflake プロキシーとして機能する方法やタイミングを構成します。ログをコピーパディング
@@ -281,11 +273,6 @@
VPN の権限が拒否されたか、別の VPN アプリで「常時接続 VPN」機能が有効になっています。誤って前の VPN リクエストダイアログを閉じた場合は、これを閉じて再接続できます。技術に詳しいユーザーは、別の VPN アプリを使用し、Orbot のパワーユーザーモードを有効にして Tor を SOCKS プロキシーとして利用できます。Android の VPN 設定を開く国を削除
- Kindness Mode を開始できません
- Kindness Mode を使用するには、少なくとも 1 回は (ブリッジを使用せずに) 直接 Tor に接続する必要があります。接続が完了したら、このページに戻って Kindness Mode を有効にしてください。この直接接続のテストが完了すれば、Tor に接続しているかどうかに関わらず Kindness Mode を利用できるようになります。
- ブリッジを使用して Tor に接続している間は、Kindness Mode を実行できません。
- 他のユーザーが Tor へ接続できるよう支援する Kindness Mode は、現在お住まいの国の検閲により利用できません。
- 検閲が行われている地域にお住まいの場合や、Tor に接続するためにブリッジを使用する必要がある場合は、Kindness Mode を使用しないでください。バッテリーの最適化を無効にするバックグラウンドで実行中の Orbot をデバイスが強制終了していると思われる一部のユーザー向けの設定です。一部の Android デバイスでは、バックグラウンドで実行されている Orbot が強制終了される場合があります。Orbot を常に接続・動作させておきたいほとんどのユーザーにとっては、システム設定で Orbot を「常時接続」VPN として機能するように設定するだけで十分です。ただし、必要に応じて、デバイスが Orbot に対してバッテリー最適化を行わないようにすることもできます。
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index e0597aea36..75465aa224 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -82,7 +82,6 @@
상냥함연결 새로고침Android VPN 설정
- 오늘이 더 따뜻해졌어요\n당신 덕분에요.접속 준비Orbot은 Tor, IPtProxy(Lyrebird, Meek, Snowflake), hev-socks5-tunnel 및 LibEvent를 포함하는 오픈 소스 애플리케이션입니다. VPN 터널, 로컬 HTTP Connect 프록시(포트 8118에서만 HTTPS) 및 Tor 네트워크에 대한 SOCKS 프록시(9050)를 제공합니다.앱이 Tor 네트워크의 포트 %1$s에서 Onion 서버를 열려고 합니다. 앱을 신뢰하는 경우 안전합니다.
@@ -104,7 +103,6 @@
커스텀 브리지시작 중…Snowflake
- 설정어시스턴트QR 코드 스캔Tor에 접속
diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml
index 1fb9c45d1b..6503b3c4ba 100644
--- a/app/src/main/res/values-lt-rLT/strings.xml
+++ b/app/src/main/res/values-lt-rLT/strings.xml
@@ -139,22 +139,10 @@
Prisijungimas per kitus „Tor“ naudotojus naudojant „Snowflake“ (2 būdas)Rodyti pranešimą apie ryšįRodyti pranešimą, kai padedate kam nors apeiti cenzūrą
- Padėkite kitiems
-\nprisijungti prie „Tor“
- Iš viso per savaitę
- Iš viso per visą laikąPatyrusio vartotojo režimasAktyvuoti
- Šiandiena yra geresnė
-\ndėka jūsų.Kitos programėlėsVartotojams, susipažinusiems su . Leidžia paleisti „Orbot“ be VPN nustatymo ir rodo atvirus SOCKS ir HTTP prievadus
- Gerumo režimas leidžia jūsų įrenginiui būti tiltu kitiems. Tai padeda žmonėms naudoti „Tor“ vietose, kur jis užblokuotas.
-\n
-\n• Tai neišsekins jūsų baterijos
-\n• Tai nesustabdys jūsų interneto
-\n• Jis gali veikti tik per WI-FI
-\n• Jį galima bet kada išjungtiGudrusis ryšys (numatytasis)Snowflake (originalus)Prisijungia per „Tor“ savanorius. Apeina tam tikrą „Tor“ blokavimą.
@@ -175,7 +163,6 @@
Tik įkraunantKiekvienam paskirties prievadui naudokite skirtingą grandinęIzoliuoti kliento protokolus
- NustatymaiNukopijuotas žurnalasKopijavimo žurnalasPaminkštinimas
diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml
index 910a76a5b7..5ff3000be1 100644
--- a/app/src/main/res/values-lv/strings.xml
+++ b/app/src/main/res/values-lv/strings.xml
@@ -137,16 +137,9 @@
VairākVeidot savienojumuNākamais
- Visu laiku KopāLai izmantotu Orbot, ir nepieciešams interneta savienojums.Neesat pārliecināts\?Savieno ar Tor brīvprātīgo starpniecību. Apiet dažas Tor bloķēšanas iespējas.
- Labestības režīms ļauj jūsu ierīcei kļūt par tiltu citiem. Tas palīdz cilvēkiem izmantot Tor tur, kur tas ir bloķēts.
-\n
-\n- Tas neizlādē akumulatoru
-\n- Tas nepalēninās jūsu interneta darbību
-\n- To var darbināt tikai wifi tīklā
-\n- To var izslēgt jebkurā laikāJautājiet ToramJaudas lietotāja režīmsSmart Connect (noklusējuma iestatījums)
@@ -156,8 +149,6 @@
Katrai galamērķa ostai izmantojiet atšķirīgu ķēdiSavienojums ar internetuIzolēt klienta protokolus
- Nedēļas kopsumma
- Noregulējiet, kad tas darbojas…Ieteicamās lietotnesNokopēts žurnālsKopēt žurnālu
@@ -174,11 +165,7 @@
Konfigurējiet, kā un kad jūsu ierīce var darboties kā Snowflake starpniekserveris citiem Tor lietotājiem.Katram savienojuma protokolam izmantojiet atšķirīgu ķēdiOrbot vislabāk darbojas ar ziņapmaiņas un sociālo mediju lietotnēm.
- Palīdzēt citiem
-\nizveidot savienojumu ar TorLabākais veids, kā izveidot savienojumu ar Tor. Izmantojiet, ja Tor nav bloķēts.
- Šodien ir labāk
-\npateicoties tev.Ir vairāki veidi, kā sasniegt Tor. Daži no tiem jums var darboties labāk nekā citi.Orbot startē…Izveidots savienojums ar tīklu Tor
diff --git a/app/src/main/res/values-nah/strings.xml b/app/src/main/res/values-nah/strings.xml
index bf85df47c0..e08db56a51 100644
--- a/app/src/main/res/values-nah/strings.xml
+++ b/app/src/main/res/values-nah/strings.xml
@@ -137,10 +137,6 @@ atl oquitlapatic
Xicpepena tepoztlatlatquitlXipatla quizayanPapatia
- Quipalehui occequintin/ahmo quicentia Tor
- Chicueilhuitl centamachihua
- Nochi cahuitl centamachihua
- Cualyotl tequtitl quilhuiz motepoz cuauhpanco inic ocachi tlacatl yez. Quipalehui in tlacameh inic quichihua Tor ipan miecpan ocaltzacualo. /n/n- Ahmo tlami mobateria/n/n- Ahmo quimotlalo mointernet/n/n- Zan huel mochihua itechpa wifi/n/n- Quehma huel quicehui cequi cahuitl. Maticentililoni (achtopa omochiuh)Tencuiliztli huicpa TorIn cualli tequitl mocentilili ipan Tor. Xicchihua Tor ahmo quitzacuiltia.
@@ -151,7 +147,6 @@ atl oquitlapatic
Tlamatini yuhcayotlInic tlapouhqui tlein quimati Tor. Huel quilhui tlein pehuaz Orbort yehce ahmo mochihua in quipatlaz VPN ihuan quimachti in acaltecoyan SOCKS ihuan otlapouhqueh HTTPXicyeltiz
- Axcan cenca cualli ipampa tehuatzin. Nimitztlazohcamati miecXipepena tepoztlatlatquitlOrbot tequipano cenca cualli ica amatlacuilotepoztlatlatquitl ihuan tlacanamimatlatlYolitectia tepoztlatlatquitl
diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml
index 6db3a9aabe..20e2c59fc3 100644
--- a/app/src/main/res/values-nb/strings.xml
+++ b/app/src/main/res/values-nb/strings.xml
@@ -129,16 +129,9 @@
FeilsøkingMerKobler til…
- Total gjennom tideneDu trenger en internettforbindelse for å bruke Orbot.Er du usikker\?Kobler seg til via frivillige Tor-brukere. Omgår enkelte Tor-blokkeringer.
- Med vennlighetsmodus kan enheten din være en bro for andre. Den hjelper folk med å bruke Tor på steder der det er blokkert.
-\n
-\n- Den tapper ikke batteriet
-\n- Den gjør ikke Internett langsommere
-\n- Den kan bare kjøres over wifi
-\n- Kan slås av når som helstSpør TorStrømbrukermodusVelg apper
@@ -149,8 +142,6 @@
Bruk en annen krets for hver destinasjonsportIsolere klientprotokollerSkjul apper fra nettverksovervåking og få tilgang når de er blokkert.
- Ukentlig Totalt
- Juster når den går…Foreslåtte apperLogg KopiertKopieringslogg
@@ -173,11 +164,7 @@
Behandle Exclude Nodes-innstillingene som et krav for å bygge alle kretser. Dette kan ødelegge funksjonaliteten hvis ingen kretser kan genereres med innstillingene for ekskluderte noder.Orbot fungerer best med apper for meldinger og sosiale medier.Klar til å koble til
- Hjelp andre
-\nkoble til TorDen beste måten å koble til Tor på. Brukes hvis Tor ikke er blokkert.
- Dagen i dag er bedre
-\npå grunn av deg.Det finnes mange måter å nå Tor på. Noen fungerer kanskje bedre enn andre for deg.x25519 Privat nøkkel i Base32Orbot starter…
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index dcc13af82e..9a41ec7247 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -161,10 +161,6 @@
Kies hoe u verbinding wilt makenKies appsWijzig uitgang
- Help anderen\nverbinding te maken met Tor
- Wekelijks totaal
- Totaal aller tijden
- Met de vriendelijkheidsmodus kan je toestel een brug zijn voor anderen. Het helpt mensen om Tor te gebruiken op plaatsen waar het geblokkeerd is.\n\n• Het verbruikt geen batterij\n• Het vertraagt je internetverbinding niet\n• Het werkt alleen via wifi\n• Het kan op elk moment worden uitgeschakeldVriendelijkheidsmodus is actiefJe hebt %1$d mensen geholpen om censuur te omzeilenVriendelijkheidsmodus is uitgeschakeld
@@ -188,7 +184,6 @@
Plak hieronder de brug-adressen die je hebt ontvangen. Of scan de QR-code om ze toe te voegen. Vrienden kunnen bruggen voor je krijgen op %1$s.Power User-modusVoor gebruikers die bekend zijn met Tor. Hiermee kunt u Orbot starten zonder de VPN-instelling en worden open SOCKS- en HTTP-poorten weergegeven
- Vandaag is beter\ndankzij jou.Orbot werkt het beste met berichten- en sociale media-apps.Aanbevolen appsAndere apps
@@ -201,7 +196,6 @@
VRAGEN…Verbinding maken met internetJe hebt een internetverbinding nodig om Orbot te kunnen gebruiken.
- InstellingenConfigureer hoe en wanneer uw apparaat als Snowflake-proxy voor andere Tor-gebruikers kan fungeren.VriendelijkheidAlleen via wifi
diff --git a/app/src/main/res/values-pbb/strings.xml b/app/src/main/res/values-pbb/strings.xml
index 9b0d2c7e77..b2c003c5b2 100644
--- a/app/src/main/res/values-pbb/strings.xml
+++ b/app/src/main/res/values-pbb/strings.xml
@@ -134,10 +134,6 @@
Appetx mtxhitxhKase’jnxi\'s myu’pthe’j Miikphuusẽe
- Vxitetx mpu’çxh Torte açya’ ewuukan
- Ki\'su jxuka
- Een jxuka
- Kindnessa’ nvxitu’k idx çaam welxa’s, wehna’ seelpikaan. Nasatxku Tora’s ew vxisya pu’çxhi’ kyuuju’jnxi uste’.\n\n- Idx çaam ktu’se’s jxã’jmeena\n\n-Idx interneta’s kyuuju’jmeena\n\n- Wifiyakçxaa seelpiina\n\n- ma’wẽnte fxĩçxawẽçxa’ ewuune’gaJii açhwa’(mtxhitxh)Torte dxi\'j açhwa’Torte u’kwa’ jxthaakwe ewsa. miikseelpi’j napa Tor yujume ũstecxãa
@@ -148,7 +144,6 @@
Meh kseelpi’jya jiisaTora’s kseelpi’jya jiya’jsatxi’. Nvxitu’k VPN phewu’jmee Orbota’s pu’txkan ki kaavxa’jak SOCKS vxite HTTP vxitx phadenxi ũssatx Miijxkaah
- Ãcxha’ jxthaakwe ewa’/idx pa’kaTeeçx App mtxhitxhORBOTa’ jxthaakwe ewa’ vxite App çaam wessuVxite App thegwa’
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index f123f2c67e..4516c10def 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -100,9 +100,6 @@
PołączonyŁączenie…Ukryj aplikacje przed monitorowaniem sieci i uzyskaj dostęp, gdy zostaną zablokowane.
- Łącznie
- Dziś jest lepsze
-\ndzięki tobie.Wybierz aplikacjeAktywujDla użytkowników zaznajomionych z Tor. Pozwala na uruchomienie Orbota bez ustawienia VPN i pokazuje otwarte porty SOCKS i HTTP
@@ -112,20 +109,11 @@
Orbot działa najlepiej z komunikatorami i aplikacjami mediów społecznościowych.Tryb użytkownika zaawansowanegoŁączy się przez wolontariuszy Tor. Pozwala obejść niektóre blokady sieci Tor.
- Pomóż innym
-\npołączyć się z Tor
- Tryb życzliwości pozwala Twojemu urządzeniu być mostkiem dla innych. Pomaga ludziom używać sieci Tor w miejscach, gdzie jest zablokowana.
-\n
-\n- Nie powoduje wyczerpania baterii
-\n- Nie spowalnia działania internetu
-\n- Może działać tylko przez Wi-Fi
-\n- Może być wyłączony w każdej chwiliZamyka połączenia przekaźnikowe wcześniej i wysyła mniej pakietów wypełniających, aby zmniejszyć zużycie danych i bateriiMostki niestandardoweKlucz prywatny x25519 w Base32Nazwa pliku kopii zapasowej…Usuń autoryzację klienta
- TygodniowoPokaż wiadomość, gdy pomagasz komuś obejść cenzuręPołączNastępny
@@ -163,7 +151,6 @@
Snowflake AMPNie wiesz\?Do korzystania z Orbota potrzebne jest połączenie z internetem.
- UstawieniaIstnieje wiele sposobów na dotarcie do Tor. Niektóre z nich mogą działać lepiej niż inne dla Ciebie.PYTANIE…Użyj innego obwodu dla każdego portu docelowego
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index d775314d40..7e36a6480d 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -139,27 +139,15 @@
Altere a saídaEscolha os aplicativosAtualizar conexão
- O modo Bondade permite que o seu dispositivo seja uma ponte para os outros. Ajuda as pessoas a usar o Tor em lugares onde ele esteja bloqueado.
-\n
-\n• Não drena a sua bateria
-\n• Não desacelera a sua internet
-\n• Só funciona via Wi-Fi
-\n• Pode ser desligado a qualquer momentoConexão diretaSnowflakeConectarPróximo
- Ajude outros
-\na se conectar ao Tor
- Total semanal
- Total de todos os períodosConexão InteligenteA melhor maneira de se conectar ao Tor. Use caso o Tor não esteja bloqueado.Conecta-se através de voluntários do Tor. Contorna alguns bloqueios do Tor.Para usuários familiarizados com o Tor. Permite que você inicie o Orbot sem a configuração VPN e mostra as portas SOCKS e HTTP que estejam abertasAtivar
- Hoje o dia está melhor
-\ngraças a você.Escolha os aplicativosO Orbot funciona melhor com aplicativos de mensagens e mídias sociais.Sugestões de aplicativos
@@ -174,7 +162,6 @@
Pergunte ao TorPEDINDO…Conectar à internet
- ConfiguraçõesVocê precisa de uma conexão com a Internet para usar o Orbot.Isole os protocolos do clienteUtilize um circuito diferente para cada porta de destino
@@ -294,11 +281,6 @@
O aplicativo %1$s está configurado para ser uma VPN \"sempre ativa\". Desative-o antes de iniciar o Orbot.A permissão de VPN foi negada ou outro aplicativo de VPN tem o recurso \"VPN sempre ativa\" habilitado. Você pode ignorar esta mensagem e reconectar-se caso tenha fechado a caixa de diálogo de solicitação de VPN anterior por engano. Usuários com conhecimento técnico podem usar outro aplicativo de VPN e o Tor como proxy SOCKS ativando o Modo de Usuário Avançado do Orbot.Abra as configurações de VPN do Android
- Não foi possível iniciar o Modo Bondade
- Para usar o Modo Gentileza, você precisa ter se conectado diretamente ao Tor (sem usar nenhuma ponte) pelo menos uma vez. Após se conectar, volte aqui para ativar o Modo Gentileza. Depois de concluir este teste de conexão direta, você poderá usar o Modo Gentileza, esteja conectado ao Tor ou não.
- O Modo Bondade não funciona enquanto você estiver usando uma ponte para se conectar ao Tor.
- O uso do Modo Bondade para ajudar outras pessoas a se conectarem ao Tor está desativado no momento em seu país devido à censura.
- Não utilize o Modo Bondade se estiver numa região onde a sua internet é censurada ou se precisar de usar uma ponte para se conectar à rede Tor.Desativar otimizações de bateriaConfiguração para alguns usuários que suspeitam que seus dispositivos estejam encerrando o Orbot prematuramente enquanto ele é executado em segundo plano.Alguns dispositivos Android podem encerrar o Orbot enquanto ele estiver sendo executado em segundo plano. Para a maioria dos usuários que desejam garantir que o Orbot permaneça conectado e funcionando, basta configurá-lo para funcionar como uma VPN \"Sempre Ativa\" nas configurações do sistema. No entanto, você ainda pode impedir que seu dispositivo execute otimizações de bateria no Orbot, se achar necessário.
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index 5b4beef944..d9eee993c4 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -139,19 +139,9 @@
Mostrar notificação de ligaçãoTratar as definições de Excluir Nós como um requisito para a construção de todos os circuitos. Isto pode quebrar a funcionalidade se nenhum circuito for capaz de ser gerado com as suas definições de Excluir Nós.Versão:
- Total semanal
- Total de todos os períodosEscolha as appsSnowflakeConecta-se através de voluntários do Tor. Contorna alguns bloqueios do Tor.
- Ajude outros
-\na se conectar ao Tor
- O modo bondade permite que o seu aparelho seja uma ponte para os outros. Ajuda as pessoas a usar o Tor em lugares onde ele está bloqueado.
-\n
-\n• Não esgota a bateria
-\n• Não desacelera a sua Internet
-\n• Só funciona através de Wi-Fi
-\n• Pode ser desligado em qualquer momentoConexão inteligente (padrão)Conexão direta com o TorA melhor maneira de se conectar ao Tor. Use caso o Tor não esteja bloqueado.
@@ -160,8 +150,6 @@
Modo de utilizador avançadoPara utilizadores familiarizados com Tor. Permite que inicie o Orbot sem a configuração VPN e mostra as portas SOCKS e HTTP que estejam abertasAtivar
- Hoje está melhor
-\npela sua causa.O Orbot funciona melhor com apps de mensagens e mídias sociais.Sugestões de appsOutras apps
@@ -172,7 +160,6 @@
Oculte as aplicações da monitorização da rede e obtenha acesso quando elas estiverem bloqueadas.Isolar os protocolos do clienteLigar à Internet
- ConfiguraçõesApenas ligado à Wi-FiSó durante o carregamentoIsolar as portas de destino
diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml
index c2ff8c759c..6213529d2c 100644
--- a/app/src/main/res/values-ro-rRO/strings.xml
+++ b/app/src/main/res/values-ro-rRO/strings.xml
@@ -105,12 +105,6 @@
Aveți nevoie de o conexiune la internet pentru a utiliza Orbot.Preferați conexiunile IPv6Alegeți cum să vă conectați
- Modul Bunătate permite dispozitivului dvs. să fie o punte de legătură pentru ceilalți. Ajută oamenii să folosească Tor în locurile în care acesta este blocat.
-\n
-\n• Nu vă va consuma bateria
-\n• Nu vă va încetini internetul
-\n• Poate funcționa doar prin wifi
-\n• Poate fi oprit oricândConectareActivează întotdeauna capitonarea conexiunii pentru a se apăra împotriva anumitor forme de analiză a traficului. Implicit: autoSpune ieșirilor să nu se conecteze la adrese IPv4
@@ -133,9 +127,6 @@
Ștergeți autorizația clientuluiNume fișier de rezervă…Importați .auth_private
- Ajutați-i pe alții
-\nsă se conecteze la Tor
- Total săptămânalOrbot este o aplicație cu sursă deschisă care conține Tor, IPtProxy (Lyrebird, Meek, Snowflake), hev-socks5-tunnel și LibEvent. Acesta oferă un tunel VPN, un proxy HTTP local (8118) și un proxy SOCKS (9050) în rețeaua Tor.Versiunea:Licență:
@@ -147,7 +138,6 @@
Izolați protocoalele cliențilorServicii găzduite de OnionActualizează
- Tot timpul totalTor HTTPConfigurarea portului HTTPPort local
@@ -156,7 +146,6 @@
Izolați adresele de destinațieTamponare redusă a conexiuniiConectare inteligentă (implicită)
- SetăriSe conectează prin intermediul voluntarilor Tor. Ocolește unele blocaje Tor.Gata de conectareSnowflake
@@ -178,8 +167,6 @@
Mai multAscundeți aplicațiile de la monitorizarea rețelei și obțineți acces atunci când sunt blocate.Conectată
- Astăzi este mai bine
-\ndatorită vouă.UrmătorulAfișați un mesaj atunci când ajutați pe cineva să ocolească cenzuraCăptușeală
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index c9900bb6a3..f396247f2a 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -131,26 +131,14 @@
Готово к подключениюСкрывайте приложения от отслеживания в сети и получайте доступ, когда он заблокирован.Рассматривать настройки исключённых узлов как требование для построения всех цепочек. Это может нарушить функциональность, если ни одна цепочка не сможет быть создана с вашими настройками.
- Помогите другим
-\nподключиться к Tor
- Итого за неделю
- Итого за всё времяSnowflakeПодключитьДалееПодключение через добровольцев Tor. Обходит некоторые блокировки Tor.Лучший способ подключения к Tor. Используйте, если Tor не заблокирован.
- Режим доброты позволяет вашему устройству быть мостом для других. Это помогает людям использовать Tor в местах, где он заблокирован.
-\n
-\n• Он не расходует заряд батареи
-\n• Он не замедляет ваш интернет
-\n• Он может работать только через Wi-Fi
-\n• Его можно отключить в любое времяУмное ПодключениеПрямое ПодключениеРежим опытного пользователя
- Мир стал лучше
-\nблагодаря вам.Выбор приложенийРекомендуемые приложенияДля пользователей, знакомых с Tor. Позволяет запустить Orbot без настроек VPN и показывает открытые SOCKS и HTTP порты
@@ -166,7 +154,6 @@
ЗАПРОС…Подключиться к интернетуДля использования Orbot необходимо подключение к интернету.
- НастройкиНастройте, как и когда ваше устройство может использоваться в качестве прокси-сервера Snowflake для других пользователей Tor.Изолировать протоколы клиентовИспользовать разные цепочки подключения для каждого порта назначения
diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml
index cf9e4c0f79..21b84abf9e 100644
--- a/app/src/main/res/values-sk-rSK/strings.xml
+++ b/app/src/main/res/values-sk-rSK/strings.xml
@@ -159,20 +159,10 @@
Iba v sieti WifiLen pri nabíjaníLáskavosť
- Pomôžte ostatným
-\npripojiť sa k sieti TorIzolácia cieľových portovIzolácia klientskych protokolovPre každý pripojovací protokol použite iný obvod
- Režim láskavosti umožňuje, aby sa vaše zariadenie stalo mostom pre ostatných. Pomáha ľuďom používať Tor na miestach, kde je blokovaný.
-\n
-\n- Nevybíja batériu
-\n- Nespomalí váš internet
-\n- Môže bežať len cez wifi
-\n- Dá sa kedykoľvek vypnúťSmart Connect (predvolené)
- Dnes je lepšie
-\nvďaka tebe.Orbot funguje najlepšie s aplikáciami na zasielanie správ a sociálnymi médiami.Ostatné aplikácieSpýtajte sa Tora
@@ -180,13 +170,10 @@
Konfigurácia toho, ako a kedy môže vaše zariadenie fungovať ako proxy server Snowflake pre iných používateľov Tor.Kopírovanie denníkaExistuje mnoho spôsobov, ako dosiahnuť Tor. Niektoré z nich vám môžu vyhovovať viac ako iné.
- NastavenieSpája sa prostredníctvom dobrovoľníkov Tor. Obchádza niektoré blokovania Tor.Skryte aplikácie pred monitorovaním siete a získajte k nim prístup, keď sú blokované.Záznam skopírovanýOrbot zistil, že vaše zariadenie je rootnuté, čo môže spôsobiť bezpečnostné problémy.
- Týždenný súčet
- Celkovo za celý časPriame pripojenie k sieti TorVarovať pri spustení, ak sú na tomto zariadení zapnuté oprávnenia rootRozpoznanie root
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index f63cb08f25..a71ad1195d 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -159,31 +159,18 @@
Samo na Wi-Fi-juUporabite drugo vezje za vsaka ciljna vrataUporabite drugo vezje za vsak povezovalni protokol
- Pomagajte se drugim
-\npovezati na Tor
- Način prijaznosti omogoča, da je vaša naprava most za druge. Ljudem pomaga uporabljati Tor na mestih, kjer je blokiran.
-\n
-\n• Ne bo praznil vaše baterije
-\n• Ne bo upočasnil vašega interneta
-\n• Deluje lahko samo prek Wi-Fi-ja
-\n• Kadar koli ga je mogoče izklopitiDnevnik kopiranPovežite se z internetomKonfigurirajte, kako in kdaj lahko vaša naprava deluje kot proksi snežinka za druge uporabnike Tora.Orbot je zaznal, da je vaša naprava korenirana, kar lahko povzroči varnostne težave.Neposredna povezava s ToromSkrijte aplikacije pred nadzorom omrežja in pridobite dostop, ko so blokirane.
- Danes je bolje
-\nzaradi tebe.Orbot najbolje deluje z aplikacijami za sporočanje in družbena omrežja.Predlagane aplikacijeOstale aplikacijeKopiraj dnevnikTor lahko dosežete na več načinov. Nekateri morda za vas delujejo bolje kot drugi.
- Prilagodite, ko teče …Snežinka (originalno)
- Skupaj tedensko
- Skupaj vseh časovPametno poveži (privzeto)Najboljši način povezave s Torom. Uporabite če Tor ni blokiran.Snežinka (AMP)
diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml
index 30531d6669..ea1e2608f0 100644
--- a/app/src/main/res/values-sq/strings.xml
+++ b/app/src/main/res/values-sq/strings.xml
@@ -24,17 +24,11 @@
Vëre në gjumë Tor-in, kur s’ka internetFormësim PorteTorrc vetjake
- Për hir tuajin sot
-\nështë më mirë.Zgjidhni AplikacioneShërbime përdoruesiShërbime aplikacioneshShfaq Njoftim LidhjejeI lidhur
- Ndihmoni të tjerët
-\ntë lidhen me Tor-in
- Gjithsej Javore
- Gjithsej Për Tërë KohënMënyra “Përdorues i Regjur”Për përdorues të familjarizuar me Tor-in. Ju lejon ta nisni Orbot-in pa rregullimin VPN dhe shfaqë porta SOCKS dhe HTTP të hapuraAktivizoje
@@ -123,12 +117,6 @@
Portë te e cila Tor-i ofron ndërmjetësin e vet SOCKS (parazgjedhje: 9050, ose 0 për ta çaktivizuar)Tor HTTPPa shërbime të strehuara në funksionim, shihni mundësinë e aktivizimit të optimizimeve të baterisë
- Mënyra dashamirësi e lejon pajisjen tuaj të jetë një urë për të tjera. I ndihmon njerëzit të përdorin Tor-in në vende ku e bllokojnë.
-\n
-\n• S’do të thajë baterinë tuaj
-\n• S’do të ngadalësojë internetin tuaj
-\n• Mund të punojë vetëm me wifi
-\n• Mund të çaktivizohet kurdoRruga më e mirë për t’u lidhur me Tor-in. Përdoreni nëse Tor-i s’është i bllokuar.Më mirë se me gjithçka tjetër, Orbot-i funksionon me aplikacione shkëmbimi mesazhesh dhe mediash shoqërore.Fshihini aplikacione mbikëqyrjes së rrjetit dhe përfitoni hyrje kur janë të bllokuar.
@@ -166,7 +154,6 @@
Përdorni një qark të ndryshëm për çdo portë vendmbërritjeLidhu në internetIzolo protokolle klienti
- RregullimeVPN Për Krejt PajisjenRegjistri u KopjuaKopjo Regjistrin
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index f4ee51e76f..edb80c5e0b 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -105,15 +105,6 @@
Спреман за повезивањеСакриј апликације од надзора мреже и добиј приступ када су блокиране.Изабери како да се повежеш
- Помози другима
-\nда се повежу на Тор
- Све време УКУПНО
- Режим доброте омогућава вашем уређају да буде мост за друге. Помаже људима да користе Тор у местима где је блокиран.
-\n
-\n• Неће испразнити вашу батерију
-\n• Неће успорити ваш интернет
-\n• Може радити само преко Wi-Fi
-\n• Може се искључити у било ком тренуткуSnowflake (оригинал)Предложене апликацијеНисте сигурни?
@@ -131,7 +122,6 @@
Користи алгоритме пуњења са мањим оптерећењем како би се смањила употреба података и батеријеРежим добротеПаметно повезивање (подразумевано)
- ПодешавањаКлијентска ауторизацијаГрешка: Onion услуга већ користи порт %sПовежи се преко других Тор корисника користећи Snowflake (Метод 2 - AMP)
@@ -141,7 +131,6 @@
Обавештава излазе да се не повезују на IPv4 адресеVPN за цео уређајПрикажи поруку када помогнеш некоме да заобиђе цензуру
- Недељни УКУПНОДиректна веза са ТоромНајбољи начин за повезивање на Тор. Користи ако Тор није блокиран.Третирај подешавања за искључивање чворова као захтев за изградњу свих кола. Ово може прекинути функционалност ако није могуће генерисати кола са вашим подешавањима за искључивање чворова.
@@ -153,8 +142,6 @@
Обриши кључ за клијентску ауторизацијуПовезује се преко Тор волонтера. Заобилази неке блокаде Тора.Snowflake (AMP)
- Данас је бољи
-\nзбог вас.Orbot најбоље ради са апликацијама за размену порука и друштвене мреже.Остале апликацијеСакријте апликације од надзора мреже и добијте приступ када су блокиране.
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 5016d4b32a..19ce35744b 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -131,22 +131,15 @@
Fel: En Onion-tjänst använder redan port %sRedo att anslutaDölj appar från nätverksövervakning och få tillgång till dem när de är blockerade.
- Hjälpa andra
-\nansluta till Tor
- Totalt per veckaDirekt anslutning till TorSnöflinga (AMP)Power User Mode (strömförsörjningsläge)För användare som är bekanta med Tor. Gör det möjligt att starta Orbot utan VPN-inställning och visar öppna SOCKS- och HTTP-portarAktivera
- Idag är bättre
-\ntack vare dig.Välj apparFRÅGAR…Anslut till internetDu behöver en internetuppkoppling för att använda Orbot.
- Inställningar
- Alltid TotaltSmart Connect (standard)Snowflake (original)Det bästa sättet att ansluta till Tor. Använd om Tor inte är blockerad.
@@ -158,12 +151,6 @@
Anslutningar genom Tor-volontärer. Tar sig runt vissa Tor-blockeringar.Logg kopieradNästa
- Med läget för vänlighet kan din enhet bli en bro för andra. Det hjälper människor att använda Tor på platser där det är blockerat.
-\n
-\n- Det tömmer inte batteriet.
-\n- Det kommer inte att sakta ner ditt internet.
-\n- Det kan endast köras via wifi.
-\n- Den kan stängas av när som helstAnslutOrbot fungerar bäst med appar för meddelanden och sociala medier.Föreslagna appar
diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml
index 485164707f..4f8948fe0f 100644
--- a/app/src/main/res/values-ta/strings.xml
+++ b/app/src/main/res/values-ta/strings.xml
@@ -40,14 +40,11 @@
பவர் பயனர் பயன்முறைடோர் நன்கு அறிந்த பயனர்களுக்கு. VPN அமைப்பு இல்லாமல் ஆர்போட் தொடங்க உங்களை அனுமதிக்கிறது மற்றும் திறந்த சாக்ச் மற்றும் HTTP போர்ட்களைக் காட்டுகிறதுகேட்கிறது…
- அமைப்புகள்செய்தி மற்றும் சமூக ஊடக பயன்பாடுகளுடன் ஆர்போட் சிறப்பாக செயல்படுகிறது.திணிப்புபணி நீக்குதலை உறுதிப்படுத்தவும்தனிப்பயன் பாலங்கள்துவக்கத்தில் சுற்றுப்பாதையைத் தொடங்கவும்
- வாராந்திர மொத்தம்
- எல்லா நேரமும் மொத்தம்வெளியேறும் முனைகளை உள்ளிடவும்திட்ட வீடு:முனைகளை விலக்கு
@@ -164,7 +161,6 @@
கருணை முறைபயன்பாடுகளைத் தேர்வுசெய்கவெளியேறவும்
- இன்று சிறந்தது\n நீங்கள் காரணமாக.பரிந்துரைக்கப்பட்ட பயன்பாடுகள்பிற பயன்பாடுகள்பதிவு நகலெடுக்கப்பட்டது
@@ -279,10 +275,6 @@
%1$s ஆப்ச் \"எப்போதும் ஆன்\" VPN ஆக உள்ளமைக்கப்பட்டுள்ளது. ஆர்போட்டைத் தொடங்கும் முன் அதை முடக்கவும்.VPN இசைவு மறுக்கப்பட்டது அல்லது மற்றொரு VPN பயன்பாட்டில் \"Always-on VPN\" நற்பொருத்தம் இயக்கப்பட்டுள்ளது. முந்தைய VPN கோரிக்கை உரையாடலில் இருந்து தவறுதலாக வெளியேறினால், இதை நிராகரித்து மீண்டும் இணைக்கலாம். தொழில்நுட்ப பயனர்கள் மற்றொரு VPN பயன்பாட்டைப் பயன்படுத்தலாம் மற்றும் Orbot இன் ஆற்றல் பயனர் பயன்முறையை இயக்குவதன் மூலம் Tor ஐ SOCKS ப்ராக்சியாகப் பயன்படுத்தலாம்.Android VPN அமைப்புகளைத் திறக்கவும்
- கருணை பயன்முறையைத் தொடங்க முடியவில்லை
- கருணை பயன்முறையைப் பயன்படுத்த, நீங்கள் ஒருமுறையாவது Tor உடன் (எந்த பாலங்களையும் பயன்படுத்தாமல்) நேரடியாக இணைத்திருக்க வேண்டும். இணைக்கப்பட்ட பிறகு, கருணை பயன்முறையை இயக்க, தயவுசெய்து இங்கு வரவும். இந்த நேரடி இணைப்புச் சோதனையை முடித்த பிறகு, நீங்கள் டோருடன் இணைக்கப்பட்டிருந்தாலும் இல்லாவிட்டாலும் கருணை பயன்முறையைப் பயன்படுத்த உங்களுக்கு விடுதலை உள்ளது.
- டோருடன் இணைக்க நீங்கள் ஒரு பிரிட்சைப் பயன்படுத்தும் போது கருணை பயன்முறையை இயக்க முடியாது.
- தணிக்கை காரணமாக உங்கள் நாட்டிற்கு Tor உடன் இணைவதற்கு மற்றவர்களுக்கு உதவ Kindness பயன்முறை ஐப் பயன்படுத்துவது தற்போது முடக்கப்பட்டுள்ளது.நீங்கள் தணிக்கை செய்யப்பட்ட பகுதியில் இருந்தால் அல்லது டோருடன் இணைக்க பாலத்தைப் பயன்படுத்த வேண்டியிருந்தால் கருணை பயன்முறையைப் பயன்படுத்த வேண்டாம்.பேட்டரி மேம்படுத்தல்களை முடக்குசில பயனர்கள் தங்கள் சாதனம் பின்னணியில் இயங்கும் போது ஆர்போட்டை முன்கூட்டியே கொல்வதாக சந்தேகிக்கும் அமைப்பு.
diff --git a/app/src/main/res/values-tk/strings.xml b/app/src/main/res/values-tk/strings.xml
index 722c2ae1d5..7922ecd079 100644
--- a/app/src/main/res/values-tk/strings.xml
+++ b/app/src/main/res/values-tk/strings.xml
@@ -92,8 +92,6 @@
“Snowflake” (2-nji usul - AMP) ulanyp, beýleki Tor ulanyjylarynyň üsti bilen birikdiriňGiňişleýin Ulanyjy TertibiIşjeňleşdiriň
- Bu gün has gowy
-\nsen sebäpli.Orbot habarlaşma we sosial media programmalary bilen iň oňat işleýär.Maslahat berilýän programmalarBasga programmalar
@@ -111,7 +109,6 @@
Tora barmagyň köp ýoly bar. Käbirleri beýlekilerden has gowy işlemegi mümkin.Diňe zarýad berlendeHer niýetlenen port üçin dürli aýlanşyk ulanyň
- SazlamalarProgrammalary tor gözegçiliginden gizläň we petiklenende giriň.Wersiýa:HTTP Port Konfigurasiýasy
@@ -120,7 +117,6 @@
Barjak salgylaryňyzy izolirläňNiýetlenen portlary izolirläňMüşderi teswirnamalaryny izolirläň
- Ähli wagt JemiAkylly birikme (bellenilen)Tor-a Göni BirikmeTor bilen birikmegiň iň gowy usuly. Tor petiklenmedik bolsa ulanyň.
@@ -129,9 +125,6 @@
UmumyÇykalga DüwünleriTaslamanyň Baş Sahypasy:
- Başgalaryna kömek ediň
-\nTor bilen birikdiriň
- Hepdelik JemiKöki KesgitlemekSnowflake (Hakyky)Bu enjam kökli bolsa, başlangyçda duýduryş beriň
@@ -176,11 +169,5 @@
Enjamyňyzyň beýleki Tor ulanyjylary üçin nädip we haçan Snowflake proksi bolup biljekdigini sazlaň.ÝassyklamaDüzediş
- Sypaýçylyk ülňi enjamyňyzy beýlekiler üçin köpri bolmaga mümkinçilik berýär. Adamlara Tor-uň petiklenen ýerlerinde ulanmagyna kömek edýär.
-\n
-\n• Batareýaňyzy çökertmez
-\n• Internetiňizi haýallatmaz
-\n• Diňe wifi arkaly işleýär
-\n• Islän wagtyňyz öçürlip bilnerUlagy sazla
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index b191c7e40d..0abb91e2b1 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -131,20 +131,13 @@
Uygulamaları seçÇıkışı değiştirBağlantıyı Yenile
- Başkalarının Tor\'a
-\nbağlanmasına yardımcı olun
- Tüm Zamanlar ToplamıAkıllı BağlantıDirekt BağlantıTor\'a bağlanmanın en iyi yolu. Tor engelli değilse kullanın.Tor gönüllüleri aracılığıyla bağlanır. Bazı Tor engellemelerini aşar.BağlanSonraki
- Haftalık Toplam
- Paylaşım modu, aygıtınızın başkaları için bir köprü olmasını sağlar. İnsanların Tor\'u engellendiği yerlerde kullanmasına yardımcı olur.\n \n• Pilinizi boşaltmaz \n• İnternetinizi yavaşlatmaz\n• Yalnızca Wi-Fi üzerinden çalışabilir \n• İstenildiği zaman kapatılabilirSnowflake
- Bugün sizin
-\nsayenizde daha iyi.Uygulamaları SeçÖnerilen UygulamalarUzman Kullanıcı Modu
@@ -159,7 +152,6 @@
Tor\'a erişmenin birçok yolu vardır. Bazıları sizin için diğerlerinden daha iyi çalışabilir.SORUYOR…İnternete bağlan
- AyarlarSnowflake AMPOrbot\'u kullanmak için internet bağlantınızın olması gerekir.Aygıtınızın diğer Tor kullanıcıları için nasıl ve ne zaman bir Snowflake vekili olarak çalışabileceğini yapılandırın.
@@ -281,10 +273,6 @@
VPN izni reddedildi veya başka bir VPN uygulamasında \"Her zaman açık VPN\" özelliği etkinleştirildi. Önceki VPN İsteği iletişim kutusunu yanlışlıkla kapattıysanız, bunu kapatıp yeniden bağlanabilirsiniz. Teknik kullanıcılar başka bir VPN uygulaması kullanabilir ve Orbot\'un Güçlü Kullanıcı Modunu etkinleştirerek Tor\'u SOCKS Proxy olarak kullanabilir.Android VPN Ayarlarını açÜlkeyi Kaldır
- Paylaşım Modu Başlatılamıyor
- Paylaşım Modunu kullanabilmek için, en az bir kez Tor ağına doğrudan (herhangi bir köprü kullanmadan) bağlanmanız gerekir. Bağlantı kurduktan sonra, lütfen buraya geri dönerek Paylaşım Modunu etkinleştirin. Bu doğrudan bağlantı testini tamamladıktan sonra, Tor ağına bağlı olsanız da olmasanız da Paylaşım Modunu dilediğiniz gibi kullanabilirsiniz.
- Tor ağına bağlanmak için bir köprü kullanırken Paylaşım Modu çalıştırılamaz.
- Sansür nedeniyle, ülkenizde diğer kişilerin Tor ağına bağlanmasına yardımcı olmak için kullanılan Paylaşım Modu şu anda devre dışıdır.Sansür uygulanan bir bölgedeyseniz veya Tor ağına bağlanmak için bir köprü kullanmanız gerekiyorsa, Paylaşım Modunu kullanmayın.Pil İyileştirmelerini Devre Dışı BırakAygıtlarının Orbot uygulamasını arka planda çalışırken erken bir şekilde kapattığından şüphelenen kullanıcılar için ayar.
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index e6299d5d86..c2ff86044d 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -133,25 +133,13 @@
Вибрати застосункиСніжинкаКращий спосіб під\'єднання до Tor. Використовуйте, якщо Tor не заблокований.
- Режим доброти дозволяє вашому пристрою бути мостом для інших. Він допомагає людям користуватися Tor там, де він заблокований.
-\n
-\n- Він не розряджає ваш акумулятор
-\n- Не сповільнює ваш інтернет
-\n- Він може працювати тільки через Wi-Fi
-\n- Його можна вимкнути в будь-який час
- Усього за тижденьДалі
- Допомагайте іншим
-\nпід\'єднуватися до Tor
- Усього за весь часРозумне підключенняПряме підключенняЗ\'єднання через волонтерів Tor. Обходить деякі блокування Tor.Під\'єднатиРежим досвідченого користувачаАктивувати
- Сьогодення краще
-\nзавдяки вам.Orbot найкраще працює з застосунками для обміну повідомленнями та соціальними мережами.Рекомендовані застосункиВибрати застосунки
@@ -166,7 +154,6 @@
Запитайте TorЗАПИТУЄМО…Щоб використовувати Orbot, вам потрібне підключення до Інтернету.
- НалаштуванняНалаштуйте, як і коли ваш пристрій може діяти як проксі-сервер Snowflake для інших користувачів Tor.Ізолювати порти призначенняВикористовувати різні схеми для кожного порту призначення
diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml
index 002c1fd578..a3b4e3f405 100644
--- a/app/src/main/res/values-ur/strings.xml
+++ b/app/src/main/res/values-ur/strings.xml
@@ -144,10 +144,6 @@
جڑنے کا طریقہ منتخب کریںایپس منتخب کریںایگزٹ (exit) تبدیل کریں
- دوسروں کو ٹور سے منسلک ہونے میں\nمدد کریں
- ہفتہ وار مجموعہ
- کل مجموعہ
- کائنڈنس موڈ آپ کے آلے کو دوسروں کے لیے برج (bridge) بننے کی اجازت دیتا ہے۔ یہ ان جگہوں پر لوگوں کو ٹور استعمال کرنے میں مدد کرتا ہے جہاں اسے بلاک کیا گیا ہے۔\n\n• یہ آپ کی بیٹری کو ختم نہیں کرے گا\n• یہ آپ کے انٹرنیٹ کو سست نہیں کرے گا\n• یہ صرف وائی فائی پر چل سکتا ہے\n• اسے کسی بھی وقت بند کیا جا سکتا ہےکائنڈنس موڈ چل رہا ہےآپ نے %1$d لوگوں کی سنسرشپ کو روکنے میں مدد کی ہےمہربانی کا موڈ غیر فعال ہے
@@ -172,7 +168,6 @@
پاور یوزر موڈٹور سے واقف صارفین کے لیے۔ آپ کو وی پی این ترتیب کے بغیر اوربوٹ شروع کرنے کی اجازت دیتا ہے اور کھلے SOCKS اور HTTP پورٹس دکھاتا ہےچالو کریں
- آج کا دن\nآپ کی وجہ سے بہتر ہے۔ایپس منتخب کریںاوربوٹ پیغام رسانی اور سوشل میڈیا ایپس کے ساتھ بہترین کام کرتا ہے۔تجویز کردہ ایپس
@@ -186,7 +181,6 @@
پوچھ رہا ہے…انٹرنیٹ سے جڑیںاوربوٹ استعمال کرنے کے لیے آپ کو انٹرنیٹ کنکشن کی ضرورت ہے۔
- ترتیباتترتیب دیں کہ آپ کا آلہ کس طرح اور کب دوسرے Tor صارفین کے لیے Snowflake پراکسی کے طور پر کام کر سکتا ہے۔مہربانیصرف وائی فائی پر
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index 7a91949619..072ea8947e 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -134,8 +134,6 @@
Ẩn giấu các app ứng dụng khỏi việc bị theo dõi mạng và lấy lại khả năng truy cập khi chúng bị chặn.Lựa chọn làm cách nào để kết nốiLựa chọn app ứng dụng
- Ngày hôm nay tốt đẹp hơn
-\nlà do bạn.Chỉ trên WifiChỉ khi đang sạcẨn giấu các app ứng dụng khỏi việc bị theo dõi mạng và lấy lại khả năng truy cập khi chúng bị chặn.
@@ -143,12 +141,6 @@
Không chắc chắn ư\?Có nhiều cách để truy cập được Tor. Một số có thể sẽ hoạt động cho bạn tốt hơn những cái khác.Kết nối thông qua những người dùng Tor khác sử dụng Snowflake (Phương pháp 2 - AMP)
- Chế độ Thân thiện cho phép thiết bị của bạn trở thành một cầu Bridge cho những người khác. Nó giúp cho mọi người được sử dụng Tor tại những nơi mà nó bị chặn.
-\n
-\n• Nó sẽ không làm kiệt pin của bạn
-\n• Nó sẽ không làm chậm đi internet của bạn
-\n• Nó chỉ có thể chạy trên wifi
-\n• Nó có thể được tắt đi bất kỳ lúc nàoHãy đối xử với các cài đặt \"Loại bỏ Nút giao mạng\" (Exclude Nodes) như một điều kiện để xây dựng tất cả các mạch nối. Điều này có thể sẽ làm phá vỡ chức năng nếu như không có mạch nối nào được phát sinh ra (generated) với các cài đặt Loại bỏ Nút giao mạng.Đối với những người dùng đã quen thuộc với Tor. Cho phép bạn khởi động Orbot mà không cần cài đặt VPN và hiển thị các cổng SOCKS và HTTP mở khả dụngCách tốt nhất để kết nối tới Tor. Sử dụng nếu như Tor không bị chặn.
@@ -165,10 +157,6 @@
Sử dụng một mạch nối khác cho mỗi một cổng đích đến (destination port)Sử dụng một mạch nối khác biệt cho mỗi một giao thức protocol kết nốiThay đổi đầu ra exit
- Giúp đỡ những người khác
-\nkết nối tới Tor
- Tổng cộng hằng tuần
- Tổng cộng toàn bộ thời gianSnowflake (AMP)Chế độ người dùng nâng cao Power UserOrbot hoạt động tốt nhất với các app ứng dụng nhắn tin và mạng xã hội.
@@ -180,7 +168,6 @@
ĐANG HỎI…Kết nối tới InternetBạn cần một kết nối internet để sử dụng Orbot.
- Cài đặtĐịnh khoảng cách PaddingCảnh báo khi khởi chạy rằng, liệu quyền hạn root đã được bật kích hoạt trên thiết bị này chưaPhát hiện Root
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index bdb1caa070..619615424d 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -132,11 +132,6 @@
更改出口刷新连接连接
- 一周总计
- 帮助他人
-\n连接到 Tor
- 所有时间总计
- 善举模式可让您的设备成为他人的网桥,帮助人们在 Tor 被屏蔽的地方使用 Tor。\n\n• 不会耗尽电池电量\n• 不会减慢网速\n• 只通过 Wi-Fi 运行\n• 可随时关闭Snowflake智能连接直接连接
@@ -150,7 +145,6 @@
建议应用其他应用激活
- 因为有你,\n今天会更好。连接到互联网更多填充
@@ -170,7 +164,6 @@
有很多方式可以连接到 Tor,有些方式可能对您更有效。正在询问…使用 Orbot 需要连接到互联网。
- 设置仅使用 Wi-Fi 时仅在充电时Orbot 检测到您的设备已取得 Root 权限,这可能会导致安全问题。
@@ -280,11 +273,6 @@
VPN 权限被拒绝或其他 VPN 应用启用了“始终开启的 VPN”功能。如果您误退出了之前的 VPN 请求对话框,您可以忽略此操作并重新连接。技术用户可以使用其他 VPN 应用,并通过启用 Orbot 的高级用户模式将 Tor 作为 SOCKS 代理使用。打开 Android VPN 设置移除国家/地区
- 无法启动善举模式
- 要使用善举模式,您需要至少一次直接连接到 Tor 网络(不使用任何网桥)。连接成功后,请返回此处激活善举模式。完成此直接连接测试后,无论您是否连接到 Tor,均可自由使用善举模式。
- 当您使用网桥连接到 Tor 网络,善举模式无法运行。
- 由于您所在国家/地区的审查,目前无法使用善举模式帮助他人连接到 Tor 网络。
- 如果您身处受审查的地区,或者您需要使用网桥连接到 Tor 网络,请勿使用善举模式。禁用电池优化针对怀疑设备在后台运行时过早终止 Orbot 的部分用户的设置。某些 Android 设备可能会在 Orbot 后台运行时将其终止。对于大多数希望确保 Orbot 保持连接并运行的用户,只需在系统设置中将 Orbot 设置为“始终开启的 VPN”即可。不过,如果您认为有必要,仍可继续操作以防止设备对 Orbot 执行任何电池优化。
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 83966110b4..fd21e6e38b 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -152,21 +152,15 @@
不確定?選擇連接方式選擇應用程式
- 幫助其他人
-\n連接到 Tor
- 每週總計直接連線連接 Tor 的最佳方式。如果 Tor 未被阻止,請使用。給熟悉 Tor 的使用者。允許你在沒有 VPN 設定的情況下啟動 Orbot 並顯示開放的 SOCKS 和 HTTP 連接埠推薦的應用程式僅在 Wi-Fi 上記錄已複製
- 所有時間總計Snowflake AMP透過 Tor 志願者進行連接。繞過一些 Tor 封鎖。進階使用者模式
- 今天更好了
-\n因為有你。Orbot 最適合與訊息和社交媒體應用程式搭配使用。其他應用程式有很多方法可以連接到 Tor。有些可能比其他的更適合你。
@@ -176,13 +170,6 @@
連接到網絡如果此裝置上啟用了 root 權限,則啟動時發出警告Root 檢測
- 設定
- 善良模式讓您的設備成為他人的橋接器。這有助於人們在被封鎖的地方使用 Tor。
-\n
-\n• 它不會消耗您的電池
-\n• 它不會減慢您的網速
-\n• 它只能在 wifi 上運行
-\n• 它可以隨時關閉Orbot 正在啟動中…已連線至 Tor 網路Orbot 已停用
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index af17324303..465e4779ea 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -153,10 +153,10 @@
Change exitRefresh Connection🌎
- Help others\nconnect to Tor
- Weekly Total
- All Time Total
- Kindness mode allows your device to be a bridge for others. It helps people use Tor in places where it is blocked.\n\n• It will not drain your battery\n• It will not slow down your internet\n• It can run only over wifi\n• It can be turned off anytime
+ Kindness Mode: Help others connect to Tor
+ This Week
+ Total
+ Kindness Mode turns your device into a Snowflake Proxy on the Tor network — a bridge to help others connect.Kindness Mode is RunningYou\'ve helped %1$d people circumvent censorshipKindness Mode is Deactivated
@@ -185,7 +185,9 @@
Power User ModeFor users familiar with Tor. Allows you to start Orbot without the VPN setting and shows open SOCKS and HTTP portsActivate
- Today is better\nbecause of you.
+ Learn More
+ Enabled
+ DisabledChoose AppsOrbot works best with messaging and social media apps.Suggested Apps
@@ -199,7 +201,17 @@
ASKING…Connect to internetYou need an internet connection to use Orbot.
- Settings
+ Usage Limits
+ on
+ off
+ Proxy Quality
+ unknown
+ restricted
+ unrestricted
+ Upgrade your Snowflake Proxy
+ Your proxy can be more powerful when kindness mode is running on Wi-Fi.
+ To upgrade, enable UPnP on your Wi-Fi router for this device.
+ Your Impact in NumbersConfigure how and when your device can act as a Snowflake proxy for other Tor users.KindnessMore
@@ -208,6 +220,27 @@
PaddingDebug
+ Before becoming a Snowflake Proxy, we need to test your Internet connection to see if it can serve as a useful proxy for others.
+ During the connection evaluation, Orbot will attempt to connect directly to Tor without using bridges. This test will fail in heavily censored regions that block direct Tor connections.
+ Your current Tor connection will be temporarily disconnected because you use bridges to connect to Tor. Your Tor configuraiton will automatically be restarted as soon as this test is finished.
+ Do not start this test if it is unsafe for your apps to momentarily lose their secure Tor connection
+
+
+ Kindness Mode Connection Evaluation
+ Testing Quality…
+ Before you can become a Snowflake Proxy, we need to see if your Internet connection can be used to run an effective proxy. Please wait while we check.
+ I Understand, Start Test
+
+ %s Approved
+ You are a great candidate for becoming a Snowflake Proxy on the Tor network.
+ Continue
+ %s Not Approved
+ You cannot be a useful Snowflake Proxy at this time. If you keep seeing this message, try again on a different network.
+ Do not use Kindness Mode, if the Internet in your country is heavily censored.
+ Kindness Mode can not be activated when using a VPN. The only exception is Orbot\'s VPN feature. To become a Snowflake Proxy you must either remove your VPN or switch to using Orbot.
+ Open System VPN Settings…
+ Connect to the Internet to see if you\'re a good candidate for Kindness Mode
+
Orbot has detected your device is rooted, which can cause security issues.Warn on startup if root permissions are enabled on this deviceRoot Detection
@@ -312,11 +345,8 @@
The VPN permission was denied or another VPN app has the \"Always-on VPN\" feature enabled. You can dismiss this and reconnect if you exited the previous VPN Request dialog by mistake. Technical users can use another VPN app and use Tor as a SOCKS Proxy by enabling Orbot\'s Power User Mode.Open Android VPN Settings
- Unable to Start Kindness Mode
- In order to use Kindness Mode, you need to have connected directly to Tor (without using any bridges) at least once. After having connected, please come back here to activate Kindness Mode. After completing this direct connection test, you are free to use Kindness Mode whether or not you\'re connected to Tor.
- Kindness Mode can\'t run while you are using a bridge to connect to Tor.
- Using Kindness Mode to help other people connect to Tor is currently disabled for your country because of censorship.
- Don\'t Use Kindness Mode if you are in a region where you are censored or if you need to use a bridge to connect to Tor.
+ Activate if the internet in your country is not heavily censored.
+ You selected %s as your country, but unfortunately Kindness Mode can\'t help people connect to Tor in this region. If you believe you\'re seeing this message by mistake, you can clear your country and test to see if you\'re elliglbe to be a Snowflake ProxyDisable Battery OptimizationsSetting for some users that suspect their device is prematurely killing Orbot while it runs in the background.