From 3917ff4cb849b7b1a85547171e7ef230ef9e4cf5 Mon Sep 17 00:00:00 2001 From: horacioskrp Date: Wed, 11 Nov 2026 16:47:51 +0000 Subject: [PATCH 1/5] =?UTF-8?q?feat(i18n):=20param=C3=A8tres=20=E2=80=94?= =?UTF-8?q?=20pays=20(liste,=20cr=C3=A9ation,=20=C3=A9dition,=20d=C3=A9tai?= =?UTF-8?q?l)=20(FR/EN)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lang/en/parametres.php | 49 +++++++++++++++++++ lang/fr/parametres.php | 49 +++++++++++++++++++ .../js/components/Countries/country-form.tsx | 24 ++++----- .../js/pages/Parametres/Countries/Create.tsx | 8 +-- .../js/pages/Parametres/Countries/Edit.tsx | 8 +-- .../js/pages/Parametres/Countries/Index.tsx | 49 ++++++++++--------- .../js/pages/Parametres/Countries/Show.tsx | 15 +++--- 7 files changed, 156 insertions(+), 46 deletions(-) create mode 100644 lang/en/parametres.php create mode 100644 lang/fr/parametres.php diff --git a/lang/en/parametres.php b/lang/en/parametres.php new file mode 100644 index 00000000..63d78662 --- /dev/null +++ b/lang/en/parametres.php @@ -0,0 +1,49 @@ + [ + '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', + ], +]; diff --git a/lang/fr/parametres.php b/lang/fr/parametres.php new file mode 100644 index 00000000..a6cccb18 --- /dev/null +++ b/lang/fr/parametres.php @@ -0,0 +1,49 @@ + [ + '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', + ], +]; 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
-

Créer un pays

-

Renseignez le nom et le code du pays.

+

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

+

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

diff --git a/resources/js/pages/Parametres/Countries/Edit.tsx b/resources/js/pages/Parametres/Countries/Edit.tsx index c0f56225..a13992de 100644 --- a/resources/js/pages/Parametres/Countries/Edit.tsx +++ b/resources/js/pages/Parametres/Countries/Edit.tsx @@ -2,6 +2,7 @@ import { Head, router, useForm } from '@inertiajs/react'; import { ArrowLeft } from 'lucide-react'; import { CountryForm, type CountryFormData } from '@/components/Countries/country-form'; import { route } from '@/helpers/route'; +import { useTranslation } from '@/helpers/i18n'; import AppLayout from '@/layouts/app-layout'; interface Country { @@ -11,6 +12,7 @@ interface Country { } export default function Edit({ country }: Readonly<{ country: Country }>) { + const { t } = useTranslation(); const { data, setData, put, processing, errors } = useForm({ name: country.name, code: country.code, @@ -23,7 +25,7 @@ export default function Edit({ country }: Readonly<{ country: Country }>) { return ( - +
@@ -31,8 +33,8 @@ export default function Edit({ country }: Readonly<{ country: Country }>) {
-

Éditer un pays

-

Mettez à jour les informations de {country.name}.

+

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

+

{t('parametres.countries.edit_subtitle', { name: country.name })}

diff --git a/resources/js/pages/Parametres/Countries/Index.tsx b/resources/js/pages/Parametres/Countries/Index.tsx index 549dd616..8c70c03e 100644 --- a/resources/js/pages/Parametres/Countries/Index.tsx +++ b/resources/js/pages/Parametres/Countries/Index.tsx @@ -10,6 +10,7 @@ import { IconButton } from '@/components/icon-button'; import { Input } from '@/components/ui/input'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import { route } from '@/helpers/route'; +import { useTranslation } from '@/helpers/i18n'; import AppLayout from '@/layouts/app-layout'; interface Country { @@ -35,6 +36,8 @@ interface IndexProps { } export default function Index({ countries, filters }: Readonly) { + const { t, locale } = useTranslation(); + const dateLocale = locale === 'en' ? 'en-GB' : 'fr-FR'; const [search, setSearch] = useState(filters.search || ''); const [deleteId, setDeleteId] = useState(null); @@ -61,18 +64,18 @@ export default function Index({ countries, filters }: Readonly) { return ( - +

- Pays + {t('parametres.countries.title')}

-

Gérez la liste des pays (nationalités, origines).

+

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

@@ -84,16 +87,16 @@ export default function Index({ countries, filters }: Readonly) { value={search} onChange={(e) => setSearch(e.target.value)} onKeyDown={(e) => e.key === 'Enter' && doSearch()} - placeholder="Rechercher un pays (nom, code)…" + placeholder={t('parametres.countries.search_ph')} className="pl-10 pr-10" /> {search && ( - )}
- +
@@ -101,10 +104,10 @@ export default function Index({ countries, filters }: Readonly) { - Nom - Code - Date de création - Actions + {t('parametres.countries.th_name')} + {t('parametres.countries.th_code')} + {t('parametres.common.created_at')} + {t('parametres.common.actions')} @@ -115,12 +118,12 @@ export default function Index({ countries, filters }: Readonly) { {country.code} - {new Date(country.created_at).toLocaleDateString('fr-FR')} + {new Date(country.created_at).toLocaleDateString(dateLocale)}
- } className="border-slate-200 text-gray-700 hover:bg-gray-100" onClick={() => router.get(route('countries.show', country.id))} /> - } className="border-slate-200 text-gray-700 hover:bg-gray-100" onClick={() => router.get(route('countries.edit', country.id))} /> - } className="border-slate-200 text-gray-700 hover:bg-red-50 hover:text-red-600" onClick={() => setDeleteId(country.id)} /> + } className="border-slate-200 text-gray-700 hover:bg-gray-100" onClick={() => router.get(route('countries.show', country.id))} /> + } className="border-slate-200 text-gray-700 hover:bg-gray-100" onClick={() => router.get(route('countries.edit', country.id))} /> + } className="border-slate-200 text-gray-700 hover:bg-red-50 hover:text-red-600" onClick={() => setDeleteId(country.id)} />
@@ -128,7 +131,7 @@ export default function Index({ countries, filters }: Readonly) { ) : ( -

Aucun pays trouvé

+

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

)} @@ -138,10 +141,10 @@ export default function Index({ countries, filters }: Readonly) { {countries.last_page > 1 && (
-

Affichage {countries.from} à {countries.to} sur {countries.total}

+

{t('parametres.common.showing', { from: countries.from, to: countries.to, total: countries.total })}

{pageNumbers.map((p, i) => @@ -161,7 +164,7 @@ export default function Index({ countries, filters }: Readonly) { )}
@@ -171,13 +174,13 @@ export default function Index({ countries, filters }: Readonly) { setDeleteId(null)}> - Supprimer ce pays ? - Cette action est irréversible. + {t('parametres.countries.delete_q')} + {t('parametres.common.irreversible')}
- Annuler + {t('parametres.common.cancel')} deleteId && router.delete(route('countries.destroy', deleteId), { preserveScroll: true, onSuccess: () => setDeleteId(null) })}> - Supprimer + {t('parametres.common.delete')}
diff --git a/resources/js/pages/Parametres/Countries/Show.tsx b/resources/js/pages/Parametres/Countries/Show.tsx index f7200670..5795248b 100644 --- a/resources/js/pages/Parametres/Countries/Show.tsx +++ b/resources/js/pages/Parametres/Countries/Show.tsx @@ -2,6 +2,7 @@ import { Head, router } from '@inertiajs/react'; import { ArrowLeft, Globe, Pencil } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { route } from '@/helpers/route'; +import { useTranslation } from '@/helpers/i18n'; import AppLayout from '@/layouts/app-layout'; interface Country { @@ -13,8 +14,10 @@ interface Country { } export default function Show({ country }: Readonly<{ country: Country }>) { + const { t, locale } = useTranslation(); + const dateLocale = locale === 'en' ? 'en-GB' : 'fr-FR'; const formatDate = (date: string) => - new Date(date).toLocaleDateString('fr-FR', { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit' }); + new Date(date).toLocaleDateString(dateLocale, { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit' }); return ( @@ -37,26 +40,26 @@ export default function Show({ country }: Readonly<{ country: Country }>) {
-

Nom

+

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

{country.name}

-

Code

+

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

{country.code}

-

Créé le

+

{t('parametres.common.created_on')}

{formatDate(country.created_at)}

-

Dernière modification

+

{t('parametres.common.updated_on')}

{formatDate(country.updated_at)}

From a47de724d78d3c2d412bef09509d601ccab5acc3 Mon Sep 17 00:00:00 2001 From: horacioskrp Date: Wed, 11 Nov 2026 16:52:41 +0000 Subject: [PATCH 2/5] =?UTF-8?q?feat(i18n):=20param=C3=A8tres=20=E2=80=94?= =?UTF-8?q?=20=C3=A9coles=20(cr=C3=A9ation,=20=C3=A9dition,=20d=C3=A9tail)?= =?UTF-8?q?=20(FR/EN)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lang/en/parametres.php | 62 ++++++++++++++ lang/fr/parametres.php | 62 ++++++++++++++ .../js/components/Schools/school-form.tsx | 80 ++++++++++--------- .../js/pages/Parametres/Schools/Create.tsx | 8 +- .../js/pages/Parametres/Schools/Edit.tsx | 8 +- .../js/pages/Parametres/Schools/Show.tsx | 39 ++++----- 6 files changed, 196 insertions(+), 63 deletions(-) diff --git a/lang/en/parametres.php b/lang/en/parametres.php index 63d78662..4447950e 100644 --- a/lang/en/parametres.php +++ b/lang/en/parametres.php @@ -46,4 +46,66 @@ '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', + ], ]; diff --git a/lang/fr/parametres.php b/lang/fr/parametres.php index a6cccb18..f61fded0 100644 --- a/lang/fr/parametres.php +++ b/lang/fr/parametres.php @@ -46,4 +46,66 @@ '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', + ], ]; diff --git a/resources/js/components/Schools/school-form.tsx b/resources/js/components/Schools/school-form.tsx index 0a2e633e..9dedcaaa 100644 --- a/resources/js/components/Schools/school-form.tsx +++ b/resources/js/components/Schools/school-form.tsx @@ -4,6 +4,7 @@ import { Button } from '@/components/ui/button'; import { Checkbox } from '@/components/ui/checkbox'; import { Input } from '@/components/ui/input'; import { Textarea } from '@/components/ui/textarea'; +import { useTranslation } from '@/helpers/i18n'; export interface ClassroomTypeOption { id: string; name: string; period_system: string; } export interface CurrencyOption { code: string; label: string; symbol: string; } @@ -41,6 +42,7 @@ interface SchoolFormProps { } export function SchoolForm({ mode, data, errors, processing, currentLogoUrl, classroomTypes = [], currencies = [], onCancel, onSubmit, setData }: Readonly) { + const { t } = useTranslation(); const toggleClassType = (id: string) => { const current = data.class_type_ids ?? []; setData('class_type_ids', current.includes(id) ? current.filter(x => x !== id) : [...current, id]); @@ -54,10 +56,10 @@ export function SchoolForm({ mode, data, errors, processing, currentLogoUrl, cla setPreview(file ? URL.createObjectURL(file) : (currentLogoUrl ?? null)); }; - let submitLabel = 'Mettre à jour'; - if (processing && mode === 'create') submitLabel = 'Création...'; - else if (processing) submitLabel = 'Mise à jour...'; - else if (mode === 'create') submitLabel = 'Créer l\'école'; + 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.schools.submit_create'); return ( @@ -68,67 +70,67 @@ export function SchoolForm({ mode, data, errors, processing, currentLogoUrl, cla
-

Identité de l'école

+

{t('parametres.schools.section_identity')}

- + setData('name', e.target.value)} disabled={processing} className={errors.name ? 'border-red-500 bg-red-50/40' : ''} - placeholder="Ex: Lycée Jean Jaurès" + placeholder={t('parametres.schools.name_ph')} /> {errors.name &&

{errors.name}

}
- + setData('code', e.target.value)} disabled={processing} className={errors.code ? 'border-red-500 bg-red-50/40' : ''} - placeholder="Ex: LJJ001" + placeholder={t('parametres.schools.code_ph')} /> {errors.code &&

{errors.code}

}
- + setData('terme', e.target.value)} disabled={processing} className={errors.terme ? 'border-red-500 bg-red-50/40' : ''} - placeholder="Ex: République Togolaise" + placeholder={t('parametres.schools.terme_ph')} /> {errors.terme &&

{errors.terme}

}
- + setData('ministry', e.target.value)} disabled={processing} className={errors.ministry ? 'border-red-500 bg-red-50/40' : ''} - placeholder="Ex: Ministère des Enseignements Primaire, Secondaire et Technique" + placeholder={t('parametres.schools.ministry_ph')} /> -

Affiché en haut à gauche de l'en-tête officiel des documents.

+

{t('parametres.schools.ministry_hint')}

{errors.ministry &&

{errors.ministry}

}
setData('devise', e.target.value)} disabled={processing} className={errors.devise ? 'border-red-500 bg-red-50/40' : ''} - placeholder="Ex: Travail, Liberté, Patrie" + placeholder={t('parametres.schools.devise_ph')} /> {errors.devise &&

{errors.devise}

}
@@ -144,7 +146,7 @@ export function SchoolForm({ mode, data, errors, processing, currentLogoUrl, cla
setData('email', e.target.value)} disabled={processing} className={errors.email ? 'border-red-500 bg-red-50/40' : ''} - placeholder="contact@ecole.com" + placeholder={t('parametres.schools.email_ph')} /> {errors.email &&

{errors.email}

}
@@ -232,7 +234,7 @@ export function SchoolForm({ mode, data, errors, processing, currentLogoUrl, cla
setData('phone', e.target.value)} disabled={processing} className={errors.phone ? 'border-red-500 bg-red-50/40' : ''} - placeholder="+228 XX XX XX XX" + placeholder={t('parametres.schools.phone_ph')} /> {errors.phone &&

{errors.phone}

}
@@ -253,14 +255,14 @@ export function SchoolForm({ mode, data, errors, processing, currentLogoUrl, cla
-

Localisation

+

{t('parametres.schools.section_location')}

setData('region', e.target.value)} disabled={processing} className={errors.region ? 'border-red-500 bg-red-50/40' : ''} /> {errors.region &&

{errors.region}

} @@ -269,7 +271,7 @@ export function SchoolForm({ mode, data, errors, processing, currentLogoUrl, cla
setData('city', e.target.value)} disabled={processing} className={errors.city ? 'border-red-500 bg-red-50/40' : ''} /> {errors.city &&

{errors.city}

} @@ -278,14 +280,14 @@ export function SchoolForm({ mode, data, errors, processing, currentLogoUrl, cla
- setData('po_box', e.target.value)} disabled={processing} className={errors.po_box ? 'border-red-500 bg-red-50/40' : ''} placeholder="BP 123" /> + setData('po_box', e.target.value)} disabled={processing} className={errors.po_box ? 'border-red-500 bg-red-50/40' : ''} placeholder={t('parametres.schools.po_box_ph')} /> {errors.po_box &&

{errors.po_box}

}
- +