mirror of
https://github.com/RoboSats/robosats.git
synced 2025-09-13 00:56:22 +00:00
Apply system locale
This commit is contained in:
@ -3,8 +3,6 @@ package com.robosats
|
||||
import android.Manifest
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.content.ContextWrapper
|
||||
import android.content.Intent
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.content.pm.PackageManager
|
||||
@ -34,10 +32,7 @@ import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.robosats.models.EncryptedStorage
|
||||
import com.robosats.models.LanguageManager
|
||||
import com.robosats.models.LanguageManager.LANGUAGE_KEY
|
||||
import com.robosats.models.LanguageManager.applyLanguage
|
||||
import com.robosats.services.NotificationsService
|
||||
import java.util.Locale
|
||||
import com.robosats.tor.TorKmp
|
||||
import com.robosats.tor.TorKmpManager
|
||||
import com.robosats.tor.TorKmpManager.getTorKmpObject
|
||||
@ -59,10 +54,8 @@ class MainActivity : AppCompatActivity() {
|
||||
// Initialize EncryptedStorage
|
||||
EncryptedStorage.init(this)
|
||||
|
||||
// Initialize language manager and apply saved language setting
|
||||
// Initialize language manager with system language
|
||||
LanguageManager.init(this)
|
||||
val languageCode = EncryptedStorage.getEncryptedStorage(LANGUAGE_KEY)
|
||||
changeAppLanguage(languageCode)
|
||||
|
||||
// Lock the screen orientation to portrait mode
|
||||
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
||||
@ -82,7 +75,7 @@ class MainActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
// Set initial status message
|
||||
updateStatus("Initializing Tor connection...")
|
||||
updateStatus(getString(R.string.init_tor))
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
|
||||
ContextCompat.checkSelfPermission(
|
||||
@ -140,7 +133,7 @@ class MainActivity : AppCompatActivity() {
|
||||
// Show a message to the user
|
||||
Toast.makeText(
|
||||
this,
|
||||
"Using Orbot. Make sure it's running!",
|
||||
getString(R.string.using_orbot),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
|
||||
@ -148,8 +141,8 @@ class MainActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize Notifications service
|
||||
*/
|
||||
* Initialize Notifications service
|
||||
*/
|
||||
fun initializeNotifications() {
|
||||
startForegroundService(
|
||||
Intent(
|
||||
@ -195,7 +188,7 @@ class MainActivity : AppCompatActivity() {
|
||||
|
||||
// Show error message on the loading screen
|
||||
runOnUiThread {
|
||||
updateStatus("Critical error: Tor initialization failed. App cannot proceed securely.")
|
||||
updateStatus(getString(R.string.tor_init_error))
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -214,7 +207,7 @@ class MainActivity : AppCompatActivity() {
|
||||
try {
|
||||
// Display connecting message
|
||||
runOnUiThread {
|
||||
updateStatus("Connecting to Tor network...")
|
||||
updateStatus(getString(R.string.connecting_tor))
|
||||
}
|
||||
|
||||
// Wait for Tor to connect with retry mechanism
|
||||
@ -228,7 +221,7 @@ class MainActivity : AppCompatActivity() {
|
||||
// Update status on UI thread every few retries
|
||||
if (retries % 3 == 0) {
|
||||
runOnUiThread {
|
||||
updateStatus("Still connecting to Tor (attempt $retries/$maxRetries)...")
|
||||
updateStatus(getString(R.string.still_connecting_tor))
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -239,7 +232,7 @@ class MainActivity : AppCompatActivity() {
|
||||
|
||||
// Show success message and proceed
|
||||
runOnUiThread {
|
||||
updateStatus("Tor connected successfully. Setting up secure browser...")
|
||||
updateStatus(getString(R.string.connected_tor))
|
||||
|
||||
HttpClientManager.setDefaultProxy(getTorKmpObject().proxy)
|
||||
|
||||
@ -251,14 +244,14 @@ class MainActivity : AppCompatActivity() {
|
||||
Log.e("TorInitialization", "Failed to connect to Tor after $maxRetries retries")
|
||||
|
||||
runOnUiThread {
|
||||
updateStatus("Failed to connect to Tor after multiple attempts. App cannot proceed securely.")
|
||||
updateStatus(getString(R.string.fail_tor))
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e("TorInitialization", "Error during Tor connection: ${e.message}", e)
|
||||
|
||||
runOnUiThread {
|
||||
updateStatus("Error connecting to Tor: ${e.message}")
|
||||
updateStatus(getString(R.string.error_tor) + "${e.message}")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -297,7 +290,7 @@ class MainActivity : AppCompatActivity() {
|
||||
|
||||
// Show message that we're setting up secure browsing
|
||||
runOnUiThread {
|
||||
updateStatus(if (useProxy) "Setting up secure Tor browsing..." else "Setting up Orbot browsing...")
|
||||
updateStatus(if (useProxy) getString(R.string.setting_tor) else getString(R.string.setting_orbot))
|
||||
}
|
||||
|
||||
// Configure proxy for WebView in a background thread to avoid NetworkOnMainThreadException
|
||||
@ -310,7 +303,7 @@ class MainActivity : AppCompatActivity() {
|
||||
|
||||
// Success - now configure WebViewClient and load URL on UI thread
|
||||
runOnUiThread {
|
||||
updateStatus("Secure connection established. Loading app...")
|
||||
updateStatus(getString(R.string.loading_app))
|
||||
|
||||
// Set up WebViewClient that allows external links and deep links to be opened
|
||||
webView.webViewClient = object : WebViewClient() {
|
||||
@ -457,9 +450,7 @@ class MainActivity : AppCompatActivity() {
|
||||
cookieManager.setAcceptThirdPartyCookies(webView, false) // Block 3rd party cookies
|
||||
|
||||
// 10. Disable Service Workers (not needed for our local app)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
ServiceWorkerController.getInstance().setServiceWorkerClient(null)
|
||||
}
|
||||
ServiceWorkerController.getInstance().setServiceWorkerClient(null)
|
||||
|
||||
// --- USABILITY SETTINGS ---
|
||||
|
||||
@ -474,17 +465,6 @@ class MainActivity : AppCompatActivity() {
|
||||
webSettings.textZoom = 100
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the app's language and recreate the activity
|
||||
* @param languageCode The language code to switch to (e.g., "en", "es", "fr")
|
||||
*/
|
||||
fun changeAppLanguage(languageCode: String) {
|
||||
// Apply the language change
|
||||
if (LanguageManager.applyLanguage(languageCode)) {
|
||||
// Restart the activity to apply changes
|
||||
recreate()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear all WebView data when activity is destroyed
|
||||
|
||||
@ -8,7 +8,6 @@ import android.webkit.JavascriptInterface
|
||||
import android.webkit.WebView
|
||||
import android.widget.Toast
|
||||
import com.robosats.models.EncryptedStorage
|
||||
import com.robosats.models.LanguageManager
|
||||
import com.robosats.models.NostrClient
|
||||
import com.robosats.services.NotificationsService
|
||||
import com.robosats.tor.TorKmpManager.getTorKmpObject
|
||||
@ -368,12 +367,6 @@ class WebAppInterface(private val context: MainActivity, private val webView: We
|
||||
EncryptedStorage.setEncryptedStorage(sanitizedKey, sanitizedValue)
|
||||
|
||||
if (key == "garage_slots") NostrClient.refresh()
|
||||
if (key == "settings_language") {
|
||||
context.changeAppLanguage(value)
|
||||
// Return immediately as recreate() will be called
|
||||
resolvePromise(uuid, key)
|
||||
return
|
||||
}
|
||||
if (key == "settings_notifications") {
|
||||
val serviceIntent = Intent(context, NotificationsService::class.java)
|
||||
if (value == "true") {
|
||||
|
||||
@ -4,58 +4,100 @@ import android.content.res.Configuration
|
||||
import android.content.res.Resources
|
||||
import android.os.Build
|
||||
import android.os.LocaleList
|
||||
import android.util.Log
|
||||
import com.robosats.MainActivity
|
||||
import java.util.Locale
|
||||
|
||||
/**
|
||||
* Manages the app's language settings
|
||||
* Uses the system's default language if it's one of the supported languages,
|
||||
* otherwise defaults to English
|
||||
*/
|
||||
object LanguageManager {
|
||||
lateinit var resources: Resources
|
||||
private val TAG = "LanguageManager"
|
||||
private val SETTINGS_KEY = "settings_language"
|
||||
|
||||
val LANGUAGE_KEY = "settings_language"
|
||||
// List of supported language codes based on the app's supported languages
|
||||
private val SUPPORTED_LANGUAGES = setOf(
|
||||
"en", // English
|
||||
"es", // Spanish
|
||||
"de", // German
|
||||
"pl", // Polish
|
||||
"fr", // French
|
||||
"sw", // Swahili
|
||||
"ru", // Russian
|
||||
"ja", // Japanese
|
||||
"it", // Italian
|
||||
"pt", // Portuguese
|
||||
"zh-si", // Simplified Chinese (special handling required)
|
||||
"zh-tr", // Traditional Chinese (special handling required)
|
||||
"sv", // Swedish
|
||||
"cs", // Czech
|
||||
"th", // Thai
|
||||
"ca", // Catalan
|
||||
"eu" // Basque
|
||||
)
|
||||
|
||||
fun init(context: MainActivity) {
|
||||
resources = context.resources
|
||||
applySystemLanguage()
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply the selected language to the app
|
||||
* @param languageCode The language code to apply, or "system" for system default
|
||||
* @return true if language was changed, false otherwise
|
||||
* Apply the system's default language to the app if it's supported,
|
||||
* otherwise use English as the default language
|
||||
* This is called only once during app initialization
|
||||
*/
|
||||
fun applyLanguage(languageCode: String): Boolean {
|
||||
val locale = when {
|
||||
languageCode == "system" -> {
|
||||
// Use system default
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
Resources.getSystem().configuration.locales.get(0)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
Resources.getSystem().configuration.locale
|
||||
}
|
||||
}
|
||||
languageCode == "zh-si" -> Locale.SIMPLIFIED_CHINESE
|
||||
languageCode == "zh-tr" -> Locale.TRADITIONAL_CHINESE
|
||||
else -> Locale(languageCode)
|
||||
fun applySystemLanguage() {
|
||||
// Get system locale
|
||||
val systemLocale =
|
||||
Resources.getSystem().configuration.locales.get(0)
|
||||
|
||||
// Determine the locale to use
|
||||
val localeToUse = getValidatedLocale(systemLocale)
|
||||
Log.d(TAG, "System locale: ${systemLocale.language}, Using locale: ${localeToUse.language}")
|
||||
|
||||
val lang = systemLocale.language
|
||||
if (EncryptedStorage.getEncryptedStorage(SETTINGS_KEY) == "" && SUPPORTED_LANGUAGES.contains(lang)) {
|
||||
EncryptedStorage.setEncryptedStorage(SETTINGS_KEY, lang)
|
||||
}
|
||||
|
||||
// Create configuration with the selected locale
|
||||
// Create configuration with the validated locale
|
||||
val config = Configuration(resources.configuration)
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
val localeList = LocaleList(locale)
|
||||
LocaleList.setDefault(localeList)
|
||||
config.setLocales(localeList)
|
||||
} else {
|
||||
config.locale = locale
|
||||
@Suppress("DEPRECATION")
|
||||
Locale.setDefault(locale)
|
||||
}
|
||||
val localeList = LocaleList(localeToUse)
|
||||
LocaleList.setDefault(localeList)
|
||||
config.setLocales(localeList)
|
||||
|
||||
// Update the configuration
|
||||
@Suppress("DEPRECATION")
|
||||
resources.updateConfiguration(config, resources.displayMetrics)
|
||||
}
|
||||
|
||||
EncryptedStorage.setEncryptedStorage(LANGUAGE_KEY, languageCode)
|
||||
/**
|
||||
* Validates if the system locale is supported by the app
|
||||
* If not, returns the English locale as default
|
||||
*/
|
||||
private fun getValidatedLocale(systemLocale: Locale): Locale {
|
||||
val languageCode = systemLocale.language
|
||||
|
||||
return true
|
||||
// Handle Chinese special cases
|
||||
if (languageCode == "zh") {
|
||||
val country = systemLocale.country
|
||||
// Check if it's Simplified (China, Singapore) or Traditional (Taiwan, Hong Kong)
|
||||
return when (country) {
|
||||
"CN", "SG" -> Locale.SIMPLIFIED_CHINESE
|
||||
"TW", "HK" -> Locale.TRADITIONAL_CHINESE
|
||||
else -> Locale.ENGLISH // Default to English for other Chinese variants
|
||||
}
|
||||
}
|
||||
|
||||
// For other languages, check if they're in our supported list
|
||||
return if (SUPPORTED_LANGUAGES.contains(languageCode.lowercase())) {
|
||||
systemLocale
|
||||
} else {
|
||||
Locale.ENGLISH // Default to English if language not supported
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,9 +15,18 @@ import org.json.JSONObject
|
||||
object NostrClient {
|
||||
private var subscriptionNotificationId = "robosatsNotificationId"
|
||||
private var authors = garagePubKeys()
|
||||
private var initialized = false
|
||||
|
||||
fun init() {
|
||||
RelayPool.register(Client)
|
||||
if (!initialized) {
|
||||
try {
|
||||
RelayPool.register(Client)
|
||||
initialized = true
|
||||
} catch (e: Exception) {
|
||||
Log.e("NostrClient", "Error initializing NostrClient: ${e.message}", e)
|
||||
// Don't set initialized to true if there was an error
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun stop() {
|
||||
|
||||
@ -133,11 +133,20 @@ class NotificationsService : Service() {
|
||||
}
|
||||
|
||||
override fun onCreate() {
|
||||
val connectivityManager =
|
||||
(getSystemService(ConnectivityManager::class.java) as ConnectivityManager)
|
||||
connectivityManager.registerDefaultNetworkCallback(networkCallback)
|
||||
NostrClient.init()
|
||||
super.onCreate()
|
||||
try {
|
||||
val connectivityManager =
|
||||
(getSystemService(ConnectivityManager::class.java) as ConnectivityManager)
|
||||
connectivityManager.registerDefaultNetworkCallback(networkCallback)
|
||||
|
||||
// Initialize NostrClient safely
|
||||
NostrClient.init()
|
||||
|
||||
super.onCreate()
|
||||
} catch (e: Exception) {
|
||||
Log.e("NotificationsService", "Error in onCreate", e)
|
||||
// Call super.onCreate() even if there's an error to ensure proper service lifecycle
|
||||
super.onCreate()
|
||||
}
|
||||
}
|
||||
|
||||
@RequiresPermission(Manifest.permission.POST_NOTIFICATIONS)
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats s\'està executant en segon pla cercant notificacions</string>
|
||||
<string name="notifications">Notificacions</string>
|
||||
<string name="useOrbotButton">Utilitzar Orbot</string>
|
||||
<string name="init_tor">Inicialitzant connexió Tor...</string>
|
||||
<string name="using_orbot">Utilitzant Orbot. Assegureu-vos que està en execució!</string>
|
||||
<string name="tor_init_error">Error crític: La inicialització de Tor ha fallat. L\'aplicació no pot continuar de manera segura.</string>
|
||||
<string name="connecting_tor">Connectant a la xarxa Tor...</string>
|
||||
<string name="still_connecting_tor">Encara connectant a Tor...</string>
|
||||
<string name="connected_tor">Tor connectat amb èxit. Configurant navegador segur...</string>
|
||||
<string name="fail_tor">No s\'ha pogut connectar a Tor després de diversos intents. L\'aplicació no pot continuar de manera segura.</string>
|
||||
<string name="error_tor">"Error en connectar a Tor: "</string>
|
||||
<string name="setting_tor">Configurant navegació segura amb Tor...</string>
|
||||
<string name="setting_orbot">Configurant navegació amb Orbot...</string>
|
||||
<string name="loading_app">Connexió segura establerta. Carregant aplicació...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats běží na pozadí a vyhledává oznámení</string>
|
||||
<string name="notifications">Oznámení</string>
|
||||
<string name="useOrbotButton">Použít Orbot</string>
|
||||
<string name="init_tor">Inicializace připojení Tor...</string>
|
||||
<string name="using_orbot">Používá se Orbot. Ujistěte se, že běží!</string>
|
||||
<string name="tor_init_error">Kritická chyba: Inicializace Tor selhala. Aplikace nemůže bezpečně pokračovat.</string>
|
||||
<string name="connecting_tor">Připojování k síti Tor...</string>
|
||||
<string name="still_connecting_tor">Stále se připojuje k Tor...</string>
|
||||
<string name="connected_tor">Tor úspěšně připojen. Nastavování bezpečného prohlížeče...</string>
|
||||
<string name="fail_tor">Nepodařilo se připojit k Tor po několika pokusech. Aplikace nemůže bezpečně pokračovat.</string>
|
||||
<string name="error_tor">"Chyba při připojování k Tor: "</string>
|
||||
<string name="setting_tor">Nastavování bezpečného prohlížení přes Tor...</string>
|
||||
<string name="setting_orbot">Nastavování prohlížení přes Orbot...</string>
|
||||
<string name="loading_app">Bezpečné připojení navázáno. Načítání aplikace...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats läuft im Hintergrund und sucht nach Benachrichtigungen</string>
|
||||
<string name="notifications">Benachrichtigungen</string>
|
||||
<string name="useOrbotButton">Orbot verwenden</string>
|
||||
<string name="init_tor">Tor-Verbindung wird initialisiert...</string>
|
||||
<string name="using_orbot">Orbot wird verwendet. Stellen Sie sicher, dass es läuft!</string>
|
||||
<string name="tor_init_error">Kritischer Fehler: Tor-Initialisierung fehlgeschlagen. Die App kann nicht sicher fortfahren.</string>
|
||||
<string name="connecting_tor">Verbindung zum Tor-Netzwerk wird hergestellt...</string>
|
||||
<string name="still_connecting_tor">Verbindung zu Tor wird noch hergestellt...</string>
|
||||
<string name="connected_tor">Tor erfolgreich verbunden. Sicherer Browser wird eingerichtet...</string>
|
||||
<string name="fail_tor">Verbindung zu Tor nach mehreren Versuchen fehlgeschlagen. Die App kann nicht sicher fortfahren.</string>
|
||||
<string name="error_tor">"Fehler bei der Verbindung zu Tor: "</string>
|
||||
<string name="setting_tor">Sichere Tor-Navigation wird eingerichtet...</string>
|
||||
<string name="setting_orbot">Orbot-Navigation wird eingerichtet...</string>
|
||||
<string name="loading_app">Sichere Verbindung hergestellt. App wird geladen...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats está ejecutándose en segundo plano buscando notificaciones</string>
|
||||
<string name="notifications">Notificaciones</string>
|
||||
<string name="useOrbotButton">Usar Orbot</string>
|
||||
<string name="init_tor">Inicializando conexión Tor...</string>
|
||||
<string name="using_orbot">Usando Orbot. ¡Asegúrese de que esté ejecutándose!</string>
|
||||
<string name="tor_init_error">Error crítico: Falló la inicialización de Tor. La aplicación no puede proceder de forma segura.</string>
|
||||
<string name="connecting_tor">Conectando a la red Tor...</string>
|
||||
<string name="still_connecting_tor">Todavía conectando a Tor...</string>
|
||||
<string name="connected_tor">Tor conectado exitosamente. Configurando navegador seguro...</string>
|
||||
<string name="fail_tor">No se pudo conectar a Tor después de múltiples intentos. La aplicación no puede proceder de forma segura.</string>
|
||||
<string name="error_tor">"Error al conectar a Tor: "</string>
|
||||
<string name="setting_tor">Configurando navegación segura con Tor...</string>
|
||||
<string name="setting_orbot">Configurando navegación con Orbot...</string>
|
||||
<string name="loading_app">Conexión segura establecida. Cargando aplicación...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats atzeko planoan exekutatzen ari da jakinarazpenak bilatzen</string>
|
||||
<string name="notifications">Jakinarazpenak</string>
|
||||
<string name="useOrbotButton">Orbot erabili</string>
|
||||
<string name="init_tor">Tor konexioa hasieratzen...</string>
|
||||
<string name="using_orbot">Orbot erabiltzen. Ziurtatu martxan dagoela!</string>
|
||||
<string name="tor_init_error">Errore kritikoa: Tor hasieratzeak huts egin du. Aplikazioak ezin du modu seguruan jarraitu.</string>
|
||||
<string name="connecting_tor">Tor sarera konektatzen...</string>
|
||||
<string name="still_connecting_tor">Oraindik Tor-era konektatzen...</string>
|
||||
<string name="connected_tor">Tor arrakastaz konektatu da. Nabigatzaile segurua konfiguratzen...</string>
|
||||
<string name="fail_tor">Ezin izan da Tor-era konektatu hainbat saiakera eta gero. Aplikazioak ezin du modu seguruan jarraitu.</string>
|
||||
<string name="error_tor">"Errorea Tor-era konektatzean: "</string>
|
||||
<string name="setting_tor">Tor-en bidezko nabigazio segurua konfiguratzen...</string>
|
||||
<string name="setting_orbot">Orbot nabigazioa konfiguratzen...</string>
|
||||
<string name="loading_app">Konexio segurua ezarri da. Aplikazioa kargatzen...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats fonctionne en arrière-plan et recherche des notifications</string>
|
||||
<string name="notifications">Notifications</string>
|
||||
<string name="useOrbotButton">Utiliser Orbot</string>
|
||||
<string name="init_tor">Initialisation de la connexion Tor...</string>
|
||||
<string name="using_orbot">Utilisation d\'Orbot. Assurez-vous qu\'il est en cours d\'exécution !</string>
|
||||
<string name="tor_init_error">Erreur critique : Échec de l\'initialisation de Tor. L\'application ne peut pas continuer en toute sécurité.</string>
|
||||
<string name="connecting_tor">Connexion au réseau Tor...</string>
|
||||
<string name="still_connecting_tor">Toujours en cours de connexion à Tor...</string>
|
||||
<string name="connected_tor">Tor connecté avec succès. Configuration du navigateur sécurisé...</string>
|
||||
<string name="fail_tor">Échec de la connexion à Tor après plusieurs tentatives. L\'application ne peut pas continuer en toute sécurité.</string>
|
||||
<string name="error_tor">"Erreur lors de la connexion à Tor : "</string>
|
||||
<string name="setting_tor">Configuration de la navigation sécurisée avec Tor...</string>
|
||||
<string name="setting_orbot">Configuration de la navigation avec Orbot...</string>
|
||||
<string name="loading_app">Connexion sécurisée établie. Chargement de l\'application...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats è in esecuzione in background cercando notifiche</string>
|
||||
<string name="notifications">Notifiche</string>
|
||||
<string name="useOrbotButton">Usa Orbot</string>
|
||||
<string name="init_tor">Inizializzazione connessione Tor...</string>
|
||||
<string name="using_orbot">Utilizzo di Orbot. Assicurati che sia in esecuzione!</string>
|
||||
<string name="tor_init_error">Errore critico: Inizializzazione di Tor fallita. L\'app non può procedere in modo sicuro.</string>
|
||||
<string name="connecting_tor">Connessione alla rete Tor...</string>
|
||||
<string name="still_connecting_tor">Ancora in connessione a Tor...</string>
|
||||
<string name="connected_tor">Tor connesso con successo. Configurazione del browser sicuro...</string>
|
||||
<string name="fail_tor">Impossibile connettersi a Tor dopo diversi tentativi. L\'app non può procedere in modo sicuro.</string>
|
||||
<string name="error_tor">"Errore durante la connessione a Tor: "</string>
|
||||
<string name="setting_tor">Configurazione della navigazione sicura con Tor...</string>
|
||||
<string name="setting_orbot">Configurazione della navigazione con Orbot...</string>
|
||||
<string name="loading_app">Connessione sicura stabilita. Caricamento dell\'app...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosatsはバックグラウンドで通知を取得しています</string>
|
||||
<string name="notifications">通知</string>
|
||||
<string name="useOrbotButton">Orbotを使用</string>
|
||||
<string name="init_tor">Tor接続を初期化中...</string>
|
||||
<string name="using_orbot">Orbotを使用中。実行中であることを確認してください!</string>
|
||||
<string name="tor_init_error">重大なエラー:Torの初期化に失敗しました。アプリは安全に続行できません。</string>
|
||||
<string name="connecting_tor">Torネットワークに接続中...</string>
|
||||
<string name="still_connecting_tor">まだTorに接続中...</string>
|
||||
<string name="connected_tor">Torに正常に接続されました。セキュアなブラウザを設定中...</string>
|
||||
<string name="fail_tor">複数回の試行後、Torに接続できませんでした。アプリは安全に続行できません。</string>
|
||||
<string name="error_tor">"Torへの接続エラー: "</string>
|
||||
<string name="setting_tor">セキュアなTorブラウジングを設定中...</string>
|
||||
<string name="setting_orbot">Orbotブラウジングを設定中...</string>
|
||||
<string name="loading_app">セキュアな接続が確立されました。アプリを読み込み中...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats działa w tle, pobierając powiadomienia</string>
|
||||
<string name="notifications">Powiadomienia</string>
|
||||
<string name="useOrbotButton">Użyj Orbot</string>
|
||||
<string name="init_tor">Inicjalizacja połączenia Tor...</string>
|
||||
<string name="using_orbot">Korzystanie z Orbot. Upewnij się, że jest uruchomiony!</string>
|
||||
<string name="tor_init_error">Błąd krytyczny: Inicjalizacja Tor nie powiodła się. Aplikacja nie może bezpiecznie kontynuować.</string>
|
||||
<string name="connecting_tor">Łączenie z siecią Tor...</string>
|
||||
<string name="still_connecting_tor">Nadal łączenie z Tor...</string>
|
||||
<string name="connected_tor">Tor pomyślnie połączony. Konfigurowanie bezpiecznej przeglądarki...</string>
|
||||
<string name="fail_tor">Nie udało się połączyć z Tor po wielu próbach. Aplikacja nie może bezpiecznie kontynuować.</string>
|
||||
<string name="error_tor">"Błąd podczas łączenia z Tor: "</string>
|
||||
<string name="setting_tor">Konfigurowanie bezpiecznego przeglądania przez Tor...</string>
|
||||
<string name="setting_orbot">Konfigurowanie przeglądania przez Orbot...</string>
|
||||
<string name="loading_app">Bezpieczne połączenie ustanowione. Ładowanie aplikacji...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats está rodando em segundo plano buscando notificações</string>
|
||||
<string name="notifications">Notificações</string>
|
||||
<string name="useOrbotButton">Usar Orbot</string>
|
||||
<string name="init_tor">Inicializando conexão Tor...</string>
|
||||
<string name="using_orbot">Usando Orbot. Certifique-se de que está rodando!</string>
|
||||
<string name="tor_init_error">Erro crítico: Falha na inicialização do Tor. O aplicativo não pode prosseguir com segurança.</string>
|
||||
<string name="connecting_tor">Conectando à rede Tor...</string>
|
||||
<string name="still_connecting_tor">Ainda conectando ao Tor...</string>
|
||||
<string name="connected_tor">Tor conectado com sucesso. Configurando navegador seguro...</string>
|
||||
<string name="fail_tor">Falha ao conectar ao Tor após várias tentativas. O aplicativo não pode prosseguir com segurança.</string>
|
||||
<string name="error_tor">"Erro ao conectar ao Tor: "</string>
|
||||
<string name="setting_tor">Configurando navegação segura com Tor...</string>
|
||||
<string name="setting_orbot">Configurando navegação com Orbot...</string>
|
||||
<string name="loading_app">Conexão segura estabelecida. Carregando aplicativo...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats работает в фоновом режиме и ищет уведомления</string>
|
||||
<string name="notifications">Уведомления</string>
|
||||
<string name="useOrbotButton">Использовать Orbot</string>
|
||||
<string name="init_tor">Инициализация соединения Tor...</string>
|
||||
<string name="using_orbot">Использование Orbot. Убедитесь, что он запущен!</string>
|
||||
<string name="tor_init_error">Критическая ошибка: Не удалось инициализировать Tor. Приложение не может безопасно продолжить работу.</string>
|
||||
<string name="connecting_tor">Подключение к сети Tor...</string>
|
||||
<string name="still_connecting_tor">Всё ещё подключается к Tor...</string>
|
||||
<string name="connected_tor">Tor успешно подключен. Настройка безопасного браузера...</string>
|
||||
<string name="fail_tor">Не удалось подключиться к Tor после нескольких попыток. Приложение не может безопасно продолжить работу.</string>
|
||||
<string name="error_tor">"Ошибка при подключении к Tor: "</string>
|
||||
<string name="setting_tor">Настройка безопасного просмотра через Tor...</string>
|
||||
<string name="setting_orbot">Настройка просмотра через Orbot...</string>
|
||||
<string name="loading_app">Безопасное соединение установлено. Загрузка приложения...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats körs i bakgrunden och söker efter meddelanden</string>
|
||||
<string name="notifications">Meddelanden</string>
|
||||
<string name="useOrbotButton">Använd Orbot</string>
|
||||
<string name="init_tor">Initierar Tor-anslutning...</string>
|
||||
<string name="using_orbot">Använder Orbot. Se till att den körs!</string>
|
||||
<string name="tor_init_error">Kritiskt fel: Initiering av Tor misslyckades. Appen kan inte fortsätta säkert.</string>
|
||||
<string name="connecting_tor">Ansluter till Tor-nätverket...</string>
|
||||
<string name="still_connecting_tor">Fortfarande ansluter till Tor...</string>
|
||||
<string name="connected_tor">Tor ansluten framgångsrikt. Konfigurerar säker webbläsare...</string>
|
||||
<string name="fail_tor">Det gick inte att ansluta till Tor efter flera försök. Appen kan inte fortsätta säkert.</string>
|
||||
<string name="error_tor">"Fel vid anslutning till Tor: "</string>
|
||||
<string name="setting_tor">Konfigurerar säker Tor-surfning...</string>
|
||||
<string name="setting_orbot">Konfigurerar Orbot-surfning...</string>
|
||||
<string name="loading_app">Säker anslutning etablerad. Laddar app...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats inaendesha katika usuli ikitafuta arifa</string>
|
||||
<string name="notifications">Arifa</string>
|
||||
<string name="useOrbotButton">Tumia Orbot</string>
|
||||
<string name="init_tor">Inaanzisha muunganisho wa Tor...</string>
|
||||
<string name="using_orbot">Inatumia Orbot. Hakikisha inafanya kazi!</string>
|
||||
<string name="tor_init_error">Hitilafu muhimu: Kuanzisha Tor kumeshindwa. Programu haiwezi kuendelea kwa usalama.</string>
|
||||
<string name="connecting_tor">Inaunganisha kwa mtandao wa Tor...</string>
|
||||
<string name="still_connecting_tor">Bado inaunganisha na Tor...</string>
|
||||
<string name="connected_tor">Tor imeunganishwa kwa mafanikio. Inaunda kivinjari salama...</string>
|
||||
<string name="fail_tor">Imeshindwa kuunganisha na Tor baada ya majaribio mengi. Programu haiwezi kuendelea kwa usalama.</string>
|
||||
<string name="error_tor">"Hitilafu wakati wa kuunganisha na Tor: "</string>
|
||||
<string name="setting_tor">Inaunda uvinjari salama wa Tor...</string>
|
||||
<string name="setting_orbot">Inaunda uvinjari wa Orbot...</string>
|
||||
<string name="loading_app">Muunganisho salama umeundwa. Inapakia programu...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats กำลังทำงานในเบื้องหลังและค้นหาการแจ้งเตือน</string>
|
||||
<string name="notifications">การแจ้งเตือน</string>
|
||||
<string name="useOrbotButton">ใช้ Orbot</string>
|
||||
<string name="init_tor">กำลังเริ่มต้นการเชื่อมต่อ Tor...</string>
|
||||
<string name="using_orbot">กำลังใช้ Orbot ตรวจสอบให้แน่ใจว่ากำลังทำงานอยู่!</string>
|
||||
<string name="tor_init_error">ข้อผิดพลาดร้ายแรง: การเริ่มต้น Tor ล้มเหลว แอปพลิเคชันไม่สามารถดำเนินการต่อได้อย่างปลอดภัย</string>
|
||||
<string name="connecting_tor">กำลังเชื่อมต่อกับเครือข่าย Tor...</string>
|
||||
<string name="still_connecting_tor">ยังคงเชื่อมต่อกับ Tor...</string>
|
||||
<string name="connected_tor">เชื่อมต่อกับ Tor สำเร็จแล้ว กำลังตั้งค่าเบราว์เซอร์ที่ปลอดภัย...</string>
|
||||
<string name="fail_tor">ไม่สามารถเชื่อมต่อกับ Tor หลังจากพยายามหลายครั้ง แอปพลิเคชันไม่สามารถดำเนินการต่อได้อย่างปลอดภัย</string>
|
||||
<string name="error_tor">"เกิดข้อผิดพลาดในการเชื่อมต่อกับ Tor: "</string>
|
||||
<string name="setting_tor">กำลังตั้งค่าการเบราว์ซิ่งที่ปลอดภัยด้วย Tor...</string>
|
||||
<string name="setting_orbot">กำลังตั้งค่าการเบราว์ซิ่งด้วย Orbot...</string>
|
||||
<string name="loading_app">การเชื่อมต่อที่ปลอดภัยถูกสร้างขึ้นแล้ว กำลังโหลดแอปพลิเคชัน...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats 正在后台运行获取通知</string>
|
||||
<string name="notifications">通知</string>
|
||||
<string name="useOrbotButton">使用 Orbot</string>
|
||||
<string name="init_tor">正在初始化 Tor 连接...</string>
|
||||
<string name="using_orbot">正在使用 Orbot。请确保它正在运行!</string>
|
||||
<string name="tor_init_error">严重错误:Tor 初始化失败。应用无法安全地继续。</string>
|
||||
<string name="connecting_tor">正在连接到 Tor 网络...</string>
|
||||
<string name="still_connecting_tor">仍在连接到 Tor...</string>
|
||||
<string name="connected_tor">Tor 成功连接。正在设置安全浏览器...</string>
|
||||
<string name="fail_tor">多次尝试后无法连接到 Tor。应用无法安全地继续。</string>
|
||||
<string name="error_tor">"连接到 Tor 时出错: "</string>
|
||||
<string name="setting_tor">正在设置安全的 Tor 浏览...</string>
|
||||
<string name="setting_orbot">正在设置 Orbot 浏览...</string>
|
||||
<string name="loading_app">安全连接已建立。正在加载应用...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats 正在背景執行獲取通知</string>
|
||||
<string name="notifications">通知</string>
|
||||
<string name="useOrbotButton">使用 Orbot</string>
|
||||
<string name="init_tor">正在初始化 Tor 連接...</string>
|
||||
<string name="using_orbot">正在使用 Orbot。請確保它正在運行!</string>
|
||||
<string name="tor_init_error">嚴重錯誤:Tor 初始化失敗。應用無法安全地繼續。</string>
|
||||
<string name="connecting_tor">正在連接到 Tor 網絡...</string>
|
||||
<string name="still_connecting_tor">仍在連接到 Tor...</string>
|
||||
<string name="connected_tor">Tor 成功連接。正在設置安全瀏覽器...</string>
|
||||
<string name="fail_tor">多次嘗試後無法連接到 Tor。應用無法安全地繼續。</string>
|
||||
<string name="error_tor">"連接到 Tor 時出錯: "</string>
|
||||
<string name="setting_tor">正在設置安全的 Tor 瀏覽...</string>
|
||||
<string name="setting_orbot">正在設置 Orbot 瀏覽...</string>
|
||||
<string name="loading_app">安全連接已建立。正在加載應用...</string>
|
||||
</resources>
|
||||
|
||||
@ -6,4 +6,15 @@
|
||||
<string name="robosats_is_running_in_background">Robosats is running in background fetching for notifications</string>
|
||||
<string name="notifications">Notifications</string>
|
||||
<string name="useOrbotButton">Use Orbot</string>
|
||||
<string name="init_tor">Initializing Tor connection...</string>
|
||||
<string name="using_orbot">Using Orbot. Make sure it\'s running!</string>
|
||||
<string name="tor_init_error">Critical error: Tor initialization failed. App cannot proceed securely.</string>
|
||||
<string name="connecting_tor">Connecting to Tor network...</string>
|
||||
<string name="still_connecting_tor">Still connecting to Tor...</string>
|
||||
<string name="connected_tor">Tor connected successfully. Setting up secure browser...</string>
|
||||
<string name="fail_tor">Failed to connect to Tor after multiple attempts. App cannot proceed securely.</string>
|
||||
<string name="error_tor">"Error connecting to Tor: "</string>
|
||||
<string name="setting_tor">Setting up secure Tor browsing...</string>
|
||||
<string name="setting_orbot">Setting up Orbot browsing...</string>
|
||||
<string name="loading_app">Secure connection established. Loading app...</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user