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
Best-effort draft
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
., nest. -
iOS .strings
→
"key" = "value";lines. -
Android XML
→
<string name="key">value</string>, with dots turned to underscores. -
Flutter ARB
→ JSON with
"@@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?
with the closest match — we'll send you a draft and add the guide if it works.