docs: update language references to include Italian and Swedish
README, SPEC.md, and BACKLOG.md now list all four supported locales: German (de), English (en), Italian (it), Swedish (sv).
This commit is contained in:
@@ -33,6 +33,7 @@ New suggestion? → [Open an issue](https://github.com/ulsklyc/oikos/issues/new?
|
||||
| - | Calendar: Fix all-day RFC 5545 DTEND, DURATION support, birthday sync | v0.5.6 |
|
||||
| - | Calendar: RRULE expansion fix (strip RRULE: prefix), YEARLY support | v0.5.7 |
|
||||
| - | Italian (it) localization (497 keys) | v0.5.8 |
|
||||
| - | Swedish (sv) localization (548 keys) - contributed by @olsson82 | v0.11.3 |
|
||||
| - | Security hardening: XSS, rate limiter bypass, OAuth CSRF, CSV injection, session invalidation | v0.5.9 |
|
||||
| - | Budget: Fix update failing when category changes | v0.6.0 |
|
||||
| - | Upgrade bcrypt 5 → 6, ESM migration, structured logger, remove SESSION_SECRET fallback | v0.7.0 |
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
**PWA Native Feel:** Installable on any device, works offline, dark mode, responsive from phone to desktop
|
||||
|
||||
**Multilingual:** German and English UI with automatic locale detection
|
||||
**Multilingual:** German, English, Italian, and Swedish UI with automatic locale detection
|
||||
|
||||
## Quick Start
|
||||
|
||||
|
||||
+3
-2
@@ -234,7 +234,7 @@ User management and app configuration. Logged-in users only.
|
||||
- **User management (admin):** create new users, edit/delete existing users, assign roles (admin/member)
|
||||
- **Calendar integration:** connect/disconnect Google Calendar OAuth, store Apple Calendar (CalDAV) credentials, configure sync interval
|
||||
- **Weather:** configure OpenWeatherMap location
|
||||
- **Language:** System (follows `navigator.language`), German, English - via `oikos-locale-picker` web component; switch without page reload
|
||||
- **Language:** System (follows `navigator.language`), German, English, Italian, Swedish - via `oikos-locale-picker` web component; switch without page reload
|
||||
- **App info:** version, license
|
||||
|
||||
### Budget (`/budget`)
|
||||
@@ -327,7 +327,7 @@ All UI strings are managed via `public/i18n.js`. No hardcoded text in JS files o
|
||||
### Architecture
|
||||
|
||||
- **Module:** `public/i18n.js` - exports: `initI18n()`, `setLocale()`, `t(key, params?)`, `getLocale()`, `getSupportedLocales()`, `formatDate(date)`, `formatTime(date)`
|
||||
- **Locale files:** `public/locales/de.json` (reference), `public/locales/en.json` - structure: `{ "module.camelCaseKey": "Value" }`
|
||||
- **Locale files:** `public/locales/de.json` (reference), `public/locales/en.json`, `public/locales/it.json`, `public/locales/sv.json` - structure: `{ "module.camelCaseKey": "Value" }`
|
||||
- **Variables:** `{{variable}}` syntax in translation strings, e.g. `t('tasks.assignedTo', { name: 'Anna' })`
|
||||
- **Fallback chain:** active locale → German (`de`) → key itself
|
||||
- **Date format:** `Intl.DateTimeFormat` with current locale - use `formatDate()` and `formatTime()` from `i18n.js`
|
||||
@@ -345,6 +345,7 @@ All UI strings are managed via `public/i18n.js`. No hardcoded text in JS files o
|
||||
| `de` | German | Reference locale (all keys defined here) |
|
||||
| `en` | English | Full translation |
|
||||
| `it` | Italian | Full translation (added v0.5.8) |
|
||||
| `sv` | Swedish | Full translation (added v0.11.3) |
|
||||
|
||||
### Adding a New Language
|
||||
|
||||
|
||||
Reference in New Issue
Block a user