Pull translations into your stack.
Most BeMyWords integrations are build-time — translations are baked into your build, so your deployed app has no runtime dependency on us: if we're down, your next build fails, but production keeps running on its last build. Script mode (Tilda and other hosted sites) is the exception — it translates at runtime.
Pick your platform.
Tilda / hosted sites
Script mode — no build
Astro
Production-verified
Rails i18n
Production-verified
React + i18next
Step-by-step guide
Next.js
App + Pages Router
Vue 3
vue-i18n
iOS
.strings
Android
strings.xml
Flutter
ARB + intlThe shape, if you're rolling your own
The fetch step is the same across every framework. In pseudocode:
for each language in supported_languages:
GET /api//latest//
Authorization: Token token=
→ write to framework's expected location, in framework's expected format
BeMyWords returns flat dot-separated keys as JSON:
{
"home.hero.title": "Localization for solo devs and small teams",
"home.hero.subtitle": "Cheap, simple, developer-first."
}
Your conversion step — if any — turns this into:
- Flat JSON (React, Vue, Next.js) → no conversion.
- Nested YAML (Rails) → split on the dot, nest.
- iOS .strings → one "key" = "value"; line per string.
- Android XML → a <string name="key">value</string> element per string, with dots turned to underscores.
- Flutter ARB → JSON with an "@@locale" meta key.
Using the translate page
Translate filter reference — every filter on the editor's filter bar, what it shows, when to reach for it, and the rule it actually applies. Search, status, pills, dates, people, namespace, and target language all in one place, with a sticky index that follows you down the page.
Don't see your stack?
Email support@bemywords.no with the closest match — we'll write the guide and add it here once it's verified.