@adminiumjs/i18n 0.1.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/dist/create-i18n.d.ts +48 -0
- package/dist/create-i18n.d.ts.map +1 -0
- package/dist/create-i18n.js +98 -0
- package/dist/create-i18n.js.map +1 -0
- package/dist/format/index.d.ts +70 -0
- package/dist/format/index.d.ts.map +1 -0
- package/dist/format/index.js +217 -0
- package/dist/format/index.js.map +1 -0
- package/dist/icu-format.d.ts +17 -0
- package/dist/icu-format.d.ts.map +1 -0
- package/dist/icu-format.js +52 -0
- package/dist/icu-format.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/locales.d.ts +99 -0
- package/dist/locales.d.ts.map +1 -0
- package/dist/locales.js +55 -0
- package/dist/locales.js.map +1 -0
- package/dist/react.d.ts +26 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +61 -0
- package/dist/react.js.map +1 -0
- package/dist/resources/ar-eg/common.d.ts +1964 -0
- package/dist/resources/ar-eg/common.d.ts.map +1 -0
- package/dist/resources/ar-eg/common.js +1963 -0
- package/dist/resources/ar-eg/common.js.map +1 -0
- package/dist/resources/ar-eg/errors.d.ts +45 -0
- package/dist/resources/ar-eg/errors.d.ts.map +1 -0
- package/dist/resources/ar-eg/errors.js +44 -0
- package/dist/resources/ar-eg/errors.js.map +1 -0
- package/dist/resources/ar-eg/generated.d.ts +20 -0
- package/dist/resources/ar-eg/generated.d.ts.map +1 -0
- package/dist/resources/ar-eg/generated.js +19 -0
- package/dist/resources/ar-eg/generated.js.map +1 -0
- package/dist/resources/ar-eg/studio.d.ts +18 -0
- package/dist/resources/ar-eg/studio.d.ts.map +1 -0
- package/dist/resources/ar-eg/studio.js +17 -0
- package/dist/resources/ar-eg/studio.js.map +1 -0
- package/dist/resources/ar-eg/ui.d.ts +996 -0
- package/dist/resources/ar-eg/ui.d.ts.map +1 -0
- package/dist/resources/ar-eg/ui.js +995 -0
- package/dist/resources/ar-eg/ui.js.map +1 -0
- package/dist/resources/cs-cz/common.d.ts +1964 -0
- package/dist/resources/cs-cz/common.d.ts.map +1 -0
- package/dist/resources/cs-cz/common.js +1963 -0
- package/dist/resources/cs-cz/common.js.map +1 -0
- package/dist/resources/cs-cz/errors.d.ts +45 -0
- package/dist/resources/cs-cz/errors.d.ts.map +1 -0
- package/dist/resources/cs-cz/errors.js +44 -0
- package/dist/resources/cs-cz/errors.js.map +1 -0
- package/dist/resources/cs-cz/generated.d.ts +20 -0
- package/dist/resources/cs-cz/generated.d.ts.map +1 -0
- package/dist/resources/cs-cz/generated.js +19 -0
- package/dist/resources/cs-cz/generated.js.map +1 -0
- package/dist/resources/cs-cz/studio.d.ts +18 -0
- package/dist/resources/cs-cz/studio.d.ts.map +1 -0
- package/dist/resources/cs-cz/studio.js +17 -0
- package/dist/resources/cs-cz/studio.js.map +1 -0
- package/dist/resources/cs-cz/ui.d.ts +996 -0
- package/dist/resources/cs-cz/ui.d.ts.map +1 -0
- package/dist/resources/cs-cz/ui.js +995 -0
- package/dist/resources/cs-cz/ui.js.map +1 -0
- package/dist/resources/da-dk/common.d.ts +1964 -0
- package/dist/resources/da-dk/common.d.ts.map +1 -0
- package/dist/resources/da-dk/common.js +1963 -0
- package/dist/resources/da-dk/common.js.map +1 -0
- package/dist/resources/da-dk/errors.d.ts +45 -0
- package/dist/resources/da-dk/errors.d.ts.map +1 -0
- package/dist/resources/da-dk/errors.js +44 -0
- package/dist/resources/da-dk/errors.js.map +1 -0
- package/dist/resources/da-dk/generated.d.ts +20 -0
- package/dist/resources/da-dk/generated.d.ts.map +1 -0
- package/dist/resources/da-dk/generated.js +19 -0
- package/dist/resources/da-dk/generated.js.map +1 -0
- package/dist/resources/da-dk/studio.d.ts +18 -0
- package/dist/resources/da-dk/studio.d.ts.map +1 -0
- package/dist/resources/da-dk/studio.js +17 -0
- package/dist/resources/da-dk/studio.js.map +1 -0
- package/dist/resources/da-dk/ui.d.ts +996 -0
- package/dist/resources/da-dk/ui.d.ts.map +1 -0
- package/dist/resources/da-dk/ui.js +995 -0
- package/dist/resources/da-dk/ui.js.map +1 -0
- package/dist/resources/de-de/common.d.ts +1964 -0
- package/dist/resources/de-de/common.d.ts.map +1 -0
- package/dist/resources/de-de/common.js +1963 -0
- package/dist/resources/de-de/common.js.map +1 -0
- package/dist/resources/de-de/errors.d.ts +45 -0
- package/dist/resources/de-de/errors.d.ts.map +1 -0
- package/dist/resources/de-de/errors.js +44 -0
- package/dist/resources/de-de/errors.js.map +1 -0
- package/dist/resources/de-de/generated.d.ts +20 -0
- package/dist/resources/de-de/generated.d.ts.map +1 -0
- package/dist/resources/de-de/generated.js +19 -0
- package/dist/resources/de-de/generated.js.map +1 -0
- package/dist/resources/de-de/studio.d.ts +18 -0
- package/dist/resources/de-de/studio.d.ts.map +1 -0
- package/dist/resources/de-de/studio.js +17 -0
- package/dist/resources/de-de/studio.js.map +1 -0
- package/dist/resources/de-de/ui.d.ts +996 -0
- package/dist/resources/de-de/ui.d.ts.map +1 -0
- package/dist/resources/de-de/ui.js +995 -0
- package/dist/resources/de-de/ui.js.map +1 -0
- package/dist/resources/en-us/common.d.ts +1964 -0
- package/dist/resources/en-us/common.d.ts.map +1 -0
- package/dist/resources/en-us/common.js +1963 -0
- package/dist/resources/en-us/common.js.map +1 -0
- package/dist/resources/en-us/errors.d.ts +45 -0
- package/dist/resources/en-us/errors.d.ts.map +1 -0
- package/dist/resources/en-us/errors.js +44 -0
- package/dist/resources/en-us/errors.js.map +1 -0
- package/dist/resources/en-us/generated.d.ts +20 -0
- package/dist/resources/en-us/generated.d.ts.map +1 -0
- package/dist/resources/en-us/generated.js +19 -0
- package/dist/resources/en-us/generated.js.map +1 -0
- package/dist/resources/en-us/studio.d.ts +18 -0
- package/dist/resources/en-us/studio.d.ts.map +1 -0
- package/dist/resources/en-us/studio.js +17 -0
- package/dist/resources/en-us/studio.js.map +1 -0
- package/dist/resources/en-us/ui.d.ts +996 -0
- package/dist/resources/en-us/ui.d.ts.map +1 -0
- package/dist/resources/en-us/ui.js +995 -0
- package/dist/resources/en-us/ui.js.map +1 -0
- package/dist/resources/fr-fr/common.d.ts +1964 -0
- package/dist/resources/fr-fr/common.d.ts.map +1 -0
- package/dist/resources/fr-fr/common.js +1963 -0
- package/dist/resources/fr-fr/common.js.map +1 -0
- package/dist/resources/fr-fr/errors.d.ts +45 -0
- package/dist/resources/fr-fr/errors.d.ts.map +1 -0
- package/dist/resources/fr-fr/errors.js +44 -0
- package/dist/resources/fr-fr/errors.js.map +1 -0
- package/dist/resources/fr-fr/generated.d.ts +20 -0
- package/dist/resources/fr-fr/generated.d.ts.map +1 -0
- package/dist/resources/fr-fr/generated.js +19 -0
- package/dist/resources/fr-fr/generated.js.map +1 -0
- package/dist/resources/fr-fr/studio.d.ts +18 -0
- package/dist/resources/fr-fr/studio.d.ts.map +1 -0
- package/dist/resources/fr-fr/studio.js +17 -0
- package/dist/resources/fr-fr/studio.js.map +1 -0
- package/dist/resources/fr-fr/ui.d.ts +996 -0
- package/dist/resources/fr-fr/ui.d.ts.map +1 -0
- package/dist/resources/fr-fr/ui.js +995 -0
- package/dist/resources/fr-fr/ui.js.map +1 -0
- package/dist/resources/index.d.ts +8 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +21 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/lazy.d.ts +20 -0
- package/dist/resources/lazy.d.ts.map +1 -0
- package/dist/resources/lazy.js +49 -0
- package/dist/resources/lazy.js.map +1 -0
- package/dist/resources/zh-cn/common.d.ts +1964 -0
- package/dist/resources/zh-cn/common.d.ts.map +1 -0
- package/dist/resources/zh-cn/common.js +1963 -0
- package/dist/resources/zh-cn/common.js.map +1 -0
- package/dist/resources/zh-cn/errors.d.ts +45 -0
- package/dist/resources/zh-cn/errors.d.ts.map +1 -0
- package/dist/resources/zh-cn/errors.js +44 -0
- package/dist/resources/zh-cn/errors.js.map +1 -0
- package/dist/resources/zh-cn/generated.d.ts +20 -0
- package/dist/resources/zh-cn/generated.d.ts.map +1 -0
- package/dist/resources/zh-cn/generated.js +19 -0
- package/dist/resources/zh-cn/generated.js.map +1 -0
- package/dist/resources/zh-cn/studio.d.ts +18 -0
- package/dist/resources/zh-cn/studio.d.ts.map +1 -0
- package/dist/resources/zh-cn/studio.js +17 -0
- package/dist/resources/zh-cn/studio.js.map +1 -0
- package/dist/resources/zh-cn/ui.d.ts +996 -0
- package/dist/resources/zh-cn/ui.d.ts.map +1 -0
- package/dist/resources/zh-cn/ui.js +995 -0
- package/dist/resources/zh-cn/ui.js.map +1 -0
- package/dist/resources/zh-tw/common.d.ts +1964 -0
- package/dist/resources/zh-tw/common.d.ts.map +1 -0
- package/dist/resources/zh-tw/common.js +1963 -0
- package/dist/resources/zh-tw/common.js.map +1 -0
- package/dist/resources/zh-tw/errors.d.ts +45 -0
- package/dist/resources/zh-tw/errors.d.ts.map +1 -0
- package/dist/resources/zh-tw/errors.js +44 -0
- package/dist/resources/zh-tw/errors.js.map +1 -0
- package/dist/resources/zh-tw/generated.d.ts +20 -0
- package/dist/resources/zh-tw/generated.d.ts.map +1 -0
- package/dist/resources/zh-tw/generated.js +19 -0
- package/dist/resources/zh-tw/generated.js.map +1 -0
- package/dist/resources/zh-tw/studio.d.ts +18 -0
- package/dist/resources/zh-tw/studio.d.ts.map +1 -0
- package/dist/resources/zh-tw/studio.js +17 -0
- package/dist/resources/zh-tw/studio.js.map +1 -0
- package/dist/resources/zh-tw/ui.d.ts +996 -0
- package/dist/resources/zh-tw/ui.d.ts.map +1 -0
- package/dist/resources/zh-tw/ui.js +995 -0
- package/dist/resources/zh-tw/ui.js.map +1 -0
- package/locales/ar-EG/common.json +1954 -0
- package/locales/ar-EG/errors.json +35 -0
- package/locales/ar-EG/generated.json +10 -0
- package/locales/ar-EG/studio.json +8 -0
- package/locales/ar-EG/ui.json +986 -0
- package/locales/cs-CZ/common.json +1954 -0
- package/locales/cs-CZ/errors.json +35 -0
- package/locales/cs-CZ/generated.json +10 -0
- package/locales/cs-CZ/studio.json +8 -0
- package/locales/cs-CZ/ui.json +986 -0
- package/locales/da-DK/common.json +1954 -0
- package/locales/da-DK/errors.json +35 -0
- package/locales/da-DK/generated.json +10 -0
- package/locales/da-DK/studio.json +8 -0
- package/locales/da-DK/ui.json +986 -0
- package/locales/de-DE/common.json +1954 -0
- package/locales/de-DE/errors.json +35 -0
- package/locales/de-DE/generated.json +10 -0
- package/locales/de-DE/studio.json +8 -0
- package/locales/de-DE/ui.json +986 -0
- package/locales/en-US/common.json +1954 -0
- package/locales/en-US/errors.json +35 -0
- package/locales/en-US/generated.json +10 -0
- package/locales/en-US/studio.json +8 -0
- package/locales/en-US/ui.json +986 -0
- package/locales/fr-FR/common.json +1954 -0
- package/locales/fr-FR/errors.json +35 -0
- package/locales/fr-FR/generated.json +10 -0
- package/locales/fr-FR/studio.json +8 -0
- package/locales/fr-FR/ui.json +986 -0
- package/locales/zh-CN/common.json +1954 -0
- package/locales/zh-CN/errors.json +35 -0
- package/locales/zh-CN/generated.json +10 -0
- package/locales/zh-CN/studio.json +8 -0
- package/locales/zh-CN/ui.json +986 -0
- package/locales/zh-TW/common.json +1954 -0
- package/locales/zh-TW/errors.json +35 -0
- package/locales/zh-TW/generated.json +10 -0
- package/locales/zh-TW/studio.json +8 -0
- package/locales/zh-TW/ui.json +986 -0
- package/package.json +51 -0
|
@@ -0,0 +1,1964 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GENERATED MIRROR of ../../../locales/fr-FR/common.json — do not edit by hand.
|
|
3
|
+
* The JSON file is the canonical hand-authored bundle (10-i18n-theming.md §3.1);
|
|
4
|
+
* this TS mirror exists so the runtime bundles en-US resources (and chunk-splits
|
|
5
|
+
* the other locales) without JSON import attributes (browser + NodeNext safe).
|
|
6
|
+
* Parity is enforced by src/resources/parity.test.ts. Regenerate with
|
|
7
|
+
* scripts/gen-resources.mjs.
|
|
8
|
+
*/
|
|
9
|
+
declare const _default: {
|
|
10
|
+
readonly common: {
|
|
11
|
+
readonly dismiss: "Fermer";
|
|
12
|
+
readonly notifications: "Notifications";
|
|
13
|
+
readonly retry: "Réessayer";
|
|
14
|
+
readonly undo: "Annuler";
|
|
15
|
+
readonly close: "Fermer";
|
|
16
|
+
readonly cancel: "Annuler";
|
|
17
|
+
readonly back: "Retour";
|
|
18
|
+
readonly loading: "Chargement";
|
|
19
|
+
readonly clearSearch: "Effacer la recherche";
|
|
20
|
+
readonly clear: "Effacer";
|
|
21
|
+
readonly save: "Enregistrer";
|
|
22
|
+
};
|
|
23
|
+
readonly auth: {
|
|
24
|
+
readonly headline: "Transformez n’importe quelle base de données en tableau de bord.";
|
|
25
|
+
readonly trust: "Cœur AGPL · Auto-hébergé · Vos données restent les vôtres";
|
|
26
|
+
readonly signIn: {
|
|
27
|
+
readonly title: "Bon retour";
|
|
28
|
+
readonly subtitle: "Connectez-vous à votre espace de travail Adminium.";
|
|
29
|
+
readonly email: "E-mail";
|
|
30
|
+
readonly emailInvalid: "Saisissez une adresse e-mail valide.";
|
|
31
|
+
readonly password: "Mot de passe";
|
|
32
|
+
readonly passwordRequired: "Saisissez votre mot de passe.";
|
|
33
|
+
readonly showPassword: "Afficher le mot de passe";
|
|
34
|
+
readonly hidePassword: "Masquer le mot de passe";
|
|
35
|
+
readonly remember: "Rester connecté";
|
|
36
|
+
readonly forgot: "Oublié ?";
|
|
37
|
+
readonly submit: "Se connecter";
|
|
38
|
+
readonly invalid: "E-mail ou mot de passe invalide.";
|
|
39
|
+
readonly rateLimited: "Trop de tentatives — réessayez dans une minute.";
|
|
40
|
+
readonly failed: "Échec de la connexion. Vérifiez votre connexion et réessayez.";
|
|
41
|
+
};
|
|
42
|
+
readonly forgot: {
|
|
43
|
+
readonly title: "Réinitialiser votre mot de passe";
|
|
44
|
+
readonly email: "E-mail";
|
|
45
|
+
readonly emailInvalid: "Saisissez une adresse e-mail valide.";
|
|
46
|
+
readonly submit: "Envoyer le lien de réinitialisation";
|
|
47
|
+
readonly sentTitle: "Consultez votre boîte mail";
|
|
48
|
+
readonly resend: "Renvoyer";
|
|
49
|
+
readonly back: "Retour à la connexion";
|
|
50
|
+
readonly done: "Retour à la connexion";
|
|
51
|
+
readonly rateLimited: "Trop de demandes — réessayez plus tard.";
|
|
52
|
+
readonly failed: "Une erreur s’est produite. Réessayez.";
|
|
53
|
+
readonly smtpUnconfigured: "Cet Adminium n'a pas de serveur e-mail configuré : il ne peut pas envoyer de lien de réinitialisation. Demandez à un administrateur de réinitialiser votre mot de passe.";
|
|
54
|
+
};
|
|
55
|
+
readonly reset: {
|
|
56
|
+
readonly title: "Définir un nouveau mot de passe";
|
|
57
|
+
readonly subtitle: "8 caractères minimum.";
|
|
58
|
+
readonly password: "Nouveau mot de passe";
|
|
59
|
+
readonly confirm: "Confirmer le mot de passe";
|
|
60
|
+
readonly showPassword: "Afficher le mot de passe";
|
|
61
|
+
readonly hidePassword: "Masquer le mot de passe";
|
|
62
|
+
readonly strength: "Robustesse du mot de passe";
|
|
63
|
+
readonly weak: "Faible";
|
|
64
|
+
readonly fair: "Moyen";
|
|
65
|
+
readonly good: "Bon";
|
|
66
|
+
readonly strong: "Fort";
|
|
67
|
+
readonly tooShort: "Utilisez au moins 8 caractères.";
|
|
68
|
+
readonly submit: "Réinitialiser le mot de passe";
|
|
69
|
+
readonly failed: "Échec de la réinitialisation. Réessayez.";
|
|
70
|
+
};
|
|
71
|
+
readonly otp: {
|
|
72
|
+
readonly title: "Authentification à deux facteurs";
|
|
73
|
+
readonly subtitle: "Saisissez le code à 6 chiffres de votre application d’authentification.";
|
|
74
|
+
readonly code: "Code à usage unique";
|
|
75
|
+
readonly recoveryCode: "Code de récupération";
|
|
76
|
+
readonly useRecovery: "Appareil perdu ? Utilisez un code de récupération";
|
|
77
|
+
readonly useAuthenticator: "Utiliser plutôt votre application d’authentification";
|
|
78
|
+
readonly submit: "Vérifier";
|
|
79
|
+
readonly invalid: "Ce code n’a pas fonctionné. Réessayez.";
|
|
80
|
+
readonly failed: "Échec de la vérification. Vérifiez votre connexion et réessayez.";
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
readonly nav: {
|
|
84
|
+
readonly home: "Accueil";
|
|
85
|
+
readonly primary: "Principal";
|
|
86
|
+
readonly account: "Compte";
|
|
87
|
+
readonly signOut: "Se déconnecter";
|
|
88
|
+
readonly empty: "Les pages apparaîtront ici une fois une base de données connectée.";
|
|
89
|
+
readonly connection: {
|
|
90
|
+
readonly shared: "Partagé";
|
|
91
|
+
readonly unnamed: "Connexion";
|
|
92
|
+
};
|
|
93
|
+
readonly imports: "Importer des données";
|
|
94
|
+
readonly exports: "Exports de données";
|
|
95
|
+
readonly emailTemplates: "Modèles d’e-mail";
|
|
96
|
+
readonly notificationSettings: "Paramètres de notification";
|
|
97
|
+
readonly scheduledReports: "Rapports planifiés";
|
|
98
|
+
readonly group: {
|
|
99
|
+
readonly workspace: "Espace de travail";
|
|
100
|
+
readonly library: "Bibliothèque";
|
|
101
|
+
readonly planning: "Planification";
|
|
102
|
+
readonly people: "Personnes";
|
|
103
|
+
readonly account: "Compte";
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
readonly topbar: {
|
|
107
|
+
readonly search: "Rechercher…";
|
|
108
|
+
readonly notifications: "Notifications";
|
|
109
|
+
readonly notificationsLoading: "Chargement des notifications";
|
|
110
|
+
readonly notificationsError: "Impossible de charger les notifications.";
|
|
111
|
+
readonly notificationsEmpty: "Vous êtes à jour.";
|
|
112
|
+
readonly theme: "Basculer clair / sombre";
|
|
113
|
+
readonly userMenu: "Menu du compte";
|
|
114
|
+
readonly profile: "Profil";
|
|
115
|
+
readonly preferences: "Préférences";
|
|
116
|
+
readonly signOut: "Se déconnecter";
|
|
117
|
+
};
|
|
118
|
+
readonly palette: {
|
|
119
|
+
readonly dialog: "Palette de commandes";
|
|
120
|
+
readonly placeholder: "Saisissez une commande ou recherchez…";
|
|
121
|
+
readonly navigate: "Naviguer";
|
|
122
|
+
readonly actions: "Actions";
|
|
123
|
+
readonly askAi: "Demander à l’IA";
|
|
124
|
+
readonly shortcuts: "Raccourcis clavier";
|
|
125
|
+
readonly signOut: "Se déconnecter";
|
|
126
|
+
readonly themeDark: "Passer au thème sombre";
|
|
127
|
+
readonly themeLight: "Passer au thème clair";
|
|
128
|
+
readonly footerNavigate: "naviguer";
|
|
129
|
+
readonly footerOpen: "sélectionner";
|
|
130
|
+
readonly footerClose: "fermer";
|
|
131
|
+
};
|
|
132
|
+
readonly shortcuts: {
|
|
133
|
+
readonly title: "Raccourcis clavier";
|
|
134
|
+
readonly subtitle: "Travaillez plus vite dans tout Adminium";
|
|
135
|
+
readonly close: "Fermer";
|
|
136
|
+
readonly dismiss: "Fermer ou ignorer";
|
|
137
|
+
readonly palette: "Ouvrir la palette de commandes";
|
|
138
|
+
readonly panel: "Afficher le panneau des raccourcis";
|
|
139
|
+
readonly search: "Activer la recherche";
|
|
140
|
+
readonly sidebar: "Afficher/masquer la barre latérale";
|
|
141
|
+
readonly theme: "Basculer clair / sombre";
|
|
142
|
+
readonly then: "puis";
|
|
143
|
+
readonly footerPre: "Appuyez sur";
|
|
144
|
+
readonly footerPost: "à tout moment pour ouvrir ce panneau.";
|
|
145
|
+
};
|
|
146
|
+
readonly states: {
|
|
147
|
+
readonly checked: "vérifié il y a 8 s";
|
|
148
|
+
readonly diagnostics: "Diagnostics";
|
|
149
|
+
};
|
|
150
|
+
readonly notFound: {
|
|
151
|
+
readonly title: "Cette page a disparu";
|
|
152
|
+
readonly errorLine: "Erreur 404";
|
|
153
|
+
readonly searchPlaceholder: "Rechercher une page…";
|
|
154
|
+
readonly matches: "Pages correspondantes";
|
|
155
|
+
readonly popular: "Destinations populaires";
|
|
156
|
+
readonly goBack: "Retour";
|
|
157
|
+
readonly backToDashboard: "Retour au tableau de bord";
|
|
158
|
+
};
|
|
159
|
+
readonly page: {
|
|
160
|
+
readonly invalid: {
|
|
161
|
+
readonly title: "La configuration de cette page est invalide";
|
|
162
|
+
readonly body: "Le document de page enregistré a échoué à la validation et ne peut pas être affiché.";
|
|
163
|
+
};
|
|
164
|
+
readonly renderError: {
|
|
165
|
+
readonly title: "Cette page n’a pas pu s’afficher";
|
|
166
|
+
};
|
|
167
|
+
readonly tooNew: {
|
|
168
|
+
readonly title: "Cette page nécessite une version plus récente d’Adminium";
|
|
169
|
+
};
|
|
170
|
+
readonly unknownTemplate: {
|
|
171
|
+
readonly title: "Modèle de page inconnu";
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
readonly mutation: {
|
|
175
|
+
readonly created: "Enregistrement créé";
|
|
176
|
+
readonly updated: "Enregistrement mis à jour";
|
|
177
|
+
readonly deleted: "Enregistrement supprimé";
|
|
178
|
+
};
|
|
179
|
+
readonly undo: {
|
|
180
|
+
readonly done: "Modification annulée";
|
|
181
|
+
readonly failed: "Impossible d’annuler cette modification";
|
|
182
|
+
};
|
|
183
|
+
readonly prefs: {
|
|
184
|
+
readonly theme: {
|
|
185
|
+
readonly label: "Thème";
|
|
186
|
+
readonly light: "Clair";
|
|
187
|
+
readonly dark: "Sombre";
|
|
188
|
+
readonly system: "Système";
|
|
189
|
+
};
|
|
190
|
+
readonly accent: {
|
|
191
|
+
readonly label: "Couleur d’accent";
|
|
192
|
+
readonly indigo: "Indigo";
|
|
193
|
+
readonly blue: "Bleu";
|
|
194
|
+
readonly teal: "Bleu canard";
|
|
195
|
+
readonly violet: "Violet";
|
|
196
|
+
readonly rose: "Rose";
|
|
197
|
+
readonly red: "Rouge";
|
|
198
|
+
readonly orange: "Orange";
|
|
199
|
+
readonly black: "Noir";
|
|
200
|
+
};
|
|
201
|
+
readonly density: {
|
|
202
|
+
readonly label: "Densité";
|
|
203
|
+
readonly comfortable: "Confortable";
|
|
204
|
+
readonly compact: "Compacte";
|
|
205
|
+
};
|
|
206
|
+
readonly locale: {
|
|
207
|
+
readonly label: "Langue";
|
|
208
|
+
readonly directionNote: "Sens du texte : de droite à gauche (défini automatiquement par la langue)";
|
|
209
|
+
};
|
|
210
|
+
};
|
|
211
|
+
readonly account: {
|
|
212
|
+
readonly title: "Compte";
|
|
213
|
+
readonly subtitle: "L'identité de votre session en cours. Gérez les préférences d'affichage et les paramètres de notification sur leurs pages dédiées.";
|
|
214
|
+
readonly preferencesLink: "Préférences";
|
|
215
|
+
readonly notificationsLink: "Paramètres de notification";
|
|
216
|
+
readonly name: "Nom";
|
|
217
|
+
readonly email: "E-mail";
|
|
218
|
+
readonly roles: "Rôles";
|
|
219
|
+
readonly twoFactor: "Double authentification";
|
|
220
|
+
readonly on: "Activée";
|
|
221
|
+
readonly off: "Désactivée";
|
|
222
|
+
readonly preferences: {
|
|
223
|
+
readonly title: "Préférences";
|
|
224
|
+
readonly subtitle: "L’apparence et la langue d’Adminium pour vous — sur cet appareil et tous ceux où vous vous connectez.";
|
|
225
|
+
readonly workspaceDefault: "Valeur de l’espace de travail";
|
|
226
|
+
readonly personal: "Personnel";
|
|
227
|
+
readonly usingDefault: "Valeur par défaut de l’espace de travail utilisée ({value})";
|
|
228
|
+
readonly reset: "Rétablir la valeur de l’espace de travail";
|
|
229
|
+
readonly resetFailed: "Impossible de réinitialiser cette préférence. Réessayez.";
|
|
230
|
+
readonly appliesInstantly: "Les changements s’appliquent immédiatement et sont enregistrés dans votre profil.";
|
|
231
|
+
};
|
|
232
|
+
};
|
|
233
|
+
readonly settings: {
|
|
234
|
+
readonly defaults: {
|
|
235
|
+
readonly title: "Valeurs par défaut globales";
|
|
236
|
+
readonly subtitle: "Apparence et langue par défaut pour tout l’espace de travail.";
|
|
237
|
+
readonly explainer: "Ces valeurs par défaut s’appliquent à tous les utilisateurs tant qu’ils ne les remplacent pas. Chacun peut définir ses propres préférences dans Profil → Préférences — les préférences personnelles l’emportent toujours pour cet utilisateur.";
|
|
238
|
+
readonly appearanceHeading: "Apparence par défaut";
|
|
239
|
+
readonly languageHeading: "Langue et région par défaut";
|
|
240
|
+
readonly adoption: "{following, number} sur {total, plural, one {# utilisateur} other {# utilisateurs}} suivent cette valeur par défaut.";
|
|
241
|
+
readonly weekStartNote: "Le premier jour de la semaine et les formats de nombres suivent la langue.";
|
|
242
|
+
readonly save: "Enregistrer les valeurs par défaut";
|
|
243
|
+
readonly saved: "Valeurs par défaut de l’espace de travail mises à jour";
|
|
244
|
+
readonly saveFailed: "Impossible d’enregistrer les valeurs par défaut. Réessayez.";
|
|
245
|
+
readonly liveNote: "L’enregistrement diffuse le changement en direct — les utilisateurs connectés qui suivent une valeur par défaut la voient s’appliquer sans recharger.";
|
|
246
|
+
};
|
|
247
|
+
readonly notifications: {
|
|
248
|
+
readonly subtitle: "Choisissez de quoi vous êtes notifié et comment";
|
|
249
|
+
readonly matrixLabel: "Me notifier pour";
|
|
250
|
+
readonly rowHeader: "Événement";
|
|
251
|
+
readonly saving: "Enregistrement…";
|
|
252
|
+
readonly saved: "Enregistré";
|
|
253
|
+
readonly unavailable: "Pas encore disponible";
|
|
254
|
+
readonly loading: "Chargement des préférences";
|
|
255
|
+
readonly errorTitle: "Ces paramètres n’ont pas pu être chargés";
|
|
256
|
+
readonly emptyTitle: "Rien à configurer pour l’instant";
|
|
257
|
+
readonly emptyBody: "Les événements de notification apparaissent ici à mesure que leurs producteurs sont livrés.";
|
|
258
|
+
readonly saveFailed: "Impossible d’enregistrer cette modification.";
|
|
259
|
+
};
|
|
260
|
+
};
|
|
261
|
+
readonly studio: {
|
|
262
|
+
readonly source: {
|
|
263
|
+
readonly engine: {
|
|
264
|
+
readonly label: "Moteur de base de données";
|
|
265
|
+
readonly postgres: "PostgreSQL";
|
|
266
|
+
readonly mysql: "MySQL / MariaDB";
|
|
267
|
+
readonly sqlite: "SQLite";
|
|
268
|
+
};
|
|
269
|
+
readonly format: {
|
|
270
|
+
readonly label: "Format du schéma";
|
|
271
|
+
readonly helper: "Laissez la détection automatique, sauf si elle se trompe.";
|
|
272
|
+
readonly auto: "Détection automatique";
|
|
273
|
+
readonly sql: "DDL SQL / pg_dump";
|
|
274
|
+
readonly prisma: "Schéma Prisma";
|
|
275
|
+
readonly drizzle: "Drizzle ORM";
|
|
276
|
+
readonly typeorm: "Entités TypeORM";
|
|
277
|
+
readonly sequelize: "Modèles Sequelize";
|
|
278
|
+
readonly rails: "Rails schema.rb";
|
|
279
|
+
readonly django: "Django models.py";
|
|
280
|
+
readonly json: "JSON Adminium";
|
|
281
|
+
};
|
|
282
|
+
readonly sqlite: {
|
|
283
|
+
readonly file: "Chemin du fichier de base de données";
|
|
284
|
+
readonly helper: "SQLite est un fichier, pas un serveur — indiquez le chemin absolu sur la machine qui exécute Adminium.";
|
|
285
|
+
};
|
|
286
|
+
readonly file: {
|
|
287
|
+
readonly detectedAs: "Détecté : {format}";
|
|
288
|
+
readonly moreWarnings: "+{count} avertissements supplémentaires — la liste complète apparaît à l’étape d’analyse.";
|
|
289
|
+
readonly dropTitle: "Déposez votre fichier de schéma ici, ou parcourez";
|
|
290
|
+
readonly dropHint: "SQL DDL / pg_dump, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, modèles Django, Adminium JSON";
|
|
291
|
+
readonly pitch: "Aucune connexion à la base requise — nous analysons votre fichier de schéma et construisons les mêmes tableaux de bord.";
|
|
292
|
+
readonly parsing: "Lecture du fichier de schéma téléversé…";
|
|
293
|
+
readonly tables: "tables";
|
|
294
|
+
readonly columns: "colonnes";
|
|
295
|
+
readonly warnings: "avertissements";
|
|
296
|
+
readonly errorTitle: "Impossible d’analyser le fichier";
|
|
297
|
+
readonly parseFailed: "Nous n’avons pas pu analyser ce fichier. Si la détection automatique s’est trompée, choisissez le format explicitement et réessayez.";
|
|
298
|
+
readonly unsupported: "Format non reconnu — SQL DDL, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, modèles Django et Adminium JSON sont pris en charge. Choisissez-en un explicitement et réessayez.";
|
|
299
|
+
readonly requestFailed: "Échec du téléversement — vérifiez votre connexion et réessayez.";
|
|
300
|
+
};
|
|
301
|
+
readonly title: "Connectez votre base de données";
|
|
302
|
+
readonly subtitle: "Pointez Adminium vers une base de données et nous générerons un tableau de bord d’administration à partir de son schéma.";
|
|
303
|
+
readonly name: "Nom de la connexion";
|
|
304
|
+
readonly namePlaceholder: "Postgres de production";
|
|
305
|
+
readonly modeLabel: "Mode de saisie de la source";
|
|
306
|
+
readonly mode: {
|
|
307
|
+
readonly dsn: "Chaîne de connexion";
|
|
308
|
+
readonly fields: "Champs individuels";
|
|
309
|
+
readonly file: "Fichier de schéma";
|
|
310
|
+
};
|
|
311
|
+
readonly dsn: {
|
|
312
|
+
readonly label: "Chaîne de connexion";
|
|
313
|
+
readonly helper: "postgres://utilisateur:motdepasse@hote:5432/base — mysql:// et sqlite: fonctionnent aussi.";
|
|
314
|
+
readonly incomplete: "Ajoutez l’hôte et la base, p. ex. postgres://user@host:5432/db";
|
|
315
|
+
readonly invalidScheme: "Schéma non reconnu — attendu : postgres://, mysql://, mariadb:// ou sqlite:";
|
|
316
|
+
readonly quickFill: "Remplissage rapide :";
|
|
317
|
+
};
|
|
318
|
+
readonly fields: {
|
|
319
|
+
readonly host: "Hôte";
|
|
320
|
+
readonly port: "Port";
|
|
321
|
+
readonly database: "Base de données";
|
|
322
|
+
readonly user: "Utilisateur";
|
|
323
|
+
readonly password: "Mot de passe";
|
|
324
|
+
readonly ssl: "Mode SSL";
|
|
325
|
+
readonly preview: "Aperçu de la chaîne de connexion :";
|
|
326
|
+
};
|
|
327
|
+
readonly readOnlyRole: {
|
|
328
|
+
readonly title: "Utilisez un rôle en lecture seule";
|
|
329
|
+
readonly body: "Adminium n’écrit jamais dans votre base — la configuration n’utilise que les métadonnées du schéma. Nous recommandons un utilisateur dédié avec des droits SELECT uniquement ; vous choisirez où Adminium range ses propres tables à l’étape du stockage méta.";
|
|
330
|
+
};
|
|
331
|
+
};
|
|
332
|
+
readonly capability: {
|
|
333
|
+
readonly mysqlApproxRows: "Les nombres de lignes MySQL sont des estimations du moteur de stockage (dérive possible jusqu’à ±40 %) — affichés avec ≈.";
|
|
334
|
+
readonly mysqlFkEnum: "Les métadonnées FK/enum de MySQL sont plus limitées : les tables MyISAM ne déclarent pas de clés étrangères, les enums sont des types enum(…) par colonne et les contraintes CHECK requièrent MySQL 8.0.16+ / MariaDB 10.2+.";
|
|
335
|
+
readonly sqliteCheckEnums: "SQLite n’a pas de type enum natif — les enums sont synthétisés à partir des contraintes CHECK (col IN (…)).";
|
|
336
|
+
readonly sqliteNoComments: "SQLite n’a pas de commentaires de colonne — utilisez l’éditeur de remappage du schéma pour ajouter des libellés.";
|
|
337
|
+
readonly importNoRowCounts: "Les fichiers de schéma ne contiennent pas de nombres de lignes — la liste des tables affiche — plutôt que des chiffres inventés.";
|
|
338
|
+
readonly importNoLiveHealth: "Pas de connexion à une base de données réelle — les contrôles de santé et la détection de dérive du schéma sont indisponibles pour cette source.";
|
|
339
|
+
readonly rowsUnavailable: "Les fichiers de schéma n’ont pas de base de données réelle — les nombres de lignes restent inconnus tant que vous n’en connectez pas une.";
|
|
340
|
+
readonly rowsRunAnalyze: "Pas encore d’estimation — exécutez ANALYZE sur la base pour obtenir les nombres de lignes.";
|
|
341
|
+
readonly rowsNoEstimate: "Le moteur n’a communiqué aucune estimation pour cette table.";
|
|
342
|
+
readonly rowsApproximate: "Estimation du moteur de stockage — dérive possible jusqu’à ±40 % avec InnoDB.";
|
|
343
|
+
};
|
|
344
|
+
readonly test: {
|
|
345
|
+
readonly log: {
|
|
346
|
+
readonly moreWarnings: "+{count} avertissements du parseur supplémentaires";
|
|
347
|
+
readonly connecting: "Établissement d’une connexion sécurisée…";
|
|
348
|
+
readonly connected: "Connecté ({latency} ms) · introspection en lecture seule";
|
|
349
|
+
readonly connectFailed: "Échec de la connexion.";
|
|
350
|
+
readonly readingSchema: "Lecture du schéma : public";
|
|
351
|
+
readonly readingFile: "Lecture du fichier de schéma téléversé…";
|
|
352
|
+
readonly parsingFile: "Analyse de {file}…";
|
|
353
|
+
readonly detected: "{tables} tables · {columns} colonnes détectées";
|
|
354
|
+
readonly found: "{tables} tables · {columns} colonnes trouvées";
|
|
355
|
+
readonly mapping: "Correspondance des types de colonnes → widgets de saisie";
|
|
356
|
+
readonly relations: "Détection des relations…";
|
|
357
|
+
readonly piiScan: "Recherche de colonnes PII…";
|
|
358
|
+
readonly piiDone: "Analyse PII terminée — {count} colonnes masquées par défaut";
|
|
359
|
+
readonly piiDoneUnknown: "Analyse PII terminée";
|
|
360
|
+
readonly jobFailed: "Échec de l’introspection.";
|
|
361
|
+
readonly networkFailed: "Échec de la requête — vérifiez votre connexion et réessayez.";
|
|
362
|
+
readonly ready: "Prêt";
|
|
363
|
+
};
|
|
364
|
+
readonly title: "Analyse de votre schéma";
|
|
365
|
+
readonly subtitle: "Introspection des tables, colonnes et relations. Cela prend quelques secondes.";
|
|
366
|
+
readonly trust: "Nous ne faisons que lire votre schéma et vos données. Rien n’est modifié.";
|
|
367
|
+
readonly errorTitle: "Échec de la connexion";
|
|
368
|
+
readonly retry: "Réessayer";
|
|
369
|
+
readonly logLabel: "Journal d’introspection";
|
|
370
|
+
readonly hint: {
|
|
371
|
+
readonly auth: "Échec de l’authentification — vérifiez le nom d’utilisateur et le mot de passe dans votre DSN.";
|
|
372
|
+
readonly hostUnreachable: "Hôte injoignable — vérifiez le nom d’hôte et le port, et que la base accepte les connexions depuis cette machine (ajoutez nos IP à la liste d’autorisation).";
|
|
373
|
+
readonly metaPlacement: "Cette source ne peut pas héberger les tables méta d’Adminium — continuez avec une base méta séparée.";
|
|
374
|
+
readonly permission: "Le rôle s’est connecté mais n’a pas les droits de lecture du schéma — accordez USAGE sur le schéma à votre rôle d’introspection.";
|
|
375
|
+
readonly timeout: "La base n’a pas répondu à temps — vérifiez le chemin réseau et la charge, puis réessayez.";
|
|
376
|
+
readonly tls: "Échec de la négociation TLS — essayez sslmode=require, ou téléversez le certificat CA attendu par votre serveur.";
|
|
377
|
+
readonly unknown: "Échec de la connexion — vérifiez la DSN et réessayez.";
|
|
378
|
+
};
|
|
379
|
+
};
|
|
380
|
+
readonly tables: {
|
|
381
|
+
readonly importNoCounts: "Les fichiers de schéma ne contiennent pas de nombres de lignes — la colonne affiche — tant qu’aucune base réelle n’est connectée.";
|
|
382
|
+
readonly title: "Choisissez vos tables";
|
|
383
|
+
readonly subtitle: "Choisissez lesquelles inclure. Vous pourrez en changer à tout moment.";
|
|
384
|
+
readonly search: "Filtrer les tables…";
|
|
385
|
+
readonly listLabel: "Tables incluables";
|
|
386
|
+
readonly emptyFilter: "Aucune table ne correspond à votre filtre.";
|
|
387
|
+
readonly pii: "PII";
|
|
388
|
+
readonly highVolume: "gros volume";
|
|
389
|
+
readonly highVolumeNote: "Les tables de plus de 100 000 lignes démarrent décochées — les tables techniques ont rarement leur place dans un tableau de bord.";
|
|
390
|
+
readonly joinHidden: "{count} tables de jointure/système sont masquées d’avance — elles alimentent toujours les relations plusieurs-à-plusieurs.";
|
|
391
|
+
};
|
|
392
|
+
readonly hub: {
|
|
393
|
+
readonly title: "Connexions de données";
|
|
394
|
+
readonly subtitle: "{healthy, number} sur {total, plural, one {# connexion} other {# connexions}} en bonne santé";
|
|
395
|
+
readonly connectNew: "Nouvelle connexion";
|
|
396
|
+
readonly stats: {
|
|
397
|
+
readonly connections: "Connexions";
|
|
398
|
+
readonly healthy: "En bonne santé";
|
|
399
|
+
readonly tables: "Tables incluses";
|
|
400
|
+
readonly pages: "Pages générées";
|
|
401
|
+
};
|
|
402
|
+
readonly status: {
|
|
403
|
+
readonly connected: "Connectée";
|
|
404
|
+
readonly error: "Erreur";
|
|
405
|
+
readonly unconfigured: "Brouillon";
|
|
406
|
+
readonly testing: "Test en cours…";
|
|
407
|
+
};
|
|
408
|
+
readonly card: {
|
|
409
|
+
readonly readOnly: "Lecture seule";
|
|
410
|
+
readonly tables: "Tables";
|
|
411
|
+
readonly pages: "Pages";
|
|
412
|
+
readonly latency: "Latence";
|
|
413
|
+
readonly latencyMs: "{latency, number} ms";
|
|
414
|
+
readonly lastIntrospected: "Dernière introspection";
|
|
415
|
+
readonly never: "Jamais";
|
|
416
|
+
};
|
|
417
|
+
readonly action: {
|
|
418
|
+
readonly test: "Tester";
|
|
419
|
+
readonly reintrospect: "Réintrospecter";
|
|
420
|
+
readonly reintrospectFile: "Les sources de type fichier de schéma n’ont pas de base de données active — téléversez à nouveau le fichier.";
|
|
421
|
+
readonly remap: "Remapper le schéma";
|
|
422
|
+
readonly delete: "Supprimer";
|
|
423
|
+
};
|
|
424
|
+
readonly test: {
|
|
425
|
+
readonly ok: "Connexion en bonne santé · {latency, number} ms";
|
|
426
|
+
readonly failed: "Échec du test de connexion";
|
|
427
|
+
};
|
|
428
|
+
readonly introspect: {
|
|
429
|
+
readonly noChanges: "Schéma inchangé — aucun nouvel instantané.";
|
|
430
|
+
readonly updated: "Schéma réintrospecté";
|
|
431
|
+
readonly masksProposed: "{count, plural, one {# colonne proposée} other {# colonnes proposées}} au masquage — à vérifier dans l’éditeur de remappage.";
|
|
432
|
+
readonly failed: "Échec de l’introspection. Réessayez.";
|
|
433
|
+
};
|
|
434
|
+
readonly delete: {
|
|
435
|
+
readonly title: "Supprimer la connexion";
|
|
436
|
+
readonly body: "Cette action supprime « {name} » et les pages générées. Votre base de données n’est jamais touchée.";
|
|
437
|
+
readonly prompt: "Saisissez {name} pour confirmer";
|
|
438
|
+
readonly confirm: "Supprimer la connexion";
|
|
439
|
+
readonly cancel: "Annuler";
|
|
440
|
+
readonly close: "Fermer";
|
|
441
|
+
readonly success: "Connexion « {name} » supprimée";
|
|
442
|
+
readonly failed: "Impossible de supprimer la connexion. Réessayez.";
|
|
443
|
+
};
|
|
444
|
+
readonly empty: {
|
|
445
|
+
readonly title: "Aucune source de données";
|
|
446
|
+
readonly body: "Connectez une base de données : Adminium génère votre panneau d’administration à partir de son schéma.";
|
|
447
|
+
readonly cta: "Connecter une base de données";
|
|
448
|
+
};
|
|
449
|
+
};
|
|
450
|
+
readonly settingsHub: {
|
|
451
|
+
readonly title: "Paramètres de l’espace de travail";
|
|
452
|
+
readonly subtitle: "Identité, sécurité et actions destructrices pour cet espace de travail.";
|
|
453
|
+
readonly save: "Enregistrer les modifications";
|
|
454
|
+
readonly saved: "Paramètres de l’espace de travail mis à jour";
|
|
455
|
+
readonly saveFailed: "Impossible d’enregistrer les paramètres de l’espace de travail. Réessayez.";
|
|
456
|
+
readonly superAdminOnlyTitle: "Super administrateur requis";
|
|
457
|
+
readonly superAdminOnly: "Seul un super administrateur peut modifier l’identité et les paramètres de sécurité de l’espace de travail.";
|
|
458
|
+
readonly identity: {
|
|
459
|
+
readonly heading: "Identité de l’espace de travail";
|
|
460
|
+
readonly appName: {
|
|
461
|
+
readonly label: "Nom de l’application";
|
|
462
|
+
readonly helper: "Affiché dans la barre latérale, le titre du navigateur et les e-mails.";
|
|
463
|
+
readonly error: "Saisissez un nom de 60 caractères maximum.";
|
|
464
|
+
};
|
|
465
|
+
};
|
|
466
|
+
readonly security: {
|
|
467
|
+
readonly heading: "Sécurité";
|
|
468
|
+
readonly require2fa: {
|
|
469
|
+
readonly label: "Exiger l’authentification à deux facteurs";
|
|
470
|
+
readonly desc: "Chaque membre doit activer la 2FA pour se connecter.";
|
|
471
|
+
};
|
|
472
|
+
readonly allowSignup: {
|
|
473
|
+
readonly label: "Autoriser l’auto-inscription";
|
|
474
|
+
readonly desc: "N’importe qui peut créer un compte — désactivé, l’espace de travail reste sur invitation uniquement.";
|
|
475
|
+
};
|
|
476
|
+
readonly sessionTtl: {
|
|
477
|
+
readonly label: "Durée de session (heures)";
|
|
478
|
+
readonly error: "Entre {min, number} et {max, number} heures.";
|
|
479
|
+
};
|
|
480
|
+
readonly passwordMin: {
|
|
481
|
+
readonly label: "Longueur minimale du mot de passe";
|
|
482
|
+
readonly error: "Entre {min, number} et {max, number} caractères.";
|
|
483
|
+
};
|
|
484
|
+
};
|
|
485
|
+
readonly review: {
|
|
486
|
+
readonly title: "Enregistrer les paramètres de l’espace de travail";
|
|
487
|
+
readonly subtitle: "Vérifiez vos modifications avant d’enregistrer.";
|
|
488
|
+
readonly confirm: "Enregistrer les modifications";
|
|
489
|
+
readonly cancel: "Annuler";
|
|
490
|
+
readonly close: "Fermer";
|
|
491
|
+
readonly on: "Activé";
|
|
492
|
+
readonly off: "Désactivé";
|
|
493
|
+
readonly change: "{before} → {after}";
|
|
494
|
+
};
|
|
495
|
+
readonly defaultsCard: {
|
|
496
|
+
readonly heading: "Valeurs par défaut d’apparence et de langue";
|
|
497
|
+
readonly body: "Le thème, la couleur d’accent, la densité et la langue de tout l’espace de travail se trouvent dans les valeurs par défaut globales.";
|
|
498
|
+
readonly cta: "Ouvrir les valeurs par défaut globales";
|
|
499
|
+
};
|
|
500
|
+
readonly danger: {
|
|
501
|
+
readonly heading: "Zone de danger";
|
|
502
|
+
readonly subtitle: "Actions irréversibles.";
|
|
503
|
+
readonly empty: "Rien à supprimer — aucune connexion pour l’instant.";
|
|
504
|
+
readonly deleteDesc: "Supprime la connexion et les pages générées. Votre base de données n’est pas touchée. Irréversible.";
|
|
505
|
+
readonly deleteCta: "Supprimer la connexion";
|
|
506
|
+
};
|
|
507
|
+
readonly aiCard: {
|
|
508
|
+
readonly heading: "Enrichissement par IA";
|
|
509
|
+
readonly body: "Configurez un fournisseur IA (ou l’aller-retour copier-coller) pour enrichir libellés, groupes et relations.";
|
|
510
|
+
readonly cta: "Ouvrir les réglages IA";
|
|
511
|
+
};
|
|
512
|
+
};
|
|
513
|
+
readonly settingsAi: {
|
|
514
|
+
readonly title: "Enrichissement par IA";
|
|
515
|
+
readonly subtitle: "Connectez un modèle pour qu’Adminium suggère des libellés, des groupes, des relations et plus encore — toujours revus sous forme de diff avant toute application.";
|
|
516
|
+
readonly saved: "Fournisseur IA enregistré";
|
|
517
|
+
readonly saveFailed: "Impossible d’enregistrer le fournisseur IA. Réessayez.";
|
|
518
|
+
readonly save: "Enregistrer le fournisseur";
|
|
519
|
+
readonly test: "Tester la connexion";
|
|
520
|
+
readonly testHintDirty: "Enregistrez vos modifications avant de tester.";
|
|
521
|
+
readonly testing: "Test du fournisseur en cours…";
|
|
522
|
+
readonly testError: "Échec du test";
|
|
523
|
+
readonly testErrorBody: "Impossible de joindre le fournisseur. Vérifiez la clé et l’URL de base.";
|
|
524
|
+
readonly testOk: "Connecté à {model} en {latency} ms";
|
|
525
|
+
readonly testUnknownModel: "le fournisseur";
|
|
526
|
+
readonly provider: {
|
|
527
|
+
readonly heading: "Fournisseur IA";
|
|
528
|
+
readonly subtitle: "Choisissez comment Adminium atteint un modèle pour enrichir votre schéma. Les clés sont stockées chiffrées et ne sont jamais réaffichées.";
|
|
529
|
+
readonly active: "Actif";
|
|
530
|
+
readonly anthropic: {
|
|
531
|
+
readonly label: "Anthropic";
|
|
532
|
+
readonly desc: "Modèles Claude via l’API Anthropic.";
|
|
533
|
+
};
|
|
534
|
+
readonly openai: {
|
|
535
|
+
readonly label: "OpenAI";
|
|
536
|
+
readonly desc: "Modèles GPT via l’API OpenAI.";
|
|
537
|
+
};
|
|
538
|
+
readonly openaiCompatible: {
|
|
539
|
+
readonly label: "Compatible OpenAI";
|
|
540
|
+
readonly desc: "Tout point de terminaison au format OpenAI — Groq, Together, vLLM, LM Studio.";
|
|
541
|
+
};
|
|
542
|
+
readonly ollama: {
|
|
543
|
+
readonly label: "Ollama (local)";
|
|
544
|
+
readonly desc: "Modèles exécutés localement via Ollama — sans clé, sans cloud.";
|
|
545
|
+
};
|
|
546
|
+
readonly requiresNetwork: "Nécessite Internet et une clé API";
|
|
547
|
+
readonly networkDisabledTitle: "Les fournisseurs IA directs sont désactivés sur cette installation";
|
|
548
|
+
readonly networkDisabledBody: "Cet Adminium est configuré sans accès Internet sortant : il ne peut joindre aucune API de fournisseur. Utilisez l'aller-retour copier-coller ci-dessous — ni clé ni réseau requis.";
|
|
549
|
+
};
|
|
550
|
+
readonly configure: {
|
|
551
|
+
readonly heading: "Configurer {provider}";
|
|
552
|
+
};
|
|
553
|
+
readonly field: {
|
|
554
|
+
readonly baseUrl: "URL de base";
|
|
555
|
+
readonly baseUrlOptional: "Laissez tel quel, sauf si Ollama tourne sur un autre hôte.";
|
|
556
|
+
readonly baseUrlHelper: "La racine du point de terminaison qui sert /chat/completions.";
|
|
557
|
+
readonly model: "Modèle";
|
|
558
|
+
readonly modelFreeText: "Saisissez l’identifiant exact du modèle servi par votre point de terminaison.";
|
|
559
|
+
readonly modelLive: "Chargé en direct depuis le fournisseur.";
|
|
560
|
+
readonly modelStatic: "Une liste éprouvée ; saisissez un identifiant personnalisé après l’enregistrement pour l’actualiser.";
|
|
561
|
+
readonly modelLoading: "Chargement…";
|
|
562
|
+
readonly modelPlaceholder: "Sélectionner un modèle…";
|
|
563
|
+
readonly key: "Clé API";
|
|
564
|
+
readonly keyStored: "Stockée chiffrée. Remplacez-la pour utiliser une autre clé.";
|
|
565
|
+
readonly keyMask: "sk-…{last4}";
|
|
566
|
+
readonly keyReplace: "Remplacer la clé";
|
|
567
|
+
readonly keyOptional: "Facultatif — certains points de terminaison n’exigent aucune clé.";
|
|
568
|
+
readonly keyWriteOnly: "En écriture seule : une fois enregistrée, elle n’est jamais réaffichée.";
|
|
569
|
+
readonly noKeyTitle: "Aucune clé API requise";
|
|
570
|
+
readonly noKeyBody: "Ollama tourne localement, donc rien ne quitte cette machine.";
|
|
571
|
+
};
|
|
572
|
+
readonly runStatus: {
|
|
573
|
+
readonly draft: "Brouillon";
|
|
574
|
+
readonly running: "En cours";
|
|
575
|
+
readonly awaitingResponse: "En attente de réponse";
|
|
576
|
+
readonly validated: "Validé";
|
|
577
|
+
readonly applied: "Appliqué";
|
|
578
|
+
readonly partiallyApplied: "Partiellement appliqué";
|
|
579
|
+
readonly failed: "Échoué";
|
|
580
|
+
readonly discarded: "Abandonné";
|
|
581
|
+
};
|
|
582
|
+
readonly byo: {
|
|
583
|
+
readonly heading: "Pas de clé ? Utilisez votre propre outil IA";
|
|
584
|
+
readonly subtitle: "L’aller-retour copier-coller — rien ne quitte cette machine.";
|
|
585
|
+
readonly body: "Studio peut générer un prompt autonome à partir de votre schéma. Exécutez-le dans Claude Code, ChatGPT ou l’outil de votre choix, puis collez le JSON renvoyé dans l’assistant de connexion. Même validation, même revue, même résultat que la voie directe.";
|
|
586
|
+
readonly guaranteeTitle: "Garantie sans télémétrie";
|
|
587
|
+
readonly guarantee1: "Le prompt ne contient que votre schéma et des statistiques agrégées — jamais de données de lignes par défaut.";
|
|
588
|
+
readonly guarantee2: "Aucun identifiant, URL d’instance ni justificatif n’y est intégré.";
|
|
589
|
+
readonly guarantee3: "Les exécutions BYO ne font aucun appel réseau.";
|
|
590
|
+
readonly promptVersion: "Prompt {version}";
|
|
591
|
+
readonly schemaVersion: "Schéma {version}";
|
|
592
|
+
readonly headingRecommended: "Utilisez votre propre outil IA — aucune clé requise";
|
|
593
|
+
readonly recommended: "Recommandé";
|
|
594
|
+
};
|
|
595
|
+
readonly history: {
|
|
596
|
+
readonly heading: "Historique des exécutions";
|
|
597
|
+
readonly subtitle: "Exécutions d’enrichissement passées. Ouvrez-en une pour revoir ses suggestions.";
|
|
598
|
+
readonly tableLabel: "Exécutions d’enrichissement";
|
|
599
|
+
readonly colDate: "Date";
|
|
600
|
+
readonly colSource: "Source";
|
|
601
|
+
readonly colStatus: "Statut";
|
|
602
|
+
readonly colChunks: "Blocs";
|
|
603
|
+
readonly openReview: "Ouvrir la revue de l’exécution du {date}";
|
|
604
|
+
readonly connection: "Connexion";
|
|
605
|
+
readonly empty: "Aucune exécution d’enrichissement pour l’instant. Enrichissez un schéma depuis l’assistant de connexion pour voir l’historique ici.";
|
|
606
|
+
readonly errorTitle: "Impossible de charger les exécutions";
|
|
607
|
+
readonly errorBody: "Rechargez la page pour réessayer.";
|
|
608
|
+
readonly noConnections: "Connectez d’abord une base de données — les exécutions d’enrichissement sont enregistrées par connexion.";
|
|
609
|
+
readonly byo: "BYO";
|
|
610
|
+
readonly directPath: "Directe";
|
|
611
|
+
};
|
|
612
|
+
};
|
|
613
|
+
readonly enrich: {
|
|
614
|
+
readonly title: "Enrichir avec l’IA";
|
|
615
|
+
readonly subtitle: "Affinez éventuellement les libellés, groupes, énumérations et tableaux de bord générés à l’aide d’un LLM. La base heuristique fonctionne sans cela — ceci ajoute seulement des suggestions que vous vérifiez avant toute application.";
|
|
616
|
+
readonly intentLabel: "Comment souhaitez-vous enrichir ?";
|
|
617
|
+
readonly sectionsLegend: "Que doit décider l’IA ?";
|
|
618
|
+
readonly localesLegend: "Traduire les libellés en";
|
|
619
|
+
readonly localeLocked: "(requis)";
|
|
620
|
+
readonly samplingTitle: "Inclure des valeurs d’exemple";
|
|
621
|
+
readonly samplingHint: "Inclut jusqu’à 20 valeurs réelles par colonne non-PII dans l’invite.";
|
|
622
|
+
readonly samplingPreviewTitle: "Ce qui quitte cette machine";
|
|
623
|
+
readonly samplingPreviewBody: "Jusqu’à 20 valeurs les plus fréquentes par colonne non-PII, plus min/max pour les colonnes numériques et de date. Les colonnes marquées PII ne sont jamais échantillonnées. Tout le reste demeure purement agrégé. Vérifiez l’invite exacte avant de copier (BYO) — rien n’est envoyé sans votre action.";
|
|
624
|
+
readonly noSections: "Sélectionnez au moins un groupe de décisions à enrichir.";
|
|
625
|
+
readonly generatePrompt: "Générer l’invite";
|
|
626
|
+
readonly startProvider: "Démarrer l’enrichissement";
|
|
627
|
+
readonly startOver: "Recommencer";
|
|
628
|
+
readonly copied: "Copié";
|
|
629
|
+
readonly createFailed: "Impossible de construire l’invite d’enrichissement — réessayez.";
|
|
630
|
+
readonly createFailedTitle: "Impossible de démarrer";
|
|
631
|
+
readonly providerFallback: "votre fournisseur d’IA";
|
|
632
|
+
readonly fileTitle: "L’enrichissement par IA nécessite une base de données active";
|
|
633
|
+
readonly fileBody: "Les sources de type fichier de schéma n’ont pas encore d’instantané à enrichir. Connectez une base de données active pour utiliser l’enrichissement par IA, ou continuez — la base heuristique génère tout de même une application complète.";
|
|
634
|
+
readonly section: {
|
|
635
|
+
readonly labels: "Libellés et descriptions";
|
|
636
|
+
readonly groups: "Groupes de navigation";
|
|
637
|
+
readonly enums: "Sémantique des énumérations";
|
|
638
|
+
readonly relations: "Relations";
|
|
639
|
+
readonly keys: "Colonnes clés";
|
|
640
|
+
readonly templates: "Modèles de page";
|
|
641
|
+
readonly widgets: "Widgets de tableau de bord";
|
|
642
|
+
readonly pii: "PII et masquage";
|
|
643
|
+
readonly icons: "Icônes";
|
|
644
|
+
readonly microcopy: "Microcopie";
|
|
645
|
+
};
|
|
646
|
+
readonly provider: {
|
|
647
|
+
readonly title: "Utiliser mon fournisseur d’IA";
|
|
648
|
+
readonly description: "Lancez l’enrichissement maintenant avec votre fournisseur configuré. Vous vérifiez chaque suggestion sous forme de diff.";
|
|
649
|
+
readonly unconfigured: "Aucun fournisseur d’IA n’est encore configuré — copiez une invite dans votre propre outil ci-dessous, ou configurez d’abord un fournisseur.";
|
|
650
|
+
readonly settingsHint: "Vous voulez le lancer directement ?";
|
|
651
|
+
readonly settingsLink: "Configurer un fournisseur dans Paramètres → IA";
|
|
652
|
+
readonly networkDisabled: "Cet Adminium n'a pas d'accès Internet sortant : il ne peut joindre aucune API de fournisseur. Utilisez plutôt l'aller-retour copier-coller — même invite, même revue.";
|
|
653
|
+
};
|
|
654
|
+
readonly byo: {
|
|
655
|
+
readonly cardTitle: "Copier une invite vers mon propre outil d’IA";
|
|
656
|
+
readonly cardDescription: "Copiez une invite autonome dans Claude Code, ChatGPT, n’importe quoi — puis recollez le JSON. Aucune clé nécessaire, rien ne quitte cette machine automatiquement.";
|
|
657
|
+
readonly guidance: "Exécutez ceci dans n’importe quel outil d’IA — Claude Code, ChatGPT, peu importe. Collez le JSON renvoyé ci-dessous.";
|
|
658
|
+
readonly promptLabel: "Invite d’enrichissement";
|
|
659
|
+
readonly promptLabelN: "Invite d’enrichissement {index} sur {total}";
|
|
660
|
+
readonly tokenChip: "≈ {tokens} jetons";
|
|
661
|
+
readonly copyPrompt: "Copier l’invite";
|
|
662
|
+
readonly copyPromptDone: "Invite copiée";
|
|
663
|
+
readonly download: "Télécharger .md";
|
|
664
|
+
readonly chunkTabs: "Segments d’invite";
|
|
665
|
+
readonly chunkTab: "Invite {index}";
|
|
666
|
+
readonly chunkValid: "Segment {index} validé";
|
|
667
|
+
readonly pasteLabel: "Collez la réponse JSON";
|
|
668
|
+
readonly pastePlaceholder: "Collez la réponse JSON ici…";
|
|
669
|
+
readonly validate: "Valider";
|
|
670
|
+
readonly valid: "Réponse validée";
|
|
671
|
+
readonly mergedTitle: "Les {count} segments sont validés et fusionnés";
|
|
672
|
+
readonly mergedTitleSingle: "Réponse validée";
|
|
673
|
+
readonly mergedBody: "Les suggestions sont prêtes à être vérifiées par rapport à la base heuristique.";
|
|
674
|
+
readonly errorsTitle: "La validation a trouvé {count} problèmes";
|
|
675
|
+
readonly copyErrors: "Copier les erreurs pour votre outil d’IA";
|
|
676
|
+
readonly copyErrorsDone: "Erreurs copiées";
|
|
677
|
+
readonly copyErrorsHint: "Recollez ceci dans votre outil d’IA pour obtenir une réponse corrigée.";
|
|
678
|
+
readonly droppedItems: "{count} suggestions ont été écartées lors de la validation — la vérification montre le reste.";
|
|
679
|
+
readonly pendingTitle: "Validez chaque invite pour continuer";
|
|
680
|
+
readonly pendingBody: "Collez la réponse JSON ci-dessus et validez-la pour passer à la vérification.";
|
|
681
|
+
readonly pendingBodyChunked: "Chaque segment doit être validé avant la fusion des suggestions. Collez et validez chaque invite ci-dessus.";
|
|
682
|
+
readonly requestFailed: "Impossible de joindre le serveur pour valider — réessayez.";
|
|
683
|
+
readonly continueReview: "Continuer vers la vérification";
|
|
684
|
+
readonly wholeDocument: "document entier";
|
|
685
|
+
readonly cardTitleRecommended: "Copier une invite vers mon propre outil IA — recommandé";
|
|
686
|
+
};
|
|
687
|
+
readonly direct: {
|
|
688
|
+
readonly title: "Enrichissement par IA";
|
|
689
|
+
readonly subtitle: "Envoi de votre schéma à";
|
|
690
|
+
readonly building: "Construction de l’invite…";
|
|
691
|
+
readonly logLabel: "Journal d’enrichissement";
|
|
692
|
+
readonly cancel: "Annuler";
|
|
693
|
+
readonly back: "Retour aux options";
|
|
694
|
+
readonly retry: "Réessayer";
|
|
695
|
+
readonly done: "Enrichissement terminé — vérifiez les suggestions.";
|
|
696
|
+
readonly continueReview: "Continuer vers la vérification";
|
|
697
|
+
readonly failed: "L’exécution du fournisseur a échoué. Vérifiez vos paramètres d’IA et réessayez.";
|
|
698
|
+
readonly jobFailed: "L’exécution de l’enrichissement ne s’est pas terminée.";
|
|
699
|
+
readonly startFailed: "Impossible de démarrer l’exécution — réessayez.";
|
|
700
|
+
readonly errorTitle: "Échec de l’enrichissement";
|
|
701
|
+
};
|
|
702
|
+
readonly skip: {
|
|
703
|
+
readonly title: "Ignorer — utiliser uniquement l’heuristique";
|
|
704
|
+
readonly description: "Générer à partir de la base heuristique. Vous pourrez enrichir plus tard depuis Paramètres → IA — ignorer n’est jamais pénalisé.";
|
|
705
|
+
readonly confirmTitle: "Poursuite avec l’heuristique";
|
|
706
|
+
readonly confirmBody: "L’application générée utilisera les libellés, groupes et tableaux de bord heuristiques. Continuez la génération — vous pouvez lancer l’enrichissement par IA à tout moment depuis Paramètres → IA.";
|
|
707
|
+
};
|
|
708
|
+
};
|
|
709
|
+
readonly review: {
|
|
710
|
+
readonly unavailableTitle: "Écran de revue indisponible";
|
|
711
|
+
readonly unavailableBody: "Cette version n’inclut pas encore l’écran de revue d’enrichissement (06-T14). Il arrive avec le flux diff-et-application.";
|
|
712
|
+
};
|
|
713
|
+
readonly llmRuns: {
|
|
714
|
+
readonly review: {
|
|
715
|
+
readonly header: {
|
|
716
|
+
readonly title: "Examiner les suggestions de l’IA";
|
|
717
|
+
readonly model: "Modèle";
|
|
718
|
+
readonly snapshot: "Instantané";
|
|
719
|
+
readonly byo: "BYO";
|
|
720
|
+
readonly pathDirect: "API directe";
|
|
721
|
+
readonly pathByo: "Copier-coller";
|
|
722
|
+
readonly agree: "{n} d’accord";
|
|
723
|
+
readonly conflict: "{n} en conflit";
|
|
724
|
+
readonly new: "{n} nouvelles";
|
|
725
|
+
readonly rejects: "{n} rejets";
|
|
726
|
+
readonly countsAria: "Nombre de suggestions";
|
|
727
|
+
};
|
|
728
|
+
readonly bulk: {
|
|
729
|
+
readonly thresholdLabel: "Seuil de confiance";
|
|
730
|
+
readonly thresholdAria: "Seuil de confiance pour « Tout accepter »";
|
|
731
|
+
readonly acceptAll: "Tout accepter ≥ {pct}%";
|
|
732
|
+
readonly clear: "Effacer la sélection";
|
|
733
|
+
};
|
|
734
|
+
readonly section: {
|
|
735
|
+
readonly selectAllAria: "Tout sélectionner dans {group}";
|
|
736
|
+
readonly acceptedCount: "{n} acceptées";
|
|
737
|
+
};
|
|
738
|
+
readonly group: {
|
|
739
|
+
readonly labels: "Libellés et traductions";
|
|
740
|
+
readonly navigation: "Navigation et domaines";
|
|
741
|
+
readonly enums: "Sémantique des énumérations";
|
|
742
|
+
readonly relations: "Relations";
|
|
743
|
+
readonly keys: "Colonnes clés";
|
|
744
|
+
readonly templates: "Modèles de page";
|
|
745
|
+
readonly dashboards: "Tableaux de bord et widgets";
|
|
746
|
+
readonly pii: "DCP et masquage";
|
|
747
|
+
readonly icons: "Icônes";
|
|
748
|
+
readonly microcopy: "Microcopie";
|
|
749
|
+
};
|
|
750
|
+
readonly status: {
|
|
751
|
+
readonly agree: "Concorde";
|
|
752
|
+
readonly conflict: "Conflit";
|
|
753
|
+
readonly new: "Nouveau";
|
|
754
|
+
readonly heuristicOnly: "Heuristique seule";
|
|
755
|
+
readonly rejects: "Rejette l’heuristique";
|
|
756
|
+
readonly locked: "Verrouillé";
|
|
757
|
+
};
|
|
758
|
+
readonly row: {
|
|
759
|
+
readonly acceptAria: "Accepter la suggestion {noun} pour {target}";
|
|
760
|
+
readonly keptEdited: "conservé — modifié par vous";
|
|
761
|
+
readonly rejectsCallout: "L’IA rejette une décision heuristique — confirmez avant d’accepter.";
|
|
762
|
+
readonly showTranslations: "Afficher les traductions";
|
|
763
|
+
readonly hideTranslations: "Masquer les traductions";
|
|
764
|
+
readonly confidenceAria: "Confiance {pct}%";
|
|
765
|
+
readonly noAi: "Aucune suggestion de l’IA";
|
|
766
|
+
};
|
|
767
|
+
readonly value: {
|
|
768
|
+
readonly none: "Aucune valeur";
|
|
769
|
+
readonly absent: "Aucun";
|
|
770
|
+
readonly dash: "—";
|
|
771
|
+
readonly display: "Affichage";
|
|
772
|
+
readonly key: "Clé";
|
|
773
|
+
readonly rank: "rang {n}";
|
|
774
|
+
readonly span: "largeur {n}";
|
|
775
|
+
readonly tableCount: "{n} tables";
|
|
776
|
+
readonly widgetCount: "{n} widgets";
|
|
777
|
+
readonly enumWorkflow: "Flux";
|
|
778
|
+
readonly enumCategory: "Catégorie";
|
|
779
|
+
readonly notPii: "Pas de DCP";
|
|
780
|
+
readonly label: "Libellé";
|
|
781
|
+
readonly description: "Description";
|
|
782
|
+
readonly subtitle: "Sous-titre de page";
|
|
783
|
+
readonly headline: "Titre de l’état vide";
|
|
784
|
+
readonly guidance: "Conseil de l’état vide";
|
|
785
|
+
};
|
|
786
|
+
readonly apply: {
|
|
787
|
+
readonly title: "Appliquer {n} suggestions";
|
|
788
|
+
readonly subtitle: "Ces modifications sont écrites en une seule transaction et peuvent être annulées.";
|
|
789
|
+
readonly empty: "Rien à appliquer.";
|
|
790
|
+
readonly confirm: "Appliquer les modifications";
|
|
791
|
+
};
|
|
792
|
+
readonly footer: {
|
|
793
|
+
readonly count: "{n} suggestions sélectionnées";
|
|
794
|
+
readonly apply: "Appliquer {n} suggestions acceptées";
|
|
795
|
+
readonly failed: "Échec de l’application";
|
|
796
|
+
};
|
|
797
|
+
readonly toast: {
|
|
798
|
+
readonly applied: "{n} suggestions appliquées";
|
|
799
|
+
readonly appliedPartial: "{n} suggestions appliquées (certaines ignorées)";
|
|
800
|
+
readonly applyFailed: "Impossible d’appliquer les suggestions";
|
|
801
|
+
readonly undoFailed: "Impossible d’annuler cette modification";
|
|
802
|
+
};
|
|
803
|
+
readonly error: {
|
|
804
|
+
readonly title: "Impossible de charger cette exécution";
|
|
805
|
+
};
|
|
806
|
+
readonly notReady: {
|
|
807
|
+
readonly title: "Cette exécution n’a pas encore de suggestions à examiner";
|
|
808
|
+
readonly body: "Une exécution doit être validée avant que ses suggestions puissent être examinées. Générez ou collez d’abord une réponse.";
|
|
809
|
+
};
|
|
810
|
+
readonly applied: {
|
|
811
|
+
readonly title: "Cette exécution a été appliquée";
|
|
812
|
+
readonly body: "Les suggestions acceptées ci-dessous sont en lecture seule.";
|
|
813
|
+
};
|
|
814
|
+
readonly empty: {
|
|
815
|
+
readonly title: "Aucune suggestion";
|
|
816
|
+
readonly body: "Cette exécution n’a produit aucune suggestion à examiner.";
|
|
817
|
+
};
|
|
818
|
+
readonly cat: {
|
|
819
|
+
readonly label: "libellé";
|
|
820
|
+
readonly key: "colonnes clés";
|
|
821
|
+
readonly enum: "énumération";
|
|
822
|
+
readonly relation: "relation";
|
|
823
|
+
readonly pii: "DCP";
|
|
824
|
+
readonly template: "modèle de page";
|
|
825
|
+
readonly group: "groupe de navigation";
|
|
826
|
+
readonly dashboard: "tableau de bord";
|
|
827
|
+
readonly widget: "widget";
|
|
828
|
+
readonly copy: "microcopie";
|
|
829
|
+
};
|
|
830
|
+
};
|
|
831
|
+
};
|
|
832
|
+
readonly wizard: {
|
|
833
|
+
readonly title: "Nouvelle connexion";
|
|
834
|
+
readonly back: "Retour";
|
|
835
|
+
readonly continue: "Continuer";
|
|
836
|
+
readonly progress: "Progression de la configuration";
|
|
837
|
+
readonly persistFailed: "Impossible d’enregistrer votre sélection de tables — réessayez.";
|
|
838
|
+
readonly persistFailedTitle: "Échec de l’enregistrement";
|
|
839
|
+
readonly step: {
|
|
840
|
+
readonly source: "Source";
|
|
841
|
+
readonly test: "Analyser";
|
|
842
|
+
readonly tables: "Tables";
|
|
843
|
+
readonly meta: "Stockage méta";
|
|
844
|
+
readonly intent: "Intention";
|
|
845
|
+
readonly enrich: "Enrichir";
|
|
846
|
+
readonly generate: "Générer";
|
|
847
|
+
};
|
|
848
|
+
};
|
|
849
|
+
readonly meta: {
|
|
850
|
+
readonly title: "Où Adminium doit-il ranger ses propres tables ?";
|
|
851
|
+
readonly subtitle: "Pages, rôles, journal d’audit et paramètres vivent dans des tables préfixées adminium_ — jamais mêlés à vos données.";
|
|
852
|
+
readonly sameDb: {
|
|
853
|
+
readonly title: "Même base de données";
|
|
854
|
+
readonly description: "Les tables adminium_* sont créées à côté de vos tables sources. La configuration la plus simple — nécessite un rôle avec droits d’écriture et CREATE TABLE.";
|
|
855
|
+
readonly disabledReadOnly: "Votre rôle est en lecture seule — Adminium n’écrit jamais dans cette base. Choisissez une base séparée pour les tables d’Adminium.";
|
|
856
|
+
readonly disabledNoDdl: "Ce rôle ne peut pas exécuter de DDL — les migrations d’Adminium exigent CREATE TABLE. Choisissez une base séparée pour les tables d’Adminium.";
|
|
857
|
+
readonly disabledFile: "Un fichier de schéma n’a pas de base active — choisissez une base séparée pour les tables d’Adminium.";
|
|
858
|
+
};
|
|
859
|
+
readonly separate: {
|
|
860
|
+
readonly title: "Base de données séparée";
|
|
861
|
+
readonly description: "Adminium garde ses tables dans une autre base. Votre source reste intacte — requis pour les sources en lecture seule.";
|
|
862
|
+
readonly dsn: "Chaîne de connexion de la base méta";
|
|
863
|
+
readonly helper: "Nécessite des droits d’écriture + DDL — Adminium y exécute ses propres migrations.";
|
|
864
|
+
readonly test: "Tester la connexion";
|
|
865
|
+
readonly ok: "Compatible — écriture ✓ · DDL ✓";
|
|
866
|
+
readonly insufficient: "Ce rôle ne peut pas héberger le magasin méta — Adminium y a besoin des droits d’écriture et CREATE TABLE.";
|
|
867
|
+
readonly errorTitle: "Magasin méta incompatible";
|
|
868
|
+
};
|
|
869
|
+
readonly testFailed: "Échec de la connexion.";
|
|
870
|
+
readonly v1Note: {
|
|
871
|
+
readonly title: "À propos de cette installation";
|
|
872
|
+
readonly body: "Ce serveur a choisi son magasin méta au premier démarrage. Cette étape vérifie que votre choix est compatible avec cette connexion et l’enregistre — le serveur applique la même règle indépendamment (409 META_PLACEMENT_INVALID). Déplacer un magasin méta existant est une tâche d’exploitation (M10).";
|
|
873
|
+
};
|
|
874
|
+
};
|
|
875
|
+
readonly intent: {
|
|
876
|
+
readonly title: "De quoi avez-vous besoin ?";
|
|
877
|
+
readonly subtitle: "L’intention détermine quelles pages sont générées. Vous pourrez la changer plus tard — la changer propose une régénération, jamais une réécriture silencieuse.";
|
|
878
|
+
readonly trust: "Nous ne lisons que votre schéma — jamais vos données de lignes pendant la configuration.";
|
|
879
|
+
readonly fullAdmin: {
|
|
880
|
+
readonly title: "Panneau d’administration complet";
|
|
881
|
+
readonly description: "Tableaux de bord, pages CRUD, recherche, imports et exports — tout ce que votre schéma permet.";
|
|
882
|
+
};
|
|
883
|
+
readonly analytics: {
|
|
884
|
+
readonly title: "Analytique en lecture seule";
|
|
885
|
+
readonly description: "Tableaux de bord, graphiques et grilles en lecture seule. Pas de formulaires, pas d’écritures — chaque rôle plafonné à Lecteur.";
|
|
886
|
+
};
|
|
887
|
+
readonly crud: {
|
|
888
|
+
readonly title: "Tables CRUD";
|
|
889
|
+
readonly description: "Une page d’édition par table plus recherche et import/export — un accueil minimal, sans tableaux de bord.";
|
|
890
|
+
};
|
|
891
|
+
readonly support: {
|
|
892
|
+
readonly title: "Console de support";
|
|
893
|
+
readonly description: "Files d’attente, pages de tickets et de fiches clients d’abord. Suppressions désactivées par défaut. (Les modèles de files arrivent en M7 — l’ensemble de pages v1 correspond à l’admin complet.)";
|
|
894
|
+
};
|
|
895
|
+
};
|
|
896
|
+
readonly generate: {
|
|
897
|
+
readonly title: "Générez votre application";
|
|
898
|
+
readonly subtitle: "Une page par table incluse plus des tableaux de bord par domaine — intention :";
|
|
899
|
+
readonly run: "Générer le tableau de bord";
|
|
900
|
+
readonly openApp: "Ouvrir votre application";
|
|
901
|
+
readonly logLabel: "Journal de génération";
|
|
902
|
+
readonly log: {
|
|
903
|
+
readonly classifying: "Classification du schéma…";
|
|
904
|
+
readonly composing: "Composition des modèles…";
|
|
905
|
+
readonly writing: "Écriture des pages…";
|
|
906
|
+
readonly done: "{pages} pages générées dans {groups} groupes de navigation";
|
|
907
|
+
};
|
|
908
|
+
readonly successTitle: "Votre tableau de bord est prêt";
|
|
909
|
+
readonly successBody: "{pages} pages dans {groups} groupes de navigation — générées depuis votre schéma, modifiables dans le Studio.";
|
|
910
|
+
readonly errorTitle: "Échec de la génération";
|
|
911
|
+
readonly failed: "Échec de la génération — réessayez, ou relancez d’abord l’introspection.";
|
|
912
|
+
readonly fileTitle: "Fichier de schéma analysé — la génération nécessite une base active";
|
|
913
|
+
readonly fileBody: "Votre schéma a été analysé proprement et l’aperçu ci-dessus est réel. Générer une application fonctionnelle directement depuis un fichier de schéma (avec des lignes fictives) n’est pas encore disponible — connectez une base active pour générer dès aujourd’hui.";
|
|
914
|
+
};
|
|
915
|
+
readonly remap: {
|
|
916
|
+
readonly column: {
|
|
917
|
+
readonly nullable: "nullable";
|
|
918
|
+
readonly labelOverride: "Libellé d’affichage";
|
|
919
|
+
readonly labelHelper: "Inféré : {name}";
|
|
920
|
+
readonly logicalType: "Type logique";
|
|
921
|
+
readonly logicalTypeHelper: "Inféré : {type} (depuis {dbType}) — mappé par l’adaptateur ; non remplaçable en v1.";
|
|
922
|
+
readonly semantic: "Type sémantique";
|
|
923
|
+
readonly unclassified: "Pas encore classifié.";
|
|
924
|
+
readonly semanticHelper: "Classificateur : {tag} · confiance {confidence}% · source : {source}";
|
|
925
|
+
readonly semanticInferred: "inféré : {tag}";
|
|
926
|
+
readonly currency: "Devise";
|
|
927
|
+
readonly currencyHelper: "Code ISO 4217 appliqué au formatage monétaire.";
|
|
928
|
+
readonly pii: "Masquer par défaut";
|
|
929
|
+
readonly piiHelper: "Les valeurs masquées s’affichent caviardées ; le démasquage requiert la permission data.unmask_pii et est consigné dans le journal d’audit.";
|
|
930
|
+
readonly enum: "Sémantique de l’énumération";
|
|
931
|
+
readonly enumKind: "Nature de l’énumération";
|
|
932
|
+
readonly enumWorkflow: "Flux";
|
|
933
|
+
readonly enumCategory: "Catégorie";
|
|
934
|
+
readonly enumLabelFor: "Libellé pour {value}";
|
|
935
|
+
readonly enumToneFor: "Tonalité pour {value}";
|
|
936
|
+
readonly enumToneAuto: "auto";
|
|
937
|
+
readonly enumHelper: "Les énumérations de flux pilotent les pastilles de statut et les colonnes de tableau ; les tonalités associent les valeurs à l’échelle de teintes sémantiques.";
|
|
938
|
+
};
|
|
939
|
+
readonly diff: {
|
|
940
|
+
readonly one: "1 modification";
|
|
941
|
+
readonly count: "{count} modifications";
|
|
942
|
+
readonly saved: "Remplacements enregistrés.";
|
|
943
|
+
readonly revertOne: "Annuler {change}";
|
|
944
|
+
readonly regenerate: "Régénérer les pages";
|
|
945
|
+
readonly revertAll: "Tout annuler";
|
|
946
|
+
readonly save: "Enregistrer les remplacements";
|
|
947
|
+
};
|
|
948
|
+
readonly table: {
|
|
949
|
+
readonly iconPicker: "Icône de la table";
|
|
950
|
+
readonly system: "Système";
|
|
951
|
+
readonly labelOverride: "Libellé d’affichage";
|
|
952
|
+
readonly labelHelper: "Inféré : {name}";
|
|
953
|
+
readonly icon: "Icône";
|
|
954
|
+
readonly navGroup: "Groupe de navigation";
|
|
955
|
+
readonly navGroupHelper: "Le placement dans la navigation est décidé par le générateur — un remplacement table.navGroup ne fait pas partie du vocabulaire v1.";
|
|
956
|
+
readonly include: "Inclure dans l’application générée";
|
|
957
|
+
readonly includeHelper: "Les tables exclues n’ont aucune page et disparaissent de la navigation.";
|
|
958
|
+
readonly shape: "Forme de la table (classifiée)";
|
|
959
|
+
readonly role: "Rôle";
|
|
960
|
+
readonly unclassified: "Non classifiée";
|
|
961
|
+
readonly kind: "Nature";
|
|
962
|
+
readonly hierarchy: "Hiérarchie";
|
|
963
|
+
readonly selfFk: "Auto-référence via {column}";
|
|
964
|
+
readonly polymorphic: "Paires polymorphes";
|
|
965
|
+
readonly rows: "Estimation du nombre de lignes";
|
|
966
|
+
readonly shapeHelper: "La classification est recalculée à chaque introspection ; les remplacements se superposent et survivent à la régénération.";
|
|
967
|
+
};
|
|
968
|
+
readonly relations: {
|
|
969
|
+
readonly declared: "Clés étrangères déclarées";
|
|
970
|
+
readonly noneDeclared: "Aucune clé étrangère déclarée ne touche cette table.";
|
|
971
|
+
readonly inferred: "Relations inférées";
|
|
972
|
+
readonly noneInferred: "Rien d’inféré pour cette table.";
|
|
973
|
+
readonly confidence: "inférée · {pct}%";
|
|
974
|
+
readonly accepted: "Acceptée";
|
|
975
|
+
readonly suppressed: "Écartée";
|
|
976
|
+
readonly accept: "Accepter";
|
|
977
|
+
readonly suppress: "Écarter";
|
|
978
|
+
readonly overrides: "Relations de remplacement (appliquées)";
|
|
979
|
+
readonly overrideBadge: "remplacement";
|
|
980
|
+
readonly add: "Ajouter une relation virtuelle";
|
|
981
|
+
readonly fromColumn: "Colonne source";
|
|
982
|
+
readonly noColumns: "Aucune colonne correspondante";
|
|
983
|
+
readonly fromPlaceholder: "customer_id";
|
|
984
|
+
readonly toTable: "Table cible";
|
|
985
|
+
readonly noTables: "Aucune table correspondante";
|
|
986
|
+
readonly toColumn: "Colonne cible";
|
|
987
|
+
readonly cardinality: "Cardinalité";
|
|
988
|
+
readonly addButton: "Ajouter la relation";
|
|
989
|
+
};
|
|
990
|
+
readonly toast: {
|
|
991
|
+
readonly saved: "Remplacements de schéma enregistrés";
|
|
992
|
+
readonly savedDetail: "Le schéma appliqué ci-dessous reflète vos modifications.";
|
|
993
|
+
readonly regenerated: "{created} créées · {updated} mises à jour · {unchanged} inchangées";
|
|
994
|
+
readonly regeneratedDetail: "Les pages que vous avez modifiées à la main sont préservées — seules les pages dont le generated_hash est intact ont été régénérées sur place.";
|
|
995
|
+
readonly regenerateFailed: "Échec de la régénération";
|
|
996
|
+
};
|
|
997
|
+
readonly title: "Remappage du schéma";
|
|
998
|
+
readonly subtitle: "{tables} tables · {applied} remplacements appliqués";
|
|
999
|
+
readonly saveFailed: "Échec de l’enregistrement : {message}";
|
|
1000
|
+
readonly loadFailed: "Impossible de charger le schéma de cette connexion.";
|
|
1001
|
+
readonly inspector: "Inspecteur";
|
|
1002
|
+
readonly empty: {
|
|
1003
|
+
readonly title: "Choisissez une table ou une colonne";
|
|
1004
|
+
readonly description: "Sélectionnez un élément dans l’arborescence du schéma pour remapper son libellé, son type, ses relations ou son masquage.";
|
|
1005
|
+
};
|
|
1006
|
+
readonly tabs: {
|
|
1007
|
+
readonly details: "Détails";
|
|
1008
|
+
readonly relations: "Relations";
|
|
1009
|
+
};
|
|
1010
|
+
readonly tree: {
|
|
1011
|
+
readonly label: "Schéma";
|
|
1012
|
+
readonly search: "Rechercher des tables et des colonnes";
|
|
1013
|
+
readonly searchPlaceholder: "Rechercher des tables…";
|
|
1014
|
+
readonly noMatches: "Aucune table ne correspond à votre recherche.";
|
|
1015
|
+
readonly collapse: "Replier la table";
|
|
1016
|
+
readonly expand: "Déplier la table";
|
|
1017
|
+
readonly unsaved: "Modification non enregistrée";
|
|
1018
|
+
readonly excluded: "Exclue";
|
|
1019
|
+
};
|
|
1020
|
+
readonly badge: {
|
|
1021
|
+
readonly pk: "PK";
|
|
1022
|
+
readonly fk: "FK";
|
|
1023
|
+
readonly unique: "UNIQUE";
|
|
1024
|
+
readonly pii: "PII";
|
|
1025
|
+
readonly masked: "Masquée";
|
|
1026
|
+
};
|
|
1027
|
+
};
|
|
1028
|
+
};
|
|
1029
|
+
readonly onboarding: {
|
|
1030
|
+
readonly title: "Prise en main";
|
|
1031
|
+
readonly subtitle: "Quelques étapes pour préparer votre espace de travail.";
|
|
1032
|
+
readonly loading: "Chargement de votre liste de configuration…";
|
|
1033
|
+
readonly welcome: "Bienvenue sur Adminium, {name} 👋";
|
|
1034
|
+
readonly progressBody: "Vous avez terminé {done} étapes de configuration sur {total}. Terminez les autres pour débloquer tout l’espace de travail.";
|
|
1035
|
+
readonly completeBody: "Tout est prêt — votre espace de travail est entièrement configuré.";
|
|
1036
|
+
readonly ringLabel: "{done} étapes sur {total} terminées";
|
|
1037
|
+
readonly done: "Terminé";
|
|
1038
|
+
readonly skip: "Plus tard";
|
|
1039
|
+
readonly goToWorkspace: "Aller à l’espace de travail";
|
|
1040
|
+
readonly help: {
|
|
1041
|
+
readonly title: "Besoin d’aide ?";
|
|
1042
|
+
readonly body: "Nous sommes là pour vous aider à configurer rapidement.";
|
|
1043
|
+
};
|
|
1044
|
+
readonly steps: {
|
|
1045
|
+
readonly connectDatabase: {
|
|
1046
|
+
readonly title: "Connecter une base de données";
|
|
1047
|
+
readonly desc: "Reliez Adminium à votre base Postgres, MySQL ou SQLite — un rôle en lecture seule suffit.";
|
|
1048
|
+
readonly time: "5 min";
|
|
1049
|
+
readonly action: "Connecter";
|
|
1050
|
+
};
|
|
1051
|
+
readonly chooseTables: {
|
|
1052
|
+
readonly title: "Choisir vos tables";
|
|
1053
|
+
readonly desc: "Choisissez les tables qui deviennent des pages — les données personnelles sont masquées par défaut.";
|
|
1054
|
+
readonly time: "2 min";
|
|
1055
|
+
readonly action: "Choisir";
|
|
1056
|
+
};
|
|
1057
|
+
readonly inviteTeammates: {
|
|
1058
|
+
readonly title: "Inviter des coéquipiers";
|
|
1059
|
+
readonly desc: "Faites venir votre équipe pour explorer et collaborer.";
|
|
1060
|
+
readonly time: "2 min";
|
|
1061
|
+
readonly action: "Inviter";
|
|
1062
|
+
};
|
|
1063
|
+
readonly workspaceDefaults: {
|
|
1064
|
+
readonly title: "Définir les valeurs par défaut";
|
|
1065
|
+
readonly desc: "Thème, accent, densité et langue pour tout le monde.";
|
|
1066
|
+
readonly time: "1 min";
|
|
1067
|
+
readonly action: "Définir";
|
|
1068
|
+
};
|
|
1069
|
+
};
|
|
1070
|
+
readonly entry: {
|
|
1071
|
+
readonly wayBack: "Prise en main · {done}/{total}";
|
|
1072
|
+
readonly dismiss: "Masquer la liste de configuration";
|
|
1073
|
+
readonly continue: "Continuer la configuration";
|
|
1074
|
+
readonly banner: "Terminez la configuration de votre espace — {done} étapes sur {total} effectuées.";
|
|
1075
|
+
};
|
|
1076
|
+
};
|
|
1077
|
+
readonly views: {
|
|
1078
|
+
readonly baseView: "Tous les enregistrements";
|
|
1079
|
+
readonly menuLabel: "Vues enregistrées";
|
|
1080
|
+
readonly saveAs: "Enregistrer la vue actuelle…";
|
|
1081
|
+
readonly updateActive: "Mettre à jour « {name} »";
|
|
1082
|
+
readonly rename: "Renommer…";
|
|
1083
|
+
readonly setDefault: "Définir par défaut";
|
|
1084
|
+
readonly delete: "Supprimer…";
|
|
1085
|
+
readonly saveTitle: "Enregistrer la vue";
|
|
1086
|
+
readonly save: "Enregistrer la vue";
|
|
1087
|
+
readonly renameTitle: "Renommer la vue";
|
|
1088
|
+
readonly saveName: "Enregistrer le nom";
|
|
1089
|
+
readonly nameLabel: "Nom de la vue";
|
|
1090
|
+
readonly namePlaceholder: "ex. Actifs ce mois-ci";
|
|
1091
|
+
readonly nameRequired: "Saisissez un nom pour cette vue.";
|
|
1092
|
+
readonly saveFailed: "Impossible d’enregistrer la vue.";
|
|
1093
|
+
readonly deleteTitle: "Supprimer la vue";
|
|
1094
|
+
readonly deleteBody: "Cela supprime la vue enregistrée. Vos données ne sont pas affectées.";
|
|
1095
|
+
readonly deletePrompt: "Saisissez le nom de la vue pour confirmer";
|
|
1096
|
+
readonly deleteConfirm: "Supprimer la vue";
|
|
1097
|
+
readonly savedToast: "Vue « {name} » enregistrée.";
|
|
1098
|
+
readonly updatedToast: "Vue « {name} » mise à jour.";
|
|
1099
|
+
readonly defaultToast: "« {name} » est désormais la vue par défaut.";
|
|
1100
|
+
readonly deletedToast: "Vue « {name} » supprimée.";
|
|
1101
|
+
};
|
|
1102
|
+
readonly builder: {
|
|
1103
|
+
readonly view: "Aperçu";
|
|
1104
|
+
readonly edit: "Modifier";
|
|
1105
|
+
readonly done: "Terminé";
|
|
1106
|
+
readonly addWidget: "Ajouter un widget";
|
|
1107
|
+
readonly saveLayout: "Enregistrer la disposition";
|
|
1108
|
+
readonly saving: "Enregistrement…";
|
|
1109
|
+
readonly savedShort: "Enregistré";
|
|
1110
|
+
readonly options: "Options du tableau de bord";
|
|
1111
|
+
readonly resetLayout: "Réinitialiser la disposition";
|
|
1112
|
+
readonly resetTitle: "Réinitialiser à la disposition partagée ?";
|
|
1113
|
+
readonly resetBody: "Cela supprime vos modifications personnelles et restaure le tableau de bord que tout le monde voit. Vos données ne sont pas affectées.";
|
|
1114
|
+
readonly resetConfirm: "Réinitialiser la disposition";
|
|
1115
|
+
readonly resetDone: "Disposition réinitialisée sur la valeur partagée par défaut.";
|
|
1116
|
+
readonly sharedNote: "Vous modifiez le tableau de bord partagé que tout le monde voit.";
|
|
1117
|
+
readonly personalNote: "Vous modifiez votre disposition personnelle — vous seul voyez ces changements.";
|
|
1118
|
+
readonly savedShared: "Tableau de bord enregistré pour tous les utilisateurs autorisés.";
|
|
1119
|
+
readonly empty: "Ce tableau de bord ne contient encore aucun widget.";
|
|
1120
|
+
readonly emptyAction: "Ajouter un widget";
|
|
1121
|
+
readonly palette: {
|
|
1122
|
+
readonly title: "Ajouter un widget";
|
|
1123
|
+
readonly count: "{count} widgets";
|
|
1124
|
+
readonly searchLabel: "Rechercher des widgets";
|
|
1125
|
+
readonly searchPlaceholder: "Rechercher des widgets…";
|
|
1126
|
+
readonly clear: "Effacer la recherche";
|
|
1127
|
+
readonly noResults: "Aucun widget ne correspond à « {query} ».";
|
|
1128
|
+
readonly add: "Ajouter {name}";
|
|
1129
|
+
readonly added: "{name} ajouté.";
|
|
1130
|
+
};
|
|
1131
|
+
readonly inspector: {
|
|
1132
|
+
readonly title: "Configurer le widget";
|
|
1133
|
+
readonly empty: "Ce widget n’a aucune option à configurer.";
|
|
1134
|
+
readonly locked: "Verrouillé";
|
|
1135
|
+
readonly lockedHint: "Ce champ est défini par la source et ne peut pas être modifié ici.";
|
|
1136
|
+
readonly selectPlaceholder: "Sélectionner…";
|
|
1137
|
+
readonly increment: "Augmenter";
|
|
1138
|
+
readonly decrement: "Diminuer";
|
|
1139
|
+
readonly done: "Terminé";
|
|
1140
|
+
};
|
|
1141
|
+
readonly item: {
|
|
1142
|
+
readonly configure: "Configurer {name}";
|
|
1143
|
+
readonly duplicate: "Dupliquer {name}";
|
|
1144
|
+
readonly remove: "Supprimer {name}";
|
|
1145
|
+
readonly removed: "{name} supprimé.";
|
|
1146
|
+
readonly duplicated: "{name} dupliqué.";
|
|
1147
|
+
};
|
|
1148
|
+
readonly families: {
|
|
1149
|
+
readonly kpi: "Indicateurs";
|
|
1150
|
+
readonly charts: "Graphiques";
|
|
1151
|
+
readonly tables: "Tableaux";
|
|
1152
|
+
readonly feeds: "Flux";
|
|
1153
|
+
readonly calendar: "Calendrier";
|
|
1154
|
+
readonly boards: "Tableaux Kanban";
|
|
1155
|
+
readonly geo: "Cartes";
|
|
1156
|
+
readonly media: "Médias";
|
|
1157
|
+
readonly communication: "Communication";
|
|
1158
|
+
readonly forms: "Formulaires";
|
|
1159
|
+
readonly chrome: "Navigation";
|
|
1160
|
+
readonly system: "Système";
|
|
1161
|
+
readonly domain: "Domaine";
|
|
1162
|
+
};
|
|
1163
|
+
readonly versions: "Versions";
|
|
1164
|
+
readonly versionsEmpty: "Aucune version enregistrée pour l’instant";
|
|
1165
|
+
readonly saveAsVersion: "Enregistrer comme version";
|
|
1166
|
+
readonly saveVersionTitle: "Enregistrer une version";
|
|
1167
|
+
readonly saveVersionBody: "Capture l’état actuel du document. Restaurez-le à tout moment depuis Versions.";
|
|
1168
|
+
readonly versionName: "Nom de la version";
|
|
1169
|
+
readonly versionNamePlaceholder: "p. ex. Avant le changement des tarifs T3";
|
|
1170
|
+
};
|
|
1171
|
+
readonly setup: {
|
|
1172
|
+
readonly title: "Configurer Adminium";
|
|
1173
|
+
readonly subtitle: "Créez le premier administrateur. Cela n’arrive qu’une fois.";
|
|
1174
|
+
readonly progress: "Progression de la configuration";
|
|
1175
|
+
readonly steps: {
|
|
1176
|
+
readonly account: "Compte administrateur";
|
|
1177
|
+
readonly consent: "Confidentialité";
|
|
1178
|
+
};
|
|
1179
|
+
readonly account: {
|
|
1180
|
+
readonly name: "Votre nom";
|
|
1181
|
+
readonly email: "E-mail";
|
|
1182
|
+
readonly emailInvalid: "Saisissez une adresse e-mail valide.";
|
|
1183
|
+
readonly password: "Mot de passe";
|
|
1184
|
+
readonly passwordHelper: "Au moins {min} caractères.";
|
|
1185
|
+
readonly passwordTooShort: "Utilisez au moins {min} caractères.";
|
|
1186
|
+
readonly confirm: "Confirmer le mot de passe";
|
|
1187
|
+
readonly passwordMismatch: "Les mots de passe ne correspondent pas.";
|
|
1188
|
+
readonly continue: "Continuer";
|
|
1189
|
+
readonly strength: "Robustesse du mot de passe";
|
|
1190
|
+
readonly strengthLevels: {
|
|
1191
|
+
readonly weak: "Faible";
|
|
1192
|
+
readonly fair: "Moyen";
|
|
1193
|
+
readonly good: "Bon";
|
|
1194
|
+
readonly strong: "Fort";
|
|
1195
|
+
};
|
|
1196
|
+
};
|
|
1197
|
+
readonly consent: {
|
|
1198
|
+
readonly telemetry: {
|
|
1199
|
+
readonly title: "Partager des données d’usage anonymes";
|
|
1200
|
+
readonly description: "Nous aide à voir quels moteurs de base de données prioriser. Désactivé tant que vous ne l’activez pas.";
|
|
1201
|
+
};
|
|
1202
|
+
readonly updates: {
|
|
1203
|
+
readonly title: "Rechercher les nouvelles versions";
|
|
1204
|
+
readonly description: "Affiche un avis lorsqu’une nouvelle version — y compris un correctif de sécurité — est disponible. Cela interroge GitHub sur la dernière version, ce qui lui révèle l’adresse IP et la version de cette instance. Rien d’autre n’est envoyé.";
|
|
1205
|
+
};
|
|
1206
|
+
readonly sentTitle: "Exactement ce qui est envoyé :";
|
|
1207
|
+
readonly sent: {
|
|
1208
|
+
readonly instanceId: "Un identifiant d’instance aléatoire (un UUID généré ici ; non dérivé de votre nom, de votre hôte ni de votre base de données)";
|
|
1209
|
+
readonly version: "La version d’Adminium exécutée par cette instance";
|
|
1210
|
+
readonly engines: "Les types de moteurs de base de données connectés (par ex. « postgres ») — les types seulement";
|
|
1211
|
+
};
|
|
1212
|
+
readonly neverTitle: "Jamais envoyé :";
|
|
1213
|
+
readonly never: {
|
|
1214
|
+
readonly schema: "Votre schéma — aucun nom de table, de colonne ni d’énumération";
|
|
1215
|
+
readonly rows: "Vos données — pas une seule ligne, jamais";
|
|
1216
|
+
readonly connections: "Chaînes de connexion, noms d’hôte ou identifiants";
|
|
1217
|
+
readonly people: "E-mails, noms ou identifiants d’utilisateurs";
|
|
1218
|
+
readonly llm: "Invites d’IA ou contenus d’exécution";
|
|
1219
|
+
};
|
|
1220
|
+
readonly reversible: "Les deux sont désactivés par défaut et vous pourrez les modifier plus tard dans les Paramètres.";
|
|
1221
|
+
readonly back: "Retour";
|
|
1222
|
+
readonly finish: "Créer le compte administrateur";
|
|
1223
|
+
};
|
|
1224
|
+
readonly error: {
|
|
1225
|
+
readonly alreadyCompleted: "Cette instance a déjà été configurée. Connectez-vous avec le compte administrateur existant.";
|
|
1226
|
+
readonly rejected: "Le serveur a refusé ces informations. Vérifiez l’e-mail et le mot de passe, puis réessayez.";
|
|
1227
|
+
readonly failed: "Échec de la configuration. Vérifiez votre connexion et réessayez.";
|
|
1228
|
+
};
|
|
1229
|
+
};
|
|
1230
|
+
readonly about: {
|
|
1231
|
+
readonly title: "À propos d’Adminium";
|
|
1232
|
+
readonly subtitle: "Version, licence et emplacement du code source de cette instance.";
|
|
1233
|
+
readonly version: "Version";
|
|
1234
|
+
readonly license: "Licence";
|
|
1235
|
+
readonly metaStore: "Métabase";
|
|
1236
|
+
readonly node: "Node.js";
|
|
1237
|
+
readonly engine: {
|
|
1238
|
+
readonly postgres: "PostgreSQL";
|
|
1239
|
+
readonly mysql: "MySQL / MariaDB";
|
|
1240
|
+
readonly sqlite: "SQLite";
|
|
1241
|
+
};
|
|
1242
|
+
readonly licenseCard: {
|
|
1243
|
+
readonly title: "Libre et open source";
|
|
1244
|
+
readonly body: "Adminium est distribué sous licence GNU Affero General Public License v3.0. Vous êtes libre de l’exécuter, de l’étudier, de le modifier et de le partager. Si vous proposez une version modifiée à d’autres via un réseau, l’AGPL vous demande de leur proposer aussi son code source.";
|
|
1245
|
+
};
|
|
1246
|
+
readonly viewLicense: "Lire la licence";
|
|
1247
|
+
readonly viewSource: "Obtenir le code source";
|
|
1248
|
+
readonly updates: {
|
|
1249
|
+
readonly title: "Mises à jour";
|
|
1250
|
+
readonly description: "Si cette instance recherche de nouvelles versions.";
|
|
1251
|
+
};
|
|
1252
|
+
readonly update: {
|
|
1253
|
+
readonly disabled: "La recherche de mises à jour est désactivée : cette instance ne contacte jamais GitHub. Activez-la dans les Paramètres pour être informé des nouvelles versions.";
|
|
1254
|
+
readonly current: "Vous utilisez la dernière version.";
|
|
1255
|
+
readonly available: "Adminium {version} est disponible";
|
|
1256
|
+
readonly availableBody: "Vous utilisez actuellement {version}.";
|
|
1257
|
+
readonly viewRelease: "Voir les notes de version";
|
|
1258
|
+
};
|
|
1259
|
+
readonly desktop: {
|
|
1260
|
+
readonly unknown: "Inconnu";
|
|
1261
|
+
readonly appVersion: "Version de l’application";
|
|
1262
|
+
readonly serverVersion: "Version du serveur";
|
|
1263
|
+
readonly migration: "Migration du méta-store";
|
|
1264
|
+
readonly electron: "Electron";
|
|
1265
|
+
readonly chromium: "Chromium";
|
|
1266
|
+
readonly runtimeNode: "Runtime Node";
|
|
1267
|
+
readonly system: {
|
|
1268
|
+
readonly title: "Système";
|
|
1269
|
+
};
|
|
1270
|
+
readonly dataDir: "Répertoire de données";
|
|
1271
|
+
readonly reveal: "Afficher dans le dossier";
|
|
1272
|
+
readonly secret: {
|
|
1273
|
+
readonly title: "Stockage du secret";
|
|
1274
|
+
readonly safe: "Chiffré par votre système d’exploitation";
|
|
1275
|
+
readonly plainWarning: "Cet ordinateur ne dispose d’aucun trousseau système, votre secret Adminium est donc stocké en clair sur le disque. Toute personne pouvant lire les fichiers de cette machine peut le lire. Configurez un trousseau de connexion (ou un service de secrets Linux) et redémarrez Adminium pour le protéger.";
|
|
1276
|
+
};
|
|
1277
|
+
readonly updates: {
|
|
1278
|
+
readonly title: "Mises à jour";
|
|
1279
|
+
readonly mode: {
|
|
1280
|
+
readonly notify: "M’avertir des nouvelles versions";
|
|
1281
|
+
readonly manual: "Uniquement quand je vérifie";
|
|
1282
|
+
readonly disabled: "Désactivé (hors ligne)";
|
|
1283
|
+
};
|
|
1284
|
+
readonly disabledBody: "Les mises à jour automatiques sont désactivées (hors ligne). Installez les nouvelles versions manuellement.";
|
|
1285
|
+
readonly check: "Rechercher des mises à jour";
|
|
1286
|
+
readonly checking: "Vérification…";
|
|
1287
|
+
readonly lastChecked: "Dernière vérification {when}";
|
|
1288
|
+
readonly available: "La version {version} est disponible";
|
|
1289
|
+
readonly none: "Vous utilisez la dernière version.";
|
|
1290
|
+
readonly unavailable: "Les mises à jour sont désactivées dans cette installation.";
|
|
1291
|
+
readonly error: "Impossible de rechercher des mises à jour.";
|
|
1292
|
+
readonly download: "Télécharger la mise à jour";
|
|
1293
|
+
readonly downloading: "Téléchargement… {percent} %";
|
|
1294
|
+
readonly downloaded: "La version {version} est prête à être installée";
|
|
1295
|
+
readonly restart: "Redémarrer pour installer";
|
|
1296
|
+
readonly downloadError: "Le téléchargement ne s’est pas terminé. Vous pouvez réessayer.";
|
|
1297
|
+
readonly toast: {
|
|
1298
|
+
readonly available: "Une nouvelle version d’Adminium est disponible";
|
|
1299
|
+
readonly view: "Afficher";
|
|
1300
|
+
readonly downloaded: "Mise à jour prête à installer";
|
|
1301
|
+
readonly restart: "Redémarrer maintenant";
|
|
1302
|
+
};
|
|
1303
|
+
};
|
|
1304
|
+
readonly legal: {
|
|
1305
|
+
readonly title: "Licences";
|
|
1306
|
+
readonly agpl: "Adminium Desktop est un logiciel libre sous licence GNU Affero General Public License v3.0.";
|
|
1307
|
+
readonly viewLicense: "Voir la licence";
|
|
1308
|
+
readonly licenseTitle: "GNU Affero General Public License v3.0";
|
|
1309
|
+
readonly licenseUnavailable: "Le fichier de licence intégré n’est pas disponible dans cette version.";
|
|
1310
|
+
readonly viewNotices: "Licences tierces";
|
|
1311
|
+
readonly noticesTitle: "Mentions des tiers";
|
|
1312
|
+
readonly noticesUnavailable: "Les mentions des tiers sont générées lors de l’empaquetage de l’application et ne sont pas disponibles dans cette version.";
|
|
1313
|
+
readonly source: "Code source";
|
|
1314
|
+
readonly close: "Fermer";
|
|
1315
|
+
};
|
|
1316
|
+
readonly telemetry: {
|
|
1317
|
+
readonly title: "Données d’utilisation anonymes";
|
|
1318
|
+
readonly label: "Partager des données d’utilisation anonymes";
|
|
1319
|
+
readonly description: "Nous aide à décider quels moteurs de base de données prioriser. Désactivé sauf si vous l’activez ; aucun schéma, donnée ou information personnelle n’est jamais envoyé.";
|
|
1320
|
+
readonly saveFailed: "Impossible d’enregistrer ce paramètre. Réessayez.";
|
|
1321
|
+
};
|
|
1322
|
+
readonly diagnostics: {
|
|
1323
|
+
readonly title: "Diagnostics";
|
|
1324
|
+
readonly description: "Détails utiles pour signaler un problème. Aucun schéma ni donnée n’est inclus.";
|
|
1325
|
+
readonly copy: "Copier les infos de diagnostic";
|
|
1326
|
+
readonly copied: "Copié";
|
|
1327
|
+
readonly showLogs: "Afficher les journaux";
|
|
1328
|
+
readonly dataSize: "Taille des données : {size}";
|
|
1329
|
+
};
|
|
1330
|
+
};
|
|
1331
|
+
};
|
|
1332
|
+
readonly apiKeys: {
|
|
1333
|
+
readonly title: "Clés d’API et jetons";
|
|
1334
|
+
readonly subtitle: "Gérez l’accès programmatique à votre espace de travail.";
|
|
1335
|
+
readonly createButton: "Créer une clé";
|
|
1336
|
+
readonly copy: "Copier";
|
|
1337
|
+
readonly copied: "Copié";
|
|
1338
|
+
readonly revoke: "Révoquer la clé";
|
|
1339
|
+
readonly neverUsed: "Jamais utilisée";
|
|
1340
|
+
readonly lastUsed: "Dernière utilisation {since}";
|
|
1341
|
+
readonly scopesOverflow: "+{count} de plus";
|
|
1342
|
+
readonly status: {
|
|
1343
|
+
readonly active: "Active";
|
|
1344
|
+
readonly revoked: "Révoquée";
|
|
1345
|
+
readonly expired: "Expirée";
|
|
1346
|
+
};
|
|
1347
|
+
readonly list: {
|
|
1348
|
+
readonly title: "Clés";
|
|
1349
|
+
readonly activeCount: "{count, plural, one {# clé active} other {# clés actives}}";
|
|
1350
|
+
};
|
|
1351
|
+
readonly empty: {
|
|
1352
|
+
readonly title: "Aucune clé d’API";
|
|
1353
|
+
readonly body: "Créez-en une pour appeler l’API Adminium depuis votre propre code.";
|
|
1354
|
+
};
|
|
1355
|
+
readonly revealed: {
|
|
1356
|
+
readonly title: "Nouvelle clé créée";
|
|
1357
|
+
readonly body: "Copiez-la maintenant — vous ne pourrez plus jamais la voir.";
|
|
1358
|
+
};
|
|
1359
|
+
readonly rolesUnavailable: {
|
|
1360
|
+
readonly title: "Les rôles ne vous sont pas visibles";
|
|
1361
|
+
readonly body: "Créer une clé, c’est choisir le rôle sous lequel elle agit, et votre compte ne peut pas lire la liste des rôles. Demandez à un administrateur la permission « Gérer les rôles ».";
|
|
1362
|
+
};
|
|
1363
|
+
readonly quickStart: {
|
|
1364
|
+
readonly title: "Démarrage rapide";
|
|
1365
|
+
readonly body: "Authentifiez vos requêtes avec votre clé dans l’en-tête Authorization.";
|
|
1366
|
+
};
|
|
1367
|
+
readonly create: {
|
|
1368
|
+
readonly title: "Créer une clé d’API";
|
|
1369
|
+
readonly description: "La clé agit avec les permissions du rôle que vous choisissez.";
|
|
1370
|
+
readonly name: "Nom";
|
|
1371
|
+
readonly namePlaceholder: "ex. Pipeline analytique";
|
|
1372
|
+
readonly role: "Rôle";
|
|
1373
|
+
readonly roleHelper: "Choisissez le rôle le moins privilégié qui suffise.";
|
|
1374
|
+
readonly expires: "Expire le";
|
|
1375
|
+
readonly expiresHelper: "Laissez vide pour une clé qui n’expire jamais.";
|
|
1376
|
+
readonly submit: "Créer la clé";
|
|
1377
|
+
readonly failed: "Impossible de créer la clé";
|
|
1378
|
+
};
|
|
1379
|
+
readonly revokeConfirm: {
|
|
1380
|
+
readonly title: "Révoquer la clé d’API";
|
|
1381
|
+
readonly body: "Tout code appelant encore l’API avec « {name} » échouera immédiatement. C’est irréversible.";
|
|
1382
|
+
readonly prompt: "Saisissez « {name} » pour confirmer";
|
|
1383
|
+
readonly confirm: "Révoquer la clé";
|
|
1384
|
+
};
|
|
1385
|
+
};
|
|
1386
|
+
readonly changelog: {
|
|
1387
|
+
readonly title: "Journal des modifications";
|
|
1388
|
+
readonly subtitle: "Nouveautés produit et versions.";
|
|
1389
|
+
readonly allReleases: "Toutes les versions";
|
|
1390
|
+
readonly tag: {
|
|
1391
|
+
readonly new: "Nouveau";
|
|
1392
|
+
readonly improved: "Amélioré";
|
|
1393
|
+
readonly fixed: "Corrigé";
|
|
1394
|
+
readonly security: "Sécurité";
|
|
1395
|
+
};
|
|
1396
|
+
readonly filter: {
|
|
1397
|
+
readonly all: "Tout";
|
|
1398
|
+
readonly label: "Filtrer les modifications par type";
|
|
1399
|
+
};
|
|
1400
|
+
readonly empty: {
|
|
1401
|
+
readonly title: "Rien sous ce filtre";
|
|
1402
|
+
readonly body: "Aucune version n’a encore comporté de modification de ce type.";
|
|
1403
|
+
readonly clear: "Afficher toutes les modifications";
|
|
1404
|
+
};
|
|
1405
|
+
};
|
|
1406
|
+
readonly kb: {
|
|
1407
|
+
readonly title: "Base de connaissances";
|
|
1408
|
+
readonly subtitle: "{count, plural, one {# guide} other {# guides}} · documentation complète sur docs.adminium.dev";
|
|
1409
|
+
readonly openDocs: "Ouvrir la documentation";
|
|
1410
|
+
readonly browse: "Parcourir par thème";
|
|
1411
|
+
readonly hero: {
|
|
1412
|
+
readonly title: "Comment pouvons-nous vous aider ?";
|
|
1413
|
+
readonly subtitle: "Cherchez dans les guides, la doc API et le dépannage.";
|
|
1414
|
+
readonly placeholder: "Rechercher dans la base de connaissances…";
|
|
1415
|
+
readonly label: "Rechercher dans la base de connaissances";
|
|
1416
|
+
readonly clear: "Effacer la recherche";
|
|
1417
|
+
};
|
|
1418
|
+
readonly category: {
|
|
1419
|
+
readonly start: "Premiers pas";
|
|
1420
|
+
readonly connect: "Connecter des données";
|
|
1421
|
+
readonly api: "API et développement";
|
|
1422
|
+
readonly security: "Sécurité et accès";
|
|
1423
|
+
readonly selfhost: "Auto-hébergement";
|
|
1424
|
+
readonly trouble: "Dépannage";
|
|
1425
|
+
readonly count: "{count, plural, one {# article} other {# articles}}";
|
|
1426
|
+
readonly selected: "Filtré";
|
|
1427
|
+
};
|
|
1428
|
+
readonly list: {
|
|
1429
|
+
readonly all: "Tous les guides";
|
|
1430
|
+
readonly clear: "Effacer le filtre";
|
|
1431
|
+
};
|
|
1432
|
+
readonly empty: {
|
|
1433
|
+
readonly title: "Aucun guide ne correspond à votre recherche";
|
|
1434
|
+
readonly body: "Essayez un autre mot, ou cherchez dans la documentation complète sur docs.adminium.dev.";
|
|
1435
|
+
readonly openDocs: "Ouvrir la documentation";
|
|
1436
|
+
};
|
|
1437
|
+
readonly article: {
|
|
1438
|
+
readonly install: {
|
|
1439
|
+
readonly title: "Installer Adminium";
|
|
1440
|
+
readonly excerpt: "Lancez depuis un dépôt source ou via docker run, et atteignez l’assistant de première exécution en une minute.";
|
|
1441
|
+
};
|
|
1442
|
+
readonly firstAdmin: {
|
|
1443
|
+
readonly title: "Créer votre premier super-administrateur";
|
|
1444
|
+
readonly excerpt: "Ce que demande l’assistant de première exécution, et pourquoi il ne peut s’exécuter qu’une fois.";
|
|
1445
|
+
};
|
|
1446
|
+
readonly connectDb: {
|
|
1447
|
+
readonly title: "Connecter votre première base de données";
|
|
1448
|
+
readonly excerpt: "Pointez Adminium vers PostgreSQL, MySQL ou SQLite et générez une application d’administration.";
|
|
1449
|
+
};
|
|
1450
|
+
readonly schemaFile: {
|
|
1451
|
+
readonly title: "Générer depuis un fichier de schéma";
|
|
1452
|
+
readonly excerpt: "Importez un schéma Prisma, un models.py Django, un schema.rb Rails ou un dump .sql — sans aucune connexion.";
|
|
1453
|
+
};
|
|
1454
|
+
readonly readOnly: {
|
|
1455
|
+
readonly title: "Utiliser un rôle en lecture seule";
|
|
1456
|
+
readonly excerpt: "L’introspection ne lit que les métadonnées du schéma. Donnez à Adminium le minimum de privilèges.";
|
|
1457
|
+
};
|
|
1458
|
+
readonly apiKeys: {
|
|
1459
|
+
readonly title: "S’authentifier avec des clés d’API";
|
|
1460
|
+
readonly excerpt: "Créer et révoquer des clés, et pourquoi une clé ne vous est montrée qu’une seule fois.";
|
|
1461
|
+
};
|
|
1462
|
+
readonly rest: {
|
|
1463
|
+
readonly title: "Référence de l’API REST";
|
|
1464
|
+
readonly excerpt: "Tous les points d’accès exposés par l’application générée, avec les formats de requête et de réponse.";
|
|
1465
|
+
};
|
|
1466
|
+
readonly manifest: {
|
|
1467
|
+
readonly title: "Le manifeste de page";
|
|
1468
|
+
readonly excerpt: "Comment une page se décrit en configuration, et comment en modifier une à la main.";
|
|
1469
|
+
};
|
|
1470
|
+
readonly roles: {
|
|
1471
|
+
readonly title: "Rôles et permissions";
|
|
1472
|
+
readonly excerpt: "Attribuez Lecteur, Éditeur et Admin, et construisez vos propres rôles depuis la matrice de permissions.";
|
|
1473
|
+
};
|
|
1474
|
+
readonly audit: {
|
|
1475
|
+
readonly title: "Lire le journal d’audit";
|
|
1476
|
+
readonly excerpt: "Qui a changé quoi, quand, et depuis où.";
|
|
1477
|
+
};
|
|
1478
|
+
readonly secrets: {
|
|
1479
|
+
readonly title: "Comment Adminium stocke vos secrets";
|
|
1480
|
+
readonly excerpt: "Les identifiants de connexion sont chiffrés au repos avec ADMINIUM_SECRET. Les clés d’API sont hachées.";
|
|
1481
|
+
};
|
|
1482
|
+
readonly docker: {
|
|
1483
|
+
readonly title: "Auto-héberger avec Docker";
|
|
1484
|
+
readonly excerpt: "L’image officielle, docker-compose, et l’usage d’une base méta séparée.";
|
|
1485
|
+
};
|
|
1486
|
+
readonly backup: {
|
|
1487
|
+
readonly title: "Sauvegarder et déplacer une instance";
|
|
1488
|
+
readonly excerpt: "export-zip regroupe votre configuration serveur ; l’import rejoue la même installation ailleurs.";
|
|
1489
|
+
};
|
|
1490
|
+
readonly telemetry: {
|
|
1491
|
+
readonly title: "Télémétrie et vérification des mises à jour";
|
|
1492
|
+
readonly excerpt: "Les deux sont opt-in et désactivées par défaut. Ce qui est envoyé si vous les activez.";
|
|
1493
|
+
};
|
|
1494
|
+
readonly connectionFails: {
|
|
1495
|
+
readonly title: "Une connexion à la base échoue";
|
|
1496
|
+
readonly excerpt: "Lisez la carte de diagnostic : hôte, port, TLS, et l’IP que votre base doit autoriser.";
|
|
1497
|
+
};
|
|
1498
|
+
readonly missingTables: {
|
|
1499
|
+
readonly title: "Des tables manquent après l’introspection";
|
|
1500
|
+
readonly excerpt: "Visibilité du schéma, tables exclues, et relance de la génération.";
|
|
1501
|
+
};
|
|
1502
|
+
};
|
|
1503
|
+
};
|
|
1504
|
+
readonly desktop: {
|
|
1505
|
+
readonly menu: {
|
|
1506
|
+
readonly file: "Fichier";
|
|
1507
|
+
readonly fileNewDatabase: "Nouvelle base de données locale…";
|
|
1508
|
+
readonly fileOpenSqlite: "Ouvrir un fichier SQLite…";
|
|
1509
|
+
readonly fileBackupNow: "Sauvegarder maintenant…";
|
|
1510
|
+
readonly fileRestore: "Restaurer depuis une sauvegarde…";
|
|
1511
|
+
readonly edit: "Édition";
|
|
1512
|
+
readonly view: "Affichage";
|
|
1513
|
+
readonly window: "Fenêtre";
|
|
1514
|
+
readonly help: "Aide";
|
|
1515
|
+
readonly helpDocs: "Documentation Adminium";
|
|
1516
|
+
readonly helpShortcuts: "Raccourcis clavier";
|
|
1517
|
+
readonly helpLogs: "Afficher les journaux";
|
|
1518
|
+
readonly helpCheckForUpdates: "Rechercher des mises à jour…";
|
|
1519
|
+
readonly helpAbout: "À propos d’Adminium";
|
|
1520
|
+
};
|
|
1521
|
+
readonly settings: {
|
|
1522
|
+
readonly explainer: "Ces paramètres s’appliquent uniquement à l’application Adminium sur cet ordinateur. Ils sont enregistrés sur cette machine, pas dans votre espace de travail.";
|
|
1523
|
+
};
|
|
1524
|
+
readonly security: {
|
|
1525
|
+
readonly heading: "Connexion";
|
|
1526
|
+
};
|
|
1527
|
+
readonly requireLogin: {
|
|
1528
|
+
readonly label: "Exiger une connexion sur cet appareil";
|
|
1529
|
+
readonly description: "Adminium vous connecte normalement de façon automatique sur cet ordinateur. Activez cette option pour demander votre mot de passe à chaque démarrage — utile si d’autres personnes peuvent utiliser cette machine. La modification prend effet au prochain démarrage d’Adminium.";
|
|
1530
|
+
readonly savedOn: "Connexion requise au prochain démarrage";
|
|
1531
|
+
readonly savedOff: "Adminium ignorera la connexion sur cet ordinateur";
|
|
1532
|
+
readonly saveFailed: "Impossible d’enregistrer ce paramètre. Réessayez.";
|
|
1533
|
+
};
|
|
1534
|
+
readonly chip: {
|
|
1535
|
+
readonly local: "Local";
|
|
1536
|
+
readonly lanShare: "Local · Partagé sur le réseau";
|
|
1537
|
+
readonly remoteDb: "Local + base distante";
|
|
1538
|
+
readonly remoteDbOffline: "Base distante hors ligne";
|
|
1539
|
+
readonly remoteDbOfflineDetail: "Impossible de joindre {names}. Les pages de ces connexions affichent un état de reconnexion.";
|
|
1540
|
+
};
|
|
1541
|
+
readonly lan: {
|
|
1542
|
+
readonly heading: "Partager sur le réseau local";
|
|
1543
|
+
readonly label: "Autoriser les autres appareils de ce réseau à utiliser Adminium";
|
|
1544
|
+
readonly description: "Les autres ordinateurs, tablettes et téléphones du même réseau peuvent ouvrir Adminium dans un navigateur et se connecter avec leur propre compte. Adminium doit rester ouvert sur cet ordinateur pour qu'ils puissent y accéder.";
|
|
1545
|
+
readonly savedOn: "Partagé sur votre réseau local";
|
|
1546
|
+
readonly savedOff: "Partage arrêté — Adminium est de nouveau limité à cet ordinateur";
|
|
1547
|
+
readonly saveFailed: "Impossible de modifier le partage réseau";
|
|
1548
|
+
readonly noUsers: "Vous êtes la seule personne à avoir un compte, donc personne d'autre ne peut encore se connecter. Le partage fonctionne quand même — il vous suffira d'inviter des personnes avant qu'elles puissent l'utiliser.";
|
|
1549
|
+
readonly usersUnknown: "Adminium n'a pas pu vérifier qui d'autre possède un compte sur cet ordinateur. Le partage fonctionne toujours et toute personne disposant d'un compte peut se connecter — seule cette vérification a échoué.";
|
|
1550
|
+
readonly acknowledge: "J'ai compris — j'inviterai des personnes ensuite";
|
|
1551
|
+
readonly port: "Port";
|
|
1552
|
+
readonly portHelper: "Par défaut {port}";
|
|
1553
|
+
readonly portInvalid: "Utilisez un nombre entre 1024 et 65535.";
|
|
1554
|
+
readonly applyPort: "Changer de port";
|
|
1555
|
+
readonly portInUse: "Le port {port} est déjà utilisé par un autre programme.";
|
|
1556
|
+
readonly portInUseHint: "Rien n'a été modifié — le partage est toujours désactivé.";
|
|
1557
|
+
readonly portInUseNoSuggestion: "Rien n'a été modifié. Essayez un autre port.";
|
|
1558
|
+
readonly tryPort: "Essayer {port}";
|
|
1559
|
+
readonly urlsHeading: "Ouvrir ceci sur un autre appareil";
|
|
1560
|
+
readonly noUrls: "Cet ordinateur n'est connecté à aucun réseau pour le moment, il n'y a donc aucune adresse à partager. Connectez-vous au Wi-Fi ou branchez un câble et cette liste se remplira.";
|
|
1561
|
+
readonly copyUrl: "Copier";
|
|
1562
|
+
readonly sessions: "{count, plural, =0 {Aucun appareil connecté depuis ce réseau} one {# appareil connecté depuis ce réseau} other {# appareils connectés depuis ce réseau}}";
|
|
1563
|
+
readonly sessionsUnknown: "Vérification des appareils connectés…";
|
|
1564
|
+
readonly pending: "Démarrage du partage…";
|
|
1565
|
+
readonly mismatch: "Adminium reste accessible sur ce réseau";
|
|
1566
|
+
readonly mismatchBody: "Le partage est désactivé, mais le serveur n'a pas encore libéré le réseau. Redémarrez Adminium pour le fermer.";
|
|
1567
|
+
readonly transportTitle: "Le trafic sur votre réseau local n'est pas chiffré.";
|
|
1568
|
+
readonly transportBody: "Ne partagez que sur des réseaux de confiance. Pour un accès à distance, utilisez Adminium self-host derrière HTTPS.";
|
|
1569
|
+
readonly firewall: "La première fois que vous partagez, votre système d'exploitation vous demandera d'autoriser les connexions entrantes — choisissez Autoriser, sinon les autres appareils ne pourront pas accéder à Adminium.";
|
|
1570
|
+
};
|
|
1571
|
+
readonly setup: {
|
|
1572
|
+
readonly title: "Bienvenue dans Adminium";
|
|
1573
|
+
readonly subtitle: "Quatre étapes rapides et Adminium aura construit une application d’administration à partir de votre base de données. Tout reste sur cet ordinateur.";
|
|
1574
|
+
readonly progress: "Progression de la configuration";
|
|
1575
|
+
readonly back: "Retour";
|
|
1576
|
+
readonly continue: "Continuer";
|
|
1577
|
+
readonly createAccount: "Créer le compte et continuer";
|
|
1578
|
+
readonly step: {
|
|
1579
|
+
readonly location: "Bienvenue";
|
|
1580
|
+
readonly database: "Votre première base de données";
|
|
1581
|
+
readonly account: "Votre compte";
|
|
1582
|
+
readonly generate: "Générer";
|
|
1583
|
+
};
|
|
1584
|
+
readonly dataDir: {
|
|
1585
|
+
readonly heading: "Où Adminium doit-il conserver vos données ?";
|
|
1586
|
+
readonly description: "Vos bases de données, vos réglages et vos sauvegardes vivent tous dans ce dossier. Tout reste sur cet ordinateur — rien n’est envoyé nulle part.";
|
|
1587
|
+
readonly label: "Dossier de données";
|
|
1588
|
+
readonly loading: "Lecture de l’emplacement actuel…";
|
|
1589
|
+
readonly pending: "Adminium redémarre lorsque vous continuez, afin de basculer vers ce dossier.";
|
|
1590
|
+
readonly change: "Modifier…";
|
|
1591
|
+
readonly revert: "Annuler";
|
|
1592
|
+
readonly dialogTitle: "Choisissez où Adminium conserve vos données";
|
|
1593
|
+
readonly cloudSyncTitle: "Ce dossier est synchronisé avec le cloud";
|
|
1594
|
+
readonly cloudSyncWarning: "Adminium stocke ses données dans des fichiers SQLite. {provider} synchronise les fichiers de « {folder} » en les copiant en arrière-plan, ce qui peut corrompre une base de données ouverte — et faire perdre des données sans avertissement. Choisissez un dossier en dehors de {provider}.";
|
|
1595
|
+
readonly chooseAnother: "Choisir un autre dossier";
|
|
1596
|
+
readonly useAnyway: "L’utiliser quand même — j’accepte le risque";
|
|
1597
|
+
readonly unusableTitle: "Adminium ne peut pas utiliser ce dossier";
|
|
1598
|
+
readonly failed: "Adminium n’a pas pu utiliser ce dossier.";
|
|
1599
|
+
};
|
|
1600
|
+
readonly source: {
|
|
1601
|
+
readonly heading: "À partir de quoi Adminium doit-il construire ?";
|
|
1602
|
+
readonly description: "Adminium lit le schéma d’une base de données et en génère une application d’administration. Vous pourrez ajouter d’autres bases plus tard.";
|
|
1603
|
+
readonly groupLabel: "Source de la base de données";
|
|
1604
|
+
readonly local: {
|
|
1605
|
+
readonly title: "Créer une base de données locale";
|
|
1606
|
+
readonly description: "Partez de zéro, ou d’un fichier de schéma que vous avez déjà. La base est créée dans votre dossier de données.";
|
|
1607
|
+
readonly name: "Nom de la base de données";
|
|
1608
|
+
readonly namePlaceholder: "Opérations";
|
|
1609
|
+
readonly nameUnusable: "Utilisez au moins une lettre ou un chiffre — le nom du fichier en est dérivé.";
|
|
1610
|
+
readonly fileHelper: "Crée {file}";
|
|
1611
|
+
readonly schemaLabel: "Partir de";
|
|
1612
|
+
readonly blank: "Vide";
|
|
1613
|
+
readonly fromFile: "Un fichier de schéma";
|
|
1614
|
+
readonly schemaFile: "Fichier de schéma";
|
|
1615
|
+
readonly schemaFileHelper: ".sql, pg_dump, Prisma, Drizzle, TypeORM, Sequelize, schema.rb, Django ou JSON Adminium. Adminium le traduit en SQLite.";
|
|
1616
|
+
readonly placeholder: "Générer automatiquement des entrées d’exemple";
|
|
1617
|
+
readonly placeholderHelper: "Vous avez importé un schéma sans lignes. Remplissez chaque table de données d’exemple réalistes pour que vos tableaux de bord et graphiques s’affichent immédiatement.";
|
|
1618
|
+
};
|
|
1619
|
+
readonly openSqlite: {
|
|
1620
|
+
readonly title: "Ouvrir un fichier SQLite existant";
|
|
1621
|
+
readonly description: "Pointez Adminium vers un fichier .sqlite de cet ordinateur. Il est ouvert là où il se trouve — rien n’est copié ni déplacé.";
|
|
1622
|
+
readonly browse: "Choisir un fichier .sqlite…";
|
|
1623
|
+
readonly change: "Choisir un autre fichier…";
|
|
1624
|
+
readonly networkTitle: "Ce fichier se trouve sur un partage réseau";
|
|
1625
|
+
readonly networkBody: "Le verrouillage SQLite n’est pas fiable sur les partages de fichiers réseau, et une connexion interrompue en pleine écriture peut corrompre la base. Une copie sur le disque de cet ordinateur est plus sûre.";
|
|
1626
|
+
};
|
|
1627
|
+
readonly remote: {
|
|
1628
|
+
readonly title: "Se connecter à une base de données serveur";
|
|
1629
|
+
readonly description: "PostgreSQL ou MySQL. Nécessite une base de données accessible sur le réseau ; les tables propres à Adminium restent malgré tout sur cet ordinateur.";
|
|
1630
|
+
readonly networkNote: "Nécessite une base de données accessible sur le réseau";
|
|
1631
|
+
readonly metaNote: "Les tables propres à Adminium — vos pages, vos réglages et votre connexion — restent dans le dossier de données de cet ordinateur dans tous les cas.";
|
|
1632
|
+
readonly engine: "Moteur";
|
|
1633
|
+
readonly name: "Nom de la connexion";
|
|
1634
|
+
readonly namePlaceholder: "Production";
|
|
1635
|
+
readonly dsn: "Chaîne de connexion";
|
|
1636
|
+
readonly dsnHelper: "Adminium la teste au moment de se connecter. Utilisez un rôle en lecture seule si vous ne voulez que des tableaux de bord.";
|
|
1637
|
+
};
|
|
1638
|
+
readonly demo: {
|
|
1639
|
+
readonly title: "Explorer la base de démonstration";
|
|
1640
|
+
readonly description: "Une base d’exploitation d’équipe prête à l’emploi, pour voir ce qu’Adminium construit avant de le pointer vers vos propres données. Supprimez-la quand vous voulez.";
|
|
1641
|
+
readonly unavailable: "Cette version n’inclut pas les données de démonstration, il n’y a donc rien à charger. Choisissez l’une des options ci-dessus.";
|
|
1642
|
+
};
|
|
1643
|
+
};
|
|
1644
|
+
readonly account: {
|
|
1645
|
+
readonly heading: "Créez votre compte";
|
|
1646
|
+
readonly description: "Il s’agit du compte administrateur de cette copie d’Adminium. Le mot de passe protège vos sauvegardes et toute personne avec qui vous partagez sur votre réseau — il ne vous sera pas demandé à chaque lancement.";
|
|
1647
|
+
readonly name: "Votre nom";
|
|
1648
|
+
readonly email: "E-mail";
|
|
1649
|
+
readonly password: "Mot de passe";
|
|
1650
|
+
readonly passwordHelper: "Au moins {min} caractères.";
|
|
1651
|
+
readonly confirm: "Confirmer le mot de passe";
|
|
1652
|
+
readonly strength: "Force du mot de passe";
|
|
1653
|
+
readonly strengthLevels: {
|
|
1654
|
+
readonly weak: "Faible";
|
|
1655
|
+
readonly fair: "Moyen";
|
|
1656
|
+
readonly good: "Bon";
|
|
1657
|
+
readonly strong: "Fort";
|
|
1658
|
+
};
|
|
1659
|
+
readonly singleUser: "Ignorer la connexion sur cet ordinateur";
|
|
1660
|
+
readonly singleUserHelper: "Adminium vous connecte automatiquement lorsque vous l’ouvrez ici. Désactivez cette option si d’autres personnes utilisent cette machine. Vous pourrez la modifier plus tard dans Réglages → Bureau.";
|
|
1661
|
+
readonly locale: "Langue";
|
|
1662
|
+
readonly theme: "Apparence";
|
|
1663
|
+
readonly alreadyExists: "Cette copie d’Adminium possède déjà un compte. Connectez-vous avec celui-ci.";
|
|
1664
|
+
readonly failed: "Adminium n’a pas pu créer ce compte.";
|
|
1665
|
+
};
|
|
1666
|
+
readonly generate: {
|
|
1667
|
+
readonly creating: "Configuration de votre base de données…";
|
|
1668
|
+
readonly introspecting: "Lecture de votre schéma — tables, colonnes et relations…";
|
|
1669
|
+
readonly working: "En cours…";
|
|
1670
|
+
readonly offlineNote: "Tout cela se passe sur cet ordinateur.";
|
|
1671
|
+
readonly failedTitle: "Adminium n’a pas pu configurer cette base de données";
|
|
1672
|
+
readonly failedBody: "Un problème est survenu. Réessayez.";
|
|
1673
|
+
readonly retry: "Réessayer";
|
|
1674
|
+
};
|
|
1675
|
+
};
|
|
1676
|
+
};
|
|
1677
|
+
readonly capabilities: {
|
|
1678
|
+
readonly heading: "Autorisations des applications";
|
|
1679
|
+
readonly description: "Les applications que vous installez peuvent demander à utiliser le matériel de cet ordinateur. Vous approuvez chacune d’elles et pouvez révoquer l’accès à tout moment.";
|
|
1680
|
+
readonly grantedTo: "Autorisé pour {app}";
|
|
1681
|
+
readonly status: {
|
|
1682
|
+
readonly available: "Disponible";
|
|
1683
|
+
readonly stub: "Pas encore disponible";
|
|
1684
|
+
readonly unavailable: "Indisponible";
|
|
1685
|
+
};
|
|
1686
|
+
readonly allow: {
|
|
1687
|
+
readonly action: "Autoriser…";
|
|
1688
|
+
};
|
|
1689
|
+
readonly revoke: {
|
|
1690
|
+
readonly action: "Révoquer";
|
|
1691
|
+
readonly saved: "Accès révoqué";
|
|
1692
|
+
readonly failed: "Impossible de révoquer l’accès. Réessayez.";
|
|
1693
|
+
};
|
|
1694
|
+
readonly grant: {
|
|
1695
|
+
readonly saved: "Accès autorisé";
|
|
1696
|
+
readonly failed: "Impossible d’autoriser l’accès. Réessayez.";
|
|
1697
|
+
};
|
|
1698
|
+
readonly catalog: {
|
|
1699
|
+
readonly printerEscpos: {
|
|
1700
|
+
readonly name: "Imprimante de reçus (ESC/POS)";
|
|
1701
|
+
readonly scope: "Imprimer sur des imprimantes de reçus et ouvrir un tiroir-caisse connecté";
|
|
1702
|
+
};
|
|
1703
|
+
};
|
|
1704
|
+
readonly consent: {
|
|
1705
|
+
readonly title: "Autoriser {app} ?";
|
|
1706
|
+
readonly subtitle: "{app} demande à utiliser le matériel de cet ordinateur.";
|
|
1707
|
+
readonly willAllow: "Cela permettra à {app} de :";
|
|
1708
|
+
readonly revokeNote: "Vous pouvez révoquer ceci à tout moment dans Paramètres → Bureau. N’autorisez que les applications de confiance.";
|
|
1709
|
+
readonly deny: "Pas maintenant";
|
|
1710
|
+
readonly approve: "Autoriser";
|
|
1711
|
+
};
|
|
1712
|
+
};
|
|
1713
|
+
readonly emailTemplates: {
|
|
1714
|
+
readonly title: "Modèles d’e-mail";
|
|
1715
|
+
readonly subtitle: "Les e-mails transactionnels et de cycle de vie envoyés par votre espace de travail.";
|
|
1716
|
+
readonly search: "Rechercher des modèles…";
|
|
1717
|
+
readonly loadFailed: "Impossible de charger les modèles";
|
|
1718
|
+
readonly empty: "Aucun modèle d’e-mail pour l’instant";
|
|
1719
|
+
readonly emptyBody: "Les modèles apparaissent ici dès que le serveur les crée ou que vous en créez.";
|
|
1720
|
+
readonly noMatches: "Aucun modèle correspondant";
|
|
1721
|
+
readonly noMatchesBody: "Essayez une autre recherche.";
|
|
1722
|
+
readonly live: "Actif";
|
|
1723
|
+
readonly disabled: "Désactivé";
|
|
1724
|
+
readonly name: "Nom du modèle";
|
|
1725
|
+
readonly subject: "Objet";
|
|
1726
|
+
readonly enabled: "Activé";
|
|
1727
|
+
};
|
|
1728
|
+
readonly board: {
|
|
1729
|
+
readonly addCard: "Ajouter une carte";
|
|
1730
|
+
readonly compose: {
|
|
1731
|
+
readonly placeholder: "Titre de la carte…";
|
|
1732
|
+
readonly add: "Ajouter";
|
|
1733
|
+
readonly cancel: "Annuler";
|
|
1734
|
+
};
|
|
1735
|
+
readonly empty: {
|
|
1736
|
+
readonly title: "Aucune colonne de tableau";
|
|
1737
|
+
readonly body: "Ajoutez un champ de statut pour regrouper les cartes en colonnes.";
|
|
1738
|
+
};
|
|
1739
|
+
};
|
|
1740
|
+
readonly calendar: {
|
|
1741
|
+
readonly dateRange: "Plage de dates";
|
|
1742
|
+
readonly compose: {
|
|
1743
|
+
readonly placeholder: "Titre de l’événement…";
|
|
1744
|
+
readonly add: "Ajouter";
|
|
1745
|
+
readonly cancel: "Annuler";
|
|
1746
|
+
readonly open: "Ajouter un événement";
|
|
1747
|
+
};
|
|
1748
|
+
readonly agenda: {
|
|
1749
|
+
readonly empty: "Rien de prévu";
|
|
1750
|
+
};
|
|
1751
|
+
};
|
|
1752
|
+
readonly scheduler: {
|
|
1753
|
+
readonly prevWeek: "Semaine précédente";
|
|
1754
|
+
readonly nextWeek: "Semaine suivante";
|
|
1755
|
+
readonly week: "Semaine";
|
|
1756
|
+
readonly month: "Mois";
|
|
1757
|
+
readonly resource: "Ressource";
|
|
1758
|
+
readonly coverage: "Couverture";
|
|
1759
|
+
readonly addShift: "Ajouter un créneau";
|
|
1760
|
+
readonly shiftCount: "{n} créneaux";
|
|
1761
|
+
};
|
|
1762
|
+
readonly planning: {
|
|
1763
|
+
readonly drawer: {
|
|
1764
|
+
readonly close: "Fermer";
|
|
1765
|
+
readonly loading: "Chargement de l’enregistrement";
|
|
1766
|
+
readonly error: "Impossible de charger cet enregistrement.";
|
|
1767
|
+
};
|
|
1768
|
+
};
|
|
1769
|
+
readonly files: {
|
|
1770
|
+
readonly uploadsUnavailable: "Les téléversements ne sont pas encore disponibles sur cette page.";
|
|
1771
|
+
};
|
|
1772
|
+
readonly chat: {
|
|
1773
|
+
readonly messageSent: "Message envoyé";
|
|
1774
|
+
readonly sendFailed: "Le message n’a pas pu être envoyé.";
|
|
1775
|
+
};
|
|
1776
|
+
readonly templates: {
|
|
1777
|
+
readonly crud: {
|
|
1778
|
+
readonly title: "Enregistrements";
|
|
1779
|
+
};
|
|
1780
|
+
readonly dashboard: {
|
|
1781
|
+
readonly title: "Tableau de bord";
|
|
1782
|
+
};
|
|
1783
|
+
readonly board: {
|
|
1784
|
+
readonly title: "Tableau";
|
|
1785
|
+
};
|
|
1786
|
+
readonly calendar: {
|
|
1787
|
+
readonly title: "Calendrier";
|
|
1788
|
+
};
|
|
1789
|
+
readonly scheduler: {
|
|
1790
|
+
readonly title: "Planning";
|
|
1791
|
+
};
|
|
1792
|
+
readonly logViewer: {
|
|
1793
|
+
readonly title: "Journaux";
|
|
1794
|
+
};
|
|
1795
|
+
readonly files: {
|
|
1796
|
+
readonly title: "Fichiers";
|
|
1797
|
+
};
|
|
1798
|
+
readonly chat: {
|
|
1799
|
+
readonly title: "Discussion";
|
|
1800
|
+
};
|
|
1801
|
+
readonly builder: {
|
|
1802
|
+
readonly title: "Éditeur";
|
|
1803
|
+
};
|
|
1804
|
+
readonly wizard: {
|
|
1805
|
+
readonly title: "Assistant";
|
|
1806
|
+
};
|
|
1807
|
+
readonly settings: {
|
|
1808
|
+
readonly title: "Paramètres";
|
|
1809
|
+
};
|
|
1810
|
+
readonly directory: {
|
|
1811
|
+
readonly title: "Annuaire";
|
|
1812
|
+
readonly searchPlaceholder: "Rechercher des personnes…";
|
|
1813
|
+
readonly allFilter: "Tous";
|
|
1814
|
+
readonly clearFilters: "Effacer les filtres";
|
|
1815
|
+
readonly detailTitle: "Personne";
|
|
1816
|
+
readonly emptyTitle: "Aucune personne pour l’instant";
|
|
1817
|
+
readonly emptyBody: "Les personnes apparaissent ici à mesure que des lignes arrivent dans la table.";
|
|
1818
|
+
readonly noMatchesTitle: "Aucune personne correspondante";
|
|
1819
|
+
readonly noMatchesBody: "Essayez une autre recherche ou retirez un filtre.";
|
|
1820
|
+
readonly errorTitle: "Cet annuaire n’a pas pu être chargé";
|
|
1821
|
+
readonly loading: "Chargement des personnes";
|
|
1822
|
+
readonly memberCount: "{count} personnes";
|
|
1823
|
+
};
|
|
1824
|
+
readonly masterDetail: {
|
|
1825
|
+
readonly title: "Liste et détail";
|
|
1826
|
+
readonly allFilter: "Tous";
|
|
1827
|
+
readonly clearFilters: "Effacer les filtres";
|
|
1828
|
+
readonly emptyTitle: "Rien ici pour l’instant";
|
|
1829
|
+
readonly emptyBody: "Les enregistrements apparaissent ici à mesure que des lignes arrivent dans la table.";
|
|
1830
|
+
readonly noMatchesTitle: "Aucun enregistrement correspondant";
|
|
1831
|
+
readonly noMatchesBody: "Essayez de retirer un filtre.";
|
|
1832
|
+
readonly errorTitle: "Cette liste n’a pas pu être chargée";
|
|
1833
|
+
readonly loading: "Chargement des enregistrements";
|
|
1834
|
+
readonly selectPrompt: "Sélectionnez un enregistrement";
|
|
1835
|
+
};
|
|
1836
|
+
readonly queueInbox: {
|
|
1837
|
+
readonly title: "File d’attente";
|
|
1838
|
+
readonly approve: "Approuver";
|
|
1839
|
+
readonly reject: "Rejeter";
|
|
1840
|
+
readonly allSegment: "Tous";
|
|
1841
|
+
readonly approvedToast: "{count} approuvés.";
|
|
1842
|
+
readonly rejectedToast: "{count} rejetés.";
|
|
1843
|
+
readonly undoneToast: "Décision annulée.";
|
|
1844
|
+
readonly failedToast: "Échec de la décision.";
|
|
1845
|
+
readonly bulkFailed: "{failed} des {total} lignes sélectionnées n’ont pas pu être mises à jour.";
|
|
1846
|
+
readonly undoFailedToast: "Impossible d’annuler cette décision.";
|
|
1847
|
+
readonly rejectTitle: "Rejeter les demandes";
|
|
1848
|
+
readonly rejectCount: "Sélection · {count}";
|
|
1849
|
+
readonly rejectNote: "Le demandeur sera notifié avec votre note.";
|
|
1850
|
+
readonly rejectPlaceholder: "Ajoutez une note pour le demandeur…";
|
|
1851
|
+
readonly rejectConfirm: "Rejeter";
|
|
1852
|
+
readonly emptyTitle: "Rien dans la file d’attente";
|
|
1853
|
+
readonly emptyBody: "Les nouvelles demandes apparaissent ici dès leur arrivée.";
|
|
1854
|
+
readonly caughtUpTitle: "Vous êtes à jour";
|
|
1855
|
+
readonly caughtUpBody: "Aucune demande dans cet onglet pour le moment.";
|
|
1856
|
+
readonly errorTitle: "Cette file d’attente n’a pas pu être chargée";
|
|
1857
|
+
readonly loading: "Chargement de la file d’attente";
|
|
1858
|
+
readonly selectPrompt: "Sélectionnez une demande";
|
|
1859
|
+
readonly daysUnit: "{count} jours";
|
|
1860
|
+
};
|
|
1861
|
+
};
|
|
1862
|
+
readonly dataio: {
|
|
1863
|
+
readonly back: "Retour";
|
|
1864
|
+
readonly import: {
|
|
1865
|
+
readonly title: "Importer des données";
|
|
1866
|
+
readonly stepUpload: "Téléverser";
|
|
1867
|
+
readonly stepMap: "Mapper les colonnes";
|
|
1868
|
+
readonly stepValidate: "Valider";
|
|
1869
|
+
readonly stepRun: "Importer et vérifier";
|
|
1870
|
+
readonly targetLabel: "Table cible";
|
|
1871
|
+
readonly targetPlaceholder: "Choisissez une page de table…";
|
|
1872
|
+
readonly notATable: "Cette page n’est pas une table — choisissez une page de table pour l’import.";
|
|
1873
|
+
readonly dropTitle: "Déposez un fichier CSV à importer";
|
|
1874
|
+
readonly dropHint: "CSV jusqu’à 32 Mo — la première ligne doit être l’en-tête";
|
|
1875
|
+
readonly skipTarget: "Ne pas importer";
|
|
1876
|
+
readonly mapHint: "{count} lignes de données dans {file} — choisissez une cible pour chaque colonne.";
|
|
1877
|
+
readonly validating: "Validation…";
|
|
1878
|
+
readonly toValidate: "Valider";
|
|
1879
|
+
readonly validateFailed: "Échec de la validation.";
|
|
1880
|
+
readonly validationSummary: "{valid} lignes sur {total} prêtes à l’import — {invalid} seront ignorées.";
|
|
1881
|
+
readonly allValid: "Toutes les lignes ont passé la validation";
|
|
1882
|
+
readonly run: "Lancer l’import";
|
|
1883
|
+
readonly runSkipping: "Importer {valid} lignes (ignorer {invalid})";
|
|
1884
|
+
readonly progressLabel: "Progression de l’import";
|
|
1885
|
+
readonly running: "Import en cours…";
|
|
1886
|
+
readonly kpiTotal: "Lignes dans le fichier";
|
|
1887
|
+
readonly kpiCreated: "Créées";
|
|
1888
|
+
readonly kpiUpdated: "Mises à jour";
|
|
1889
|
+
readonly kpiSkipped: "Ignorées";
|
|
1890
|
+
readonly inconsistent: "Les totaux de l’import sont incohérents — le total doit égaler créées + mises à jour + ignorées.";
|
|
1891
|
+
readonly downloadErrors: "Télécharger le rapport des lignes ignorées (CSV)";
|
|
1892
|
+
readonly runFailed: "L’import a échoué.";
|
|
1893
|
+
};
|
|
1894
|
+
readonly exports: {
|
|
1895
|
+
readonly title: "Exports de données";
|
|
1896
|
+
readonly tableLabel: "Table";
|
|
1897
|
+
readonly tablePlaceholder: "Choisissez une table…";
|
|
1898
|
+
readonly notATable: "Cette page n’est pas une table — choisissez une page de table à exporter.";
|
|
1899
|
+
readonly formatLabel: "Format";
|
|
1900
|
+
readonly create: "Exporter";
|
|
1901
|
+
readonly createFailed: "Impossible de demander l’export.";
|
|
1902
|
+
readonly retention: "Les exports sont conservés 30 jours, puis expirent.";
|
|
1903
|
+
readonly statusProcessing: "Traitement…";
|
|
1904
|
+
readonly statusReady: "Prêt — {rows} lignes · cliquez pour télécharger";
|
|
1905
|
+
readonly statusFailed: "Échec — {error}";
|
|
1906
|
+
readonly statusCancelled: "Annulé";
|
|
1907
|
+
readonly statusExpired: "Expiré";
|
|
1908
|
+
readonly emptyTitle: "Aucun export pour l’instant";
|
|
1909
|
+
readonly emptyBody: "Demandez-en un ci-dessus — les artefacts apparaissent ici avec leur statut.";
|
|
1910
|
+
};
|
|
1911
|
+
};
|
|
1912
|
+
readonly reports: {
|
|
1913
|
+
readonly title: "Rapports planifiés";
|
|
1914
|
+
readonly subtitle: "Instantanés de données récurrents d’une page, livrés sous forme de notifications dans l’application.";
|
|
1915
|
+
readonly new: "Nouveau rapport";
|
|
1916
|
+
readonly loadFailed: "Impossible de charger les rapports planifiés.";
|
|
1917
|
+
readonly saveFailed: "Impossible d’enregistrer ce rapport.";
|
|
1918
|
+
readonly nextRun: "Prochaine exécution";
|
|
1919
|
+
readonly emptyTitle: "Aucun rapport planifié pour l’instant";
|
|
1920
|
+
readonly emptyBody: "Créez-en un pour obtenir un instantané de données récurrent de n’importe quelle page de table.";
|
|
1921
|
+
readonly createTitle: "Nouveau rapport planifié";
|
|
1922
|
+
readonly editTitle: "Modifier le rapport planifié";
|
|
1923
|
+
readonly nameLabel: "Nom";
|
|
1924
|
+
readonly namePlaceholder: "p. ex. Chiffre d’affaires hebdomadaire";
|
|
1925
|
+
readonly pageLabel: "Page";
|
|
1926
|
+
readonly pagePlaceholder: "Choisissez une page…";
|
|
1927
|
+
readonly frequencyLabel: "Fréquence";
|
|
1928
|
+
readonly frequency: {
|
|
1929
|
+
readonly daily: "Quotidien";
|
|
1930
|
+
readonly weekly: "Hebdomadaire";
|
|
1931
|
+
readonly monthly: "Mensuel";
|
|
1932
|
+
};
|
|
1933
|
+
readonly dayOfWeekLabel: "Jour";
|
|
1934
|
+
readonly dayOfMonthLabel: "Jour du mois";
|
|
1935
|
+
readonly timeLabel: "Heure";
|
|
1936
|
+
readonly timezoneLabel: "Fuseau horaire";
|
|
1937
|
+
readonly formatLabel: "Livraison";
|
|
1938
|
+
readonly formatHint: "Instantané de données (le rendu PDF/PNG arrivera dans une version ultérieure) — chaque exécution produit un instantané CSV et une notification dans l’application.";
|
|
1939
|
+
readonly recipientsLabel: "Destinataires";
|
|
1940
|
+
readonly recipientsHint: "Enregistrés avec le rapport. La livraison par e-mail arrivera dans une version ultérieure — pour l’instant, les exécutions vous notifient dans l’application.";
|
|
1941
|
+
readonly deliveryBadge: "Instantané CSV";
|
|
1942
|
+
readonly delete: "Supprimer";
|
|
1943
|
+
readonly create: "Créer";
|
|
1944
|
+
readonly cadence: {
|
|
1945
|
+
readonly daily: "Quotidien à {time} ({zone})";
|
|
1946
|
+
readonly weekly: "Hebdomadaire · {day} à {time} ({zone})";
|
|
1947
|
+
readonly monthly: "Mensuel · le {day} à {time} ({zone})";
|
|
1948
|
+
};
|
|
1949
|
+
};
|
|
1950
|
+
readonly notifications: {
|
|
1951
|
+
readonly channel: {
|
|
1952
|
+
readonly inApp: "Dans l’application";
|
|
1953
|
+
readonly email: "E-mail";
|
|
1954
|
+
readonly push: "Push";
|
|
1955
|
+
};
|
|
1956
|
+
readonly event: {
|
|
1957
|
+
readonly reportReady: "Rapport planifié prêt";
|
|
1958
|
+
readonly reportFailed: "Échec du rapport planifié";
|
|
1959
|
+
readonly backupCompleted: "Sauvegarde terminée";
|
|
1960
|
+
};
|
|
1961
|
+
};
|
|
1962
|
+
};
|
|
1963
|
+
export default _default;
|
|
1964
|
+
//# sourceMappingURL=common.d.ts.map
|