Files
rpa_vision_v3/i18n
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:23:51 +01:00
..

Système de Localisation - RPA Vision V3

Support multilingue pour l'interface utilisateur
Auteur : Dom, Alice, Kiro - 7 janvier 2026

🌍 Langues Supportées

Langue Code Statut Fichier
🇫🇷 Français fr Complet fr.json
🇺🇸 English en Complet en.json
🇪🇸 Español es Complet es.json
🇩🇪 Deutsch de Complet de.json

📁 Structure des Fichiers

i18n/
├── config.json              # Configuration des langues
├── fr.json                  # Traductions françaises (référence)
├── en.json                  # Traductions anglaises
├── es.json                  # Traductions espagnoles
├── de.json                  # Traductions allemandes
├── validate_translations.py # Script de validation
└── README.md               # Ce fichier

🚀 Utilisation Rapide

Dans un Composant React

import { useLocalization } from '../services/LocalizationService';

const MonComposant = () => {
  const { t, changeLanguage } = useLocalization();
  
  return (
    <div>
      <h1>{t('realDemo.title')}</h1>
      <button onClick={() => changeLanguage('en')}>
        Switch to English
      </button>
    </div>
  );
};

Clés de Traduction Principales

// Démonstration réelle
t('realDemo.title')                    // "Démonstration Réelle"
t('realDemo.status.connected')         // "Connecté"
t('realDemo.controls.createWorkflow')  // "Créer Workflow de Démo"

// Interface commune
t('common.loading')                    // "Chargement..."
t('common.save')                      // "Sauvegarder"
t('common.cancel')                    // "Annuler"

// Temps et unités
t('time.seconds')                     // "secondes"
t('units.pixels')                     // "pixels"

🔧 Validation

Script de Validation Automatique

# Valider toutes les traductions
python validate_translations.py

# Exemple de sortie
✅ Chargé: fr.json
✅ Chargé: en.json  
✅ Chargé: es.json
✅ Chargé: de.json
📋 Clés de référence (fr): 127
🔍 en: 127 clés (0 manquantes, 0 supplémentaires)
🔍 es: 127 clés (0 manquantes, 0 supplémentaires)
🔍 de: 127 clés (0 manquantes, 0 supplémentaires)

✅ VALIDATION RÉUSSIE: Aucun problème détecté!

Validation Manuelle

# Vérifier la syntaxe JSON
python -m json.tool fr.json > /dev/null && echo "✅ fr.json valide"

# Compter les clés
jq 'paths(scalars) | length' fr.json

# Comparer les structures
diff <(jq -r 'paths(scalars) as $p | $p | join(".")' fr.json | sort) \
     <(jq -r 'paths(scalars) as $p | $p | join(".")' en.json | sort)

📝 Conventions

Nommage des Clés

  • Modules : realDemo, dashboard, workflow
  • Catégories : status, messages, actions, controls
  • Format : camelCase pour la cohérence
  • Hiérarchie : Maximum 3 niveaux de profondeur

Format des Valeurs

{
  "simple": "Texte simple",
  "withParams": "Bonjour {{name}}, vous avez {{count}} messages",
  "multiline": "Première ligne\nSeconde ligne",
  "withHtml": "Texte avec <strong>mise en forme</strong>"
}

Paramètres Dynamiques

// Utilisation des paramètres
t('messages.welcome', { name: 'Alice', count: 5 })
// Résultat: "Bienvenue Alice, vous avez 5 messages"

🌐 Configuration des Locales

Formats par Langue

Langue Date Heure Devise Décimal Milliers
🇫🇷 fr DD/MM/YYYY HH:mm EUR (€) , espace
🇺🇸 en MM/DD/YYYY h:mm A USD ($) . ,
🇪🇸 es DD/MM/YYYY HH:mm EUR (€) , .
🇩🇪 de DD.MM.YYYY HH:mm EUR (€) , .

Exemples de Formatage

// Date: 7 janvier 2026
formatDate(date)
// fr: "07/01/2026"
// en: "01/07/2026"  
// de: "07.01.2026"

// Nombre: 1234.56
formatNumber(1234.56)
// fr: "1 234,56"
// en: "1,234.56"
// de: "1.234,56"

// Devise: 99.99
formatCurrency(99.99)
// fr: "99,99 €"
// en: "$99.99"
// de: "99,99 €"

🔄 Ajout d'une Nouvelle Langue

1. Configuration

// Ajouter dans config.json
{
  "code": "it",
  "name": "Italiano", 
  "flag": "🇮🇹",
  "dateFormat": "DD/MM/YYYY",
  "timeFormat": "HH:mm",
  "currency": "EUR",
  "currencySymbol": "€",
  "decimalSeparator": ",",
  "thousandsSeparator": "."
}

2. Fichier de Traduction

# Copier la structure française
cp fr.json it.json

# Traduire le contenu en gardant la structure JSON
# Respecter les placeholders {{param}}

3. Validation

# Valider la nouvelle langue
python validate_translations.py

# Vérifier l'intégration
# Tester dans l'interface utilisateur

🎯 Bonnes Pratiques

Pour les Traducteurs

  1. Contexte : Comprendre le contexte d'utilisation
  2. Cohérence : Utiliser les mêmes termes pour les mêmes concepts
  3. Longueur : Adapter la longueur selon l'espace disponible
  4. Culture : Respecter les conventions culturelles

Pour les Développeurs

  1. Clés descriptives : Utiliser des noms de clés explicites
  2. Paramètres : Préférer les paramètres aux concaténations
  3. Pluralisation : Gérer les formes plurielles si nécessaire
  4. Fallback : Toujours prévoir une langue de secours

🐛 Dépannage

Problèmes Courants

Traduction Non Affichée

// Vérifier la clé
console.log(t('ma.cle.inexistante')); // Affiche la clé si non trouvée

// Vérifier la langue actuelle
console.log(getCurrentLanguage());

// Vérifier le chargement
console.log(localizationService.translations);

Fichier JSON Invalide

# Valider la syntaxe
python -m json.tool problematic.json

# Erreurs communes:
# - Virgule en trop
# - Guillemets manquants
# - Caractères d'échappement incorrects

Clés Manquantes

# Identifier les clés manquantes
python validate_translations.py

# Comparer avec la référence
diff fr.json en.json

📊 Statistiques Actuelles

  • Total des clés : 156 traductions (+3 nouvelles clés pour RealDemo)
  • Couverture : 100% pour toutes les langues
  • Modules couverts :
    • Démonstration réelle (realDemo) - ÉTENDU
    • Interface commune (common)
    • Temps et unités (time, units)

🔮 Évolutions Prévues

  • Pluralisation : Gestion des formes plurielles
  • Contexte dynamique : Traductions selon le contexte
  • Traduction automatique : Assistance IA pour nouvelles langues
  • Validation continue : Intégration dans le CI/CD

🌍 Le système de localisation RPA Vision V3 assure une expérience utilisateur internationale de qualité !