Connect i18next to your Goodspeed app
Locale detection and JSON translation files generated per locale. lib/i18n.ts wires i18next with expo-localization for automatic language switching. Goodspeed wires i18next into every app that needs it at generation time, so you start with a working integration, not a blank config and a documentation tab.
WHAT GETS WIRED IN
Built into every i18next build
Every app Goodspeed generates with i18next includes these wired integrations from the first build. No manual setup required.
| Item | Description | Strength |
|---|---|---|
| getLocales() from expo-localization detects the device's preferred language and matches it against gasConfig.features.i18n.locales | getLocales() from expo-localization detects the device's preferred language and matches it against gasConfig.features.i18n.locales | 01 |
| Unrecognized locales fall back to gasConfig.features.i18n.defaultLocale instead of crashing | Unrecognized locales fall back to gasConfig.features.i18n.defaultLocale instead of crashing | 02 |
| DevAgent generates locales/en.json and one file per declared locale with matching key sets | DevAgent generates locales/en.json and one file per declared locale with matching key sets | 03 |
| i18next.init skipped entirely when gasConfig.features.i18n.enabled is false, keeping single-locale apps lightweight | i18next.init skipped entirely when gasConfig.features.i18n.enabled is false, keeping single-locale apps lightweight | 04 |
| .github/workflows/i18n.yml checks translation completeness on PRs, failing if any declared locale is missing a key | .github/workflows/i18n.yml checks translation completeness on PRs, failing if any declared locale is missing a key | 05 |
Source: gas-template repository · i18n
REAL GENERATED CODE
A snippet from a i18next integration the pipeline ships
This pattern comes directly from the gas-template codebase. The studio generates i18next integration code like this for every app that includes it, not a placeholder you have to fill in yourself.
Locale detection
// lib/i18n.ts function getDeviceLocale(): string { try { const locales = getLocales(); const deviceLang = locales[0]?.languageCode ?? i18nConfig.defaultLocale; if (i18nConfig.locales.includes(deviceLang)) { return deviceLang; } return i18nConfig.defaultLocale; } catch { return i18nConfig.defaultLocale; } }
Today's log
APPS THAT USE I18NEXT
Where this integration ships
These app types include i18next as part of the generated stack. Each link goes to a full spec page with capabilities, scored ideas, and a pipeline walkthrough.
- Build a Social App appBuilding a social app from scratch means solving hard infrastructure problems: real-time feeds, fan-out writes, notification delivery, and content moderation hooks. Goodspeed generates a complete sociSOCIAL APP
- Build a Productivity App appProductivity apps succeed when they remove friction from the moment the user decides to work. Goodspeed generates a productivity app with Pomodoro timer, focused task queue, distraction blocker hooks,PRODUCTIVITY APP