Documentation
Pull translations into your stack.
BeMyWords is build-time infrastructure. Your deployed app has no runtime dependency — translations are baked into the build. If we're down, your next build fails; production keeps running on its last build.
Pick your platform.
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.