Aller au contenu

Détection de la locale

KanjiIQ détecte automatiquement la région de l'utilisateur et présente un sous-ensemble de langues pertinentes pour sa locale. Cela évite de submerger les utilisateurs avec un menu déroulant de 51 langues tout en rendant toutes les langues accessibles.

Chaîne de détection

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]

Ordre de priorité

Le détecteur de locale résout la locale de l'utilisateur via :

  1. Locale du compte — Si l'utilisateur a une préférence enregistrée
  2. Locale de l'appareilPlatform.localeName (ex. : pt_BR)
  3. Langue du navigateurnavigator.language (web uniquement)
  4. Valeur par défaut — English (en)

Locales préconfigurées

La table de base de données locale_configs stocke 30 correspondances de locale préconfigurées :

Locale Langues par défaut Total disponible
pt-BR Portuguese, English, Spanish 7
ja-JP Japanese, English, Chinese (Simplified), Korean 17
en-US English, Spanish, French 12
fr-FR French, English, Spanish, German 10
de-DE German, English, French, Dutch 10
ar-SA Arabic, English, French 8
hi-IN Hindi, English, Bengali, Tamil, Telugu, Punjabi 12
... ... ...

Chaque locale définit :

  • Langues par défaut : Affichées initialement (3 à 5 les plus pertinentes)
  • Langues disponibles : Ensemble régional complet (7 à 17 langues)

Bascule « Afficher toutes les langues »

Les utilisateurs peuvent toujours outrepasser la détection de la locale :

  • Un bouton bascule intitulé « Afficher les 51 langues » étend le sélecteur de langue à la liste complète
  • Cette préférence est persistée dans SharedPreferences
  • Une fois activée, elle remplace le filtrage basé sur la locale pour cet appareil

Endpoint API

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

Réponse :

{
  "locale": "pt-BR",
  "defaultLanguages": ["pt", "en", "es"],
  "availableLanguages": ["pt", "en", "es", "fr", "it", "de", "ca"],
  "showAllOption": true
}

Gestion administrative

Les configurations de locale sont gérées via le tableau de bord administrateur :

  • Ajouter de nouvelles locales en fonction de la demande des utilisateurs
  • Ajuster les listes de langues en fonction des analyses régionales
  • Consulter le trafic régional pour identifier les locales sous-desservies

Voir l'API administrateur à POST /api/v1/admin/locales pour la gestion de la configuration.