Captions: add German and Portuguese, make them findable, and fix the dead "Add mine" button
Three things. GERMAN AND PORTUGUESE. Marty's call, and the right one: the translation cache only shows who is already here, not who Manson is bringing. Manson knows his audience, so Portuguese goes in even though site data ranks German above it. All five videos now carry English, Italian, French, Spanish, German and Portuguese. Disclaimers checked by hand in the two new languages: "Es wird kein Einkommen garantiert" and "Nenhuma renda e garantida". FINDABILITY. Marty went looking for the multilingual feature on his own training page and could not find it, because the first build leaned on the native CC control and nothing switches on for an English reader. A feature nobody can find is not shipped. Every captioned player now carries a visible row of subtitle chips underneath, named in their own language, with an Off option. Captions still stay off by default for an English reader and still turn themselves on for anyone who already picked a language with the globe button; the chips just make the choice visible instead of buried. THE DEAD BUTTON. The inbox banner's "Add mine" shipped with NO click handler, so it rendered and did absolutely nothing. That is why Marty could not add his address while connected to the right wallet: nothing was listening. It now opens the same optional profile dialog and re-renders when it completes. Tests: gate-e2e 38 (up from 33, and rendering that button is explicitly not the test any more, it has to actually open the dialog), captions-e2e 158 across six languages including the new chip behaviour, clicking one and turning them back off. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -396,6 +396,19 @@
|
||||
<div style="display:flex;gap:10px;align-items:center;margin-top:8px"><button id="msgSendBtn" class="btn btn-primary">Send →</button><span id="msgStatus" class="micro"></span></div></div>`;
|
||||
const unreadIds=(data.inbox||[]).filter(m=>!m.read).map(m=>m.mid);
|
||||
if(unreadIds.length)fetch('/api/public/msg-read',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({mids:unreadIds})}).catch(()=>{});
|
||||
// The inbox "Add mine" button was rendered with NO click handler, so it sat there
|
||||
// doing nothing (Marty, 2026-09-17). It opens the same optional profile dialog the
|
||||
// dashboard card uses, then re-renders so the banner disappears once it is done.
|
||||
const ac=document.getElementById('msgAddContact');
|
||||
if(ac)ac.addEventListener('click',async function(){
|
||||
ac.disabled=true;
|
||||
try{
|
||||
await window.RMCProfile.prompt({onlyForId:me.id,reason:'inbox'});
|
||||
const p2=await window.RMCProfile.status();
|
||||
if(p2&&p2.profile&&p2.profile.complete){ try{ renderAlerts({id:me.id}); }catch(e){} loadMsgUI(d); return; }
|
||||
}catch(e){}
|
||||
ac.disabled=false;
|
||||
});
|
||||
const sb=document.getElementById('msgSendBtn');
|
||||
if(sb)sb.addEventListener('click',async function(){
|
||||
const st=document.getElementById('msgStatus');st.textContent='Sending…';sb.disabled=true;
|
||||
|
||||
Reference in New Issue
Block a user