Zum Inhalt

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:

  1. Konto-Locale — Wenn der Benutzer eine gespeicherte Einstellung hat
  2. Geräte-LocalePlatform.localeName (z.B. pt_BR)
  3. Browser-Sprachenavigator.language (nur Web)
  4. 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 SharedPreferences gespeichert
  • Einmal aktiviert, überschreibt sie die locale-basierte Filterung für dieses Gerät

API-Endpunkt

GET /api/v1/config/locale/:locale

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.