feat(chat): message-list rework, customization surface, smooth scroll

Chat tab overhaul:
- Header/layout: single-row header (name + key-lock + compact click-to-copy address +
  right-aligned icon toolbar with a settings "notch"), composer moved below the message
  box (emoji toggle left of a bottom-flush input), tightened list-pane controls.
- Message list: per-day date separators (Today/Yesterday/date), time-only group headers,
  tight same-sender grouping with iMessage-style merged corners, per-run peer avatar,
  delivery status (clock -> check), hover-reveal per-message time. Message base ~18px.
- Customization: a settings "notch" gear opens a modal (also under Settings ->
  Chat & Contacts) with segmented controls for emoji style / bubble style / density /
  timestamps, sliders for poll rate + text size, a bubble-accent dropdown, Enter-to-send.
  Bubble style/accent/density/text-size/timestamps all applied live in the message loop.
- Settings: app-wide clock-format control lives in Settings -> General; chat keeps a
  per-tab override. Both chat panes now use the app's smooth wheel-scroll.
- i18n: new strings across all 8 languages; CJK subset rebuilt for the added glyphs.

Inline contact rename, hide/mute, 0-conf fast-scan and the export path are carried through.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-17 18:45:19 -05:00
parent 3b5db02e09
commit 2c909d35ea
13 changed files with 1060 additions and 212 deletions

View File

@@ -135,12 +135,25 @@
"change_pass_title": "암호 변경",
"characters": "문자",
"chat": "채팅",
"chat_accent_amber": "황색",
"chat_accent_blue": "파랑",
"chat_accent_green": "초록",
"chat_accent_pink": "분홍",
"chat_accent_purple": "보라",
"chat_accent_theme": "테마",
"chat_add_contact": "연락처 추가",
"chat_awaiting_key": "답장 대기 중",
"chat_bubble_minimal": "미니멀",
"chat_bubble_rounded": "둥근",
"chat_bubble_square": "각진",
"chat_cancel": "취소",
"chat_contact_added": "연락처 추가됨 — 연락처에서 이름을 변경하세요",
"chat_contact_request": "연락 요청",
"chat_copy_address_tip": "클릭하여 주소 복사",
"chat_density_comfortable": "편안하게",
"chat_density_compact": "촘촘하게",
"chat_emoji_color": "컬러",
"chat_emoji_mono": "단색",
"chat_emoji_search": "이모지 검색",
"chat_empty_hint": "아직 대화가 없습니다. 받은 메시지가 여기에 표시됩니다.",
"chat_empty_start": "\"새 대화\"로 시작하세요.",
@@ -156,21 +169,39 @@
"chat_len_over": "메시지가 너무 깁니다",
"chat_locked_hint": "채팅을 불러오려면 지갑 잠금을 해제하세요.",
"chat_mute": "음소거",
"chat_new_button": "새 대화",
"chat_new_button": "새 채팅",
"chat_new_message": "메시지",
"chat_new_message_toast": "새 암호화 채팅 메시지",
"chat_new_send": "요청 보내기",
"chat_new_title": "새 대화",
"chat_new_title": "새 채팅",
"chat_new_zaddr": "받는 사람 z-주소",
"chat_no_matches": "검색과 일치하는 대화가 없습니다.",
"chat_no_z_contacts": "보호 주소 연락처가 아직 없습니다",
"chat_opt_bubble_accent": "말풍선 색상",
"chat_opt_bubble_style": "말풍선 스타일",
"chat_opt_density": "메시지 밀도",
"chat_opt_emoji": "이모지 스타일",
"chat_opt_enter_sends": "Enter로 전송",
"chat_opt_font_size": "글자 크기",
"chat_opt_global_clock": "전역 시간 형식",
"chat_opt_poll": "폴링 주기",
"chat_opt_timestamp": "타임스탬프",
"chat_pick_contact": "연락처에서 선택…",
"chat_rename": "연락처 이름 변경",
"chat_rename_hint": "연락처 이름",
"chat_renamed": "연락처 이름이 변경되었습니다",
"chat_retry": "다시 시도",
"chat_search": "대화 검색",
"chat_sec_appearance": "모양",
"chat_sec_messaging": "메시지",
"chat_select_hint": "볼 대화를 선택하세요.",
"chat_send": "전송",
"chat_send_failed": "전송 안 됨",
"chat_sending": "전송 중…",
"chat_settings_done": "완료",
"chat_settings_section": "채팅 및 연락처",
"chat_settings_tip": "채팅 사용자 지정",
"chat_settings_title": "채팅 설정",
"chat_show_hidden": "숨김 보기",
"chat_time_now": "방금",
"chat_toast_compose_failed": "메시지를 작성할 수 없습니다 (너무 긴가요?).",
@@ -181,10 +212,16 @@
"chat_toast_request_compose_failed": "연락 요청을 작성할 수 없습니다 (잘못된 주소 / 텍스트?).",
"chat_toast_request_queued": "연락 요청이 대기열에 추가되었습니다.",
"chat_toast_waiting_reply": "상대방이 답장해야 메시지를 보낼 수 있습니다.",
"chat_today": "오늘",
"chat_ts_12h": "12시간",
"chat_ts_24h": "24시간",
"chat_ts_global": "전역 설정 따르기",
"chat_ts_global_short": "전역",
"chat_unhide": "다시 표시",
"chat_unmute": "음소거 해제",
"chat_verify_key": "신원 키 — 비교하여 확인",
"chat_waiting_reply": "상대방의 답장을 기다리는 중입니다 — 답장하면 메시지를 보낼 수 있습니다.",
"chat_yesterday": "어제",
"chat_you": "나",
"choose_icon": "아이콘 선택",
"clear": "지우기",
@@ -196,6 +233,7 @@
"click_copy_address": "클릭하여 주소 복사",
"click_copy_uri": "클릭하여 URI 복사",
"click_to_copy": "복사하려면 클릭",
"clock_format": "시간 형식",
"close": "닫기",
"conf_count": "%d 확인",
"confirm_and_send": "확인 후 전송",
@@ -1388,6 +1426,7 @@
"tt_change_pass": "지갑 암호화 비밀번호 변경",
"tt_change_pin": "잠금 해제 PIN 변경",
"tt_clear_ztx": "로컬에 캐시된 z-트랜잭션 기록 삭제",
"tt_clock_format": "24시간 또는 12시간 형식(앱 전체). 채팅에서 재정의할 수 있습니다.",
"tt_custom_fees": "거래 전송 시 수동 수수료 입력 활성화",
"tt_custom_theme": "사용자 지정 테마 활성화됨",
"tt_daemon_install_bundled": "노드를 중지하고 설치된 dragonxd를 이 지갑 빌드에 번들된 버전으로 덮어쓴 다음 재시작합니다",