Files
opencode-mobile/package.json
Den baf73058fd feat(i18n): add i18n infrastructure + Simplified Chinese, localize Settings screen (refs #68) (#97)
- Add expo-localization, i18next, react-i18next (versions aligned with
  Expo 54 / RN 0.81)
- src/lib/i18n/locale-resolve.ts: pure locale-resolution helpers
  (system tag -> supported catalog, with en fallback), unit-tested via
  node --test with no RN imports
- src/lib/i18n/config.ts: i18next init wired to expo-localization
  device detection, en.json + zh-Hans.json catalogs
- Persist a locale preference (system | en | zh-Hans) in the settings
  zustand store, applied immediately via i18next.changeLanguage
- Wire I18nextProvider in app/_layout.tsx
- Localize the Settings screen (~28 strings) as the reference pattern
  for extracting user-facing strings, with a language picker row and
  reviewed Simplified Chinese translations

Other screens (session/[id], connection/*, index, chat components)
are deferred follow-up — issue #68 stays open for that work.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 02:47:18 -07:00

65 lines
1.8 KiB
JSON

{
"name": "@opencode-ai/mobile",
"version": "0.4.7",
"private": true,
"main": "expo-router/entry",
"scripts": {
"start": "expo start",
"start:clear": "expo start --clear",
"ios": "expo run:ios",
"android": "expo run:android",
"typecheck": "tsc --noEmit",
"test": "node --test 'src/**/*.test.ts'"
},
"dependencies": {
"@expo/vector-icons": "^15.0.3",
"@gorhom/bottom-sheet": "5.2.8",
"@react-native-async-storage/async-storage": "2.2.0",
"@react-navigation/native": "^7.0.14",
"@sentry/react-native": "~6.22.0",
"@tanstack/react-query": "^5.62.0",
"expo": "^54.0.0",
"expo-clipboard": "8.0.8",
"expo-crypto": "~15.0.9",
"expo-device": "~8.0.10",
"expo-image-manipulator": "~14.0.8",
"expo-image-picker": "17.0.10",
"expo-linking": "~8.0.11",
"expo-local-authentication": "~17.0.8",
"expo-localization": "~17.0.9",
"expo-notifications": "~0.32.16",
"expo-router": "~6.0.22",
"expo-secure-store": "~15.0.8",
"expo-speech-recognition": "3.0.1",
"expo-status-bar": "~3.0.9",
"expo-store-review": "~9.0.9",
"i18next": "^26.3.6",
"posthog-react-native": "^4.57.0",
"react": "19.1.0",
"react-i18next": "^17.0.10",
"react-native": "0.81.5",
"react-native-gesture-handler": "~2.28.0",
"react-native-marked": "8.0.0",
"react-native-reanimated": "~4.1.1",
"react-native-safe-area-context": "~5.6.0",
"react-native-screens": "~4.16.0",
"react-native-svg": "15.15.1",
"react-native-worklets": "0.5.1",
"zustand": "^5.0.2"
},
"devDependencies": {
"@types/react": "~19.1.10",
"typescript": "~5.9.2"
},
"expo": {
"install": {
"exclude": []
},
"autolinking": {
"buildFromSource": [
".*"
]
}
}
}