From a630401d108eea50cd4af230f4a77a2c6a76fbe6 Mon Sep 17 00:00:00 2001 From: evgeny Date: Sat, 10 Oct 2026 01:27:17 +0200 Subject: [PATCH] Localize file operations and refine transfer notifications --- .../utun/chat/data/MemberFilesRepository.kt | 2 +- .../res/values-ru/member_files_strings.xml | 61 +++++++++++++++++++ .../main/res/values/member_files_strings.xml | 61 +++++++++++++++++++ 3 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 tools/chatgui-android/app/src/main/res/values-ru/member_files_strings.xml create mode 100644 tools/chatgui-android/app/src/main/res/values/member_files_strings.xml diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/MemberFilesRepository.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/MemberFilesRepository.kt index 40e15f4a..191602a7 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/MemberFilesRepository.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/MemberFilesRepository.kt @@ -143,7 +143,7 @@ class MemberFilesRepository(context: Context) { _operation.value = operation // Уведомление обновляется по процентам; UI получает каждый прогресс без спама в логах. fun percent(op: FileOperation?) = if (op == null || op.total == 0L) -1 else (op.done.toDouble() * 100 / op.total).toInt() - if (previous?.name != operation.name || previous?.stage != operation.stage || previous?.active != operation.active || + if (previous == null || previous.name != operation.name || previous.stage != operation.stage || previous.active != operation.active || percent(previous) != percent(operation)) HeadlessService.refreshFiles() } diff --git a/tools/chatgui-android/app/src/main/res/values-ru/member_files_strings.xml b/tools/chatgui-android/app/src/main/res/values-ru/member_files_strings.xml new file mode 100644 index 00000000..1680a7ed --- /dev/null +++ b/tools/chatgui-android/app/src/main/res/values-ru/member_files_strings.xml @@ -0,0 +1,61 @@ + + + Файлы канала + Мои файлы + Файлы участника + Участники + Хранилище: %1$s + Выбрать хранилище + В этом канале нет узла-хранителя + Выбранное хранилище больше недоступно. Выберите другое. + Загрузка каталога… + Папка пуста + Обновить + Добавить файлы или папку + Загрузить файлы + Создать папку + Папка + Переименовать + Имя + Открыть + Сохранить на устройство + Поделиться + Свойства + %1$s +Размер: %2$s +Изменён: %3$s +Владелец: %4$s + Удалить «%1$s»? Можно удалять только пустые папки. + Заменить файл? + «%1$s» уже существует в этом хранилище. Заменить? + Заменить + Пропустить + Подготовка… + Передача… + Сохранение на устройство… + Завершено + Отменено + Ошибка + Файл %1$d из %2$d + Загружено: %1$d · пропущено: %2$d + %1$s / %2$s + Занято в хранилище по всем каналам: %1$s / %2$s + Зарезервировано для загрузок: %1$s + Файлы этого участника доступны для чтения + Служебная папка · только чтение + Файл готов: %1$s + Не удалось открыть или передать файл. Попробуйте сохранить его на устройство. + Доступ запрещён + Файл или папка не найдены + Недопустимое имя файла или папки + Недопустимый размер или диапазон файла + Файл или папка с таким именем уже существуют + Хранилище занято. Попробуйте ещё раз. + Файл или папка изменились. Обновите список и повторите действие. + Недостаточно места или превышена квота + Не удалось прочитать или записать файл + Некорректный ответ хранилища + Проверка целостности файла не пройдена + Хранилище не ответило вовремя + Папка не пуста + diff --git a/tools/chatgui-android/app/src/main/res/values/member_files_strings.xml b/tools/chatgui-android/app/src/main/res/values/member_files_strings.xml new file mode 100644 index 00000000..8048d82b --- /dev/null +++ b/tools/chatgui-android/app/src/main/res/values/member_files_strings.xml @@ -0,0 +1,61 @@ + + + Channel files + My files + Member files + Members + Storage: %1$s + Choose storage + No storage node in this channel + The selected storage is no longer available. Choose another storage. + Loading directory… + This folder is empty + Refresh + Add files or folder + Upload files + New folder + Folder + Rename + Name + Open + Save to device + Share + Properties + %1$s +Size: %2$s +Modified: %3$s +Owner: %4$s + Delete “%1$s”? Only empty folders can be deleted. + Replace file? + “%1$s” already exists on this storage. Replace it? + Replace + Skip + Preparing… + Transferring… + Saving to device… + Completed + Cancelled + Failed + File %1$d of %2$d + Uploaded: %1$d · skipped: %2$d + %1$s / %2$s + Storage usage across channels: %1$s / %2$s + Reserved for uploads: %1$s + Files of this member are read-only + Service folder · read-only + File ready: %1$s + Unable to open or share this file. Try saving it to the device. + Access denied + File or folder not found + Invalid file or folder name + Invalid file size or range + A file or folder with this name already exists + Storage is busy. Try again. + The file or folder changed. Refresh and try again. + Not enough storage space or quota + Unable to read or write the file + Invalid response from storage + File integrity verification failed + Storage did not respond in time + The folder is not empty +