Commit graph

2 commits

Author SHA1 Message Date
Hibryda
1d2975b07b feat(electrobun): 10 locale translations — de, es, fr, ja, uk, zh, he
All 7 new locale files with 134 keys each, matching en.json exactly.
ICU MessageFormat plurals per language:
- German/Spanish/French: one/other
- Japanese/Chinese: other only (no plural forms)
- Ukrainian: one/few/many/other (4 forms)
- Hebrew: one/two/other (3 forms)

Total: 10 languages (en, de, es, fr, ja, pl, uk, zh, ar, he)
Including 2 RTL (Arabic, Hebrew)
2026-03-22 10:46:47 +01:00
Hibryda
aae86a4001 feat(electrobun): i18n system — @formatjs/intl + Svelte 5 runes + 3 locales
- i18n.svelte.ts: store with $state locale + createIntl(), t() function,
  formatDate/Number/RelativeTime, getDir() for RTL, async setLocale()
- i18n.types.ts: TranslationKey union (codegen from en.json)
- locales/en.json: 200+ strings in ICU MessageFormat
- locales/pl.json: full Polish translation
- locales/ar.json: partial Arabic (validates 6-form plural + RTL)
- scripts/i18n-types.ts: codegen script for type-safe keys
- 6 components wired: StatusBar, AgentPane, CommandPalette,
  SettingsDrawer, SplashScreen, ChatInput
- Language selector in AppearanceSettings
- App.svelte: document.dir reactive for RTL
- CONTRIBUTING_I18N.md: guide for adding languages

Note: currently Electrobun-only. Will extract to @agor/i18n shared
package for both Tauri and Electrobun.
2026-03-22 10:28:13 +01:00