/* eslint-disable @stylistic/max-len */ import { viteHotContext } from '@i18n/translations/hmr-config'; import { observable, WritableObservable } from 'micro-observables'; import { Translations } from './Translations'; import translationHotReload from './translations-hmr'; const frMessages: Translations = { app: { name: 'Plume admin', }, // actions action: { back: 'Retour', cancel: 'Annuler', save: 'Enregistrer', delete: 'Supprimer', close: 'Fermer', search: 'Rechercher', add: 'Ajouter', authenticate: 'Me connecter', disconnect: 'Me déconnecter', display_more: 'Afficher plus', keep_editing: 'Rester sur la page', close_without_saving: 'Fermer sans sauvegarder', }, // common labels label: { more_options: 'Plus d\'options', confirm_delete: 'Confirmation de suppression', creation_date: 'Date de création', empty: 'Aucun élément', loading: 'Chargement...', }, // common messages message: { changes_saved: 'Les modifications ont bien été enregistrées', unsaved_data: 'Des modifications n\'ont pas été enregistrées. ' + 'Si vous voulez enregistrer ces modifications, cliquez sur le bouton "Rester sur la page"', }, // navigation nav: { home: 'Accueil', users: 'Gestion des utilisateurs', user_list: 'Utilisateurs', }, // home home: { title: 'Page d\'accueil', }, login: { title: 'Se connecter', }, // users users: { userName: 'Nom d\'utilisateur', password: 'Mot de passe', email: 'E-mail', firstName: 'Prénom', lastName: 'Nom', role: 'Rôle', messages: { confirm_delete: (userName: string) => `Vous êtes sur le point de supprimer ${userName}. Cette action est irreversible.`, }, }, // pages users user: { title_list: 'Liste des utilisateurs', title_create: 'Création d\'un utilisateur', title_edit: 'Modification d\'un utilisateur', created: (date: string) => `Créé le ${date}`, found: (count: number) => `${count} utilisateur${count > 1 ? 's' : ''} trouvé${count > 1 ? 's' : ''}`, add_user: 'Ajouter un utilisateur', password_confirm: 'Confirmation du mot de passe', error_passwords_different: 'Le mot de passe et sa confirmation sont différents', }, // filters filters: { title: 'Filtres', reset: 'Réinitialiser les filtres', user_creation_date: { title: 'Date de création', options: { less_than_15_days: 'Il y a moins de 15 jours', between_15_45_days: 'Entre 15 et 45 jours', more_than_45_days: 'Il y a plus de 45 jours', }, }, user_role: { title: 'Rôle', }, }, // sorts sorts: { user: { user_name_asc: 'Trier par nom utilisateur (A - Z)', user_name_desc: 'Trier par nom utilisateur (Z - A)', creation_date_asc: 'Trier par date de création (ancienne à récente)', creation_date_desc: 'Trier par date de création (récente à ancienne)', }, }, // errors error: { field: { required: 'Le champ est requis', email_wrong_format: 'L\'adresse e-mail saisie semble être incorrecte', password_same_value: 'Veuillez saisir deux mots de passe identiques', empty_field: 'Le champ entré est vide', }, security: { fingerprint_missing: 'Le fingerprint du cookie pour sécuriser le token JWT semble absent, cela peut être ok en développement, mais en production, ce cookie devra être activé', }, }, 'http-errors': { INTERNAL_ERROR: 'Une erreur inattendue s\'est produite', NETWORK_ERROR: 'Erreur réseau, votre connexion internet semble indisponible', TIMEOUT_ERROR: 'Erreur réseau (timeout), votre connexion internet ou le serveur distant semble indisponible', FORBIDDEN_ERROR: 'Il semble que vous n\'avez pas accès à cette ressource ou à cette action', WRONG_LOGIN_OR_PASSWORD: 'Nom d\'utilisateur ou mot de passe incorrect', TOO_MANY_WRONG_ATTEMPS: (seconds: string) => `Suite à des erreurs dans la saisie de vos identifiants, votre compte est verrouillé pendant ${seconds} secondes, veuillez-vous reconnecter ultérieurement`, FIELD_REQUIRED: (fieldName: string) => `Le champ '${fieldName}' est requis`, MESSAGE: (message: string) => message, }, } as const; const frMessagesObservable: WritableObservable = observable(frMessages); if (viteHotContext?.hot) { // Hot reloading, see translations-hmr.ts viteHotContext.hot.accept(translationHotReload(frMessagesObservable)); } export default frMessagesObservable.readOnly();