Localize chat list popups and selection menu strings (EN/RU)
Some checks failed
Android CI / android (push) Has started running
Android Release / release (push) Has been cancelled
CI / test (push) Has been cancelled

This commit is contained in:
2026-03-11 05:56:51 +03:00
parent 60d898bf21
commit 92c4cba1b0
3 changed files with 69 additions and 23 deletions

View File

@@ -327,7 +327,7 @@ fun ChatListScreen(
}) { }) {
Icon( Icon(
imageVector = Icons.Filled.FolderOpen, imageVector = Icons.Filled.FolderOpen,
contentDescription = "Архивировать", contentDescription = stringResource(id = R.string.chats_contentdesc_archive_selected),
) )
} }
IconButton(onClick = { IconButton(onClick = {
@@ -335,14 +335,14 @@ fun ChatListScreen(
}) { }) {
Icon( Icon(
imageVector = Icons.Filled.Delete, imageVector = Icons.Filled.Delete,
contentDescription = "Delete selected", contentDescription = stringResource(id = R.string.chats_contentdesc_delete_selected),
) )
} }
Box { Box {
IconButton(onClick = { showSelectionMenu = true }) { IconButton(onClick = { showSelectionMenu = true }) {
Icon( Icon(
imageVector = Icons.Filled.MoreVert, imageVector = Icons.Filled.MoreVert,
contentDescription = "Меню выбранного", contentDescription = stringResource(id = R.string.chats_contentdesc_selection_menu),
) )
} }
DropdownMenu( DropdownMenu(
@@ -350,7 +350,15 @@ fun ChatListScreen(
onDismissRequest = { showSelectionMenu = false }, onDismissRequest = { showSelectionMenu = false },
) { ) {
DropdownMenuItem( DropdownMenuItem(
text = { Text(if (allSelectedPinned) "Открепить" else "Закрепить") }, text = {
Text(
if (allSelectedPinned) {
stringResource(id = R.string.chats_selection_unpin)
} else {
stringResource(id = R.string.chats_selection_pin)
},
)
},
leadingIcon = { Icon(Icons.Filled.PushPin, contentDescription = null) }, leadingIcon = { Icon(Icons.Filled.PushPin, contentDescription = null) },
onClick = { onClick = {
showSelectionMenu = false showSelectionMenu = false
@@ -361,23 +369,23 @@ fun ChatListScreen(
}, },
) )
DropdownMenuItem( DropdownMenuItem(
text = { Text("Добавить в папку") }, text = { Text(stringResource(id = R.string.chats_selection_add_to_folder)) },
leadingIcon = { Icon(Icons.Filled.FolderOpen, contentDescription = null) }, leadingIcon = { Icon(Icons.Filled.FolderOpen, contentDescription = null) },
onClick = { onClick = {
showSelectionMenu = false showSelectionMenu = false
Toast.makeText(context, "Папки чатов будут добавлены позже.", Toast.LENGTH_SHORT).show() Toast.makeText(context, context.getString(R.string.chats_toast_folders_coming_soon), Toast.LENGTH_SHORT).show()
}, },
) )
DropdownMenuItem( DropdownMenuItem(
text = { Text("Пометить непрочитанным") }, text = { Text(stringResource(id = R.string.chats_selection_mark_unread)) },
leadingIcon = { Icon(Icons.Filled.DoneAll, contentDescription = null) }, leadingIcon = { Icon(Icons.Filled.DoneAll, contentDescription = null) },
onClick = { onClick = {
showSelectionMenu = false showSelectionMenu = false
Toast.makeText(context, "Отметка непрочитанным будет добавлена позже.", Toast.LENGTH_SHORT).show() Toast.makeText(context, context.getString(R.string.chats_toast_mark_unread_coming_soon), Toast.LENGTH_SHORT).show()
}, },
) )
DropdownMenuItem( DropdownMenuItem(
text = { Text("Удалить из кэша") }, text = { Text(stringResource(id = R.string.chats_selection_clear_cache)) },
leadingIcon = { Icon(Icons.Filled.Delete, contentDescription = null) }, leadingIcon = { Icon(Icons.Filled.Delete, contentDescription = null) },
onClick = { onClick = {
showSelectionMenu = false showSelectionMenu = false
@@ -780,12 +788,12 @@ fun ChatListScreen(
if (showCreateGroupDialog) { if (showCreateGroupDialog) {
AlertDialog( AlertDialog(
onDismissRequest = { showCreateGroupDialog = false }, onDismissRequest = { showCreateGroupDialog = false },
title = { Text("Create group") }, title = { Text(stringResource(id = R.string.chats_dialog_create_group_title)) },
text = { text = {
OutlinedTextField( OutlinedTextField(
value = quickCreateGroupTitle, value = quickCreateGroupTitle,
onValueChange = { quickCreateGroupTitle = it }, onValueChange = { quickCreateGroupTitle = it },
label = { Text("Group title") }, label = { Text(stringResource(id = R.string.chats_dialog_group_title_label)) },
singleLine = true, singleLine = true,
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
) )
@@ -800,30 +808,30 @@ fun ChatListScreen(
quickCreateGroupTitle = "" quickCreateGroupTitle = ""
} }
}, },
) { Text("Create") } ) { Text(stringResource(id = R.string.common_create)) }
}, },
dismissButton = { dismissButton = {
TextButton(onClick = { showCreateGroupDialog = false }) { Text("Cancel") } TextButton(onClick = { showCreateGroupDialog = false }) { Text(stringResource(id = R.string.common_cancel)) }
}, },
) )
} }
if (showCreateChannelDialog) { if (showCreateChannelDialog) {
AlertDialog( AlertDialog(
onDismissRequest = { showCreateChannelDialog = false }, onDismissRequest = { showCreateChannelDialog = false },
title = { Text("Create channel") }, title = { Text(stringResource(id = R.string.chats_dialog_create_channel_title)) },
text = { text = {
Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { Column(verticalArrangement = Arrangement.spacedBy(8.dp)) {
OutlinedTextField( OutlinedTextField(
value = quickCreateChannelTitle, value = quickCreateChannelTitle,
onValueChange = { quickCreateChannelTitle = it }, onValueChange = { quickCreateChannelTitle = it },
label = { Text("Channel title") }, label = { Text(stringResource(id = R.string.chats_dialog_channel_title_label)) },
singleLine = true, singleLine = true,
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
) )
OutlinedTextField( OutlinedTextField(
value = quickCreateChannelHandle, value = quickCreateChannelHandle,
onValueChange = { quickCreateChannelHandle = it }, onValueChange = { quickCreateChannelHandle = it },
label = { Text("Handle") }, label = { Text(stringResource(id = R.string.chats_dialog_channel_handle_label)) },
singleLine = true, singleLine = true,
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
) )
@@ -841,20 +849,20 @@ fun ChatListScreen(
quickCreateChannelHandle = "" quickCreateChannelHandle = ""
} }
}, },
) { Text("Create") } ) { Text(stringResource(id = R.string.common_create)) }
}, },
dismissButton = { dismissButton = {
TextButton(onClick = { showCreateChannelDialog = false }) { Text("Cancel") } TextButton(onClick = { showCreateChannelDialog = false }) { Text(stringResource(id = R.string.common_cancel)) }
}, },
) )
} }
if (showDeleteChatsDialog) { if (showDeleteChatsDialog) {
AlertDialog( AlertDialog(
onDismissRequest = { showDeleteChatsDialog = false }, onDismissRequest = { showDeleteChatsDialog = false },
title = { Text("Delete selected chats") }, title = { Text(stringResource(id = R.string.chats_dialog_delete_selected_title)) },
text = { text = {
Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { Column(verticalArrangement = Arrangement.spacedBy(8.dp)) {
Text("Are you sure you want to delete selected chats?") Text(stringResource(id = R.string.chats_dialog_delete_selected_body))
Row( Row(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
@@ -865,7 +873,7 @@ fun ChatListScreen(
checked = deleteSelectedForAll, checked = deleteSelectedForAll,
onCheckedChange = { deleteSelectedForAll = it }, onCheckedChange = { deleteSelectedForAll = it },
) )
Text("Delete for all (where allowed)") Text(stringResource(id = R.string.chats_dialog_delete_for_all))
} }
} }
}, },
@@ -879,7 +887,7 @@ fun ChatListScreen(
deleteSelectedForAll = false deleteSelectedForAll = false
showDeleteChatsDialog = false showDeleteChatsDialog = false
}, },
) { Text("Delete") } ) { Text(stringResource(id = R.string.common_delete)) }
}, },
dismissButton = { dismissButton = {
TextButton( TextButton(
@@ -887,7 +895,7 @@ fun ChatListScreen(
showDeleteChatsDialog = false showDeleteChatsDialog = false
deleteSelectedForAll = false deleteSelectedForAll = false
}, },
) { Text("Cancel") } ) { Text(stringResource(id = R.string.common_cancel)) }
}, },
) )
} }

View File

@@ -10,6 +10,24 @@
<string name="chats_archived">Архив</string> <string name="chats_archived">Архив</string>
<string name="chats_loading">Загрузка чатов...</string> <string name="chats_loading">Загрузка чатов...</string>
<string name="chats_not_found">Чаты не найдены</string> <string name="chats_not_found">Чаты не найдены</string>
<string name="chats_contentdesc_archive_selected">Архивировать выбранное</string>
<string name="chats_contentdesc_delete_selected">Удалить выбранное</string>
<string name="chats_contentdesc_selection_menu">Меню выбора</string>
<string name="chats_selection_pin">Закрепить</string>
<string name="chats_selection_unpin">Открепить</string>
<string name="chats_selection_add_to_folder">Добавить в папку</string>
<string name="chats_selection_mark_unread">Пометить непрочитанным</string>
<string name="chats_selection_clear_cache">Удалить из кэша</string>
<string name="chats_toast_folders_coming_soon">Папки чатов будут добавлены позже.</string>
<string name="chats_toast_mark_unread_coming_soon">Отметка непрочитанным будет добавлена позже.</string>
<string name="chats_dialog_create_group_title">Создать группу</string>
<string name="chats_dialog_group_title_label">Название группы</string>
<string name="chats_dialog_create_channel_title">Создать канал</string>
<string name="chats_dialog_channel_title_label">Название канала</string>
<string name="chats_dialog_channel_handle_label">Хэндл</string>
<string name="chats_dialog_delete_selected_title">Удалить выбранные чаты</string>
<string name="chats_dialog_delete_selected_body">Вы уверены, что хотите удалить выбранные чаты?</string>
<string name="chats_dialog_delete_for_all">Удалить для всех (где доступно)</string>
<string name="filter_all">Все</string> <string name="filter_all">Все</string>
<string name="filter_people">Люди</string> <string name="filter_people">Люди</string>
@@ -27,6 +45,7 @@
<string name="common_confirm">Подтвердить</string> <string name="common_confirm">Подтвердить</string>
<string name="common_close">Закрыть</string> <string name="common_close">Закрыть</string>
<string name="common_delete">Удалить</string> <string name="common_delete">Удалить</string>
<string name="common_create">Создать</string>
<string name="common_send">Отправить</string> <string name="common_send">Отправить</string>
<string name="common_unknown_user">Неизвестный пользователь</string> <string name="common_unknown_user">Неизвестный пользователь</string>

View File

@@ -22,11 +22,30 @@
<string name="toast_day_mode_enabled">Day mode enabled.</string> <string name="toast_day_mode_enabled">Day mode enabled.</string>
<string name="toast_night_mode_enabled">Night mode enabled.</string> <string name="toast_night_mode_enabled">Night mode enabled.</string>
<string name="chats_not_found">No chats found</string> <string name="chats_not_found">No chats found</string>
<string name="chats_contentdesc_archive_selected">Archive selected</string>
<string name="chats_contentdesc_delete_selected">Delete selected</string>
<string name="chats_contentdesc_selection_menu">Selection menu</string>
<string name="chats_selection_pin">Pin</string>
<string name="chats_selection_unpin">Unpin</string>
<string name="chats_selection_add_to_folder">Add to folder</string>
<string name="chats_selection_mark_unread">Mark as unread</string>
<string name="chats_selection_clear_cache">Clear cache</string>
<string name="chats_toast_folders_coming_soon">Chat folders will be added later.</string>
<string name="chats_toast_mark_unread_coming_soon">Mark as unread will be added later.</string>
<string name="chats_dialog_create_group_title">Create group</string>
<string name="chats_dialog_group_title_label">Group title</string>
<string name="chats_dialog_create_channel_title">Create channel</string>
<string name="chats_dialog_channel_title_label">Channel title</string>
<string name="chats_dialog_channel_handle_label">Handle</string>
<string name="chats_dialog_delete_selected_title">Delete selected chats</string>
<string name="chats_dialog_delete_selected_body">Are you sure you want to delete selected chats?</string>
<string name="chats_dialog_delete_for_all">Delete for all (where allowed)</string>
<string name="common_cancel">Cancel</string> <string name="common_cancel">Cancel</string>
<string name="common_confirm">Confirm</string> <string name="common_confirm">Confirm</string>
<string name="common_close">Close</string> <string name="common_close">Close</string>
<string name="common_delete">Delete</string> <string name="common_delete">Delete</string>
<string name="common_create">Create</string>
<string name="common_send">Send</string> <string name="common_send">Send</string>
<string name="common_unknown_user">Unknown user</string> <string name="common_unknown_user">Unknown user</string>