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:
martbost
2026-09-17 06:39:08 -05:00
parent 1c51599f07
commit 88a3ad1149
15 changed files with 3229 additions and 132 deletions
+5 -5
View File
@@ -8,7 +8,7 @@
<main>
<section class="section"><div class="wrap"><div class="section-head"><div class="eyebrow">Team training</div><h1 style="font-size:clamp(34px,5vw,54px);margin:8px 0 10px">Watch. Learn. <span class="gold">Duplicate.</span></h1><p>Short videos take you from zero to your Premium position — in order. Watch them all before you join, and share this page with your two directs when it's their turn.</p></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 1 · 5 min · UPDATED</div><h2 style="margin:6px 0 6px">How the team build works</h2><p style="color:var(--muted);margin:0 0 12px">The full picture in five minutes: the 2-direct strategy, both income streams, the catch-or-pass rule, spillover, the moving link, and how your dashboard coaches you through all of it.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/v/rmc-team-overview-poster.jpg" src="/v/rmc-team-overview-f8856dc743.mp4"><track kind="captions" srclang="en" label="English" src="/captions/rmc-team-overview-f8856dc743.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/rmc-team-overview-f8856dc743.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/rmc-team-overview-f8856dc743.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/rmc-team-overview-f8856dc743.es.vtt"></video></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 1 · 5 min · UPDATED</div><h2 style="margin:6px 0 6px">How the team build works</h2><p style="color:var(--muted);margin:0 0 12px">The full picture in five minutes: the 2-direct strategy, both income streams, the catch-or-pass rule, spillover, the moving link, and how your dashboard coaches you through all of it.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/v/rmc-team-overview-poster.jpg" src="/v/rmc-team-overview-f8856dc743.mp4"><track kind="captions" srclang="en" label="English" src="/captions/rmc-team-overview-f8856dc743.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/rmc-team-overview-f8856dc743.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/rmc-team-overview-f8856dc743.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/rmc-team-overview-f8856dc743.es.vtt"><track kind="captions" srclang="de" label="Deutsch" src="/captions/rmc-team-overview-f8856dc743.de.vtt"><track kind="captions" srclang="pt" label="Português" src="/captions/rmc-team-overview-f8856dc743.pt.vtt"></video></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 2 · 3 min</div><h2 style="margin:6px 0 6px">Create your MetaMask wallet</h2><p style="color:var(--muted);margin:0 0 12px">Install MetaMask safely and set up your wallet. Never share your Secret Recovery Phrase with anyone.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/training/create_metamask_wallet_poster.jpg" src="/training/create_metamask_wallet.mp4"></video></div>
@@ -16,14 +16,14 @@
<div class="callout" style="max-width:880px;margin:0 auto 26px"><strong>💳 Brand new to crypto? You can buy POL with a card.</strong> If you don't have crypto anywhere yet, the simplest path is <a href="https://www.moonpay.com/buy/matic" target="_blank" rel="noopener nofollow">MoonPay</a> — buy with a debit/credit card, Apple Pay, or Google Pay. Three things to get right: choose <strong>POL on the Polygon network</strong> (MoonPay may show POL's old name, <em>MATIC</em> — same token), paste <strong>your own wallet address</strong> from Video 2 as the destination, and buy about <strong>385 POL</strong> (the 362 entry plus a little gas<span id="fundUsdNote"></span>). Why the extra? Think of it like a car: the blockchain is the road and POL is also the fuel — every transaction burns a tiny bit of "gas" to move, so you keep a little in the tank beyond your entry. A wallet with an empty tank can't go anywhere. The crypto is delivered straight to your wallet — this site never touches your money. MoonPay handles ID verification and charges its own card fee (~4.5%); a first purchase can take a few minutes to arrive. The join page will also offer this automatically if your connected wallet is short.</div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 4 · 4 min · the new way to join</div><h2 style="margin:6px 0 6px">Joining right on the site — connect wallet &amp; buy your position</h2><p style="color:var(--muted);margin:0 0 12px">The whole join process, start to finish: open your invite link (or <a href="/start" style="color:var(--teal)">the start page</a>), connect your wallet, and buy your Premium position in one guided flow — the sponsor ID is filled in for you automatically.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/training/new_integrated_join_process_poster.jpg" src="/training/new_integrated_join_process.mp4"><track kind="captions" srclang="en" label="English" src="/captions/new_integrated_join_process.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/new_integrated_join_process.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/new_integrated_join_process.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/new_integrated_join_process.es.vtt"></video></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 4 · 4 min · the new way to join</div><h2 style="margin:6px 0 6px">Joining right on the site — connect wallet &amp; buy your position</h2><p style="color:var(--muted);margin:0 0 12px">The whole join process, start to finish: open your invite link (or <a href="/start" style="color:var(--teal)">the start page</a>), connect your wallet, and buy your Premium position in one guided flow — the sponsor ID is filled in for you automatically.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/training/new_integrated_join_process_poster.jpg" src="/training/new_integrated_join_process.mp4"><track kind="captions" srclang="en" label="English" src="/captions/new_integrated_join_process.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/new_integrated_join_process.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/new_integrated_join_process.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/new_integrated_join_process.es.vtt"><track kind="captions" srclang="de" label="Deutsch" src="/captions/new_integrated_join_process.de.vtt"><track kind="captions" srclang="pt" label="Português" src="/captions/new_integrated_join_process.pt.vtt"></video></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 5 · 5 min · backup method</div><h2 style="margin:6px 0 6px">Buying the Premium position in the dApp</h2><p style="color:var(--muted);margin:0 0 12px">If the on-site wallet connect isn't an option for you, you can still join the original way: connect to the RM Circle dApp with the current team sponsor and complete your Premium entry there. Double-check the sponsor ID matches the start page before signing.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/training/buying_the_premium_position_poster.jpg" src="/training/buying_the_premium_position.mp4"><track kind="captions" srclang="en" label="English" src="/captions/buying_the_premium_position.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/buying_the_premium_position.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/buying_the_premium_position.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/buying_the_premium_position.es.vtt"></video></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 5 · 5 min · backup method</div><h2 style="margin:6px 0 6px">Buying the Premium position in the dApp</h2><p style="color:var(--muted);margin:0 0 12px">If the on-site wallet connect isn't an option for you, you can still join the original way: connect to the RM Circle dApp with the current team sponsor and complete your Premium entry there. Double-check the sponsor ID matches the start page before signing.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/training/buying_the_premium_position_poster.jpg" src="/training/buying_the_premium_position.mp4"><track kind="captions" srclang="en" label="English" src="/captions/buying_the_premium_position.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/buying_the_premium_position.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/buying_the_premium_position.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/buying_the_premium_position.es.vtt"><track kind="captions" srclang="de" label="Deutsch" src="/captions/buying_the_premium_position.de.vtt"><track kind="captions" srclang="pt" label="Português" src="/captions/buying_the_premium_position.pt.vtt"></video></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 6 · 3 min · payments explained</div><h2 style="margin:6px 0 6px">Why you're not getting paid <span class="gold">yet</span> — direct rewards vs pass-ups</h2><p style="color:var(--muted);margin:0 0 12px">The #1 thing that confuses new members: how direct payments differ from upgrade pass-ups, which <strong style="color:var(--text)">generation</strong> gets paid, and in what order. Watch this the moment you wonder "where's my payment?" — it walks a real, on-chain example.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/training/how-payments-work-poster.jpg" src="/v/rmc-how-payments-work-47533beedc.mp4"></video></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 7 · 97 sec · why leveling up matters</div><h2 style="margin:6px 0 6px">Your level is your <span class="gold">reach</span></h2><p style="color:var(--muted);margin:0 0 12px">You don't need to own a level to catch your team's first upgrades — being qualified is enough. But every level you own extends your reach exactly <strong style="color:var(--text)">one generation deeper</strong>, and payments you can't catch pass over you. 97 seconds on the single rule behind "stay one level ahead of your deepest active layer."</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/v/rmc-level-reach-poster.jpg" src="/v/rmc-level-reach-65b337be4d.mp4"><track kind="captions" srclang="en" label="English" src="/captions/rmc-level-reach-65b337be4d.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/rmc-level-reach-65b337be4d.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/rmc-level-reach-65b337be4d.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/rmc-level-reach-65b337be4d.es.vtt"></video></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 7 · 97 sec · why leveling up matters</div><h2 style="margin:6px 0 6px">Your level is your <span class="gold">reach</span></h2><p style="color:var(--muted);margin:0 0 12px">You don't need to own a level to catch your team's first upgrades — being qualified is enough. But every level you own extends your reach exactly <strong style="color:var(--text)">one generation deeper</strong>, and payments you can't catch pass over you. 97 seconds on the single rule behind "stay one level ahead of your deepest active layer."</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/v/rmc-level-reach-poster.jpg" src="/v/rmc-level-reach-65b337be4d.mp4"><track kind="captions" srclang="en" label="English" src="/captions/rmc-level-reach-65b337be4d.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/rmc-level-reach-65b337be4d.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/rmc-level-reach-65b337be4d.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/rmc-level-reach-65b337be4d.es.vtt"><track kind="captions" srclang="de" label="Deutsch" src="/captions/rmc-level-reach-65b337be4d.de.vtt"><track kind="captions" srclang="pt" label="Português" src="/captions/rmc-level-reach-65b337be4d.pt.vtt"></video></div>
<div id="textbook-play" class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow" style="color:var(--gold)">NEW · 1 min 51 · patience pays</div><h2 style="margin:6px 0 6px">The Textbook Play — a real position, run <span class="gold">by the book</span></h2><p style="color:var(--muted);margin:0 0 12px">One of our team builders near the top opens his own position's books: one entry out of pocket, every catch kept, every rung paid for by the catch before it — and this week's Apex catch landing and going straight back up the same hour. Watch what patience, consistency, and position actually look like on-chain, why payments pass over positions that stand still, and how your dashboard's pipeline panel shows your own next play.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="none" poster="/v/rmc-textbook-play-poster.jpg" src="/v/rmc-textbook-play-e352d39721.mp4"><track kind="captions" srclang="en" label="English" src="/captions/rmc-textbook-play-e352d39721.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/rmc-textbook-play-e352d39721.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/rmc-textbook-play-e352d39721.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/rmc-textbook-play-e352d39721.es.vtt"></video></div>
<div id="textbook-play" class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow" style="color:var(--gold)">NEW · 1 min 51 · patience pays</div><h2 style="margin:6px 0 6px">The Textbook Play — a real position, run <span class="gold">by the book</span></h2><p style="color:var(--muted);margin:0 0 12px">One of our team builders near the top opens his own position's books: one entry out of pocket, every catch kept, every rung paid for by the catch before it — and this week's Apex catch landing and going straight back up the same hour. Watch what patience, consistency, and position actually look like on-chain, why payments pass over positions that stand still, and how your dashboard's pipeline panel shows your own next play.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="none" poster="/v/rmc-textbook-play-poster.jpg" src="/v/rmc-textbook-play-e352d39721.mp4"><track kind="captions" srclang="en" label="English" src="/captions/rmc-textbook-play-e352d39721.en.vtt"><track kind="captions" srclang="it" label="Italiano" src="/captions/rmc-textbook-play-e352d39721.it.vtt"><track kind="captions" srclang="fr" label="Français" src="/captions/rmc-textbook-play-e352d39721.fr.vtt"><track kind="captions" srclang="es" label="Español" src="/captions/rmc-textbook-play-e352d39721.es.vtt"><track kind="captions" srclang="de" label="Deutsch" src="/captions/rmc-textbook-play-e352d39721.de.vtt"><track kind="captions" srclang="pt" label="Português" src="/captions/rmc-textbook-play-e352d39721.pt.vtt"></video></div>
<div class="video-card" style="max-width:880px;margin:0 auto 26px"><div style="padding:6px 6px 0"><div class="eyebrow">Video 7 · 14 min · your daily driver</div><h2 style="margin:6px 0 6px">The Member Dashboard — full walkthrough</h2><p style="color:var(--muted);margin:0 0 12px">Everything your dashboard does, end to end: your position and team, the pipeline that shows money forming below you, upgrading your level right on the page, wallet-verified Messages, the Coach Your Team panel, and grabbing your personalized promo tools and QR code. Watch this once and you'll never wonder what to do next.</p></div><video class="video-frame" style="display:block;width:100%;height:auto;aspect-ratio:16/9" controls preload="metadata" poster="/training/dashboard_walkthrough_poster.jpg" src="/training/dashboard_walkthrough.mp4"></video></div>