Locale-Erkennung¶
KanjiIQ erkennt automatisch die Region des Benutzers und zeigt eine kuratierte Auswahl von Sprachen an, die für sein Locale relevant sind. Dies vermeidet es, Benutzer mit einem 51-Sprachen-Dropdown zu überfordern, während alle Sprachen weiterhin zugänglich bleiben.
Erkennungskette¶
graph TD
A[New User Visit] --> B[Read device locale<br/>Platform.localeName]
B --> C[Extract locale code<br/>e.g., pt-BR, en-US, ja-JP]
C --> D{Cached config<br/>available?}
D -->|Yes, < 7 days| E[Use cached config]
D -->|No| F[API call:<br/>GET /api/v1/config/locale/:locale]
F --> G{Locale<br/>recognized?}
G -->|Yes| H[Return locale config<br/>7-17 languages]
G -->|No| I[Return default config<br/>12 major languages]
H --> J[Cache in SharedPreferences<br/>TTL: 7 days]
I --> J
J --> K[Display language selector]
Prioritätsreihenfolge¶
Der Locale-Detektor löst das Benutzer-Locale auf über:
- Konto-Locale — Wenn der Benutzer eine gespeicherte Einstellung hat
- Geräte-Locale —
Platform.localeName(z.B.pt_BR) - Browser-Sprache —
navigator.language(nur Web) - Fallback — Englisch (
en)
Vorkonfigurierte Locales¶
Die locale_configs-Datenbanktabelle speichert 30 vorkonfigurierte Locale-Zuordnungen:
| Locale | Standardsprachen | Gesamt verfügbar |
|---|---|---|
pt-BR |
Portugiesisch, Englisch, Spanisch | 7 |
ja-JP |
Japanisch, Englisch, Chinesisch (Vereinfacht), Koreanisch | 17 |
en-US |
Englisch, Spanisch, Französisch | 12 |
fr-FR |
Französisch, Englisch, Spanisch, Deutsch | 10 |
de-DE |
Deutsch, Englisch, Französisch, Niederländisch | 10 |
ar-SA |
Arabisch, Englisch, Französisch | 8 |
hi-IN |
Hindi, Englisch, Bengalisch, Tamil, Telugu, Punjabi | 12 |
| ... | ... | ... |
Jedes Locale definiert:
- Standardsprachen: Anfänglich angezeigt (3-5 relevanteste)
- Verfügbare Sprachen: Vollständiger regionaler Satz (7-17 Sprachen)
Schalter "Alle Sprachen anzeigen"¶
Benutzer können die Locale-Erkennung jederzeit überschreiben:
- Ein Schalter mit der Beschriftung "Alle 51 Sprachen anzeigen" erweitert die Sprachauswahl auf die vollständige Liste
- Diese Einstellung wird in
SharedPreferencesgespeichert - Einmal aktiviert, überschreibt sie die locale-basierte Filterung für dieses Gerät
API-Endpunkt¶
Antwort:
{
"locale": "pt-BR",
"defaultLanguages": ["pt", "en", "es"],
"availableLanguages": ["pt", "en", "es", "fr", "it", "de", "ca"],
"showAllOption": true
}
Admin-Verwaltung¶
Locale-Konfigurationen werden über das Admin-Dashboard verwaltet:
- Neue Locales hinzufügen, wenn Benutzerbedarf entsteht
- Sprachlisten anpassen basierend auf regionalen Analysen
- Regionalen Datenverkehr anzeigen, um unterversorgte Locales zu identifizieren
Siehe die Admin-API unter POST /api/v1/admin/locales für die Konfigurationsverwaltung.