SubSovereign localization glossary
Richtlijn voor vertalers (mens of Merlyn). Vertaal elke productterm steeds op dezelfde manier, op elke pagina/doc/UI — consistentie maakt 26 talen professioneel, niet machinaal. Sommige termen zijn industrie-standaard en blijven in het Engels.
Houd in het Engels (NIET vertalen — eigennamen / universele tech-termen)
- SubSovereign (de productnaam)
- API, SDK, webhook, JSON, JWT, Redis, PostgreSQL, GDPR
- Winkel- en leveranciersnamen: Apple, Google, Amazon, Roku, Stripe
- SDK-methoden/veldnamen en code (bijv.
checkEntitlement(),appId)
Vertalen — en CONSEQUENT toepassen (definities voor de juiste term)
- entitlement — de toegang die een gebruiker heeft verkregen via een actieve aankoop/abonnementsvorm (bijv. "pro-functies ontgrendeld"). Het kernconcept. Kies één natuurlijke term per taal en gebruik deze overal.
- ontvangstvalidatie — het verifiëren van een winkel-aankoop op de server, direct bij de winkel, zodat de client niet kan worden vervalst. Gebruik bij voorkeur "server-side"-formuleringen.
- app — een door de ontwikkelaar geregistreerde toepassing in SubSovereign (een tenant). Niet de SDK, niet ons product.
- API-sleutel — de referentie die een SDK/app gebruikt om de SubSovereign API aan te roepen.
- abonnement — een terugkerend betaald abonnement.
- toegangsniveau / tier — het niveau van toegang dat een product biedt (bijv. gratis / pro / premium).
- zelf gehost — de ontwikkelaar draait het op eigen infrastructuur (vs. een derde-partij SaaS).
- soeverein / soevereiniteit — je bezit en beheert je eigen stack en data (VK/EU, geen derde-partij cloud die de data van je gebruikers vasthoudt). Een belangrijk verkoopargument — vertaal naar betekenis, behoud de ernst ervan.
- omzetverdeling — een percentage van de omzet van de ontwikkelaar dat als vergoeding wordt ingehouden. SubSovereign neemt geen deel — dit is een onderscheidend kenmerk ten opzichte van Adapty/RevenueCat. Vertaal duidelijk (bijv. "geen deel van je omzet").
- multi-tenant — één implementatie die meerdere geïsoleerde apps/organisaties bedient.
- dashboard — de web back-office waar een ontwikkelaar apps, sleutels en analyses beheert.
- betaalmuur — het scherm waar een app de gebruiker vraagt om te abonneren (de ontwikkelaar bouwt dit; onze SDK vertelt wat de gebruiker is geautoriseerd voor).
Toon
Gericht op app-ontwikkelaars, maar geschreven zodat een niet-technische lezer het kan volgen — helder, warm, zelfverzekerd. Gebruik korte zinnen. Leg waarom uit, niet alleen hoe.
SubSovereign op Roku — integratiehandleiding
Deze handleiding brengt je Roku-kanaal van "ik weet niet wie me betaald heeft" naar "mijn kanaal ontgrendelt de juiste functies voor de juiste gebruiker, geverifieerd op mijn eigen server." De SDK is één enkel BrightScript-bestand en vereist geen ervaring met abonnementssoftware.
Wat SubSovereign voor je doet
Je gebruikers abonneren zich via Roku Pay (de Roku Channel Store). SubSovereign beantwoordt één vraag voor je kanaal, betrouwbaar: waar heeft deze gebruiker precies voor betaald?
- Je kanaal vraagt SubSovereign naar de entitlement van de gebruiker — de toegang die ze hebben verkregen.
- De ontvangstvalidatie vindt plaats op de server, direct bij Roku, zodat een vervalste client geen abonnement kan faken.
- Het is zelf gehost: het draait op jouw infrastructuur, de data van je gebruikers blijft bij jou, en er is geen omzetverdeling — je behoudt 100% van wat je gebruikers betalen.
Je vertrouwt het apparaat nooit. Het apparaat vraagt; de server beslist.
Voordat je begint
Je hebt een draaiende SubSovereign-server nodig, een app geregistreerd in het dashboard (waarmee je een appId en een API-sleutel krijgt), en je toegangsniveaus (tiers, bijv. pro) aangemaakt en gekoppeld aan je Roku Pay-producten. Stel de producten in in de Roku Developer Dashboard en behandel de aankoop met roChannelStore zoals normaal — SubSovereign verifieert en registreert het daarna.
Stap 1 — Voeg de SDK toe
Plaats SubSovereign.brs in de source/ map van je kanaal. Dat is alles — geen pakketbeheer nodig. De HTTP-aanroepen gebruiken roUrlTransfer met het Roku-certificaatpakket al geconfigureerd.
Stap 2 — Configureer eenmalig bij opstarten van het kanaal
Roep SubSovereign_Configure vroeg aan (bijv. in je Main), en geef je API-sleutel, app-ID, een stabiele gebruikersidentificatie en je server-URL door:
SubSovereign_Configure("YOUR_APP_API_KEY", "your-app-id", userId, "https://subs.yourdomain.com/api/v1")
Gebruik dezelfde userId elke keer voor een bepaalde gebruiker, zodat hun toegang met hen meegaat over apparaten. (De configuratie staat op m, dus configureer op dezelfde thread als waar je vandaan roept — zie de opmerking in Stap 6.)
Stap 3 — Controleer waartoe de gebruiker toegang heeft
SubSovereign_CheckEntitlements() geeft een object terug. Lees hasAccess voor de snelle ja/nee:
result = SubSovereign_CheckEntitlements()
if result.hasAccess = true
unlockProFeatures()
else
showFreeExperience() ' gratis tier, of stuur ze naar de Channel Store
end if
Als de aanvraag mislukt, komt het object terug met hasAccess = false en een error-veld — dus een netwerkstoring leidt tot een gesloten (vergrendelde) status, nooit per ongeluk ontgrendeld.
Stap 4 — Verkoop een abonnement
Voer de aankoop uit via Roku Pay (roChannelStore) zoals normaal. Wanneer Roku een succesvolle transactie retourneert, geef je de transactionId (met het product-ID en het toegangsniveau dat het biedt) door aan SubSovereign, zodat de server het direct met Roku valideert:
result = SubSovereign_ValidateRokuPurchase(transactionId, productId, "pro")
if result.granted = true
entitlements = SubSovereign_CheckEntitlements() ' hercontroleer, ontgrendel dan
unlockProFeatures()
end if
De aankoop is pas echt wanneer de server deze heeft bevestigd met Roku.
Stap 5 — Feature flags en toestemming
Rol functies uit vanaf de server zonder een kanaal-update:
flags = SubSovereign_GetFeatureFlags()
if flags.newPlayer = true then showNewPlayer()
Vang GDPR-toestemming af (fire-and-forget):
purposes = { analytics: true, marketing: false }
SubSovereign_RecordConsent(purposes, "GDPR")
Stap 6 — Voer netwerk-aanroepen uit buiten de render-thread
SubSovereign_CheckEntitlements en SubSovereign_ValidateRokuPurchase wachten op de server (tot 15 seconden). Roep ze nooit aan op je render/UI-thread — een traag netwerk zou het scherm bevriezen. Voer ze uit binnen een Task-node en geef het resultaat terug naar je scène:
' in een functie van een Task-node:
SubSovereign_Configure(m.top.apiKey, m.top.appId, m.top.userId, m.top.baseUrl)
m.top.result = SubSovereign_CheckEntitlements() ' waargenomen veld waar de scène naar luistert
De fire-and-forget-aanroep SubSovereign_RecordConsent wacht niet op een antwoord en is veilig om direct aan te roepen.
Beste praktijken
- Controleer bij het opstarten van het kanaal zodat de toegang juist is voordat de gebruiker bij vergrendelde inhoud komt.
- Hercontroleer na een aankoop zodat de UI de nieuwe toegang direct weerspiegelt.
- Vertrouw nooit de client — vraag de server; die heeft de transactie geverifieerd met Roku.
- Gebruik altijd een Task-node voor de entitlement- en validatie-aanroepen.
Snelle referentie
| Je wilt… | Roep aan |
|---|---|
| De SDK instellen | SubSovereign_Configure(apiKey, appId, userId, baseUrl) |
| Zien wat de gebruiker heeft ontgrendeld | SubSovereign_CheckEntitlements() → object met hasAccess |
| Een Roku Pay-aankoop valideren | SubSovereign_ValidateRokuPurchase(transactionId, productId, accessLevel) |
| Feature flags lezen | SubSovereign_GetFeatureFlags() |
| GDPR-toestemming registreren | SubSovereign_RecordConsent(purposes, jurisdiction) |
Volgende stappen
- Andere platforms hebben hun eigen handleidingen: Android, iOS, Web / React Native.
- Nieuw met de concepten? Lees Hoe SubSovereign werkt.