Appearance
Migration overview
Move to StringPush from JSON-in-repo libraries or a translation management system (TMS).
Choose your path
mermaid
flowchart TD
Start[Existing setup?]
Start --> Lib[i18next / react-intl / vue-i18n]
Start --> TMS[Phrase / Lokalise / Crowdin]
Lib --> Code[Replace SDK calls + publish bundles]
TMS --> Data[Export JSON + map keys]
Code --> Overlay[Optional: staging overlay]
Data --> OverlayComparison
| StringPush | JSON in repo (i18next) | Enterprise TMS | |
|---|---|---|---|
| Runtime delivery | CDN bundles | Bundled with app | CDN or API |
| In-context edit | Staging overlay | No | Often yes |
| Developer keys in repo | No (CDN fetch) | Yes | Varies |
| Git sync | Beta (export → PR) — guide | Native | Export/import |
Effort guide
| Source | Effort | Guide |
|---|---|---|
| i18next / react-i18next | S–M | From i18next |
| react-intl / FormatJS | M | Coming soon |
| vue-i18n | M | Coming soon |
| Phrase / Lokalise / Crowdin | M–L | Coming soon (JSON export path) |
General steps
- Export strings from the old system (JSON preferred).
- Import keys into StringPush (admin UI or API; bulk import API on roadmap).
- Swap runtime initialization in your app.
- Run staging in parallel until copy is verified.
- Cut over production
environmentand allowed domains.
Honest gaps
- Bi-directional Git sync with conflict policies — Enterprise; one-way export → PR is in beta (Git sync).
- Bulk XLIFF/PO import — on the roadmap.
- Rich
<Trans>with nested components — use plaint()or values-only<Trans>in v1.