Text components get t() calls with useTranslation hooks injected, and the i18next init is scaffolded with bundled resources — no RSC gotchas, no network loaders.
React Native i18n means react-i18next with bundled resources — there's no public/ directory to serve catalogs from. Polyglot wraps your screens and scaffolds an init module whose dictionaries ship inside the bundle.
import { View, Text } from 'react-native';
export default function HomeScreen() {
return (
<View>
<Text>Welcome back</Text>
<Text>Your projects are ready</Text>
</View>
);
}import { View, Text } from 'react-native';
import { useTranslation } from 'react-i18next';
export default function HomeScreen() {
const { t } = useTranslation('src.screens.HomeScreen');
return (
<View>
<Text>{t('welcome_back')}</Text>
<Text>{t('your_projects_are_ready')}</Text>
</View>
);
}Every component is treated as a client component (there's no RSC in React Native), so hooks are injected wherever strings are wrapped — no server-component guard needed, and Polyglot knows that.
{
"src": {
"screens": {
"HomeScreen": {
"welcome_back": "Welcome back",
"your_projects_are_ready": "Your projects are ready"
}
}
}
}{
"src": {
"screens": {
"HomeScreen": {
"welcome_back": "Willkommen zurück",
"your_projects_are_ready": "Ihre Projekte sind bereit"
}
}
}
}{
"src": {
"screens": {
"HomeScreen": {
"welcome_back": "Bon retour",
"your_projects_are_ready": "Vos projets sont prêts"
}
}
}
}The generated init uses initReactI18next with resources derived from the same catalog translate fills — one source of truth, bundled at build.
$ curl -fsSL https://getpolyglot.ai/install.sh | sh
$ polyglot init --framework react-native
$ polyglot scan
$ polyglot wrap
$ polyglot translate --languages de # 50 strings free, no signupIm Terminal starten
Installieren Sie die CLI, führen Sie einen Scan durch und sehen Sie genau, was Ihnen fehlt. Kostenlos, kein Konto erforderlich.