feat(contacts): richer edit-dialog avatar picker (preview, chips, image, icons)
Four refinements now that the two-column layout has room: 1. Image mode shows a large circular preview of the chosen picture (or a placeholder circle with an add-photo glyph, or a broken-image glyph if the file went missing), the filename, and centered Choose/Remove buttons — instead of a bare button. 2. The live-preview avatar is larger (r20 → r26) and the address is now middle-truncated (head + tail) so both ends read, like the real list row. 3. Badge mode shows the two actual chips — Z (shielded) and T (transparent) — with labels, making clear the badge is auto-picked from the address type, rather than a line of text. 4. The Badge/Icon/Image segmented control gains glyphs (badge / palette / image) beside its labels via a small two-font inline control (the shared SegmentedControl helper is single-font). Adds contact_avatar_shielded / _transparent keys and rewords the badge hint (the chips now carry the Z/T meaning); +8-language translations, all within the existing CJK subset. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -289,13 +289,15 @@
|
||||
"console_zoom_out": "Verkleinern",
|
||||
"contact_avatar": "AVATAR",
|
||||
"contact_avatar_badge": "Abzeichen",
|
||||
"contact_avatar_badge_hint": "Verwendet das Adresstyp-Abzeichen – Z für abgeschirmt, T für transparent.",
|
||||
"contact_avatar_badge_hint": "Das Abzeichen wird automatisch anhand des Adresstyps gewählt.",
|
||||
"contact_avatar_choose": "Bild auswählen…",
|
||||
"contact_avatar_copy_failed": "Dieses Bild konnte nicht kopiert werden.",
|
||||
"contact_avatar_icon": "Symbol",
|
||||
"contact_avatar_image": "Bild",
|
||||
"contact_avatar_image_hint": "Das Bild wird in die App kopiert, damit es verfügbar bleibt, wenn das Original verschoben wird.",
|
||||
"contact_avatar_remove": "Entfernen",
|
||||
"contact_avatar_shielded": "Abgeschirmt",
|
||||
"contact_avatar_transparent": "Transparent",
|
||||
"contact_global": "In jeder Wallet anzeigen (globaler Kontakt)",
|
||||
"contact_global_badge_tt": "Globaler Kontakt — in jeder Wallet sichtbar",
|
||||
"contact_global_tt": "Ein: Dieser Kontakt bleibt sichtbar, egal welche Wallet Sie laden. Aus: Er gehört nur zur aktuellen Wallet.",
|
||||
|
||||
@@ -289,13 +289,15 @@
|
||||
"console_zoom_out": "Alejar",
|
||||
"contact_avatar": "AVATAR",
|
||||
"contact_avatar_badge": "Insignia",
|
||||
"contact_avatar_badge_hint": "Usa la insignia de tipo de dirección: Z para blindada, T para transparente.",
|
||||
"contact_avatar_badge_hint": "La insignia se elige automáticamente según el tipo de dirección.",
|
||||
"contact_avatar_choose": "Elegir imagen…",
|
||||
"contact_avatar_copy_failed": "No se pudo copiar esa imagen.",
|
||||
"contact_avatar_icon": "Icono",
|
||||
"contact_avatar_image": "Imagen",
|
||||
"contact_avatar_image_hint": "La imagen se copia en la app para que siga disponible si el original se mueve.",
|
||||
"contact_avatar_remove": "Quitar",
|
||||
"contact_avatar_shielded": "Blindada",
|
||||
"contact_avatar_transparent": "Transparente",
|
||||
"contact_global": "Mostrar en todas las carteras (contacto global)",
|
||||
"contact_global_badge_tt": "Contacto global — visible en todas las carteras",
|
||||
"contact_global_tt": "Activado: este contacto permanece visible sin importar qué cartera cargues. Desactivado: pertenece solo a la cartera actual.",
|
||||
|
||||
@@ -289,13 +289,15 @@
|
||||
"console_zoom_out": "Réduire",
|
||||
"contact_avatar": "AVATAR",
|
||||
"contact_avatar_badge": "Badge",
|
||||
"contact_avatar_badge_hint": "Utilise le badge de type d'adresse — Z pour blindée, T pour transparente.",
|
||||
"contact_avatar_badge_hint": "Le badge est choisi automatiquement selon le type d'adresse.",
|
||||
"contact_avatar_choose": "Choisir une image…",
|
||||
"contact_avatar_copy_failed": "Impossible de copier cette image.",
|
||||
"contact_avatar_icon": "Icône",
|
||||
"contact_avatar_image": "Image",
|
||||
"contact_avatar_image_hint": "L'image est copiée dans l'application pour rester disponible si l'original est déplacé.",
|
||||
"contact_avatar_remove": "Retirer",
|
||||
"contact_avatar_shielded": "Blindée",
|
||||
"contact_avatar_transparent": "Transparente",
|
||||
"contact_global": "Afficher dans tous les portefeuilles (contact global)",
|
||||
"contact_global_badge_tt": "Contact global — visible dans tous les portefeuilles",
|
||||
"contact_global_tt": "Activé : ce contact reste visible quel que soit le portefeuille chargé. Désactivé : il appartient au portefeuille actuel uniquement.",
|
||||
|
||||
@@ -289,13 +289,15 @@
|
||||
"console_zoom_out": "縮小",
|
||||
"contact_avatar": "アバター",
|
||||
"contact_avatar_badge": "バッジ",
|
||||
"contact_avatar_badge_hint": "アドレス種別バッジを使用します — Z はシールド、T は透明。",
|
||||
"contact_avatar_badge_hint": "バッジはアドレスの種類に応じて自動的に選ばれます。",
|
||||
"contact_avatar_choose": "画像を選択…",
|
||||
"contact_avatar_copy_failed": "その画像をコピーできませんでした。",
|
||||
"contact_avatar_icon": "アイコン",
|
||||
"contact_avatar_image": "画像",
|
||||
"contact_avatar_image_hint": "画像はアプリ内にコピーされ、元のファイルが移動しても利用できます。",
|
||||
"contact_avatar_remove": "削除",
|
||||
"contact_avatar_shielded": "シールド",
|
||||
"contact_avatar_transparent": "透明",
|
||||
"contact_global": "すべてのウォレットで表示(グローバル連絡先)",
|
||||
"contact_global_badge_tt": "グローバル連絡先 — すべてのウォレットで表示",
|
||||
"contact_global_tt": "オン:この連絡先はどのウォレットを読み込んでも表示されます。オフ:現在のウォレットにのみ属します。",
|
||||
|
||||
@@ -289,13 +289,15 @@
|
||||
"console_zoom_out": "축소",
|
||||
"contact_avatar": "아바타",
|
||||
"contact_avatar_badge": "배지",
|
||||
"contact_avatar_badge_hint": "주소 유형 배지를 사용합니다 — Z는 보호, T는 투명.",
|
||||
"contact_avatar_badge_hint": "배지는 주소 유형에 따라 자동으로 선택됩니다.",
|
||||
"contact_avatar_choose": "이미지 선택…",
|
||||
"contact_avatar_copy_failed": "그 이미지를 복사할 수 없습니다.",
|
||||
"contact_avatar_icon": "아이콘",
|
||||
"contact_avatar_image": "이미지",
|
||||
"contact_avatar_image_hint": "이미지는 앱에 복사되어 원본이 이동해도 계속 사용할 수 있습니다.",
|
||||
"contact_avatar_remove": "제거",
|
||||
"contact_avatar_shielded": "보호",
|
||||
"contact_avatar_transparent": "투명",
|
||||
"contact_global": "모든 지갑에 표시(전역 연락처)",
|
||||
"contact_global_badge_tt": "전역 연락처 — 모든 지갑에서 표시됨",
|
||||
"contact_global_tt": "켜짐: 어떤 지갑을 불러오든 이 연락처가 계속 표시됩니다. 꺼짐: 현재 지갑에만 속합니다.",
|
||||
|
||||
@@ -289,13 +289,15 @@
|
||||
"console_zoom_out": "Diminuir zoom",
|
||||
"contact_avatar": "AVATAR",
|
||||
"contact_avatar_badge": "Selo",
|
||||
"contact_avatar_badge_hint": "Usa o selo de tipo de endereço — Z para blindado, T para transparente.",
|
||||
"contact_avatar_badge_hint": "O selo é escolhido automaticamente conforme o tipo de endereço.",
|
||||
"contact_avatar_choose": "Escolher imagem…",
|
||||
"contact_avatar_copy_failed": "Não foi possível copiar essa imagem.",
|
||||
"contact_avatar_icon": "Ícone",
|
||||
"contact_avatar_image": "Imagem",
|
||||
"contact_avatar_image_hint": "A imagem é copiada para o app para continuar disponível se o original for movido.",
|
||||
"contact_avatar_remove": "Remover",
|
||||
"contact_avatar_shielded": "Blindado",
|
||||
"contact_avatar_transparent": "Transparente",
|
||||
"contact_global": "Mostrar em todas as carteiras (contato global)",
|
||||
"contact_global_badge_tt": "Contato global — visível em todas as carteiras",
|
||||
"contact_global_tt": "Ativado: este contato permanece visível em qualquer carteira que você carregar. Desativado: ele pertence apenas à carteira atual.",
|
||||
|
||||
@@ -289,13 +289,15 @@
|
||||
"console_zoom_out": "Уменьшить",
|
||||
"contact_avatar": "АВАТАР",
|
||||
"contact_avatar_badge": "Значок",
|
||||
"contact_avatar_badge_hint": "Использует значок типа адреса — Z для защищённого, T для прозрачного.",
|
||||
"contact_avatar_badge_hint": "Значок выбирается автоматически по типу адреса.",
|
||||
"contact_avatar_choose": "Выбрать изображение…",
|
||||
"contact_avatar_copy_failed": "Не удалось скопировать это изображение.",
|
||||
"contact_avatar_icon": "Иконка",
|
||||
"contact_avatar_image": "Изображение",
|
||||
"contact_avatar_image_hint": "Изображение копируется в приложение, чтобы оставаться доступным, если оригинал переместят.",
|
||||
"contact_avatar_remove": "Удалить",
|
||||
"contact_avatar_shielded": "Защищённый",
|
||||
"contact_avatar_transparent": "Прозрачный",
|
||||
"contact_global": "Показывать во всех кошельках (глобальный контакт)",
|
||||
"contact_global_badge_tt": "Глобальный контакт — виден во всех кошельках",
|
||||
"contact_global_tt": "Вкл.: этот контакт остаётся видимым, какой бы кошелёк вы ни загрузили. Выкл.: он принадлежит только текущему кошельку.",
|
||||
|
||||
@@ -289,13 +289,15 @@
|
||||
"console_zoom_out": "缩小",
|
||||
"contact_avatar": "头像",
|
||||
"contact_avatar_badge": "标记",
|
||||
"contact_avatar_badge_hint": "使用地址类型标记——Z 表示隐蔽地址,T 表示透明地址。",
|
||||
"contact_avatar_badge_hint": "标记会根据地址类型自动选择。",
|
||||
"contact_avatar_choose": "选择图片…",
|
||||
"contact_avatar_copy_failed": "无法复制该图片。",
|
||||
"contact_avatar_icon": "图标",
|
||||
"contact_avatar_image": "图片",
|
||||
"contact_avatar_image_hint": "图片会复制到应用中,即使原文件移动也能保持可用。",
|
||||
"contact_avatar_remove": "移除",
|
||||
"contact_avatar_shielded": "隐蔽",
|
||||
"contact_avatar_transparent": "透明",
|
||||
"contact_global": "在每个钱包中显示(全局联系人)",
|
||||
"contact_global_badge_tt": "全局联系人——在每个钱包中可见",
|
||||
"contact_global_tt": "开启:无论您加载哪个钱包,此联系人都保持可见。关闭:它仅属于当前钱包。",
|
||||
|
||||
Reference in New Issue
Block a user