diff --git a/lang/en/parametres.php b/lang/en/parametres.php new file mode 100644 index 00000000..c79e6570 --- /dev/null +++ b/lang/en/parametres.php @@ -0,0 +1,251 @@ + [ + 'view' => 'View', + 'edit' => 'Edit', + 'delete' => 'Delete', + 'cancel' => 'Cancel', + 'save' => 'Save', + 'search' => 'Search', + 'clear' => 'Clear', + 'prev' => 'Previous', + 'next' => 'Next', + 'showing' => 'Showing :from to :to of :total', + 'actions' => 'Actions', + 'irreversible' => 'This action is irreversible.', + 'creating' => 'Creating...', + 'updating' => 'Updating...', + 'update' => 'Update', + 'created_at' => 'Created at', + 'created_on' => 'Created on', + 'updated_on' => 'Last updated', + ], + + 'countries' => [ + 'head' => 'Countries', + 'title' => 'Countries', + 'subtitle' => 'Manage the list of countries (nationalities, origins).', + 'new' => 'New country', + 'search_ph' => 'Search a country (name, code)…', + 'th_name' => 'Name', + 'th_code' => 'Code', + 'empty' => 'No country found', + 'delete_q' => 'Delete this country?', + 'create_head' => 'Create a country', + 'create_title' => 'Create a country', + 'create_subtitle' => 'Enter the country name and code.', + 'edit_head' => 'Edit :name', + 'edit_title' => 'Edit a country', + 'edit_subtitle' => 'Update the information for :name.', + 'form_section' => 'Country information', + 'name' => 'Name', + 'name_ph' => 'e.g. Togo', + 'code' => 'Code', + 'code_ph' => 'e.g. TG', + 'code_hint' => 'Unique code (e.g. ISO: TG, BJ, CI…).', + 'submit_create' => 'Create country', + ], + + 'schools' => [ + 'active' => 'Active', + 'inactive' => 'Inactive', + 'section_general' => 'General information', + 'terme_entity' => 'Term / Entity', + 'devise' => 'Motto', + 'email' => 'Email', + 'phone' => 'Phone', + 'section_location' => 'Location', + 'region' => 'Region', + 'city' => 'City', + 'po_box' => 'PO Box', + 'address' => 'Address', + 'section_events' => 'Events', + 'created_on' => 'Created on', + 'updated_on' => 'Updated on', + + 'create_head' => 'New school', + 'create_title' => 'Configure the school', + 'create_subtitle' => 'Enter the school information.', + 'edit_head' => 'Edit :name', + 'edit_title' => 'School settings', + 'edit_subtitle' => 'Information, logo, header and motto for :name.', + + 'section_identity' => 'School identity', + 'name' => 'Name', + 'name_ph' => 'e.g. Jean Jaurès High School', + 'code' => 'Code', + 'code_ph' => 'e.g. LJJ001', + 'terme' => 'Term / Parent entity', + 'terme_ph' => 'e.g. Togolese Republic', + 'ministry' => 'Supervising ministry', + 'ministry_ph' => 'e.g. Ministry of Primary, Secondary and Technical Education', + 'ministry_hint' => 'Shown at the top left of the official document header.', + 'devise_label' => 'School motto (slogan)', + 'devise_ph' => 'e.g. Work, Freedom, Homeland', + 'currency' => 'Currency (accounting)', + 'section_logo' => 'Logo and contact', + 'logo_label' => 'School logo', + 'change_logo' => 'Change logo', + 'choose_image' => 'Choose an image', + 'logo_hint' => 'JPG, PNG, WebP — max 2 MB', + 'email_label' => 'Email', + 'email_ph' => 'contact@school.com', + 'phone_label' => 'Phone', + 'phone_ph' => '+228 XX XX XX XX', + 'region_label' => 'Region', + 'city_label' => 'City', + 'po_box_label' => 'PO Box', + 'po_box_ph' => 'PO Box 123', + 'address_label' => 'Full address', + 'section_class_types' => 'Offered class types', + 'no_class_types' => 'No class type available. Create one first in Settings → Class types.', + 'semester' => 'Semester (2 terms)', + 'trimester' => 'Trimester (3 terms)', + 'section_status' => 'Status', + 'active_label' => 'Active school', + 'portal_label' => 'Parent / student portal access', + 'portal_hint' => 'When disabled, login and all parent/student area features are blocked.', + 'submit_create' => 'Create school', + ], + + 'about' => [ + 'head' => 'About', + 'intro' => 'School management system — from student enrollment to report cards, including tuition and payroll. Designed for Togolese schools 🇹🇬.', + 'section_covers' => 'What the application covers', + 'section_license' => 'Publisher & license', + 'edited_by' => 'Published by', + 'license' => 'License', + 'license_value' => 'GNU GPL v3 — free software', + 'rights' => 'Rights', + 'license_note' => 'You may use, study, modify and redistribute this software under the terms of the GPL v3.', + 'section_tech' => 'Technical information', + 'app_version' => 'Application version', + 'environment' => 'Environment', + 'section_support' => 'Need help?', + 'support_before' => 'First check the', + 'link_docs' => 'documentation', + 'support_middle' => '. To report a problem or suggest an improvement, open a ticket on the', + 'link_repo' => 'GitHub repository', + 'modules' => [ + 'students' => ['title' => 'Students & enrollment', 'desc' => 'Full records, enrollment, class promotion, scholarships.'], + 'grades' => ['title' => 'Grades & reports', 'desc' => 'Entry, configurable averages, PDF reports, appeals.'], + 'attendance' => ['title' => 'Attendance', 'desc' => 'Roll call per session, attendance statistics, absence permissions.'], + 'exams' => ['title' => 'Official exams', 'desc' => 'CEPD, BEPC, BAC: registrations, scheduling, results.'], + 'finance' => ['title' => 'Finances & recovery', 'desc' => 'Fees, invoices, payments (incl. Mobile Money), receipts.'], + 'payroll' => ['title' => 'Staff & payroll', 'desc' => 'Employee records, pay runs, payslips (CNSS, ITS).'], + 'timetable' => ['title' => 'Timetable & calendar', 'desc' => 'Grids per class, school calendar.'], + 'backups' => ['title' => 'Backups & statistics', 'desc' => 'Scheduled backups, dashboards and exports.'], + ], + 'links' => [ + 'docs' => ['title' => 'Documentation', 'sub' => 'A to Z guide'], + 'website' => ['title' => 'Website', 'sub' => 'Overview & features'], + 'source' => ['title' => 'Source code', 'sub' => 'GitHub repository'], + 'changelog' => ['title' => 'Changelog', 'sub' => 'History of changes'], + ], + ], + + 'evaluation_types' => [ + 'head' => 'Evaluation types', + 'title' => 'Evaluation types', + 'subtitle' => 'Manage evaluation types', + 'new' => 'New type', + 'stat_total' => 'Total types', + 'stat_shown' => 'Results shown', + 'stat_page' => 'Page', + 'search_ph' => 'Search a type...', + 'th_name' => 'Name', + 'th_description' => 'Description', + 'th_created' => 'Created on', + 'empty' => 'No type found', + 'delete_q' => 'Delete this type?', + + 'create_head' => 'Create an evaluation type', + 'create_title' => 'Create an evaluation type', + 'create_subtitle' => 'Enter the evaluation type information.', + 'edit_head' => 'Edit evaluation type', + 'edit_title' => 'Edit an evaluation type', + 'edit_subtitle' => 'Update the information for :name.', + + 'show_subtitle' => 'Evaluation type details.', + 'main_info' => 'Main information', + 'name' => 'Name', + 'description' => 'Description', + 'no_description' => 'No description provided for this evaluation type.', + 'history' => 'History', + 'created_on' => 'Created on', + 'updated_on' => 'Updated on', + + 'form_section' => 'Evaluation type information', + 'name_label' => 'Name *', + 'name_ph' => 'e.g. Supervised test', + 'category_label' => 'Category *', + 'category_ph' => 'Choose a category', + 'category_hint' => 'Determines whether grades feed the report card\'s "class grade" or "composition".', + 'cat_continu' => 'Continuous assessment (class grade)', + 'cat_composition' => 'Composition (exam)', + 'description_label' => 'Description', + 'description_ph' => 'Specify the educational context of this evaluation type...', + 'preview' => 'Preview', + 'preview_name' => 'Type name', + 'preview_no_description' => 'No description provided.', + 'submit_create' => 'Create type', + ], + + 'grading_configs' => [ + 'head' => 'Average calculation settings', + 'title' => 'Average calculation', + 'subtitle' => 'Customize the calculation formula per school', + 'new' => 'New configuration', + 'filter_all' => 'All schools', + 'th_name' => 'Name', + 'th_school' => 'School', + 'th_class_type' => 'Class type', + 'th_threshold' => 'Threshold', + 'th_max' => 'Max score', + 'th_round' => 'Rounding', + 'th_status' => 'Status', + 'all_default' => 'All (default)', + 'decimals' => ':n dec.', + 'active' => 'Active', + 'inactive' => 'Inactive', + 'activate' => 'Activate', + 'empty' => 'No configuration. Create one to customize average calculation.', + 'count' => ':n configuration(s)', + 'delete_q' => 'Delete this configuration?', + + 'create_head' => 'New calculation configuration', + 'create_title' => 'New configuration', + 'create_subtitle' => 'Define the average calculation formula (per class type)', + 'submit_create' => 'Create configuration', + 'edit_head' => 'Edit — :name', + 'edit_title' => 'Edit configuration', + 'saving' => 'Saving...', + + 'school_label' => 'School *', + 'school_ph' => 'Select a school', + 'class_type_label' => 'Class type', + 'all_classes' => 'All classes (school default)', + 'class_type_hint' => 'Leave "All classes" for a school default formula.', + 'name_label' => 'Name *', + 'name_ph' => 'e.g. Standard formula 2025', + 'passing_label' => 'Passing threshold', + 'max_label' => 'Default maximum score', + 'weight_label' => 'Class grade / Composition weighting', + 'class_weight_label' => 'Class grade (continuous assessment)', + 'comp_weight_label' => 'Composition', + 'pct_class' => 'Class', + 'pct_comp' => 'Composition', + 'formula' => 'Subject average = (Class × :cw + Composition × :pw) / :total.', + 'precision_label' => 'Rounding precision', + 'precision_0' => 'Integer (e.g. 12)', + 'precision_1' => '1 decimal (e.g. 12.5)', + 'precision_2' => '2 decimals (e.g. 12.50)', + 'precision_3' => '3 decimals (e.g. 12.500)', + 'mentions_label' => 'Honors (thresholds)', + 'add' => 'Add', + 'no_mentions' => 'No honors configured.', + 'mention_label_ph' => 'Label (e.g. Congratulations)', + 'mentions_hint' => 'The honor applied is the one with the highest threshold less than or equal to the average.', + ], +]; diff --git a/lang/fr/parametres.php b/lang/fr/parametres.php new file mode 100644 index 00000000..521ca92e --- /dev/null +++ b/lang/fr/parametres.php @@ -0,0 +1,251 @@ + [ + 'view' => 'Voir', + 'edit' => 'Modifier', + 'delete' => 'Supprimer', + 'cancel' => 'Annuler', + 'save' => 'Enregistrer', + 'search' => 'Rechercher', + 'clear' => 'Effacer', + 'prev' => 'Précédent', + 'next' => 'Suivant', + 'showing' => 'Affichage :from à :to sur :total', + 'actions' => 'Actions', + 'irreversible' => 'Cette action est irréversible.', + 'creating' => 'Création...', + 'updating' => 'Mise à jour...', + 'update' => 'Mettre à jour', + 'created_at' => 'Date de création', + 'created_on' => 'Créé le', + 'updated_on' => 'Dernière modification', + ], + + 'countries' => [ + 'head' => 'Pays', + 'title' => 'Pays', + 'subtitle' => 'Gérez la liste des pays (nationalités, origines).', + 'new' => 'Nouveau pays', + 'search_ph' => 'Rechercher un pays (nom, code)…', + 'th_name' => 'Nom', + 'th_code' => 'Code', + 'empty' => 'Aucun pays trouvé', + 'delete_q' => 'Supprimer ce pays ?', + 'create_head' => 'Créer un pays', + 'create_title' => 'Créer un pays', + 'create_subtitle' => 'Renseignez le nom et le code du pays.', + 'edit_head' => 'Éditer :name', + 'edit_title' => 'Éditer un pays', + 'edit_subtitle' => 'Mettez à jour les informations de :name.', + 'form_section' => 'Informations du pays', + 'name' => 'Nom', + 'name_ph' => 'Ex : Togo', + 'code' => 'Code', + 'code_ph' => 'Ex : TG', + 'code_hint' => 'Code unique (ex. ISO : TG, BJ, CI…).', + 'submit_create' => 'Créer le pays', + ], + + 'schools' => [ + 'active' => 'Active', + 'inactive' => 'Inactive', + 'section_general' => 'Informations générales', + 'terme_entity' => 'Terme / Entité', + 'devise' => 'Devise', + 'email' => 'E-mail', + 'phone' => 'Téléphone', + 'section_location' => 'Localisation', + 'region' => 'Région', + 'city' => 'Ville', + 'po_box' => 'Boîte postale', + 'address' => 'Adresse', + 'section_events' => 'Événements', + 'created_on' => 'Créée le', + 'updated_on' => 'Modifiée le', + + 'create_head' => 'Nouvelle école', + 'create_title' => 'Configurer l\'école', + 'create_subtitle' => 'Renseignez les informations de l\'établissement.', + 'edit_head' => 'Éditer :name', + 'edit_title' => 'Paramètres de l\'école', + 'edit_subtitle' => 'Informations, logo, en-tête et devise de :name.', + + 'section_identity' => 'Identité de l\'école', + 'name' => 'Nom', + 'name_ph' => 'Ex : Lycée Jean Jaurès', + 'code' => 'Code', + 'code_ph' => 'Ex : LJJ001', + 'terme' => 'Terme / Entité supérieure', + 'terme_ph' => 'Ex : République Togolaise', + 'ministry' => 'Ministère de tutelle', + 'ministry_ph' => 'Ex : Ministère des Enseignements Primaire, Secondaire et Technique', + 'ministry_hint' => 'Affiché en haut à gauche de l\'en-tête officiel des documents.', + 'devise_label' => 'Devise (slogan) de l\'école', + 'devise_ph' => 'Ex : Travail, Liberté, Patrie', + 'currency' => 'Monnaie (comptabilité)', + 'section_logo' => 'Logo et contact', + 'logo_label' => 'Logo de l\'école', + 'change_logo' => 'Changer le logo', + 'choose_image' => 'Choisir une image', + 'logo_hint' => 'JPG, PNG, WebP — max 2 Mo', + 'email_label' => 'E-mail', + 'email_ph' => 'contact@ecole.com', + 'phone_label' => 'Téléphone', + 'phone_ph' => '+228 XX XX XX XX', + 'region_label' => 'Région', + 'city_label' => 'Ville', + 'po_box_label' => 'Boîte postale', + 'po_box_ph' => 'BP 123', + 'address_label' => 'Adresse complète', + 'section_class_types' => 'Types de classe proposés', + 'no_class_types' => 'Aucun type de classe disponible. Créez-en d\'abord dans Paramètres → Types de classes.', + 'semester' => 'Semestre (2 périodes)', + 'trimester' => 'Trimestre (3 périodes)', + 'section_status' => 'Statut', + 'active_label' => 'École active', + 'portal_label' => 'Accès au portail parents / élèves', + 'portal_hint' => 'Lorsque désactivé, la connexion et toutes les fonctionnalités de l\'espace parents/élèves sont bloquées.', + 'submit_create' => 'Créer l\'école', + ], + + 'about' => [ + 'head' => 'À propos', + 'intro' => 'Système de gestion scolaire — de l\'inscription de l\'élève au bulletin, en passant par l\'écolage et la paie. Pensé pour les établissements togolais 🇹🇬.', + 'section_covers' => 'Ce que couvre l\'application', + 'section_license' => 'Éditeur & licence', + 'edited_by' => 'Édité par', + 'license' => 'Licence', + 'license_value' => 'GNU GPL v3 — logiciel libre', + 'rights' => 'Droits', + 'license_note' => 'Vous pouvez utiliser, étudier, modifier et redistribuer ce logiciel selon les termes de la GPL v3.', + 'section_tech' => 'Informations techniques', + 'app_version' => 'Version de l\'application', + 'environment' => 'Environnement', + 'section_support' => 'Besoin d\'aide ?', + 'support_before' => 'Consultez d\'abord la', + 'link_docs' => 'documentation', + 'support_middle' => '. Pour signaler un problème ou proposer une amélioration, ouvrez un ticket sur le', + 'link_repo' => 'dépôt GitHub', + 'modules' => [ + 'students' => ['title' => 'Élèves & inscriptions', 'desc' => 'Dossiers complets, inscriptions, passage de classe, bourses.'], + 'grades' => ['title' => 'Notes & bulletins', 'desc' => 'Saisie, moyennes paramétrables, bulletins PDF, réclamations.'], + 'attendance' => ['title' => 'Présences', 'desc' => 'Appel par séance, statistiques d\'assiduité, permissions d\'absence.'], + 'exams' => ['title' => 'Examens officiels', 'desc' => 'CEPD, BEPC, BAC : inscriptions, planning, résultats.'], + 'finance' => ['title' => 'Finances & recouvrement', 'desc' => 'Frais, factures, paiements (dont Mobile Money), reçus.'], + 'payroll' => ['title' => 'Personnel & paie', 'desc' => 'Fiches employés, cycles de paie, bulletins (CNSS, ITS).'], + 'timetable' => ['title' => 'Emploi du temps & calendrier', 'desc' => 'Grilles par classe, calendrier de l\'établissement.'], + 'backups' => ['title' => 'Sauvegardes & statistiques', 'desc' => 'Sauvegardes planifiées, tableaux de bord et exports.'], + ], + 'links' => [ + 'docs' => ['title' => 'Documentation', 'sub' => 'Guide de A à Z'], + 'website' => ['title' => 'Site web', 'sub' => 'Présentation & fonctionnalités'], + 'source' => ['title' => 'Code source', 'sub' => 'Dépôt GitHub'], + 'changelog' => ['title' => 'Journal des versions', 'sub' => 'Historique des évolutions'], + ], + ], + + 'evaluation_types' => [ + 'head' => 'Types d\'évaluation', + 'title' => 'Types d\'évaluation', + 'subtitle' => 'Gérez les types d\'évaluation', + 'new' => 'Nouveau type', + 'stat_total' => 'Types totaux', + 'stat_shown' => 'Résultats affichés', + 'stat_page' => 'Page', + 'search_ph' => 'Rechercher un type...', + 'th_name' => 'Nom', + 'th_description' => 'Description', + 'th_created' => 'Créé le', + 'empty' => 'Aucun type trouvé', + 'delete_q' => 'Supprimer ce type ?', + + 'create_head' => 'Créer un type d\'évaluation', + 'create_title' => 'Créer un type d\'évaluation', + 'create_subtitle' => 'Renseignez les informations du type d\'évaluation.', + 'edit_head' => 'Modifier type d\'évaluation', + 'edit_title' => 'Éditer un type d\'évaluation', + 'edit_subtitle' => 'Mettez à jour les informations de :name.', + + 'show_subtitle' => 'Détails du type d\'évaluation.', + 'main_info' => 'Informations principales', + 'name' => 'Nom', + 'description' => 'Description', + 'no_description' => 'Aucune description renseignée pour ce type d\'évaluation.', + 'history' => 'Historique', + 'created_on' => 'Créé le', + 'updated_on' => 'Modifié le', + + 'form_section' => 'Informations du type d\'évaluation', + 'name_label' => 'Nom *', + 'name_ph' => 'Ex: Devoir surveillé', + 'category_label' => 'Catégorie *', + 'category_ph' => 'Choisir une catégorie', + 'category_hint' => 'Détermine si les notes alimentent la « note de classe » ou la « composition » du bulletin.', + 'cat_continu' => 'Contrôle continu (note de classe)', + 'cat_composition' => 'Composition (examen)', + 'description_label' => 'Description', + 'description_ph' => 'Précisez le contexte pédagogique de ce type d\'évaluation...', + 'preview' => 'Aperçu', + 'preview_name' => 'Nom du type', + 'preview_no_description' => 'Aucune description renseignée.', + 'submit_create' => 'Créer le type', + ], + + 'grading_configs' => [ + 'head' => 'Configurations de calcul des moyennes', + 'title' => 'Calcul des moyennes', + 'subtitle' => 'Personnalisez la formule de calcul par établissement', + 'new' => 'Nouvelle configuration', + 'filter_all' => 'Tous les établissements', + 'th_name' => 'Nom', + 'th_school' => 'Établissement', + 'th_class_type' => 'Type de classe', + 'th_threshold' => 'Seuil', + 'th_max' => 'Note max', + 'th_round' => 'Arrondi', + 'th_status' => 'Statut', + 'all_default' => 'Toutes (défaut)', + 'decimals' => ':n déc.', + 'active' => 'Active', + 'inactive' => 'Inactive', + 'activate' => 'Activer', + 'empty' => 'Aucune configuration. Créez-en une pour personnaliser le calcul des moyennes.', + 'count' => ':n configuration(s)', + 'delete_q' => 'Supprimer cette configuration ?', + + 'create_head' => 'Nouvelle configuration de calcul', + 'create_title' => 'Nouvelle configuration', + 'create_subtitle' => 'Définissez la formule de calcul des moyennes (par type de classe)', + 'submit_create' => 'Créer la configuration', + 'edit_head' => 'Modifier — :name', + 'edit_title' => 'Modifier la configuration', + 'saving' => 'Enregistrement...', + + 'school_label' => 'Établissement *', + 'school_ph' => 'Sélectionner un établissement', + 'class_type_label' => 'Type de classe', + 'all_classes' => 'Toutes les classes (défaut école)', + 'class_type_hint' => 'Laissez « Toutes les classes » pour une formule par défaut de l\'école.', + 'name_label' => 'Nom *', + 'name_ph' => 'ex : Formule standard 2025', + 'passing_label' => 'Seuil de passage', + 'max_label' => 'Note maximale par défaut', + 'weight_label' => 'Pondération Note de classe / Composition', + 'class_weight_label' => 'Note de classe (contrôle continu)', + 'comp_weight_label' => 'Composition', + 'pct_class' => 'Classe', + 'pct_comp' => 'Composition', + 'formula' => 'Moyenne matière = (Classe × :cw + Composition × :pw) / :total.', + 'precision_label' => 'Précision d\'arrondi', + 'precision_0' => 'Entier (ex : 12)', + 'precision_1' => '1 décimale (ex : 12,5)', + 'precision_2' => '2 décimales (ex : 12,50)', + 'precision_3' => '3 décimales (ex : 12,500)', + 'mentions_label' => 'Mentions (seuils)', + 'add' => 'Ajouter', + 'no_mentions' => 'Aucune mention configurée.', + 'mention_label_ph' => 'Libellé (ex : Félicitations)', + 'mentions_hint' => 'La mention retenue est celle dont le seuil est le plus élevé et inférieur ou égal à la moyenne.', + ], +]; diff --git a/resources/js/components/Countries/country-form.tsx b/resources/js/components/Countries/country-form.tsx index ad5fbea5..84363d3b 100644 --- a/resources/js/components/Countries/country-form.tsx +++ b/resources/js/components/Countries/country-form.tsx @@ -1,6 +1,7 @@ import { Globe, Save } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; +import { useTranslation } from '@/helpers/i18n'; export interface CountryFormData { name: string; @@ -18,10 +19,11 @@ interface CountryFormProps { } export function CountryForm({ mode, data, errors, processing, onCancel, onSubmit, setData }: Readonly) { - let submitLabel = 'Mettre à jour'; - if (processing && mode === 'create') submitLabel = 'Création...'; - else if (processing) submitLabel = 'Mise à jour...'; - else if (mode === 'create') submitLabel = 'Créer le pays'; + const { t } = useTranslation(); + let submitLabel = t('parametres.common.update'); + if (processing && mode === 'create') submitLabel = t('parametres.common.creating'); + else if (processing) submitLabel = t('parametres.common.updating'); + else if (mode === 'create') submitLabel = t('parametres.countries.submit_create'); return (
@@ -30,34 +32,34 @@ export function CountryForm({ mode, data, errors, processing, onCancel, onSubmit
-

Informations du pays

+

{t('parametres.countries.form_section')}

- + setData('name', event.target.value)} disabled={processing} - placeholder="Ex: Togo" + placeholder={t('parametres.countries.name_ph')} className={errors.name ? 'border-red-500 bg-red-50/40' : 'border-gray-200 bg-white focus-visible:ring-blue-500'} /> {errors.name &&

{errors.name}

}
- + setData('code', event.target.value.toUpperCase())} disabled={processing} - placeholder="Ex: TG" + placeholder={t('parametres.countries.code_ph')} className={errors.code ? 'border-red-500 bg-red-50/40' : 'border-gray-200 bg-white focus-visible:ring-blue-500'} /> -

Code unique (ex. ISO : TG, BJ, CI…).

+

{t('parametres.countries.code_hint')}

{errors.code &&

{errors.code}

}
@@ -65,7 +67,7 @@ export function CountryForm({ mode, data, errors, processing, onCancel, onSubmit
- + setData('name', event.target.value)} disabled={processing} - placeholder="Ex: Devoir surveillé" + placeholder={t('parametres.evaluation_types.name_ph')} className={errors.name ? 'border-red-500 bg-red-50/40' : 'border-gray-200 bg-white focus-visible:ring-blue-500'} /> {errors.name &&

{errors.name}

}
- + -

Détermine si les notes alimentent la « note de classe » ou la « composition » du bulletin.

+

{t('parametres.evaluation_types.category_hint')}

{errors.category &&

{errors.category}

}
- +