mirror of
https://github.com/MarekWo/mc-webui.git
synced 2026-10-30 23:51:57 +01:00
Covers app/templates/dm.html and app/static/js/dm.js: the sidebar, the searchable conversation selector, the composer, message bubbles and their delivery meta, the Contact Info modal, path management, and the repeater list/map pickers. The DM panel's path management and repeater pickers are the code the My Repeaters panel was adapted from, so its strings reuse the repeaters.* keys added in stage 3a rather than duplicating them. Shared chat chrome (filter bar, FAB titles, composer placeholder, status bar) goes to a new chat.* namespace so index.html and app.js can reuse it in stages 7 and 9, and console.status.* is promoted to common.connected/disconnected/ connecting now that two status bars want the same three words. formatRelativeTimeDm() was the last of the four local relative-time implementations; it is gone, folded into formatTimeAgo() from datetime-utils.js. The contact-info row uses the long form to match the contacts page, the map popup the short form to match My Repeaters. Also fixed along the way, both found by grepping this slice's shared strings against the already-translated panels: - repeaters.js reset the map picker label from JS in three places with a hardcoded English string, so the header translated on load and flipped back to English the moment the picker opened (missed in stage 3a). - tHtml() on a plural key always renders the "one" form, because only tn() passes the count to the resolver. That made the repeater picker's shared-prefix tooltip read "3 repeater ma ten prefiks". Fixed in both callers and now an error in scripts/i18n_check.py, which had no way to catch it. Left English on purpose: Flood/Direct/FLOOD and the SNR labels (glossary), and the 'Device path' label written to the DB on import - it is stored data, so translating it would freeze one language into the row. Catalog: 471 -> 526 keys, pl at 100%. Verified against the local container with i18n-diff.js plus a new i18n-stage6-dm.js that drives the panel through each modal, since the diff tool cannot see hidden ones. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>