mivita/resources/lang/fr/team.php
Kevin d65922adfe Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet
Statistik-Änderungen 2026-08-19 (dev/2026-07-22/entwicklungsplan-2026-08-19.md, alle 8 Pakete gemäß beantworteten F-Fragen):
- N1 Monatsstatistik: Team-Cluster (Firstlines klickbar -> neue Seite user_team_firstlines, Teampartner gesamt/Payline [nur aktive], Abos Payline mit +N) + Level-Kachel (Quali-Stufe, fehlende Payline-/persönliche Punkte, Karriere-Level); LiveCommissionService-Snapshot v3 reicht Level-/Quali-Daten durch
- N2 Abo-Kacheln auf Home monatsbezogen (aboStockCount-Rückrechnung über cancel/deleted/Status-Historie; VIP-Statistik bleibt tagesaktuell)
- N3 VIP-Statistik 'Recruiter des Monats' (Neupartner-Definition wie KPI, rekursives Ketten-Volumen als Gesamtpunkte inkl. Starterpaket) + Drilldown/CSV-Spalte 'Punkte gesamt'
- N4 Prognose-Block 'Level & Provision laut Prognose (Stand 25.)' mit unverbindlich-Kennzeichnung (ebenengenaue offene Abo-Punkte + TP-Laufstände)
- N5 Checkout-Herkunft: Dropdown raus, Pflicht-Freitext (lokalisierte Fehlermeldung)
- N6 Berater-Profilfoto (user_accounts.profile_image, Einwilligung als Sprachkey-Platzhalter, DSGVO-Löschung) + teaminterne Top-3-Karte (TopResultsService, Scope-Schalter)
- N7 USt-Optionen: 'nicht umsatzsteuerpflichtig' zuerst + '§ 19 UStG'-Textfix
- N8 Jahresgebühr-Nachfassliste je Berater (AnnualFeeDueService, überfällig/1-3 Monate, Sidenav)

Kontroll-Review (8 Perspektiven) angewendet: next-Level-Fallback im Steady-State (resolveNextLevel — sonst 'Höchstes Level erreicht' für Normalfälle), _calculated-Punktebasis bei mehr Paylines, keine Wiederbelebung deaktivierter Abos in der Monatsrückrechnung, Payline-Abo-Kachel monatskonsistent, Top-3-Nachrücker; Performance: BackofficeDashboardService als Singleton mit lineBuckets-Memo (+flushLineBucketsMemo), level_forecast 6h-Cache; Reuse: User-Scopes firstlinesOf/newPartnerIn, SalesVolumePoints::totalPointsByUser, Slim::storeCroppedImage (3 Upload-Kopien vereinigt), activeAbo-Scope statt Inline-Prädikate, Form::open-Konvention, Return-Types

Repair-Härtung (Kundenentscheide): VP-Nachtrepair dedupliziert über shopping_order_id (Live-Pfad schreibt sie jetzt mit), zählende Alt-Zeilen-Erkennung, Vormonats-Scan für Monatswechsel, Firmenaccount-Buchungen (config mivita.company_user_id) werden automatisch auf den Berater umgebucht (in place bzw. per Gegenbuchung bei geschlossenem Monat; Echtfall Anna Schall Order 58797 -> Christina Schuder), Berater-zu-Berater nur Warnung; Incentive-Repair: m_sponsor=NULL löscht nicht mehr, FK-Repair vor Stale-Bereinigung, gebatchte Lookups, zentrales Incentive::qualificationWindow(); .env aus dem Git-Tracking entfernt (Pflege per SFTP)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 10:44:44 +00:00

151 lines
7.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
return [
'' => '',
'KU' => 'KU',
'PP' => 'PP',
'TP' => 'TP',
'WB' => 'WB',
'account' => 'Compte',
'account_to' => 'Compte jusqu’au',
'active' => 'actif',
'business' => 'Business',
'career_level' => 'Niveau de carrière',
'collapse_all' => 'Tout replier',
'commission_WB' => 'Commission bonus de profondeur',
'commission_payline' => 'Commission Payline',
'commission_shop' => 'Commission boutique',
'commission_team' => 'Commission équipe',
'commission_total' => 'Commission totale',
'completed' => 'Terminé',
'open' => 'Ouvert',
'create_new_consultant' => 'Créer un nouveau conseiller',
'current_commission_level' => 'niveau de commission actuel',
'customer_commission' => 'Commission client',
'consultant_margin' => 'Marge conseiller',
'consultant_margin_info' => 'Remarque : la marge a déjà été déduite lors de la commande et donc déjà versée.',
'customer_points' => 'Points clients',
'date' => 'Date',
'e' => 'E',
'expand_all' => 'Tout déplier',
'export' => 'Export',
'export_as_xls' => 'Export en xls',
'link_for_consultant_registration' => 'Lien pour l’inscription du conseiller',
'net_turnover' => 'Chiffre d’affaires net',
'new_consultant_copy1' => 'Vous souhaitez inscrire un nouveau conseiller ? Parfait, nous nous en réjouissons. Envoyez-lui simplement le lien ci-dessous par e-mail, WhatsApp ou SMS. Il accédera ainsi à la page d’inscription de www.mivita.care. Important : ne modifiez pas ce lien, car l’ID conseiller ajouté vous identifie comme sponsor du nouveau conseiller. C’est le seul moyen d’attribuer à votre compte les futures commissions issues de ses ventes. Utilisez l’icône de copie pour copier immédiatement le lien dans votre presse-papiers.',
'next_career_level' => 'prochain niveau de carrière',
'next_commission_level' => 'prochain niveau de commission',
'no_sponsor_assigned' => 'Aucun sponsor attribué',
'not_active' => 'inactif',
'last_login' => 'Dernière connexion',
'registered_at' => 'Inscrit le',
'own' => 'Propres',
'payline_points' => 'Points Payline',
'points' => 'Points',
'qualification' => 'Qualification',
'qualification_commission' => 'Commission de qualification',
'qualification_points' => 'Points de qualification',
'register_new_consultant' => 'Inscrire un nouveau conseiller',
's' => 'S',
'shop' => 'Boutique',
'shop_commission' => 'Commission boutique',
'sponsor' => 'Sponsor',
'structure' => 'Structure',
'total_points' => 'Points totaux',
'total_turnover' => 'Chiffre d’affaires total',
'until' => 'jusqu’au',
'volume_KU' => 'Volume KU',
'your_sponsor' => 'Votre sponsor',
'your_team' => 'Votre équipe',
'sales_store_net' => 'Chiffre d’affaires boutique net',
'filename_export' => 'mivita-mon-equipe-export-',
'payout_details' => 'Détails des versements',
'filter_active' => 'actif',
'filter_not_active' => 'inactif',
'filter_all' => 'tous',
'all_status' => 'Tous les statuts',
'qualified_green' => 'Qualifié (vert)',
'in_progress_yellow' => 'En cours (jaune)',
'no_level_red' => 'Aucun niveau (rouge)',
'badge_own_abo' => 'a son propre abonnement',
'badge_customer_abos' => '{1} 1 abonnement client propre|[2,*] :count abonnements clients propres',
'optimized' => 'OPTIMISÉ',
'standard_monitoring' => 'STANDARD + MONITORING',
'fallback' => 'FALLBACK',
'loading_time' => 'Temps de chargement :',
'memory' => 'Mémoire :',
'memory_usage' => 'Consommation mémoire :',
'team_size' => 'Taille de l’équipe :',
'team_members' => 'Membres de l’équipe :',
'execution_time' => 'Temps d’exécution :',
'user_id' => 'User ID :',
'performance_details' => 'Détails de performance',
'team_structure' => 'Structure de l’équipe',
'new_member' => 'Nouveau membre',
'optimized_action' => 'Optimisé',
'standard_action' => 'Standard',
'close' => 'Fermer',
'show_details' => 'Afficher les détails',
'test_optimized' => 'Tester optimisé',
'standard_version' => 'Version standard',
'performance_metrics_team_overview' => 'Métriques de performance - aperçu équipe',
'performance_metrics_my_team' => 'Métriques de performance - mon équipe',
'performance_monitoring' => 'Monitoring performance',
'fallback_support' => 'Support fallback',
'optimized_with_cache' => 'Optimisé avec cache',
'datatable_mode_switched' => 'Mode DataTable basculé sur ":mode"',
'error_loading_optimized_overview' => 'Erreur lors du chargement de l’aperçu équipe optimisé : ',
'live_not_supported_fallback' => 'Live (non pris en charge en fallback)',
'optimized_performance_features' => 'Cette page utilise des fonctionnalités de performance optimisées.',
'next_level' => 'Niveau suivant',
'calculation_type' => 'Type de calcul',
'version' => 'Version',
'cache' => 'Cache',
'live' => 'Live',
'ID' => 'ID',
'Ebene' => 'Niveau',
'Level' => 'Level',
'KD' => 'KD',
'bis' => 'jusqu’à',
'level_reports_title' => 'Rapports de progression de niveau - mon équipe',
'level_reports_month' => 'Mois',
'level_reports_year' => 'Année',
'level_reports_filter_not_updated' => 'Uniquement les utilisateurs non modifiés',
'level_reports_filter_button' => 'Filtre',
'level_reports_csv_export' => 'Export CSV',
'level_reports_total_promotions' => 'Total progressions',
'level_reports_by_level' => 'Progressions par niveau',
'level_reports_table_date' => 'Date',
'level_reports_table_user' => 'Utilisateur',
'level_reports_table_from_level' => 'Du niveau',
'level_reports_table_to_level' => 'Au niveau',
'level_reports_table_current_level' => 'Niveau actuel',
'level_reports_table_kp_quali' => 'Quali KP',
'level_reports_table_user_kp' => 'KP utilisateur',
'level_reports_table_pp_quali' => 'Quali PP',
'level_reports_table_user_pp' => 'PP utilisateur',
'level_reports_table_update' => 'Update',
'level_reports_table_active' => 'Actif',
'level_reports_by_period' => 'Progressions par période',
'level_reports_no_data' => 'Aucune progression de niveau trouvée',
'level_reports_no_data_description' => 'Aucune entrée trouvée avec les filtres actuels.',
'yes' => 'Oui',
'no' => 'Non',
'not_available' => 'N/A',
'growth_bonus_details_description' => 'L1 = partenaires directs (reçoit toujours le bonus de profondeur), L2 = membres (à partir d’ici, le bonus de profondeur est partagé si le membre est qualifié), etc. | Affiche la commission (€) et le volume (pts) par niveau.',
// Jahresgebühr-Nachfassliste (N8)
'annual_fee_title' => 'Cotisation annuelle en attente',
'annual_fee_hint' => 'Remarque : les partenaires dont le compte a expiré sont automatiquement désactivés environ 2 semaines après l’expiration et supprimés du système après 2 mois. Les entrées en retard n’apparaissent donc ici que pour une durée limitée — mieux vaut relancer tôt.',
'annual_fee_no_data' => 'Actuellement, la validité du compte d’aucun de tes partenaires n’expire dans les 3 prochains mois.',
'annual_fee_group_overdue' => 'En retard',
'annual_fee_group_due_1_month' => 'Échéance dans ≤ 1 mois',
'annual_fee_group_due_2_months' => 'Échéance dans ≤ 2 mois',
'annual_fee_group_due_3_months' => 'Échéance dans ≤ 3 mois',
'firstlines' => 'Firstlines',
'firstlines_copy' => 'Tes partenaires directs avec chiffre d’affaires et coordonnées - triés par points du mois sélectionné.',
'firstlines_none' => 'Tu n’as pas encore de partenaires directs.',
'firstlines_points' => 'Chiffre d’affaires (points)',
'active_since' => 'Actif depuis',
'account_inactive' => 'Compte inactif',
];