Skip to content

feat: add Spanish and Italian language support with LanguagePicker - #37

Merged
Logarex merged 3 commits into
Logarex:mainfrom
mkocustos:feat/i18n-spanish-italian
May 19, 2026
Merged

feat: add Spanish and Italian language support with LanguagePicker#37
Logarex merged 3 commits into
Logarex:mainfrom
mkocustos:feat/i18n-spanish-italian

Conversation

@mkocustos

Copy link
Copy Markdown
Contributor

Closes part of #13 (Spanish ✅, Italian ✅ — German was already added in #17)

Summary

  • Adds full Spanish (es) and Italian (it) translations for all namespaces:
    common, auth, recipes, editor, importRecipe, settings, privacy
  • Adds spanish and italian keys to all 5 language blocks (fr, en, de, es, it)
  • Extends the language type to "fr" | "en" | "de" | "es" | "it" and exports
    it as AppLanguage from PreferencesProvider
  • Updates device language auto-detection to include es and it

New component: LanguagePicker

With 5 languages, a SegmentedControl (horizontal pill buttons) no longer fits
the screen. The language selector is replaced by a LanguagePicker component:
a pressable trigger (selected language + chevron) that opens a bottom-sheet
Modal — following the same pattern as CategoryPickerModal in RecipeListScreen.

The API is identical to SegmentedControl (value, options, onChange),
so both SettingsScreen and LoginScreen needed only a simple swap.

Files changed

File Change
src/i18n/index.ts es and it translation blocks; spanish/italian keys in all 5 language blocks; updated detection logic
src/features/preferences/PreferencesProvider.tsx AppLanguage type exported; extended to 5 languages; resolveInitialLanguage helper
src/components/LanguagePicker.tsx New component — trigger + bottom-sheet Modal
src/screens/SettingsScreen.tsx SegmentedControlLanguagePicker
src/screens/LoginScreen.tsx SegmentedControlLanguagePicker (language picker added for the first time on this branch)

Testing

Tested on Apple iPhone with Expo Go. Language switching works in both
Settings and on the Login screen. Auto-detection correctly picks up the
device locale for all 5 supported languages.

mkocustos and others added 3 commits May 18, 2026 21:12
…Picker

- Add full es and it translations for all namespaces
- Add settings.spanish and settings.italian keys to all 5 language blocks
- Export AppLanguage type from PreferencesProvider; extend to 5 languages
- Update device language detection to include es and it
- New LanguagePicker component: pressable trigger + bottom-sheet Modal,
  follows the CategoryPickerModal pattern from RecipeListScreen
- Replace SegmentedControl with LanguagePicker in SettingsScreen and LoginScreen
  (LoginScreen now also gets the language picker for the first time on this branch)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Logarex
Logarex merged commit 25298f8 into Logarex:main May 19, 2026
@Logarex

Logarex commented May 19, 2026

Copy link
Copy Markdown
Owner

Once again, thank you!

Logarex added a commit that referenced this pull request Jun 25, 2026
feat: add Spanish and Italian language support with LanguagePicker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants