android, desktop: bottom bar and update texts in onboarding (#5279)

* android, desktop: remove one hand ui bar from onboarding and design matching latest ios

* padding before text

* stop reserving space in conditions view

* notifications view

* revert unwanted

* update heading

* translations for new how it works

* how it works redone

* show create profile in how it works

* revert

* conditions of use same padding bottom

* unused str

* swapped instant and off notifications order

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
This commit is contained in:
Diogo
2024-11-30 18:21:48 +00:00
committed by GitHub
parent e9853fe3fc
commit 94377d0b7a
35 changed files with 101 additions and 146 deletions
@@ -14,6 +14,7 @@ import chat.simplex.common.model.ChatController.appPrefs
import chat.simplex.common.ui.theme.DEFAULT_PADDING
import chat.simplex.common.views.chatlist.NavigationBarBackground
import chat.simplex.common.views.helpers.*
import chat.simplex.common.views.onboarding.OnboardingStage
import kotlinx.coroutines.flow.filter
import kotlin.math.absoluteValue
@@ -124,7 +125,7 @@ actual fun ColumnWithScrollBar(
}
}
}
val oneHandUI = remember { appPrefs.oneHandUI.state }
val oneHandUI = remember { derivedStateOf { if (appPrefs.onboardingStage.state.value == OnboardingStage.OnboardingComplete) appPrefs.oneHandUI.state.value else false } }
Box(Modifier.fillMaxHeight()) {
Column(
if (maxIntrinsicSize) {
@@ -117,14 +117,15 @@ fun CreateFirstProfile(chatModel: ChatModel, close: () -> Unit) {
ColumnWithScrollBar {
val displayName = rememberSaveable { mutableStateOf("") }
val focusRequester = remember { FocusRequester() }
Column(if (appPlatform.isAndroid) Modifier.fillMaxSize().padding(horizontal = DEFAULT_PADDING) else Modifier.widthIn(max = 600.dp).fillMaxHeight().padding(horizontal = DEFAULT_PADDING).align(Alignment.CenterHorizontally)) {
Column(if (appPlatform.isAndroid) Modifier.fillMaxSize().padding(start = DEFAULT_PADDING * 2, end = DEFAULT_PADDING * 2, bottom = DEFAULT_PADDING) else Modifier.widthIn(max = 600.dp).fillMaxHeight().padding(horizontal = DEFAULT_PADDING).align(Alignment.CenterHorizontally)) {
Box(Modifier.align(Alignment.CenterHorizontally)) {
AppBarTitle(stringResource(MR.strings.create_profile), bottomPadding = DEFAULT_PADDING, withPadding = false)
AppBarTitle(stringResource(MR.strings.create_your_profile), bottomPadding = DEFAULT_PADDING, withPadding = false)
}
ProfileNameField(displayName, stringResource(MR.strings.display_name), { it.trim() == mkValidName(it) }, focusRequester)
ReadableText(MR.strings.your_profile_is_stored_on_your_device, TextAlign.Center, padding = PaddingValues(), style = MaterialTheme.typography.body1.copy(color = MaterialTheme.colors.secondary))
Spacer(Modifier.height(DEFAULT_PADDING))
ReadableText(MR.strings.your_profile_is_stored_on_your_device, TextAlign.Start, padding = PaddingValues(), style = MaterialTheme.typography.body1.copy(color = MaterialTheme.colors.secondary))
ReadableText(MR.strings.profile_is_only_shared_with_your_contacts, TextAlign.Start, style = MaterialTheme.typography.body1.copy(color = MaterialTheme.colors.secondary))
ReadableText(MR.strings.profile_is_only_shared_with_your_contacts, TextAlign.Center, style = MaterialTheme.typography.body1.copy(color = MaterialTheme.colors.secondary))
Spacer(Modifier.height(DEFAULT_PADDING))
ProfileNameField(displayName, stringResource(MR.strings.display_name), { it.trim() == mkValidName(it) }, focusRequester)
}
Spacer(Modifier.fillMaxHeight().weight(1f))
Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
@@ -14,6 +14,7 @@ import chat.simplex.common.model.ChatModel
import chat.simplex.common.platform.*
import chat.simplex.common.ui.theme.*
import chat.simplex.common.views.chatlist.StatusBarBackground
import chat.simplex.common.views.onboarding.OnboardingStage
import kotlinx.coroutines.flow.MutableStateFlow
import java.util.concurrent.atomic.AtomicBoolean
import kotlin.math.min
@@ -36,7 +37,7 @@ fun ModalView(
if (showClose && showAppBar) {
BackHandler(enabled = enableClose, onBack = close)
}
val oneHandUI = remember { appPrefs.oneHandUI.state }
val oneHandUI = remember { derivedStateOf { if (appPrefs.onboardingStage.state.value == OnboardingStage.OnboardingComplete) appPrefs.oneHandUI.state.value else false } }
Surface(Modifier.fillMaxSize(), contentColor = LocalContentColor.current) {
Box(if (background != Color.Unspecified) Modifier.background(background) else Modifier.themedBackground(bgLayerSize = LocalAppBarHandler.current?.backgroundGraphicsLayerSize, bgLayer = LocalAppBarHandler.current?.backgroundGraphicsLayer)) {
Box(modifier = modifier) {
@@ -31,13 +31,8 @@ fun ModalData.ChooseServerOperators(
LaunchedEffect(Unit) {
prepareChatBeforeFinishingOnboarding()
}
CompositionLocalProvider(LocalAppBarHandler provides rememberAppBarHandler()) {
ModalView({}, showClose = false, endButtons = {
IconButton({ modalManager.showModal { ChooseServerOperatorsInfoView() } }) {
Icon(painterResource(MR.images.ic_info), null, Modifier.size(28.dp), tint = MaterialTheme.colors.primary)
}
}) {
ModalView({}, showClose = false) {
val serverOperators = remember { derivedStateOf { chatModel.conditions.value.serverOperators } }
val selectedOperatorIds = remember { stateGetOrPut("selectedOperatorIds") { serverOperators.value.filter { it.enabled }.map { it.operatorId }.toSet() } }
val selectedOperators = remember { derivedStateOf { serverOperators.value.filter { selectedOperatorIds.value.contains(it.operatorId) } } }
@@ -48,15 +43,16 @@ fun ModalData.ChooseServerOperators(
maxIntrinsicSize = true
) {
Box(Modifier.align(Alignment.CenterHorizontally)) {
AppBarTitle(stringResource(MR.strings.onboarding_choose_server_operators))
AppBarTitle(stringResource(MR.strings.onboarding_choose_server_operators), bottomPadding = DEFAULT_PADDING)
}
Column((
if (appPlatform.isDesktop) Modifier.width(600.dp).align(Alignment.CenterHorizontally) else Modifier)
.padding(horizontal = DEFAULT_PADDING)
) {
Text(stringResource(MR.strings.onboarding_select_network_operators_to_use))
Spacer(Modifier.height(DEFAULT_PADDING))
Column(Modifier.fillMaxWidth().padding(horizontal = DEFAULT_PADDING), horizontalAlignment = Alignment.CenterHorizontally) {
OnboardingInformationButton(
stringResource(MR.strings.how_it_helps_privacy),
onClick = { modalManager.showModal { ChooseServerOperatorsInfoView() } }
)
}
Spacer(Modifier.weight(1f))
Column((
if (appPlatform.isDesktop) Modifier.width(600.dp).align(Alignment.CenterHorizontally) else Modifier)
@@ -93,7 +89,7 @@ fun ModalData.ChooseServerOperators(
currUserServers = remember { mutableStateOf(emptyList()) },
userServers = remember { mutableStateOf(emptyList()) },
close = close,
rhId = null
rhId = null,
)
}
}
@@ -249,10 +245,8 @@ private fun ReviewConditionsView(
Column(modifier = Modifier.weight(1f).padding(top = DEFAULT_PADDING_HALF)) {
ConditionsTextView(chatModel.remoteHostId())
}
Column(Modifier.padding(top = DEFAULT_PADDING).widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
Column(Modifier.padding(vertical = DEFAULT_PADDING).widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
AcceptConditionsButton(onboarding, selectedOperators, selectedOperatorIds, close)
// Reserve space
TextButtonBelowOnboardingButton("", null)
}
}
}
@@ -25,14 +25,11 @@ import dev.icerock.moko.resources.StringResource
fun HowItWorks(user: User?, onboardingStage: SharedPreference<OnboardingStage>? = null) {
ColumnWithScrollBar(Modifier.padding(DEFAULT_PADDING)) {
AppBarTitle(stringResource(MR.strings.how_simplex_works), withPadding = false)
ReadableText(MR.strings.many_people_asked_how_can_it_deliver)
ReadableText(MR.strings.to_protect_privacy_simplex_has_ids_for_queues)
ReadableText(MR.strings.you_control_servers_to_receive_your_contacts_to_send)
ReadableText(MR.strings.only_client_devices_store_contacts_groups_e2e_encrypted_messages)
ReadableText(MR.strings.all_message_and_files_e2e_encrypted)
if (onboardingStage == null) {
ReadableTextWithLink(MR.strings.read_more_in_github_with_link, "https://github.com/simplex-chat/simplex-chat#readme")
} else {
ReadableText(MR.strings.read_more_in_github)
}
Spacer(Modifier.fillMaxHeight().weight(1f))
@@ -41,7 +38,6 @@ fun HowItWorks(user: User?, onboardingStage: SharedPreference<OnboardingStage>?
Box(Modifier.fillMaxWidth().padding(bottom = DEFAULT_PADDING), contentAlignment = Alignment.Center) {
OnboardingActionButton(user, onboardingStage, onclick = { ModalManager.fullscreen.closeModal() })
}
Spacer(Modifier.fillMaxHeight().weight(1f))
}
Spacer(Modifier.height(DEFAULT_PADDING))
}
@@ -32,23 +32,28 @@ fun SetNotificationsMode(m: ChatModel) {
ModalView({}, showClose = false) {
ColumnWithScrollBar(Modifier.themedBackground(bgLayerSize = LocalAppBarHandler.current?.backgroundGraphicsLayerSize, bgLayer = LocalAppBarHandler.current?.backgroundGraphicsLayer)) {
Box(Modifier.align(Alignment.CenterHorizontally)) {
AppBarTitle(stringResource(MR.strings.onboarding_notifications_mode_title))
AppBarTitle(stringResource(MR.strings.onboarding_notifications_mode_title), bottomPadding = DEFAULT_PADDING)
}
val currentMode = rememberSaveable { mutableStateOf(NotificationsMode.default) }
Column(Modifier.padding(horizontal = DEFAULT_PADDING * 1f)) {
Text(stringResource(MR.strings.onboarding_notifications_mode_subtitle), Modifier.fillMaxWidth(), textAlign = TextAlign.Center)
Spacer(Modifier.height(DEFAULT_PADDING * 2f))
SelectableCard(currentMode, NotificationsMode.OFF, stringResource(MR.strings.onboarding_notifications_mode_off), annotatedStringResource(MR.strings.onboarding_notifications_mode_off_desc)) {
currentMode.value = NotificationsMode.OFF
}
SelectableCard(currentMode, NotificationsMode.PERIODIC, stringResource(MR.strings.onboarding_notifications_mode_periodic), annotatedStringResource(MR.strings.onboarding_notifications_mode_periodic_desc)) {
currentMode.value = NotificationsMode.PERIODIC
}
SelectableCard(currentMode, NotificationsMode.SERVICE, stringResource(MR.strings.onboarding_notifications_mode_service), annotatedStringResource(MR.strings.onboarding_notifications_mode_service_desc)) {
Column(Modifier.padding(horizontal = DEFAULT_PADDING).fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
OnboardingInformationButton(
stringResource(MR.strings.onboarding_notifications_mode_subtitle),
onClick = { ModalManager.fullscreen.showModalCloseable { NotificationBatteryUsageInfo() } }
)
}
Spacer(Modifier.weight(1f))
Column(Modifier.padding(horizontal = DEFAULT_PADDING)) {
SelectableCard(currentMode, NotificationsMode.SERVICE, stringResource(MR.strings.onboarding_notifications_mode_service), annotatedStringResource(MR.strings.onboarding_notifications_mode_service_desc_short)) {
currentMode.value = NotificationsMode.SERVICE
}
SelectableCard(currentMode, NotificationsMode.PERIODIC, stringResource(MR.strings.onboarding_notifications_mode_periodic), annotatedStringResource(MR.strings.onboarding_notifications_mode_periodic_desc_short)) {
currentMode.value = NotificationsMode.PERIODIC
}
SelectableCard(currentMode, NotificationsMode.OFF, stringResource(MR.strings.onboarding_notifications_mode_off), annotatedStringResource(MR.strings.onboarding_notifications_mode_off_desc_short)) {
currentMode.value = NotificationsMode.OFF
}
}
Spacer(Modifier.fillMaxHeight().weight(1f))
Spacer(Modifier.weight(1f))
Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
OnboardingActionButton(
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier,
@@ -99,6 +104,21 @@ fun <T> SelectableCard(currentValue: State<T>, newValue: T, title: String, descr
Spacer(Modifier.height(14.dp))
}
@Composable
private fun NotificationBatteryUsageInfo() {
ColumnWithScrollBar(Modifier.padding(DEFAULT_PADDING)) {
AppBarTitle(stringResource(MR.strings.onboarding_notifications_mode_battery), withPadding = false)
Text(stringResource(MR.strings.onboarding_notifications_mode_service), style = MaterialTheme.typography.h3, color = MaterialTheme.colors.secondary)
ReadableText(MR.strings.onboarding_notifications_mode_service_desc)
Spacer(Modifier.height(DEFAULT_PADDING_HALF))
Text(stringResource(MR.strings.onboarding_notifications_mode_periodic), style = MaterialTheme.typography.h3, color = MaterialTheme.colors.secondary)
ReadableText(MR.strings.onboarding_notifications_mode_periodic_desc)
Spacer(Modifier.height(DEFAULT_PADDING_HALF))
Text(stringResource(MR.strings.onboarding_notifications_mode_off), style = MaterialTheme.typography.h3, color = MaterialTheme.colors.secondary)
ReadableText(MR.strings.onboarding_notifications_mode_off_desc)
}
}
fun prepareChatBeforeFinishingOnboarding() {
// No visible users but may have hidden. In this case chat should be started anyway because it's stopped on this stage with hidden users
if (chatModel.users.any { u -> !u.user.hidden }) return
@@ -32,11 +32,7 @@ import dev.icerock.moko.resources.StringResource
fun SimpleXInfo(chatModel: ChatModel, onboarding: Boolean = true) {
if (onboarding) {
CompositionLocalProvider(LocalAppBarHandler provides rememberAppBarHandler()) {
ModalView({}, showClose = false, endButtons = {
IconButton({ ModalManager.fullscreen.showModal { HowItWorks(chatModel.currentUser.value, null) } }) {
Icon(painterResource(MR.images.ic_info), null, Modifier.size(28.dp), tint = MaterialTheme.colors.primary)
}
}) {
ModalView({}, showClose = false, showAppBar = false) {
SimpleXInfoLayout(
user = chatModel.currentUser.value,
onboardingStage = chatModel.controller.appPrefs.onboardingStage
@@ -56,22 +52,14 @@ fun SimpleXInfoLayout(
user: User?,
onboardingStage: SharedPreference<OnboardingStage>?
) {
ColumnWithScrollBar(
Modifier
.padding(horizontal = DEFAULT_PADDING),
horizontalAlignment = Alignment.CenterHorizontally
) {
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_PADDING), horizontalAlignment = Alignment.CenterHorizontally) {
Box(Modifier.widthIn(max = if (appPlatform.isAndroid) 250.dp else 500.dp).padding(top = DEFAULT_PADDING + 8.dp), contentAlignment = Alignment.Center) {
SimpleXLogo()
}
Spacer(Modifier.weight(1f))
Text(
OnboardingInformationButton(
stringResource(MR.strings.next_generation_of_private_messaging),
style = MaterialTheme.typography.h3,
color = MaterialTheme.colors.secondary,
textAlign = TextAlign.Center
onClick = { ModalManager.fullscreen.showModal { HowItWorks(user, onboardingStage) } },
)
Spacer(Modifier.weight(1f))
@@ -82,10 +70,10 @@ fun SimpleXInfoLayout(
InfoRow(painterResource(if (isInDarkTheme()) MR.images.decentralized_light else MR.images.decentralized), MR.strings.decentralized, MR.strings.opensource_protocol_and_code_anybody_can_run_servers)
}
Spacer(Modifier.fillMaxHeight().weight(1f))
Column(Modifier.fillMaxHeight().weight(1f)) { }
if (onboardingStage != null) {
Column(Modifier.padding(horizontal = DEFAULT_PADDING).widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
Column(Modifier.padding(horizontal = DEFAULT_PADDING).widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally,) {
OnboardingActionButton(user, onboardingStage)
TextButtonBelowOnboardingButton(stringResource(MR.strings.migrate_from_another_device)) {
chatModel.migrationState.value = MigrationToState.PasteOrScanLink
@@ -165,8 +153,8 @@ fun OnboardingActionButton(
fun TextButtonBelowOnboardingButton(text: String, onClick: (() -> Unit)?) {
val state = getKeyboardState()
val enabled = onClick != null
val topPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else DEFAULT_PADDING)
val bottomPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else DEFAULT_PADDING * 2)
val topPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else DEFAULT_PADDING_HALF)
val bottomPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else DEFAULT_PADDING_HALF)
if ((appPlatform.isAndroid && state.value == KeyboardState.Closed) || topPadding > 0.dp) {
TextButton({ onClick?.invoke() }, Modifier.padding(top = topPadding, bottom = bottomPadding).clip(CircleShape), enabled = enabled) {
Text(
@@ -183,6 +171,27 @@ fun TextButtonBelowOnboardingButton(text: String, onClick: (() -> Unit)?) {
}
}
@Composable
fun OnboardingInformationButton(
text: String,
onClick: () -> Unit,
) {
Box(
modifier = Modifier
.clip(CircleShape)
.clickable { onClick() }
) {
Row(Modifier.padding(8.dp), horizontalArrangement = Arrangement.spacedBy(4.dp) ) {
Icon(
painterResource(MR.images.ic_info),
null,
tint = MaterialTheme.colors.primary
)
Text(text, style = MaterialTheme.typography.button, color = MaterialTheme.colors.primary)
}
}
}
@Preview/*(
uiMode = Configuration.UI_MODE_NIGHT_YES,
showBackground = true,
@@ -703,7 +703,6 @@
<string name="ensure_ICE_server_address_are_correct_format_and_unique">تأكد من أن عناوين خادم WebRTC ICE بالتنسيق الصحيح، وأن تكون مفصولة بأسطر وليست مكررة.</string>
<string name="mark_code_verified">علّم تحقق منه</string>
<string name="error_saving_user_password">خطأ في حفظ كلمة مرور المستخدم</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[سأل الكثير من الناس: <i>إذا SimpleX ليس لديه معرّفات مستخدم، كيف يمكنه توصيل الرسائل؟</i>]]></string>
<string name="error_saving_group_profile">خطأ في حفظ ملف تعريف المجموعة</string>
<string name="notification_preview_mode_message">رسالة نصية</string>
<string name="message_reactions">ردود فعل الرسائل</string>
@@ -932,7 +931,6 @@
<string name="reset_verb">صفّر</string>
<string name="network_proxy_port">المنفذ %d</string>
<string name="smp_servers_preset_server">خادم محدد مسبقًا</string>
<string name="read_more_in_github">قراءة المزيد في مستودعنا على GitHub.</string>
<string name="relay_server_if_necessary">يتم استخدام خادم الترحيل فقط إذا لزم الأمر. يمكن لطرف آخر مراقبة عنوان IP الخاص بك.</string>
<string name="save_and_notify_contact">حفظ وإشعار جهة الاتصال</string>
<string name="settings_restart_app">إعادة التشغيل</string>
@@ -1215,7 +1213,6 @@
<string name="snd_group_event_user_left">غادرت</string>
<string name="you_must_use_the_most_recent_version_of_database">يجب عليك استخدام أحدث إصدار من قاعدة بيانات الدردشة الخاصة بك على جهاز واحد فقط، وإلا فقد تتوقف عن تلقي الرسائل من بعض جهات الاتصال.</string>
<string name="video_will_be_received_when_contact_is_online">سيتم استلام الفيديو عندما تكون جهة اتصالك متصلة بالإنترنت، يرجى الانتظار أو التحقق لاحقًا!</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[يمكنك التحكم من خلال الخادم (الخوادم) <b>لاستلام</b> الرسائل وجهات اتصالك - الخوادم التي تستخدمها لمراسلتهم.]]></string>
<string name="you_can_share_this_address_with_your_contacts">يمكنك مشاركة هذا العنوان مع جهات اتصالك للسماح لهم بالاتصال بـ%s.</string>
<string name="snd_group_event_member_deleted">أُزيلت %1$s</string>
<string name="update_database">تحديث</string>
@@ -1026,7 +1026,7 @@
<string name="error_initializing_web_view_wrong_arch">Error initializing WebView. Make sure you have WebView installed and it\'s supported architecture is arm64.\nError: %s</string>
<!-- SimpleXInfo -->
<string name="next_generation_of_private_messaging">The next generation\nof private messaging</string>
<string name="next_generation_of_private_messaging">The future of messaging</string>
<string name="privacy_redefined">Privacy redefined</string>
<string name="first_platform_without_user_ids">No user identifiers.</string>
<string name="immune_to_spam_and_abuse">Immune to spam</string>
@@ -1040,23 +1040,25 @@
<!-- How SimpleX Works -->
<string name="how_simplex_works">How SimpleX works</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Many people asked: <i>if SimpleX has no user identifiers, how can it deliver messages?</i>]]></string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">To protect privacy, instead of user IDs used by all other platforms, SimpleX has identifiers for message queues, separate for each of your contacts.</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[You control through which server(s) <b>to receive</b> the messages, your contacts the servers you use to message them.]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Only client devices store user profiles, contacts, groups, and messages sent with <b>2-layer end-to-end encryption</b>.]]></string>
<string name="read_more_in_github">Read more in our GitHub repository.</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">To protect your privacy, SimpleX uses separate IDs for each of your contacts.</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Only client devices store user profiles, contacts, groups, and messages.</string>
<string name="all_message_and_files_e2e_encrypted"><![CDATA[All messages and files are sent <b>end-to-end encrypted</b>, with post-quantum security in direct messages.]]></string>
<string name="read_more_in_github_with_link"><![CDATA[Read more in our <font color="#0088ff">GitHub repository</font>.]]></string>
<!-- SetNotificationsMode.kt -->
<string name="use_chat">Use chat</string>
<string name="onboarding_notifications_mode_title">Private notifications</string>
<string name="onboarding_notifications_mode_subtitle">It can be changed later via settings.</string>
<string name="onboarding_notifications_mode_subtitle">How it affects battery</string>
<string name="onboarding_notifications_mode_off">When app is running</string>
<string name="onboarding_notifications_mode_periodic">Periodic</string>
<string name="onboarding_notifications_mode_service">Instant</string>
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>Best for battery</b>. You will receive notifications only when the app is running (NO background service).]]></string>
<string name="onboarding_notifications_mode_off_desc_short">No background service</string>
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Good for battery</b>. App checks messages every 10 minutes. You may miss calls or urgent messages.]]></string>
<string name="onboarding_notifications_mode_periodic_desc_short">Check messages every 10 minutes</string>
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Uses more battery</b>! App always runs in background notifications are shown instantly.]]></string>
<string name="onboarding_notifications_mode_service_desc_short">App always runs in background</string>
<string name="onboarding_notifications_mode_battery">Notifications and battery</string>
<!-- SetupDatabasePassphrase.kt -->
<string name="setup_database_passphrase">Setup database passphrase</string>
@@ -1064,11 +1066,12 @@
<string name="use_random_passphrase">Use random passphrase</string>
<!-- ChooseServerOperators.kt -->
<string name="onboarding_choose_server_operators">Choose operators</string>
<string name="onboarding_choose_server_operators">Server operators</string>
<string name="onboarding_network_operators">Network operators</string>
<string name="onboarding_network_operators_app_will_use_different_operators">When more than one network operator is enabled, the app will use the servers of different operators for each conversation.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">For example, if you receive messages via SimpleX Chat server, the app will use one of Flux servers for private routing.</string>
<string name="onboarding_select_network_operators_to_use">Select network operators to use.</string>
<string name="how_it_helps_privacy">How it helps privacy</string>
<string name="onboarding_network_operators_configure_via_settings">You can configure servers via settings.</string>
<string name="onboarding_network_operators_conditions_will_be_accepted">Conditions will be accepted for enabled operators after 30 days.</string>
<string name="onboarding_network_operators_conditions_you_can_configure">You can configure operators in Network &amp; servers settings.</string>
@@ -982,9 +982,7 @@
<string name="opensource_protocol_and_code_anybody_can_run_servers">Протокол и код с отворен код – всеки може да оперира собствени сървъри.</string>
<string name="people_can_connect_only_via_links_you_share">Хората могат да се свържат с вас само чрез ликовете, които споделяте.</string>
<string name="privacy_redefined">Поверителността преосмислена</string>
<string name="read_more_in_github">Прочетете повече в нашето хранилище в GitHub.</string>
<string name="make_private_connection">Добави поверителна връзка</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Много хора попитаха: <i>ако SimpleX няма потребителски идентификатори, как може да доставя съобщения\?</i>]]></string>
<string name="open_verb">Отвори</string>
<string name="relay_server_if_necessary">Реле сървър се използва само ако е необходимо. Друга страна може да наблюдава вашия IP адрес.</string>
<string name="lock_after">Заключване след</string>
@@ -1220,7 +1218,6 @@
<string name="network_use_onion_hosts_prefer">Когато са налични</string>
<string name="your_profile_is_stored_on_your_device">Вашият профил, контакти и доставени съобщения се съхраняват на вашето устройство.</string>
<string name="you_can_use_markdown_to_format_messages__prompt">Можете да използвате markdown за форматиране на съобщенията:</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Вие контролирате през кой сървър(и) <b>да получавате</b> съобщенията, вашите контакти – сървърите, които използвате, за да им изпращате съобщения.]]></string>
<string name="use_chat">Използвай чата</string>
<string name="update_database">Актуализация</string>
<string name="you_have_to_enter_passphrase_every_time">Трябва да въвеждате парола при всяко стартиране на приложението - тя не се съхранява на устройството.</string>
@@ -667,9 +667,6 @@
<string name="first_platform_without_user_ids">Bez uživatelských identifikátorů</string>
<string name="immune_to_spam_and_abuse">Odolná vůči spamu</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">K ochraně soukromí, místo uživatelských ID užívaných všemi ostatními platformami, SimpleX používá identifikátory pro fronty zpráv, zvlášť pro každý z vašich kontaktů.</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Mnoho lidí se ptá: <i>když SimpleX nemá žádný identifikátor uživatelů, jak může doručovat zprávy\?</i>]]></string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Vy určujete, přes které servery <b>přijímat</b> zprávy, vaše kontakty servery, které používáte k zasílání zpráv.]]></string>
<string name="read_more_in_github">Další informace najdete v našem repozitáři na GitHubu.</string>
<string name="read_more_in_github_with_link"><![CDATA[Další informace najdete v našem <font color="#0088ff">úložišti GitHub</font>.]]></string>
<string name="use_chat">Použijte chat</string>
<string name="onboarding_notifications_mode_subtitle">Lze změnit později v nastavení.</string>
@@ -475,11 +475,8 @@
<string name="how_it_works">Wie es funktioniert</string>
<!-- How SimpleX Works -->
<string name="how_simplex_works">Wie SimpleX funktioniert</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Viele Menschen haben gefragt: <i>Wie kann SimpleX Nachrichten zustellen, wenn es keine Benutzerkennungen gibt?</i>]]></string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Zum Schutz Ihrer Privatsphäre verwendet SimpleX anstelle von Benutzerkennungen, die von allen anderen Plattformen verwendet werden, Kennungen für Nachrichtenwarteschlangen, die für jeden Ihrer Kontakte individuell sind.</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Sie können selbst festlegen, über welche Server Sie Ihre Nachrichten <b>empfangen</b> und an Ihre Kontakte <b>senden</b> wollen.]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Nur die Endgeräte speichern die Benutzerprofile, Kontakte, Gruppen und Nachrichten, welche über eine <b>zweischichtige Ende-zu-Ende-Verschlüsselung</b> gesendet werden.]]></string>
<string name="read_more_in_github">Erfahren Sie in unserem GitHub-Repository mehr dazu.</string>
<string name="read_more_in_github_with_link"><![CDATA[Erfahren Sie in unserem <font color="#0088ff">GitHub-Repository</font> mehr dazu.]]></string>
<!-- MakeConnection -->
<string name="paste_the_link_you_received">Fügen Sie den erhaltenen Link ein</string>
@@ -442,7 +442,7 @@
<string name="ensure_smp_server_address_are_correct_format_and_unique">Asegúrate de que las direcciones del servidor SMP tienen el formato correcto, están separadas por líneas y no están duplicadas.</string>
<string name="icon_descr_instant_notifications">Notificación instantánea</string>
<string name="network_settings_title">Configuración avanzada</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Sólo los dispositivos cliente almacenan perfiles de usuario, contactos, grupos y mensajes enviados con <b>cifrado de extremo a extremo de 2 capas</b> .]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Sólo los dispositivos cliente almacenan perfiles de usuario, contactos, grupos y mensajes.</string>
<string name="onboarding_notifications_mode_subtitle">Puedes cambiar estos ajustes más tarde en Configuración.</string>
<string name="onboarding_notifications_mode_service">Instantánea</string>
<string name="join_group_button">Unirte</string>
@@ -505,7 +505,6 @@
<string name="network_use_onion_hosts_required_desc">Se requieren hosts .onion para la conexión
\nRecuerda: no podrás conectarte a servidores que no tengan dirección .onion.</string>
<string name="immune_to_spam_and_abuse">Inmune al spam</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Muchos se preguntarán: <i>si SimpleX no tiene identificadores de usuario, ¿cómo puede entregar los mensajes\?</i>]]></string>
<string name="incoming_video_call">Videollamada entrante</string>
<string name="snd_group_event_user_left">has salido</string>
<string name="snd_conn_event_switch_queue_phase_completed">has cambiado de servidor</string>
@@ -651,7 +650,6 @@
<string name="callstate_received_confirmation">confirmación recibida…</string>
<string name="onboarding_notifications_mode_periodic">Periódico</string>
<string name="privacy_redefined">Privacidad redefinida</string>
<string name="read_more_in_github">Conoce más en nuestro repositorio GitHub.</string>
<string name="reject">Rechazar</string>
<string name="open_verb">Abrir</string>
<string name="icon_descr_call_pending_sent">Llamada pendiente</string>
@@ -751,7 +749,7 @@
<string name="add_contact_or_create_group">Inciar chat nuevo</string>
<string name="stop_chat_to_export_import_or_delete_chat_database">Para exportar, importar o eliminar la base de datos debes parar SimpleX. Mientra tanto no podrás recibir o enviar mensajes.</string>
<string name="thank_you_for_installing_simplex">Gracias por instalar SimpleX Chat!</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Para proteger tu privacidad, en lugar de los identificadores de usuario que usan el resto de plataformas, SimpleX dispone de identificadores para las colas de mensajes, independientes para cada uno de tus contactos.</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Para proteger tu privacidad, SimpleX dispone de identificadores para las colas de mensajes, independientes para cada uno de tus contactos.</string>
<string name="la_notice_to_protect_your_information_turn_on_simplex_lock_you_will_be_prompted_to_complete_authentication_before_this_feature_is_enabled">Para proteger tu información, activa el Bloqueo SimpleX.
\nSe te pedirá que completes la autenticación antes de activar esta función.</string>
<string name="updating_settings_will_reconnect_client_to_all_servers">Al actualizar la configuración el cliente se reconectará a todos los servidores.</string>
@@ -843,7 +841,6 @@
<string name="you_are_invited_to_group">Has sido invitado al grupo</string>
<string name="v4_3_voice_messages">Mensajes de voz</string>
<string name="v4_3_irreversible_message_deletion_desc">Tus contactos pueden permitir la eliminación completa de mensajes.</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Tú controlas a través de qué servidor(es) <b>recibes</b> los mensajes. Tus contactos controlan a través de qué servidor(es) <b>envías</b> tus mensajes.]]></string>
<string name="voice_messages">Mensajes de voz</string>
<string name="voice_messages_are_prohibited">Los mensajes de voz no están permitidos en este grupo.</string>
<string name="v4_4_verify_connection_security">Comprobar la seguridad de la conexión</string>
@@ -733,8 +733,6 @@
<string name="decentralized">نامتمرکز</string>
<string name="create_your_profile">نمایه خود را ایجاد کنید</string>
<string name="how_simplex_works">SimpleX چگونه کار می‌کند</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[اشخاص زیادی پرسیده‌اند: <i>اگر SimpleX هیچ شناسه کاربری ندارد، چگونه می‌تواند پیام‌ها را تحویل دهد؟</i>]]></string>
<string name="read_more_in_github">مطالعه بیشتر در مخزن GitHub ما.</string>
<string name="read_more_in_github_with_link"><![CDATA[مطالعه بیشتر در <font color="#0088ff">مخزن GitHub</font> ما.]]></string>
<string name="use_chat">استفاده از گپ</string>
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>بهترین گزینه برای باتری</b>. شما اعلان‌ها را فقط وقتی دریافت می‌کنید که برنامه در حال اجراست (بدون سرویس پس‌زمینه).]]></string>
@@ -777,7 +775,6 @@
<string name="audio_device_bluetooth">بلوتوث</string>
<string name="import_database">وارد کردن پایگاه داده</string>
<string name="people_can_connect_only_via_links_you_share">اشخاص فقط از طریق لینک‌هایی که به اشتراک می‌گذارید می‌توانند به شما متصل شوند.</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[شما کنترل می‌کنید پیام‌ها از طریق چه سرورهایی <b>دریافت شوند</b> و از چه سرورهایی به مخاطبان خود پیام می‌فرستید.]]></string>
<string name="call_already_ended">تماس از پیش پایان یافته!</string>
<string name="integrity_msg_bad_hash">هش پیام ناصحیح</string>
<string name="auto_accept_images">پذیرفتن خودکار تصاویر</string>
@@ -657,7 +657,6 @@
<string name="network_option_ping_interval">PING-väli</string>
<string name="users_delete_with_connections">Profiili- ja palvelinyhteydet</string>
<string name="set_group_preferences">Aseta ryhmän asetukset</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Monet ovat kysyneet: <i>jos SimpleX ei sisällä käyttäjätunnuksia, kuinka se voi toimittaa viestejä\?</i>]]></string>
<string name="conn_stats_section_title_servers">PALVELIMET</string>
<string name="save_and_notify_contact">Tallenna ja ilmoita kontaktille</string>
<string name="save_and_notify_contacts">Tallenna ja ilmoita kontakteille</string>
@@ -835,7 +834,6 @@
<string name="read_more_in_github_with_link"><![CDATA[Lue lisää <font color="#0088ff">GitHub-arkistostamme</font>.]]></string>
<string name="onboarding_notifications_mode_periodic">Säännölliset</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Vain asiakaslaitteet tallentavat käyttäjäprofiileja, yhteystietoja, ryhmiä ja viestejä, jotka on lähetetty <b>2-kerroksisella päästä päähän -salauksella</b>.]]></string>
<string name="read_more_in_github">Lue lisää GitHub-tietovarastostamme.</string>
<string name="paste_the_link_you_received">Liitä vastaanotettu linkki</string>
<string name="relay_server_protects_ip">Välityspalvelin suojaa IP-osoitteesi, mutta se voi tarkkailla puhelun kestoa.</string>
<string name="open_simplex_chat_to_accept_call">Avaa SimpleX Chat hyväksyäksesi puhelun</string>
@@ -1051,7 +1049,6 @@
<string name="waiting_for_file">Odottaa tiedostoa</string>
<string name="to_start_a_new_chat_help_header">Aloita uusi keskustelu</string>
<string name="using_simplex_chat_servers">Käyttää SimpleX Chat -palvelimia.</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Sinä päätät, minkä palvelimien kautta viestit <b>vastaanotetaan</b>, kontaktiesi palvelimet, joita käytät viestien lähettämiseen.]]></string>
<string name="your_privacy">Yksityisyytesi</string>
<string name="snd_group_event_member_deleted">poistit %1$s</string>
<string name="chat_preferences_yes">kyllä</string>
@@ -321,7 +321,6 @@
<string name="ensure_ICE_server_address_are_correct_format_and_unique">Assurez-vous que les adresses des serveurs WebRTC ICE sont au bon format et ne sont pas dupliquées, un par ligne.</string>
<string name="network_enable_socks_info">Accéder aux serveurs via un proxy SOCKS sur le port %d \? Le proxy doit être démarré avant d\'activer cette option.</string>
<string name="network_use_onion_hosts">Utiliser les hôtes .onions</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Vous contrôlez par quel·s serveur·s vous pouvez <b>transmettre</b> ainsi que par quel·s serveur·s vous pouvez <b>recevoir</b> les messages de vos contacts.]]></string>
<string name="your_settings">Vos paramètres</string>
<string name="chat_lock">SimpleX Lock</string>
<string name="chat_console">Console du chat</string>
@@ -372,7 +371,6 @@
<string name="callstate_connecting">connexion…</string>
<string name="opensource_protocol_and_code_anybody_can_run_servers">N\'importe qui peut heberger un serveur.</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Pour protéger votre vie privée, au lieu d\'IDs utilisés par toutes les autres plateformes, SimpleX possède des IDs pour les queues de messages, distinctes pour chacun de vos contacts.</string>
<string name="read_more_in_github">Plus d\'informations sur notre GitHub.</string>
<string name="paste_the_link_you_received">Collez le lien que vous avez reçu</string>
<string name="use_chat">Utiliser le chat</string>
<string name="onboarding_notifications_mode_title">Notifications privées</string>
@@ -451,7 +449,6 @@
<string name="make_private_connection">Établir une connexion privée</string>
<string name="how_it_works">Comment ça fonctionne</string>
<string name="how_simplex_works">Comment SimpleX fonctionne</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Beaucoup se demandent : <i>si SimpleX n\'a pas d\'identifiant d\'utilisateur, comment peut-il transmettre des messages \?</i>]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Seuls les appareils clients stockent les profils des utilisateurs, les contacts, les groupes et les messages envoyés avec un <b>chiffrement de bout en bout à deux couches</b>.]]></string>
<string name="read_more_in_github_with_link"><![CDATA[Pour en savoir plus, consultez notre <font color="#0088ff">GitHub repository</font>.]]></string>
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Batterie peu utilisée</b>. L\'app vérifie les messages toutes les 10 minutes. Vous risquez de manquer des appels ou des messages urgents.]]></string>
@@ -814,7 +814,6 @@
<string name="feature_offered_item">ajánlott %s</string>
<string name="button_leave_group">Csoport elhagyása</string>
<string name="unblock_member_desc">Az összes %s által írt üzenet megjelenik!</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Sokan kérdezték: <i>Ha a SimpleX Chatnek nincs felhasználó-azonosítója, hogyan lehet mégis üzeneteket küldeni?</i>]]></string>
<string name="alert_text_skipped_messages_it_can_happen_when">Ez akkor fordulhat elő, ha:\n1. Az üzenetek 2 nap után, vagy a kiszolgálón 30 nap után lejártak.\n2. Az üzenet visszafejtése sikertelen volt, mert Ön, vagy az ismerőse régebbi adatbázis biztonsági mentést használt.\n3. A kapcsolat sérült.</string>
<string name="group_member_role_observer">megfigyelő</string>
<string name="description_via_group_link_incognito">inkognitó a csoporthivatkozáson keresztül</string>
@@ -1391,7 +1390,6 @@
<string name="to_reveal_profile_enter_password">Rejtett profilja felfedéséhez írja be a teljes jelszavát a keresőmezőbe a „Csevegési profilok” menüben.</string>
<string name="upgrade_and_open_chat">Fejlesztés és a csevegés megnyitása</string>
<string name="you_need_to_allow_to_send_voice">Engedélyeznie kell a hangüzenetek küldését az ismerőse számára, hogy hangüzeneteket küldhessenek egymásnak.</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Beállíthatja, hogy mely kiszolgáló(ko)n keresztül <b>fogadja</b> az üzeneteket, ismerősöket a kiszolgálók, amelyeket az üzenetküldéshez használ.]]></string>
<string name="connect_plan_you_are_already_in_group_vName"><![CDATA[Ön már a(z) <b>%1$s</b> nevű csoport tagja.]]></string>
<string name="snd_conn_event_switch_queue_phase_completed">cím megváltoztatva</string>
<string name="v4_3_irreversible_message_deletion_desc">Az ismerősei engedélyezhetik a teljes üzenet törlést.</string>
@@ -1463,7 +1461,6 @@
<string name="send_receipts_disabled_alert_msg">Ennek a csoportnak több mint %1$d tagja van, a kézbesítési jelentések nem kerülnek elküldésre.</string>
<string name="v5_2_message_delivery_receipts_descr">A második jelölés, amit kihagytunk! ✅</string>
<string name="relay_server_protects_ip">A közvetítő-kiszolgáló megvédi az IP-címet, de megfigyelheti a hívás időtartamát.</string>
<string name="read_more_in_github">További információ a GitHub tárolónkban.</string>
<string name="v4_5_message_draft_descr">Az utolsó üzenet tervezetének megőrzése a mellékletekkel együtt.</string>
<string name="saved_ICE_servers_will_be_removed">A mentett WebRTC ICE-kiszolgálók eltávolításra kerülnek.</string>
<string name="receipts_groups_override_enabled">A kézbesítési jelentések engedélyezve vannak %d csoportban</string>
@@ -618,7 +618,6 @@
<string name="decentralized">Terdesentralisasi</string>
<string name="error_initializing_web_view_wrong_arch">Kesalahan saat menginisialisasi WebView. Pastikan Anda telah menginstal WebView dan arsitektur yang didukung adalah arm64.\nKesalahan: %s</string>
<string name="use_chat">Gunakan obrolan</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Banyak orang bertanya: <i>Jika SimpleX tidak memiliki pengenal pengguna, bagaimana ia dapat menyampaikan pesan?</i>]]></string>
<string name="how_it_works">Bagaimana caranya</string>
<string name="how_simplex_works">Cara kerja SimpleX</string>
<string name="onboarding_notifications_mode_periodic">Berkala</string>
@@ -1093,7 +1092,6 @@
<string name="v5_6_app_data_migration_descr">Pindah ke perangkat lain melalui kode QR.</string>
<string name="v6_0_delete_many_messages_descr">Hapus hingga 20 pesan sekaligus.</string>
<string name="app_check_for_updates">Periksa pembaruan</string>
<string name="read_more_in_github">Baca selengkapnya di repositori GitHub kami.</string>
<string name="app_check_for_updates_button_download">Unduh %s (%s)</string>
<string name="core_simplexmq_version">simplexmq: v%s (%2s)</string>
<string name="network_smp_proxy_mode_unknown_description">Gunakan routing pribadi dengan server yang tak dikenal.</string>
@@ -650,7 +650,6 @@
<string name="onboarding_notifications_mode_service">Istantaneo</string>
<string name="onboarding_notifications_mode_subtitle">Può essere cambiato in seguito via impostazioni.</string>
<string name="make_private_connection">Crea una connessione privata</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Molte persone hanno chiesto: <i>se SimpleX non ha identificatori utente, come può recapitare i messaggi\?</i>]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Solo i dispositivi client memorizzano i profili utente, i contatti, i gruppi e i messaggi inviati con <b>crittografia end-to-end a 2 livelli</b>.]]></string>
<string name="opensource_protocol_and_code_anybody_can_run_servers">Chiunque può installare i server.</string>
<string name="paste_the_link_you_received">Incolla il link che hai ricevuto</string>
@@ -659,7 +658,6 @@
<string name="privacy_redefined">Privacy ridefinita</string>
<string name="onboarding_notifications_mode_title">Notifiche private</string>
<string name="read_more_in_github_with_link"><![CDATA[Maggiori informazioni nel nostro <font color="#0088ff">repository GitHub</font>.]]></string>
<string name="read_more_in_github">Maggiori informazioni nel nostro repository GitHub.</string>
<string name="reject">Rifiuta</string>
<string name="first_platform_without_user_ids">Nessun identificatore utente.</string>
<string name="next_generation_of_private_messaging">La nuova generazione
@@ -670,7 +668,6 @@
<string name="video_call_no_encryption">videochiamata (non crittografata e2e)</string>
<string name="onboarding_notifications_mode_off">Quando l\'app è in esecuzione</string>
<string name="contact_wants_to_connect_via_call">%1$s vuole connettersi con te via</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Tu decidi attraverso quale/i server <b>ricevere</b> i messaggi, i tuoi contatti quali server usi per inviare loro i messaggi.]]></string>
<string name="alert_text_skipped_messages_it_can_happen_when">Può accadere quando:
\n1. I messaggi sono scaduti sul client mittente dopo 2 giorni o sul server dopo 30 giorni.
\n2. La decifrazione del messaggio è fallita, perché tu o il tuo contatto avete usato un backup del database vecchio.
@@ -587,7 +587,6 @@
<string name="learn_more">למדו עוד</string>
<string name="markdown_help">עזרה במרקדאון</string>
<string name="email_invite_subject">בואו נדבר ב־Simplex Chat</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[אנשים רבים שאלו: <i>אם ל־SimpleX אין מזהי משתמש, איך ניתן להעביר הודעות\?</i>]]></string>
<string name="keychain_error">שגיאת Keychain</string>
<string name="join_group_incognito_button">הצטרף עם זהות נסתרת</string>
<string name="leave_group_question">לעזוב קבוצה\?</string>
@@ -792,7 +791,6 @@
<string name="reject_contact_button">דחיה</string>
<string name="read_more_in_user_guide_with_link"><![CDATA[קראו עוד ב<font color="#0088ff">מדריך למשתמש</font>.]]></string>
<string name="rate_the_app">דרגו את האפליקציה</string>
<string name="read_more_in_github">קראו עוד ב־GitHub repository שלנו.</string>
<string name="read_more_in_github_with_link"><![CDATA[קראו עוד ב־<font color="#0088ff">GitHub repository</font> שלנו.]]></string>
<string name="relay_server_if_necessary">יבוצע שימוש בשרת ממסר רק במידת הצורך. גורם אחר יכול לצפות בכתובת ה־IP שלך.</string>
<string name="relay_server_protects_ip">שרת ממסר מגן על כתובת ה־IP שלך, אך הוא יכול לראות את משך השיחה.</string>
@@ -1133,7 +1131,6 @@
<string name="you_need_to_allow_to_send_voice">עליכם לאפשר לאיש הקשר שלכם לשלוח הודעות קוליות כדי שתוכלו לשלוח אותן.</string>
<string name="gallery_video_button">סרטון</string>
<string name="you_can_connect_to_simplex_chat_founder"><![CDATA[באפשרותך <font color="#0088ff">להתחבר למפתחי SimpleX Chat כדי לשאול כל שאלה ולקבל עדכונים</font>.]]></string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[אתם קובעים דרך אילו שרתים <b>לקבל</b> את ההודעות, אנשי הקשר שלכם – השרתים דרכם אתם שולחים להם הודעות.]]></string>
<string name="webrtc_ice_servers">שרתי WebRTC ICE</string>
<string name="integrity_msg_skipped">%1$d הודעות שדולגו</string>
<string name="custom_time_unit_weeks">שבועות</string>
@@ -154,7 +154,6 @@
<string name="icon_descr_instant_notifications">即時通知</string>
<string name="ensure_smp_server_address_are_correct_format_and_unique">SMPサーバのアドレスを正しく1行ずつに分けて、重複しないように、形式もご確認ください。</string>
<string name="ensure_ICE_server_address_are_correct_format_and_unique">WebRTC ICEサーバのアドレスを正しく1行ずつに分けて、重複しないように、形式もご確認ください。</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[よく聞かれるのは、 <i>if SimpleX にユーザIDがなければ、メッセージをどうやって届けるのでしょうかと。</i>]]></string>
<string name="how_simplex_works">SimpleX の仕様</string>
<string name="icon_descr_call_progress">通話中</string>
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>電池消費がより高い</b>!非アクティブ時でもバックグラウンドのサービスが常に稼働します(着信してすぐに通知が出ます)。]]></string>
@@ -328,7 +327,6 @@
<string name="make_private_connection">プライベートな接続をする</string>
<string name="onboarding_notifications_mode_title">プライベートな通知</string>
<string name="read_more_in_github_with_link"><![CDATA[<font color="#0088ff">GitHubリポジトリ</font>で詳細をご確認ください。]]></string>
<string name="read_more_in_github">GitHubリポジトリで詳細をご確認ください。</string>
<string name="encrypted_video_call">エンドツーエンド暗号化済みビデオ通話</string>
<string name="no_call_on_lock_screen">無効にする</string>
<string name="status_no_e2e_encryption">エンドツーエンド暗号化がありません</string>
@@ -743,7 +741,6 @@
<string name="strikethrough_text">取り消し線</string>
<string name="callstate_starting">接続中…</string>
<string name="next_generation_of_private_messaging">次世代のプライベートメッセンジャー</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[あなたがメッセージの<b>受信</b>サーバを決められます。あなたの連絡先が同じく、自分に対する受信サーバを決められます。]]></string>
<string name="icon_descr_video_call">ビデオ通話</string>
<string name="onboarding_notifications_mode_off">アプリが稼働中に</string>
<string name="webrtc_ice_servers">WebRTC ICEサーバ</string>
@@ -665,7 +665,6 @@
<string name="network_option_enable_tcp_keep_alive">TCP 연결 유지 활성화</string>
<string name="new_in_version">%s의 새로운 기능</string>
<string name="markdown_help">마크다운 도움말</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[많은 사람들의 질문 : <i>SimpleX에는 사용자 식별자가 없는데도 어떻게 메시지를 전달할 수 있어요\?</i>]]></string>
<string name="leave_group_question">그룹에서 나갈까요\?</string>
<string name="mtr_error_no_down_migration">앱 버전보다 최신 버전의 데이터베이스를 사용하고 있지만 데이터베이스를 다운그레이드할 수 없습니다: %s</string>
<string name="member_will_be_removed_from_group_cannot_be_undone">멤버가 그룹에서 제거됩니다. 이 결정은 되돌릴 수 없습니다!</string>
@@ -688,7 +687,6 @@
<string name="reject_contact_button">거절</string>
<string name="password_to_show">비밀번호 표시</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[사용자 디바이스에만 <b>2계층 종단 간 암호화</b> 로 전송된 사용자 프로필, 연락처, 그룹 및 메시지를 저장되어요.]]></string>
<string name="read_more_in_github">자세한 내용은 GitHub에서 확인해 주세요.</string>
<string name="privacy_and_security">개인 정보 보호 및 보안</string>
<string name="notifications_will_be_hidden">알림은 앱이 중지되기 전까지만 전달될 거예요!</string>
<string name="only_you_can_send_disappearing">당신만 사라지는 메시지를 보낼 수 있습니다.</string>
@@ -348,7 +348,6 @@
<string name="whats_new">Kas naujo</string>
<string name="save_and_notify_group_members">Įrašyti ir pranešti grupės nariams</string>
<string name="callstate_received_confirmation">gautas patvirtinimas…</string>
<string name="read_more_in_github">Išsamiau skaitykite mūsų „GitHub“ saugykloje</string>
<string name="icon_descr_call_missed">Praleistas skambutis</string>
<string name="settings_section_title_chats">POKALBIAI</string>
<string name="settings_section_title_themes">APIPAVIDALINIMAI</string>
@@ -1531,7 +1530,6 @@
<string name="migrate_from_device_verify_database_passphrase">Patvirtinti duomenų bazės slaptafrazę</string>
<string name="migrate_from_device_verify_passphrase">Patvirtinti slaptafrazę</string>
<string name="mute_chat">Nutildyti</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Jūs kontroliuojate per kurį serverį (-us) <b>gauti</b> žinutes, jūsų kontaktai - serverius kuriuos naudojate siųsti jiems žinutes.]]></string>
<string name="relay_server_protects_ip">Tarpinis serveris apsaugo jūsų IP adresą, bet jis gali stebėti skambučio trukmę.</string>
<string name="status_no_e2e_encryption">nėra visapusio šifravimo</string>
<string name="new_database_archive">Naujas duomenų bazės archyvas</string>
@@ -1600,7 +1598,6 @@
<string name="snd_conn_event_switch_queue_phase_completed_for_member">pakeitėte adresą %s</string>
<string name="icon_descr_expand_role">Išplėsti rolių pasirinkimą</string>
<string name="connect_plan_you_are_already_joining_the_group_vName"><![CDATA[Jau jungiatės prie grupės <b>%1$s</b>.]]></string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Daug žmonių klausė: <i>jei SimpleX neturi naudotojų identifikatorių, kaip jis gali pristatyti žinutes?</i>]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Tik klientų įrenginiai saugo naudotojų profilius, kontaktus, grupes ir išsiųstas žinutes su <b>dviejų sluoksnių visapusiu šifravimu</b>.]]></string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Kad apsaugoti privatumą, vietoj naudotojų ID naudojamų visose kitose platformose, SimpleX turi identifikatorius žinučių eilėms, skirtingus kiekvienam jūsų kontaktui.</string>
<string name="privacy_message_draft">Žinutės juodraštis</string>
@@ -426,7 +426,6 @@
<string name="how_it_works">Hoe het werkt</string>
<string name="callstatus_missed">gemiste oproep</string>
<string name="how_simplex_works">Hoe SimpleX werkt</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Veel mensen vroegen: <i>als SimpleX geen gebruikers-ID\'s heeft, hoe kan het dan berichten bezorgen\?</i>]]></string>
<string name="incoming_audio_call">Inkomende audio oproep</string>
<string name="incoming_video_call">Inkomend video gesprek</string>
<string name="ignore">Negeren</string>
@@ -612,7 +611,6 @@
<string name="you_control_your_chat">Jij beheert je gesprek!</string>
<string name="your_profile_is_stored_on_your_device">Uw profiel, contacten en afgeleverde berichten worden op uw apparaat opgeslagen.</string>
<string name="callstate_starting">beginnen…</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[U bepaalt via welke server(s) je de berichten <b>ontvangt</b>, uw contacten de servers die u gebruikt om ze berichten te sturen.]]></string>
<string name="icon_descr_video_on">Video aan</string>
<string name="delete_chat_profile_action_cannot_be_undone_warning">Deze actie kan niet ongedaan worden gemaakt. Uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.</string>
<string name="messages_section_description">Deze instelling is van toepassing op berichten in uw huidige chatprofiel</string>
@@ -931,7 +929,6 @@
<string name="description_you_shared_one_time_link_incognito">je hebt een eenmalige link incognito gedeeld</string>
<string name="chat_help_tap_button">Tik op de knop</string>
<string name="read_more_in_github_with_link"><![CDATA[Lees meer in onze <font color="#0088ff">GitHub repository</font>.]]></string>
<string name="read_more_in_github">Lees meer in onze GitHub repository.</string>
<string name="integrity_msg_skipped">%1$d bericht(en) overgeslagen</string>
<string name="moderated_description">gemodereerd</string>
<string name="moderated_item_description">gemodereerd door %s</string>
@@ -432,15 +432,12 @@
<string name="onboarding_notifications_mode_service">Natychmiastowy</string>
<string name="onboarding_notifications_mode_subtitle">Można to później zmienić w ustawieniach.</string>
<string name="make_private_connection">Nawiąż prywatne połączenie</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Wiele osób pytało: <i>jeśli SimpleX nie ma identyfikatora użytkownika, jak może dostarczać wiadomości\?</i>]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Tylko urządzenia klienckie przechowują profile użytkowników, kontakty, grupy i wiadomości wysyłane za pomocą <b>dwuwarstwowego szyfrowania end-to-end</b>.]]></string>
<string name="onboarding_notifications_mode_periodic">Okresowo</string>
<string name="onboarding_notifications_mode_title">Prywatne powiadomienia</string>
<string name="read_more_in_github_with_link"><![CDATA[Przeczytaj więcej na naszym <font color="#0088ff">repozytorium GitHub</font>.]]></string>
<string name="read_more_in_github">Przeczytaj więcej na naszym repozytorium GitHub.</string>
<string name="use_chat">Użyj czatu</string>
<string name="onboarding_notifications_mode_off">Gdy aplikacja jest uruchomiona</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Kontrolujesz przez który serwer(y) <b>odbierać</b> wiadomości, Twoje kontakty - serwery, których używasz do wysyłania im wiadomości.]]></string>
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Zużywa więcej baterii</b>! Aplikacja zawsze działa w tle - powiadomienia są wyświetlane natychmiastowo.]]></string>
<string name="incoming_audio_call">Przychodzące połączenie audio</string>
<string name="incoming_video_call">Przychodzące połączenie wideo</string>
@@ -469,7 +469,6 @@
<string name="app_version_code">Compilação do aplicativo: %s</string>
<string name="save_and_notify_contact">Salvar e notificar contato</string>
<string name="callstate_received_answer">resposta recebida…</string>
<string name="read_more_in_github">Leia mais no nosso repositório do GitHub.</string>
<string name="paste_the_link_you_received">Cole o link que você recebeu</string>
<string name="onboarding_notifications_mode_off">Quando o aplicativo está em execução</string>
<string name="onboarding_notifications_mode_periodic">Periódico</string>
@@ -587,7 +586,6 @@
<string name="markdown_in_messages">Markdown em mensagens</string>
<string name="smp_servers">Servidores SMP</string>
<string name="smp_servers_preset_address">Endereço do servidor pré-definido</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Muitos perguntaram:<i> se SimpleX não tem identificadores de usuários, como ele pode mandar mensagens\?</i>]]></string>
<string name="reject">Rejeitar</string>
<string name="integrity_msg_skipped">%1$d mensagem(s) ignorada(s)</string>
<string name="protect_app_screen">Proteger a tela do aplicativo</string>
@@ -889,7 +887,7 @@
<string name="you_are_observer">você é um observador</string>
<string name="voice_message_with_duration">Mensagem de voz (%1$s)</string>
<string name="share_link">Compartilhar link</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Para proteger a privacidade, em vez dos IDs de usuário usados por todas as outras plataformas, SimpleX tem identificadores para filas de mensagens, separados para cada um de seus contatos.</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Para proteger a privacidade, SimpleX usa identificadores separados para cada um de seus contatos.</string>
<string name="icon_descr_video_call">chamada de vídeo</string>
<string name="show_call_on_lock_screen">Mostrar</string>
<string name="webrtc_ice_servers">Servidores ICE WebRTC</string>
@@ -1010,11 +1008,10 @@
<string name="settings_section_title_support">APOIE SIMPLEX CHAT</string>
<string name="enable_automatic_deletion_message">Esta ação não pode ser desfeita - as mensagens enviadas e recebidas antes do selecionado serão excluídas. Pode levar vários minutos.</string>
<string name="confirm_database_upgrades">Confirme as atualizações do banco de dados</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Somente o cliente dos dispositivos armazenam perfis de usuários, contatos, grupos e mensagens enviadas com <b>criptografia de ponta a ponta em duas camadas</b>.]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Somente o cliente dos dispositivos armazenam perfis de usuários, contatos, grupos e mensagens.</string>
<string name="thank_you_for_installing_simplex">Obrigado por instalar o SimpleX Chat!</string>
<string name="the_messaging_and_app_platform_protecting_your_privacy_and_security">A plataforma de mensagens que protege sua privacidade e segurança.</string>
<string name="invite_prohibited_description">Você está tentando convidar um contato com quem compartilhou um perfil anônimo para o grupo no qual está usando seu perfil principal</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Você controla por meio de qual(is) servidor(es) <b>receber</b> as mensagens, seus contatos controlam os servidores que você usa para enviar mensagens.]]></string>
<string name="smp_server_test_secure_queue">Fila segura</string>
<string name="icon_descr_profile_image_placeholder">imagem de perfil temporária</string>
<string name="error_loading_smp_servers">Erro ao carregar servidores SMP</string>
@@ -635,7 +635,7 @@
<string name="to_verify_compare">Para verificar a encriptação de ponta a ponta com o seu contato, compare (ou leia) o código nos seus dispositivos.</string>
<string name="scan_code_from_contacts_app">Ler o código de segurança a partir da aplicação do seu contacto.</string>
<string name="smp_servers_scan_qr">Ler o código QR do servidor</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Apenas dispositivos cliente armazenam perfis de utilizador, contatos, grupos e mensagens enviadas com <b>encriptação de ponta a ponta de 2 camadas</b>.]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Apenas dispositivos pessoais armazenam perfis de utilizador, contatos, grupos e mensagens.</string>
<string name="status_contact_has_e2e_encryption">o contacto tem encriptação ponta a ponta</string>
<string name="status_no_e2e_encryption">sem encriptação ponta a ponta</string>
<string name="group_member_status_creator">criador</string>
@@ -475,11 +475,8 @@
<string name="how_it_works">Как это работает</string>
<!-- How SimpleX Works -->
<string name="how_simplex_works">Как SimpleX работает</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Много пользователей спросили: <i>как SimpleX доставляет сообщения без идентификаторов пользователей?</i>]]></string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Чтобы защитить Вашу конфиденциальность, вместо ID пользователей, которые есть в других платформах, SimpleX использует ID для очередей сообщений, разные для каждого контакта.</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Вы определяете через какие серверы Вы <b>получаете сообщения</b>, Ваши контакты - серверы, которые Вы используете для отправки.]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Только пользовательские устройства хранят контакты, группы и сообщения, которые отправляются <b>с двухуровневым end-to-end шифрованием</b>.]]></string>
<string name="read_more_in_github">Узнайте больше из нашего GitHub репозитория.</string>
<string name="read_more_in_github_with_link"><![CDATA[Узнайте больше из нашего <font color="#0088ff">GitHub репозитория</font>.]]></string>
<!-- SetNotificationsMode.kt -->
<string name="use_chat">Использовать чат</string>
@@ -746,7 +746,6 @@
<string name="message_delivery_error_desc">เป็นไปได้มากว่าผู้ติดต่อนี้ได้ลบการเชื่อมต่อกับคุณ</string>
<string name="message_delivery_error_title">ข้อผิดพลาดในการส่งข้อความ</string>
<string name="ensure_smp_server_address_are_correct_format_and_unique">ตรวจสอบให้แน่ใจว่าที่อยู่เซิร์ฟเวอร์ SMP อยู่ในรูปแบบที่ถูกต้อง แยกบรรทัดและไม่ซ้ำกัน</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[หลายคนถามว่า: <i>ถ้า SimpleX ไม่มีตัวระบุผู้ใช้ จะส่งข้อความได้อย่างไร\?</i>]]></string>
<string name="network_use_onion_hosts_prefer_desc">โฮสต์หัวหอมจะถูกใช้เมื่อมี</string>
<string name="only_your_contact_can_send_voice">ผู้ติดต่อของคุณเท่านั้นที่สามารถส่งข้อความเสียงได้</string>
<string name="simplex_link_mode_browser_warning">การเปิดลิงก์ในเบราว์เซอร์อาจลดความเป็นส่วนตัวและความปลอดภัยของการเชื่อมต่อ ลิงก์ SimpleX ที่ไม่น่าเชื่อถือจะเป็นสีแดง</string>
@@ -768,7 +767,6 @@
<string name="callstate_received_confirmation">ได้รับการยืนยัน…</string>
<string name="privacy_redefined">นิยามความเป็นส่วนตัวใหม่</string>
<string name="read_more_in_github_with_link"><![CDATA[อ่านเพิ่มเติมใน <font color="#0088ff"> GitHub repository </font> ของเรา]]></string>
<string name="read_more_in_github">อ่านเพิ่มเติมใน GitHub repository ของเรา</string>
<string name="onboarding_notifications_mode_title">การแจ้งเตือนส่วนตัว</string>
<string name="alert_text_fragment_please_report_to_developers">โปรดรายงานไปยังผู้พัฒนาแอป</string>
<string name="privacy_and_security">ความเป็นส่วนตัวและความปลอดภัย</string>
@@ -1149,7 +1147,6 @@
<string name="your_profile_is_stored_on_your_device">โปรไฟล์ รายชื่อผู้ติดต่อ และข้อความที่ส่งของคุณจะถูกจัดเก็บไว้ในอุปกรณ์ของคุณ</string>
<string name="you_can_use_markdown_to_format_messages__prompt">คุณสามารถใช้มาร์กดาวน์เพื่อจัดรูปแบบข้อความ:</string>
<string name="callstate_waiting_for_answer">รอคำตอบ…</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[คุณควบคุมผ่านเซิร์ฟเวอร์ที่จะ<b>รับ</b>ข้อความและผู้ติดต่อของคุณ – เซิร์ฟเวอร์ที่คุณใช้เพื่อส่งข้อความถึงพวกเขา]]></string>
<string name="use_chat">ใช้แชท</string>
<string name="icon_descr_video_call">การสนทนาทางวิดีโอ</string>
<string name="your_calls">การโทรของคุณ</string>
@@ -851,7 +851,6 @@
<string name="your_ICE_servers">ICE sunucularınız</string>
<string name="how_to">Nasıl</string>
<string name="your_current_profile">Mevcut profiliniz</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Mesajların hangi sunucu(lar)dan <b>alınacağını</b> siz kontrol edersiniz, kişileriniz - onlara mesaj göndermek için kullandığınız sunucular.]]></string>
<string name="video_call_no_encryption">video arama (uçtan uca şifreli değil)</string>
<string name="your_ice_servers">ICE sunucularınız</string>
<string name="icon_descr_video_off">Video kapalı</string>
@@ -985,7 +984,6 @@
<string name="to_start_a_new_chat_help_header">Yeni bir sohbet başlatmak için</string>
<string name="people_can_connect_only_via_links_you_share">Kimin bağlanabileceğine siz karar verirsiniz.</string>
<string name="privacy_redefined">Gizlilik yeniden tanımlanıyor</string>
<string name="read_more_in_github">GitHub repomuzda daha fazlasını okuyun.</string>
<string name="onboarding_notifications_mode_periodic">Periyodik</string>
<string name="onboarding_notifications_mode_title">Gizli bildirimler</string>
<string name="paste_the_link_you_received">Aldığın bağlantıyı yapıştır</string>
@@ -1462,7 +1460,6 @@
<string name="alert_text_msg_bad_id">Bir sonraki mesajın kimliği yanlış (bir öncekinden az veya aynı).
\nBazı hatalar nedeniyle veya bağlantı tehlikeye girdiğinde meydana gelebilir.</string>
<string name="notification_preview_somebody">Kişi gizlendi:</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Bir sürü kişi sordu: <i> eğer SimpleXin hiç kullanıcı tanımlayıcısı yok, nasıl mesajları gönderiyor? </i>]]></string>
<string name="alert_text_skipped_messages_it_can_happen_when">Şu durumlarda gerçekleşebilir:
\n1. Mesajların süresi, gönderen istemcide 2 gün sonra veya sunucuda 30 gün sonra sona erdi.
\n2. Siz veya kişiniz eski veritabanı yedeğini kullandığınız için mesajın şifresini çözme işlemi başarısız oldu.
@@ -410,7 +410,6 @@
<string name="privacy_redefined">Приватність перевизначена</string>
<string name="people_can_connect_only_via_links_you_share">Ви вирішуєте, хто може під\'єднатися.</string>
<string name="how_simplex_works">Як працює SimpleX</string>
<string name="read_more_in_github">Докладніше читайте в нашому репозиторії на GitHub.</string>
<string name="encrypted_audio_call">зашифрований e2e аудіовиклик</string>
<string name="open_simplex_chat_to_accept_call">Відкрийте SimpleX Chat для прийняття виклику</string>
<string name="status_e2e_encrypted">e2e зашифровано</string>
@@ -651,8 +650,6 @@
<string name="you_can_use_markdown_to_format_messages__prompt">Ви можете використовувати markdown для форматування повідомлень:</string>
<string name="create_your_profile">Створіть свій профіль</string>
<string name="make_private_connection">Створіть приватне підключення</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Багато людей питають: <i>як в SimpleX можливо доставляти повідомлення, якщо він не має ідентифікаторів користувачів?</i>]]></string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Ви контролюєте, через які сервери <b>отримувати</b> повідомлення, ваші контакти – сервери, які ви використовуєте для надсилання повідомлень їм.]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Тільки пристрої клієнта зберігають профілі користувачів, контакти, групи та повідомлення, відправлені за допомогою <b>шифрування на двох рівнях</b>.]]></string>
<string name="onboarding_notifications_mode_title">Приватні сповіщення</string>
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Споживає більше акумулятора</b>! Додаток завжди працює у фоновому режимі – сповіщення відображаються миттєво.]]></string>
@@ -1020,7 +1020,6 @@
<string name="make_private_connection">Tạo kết nối riêng tư</string>
<string name="make_profile_private">Tạo hồ sơ riêng tư!</string>
<string name="ensure_ICE_server_address_are_correct_format_and_unique">Đảm bảo địa chỉ máy chủ WebRTC ICE ở đúng định dạng, dòng được phân tách và không bị trùng lặp.</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[Nhiều người hỏi rằng: <i>nếu SimpleX không có thông tin định danh người dùng, thì làm thế nào mà nó có thể chuyển tin nhắn đi được?</i>]]></string>
<string name="alert_text_fragment_encryption_out_of_sync_old_database">Nó có thể xảy ra khi bạn hoặc liên hệ của bạn sử dụng bản sao lưu cơ sở dữ liệu cũ.</string>
<string name="lock_mode">Chế độ khóa</string>
<string name="v4_5_italian_interface">Giao diện tiếng Ý</string>
@@ -628,7 +628,6 @@
<string name="ttl_sec">%d 秒</string>
<string name="how_simplex_works">SimpleX 是如何工作的</string>
<string name="ensure_ICE_server_address_are_correct_format_and_unique">确保 WebRTC ICE 服务器地址格式正确、每行分开且不重复。</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[许多人问:<i>如果SimpleX没有用户标识符,它是怎样传递信息的?</i>]]></string>
<string name="ensure_smp_server_address_are_correct_format_and_unique">确保 SMP 服务器地址格式正确、每行分开且不重复。</string>
<string name="markdown_help">Markdown 帮助</string>
<string name="mark_code_verified">标记为已验证</string>
@@ -694,7 +693,6 @@
<string name="network_use_onion_hosts_required">必须</string>
<string name="save_and_notify_contact">保存并通知联系人</string>
<string name="save_and_notify_contacts">保存并通知联系人</string>
<string name="read_more_in_github">在我们的 GitHub 仓库中阅读更多内容。</string>
<string name="reject">拒绝</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">为了保护隐私,而不是所有其他平台使用的用户 ID,SimpleX 具有消息队列的标识符,每个联系人都是分开的。</string>
<string name="network_option_tcp_connection_timeout">TCP 连接超时</string>
@@ -865,7 +863,6 @@
<string name="icon_descr_simplex_team">SimpleX 团队</string>
<string name="group_info_section_title_num_members">%1$s 成员</string>
<string name="chat_preferences_yes"></string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[您可以控制通过哪些服务器<b>接收</b>消息,您的联系人 - 您用来向他们发送消息的服务器。]]></string>
<string name="you_will_be_connected_when_group_host_device_is_online">您将在组主设备上线时连接到该群组,请稍等或稍后再检查!</string>
<string name="auth_you_will_be_required_to_authenticate_when_you_start_or_resume">当您启动应用或在应用程序驻留后台超过30 秒后,您将需要进行身份验证。</string>
<string name="you_can_connect_to_simplex_chat_founder"><![CDATA[您可以 <font color="#0088ff"> 连接到 SimpleX Chat 开发者提出任何问题并接收更新 </font>。]]></string>
@@ -554,7 +554,6 @@
<string name="description_via_group_link_incognito">透過群組連結使用匿名聊天模式</string>
<string name="description_via_contact_address_link_incognito">一個使用了匿名聊天模式的人透過連結加入了群組</string>
<string name="description_via_one_time_link_incognito">透過使用一次性連結匿名聊天模式連接</string>
<string name="many_people_asked_how_can_it_deliver"><![CDATA[有很多人問:<i>如果 SimpleX 沒有任何的用戶標識符,它如何傳送訊息?</i>]]></string>
<string name="onboarding_notifications_mode_service">即時</string>
<string name="onboarding_notifications_mode_periodic">定期的</string>
<string name="no_call_on_lock_screen">關閉</string>
@@ -787,7 +786,6 @@
<string name="ttl_s">%ds</string>
<string name="onboarding_notifications_mode_title">私人通知</string>
<string name="read_more_in_github_with_link"><![CDATA[可在 <font color="#0088ff">GitHub</font>內查看更多。]]></string>
<string name="read_more_in_github">於 GitHub 儲存庫內查看更多。</string>
<string name="incoming_video_call">視訊通話來電</string>
<string name="icon_descr_hang_up">掛斷電話來電</string>
<string name="call_connection_peer_to_peer">點對點</string>
@@ -874,7 +872,6 @@
<string name="update_network_session_mode_question">更新傳輸隔離模式?</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">為了保護隱私,而不像是其他平台般需要提取和存儲用戶的 IDs 資料, SimpleX 平台有自家佇列的標識符,這對於你的每個聯絡人也是獨一無二的。</string>
<string name="onboarding_notifications_mode_off">當應用程式是運行中</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[你可以控制通過哪一個伺服器 <b>來接收</b> 你的聯絡人訊息 – 這些伺服器用來接收他們傳送給你的訊息。]]></string>
<string name="allow_accepting_calls_from_lock_screen">透過設定啟用於上鎖畫面顯示來電通知。</string>
<string name="delete_chat_profile_action_cannot_be_undone_warning">這操作不能還原 - 你目前的個人檔案,聯絡人,訊息和檔案將不可逆地遺失。</string>
<string name="you_must_use_the_most_recent_version_of_database">你必須在裝置上使用最新版本的對話數據庫,否則你可能會停止接收某些聯絡人的訊息。</string>
@@ -20,6 +20,7 @@ import androidx.compose.ui.unit.dp
import chat.simplex.common.model.ChatController.appPrefs
import chat.simplex.common.ui.theme.DEFAULT_PADDING
import chat.simplex.common.views.helpers.*
import chat.simplex.common.views.onboarding.OnboardingStage
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.filter
import kotlin.math.*
@@ -206,7 +207,7 @@ actual fun ColumnWithScrollBar(
}
val modifier = if (fillMaxSize) Modifier.fillMaxSize().then(modifier) else modifier
Box(Modifier.nestedScroll(connection)) {
val oneHandUI = remember { appPrefs.oneHandUI.state }
val oneHandUI = remember { derivedStateOf { if (appPrefs.onboardingStage.state.value == OnboardingStage.OnboardingComplete) appPrefs.oneHandUI.state.value else false } }
val padding = if (oneHandUI.value) PaddingValues(bottom = AppBarHeight * fontSizeSqrtMultiplier) else PaddingValues(top = AppBarHeight * fontSizeSqrtMultiplier)
Column(
if (maxIntrinsicSize) {