feat(i18n): complete post-launch i18n phases 5-8
Some checks failed
CI / dependency-scanning (push) Successful in 28s
CI / docs (push) Has been skipped
CI / deploy (push) Has been skipped
CI / ruff (push) Successful in 12s
CI / pytest (push) Failing after 47m21s
CI / validate (push) Successful in 25s

- Phase 5: Translate homepage-modern.html (~90 new locale keys, all
  hardcoded strings replaced with _() calls for dashboard mock,
  features, pricing tiers, testimonial sections)
- Phase 6: Translate homepage-minimal.html (17 new locale keys for
  fallback content, features, and CTA sections)
- Phase 7: Add multi-language page.title/content support with
  title_translations and content_translations JSON columns, Alembic
  migration cms_002, translated title/content resolution in templates,
  and seed script updates with tt() helper
- Phase 8: Complete lb.json audit — fill 6 missing keys (messages,
  confirmations), also backfill same keys in fr.json and de.json

All 4 locale files now have 340 keys with full parity.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-03 05:50:06 +01:00
parent 05c53e1865
commit b8aa484653
16 changed files with 965 additions and 235 deletions

View File

@@ -102,7 +102,8 @@
"signup_without": "S'inscrire sans Letzshop",
"looking_up": "Recherche de votre boutique...",
"found": "Trouvé :",
"claimed_badge": "Déjà réclamée"
"claimed_badge": "Déjà réclamée",
"error_lookup": "La recherche a échoué. Veuillez réessayer."
},
"signup": {
"step_plan": "Choisir le plan",
@@ -130,7 +131,18 @@
"no_charge_note": "Vous ne serez pas débité avant la fin de votre essai de {trial_days} jours.",
"processing": "Traitement en cours...",
"start_trial": "Démarrer l'essai gratuit",
"creating_account": "Création de votre compte..."
"creating_account": "Création de votre compte...",
"page_title": "Démarrez votre essai gratuit",
"required_fields": "Champs obligatoires",
"trial_info_days": "jours d'essai gratuit.",
"error_start": "Échec du démarrage de l'inscription. Veuillez réessayer.",
"error_account": "Échec de la création du compte. Veuillez réessayer.",
"error_payment_config": "Paiement non configuré. Veuillez contacter le support.",
"error_payment": "Le paiement a échoué. Veuillez réessayer.",
"orders_per_month": "commandes/mois",
"unlimited": "Illimité",
"team_members": "utilisateurs",
"per_month_short": "/mois"
},
"success": {
"title": "Bienvenue sur Orion !",
@@ -152,6 +164,17 @@
"subtitle": "Rejoignez les vendeurs Letzshop qui font confiance à Orion pour leur gestion de commandes. Commencez votre essai gratuit de {trial_days} jours aujourd'hui.",
"button": "Essai gratuit"
},
"content_page": {
"home": "Accueil",
"published": "Publié le",
"last_updated": "Dernière mise à jour :",
"cta_about_title": "Prêt à commencer ?",
"cta_contact_title": "Des questions ?",
"cta_about_subtitle": "Rejoignez des milliers de boutiques qui vendent déjà sur notre plateforme",
"cta_contact_subtitle": "Notre équipe est là pour vous aider à réussir",
"cta_about_button": "Contactez-nous",
"cta_contact_button": "Envoyez-nous un message"
},
"footer": {
"tagline": "OMS léger pour les vendeurs Letzshop. Gérez commandes, stocks et facturation.",
"quick_links": "Liens rapides",
@@ -162,7 +185,8 @@
"terms": "Conditions d'utilisation",
"about": "À propos",
"faq": "FAQ",
"contact_us": "Nous contacter"
"contact_us": "Nous contacter",
"all_rights_reserved": "Tous droits réservés."
},
"modern": {
"badge_integration": "Intégration officielle",
@@ -197,7 +221,115 @@
"features_subtitle": "Les outils opérationnels que Letzshop ne fournit pas",
"cta_final_title": "Prêt à prendre le contrôle de votre entreprise Letzshop ?",
"cta_final_subtitle": "Rejoignez les vendeurs luxembourgeois qui ont arrêté de lutter contre les tableurs et ont commencé à développer leur entreprise.",
"cta_final_note": "Aucune carte de crédit requise. Configuration en 5 minutes. Toutes les fonctionnalités Pro pendant l'essai."
"cta_final_note": "Aucune carte de crédit requise. Configuration en 5 minutes. Toutes les fonctionnalités Pro pendant l'essai.",
"page_title": "Orion - Le back-office pour les vendeurs Letzshop",
"features_badge": "Fonctionnalités",
"dashboard_title": "Tableau de bord Orion",
"todays_orders": "Commandes du jour",
"revenue": "Chiffre d'affaires",
"low_stock": "Stock faible",
"items_need_restock": "articles à réapprovisionner",
"recent_orders": "Commandes récentes de Letzshop",
"confirmed": "Confirmée",
"shipped": "Expédiée",
"feat_order_sync": "Synchronisation automatique des commandes",
"feat_order_sync_desc": "Les commandes Letzshop apparaissent instantanément. Confirmez et synchronisez les numéros de suivi automatiquement.",
"feat_order_sync_1": "Synchronisation en temps réel",
"feat_order_sync_2": "Confirmation en un clic",
"feat_order_sync_3": "Synchronisation des numéros de suivi",
"feat_inventory": "Gestion réelle des stocks",
"feat_inventory_desc": "Une source unique de vérité pour tous les stocks. Emplacements, réservations et suivi des stocks entrants.",
"feat_inventory_1": "Emplacements produits (bacs)",
"feat_inventory_2": "Réservations de stock",
"feat_inventory_3": "Alertes de stock faible",
"feat_invoicing": "Facturation TVA intelligente",
"feat_invoicing_desc": "Générez des factures PDF avec les taux de TVA corrects. Luxembourg, pays UE, autoliquidation B2B.",
"feat_invoicing_1": "TVA Luxembourg 17%",
"feat_invoicing_2": "TVA destination UE (OSS)",
"feat_invoicing_3": "Autoliquidation B2B",
"feat_customers": "Possédez vos clients",
"feat_customers_desc": "Toutes les données clients dans votre base. Exportez vers Mailchimp pour vos campagnes marketing.",
"feat_customers_1": "Historique des commandes par client",
"feat_customers_2": "Suivi de la valeur à vie",
"feat_customers_3": "Export CSV pour le marketing",
"feat_team": "Gestion d'équipe",
"feat_team_desc": "Invitez des membres avec des permissions basées sur les rôles. Tout le monde travaille depuis un tableau de bord.",
"feat_team_1": "Utilisateurs multiples",
"feat_team_2": "Accès basé sur les rôles",
"feat_team_3": "Journal d'activité",
"feat_purchase_orders": "Bons de commande",
"feat_purchase_orders_desc": "Suivez les stocks entrants des fournisseurs. Sachez ce qui est commandé et quand ça arrive.",
"feat_purchase_orders_1": "Suivi des commandes fournisseurs",
"feat_purchase_orders_2": "Dates d'arrivée prévues",
"feat_purchase_orders_3": "Réception et mise à jour du stock",
"pricing_badge": "Tarifs",
"pricing_title": "Tarification simple et transparente",
"pricing_subtitle": "Pas de frais par commande. Pas de coûts cachés. Tarif mensuel fixe.",
"pricing_per_month": "/mois",
"pricing_trial_note": "Tous les plans incluent un essai gratuit de 14 jours. Aucune carte de crédit requise.",
"tier_essential": "Essentiel",
"tier_essential_desc": "Pour les boutiques solo qui débutent",
"tier_essential_price": "49 EUR",
"tier_essential_feat_1": "100 commandes/mois",
"tier_essential_feat_2": "200 produits",
"tier_essential_feat_3": "Factures TVA Luxembourg",
"tier_essential_feat_4": "1 membre d'équipe",
"tier_essential_cta": "Essai gratuit",
"tier_professional": "Professionnel",
"tier_professional_desc": "Pour les vendeurs multicanaux en croissance",
"tier_professional_price": "99 EUR",
"tier_professional_badge": "LE PLUS POPULAIRE",
"tier_professional_feat_1": "500 commandes/mois",
"tier_professional_feat_2": "Produits illimités",
"tier_professional_feat_3": "Factures TVA UE",
"tier_professional_feat_4": "Emplacements produits",
"tier_professional_feat_5": "Bons de commande",
"tier_professional_feat_6": "Export clients",
"tier_professional_feat_7": "3 membres d'équipe",
"tier_professional_cta": "Essai gratuit",
"tier_business": "Business",
"tier_business_desc": "Pour les opérations à haut volume",
"tier_business_price": "199 EUR",
"tier_business_feat_1": "2 000 commandes/mois",
"tier_business_feat_2": "Tout dans Professionnel",
"tier_business_feat_3": "Tableau de bord analytique",
"tier_business_feat_4": "Accès API",
"tier_business_feat_5": "Export comptable",
"tier_business_feat_6": "10 membres d'équipe",
"tier_business_cta": "Essai gratuit",
"tier_enterprise": "Entreprise",
"tier_enterprise_desc": "Pour les grandes opérations et agences",
"tier_enterprise_price": "399+ EUR",
"tier_enterprise_feat_1": "Commandes illimitées",
"tier_enterprise_feat_2": "Tout dans Business",
"tier_enterprise_feat_3": "Option marque blanche",
"tier_enterprise_feat_4": "Intégrations personnalisées",
"tier_enterprise_feat_5": "SLA 99,9%",
"tier_enterprise_feat_6": "Support dédié",
"tier_enterprise_cta": "Contacter les ventes",
"testimonial_badge": "Conçu pour le Luxembourg",
"testimonial_quote": "Enfin, un outil qui comprend ce dont les vendeurs Letzshop ont vraiment besoin. Plus de tableurs, plus de casse-tête TVA.",
"testimonial_name": "Marie L.",
"testimonial_location": "Boutique Letzshop, Luxembourg-Ville",
"cta_final_trial": "Commencez votre essai gratuit de 14 jours"
},
"minimal": {
"page_title_fallback": "Accueil",
"marketplace_suffix": "Marketplace",
"fallback_title_1": "Marketplace",
"fallback_title_2": "Multi-Boutiques",
"fallback_subtitle": "Le moyen le plus simple de lancer votre boutique en ligne et de vous connecter avec des clients du monde entier.",
"get_started": "Commencer",
"feat_fast": "Rapide",
"feat_fast_desc": "Performance ultra-rapide optimisée pour les conversions",
"feat_secure": "Sécurisé",
"feat_secure_desc": "Sécurité de niveau entreprise pour votre tranquillité d'esprit",
"feat_custom": "Personnalisable",
"feat_custom_desc": "Entièrement personnalisable pour correspondre à votre identité de marque",
"cta_title": "Prêt à vous lancer ?",
"cta_subtitle": "Rejoignez notre marketplace aujourd'hui",
"cta_contact": "Contactez-nous",
"cta_learn_more": "En savoir plus"
}
},
"features": {
@@ -246,5 +378,15 @@
"manage_media_desc": "Télécharger, modifier et supprimer les fichiers médias",
"manage_themes": "Gérer les thèmes",
"manage_themes_desc": "Configurer et personnaliser les thèmes"
},
"messages": {
"failed_to_delete_page": "Impossible de supprimer la page : {error}",
"media_updated_successfully": "Média mis à jour avec succès",
"media_deleted_successfully": "Média supprimé avec succès",
"url_copied_to_clipboard": "URL copié dans le presse-papiers",
"failed_to_copy_url": "Impossible de copier l'URL"
},
"confirmations": {
"delete_file": "Êtes-vous sûr de vouloir supprimer ce fichier ? Cette action est irréversible."
}
}