From c5c1db98adad2a34dfb4101c58586cb4bb5cd9d4 Mon Sep 17 00:00:00 2001 From: benya Date: Wed, 11 Mar 2026 06:00:54 +0300 Subject: [PATCH] Localize chat member action dialogs and chat info labels (EN/RU) --- .../messenger/ui/chat/ChatScreen.kt | 21 ++++++++++++------- .../app/src/main/res/values-ru/strings.xml | 8 +++++++ android/app/src/main/res/values/strings.xml | 8 +++++++ 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/android/app/src/main/java/ru/daemonlord/messenger/ui/chat/ChatScreen.kt b/android/app/src/main/java/ru/daemonlord/messenger/ui/chat/ChatScreen.kt index 742f325..929cd7f 100644 --- a/android/app/src/main/java/ru/daemonlord/messenger/ui/chat/ChatScreen.kt +++ b/android/app/src/main/java/ru/daemonlord/messenger/ui/chat/ChatScreen.kt @@ -3771,6 +3771,7 @@ private fun ChatMembersTabContent( onTransferOwnership: (Long) -> Unit, onUnbanMember: (Long) -> Unit, ) { + val context = LocalContext.current data class PendingMemberAction( val title: String, val body: String, @@ -3862,9 +3863,10 @@ private fun ChatMembersTabContent( if (canDemote) { AssistChip( onClick = { + val targetName = member.name.ifBlank { "@${member.username ?: member.userId}" } pendingAction = PendingMemberAction( - title = "Demote admin", - body = "Demote ${member.name.ifBlank { "@${member.username ?: member.userId}" }} to member?", + title = context.getString(R.string.chat_member_dialog_demote_title), + body = context.getString(R.string.chat_member_dialog_demote_body, targetName), onConfirm = { onDemoteMember(member.userId) }, ) }, @@ -3874,9 +3876,10 @@ private fun ChatMembersTabContent( if (canTransfer) { AssistChip( onClick = { + val targetName = member.name.ifBlank { "@${member.username ?: member.userId}" } pendingAction = PendingMemberAction( - title = "Transfer ownership", - body = "Transfer ownership to ${member.name.ifBlank { "@${member.username ?: member.userId}" }}?", + title = context.getString(R.string.chat_member_dialog_transfer_title), + body = context.getString(R.string.chat_member_dialog_transfer_body, targetName), onConfirm = { onTransferOwnership(member.userId) }, ) }, @@ -3886,9 +3889,10 @@ private fun ChatMembersTabContent( if (canManageTarget) { AssistChip( onClick = { + val targetName = member.name.ifBlank { "@${member.username ?: member.userId}" } pendingAction = PendingMemberAction( - title = "Ban member", - body = "Ban ${member.name.ifBlank { "@${member.username ?: member.userId}" }}?", + title = context.getString(R.string.chat_member_dialog_ban_title), + body = context.getString(R.string.chat_member_dialog_ban_body, targetName), onConfirm = { onBanMember(member.userId) }, ) }, @@ -3896,9 +3900,10 @@ private fun ChatMembersTabContent( ) AssistChip( onClick = { + val targetName = member.name.ifBlank { "@${member.username ?: member.userId}" } pendingAction = PendingMemberAction( - title = "Kick member", - body = "Kick ${member.name.ifBlank { "@${member.username ?: member.userId}" }} from chat?", + title = context.getString(R.string.chat_member_dialog_kick_title), + body = context.getString(R.string.chat_member_dialog_kick_body, targetName), onConfirm = { onKickMember(member.userId) }, ) }, diff --git a/android/app/src/main/res/values-ru/strings.xml b/android/app/src/main/res/values-ru/strings.xml index bb16757..e21d91a 100644 --- a/android/app/src/main/res/values-ru/strings.xml +++ b/android/app/src/main/res/values-ru/strings.xml @@ -106,6 +106,14 @@ Кикнуть Разбанить Видео + Понизить админа + Понизить %1$s до участника? + Передача owner + Передать owner пользователю %1$s? + Блокировка участника + Забанить %1$s? + Исключить участника + Исключить %1$s из чата? Пользователь АККАУНТЫ diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 7d81925..c391879 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -106,6 +106,14 @@ Kick Unban Video + Demote admin + Demote %1$s to member? + Transfer ownership + Transfer ownership to %1$s? + Ban member + Ban %1$s? + Kick member + Kick %1$s from chat? User ACCOUNTS