feat(ui): implement UI/UX audit — i18n, HiDPI, theme, destructive-action & overflow fixes
Implements all 26 confirmed UI/UX audit findings plus the 4 dashboard/timeline tile labels. Verified across full-node + Lite + Windows builds (ctest green) and an adversarial diff review (one market-tab delete regression caught + fixed). i18n coverage: - Balance hero/quick-actions/toasts + dashboard & timeline tiles (Total Balance, Shielded, Transparent, Quick Send, Quick Receive, Click to open, Market) - Send: Review Send / Cancel / Paste / view-only tooltip / memo byte counter - Settings: Lite lifecycle errors, plaintext-RPC security warning, 8 toasts - Mining pool-payout tooltip - Resolve daemon_update_title double-assignment collision (new daemon_update_prompt_title) - 23 new keys translated into all 8 locales; CJK subset font rebuilt HiDPI: DPI-scale the Send amount bar, mining thread-tile clamp bounds, receive loading skeleton, and sidebar notification-badge insets. Light theme: theme-aware material::SurfaceOverlay() for balance bar tracks and row-hover highlights; contacts active-pill foreground uses OnPrimary(). Destructive actions: arm/confirm for portfolio-group delete, saved pool/worker remove, and avatar-image delete. Interaction/overflow: route balance star/eye buttons and the console fold-toggle through popup-safe guards; clip peer addr/subver; truncate the balance custom label; measure Settings tool-button widths; mining stepper disabled-state feedback; +/- stepper buttons restyled to match the thread tiles. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -92,7 +92,10 @@
|
||||
"balance": "Баланс",
|
||||
"balance_history_collecting": "История баланса — сбор данных...",
|
||||
"balance_layout": "Макет баланса",
|
||||
"balance_layout_switched": "Раскладка: %s",
|
||||
"balance_mining_rate": "Майнинг %s",
|
||||
"balance_shielded_fmt": "Экранировано: %.8f",
|
||||
"balance_syncing_pct": "Синхронизация %.1f%%",
|
||||
"balance_transparent_fmt": "Прозрачный: %.8f",
|
||||
"ban": "Заблокировать",
|
||||
"banned_peers": "Заблокированные узлы",
|
||||
@@ -132,6 +135,7 @@
|
||||
"bootstrap_verifying": "Проверка контрольных сумм...",
|
||||
"bootstrap_wallet_protected": "(wallet.dat защищён)",
|
||||
"bootstrap_warning": "Существующие данные блоков (blocks, chainstate, notarizations) будут удалены и заменены. Ваш wallet.dat НЕ будет изменён или удалён.",
|
||||
"byte_count_fmt": "%zu / %zu байт",
|
||||
"cancel": "Отмена",
|
||||
"change_pass_confirm": "Подтвердите новый:",
|
||||
"change_pass_current": "Текущий пароль:",
|
||||
@@ -441,6 +445,7 @@
|
||||
"daemon_update_latest": "Последняя:",
|
||||
"daemon_update_loading": "Загрузка релизов…",
|
||||
"daemon_update_now": "Обновить сейчас",
|
||||
"daemon_update_prompt_title": "Обновить демон узла?",
|
||||
"daemon_update_reinstall": "Переустановить",
|
||||
"daemon_update_restart_note": "Перезапустите daemon, чтобы начать работу с новой версией.",
|
||||
"daemon_update_restart_now": "Перезапустить демон сейчас",
|
||||
@@ -657,6 +662,7 @@
|
||||
"light": "Светлая",
|
||||
"lite_account_label": "Аккаунт",
|
||||
"lite_action": "Действие",
|
||||
"lite_backend_unavailable": "Бэкенд облегчённого кошелька недоступен",
|
||||
"lite_backup_keys": "Резервная копия и ключи",
|
||||
"lite_birthday_backup": "Дата рождения: %llu (сохраните её тоже)",
|
||||
"lite_birthday_hint": "Высота блока, с которой начинать сканирование. Оставьте 0, если неизвестно (медленное полное сканирование).",
|
||||
@@ -664,9 +670,12 @@
|
||||
"lite_console_backend_commands": "Команды бэкенда:",
|
||||
"lite_console_help_passthrough": "Любой другой ввод выполняется как команда консоли лайт-кошелька.",
|
||||
"lite_copy": "Копировать",
|
||||
"lite_could_not_start": "Не удалось запустить операцию",
|
||||
"lite_could_not_write": "Не удалось записать ",
|
||||
"lite_encrypt_wallet": "Зашифровать кошелёк",
|
||||
"lite_encryption_removed": "Шифрование удалено",
|
||||
"lite_enter_all_seed_words": "Введите все 24 слова seed-фразы для восстановления (введено %d)",
|
||||
"lite_enter_wallet_path": "Введите путь к кошельку",
|
||||
"lite_hide_wipe": "Скрыть и стереть",
|
||||
"lite_import": "Импорт",
|
||||
"lite_import_key_label": "Импортировать ключ",
|
||||
@@ -920,6 +929,7 @@
|
||||
"mining_pool": "Пул",
|
||||
"mining_pool_fee": "Комиссия",
|
||||
"mining_pool_hashrate": "Хешрейт пула",
|
||||
"mining_pool_needs_payout_tooltip": "Сначала введите адрес для выплат (создайте Z-адрес)",
|
||||
"mining_pool_url": "URL пула",
|
||||
"mining_pools_header": "ПУЛЫ",
|
||||
"mining_recent_blocks": "ПОСЛЕДНИЕ БЛОКИ",
|
||||
@@ -1121,6 +1131,8 @@
|
||||
"qr_failed": "Не удалось сгенерировать QR-код",
|
||||
"qr_title": "QR-код",
|
||||
"qr_unavailable": "QR недоступен",
|
||||
"quick_receive": "Быстрый приём",
|
||||
"quick_send": "Быстрая отправка",
|
||||
"ram_daemon_gb": "Демон: %.1f ГБ (%s)",
|
||||
"ram_daemon_mb": "Демон: %.0f МБ (%s)",
|
||||
"ram_system_gb": "Система: %.1f / %.0f ГБ",
|
||||
@@ -1170,6 +1182,7 @@
|
||||
"rpc_connection": "RPC-подключение...",
|
||||
"rpc_host": "RPC-хост",
|
||||
"rpc_pass": "Пароль",
|
||||
"rpc_plaintext_remote_warning": "Удалённый RPC использует незашифрованный HTTP. Добавьте rpctls=1 в DRAGONX.conf, если ваш демон поддерживает TLS.",
|
||||
"rpc_port": "Порт",
|
||||
"rpc_user": "Имя пользователя",
|
||||
"save": "Сохранить",
|
||||
@@ -1279,6 +1292,7 @@
|
||||
"send_tooltip_not_connected": "Не подключено к daemon",
|
||||
"send_tooltip_select_source": "Сначала выберите адрес-источник",
|
||||
"send_tooltip_syncing": "Дождитесь синхронизации блокчейна",
|
||||
"send_tooltip_view_only": "Адрес только для просмотра — нет ключа расходования, отправка невозможна",
|
||||
"send_total": "Итого",
|
||||
"send_transaction": "Отправить транзакцию",
|
||||
"send_tx_failed": "Транзакция не удалась",
|
||||
@@ -1342,6 +1356,7 @@
|
||||
"settings_locked": "Заблокирован",
|
||||
"settings_merge_to_address": "Объединить на адрес...",
|
||||
"settings_noise_opacity": "Непрозрачность шума:",
|
||||
"settings_not_connected": "Нет соединения с демоном",
|
||||
"settings_not_encrypted": "Не зашифрован",
|
||||
"settings_not_found": "Не найден",
|
||||
"settings_open_app_dir": "Открыть папку приложения",
|
||||
@@ -1352,18 +1367,23 @@
|
||||
"settings_privacy": "Конфиденциальность",
|
||||
"settings_quick_unlock_pin": "Быстрый PIN-код разблокировки",
|
||||
"settings_reduce_transparency": "Уменьшить прозрачность",
|
||||
"settings_reloaded": "Настройки перезагружены с диска",
|
||||
"settings_remove_encryption": "Удалить шифрование",
|
||||
"settings_remove_pin": "Удалить PIN",
|
||||
"settings_request_payment": "Запросить платёж...",
|
||||
"settings_rescan_desc": "Пересканировать блокчейн для поиска пропущенных транзакций",
|
||||
"settings_restart_daemon": "Перезапустить демон",
|
||||
"settings_rpc_connection": "RPC-соединение",
|
||||
"settings_rpc_error_prefix": "Ошибка RPC: ",
|
||||
"settings_rpc_note": "Примечание: Настройки подключения обычно определяются автоматически из DRAGONX.conf",
|
||||
"settings_rpc_ok": "RPC-соединение в порядке",
|
||||
"settings_save_shielded_desc": "Сохраняет z-addr транзакции в локальном файле для просмотра",
|
||||
"settings_save_shielded_local": "Сохранять историю защищённых транзакций локально",
|
||||
"settings_saved": "Настройки сохранены",
|
||||
"settings_set_pin": "Установить PIN",
|
||||
"settings_shield_mining": "Экранировать майнинг...",
|
||||
"settings_solid_colors_desc": "Использовать сплошные цвета вместо эффектов размытия (доступность)",
|
||||
"settings_theme_refreshed": "Список тем обновлён",
|
||||
"settings_tor_desc": "Маршрутизировать все соединения через Tor для повышения конфиденциальности",
|
||||
"settings_unlocked": "Разблокирован",
|
||||
"settings_use_tor_network": "Использовать Tor для сетевых подключений",
|
||||
@@ -1375,6 +1395,8 @@
|
||||
"settings_wallet_maintenance": "Обслуживание кошелька",
|
||||
"settings_wallet_not_found": "Файл кошелька не найден",
|
||||
"settings_wallet_size_label": "Размер кошелька:",
|
||||
"settings_ztx_cleared": "История Z-транзакций очищена",
|
||||
"settings_ztx_not_found": "Файл истории не найден",
|
||||
"setup_wizard": "Мастер настройки",
|
||||
"share": "Поделиться",
|
||||
"shield_check_status": "Проверить статус",
|
||||
@@ -1457,6 +1479,7 @@
|
||||
"theme": "Тема",
|
||||
"theme_effects": "Эффекты темы",
|
||||
"theme_language": "ТЕМА И ЯЗЫК",
|
||||
"tile_click_to_open": "Нажмите, чтобы открыть",
|
||||
"time_days_ago": "%d дней назад",
|
||||
"time_hours_ago": "%d часов назад",
|
||||
"time_minutes_ago": "%d минут назад",
|
||||
@@ -1472,6 +1495,7 @@
|
||||
"tools": "УТИЛИТЫ",
|
||||
"tools_actions": "Инструменты и действия...",
|
||||
"total": "Итого",
|
||||
"total_balance_label": "Общий баланс",
|
||||
"transaction_id": "ID ТРАНЗАКЦИИ",
|
||||
"transaction_sent": "Транзакция успешно отправлена",
|
||||
"transaction_sent_msg": "Транзакция отправлена!",
|
||||
|
||||
Reference in New Issue
Block a user