';
+ . fxPromoteurHubEsc(fxPromoteurHubTexte('promoteur_hub_produits_title', 0)) . '';
$html .= '
';
foreach ($arrProduits as $arrProd) {
@@ -1359,17 +1429,17 @@ function fxPromoteurHubRenderProduits($arrProduits, $strLangue = 'fr')
$html .= '' . intval($arrProd['restant']) . '';
$html .= '/ ' . intval($arrProd['total']) . '';
}
- $html .= '' . fxPromoteurHubEsc($blnFr ? 'disponible(s)' : 'available') . '';
+ $html .= '' . fxPromoteurHubEsc(fxPromoteurHubTexte('promoteur_hub_disponible', 0)) . '';
$html .= '
'; // .phub-epr-chips
@@ -1445,7 +1515,6 @@ function fxPromoteurHubRenderEventCard($arrItem, $strLangue, $blnArchived = fals
{
$strCardClass = 'card promoteur-hub-card mb-3' . ($blnArchived ? ' promoteur-hub-card-archived' : '');
- $blnFr = ($strLangue !== 'en');
$intEveId = intval($arrItem['eve_id']);
$intComId = intval($arrItem['com_id'] ?? ($_SESSION['com_id'] ?? 0));
@@ -1506,7 +1575,7 @@ function fxPromoteurHubRenderEventCard($arrItem, $strLangue, $blnArchived = fals
if ($blnFonctions) {
$html .= '
';
}
@@ -1517,7 +1586,7 @@ function fxPromoteurHubRenderEventCard($arrItem, $strLangue, $blnArchived = fals
// ---- Collapse : stats chargées au clic (ajax_promoteur_hub.php) ----
if ($blnHasStats) {
global $vDomaine;
- $strLoadMsg = $blnFr ? 'Chargement du tableau de bord…' : 'Loading dashboard…';
+ $strLoadMsg = fxPromoteurHubTexte('promoteur_hub_load_dashboard', 0);
$strRunnerSrc = $vDomaine . '/images/ms1-runner-loader.gif?v=' . _VERSION_CODE;
$html .= '
';
diff --git a/php/inc_settings.php b/php/inc_settings.php
index 2fcda4e..0f8e2b2 100644
--- a/php/inc_settings.php
+++ b/php/inc_settings.php
@@ -7,7 +7,7 @@
* Constantes *
*
**************/
-define('_VERSION_CODE', '4.72.804');
+define('_VERSION_CODE', '4.72.806');
define('_DATE_CODE', '2026-07-13');
//MSIN-4290
define('QR_SECRET_KEY', 'ms1_qr_2026_cle_secrete_longue_et_fixe');
diff --git a/php/inc_v2_assets.php b/php/inc_v2_assets.php
index a09f589..60812be 100644
--- a/php/inc_v2_assets.php
+++ b/php/inc_v2_assets.php
@@ -23,13 +23,23 @@ if (!function_exists('fxV2RegisterScript')) {
$strLangue = ($strLangue === 'en') ? 'en' : 'fr';
$strWait = afficheTexte('preloader_wait', 0, 0, 1);
- if (trim((string)$strWait) === '' || $strWait === 'preloader_wait') {
- $strWait = ($strLangue === 'en') ? 'Loading…' : 'Chargement…';
+ if (trim((string)$strWait) === '' || $strWait === 'preloader_wait' || $strWait === '*preloader_wait*') {
+ $strWait = function_exists('fxPromoteurHubTexte')
+ ? fxPromoteurHubTexte('promoteur_hub_load_dashboard', 0)
+ : '';
}
+ // MSIN-4401 — libellés Info injectés (pas de FR/EN en dur dans promoteur-hub.js).
+ $strAjaxError = function_exists('fxPromoteurHubTexte')
+ ? fxPromoteurHubTexte('promoteur_hub_ajax_error', 0)
+ : afficheTexte('promoteur_hub_ajax_error', 0, 0, 1);
+
return [
'ajaxUrl' => $vDomaine . '/ajax_promoteur_hub.php',
'preloaderWait' => $strWait,
+ 'i18n' => [
+ 'ajaxError' => $strAjaxError,
+ ],
];
}
@@ -47,17 +57,29 @@ if (!function_exists('fxV2RegisterScript')) {
? (bool)fxInscrGestionBibOcrCloudEnabled()
: false,
'preloaderWait' => afficheTexte('preloader_wait', 0, 0, 1),
- 'refundCancelHint' => ($strLangue === 'en')
- ? 'Your transaction has been refunded. If you also want to cancel it in the registration system:'
- : "Votre transaction a été remboursée. Si vous voulez aussi l'annuler dans le système d'inscription :",
+ 'refundCancelHint' => function_exists('fxInscrGestionT')
+ ? fxInscrGestionT('inscr_gestion_refund_cancel_hint')
+ : '',
'loginMessages' => [
- 'txt_login' => ($strLangue === 'fr')
- ? "Veuillez entrer votre nom d'usager"
- : 'Please enter your username',
- 'txt_password' => ($strLangue === 'fr')
- ? 'Veuillez entrer votre mot de passe'
- : 'Please enter your password',
+ 'txt_login' => function_exists('fxInscrGestionT')
+ ? fxInscrGestionT('inscr_gestion_login_err_user')
+ : '',
+ 'txt_password' => function_exists('fxInscrGestionT')
+ ? fxInscrGestionT('inscr_gestion_login_err_pass')
+ : '',
],
+ // MSIN-4401 — libellés Info injectés (pas de FR/EN en dur dans le JS).
+ 'i18n' => function_exists('fxInscrGestionT') ? [
+ 'errLoad' => fxInscrGestionT('inscr_gestion_err_load'),
+ 'errNetwork' => fxInscrGestionT('inscr_gestion_err_network'),
+ 'errRefund' => fxInscrGestionT('inscr_gestion_err_refund'),
+ 'refundOk' => fxInscrGestionT('inscr_gestion_refund_ok'),
+ 'bibOcrNotConfigured' => fxInscrGestionT('inscr_gestion_bib_ocr_not_configured'),
+ 'bibOcrVisionPrefix' => fxInscrGestionT('inscr_gestion_bib_ocr_vision_prefix'),
+ 'bibOcrImageInvalid' => fxInscrGestionT('inscr_gestion_bib_ocr_image_invalid'),
+ 'bibOcrNetwork' => fxInscrGestionT('inscr_gestion_bib_ocr_network'),
+ 'bibOcrUnreadable' => fxInscrGestionT('inscr_gestion_bib_scan_invalid'),
+ ] : [],
];
}
diff --git a/sql/MSIN-4401-eve-acces-promoteur-info.sql b/sql/MSIN-4401-eve-acces-promoteur-info.sql
new file mode 100644
index 0000000..01483c7
--- /dev/null
+++ b/sql/MSIN-4401-eve-acces-promoteur-info.sql
@@ -0,0 +1,99 @@
+-- MSIN-4401 — Libellés Info manquants (gestion accès V2 promoteur)
+-- Prérequis : sql/MSIN-4401-eve-acces-promoteur-page.sql (clés de base déjà en Info)
+-- Notes : idempotent (DELETE + INSERT). Source de vérité = table info, pas le PHP.
+
+DELETE FROM info
+WHERE info_clef IN (
+ 'eve_acces_promoteur_statut_actif',
+ 'eve_acces_promoteur_statut_pending',
+ 'eve_acces_promoteur_col_action',
+ 'eve_acces_promoteur_field_courriel',
+ 'eve_acces_promoteur_field_prenom',
+ 'eve_acces_promoteur_field_nom',
+ 'eve_acces_promoteur_field_kit',
+ 'eve_acces_promoteur_field_jours',
+ 'eve_acces_promoteur_jours_help',
+ 'eve_acces_promoteur_invite_courriel_help',
+ 'eve_acces_promoteur_btn_invite',
+ 'eve_acces_promoteur_btn_resend',
+ 'eve_acces_promoteur_btn_revoke',
+ 'eve_acces_promoteur_confirm_revoke',
+ 'eve_acces_promoteur_no_kits',
+ 'eve_acces_promoteur_ok_existing',
+ 'eve_acces_promoteur_ok_created',
+ 'eve_acces_promoteur_ok_revoked',
+ 'eve_acces_promoteur_ok_resent',
+ 'eve_acces_promoteur_err_courriel',
+ 'eve_acces_promoteur_err_kit',
+ 'eve_acces_promoteur_err_nom',
+ 'eve_acces_promoteur_err_inactive',
+ 'eve_acces_promoteur_err_revoke',
+ 'eve_acces_promoteur_err_resend',
+ 'eve_acces_promoteur_err_generic',
+ 'eve_acces_promoteur_check_exists',
+ 'eve_acces_promoteur_check_new',
+ 'eve_acces_promoteur_check_inactive',
+ 'eve_acces_promoteur_check_invalid'
+) AND info_prg = 'compte.php';
+
+INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, info_description, info_trie, info_actif, info_option1, info_option2, info_option3, info_creation) VALUES
+('eve_acces_promoteur_statut_actif', 'fr', 'Actif', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_statut_actif', 'en', 'Active', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_statut_pending', 'fr', 'Compte non activé', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_statut_pending', 'en', 'Account not activated', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_col_action', 'fr', 'Action', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_col_action', 'en', 'Action', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_courriel', 'fr', 'Courriel', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_courriel', 'en', 'Email', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_prenom', 'fr', 'Prénom', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_prenom', 'en', 'First name', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_nom', 'fr', 'Nom', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_nom', 'en', 'Last name', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_kit', 'fr', 'Kit d''accès', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_kit', 'en', 'Access kit', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_jours', 'fr', 'Durée (jours)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_field_jours', 'en', 'Duration (days)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_jours_help', 'fr', '0 = sans expiration. Utilisé surtout pour les nouveaux accès.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_jours_help', 'en', '0 = no expiration. Mainly for new access grants.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_invite_courriel_help', 'fr', 'Saisissez d''abord le courriel : on vérifie s''il existe déjà un compte MS1 avant de demander le nom.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_invite_courriel_help', 'en', 'Enter the email first: we check if an MS1 account already exists before asking for a name.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_btn_invite', 'fr', 'Assigner l''accès', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_btn_invite', 'en', 'Grant access', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_btn_resend', 'fr', 'Renvoyer le mail', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_btn_resend', 'en', 'Resend email', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_btn_revoke', 'fr', 'Retirer', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_btn_revoke', 'en', 'Revoke', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_confirm_revoke', 'fr', 'Retirer cet accès ?', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_confirm_revoke', 'en', 'Revoke this access?', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_no_kits', 'fr', 'Aucun kit délégable disponible. Demandez à un super admin d''activer « délégable » sur un kit.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_no_kits', 'en', 'No delegable kit available. Ask a super admin to mark a kit as delegable.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_ok_existing', 'fr', 'Accès assigné au compte existant. Un courriel a été envoyé.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_ok_existing', 'en', 'Access granted to the existing account. An email was sent.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_ok_created', 'fr', 'Compte créé et accès assigné. Un courriel avec le lien de mot de passe a été envoyé.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_ok_created', 'en', 'Account created and access granted. An email with the password link was sent.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_ok_revoked', 'fr', 'Accès retiré.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_ok_revoked', 'en', 'Access revoked.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_ok_resent', 'fr', 'Courriel d''invitation renvoyé.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_ok_resent', 'en', 'Invitation email resent.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_courriel', 'fr', 'Courriel invalide.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_courriel', 'en', 'Invalid email.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_kit', 'fr', 'Kit non autorisé.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_kit', 'en', 'Kit not allowed.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_nom', 'fr', 'Prénom et nom requis pour créer un nouveau compte.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_nom', 'en', 'First and last name required to create a new account.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_inactive', 'fr', 'Un compte existe avec ce courriel mais il est inactif. Contactez le support.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_inactive', 'en', 'An account exists with this email but it is inactive. Contact support.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_revoke', 'fr', 'Retrait impossible.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_revoke', 'en', 'Unable to revoke.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_resend', 'fr', 'Renvoi du courriel impossible.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_resend', 'en', 'Unable to resend the email.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_generic', 'fr', 'Une erreur est survenue.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_err_generic', 'en', 'An error occurred.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_check_exists', 'fr', 'Compte déjà existant. Un courriel de confirmation sera envoyé.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_check_exists', 'en', 'Existing account. A confirmation email will be sent.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_check_new', 'fr', 'Aucun compte avec ce courriel. Indiquez le prénom et le nom pour créer le compte.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_check_new', 'en', 'No account with this email. Enter first and last name to create the account.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_check_inactive', 'fr', 'Un compte existe avec ce courriel mais il est inactif. Contactez le support.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_check_inactive', 'en', 'An account exists with this email but it is inactive. Contact support.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_check_invalid', 'fr', 'Courriel invalide.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_check_invalid', 'en', 'Invalid email.', '', 'compte.php', '', 0, 1, '', '', '', NOW());
diff --git a/sql/MSIN-4401-v2-info-complet.sql b/sql/MSIN-4401-v2-info-complet.sql
new file mode 100644
index 0000000..6d8f0dd
--- /dev/null
+++ b/sql/MSIN-4401-v2-info-complet.sql
@@ -0,0 +1,290 @@
+-- MSIN-4401 — Libellés Info V2 manquants (source de vérité)
+-- Couvre : mobile invite, courriels accès, gestion inscriptions, OCR/JS, hub dashboard
+-- Prérequis : scripts MSIN-4401-eve-acces-promoteur-*.sql déjà exécutés si applicable
+-- Idempotent (DELETE + INSERT). Exécuter en pilote puis prod.
+
+DELETE FROM info
+WHERE info_prg = 'compte.php'
+ AND info_clef IN (
+ 'mobile_invite_conflict_signed_as',
+ 'mobile_invite_conflict_for',
+ 'mobile_invite_conflict_btn_logout',
+ 'mobile_invite_conflict_btn_stay',
+ 'mobile_no_acces_v2',
+ 'inscr_gestion_mobile_title',
+ 'inscr_gestion_login_user',
+ 'inscr_gestion_login_pass',
+ 'inscr_gestion_login_btn',
+ 'inscr_gestion_login_intro',
+ 'inscr_gestion_login_err_user',
+ 'inscr_gestion_login_err_pass',
+ 'inscr_gestion_choose_event',
+ 'inscr_gestion_back_events',
+ 'tableau_promoteur_menueinscription_v2',
+ 'eve_acces_promoteur_access_denied',
+ 'eve_acces_promoteur_btn_back',
+ 'eve_acces_promoteur_mail_new_subject',
+ 'eve_acces_promoteur_mail_new_body',
+ 'eve_acces_promoteur_mail_new_cta',
+ 'eve_acces_promoteur_mail_existing_subject',
+ 'eve_acces_promoteur_mail_existing_body',
+ 'eve_acces_promoteur_mail_existing_cta',
+ 'inscr_gestion_show_invoice',
+ 'inscr_gestion_show_transaction',
+ 'inscr_gestion_hide_transaction',
+ 'inscr_gestion_renvoi',
+ 'inscr_gestion_modifier_participant',
+ 'inscr_gestion_search_prompt',
+ 'inscr_gestion_annulation_titre',
+ 'inscr_gestion_statut_annule',
+ 'inscr_gestion_statut_transfert',
+ 'inscr_gestion_back_bib',
+ 'inscr_gestion_back_prev',
+ 'inscr_gestion_back_full_account',
+ 'inscr_gestion_back_mon_compte',
+ 'inscr_gestion_chk_cancelled',
+ 'inscr_gestion_rech_statut',
+ 'inscr_gestion_rech_statut_all',
+ 'inscr_gestion_rech_statut_n',
+ 'inscr_gestion_bib_scan_found_search',
+ 'inscr_gestion_bib_ocr_not_configured',
+ 'inscr_gestion_bib_ocr_vision_prefix',
+ 'inscr_gestion_bib_ocr_image_invalid',
+ 'inscr_gestion_bib_ocr_network',
+ 'inscr_gestion_err_load',
+ 'inscr_gestion_err_network',
+ 'inscr_gestion_err_refund',
+ 'inscr_gestion_refund_ok',
+ 'inscr_gestion_refund_cancel_hint',
+ 'promoteur_hub_load_menu',
+ 'promoteur_hub_load_dashboard',
+ 'promoteur_hub_epreuves_title',
+ 'promoteur_hub_produits_title',
+ 'promoteur_hub_bibs_sold',
+ 'promoteur_hub_restant',
+ 'promoteur_hub_unlimited',
+ 'promoteur_hub_prix_courant',
+ 'promoteur_hub_prochain_prix',
+ 'promoteur_hub_des',
+ 'promoteur_hub_dossards_remis',
+ 'promoteur_hub_liste_active',
+ 'promoteur_hub_waiting_n',
+ 'promoteur_hub_waiting_list',
+ 'promoteur_hub_disponible',
+ 'promoteur_hub_vendus_title',
+ 'promoteur_hub_vendus_lbl',
+ 'promoteur_hub_paniers_title',
+ 'promoteur_hub_paniers_lbl',
+ 'promoteur_hub_menu_features',
+ 'promoteur_hub_flash_inscrits',
+ 'promoteur_hub_flash_rempli',
+ 'promoteur_hub_flash_places',
+ 'promoteur_hub_flash_revenus',
+ 'promoteur_hub_badge_completes',
+ 'promoteur_hub_badge_presque',
+ 'promoteur_hub_badge_attente',
+ 'promoteur_hub_badge_limite',
+ 'promoteur_hub_ajax_session',
+ 'promoteur_hub_ajax_invalid',
+ 'promoteur_hub_ajax_denied',
+ 'promoteur_hub_ajax_not_found',
+ 'promoteur_hub_ajax_error',
+ 'promoteur_hub_rapport_chrono',
+ 'promoteur_hub_rapport_finances',
+ 'promoteur_hub_rapport_finances_all',
+ 'promoteur_hub_rapport_finances_adh',
+ 'promoteur_hub_rapport_finances_eve',
+ 'promoteur_hub_rapport_adhesions',
+ 'promoteur_hub_rapport_adhesions_annuelles',
+ 'promoteur_hub_rapport_finances_capitaines',
+ 'promoteur_hub_rapport_paiements',
+ 'promoteur_hub_no_features'
+ );
+
+INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, info_description, info_trie, info_actif, info_option1, info_option2, info_option3, info_creation) VALUES
+('mobile_invite_conflict_signed_as', 'fr', 'Vous êtes actuellement connecté en tant que %name%.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('mobile_invite_conflict_signed_as', 'en', 'You are currently signed in as %name%.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('mobile_invite_conflict_for', 'fr', 'Cette invitation concerne le compte %name%%mail_part%. Déconnectez-vous d''abord, puis reconnectez-vous avec ce compte.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('mobile_invite_conflict_for', 'en', 'This invitation is for %name%%mail_part%. Sign out first, then sign in with that account.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('mobile_invite_conflict_btn_logout', 'fr', 'Se déconnecter et continuer', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('mobile_invite_conflict_btn_logout', 'en', 'Sign out and continue', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('mobile_invite_conflict_btn_stay', 'fr', 'Rester sur mon compte actuel', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('mobile_invite_conflict_btn_stay', 'en', 'Stay on my current account', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('mobile_no_acces_v2', 'fr', 'Aucun accès inscriptions mobile (v2) n''est actif pour ce compte.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('mobile_no_acces_v2', 'en', 'No active mobile registration access (v2) for this account.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_mobile_title', 'fr', 'Inscriptions mobile', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_mobile_title', 'en', 'Mobile registrations', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_user', 'fr', 'Nom d''utilisateur', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_user', 'en', 'Username', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_pass', 'fr', 'Mot de passe', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_pass', 'en', 'Password', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_btn', 'fr', 'Connexion', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_btn', 'en', 'Sign in', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_intro', 'fr', 'Connectez-vous pour accéder aux inscriptions mobile.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_intro', 'en', 'Sign in to access mobile registrations.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_err_user', 'fr', 'Veuillez entrer votre nom d''usager', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_err_user', 'en', 'Please enter your username', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_err_pass', 'fr', 'Veuillez entrer votre mot de passe', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_login_err_pass', 'en', 'Please enter your password', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_choose_event', 'fr', 'Choisir un événement', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_choose_event', 'en', 'Choose an event', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_events', 'fr', 'Événements', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_events', 'en', 'Events', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('tableau_promoteur_menueinscription_v2', 'fr', 'Inscriptions V2', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('tableau_promoteur_menueinscription_v2', 'en', 'Registrations V2', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_access_denied', 'fr', 'Accès refusé.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_access_denied', 'en', 'Access denied.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_btn_back', 'fr', 'Retour', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_btn_back', 'en', 'Back', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_new_subject', 'fr', 'Accès promoteur — créez votre mot de passe', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_new_subject', 'en', 'Promoter access — set your password', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_new_body', 'fr', 'Bonjour %prenom%,
Un accès vous a été accordé pour
%eve_nom% (kit : %kit%).
Un compte a été créé avec le courriel
%login%.
Cliquez ci-dessous pour choisir votre mot de passe.
Ensuite, connectez-vous ici pour travailler sur le terrain :
%mobile_url%', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_new_body', 'en', 'Hello %prenom%,
You were granted access to
%eve_nom% (kit: %kit%).
An account was created with
%login%.
Click below to set your password.
Then sign in here for field use:
%mobile_url%', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_new_cta', 'fr', 'Choisir mon mot de passe', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_new_cta', 'en', 'Set my password', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_existing_subject', 'fr', 'Nouvel accès — %eve_nom%', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_existing_subject', 'en', 'New access — %eve_nom%', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_existing_body', 'fr', 'Bonjour %prenom%,
Un accès vous a été accordé pour
%eve_nom% (kit : %kit%).
Ouvrez le lien ci-dessous et connectez-vous avec le compte
%login% (si un autre compte est déjà ouvert, vous serez invité à vous déconnecter).', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_existing_body', 'en', 'Hello %prenom%,
You were granted access to
%eve_nom% (kit: %kit%).
Open the link below and sign in as
%login% (if another account is already open, you will be asked to sign out).', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_existing_cta', 'fr', 'Ouvrir l''accès (mobile)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('eve_acces_promoteur_mail_existing_cta', 'en', 'Open access (mobile)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_show_invoice', 'fr', 'Afficher la facture', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_show_invoice', 'en', 'Show invoice', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_show_transaction', 'fr', 'Afficher la transaction', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_show_transaction', 'en', 'Show transaction', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_hide_transaction', 'fr', 'Masquer la transaction', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_hide_transaction', 'en', 'Hide transaction', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_renvoi', 'fr', 'Retourner confirmation', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_renvoi', 'en', 'Resend confirmation', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_modifier_participant', 'fr', 'Modifier l''inscription', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_modifier_participant', 'en', 'Edit registration', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_search_prompt', 'fr', 'Utilisez la recherche ci-dessus pour afficher les inscriptions. Laissez les champs vides et lancez la recherche pour toutes les afficher.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_search_prompt', 'en', 'Use the search above to display registrations. Leave the fields empty and search to show them all.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_annulation_titre', 'fr', 'Statut de l''inscription', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_annulation_titre', 'en', 'Registration status', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_statut_annule', 'fr', 'Annulée', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_statut_annule', 'en', 'Cancelled', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_statut_transfert', 'fr', 'Transférée', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_statut_transfert', 'en', 'Transferred', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_bib', 'fr', 'Retour aux dossards', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_bib', 'en', 'Back to bibs', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_prev', 'fr', 'Retour', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_prev', 'en', 'Back', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_full_account', 'fr', 'Retour au tableau de bord', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_full_account', 'en', 'Back to dashboard', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_mon_compte', 'fr', 'Retour à Mon compte', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_back_mon_compte', 'en', 'Back to My account', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_chk_cancelled', 'fr', 'Montrer les inscriptions annulées ou transférées', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_chk_cancelled', 'en', 'Show cancelled or transferred registrations', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_rech_statut', 'fr', 'Statut de course', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_rech_statut', 'en', 'Race status', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_rech_statut_all', 'fr', 'Tous les statuts', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_rech_statut_all', 'en', 'All statuses', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_rech_statut_n', 'fr', '%d sélectionnés', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_rech_statut_n', 'en', '%d selected', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_scan_found_search', 'fr', 'Numéro %s détecté — recherche...', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_scan_found_search', 'en', 'Number %s detected — searching...', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_ocr_not_configured', 'fr', 'OCR non configuré (clé Vision absente sur le serveur).', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_ocr_not_configured', 'en', 'OCR not configured (Vision API key missing on server).', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_ocr_vision_prefix', 'fr', 'Erreur Vision : ', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_ocr_vision_prefix', 'en', 'Vision error: ', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_ocr_image_invalid', 'fr', 'Image invalide.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_ocr_image_invalid', 'en', 'Invalid image capture.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_ocr_network', 'fr', 'Erreur réseau ou capture.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_bib_ocr_network', 'en', 'Network or capture error.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_err_load', 'fr', 'Erreur de chargement.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_err_load', 'en', 'Loading error.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_err_network', 'fr', 'Erreur réseau.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_err_network', 'en', 'Network error.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_err_refund', 'fr', 'Erreur remboursement.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_err_refund', 'en', 'Refund error.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_refund_ok', 'fr', 'Remboursement effectué.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_refund_ok', 'en', 'Refund completed.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_refund_cancel_hint', 'fr', 'Votre transaction a été remboursée. Si vous voulez aussi l''annuler dans le système d''inscription :', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('inscr_gestion_refund_cancel_hint', 'en', 'Your transaction has been refunded. If you also want to cancel it in the registration system:', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_load_menu', 'fr', 'Chargement du menu…', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_load_menu', 'en', 'Loading menu…', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_load_dashboard', 'fr', 'Chargement du tableau de bord…', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_load_dashboard', 'en', 'Loading dashboard…', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_epreuves_title', 'fr', 'Épreuves en vente', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_epreuves_title', 'en', 'Events for sale', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_produits_title', 'fr', 'Produits en vente', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_produits_title', 'en', 'Products for sale', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_bibs_sold', 'fr', 'dossards vendus', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_bibs_sold', 'en', 'bibs sold', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_restant', 'fr', 'restant', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_restant', 'en', 'left', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_unlimited', 'fr', 'illimité', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_unlimited', 'en', 'unlimited', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_prix_courant', 'fr', 'Prix courant', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_prix_courant', 'en', 'Current price', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_prochain_prix', 'fr', 'Prochain prix', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_prochain_prix', 'en', 'Next price', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_des', 'fr', 'dès', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_des', 'en', 'on', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_dossards_remis', 'fr', 'Dossards remis', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_dossards_remis', 'en', 'Bibs handed out', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_liste_active', 'fr', 'liste active', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_liste_active', 'en', 'list active', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_waiting_n', 'fr', 'en attente', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_waiting_n', 'en', 'waiting', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_waiting_list', 'fr', 'Liste d''attente', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_waiting_list', 'en', 'Waiting list', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_disponible', 'fr', 'disponible(s)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_disponible', 'en', 'available', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_vendus_title', 'fr', 'Vendus', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_vendus_title', 'en', 'Sold', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_vendus_lbl', 'fr', 'vendu(s)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_vendus_lbl', 'en', 'sold', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_paniers_title', 'fr', 'Dans des paniers incomplets', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_paniers_title', 'en', 'In incomplete carts', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_paniers_lbl', 'fr', 'panier(s)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_paniers_lbl', 'en', 'cart(s)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_menu_features', 'fr', 'Menu des fonctionnalités', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_menu_features', 'en', 'Features menu', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_flash_inscrits', 'fr', 'inscrits', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_flash_inscrits', 'en', 'registered', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_flash_rempli', 'fr', 'rempli', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_flash_rempli', 'en', 'filled', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_flash_places', 'fr', 'places restantes', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_flash_places', 'en', 'spots left', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_flash_revenus', 'fr', 'revenus est.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_flash_revenus', 'en', 'est. revenue', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_badge_completes', 'fr', 'complète(s)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_badge_completes', 'en', 'sold out', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_badge_presque', 'fr', 'presque pleine(s)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_badge_presque', 'en', 'almost full', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_badge_attente', 'fr', 'en attente', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_badge_attente', 'en', 'waiting', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_badge_limite', 'fr', 'limite', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_badge_limite', 'en', 'deadline', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_session', 'fr', 'Session expirée', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_session', 'en', 'Session expired', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_invalid', 'fr', 'Requête invalide', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_invalid', 'en', 'Invalid request', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_denied', 'fr', 'Accès refusé', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_denied', 'en', 'Access denied', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_not_found', 'fr', 'Événement introuvable', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_not_found', 'en', 'Event not found', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_error', 'fr', 'Erreur', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_ajax_error', 'en', 'Error', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_chrono', 'fr', 'chrono + questions', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_chrono', 'en', 'chrono + questions', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances', 'fr', 'Transactions-Finances', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances', 'en', 'Transactions-Finances', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances_all', 'fr', 'Transactions-Finances-Tout', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances_all', 'en', 'Transactions-Finances-All', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances_adh', 'fr', 'Transactions-Finances-Adhésions Seul', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances_adh', 'en', 'Transactions-Finances-Memberships only', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances_eve', 'fr', 'Transactions-Finances-Événements Seul', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances_eve', 'en', 'Transactions-Finances-Events only', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_adhesions', 'fr', 'adhésions actives', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_adhesions', 'en', 'active memberships', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_adhesions_annuelles', 'fr', 'liste d''adhésions annuelles', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_adhesions_annuelles', 'en', 'annual memberships list', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances_capitaines', 'fr', 'Transactions-Finances (capitaines seulement)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_finances_capitaines', 'en', 'Transactions-Finances (captains only)', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_paiements', 'fr', 'Paiements', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_rapport_paiements', 'en', 'Payments', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_no_features', 'fr', 'Aucune fonctionnalité disponible avec vos droits actuels.', '', 'compte.php', '', 0, 1, '', '', '', NOW()),
+('promoteur_hub_no_features', 'en', 'No features available with your current permissions.', '', 'compte.php', '', 0, 1, '', '', '', NOW());