@liujitcn/kratos-admin-core 0.0.21 → 0.0.23

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.
Files changed (85) hide show
  1. package/dist/package/declarations/src/api/base/language.d.ts +3 -3
  2. package/dist/package/declarations/src/components/Dict/index.vue.d.ts +4 -3
  3. package/dist/package/declarations/src/components/Dict/value.d.ts +11 -0
  4. package/dist/package/declarations/src/locales/generated.d.ts +3382 -0
  5. package/dist/package/declarations/src/locales/index.d.ts +11 -21
  6. package/dist/package/declarations/src/rpc/base/v1/config.d.ts +11 -1
  7. package/dist/package/declarations/src/rpc/base/v1/language.d.ts +7 -13
  8. package/dist/package/declarations/src/rpc/base/v1/login.d.ts +13 -1
  9. package/dist/package/declarations/src/rpc/system/admin/v1/auth.d.ts +1 -1
  10. package/dist/package/declarations/src/rpc/system/admin/v1/base_dict.d.ts +7 -77
  11. package/dist/package/declarations/src/rpc/system/admin/v1/base_translation.d.ts +54 -81
  12. package/dist/package/declarations/src/rpc/system/admin/v1/common.d.ts +13 -0
  13. package/dist/package/declarations/src/stores/modules/auth.d.ts +6 -6
  14. package/dist/package/declarations/src/utils/passwordCrypto.d.ts +1 -1
  15. package/dist/package/src/App.vue +2 -8
  16. package/dist/package/src/api/base/language.ts +4 -4
  17. package/dist/package/src/bootstrap.ts +1 -1
  18. package/dist/package/src/components/CronExpression/index.vue +19 -19
  19. package/dist/package/src/components/Dialog/FormDialog.vue +1 -1
  20. package/dist/package/src/components/Dict/index.vue +21 -7
  21. package/dist/package/src/components/Dict/value.ts +18 -0
  22. package/dist/package/src/components/ImportExcel/index.vue +10 -10
  23. package/dist/package/src/components/LocaleSwitch/index.vue +1 -1
  24. package/dist/package/src/components/ProForm/components/DynamicList.vue +1 -1
  25. package/dist/package/src/components/ProForm/components/KvList.vue +2 -2
  26. package/dist/package/src/components/ProForm/index.vue +2 -2
  27. package/dist/package/src/components/ProTable/components/ColSetting.vue +3 -3
  28. package/dist/package/src/components/ProTable/components/TableColumn.vue +1 -1
  29. package/dist/package/src/components/ProTable/index.vue +4 -4
  30. package/dist/package/src/components/SearchForm/components/SearchFormItem.vue +2 -2
  31. package/dist/package/src/components/SelectFilter/index.vue +1 -1
  32. package/dist/package/src/components/TreeFilter/index.vue +4 -4
  33. package/dist/package/src/components/Upload/File.vue +6 -6
  34. package/dist/package/src/components/Upload/Files.vue +7 -7
  35. package/dist/package/src/components/Upload/Img.vue +4 -4
  36. package/dist/package/src/components/Upload/Imgs.vue +5 -5
  37. package/dist/package/src/components/WangEditor/index.vue +1 -1
  38. package/dist/package/src/hooks/useDownload.ts +1 -1
  39. package/dist/package/src/hooks/useHandleData.ts +2 -2
  40. package/dist/package/src/hooks/useTheme.ts +1 -1
  41. package/dist/package/src/layouts/components/Header/components/AssemblySize.vue +1 -1
  42. package/dist/package/src/layouts/components/Header/components/Avatar.vue +5 -5
  43. package/dist/package/src/layouts/components/Header/components/Breadcrumb.vue +2 -2
  44. package/dist/package/src/layouts/components/Header/components/Fullscreen.vue +2 -2
  45. package/dist/package/src/layouts/components/Header/components/PasswordDialog.vue +1 -1
  46. package/dist/package/src/layouts/components/Header/components/SearchMenu.vue +3 -3
  47. package/dist/package/src/layouts/components/Main/index.vue +1 -0
  48. package/dist/package/src/layouts/components/Tabs/components/MoreButton.vue +5 -5
  49. package/dist/package/src/layouts/components/Tabs/index.vue +15 -1
  50. package/dist/package/src/layouts/components/ThemeDrawer/index.vue +7 -7
  51. package/dist/package/src/locales/README.md +2 -2
  52. package/dist/package/src/locales/en-US.json +142 -117
  53. package/dist/package/src/locales/es-ES.json +226 -201
  54. package/dist/package/src/locales/fr-FR.json +226 -201
  55. package/dist/package/src/locales/generated.ts +57 -0
  56. package/dist/package/src/locales/index.ts +54 -55
  57. package/dist/package/src/locales/ja-JP.json +177 -152
  58. package/dist/package/src/locales/ko-KR.json +221 -196
  59. package/dist/package/src/locales/zh-CN.json +142 -117
  60. package/dist/package/src/locales/zh-TW.json +147 -122
  61. package/dist/package/src/modules/kratosAdmin.ts +3 -17
  62. package/dist/package/src/routers/modules/dynamicRouter.ts +4 -4
  63. package/dist/package/src/routers/modules/staticRouter.ts +2 -2
  64. package/dist/package/src/rpc/base/v1/config.ts +12 -1
  65. package/dist/package/src/rpc/base/v1/language.ts +7 -13
  66. package/dist/package/src/rpc/base/v1/login.ts +14 -1
  67. package/dist/package/src/rpc/system/admin/v1/auth.ts +1 -1
  68. package/dist/package/src/rpc/system/admin/v1/base_dict.ts +7 -79
  69. package/dist/package/src/rpc/system/admin/v1/base_translation.ts +54 -81
  70. package/dist/package/src/rpc/system/admin/v1/common.ts +21 -0
  71. package/dist/package/src/stores/modules/config.ts +2 -2
  72. package/dist/package/src/stores/modules/user.ts +1 -1
  73. package/dist/package/src/styles/element.scss +2 -0
  74. package/dist/package/src/utils/color.ts +4 -4
  75. package/dist/package/src/utils/eleValidate.ts +2 -2
  76. package/dist/package/src/utils/index.ts +3 -3
  77. package/dist/package/src/utils/passwordCrypto.ts +2 -2
  78. package/dist/package/src/utils/request.ts +6 -6
  79. package/dist/package/src/views/login/components/LoginForm.vue +15 -12
  80. package/package.json +2 -2
  81. package/vite.config.ts +12 -8
  82. package/dist/package/declarations/src/rpc/base/v1/enum.d.ts +0 -43
  83. package/dist/package/declarations/src/rpc/system/common/v1/enum.d.ts +0 -67
  84. package/dist/package/src/rpc/base/v1/enum.ts +0 -54
  85. package/dist/package/src/rpc/system/common/v1/enum.ts +0 -80
@@ -2,257 +2,282 @@
2
2
  "common.action.back": "Retour",
3
3
  "common.action.cancel": "Annuler",
4
4
  "common.action.close": "Fermer",
5
- "common.action.confirm": "OK",
6
- "common.action.create": "Nouveau",
5
+ "common.action.confirm": "Confirmer",
6
+ "common.action.create": "Créer",
7
7
  "common.action.delete": "Supprimer",
8
8
  "common.action.download": "Télécharger",
9
- "common.action.edit": "Éditeur",
10
- "common.action.expand": "Agrandir",
11
- "common.action.collapse": "Fermer",
12
- "common.action.login": "Connexion",
9
+ "common.action.edit": "Modifier",
10
+ "common.action.expand": "Développer",
11
+ "common.action.collapse": "Réduire",
12
+ "common.action.login": "Se connecter",
13
13
  "common.action.logout": "Se déconnecter",
14
14
  "common.action.reset": "Réinitialiser",
15
- "common.action.retry": "Réessayez",
16
15
  "common.action.save": "Enregistrer",
17
16
  "common.action.search": "Rechercher",
18
- "common.action.upload": "Télécharger",
19
- "common.action.view": "Voir",
20
- "common.field.endTime": "heure de fin",
17
+ "common.action.view": "Afficher",
18
+ "common.field.end_time": "Heure de fin",
21
19
  "common.field.language": "Langue",
22
- "common.field.operation": "Fonctionnement",
23
- "common.field.parameterName": "nom du paramètre\nvaleur du paramètre",
24
- "common.field.parameterValue": "Parameter value",
25
- "common.field.phone": "Numéro de portable",
26
- "common.field.startTime": "Heure de début",
20
+ "common.field.operation": "Actions",
21
+ "common.field.parameter_name": "Nom du paramètre",
22
+ "common.field.parameter_value": "Valeur du paramètre",
23
+ "common.field.phone": "Numéro de téléphone",
24
+ "common.field.start_time": "Heure de début",
27
25
  "common.language.en-US": "Anglais",
28
26
  "common.language.ja-JP": "Japonais",
29
27
  "common.language.zh-CN": "Chinois simplifié",
30
28
  "common.language.zh-TW": "Chinois traditionnel",
31
- "common.language.ko-KR": "coréen",
29
+ "common.language.ko-KR": "Coréen",
32
30
  "common.language.fr-FR": "Français",
33
31
  "common.language.es-ES": "Espagnol",
34
- "common.message.loading": "Chargement",
35
- "common.message.noData": "Aucune donnée pour l'instant",
36
- "common.message.operationSuccess": "Opération réussie",
37
- "common.message.systemError": "Erreur système",
38
- "common.message.unknown": "Traitement impossible pour le moment, veuillez réessayer plus tard",
39
- "common.validation.phoneInvalid": "Veuillez saisir le numéro de téléphone portable correct",
40
- "common.validation.phoneRequired": "Veuillez saisir votre numéro de portable",
41
- "common.title.notice": "Conseils",
42
- "common.title.warning": "Rappel chaleureux",
43
- "common.placeholder.input": "Veuillez entrer",
44
- "common.placeholder.inputContent": "Veuillez saisir le contenu",
45
- "common.placeholder.select": "Veuillez sélectionner",
32
+ "common.message.no_data": "Aucune donnée",
33
+ "common.message.operation_success": "Opération terminée",
34
+ "common.message.system_error": "Erreur système",
35
+ "common.validation.phone_invalid": "Saisissez un numéro de téléphone valide",
36
+ "common.validation.phone_required": "Saisissez un numéro de téléphone",
37
+ "common.title.notice": "Avis",
38
+ "common.title.warning": "Confirmation",
39
+ "common.placeholder.input": "Saisissez une valeur",
40
+ "common.placeholder.input_content": "Saisissez le contenu",
41
+ "common.placeholder.select": "Sélectionnez une valeur",
46
42
  "common.status.disabled": "Désactivé",
47
- "common.status.enabled": "activer",
43
+ "common.status.enabled": "Activé",
48
44
  "common.value.female": "Femme",
49
45
  "common.value.male": "Homme",
50
46
  "common.value.all": "Tous",
51
- "core.auth.loginAgain": "Connectez-vous à nouveau",
52
- "core.auth.refreshTokenMissing": "Le jeton d'actualisation n'existe pas",
53
- "core.auth.sessionExpired": "Le statut de connexion a expiré, veuillez vous reconnecter",
54
- "core.auth.noMenuPermission": "Le compte actuel ne dispose d'aucune autorisation de menu, veuillez contacter l'administrateur système",
55
- "core.auth.noPermission": "Aucune autorisation d'accès",
56
- "core.clipboard.success": "Copié avec succès",
57
- "core.cron.cycleUnit.day": "jours",
58
- "core.cron.cycleUnit.hour": "heures",
59
- "core.cron.cycleUnit.minute": "minutes",
60
- "core.cron.cycleUnit.month": "mois",
61
- "core.cron.cycleUnit.second": "secondes",
62
- "core.cron.cycleUnit.year": "année",
63
- "core.cron.description.every": "par {unit}",
64
- "core.cron.description.range": "{segment}{start} à {end}",
65
- "core.cron.description.specific": "{segment} est spécifié comme {values}",
66
- "core.cron.description.step": "Exécuté tous les {step}{cycleUnit} à partir de {start}{unit}",
67
- "core.cron.description.unspecified": "{segment} Non précisé",
68
- "core.cron.description.weekday": "Le jour ouvrable le plus récent du mois {day}",
69
- "core.cron.descriptionSeparator": ",",
47
+ "core.auth.login_again": "Se reconnecter",
48
+ "core.auth.refresh_token_missing": "Le jeton dactualisation est manquant",
49
+ "core.auth.session_expired": "Votre session a expiré. Veuillez vous reconnecter.",
50
+ "core.auth.no_menu_permission": "Ce compte n’a aucun droit de menu. Contactez un administrateur.",
51
+ "core.auth.no_permission": "Accès refusé",
52
+ "core.clipboard.success": "Copié",
53
+ "core.cron.cycle_unit.day": "jours",
54
+ "core.cron.cycle_unit.hour": "heures",
55
+ "core.cron.cycle_unit.minute": "minutes",
56
+ "core.cron.cycle_unit.month": "mois",
57
+ "core.cron.cycle_unit.second": "secondes",
58
+ "core.cron.cycle_unit.year": "ans",
59
+ "core.cron.description.every": "Chaque {unit}",
60
+ "core.cron.description.range": "{segment} de {start} à {end}",
61
+ "core.cron.description.specific": "{segment} : {values}",
62
+ "core.cron.description.step": "À partir de {start} {unit}, exécuter toutes les {step} {cycleUnit}",
63
+ "core.cron.description.unspecified": "{segment} non défini",
64
+ "core.cron.description.weekday": "Jour ouvré le plus proche du {day} de ce mois",
65
+ "core.cron.description_separator": "; ",
70
66
  "core.cron.edit": "Modifier l'expression",
71
- "core.cron.everyUnit": "par {unit}",
67
+ "core.cron.every_unit": "Chaque {unit}",
72
68
  "core.cron.expression": "Expression Cron",
73
- "core.cron.from": "de",
74
- "core.cron.lastDay": "Dernier jour du mois\nLe jour ouvrable le plus récent du",
75
- "core.cron.nearestWorkday": "nearest weekday",
76
- "core.cron.notConfigured": "Aucune règle d'exécution configurée",
77
- "core.cron.placeholder": "Veuillez saisir une expression Cron",
78
- "core.cron.preset.dailyEight": "Exécuter tous les jours à 8h00",
79
- "core.cron.preset.dailyMidnight": "Exécuté à 0h00 tous les jours",
80
- "core.cron.preset.everyFiveMinutes": "Exécuter toutes les 5 minutes",
81
- "core.cron.preset.everyHour": "Exécuter toutes les heures",
82
- "core.cron.preset.everyMinute": "Exécuter toutes les minutes",
83
- "core.cron.preset.monthlyFirst": "Exécuté à 0h00 le 1er de chaque mois",
84
- "core.cron.preset.nextYearDaily": "sera exécuté à minuit tous les jours l'année prochaine",
69
+ "core.cron.from": "à partir de",
70
+ "core.cron.last_day": "Dernier jour de ce mois",
71
+ "core.cron.nearest_workday": "jour ouvré le plus proche",
72
+ "core.cron.not_configured": "Aucune planification configurée",
73
+ "core.cron.placeholder": "Saisissez une expression Cron",
74
+ "core.cron.preset.daily_eight": "Tous les jours à 8 h",
75
+ "core.cron.preset.daily_midnight": "Tous les jours à minuit",
76
+ "core.cron.preset.every_five_minutes": "Toutes les 5 minutes",
77
+ "core.cron.preset.every_hour": "Toutes les heures",
78
+ "core.cron.preset.every_minute": "Toutes les minutes",
79
+ "core.cron.preset.monthly_first": "Le 1er de chaque mois à minuit",
80
+ "core.cron.preset.next_year_daily": "Tous les jours de l'année prochaine à minuit",
85
81
  "core.cron.presets": "Expressions courantes",
86
- "core.cron.range": "Cycle\nBoucle",
87
- "core.cron.repeat": "Repeat",
88
- "core.cron.runOnce": "{unit} Exécuter une fois",
89
- "core.cron.segment.day": "Date",
90
- "core.cron.segment.hour": "heures",
91
- "core.cron.segment.minute": "minutes",
82
+ "core.cron.range": "Plage",
83
+ "core.cron.repeat": "Répéter",
84
+ "core.cron.run_once": "Exécuter une fois par {unit}",
85
+ "core.cron.segment.day": "Jour",
86
+ "core.cron.segment.hour": "Heure",
87
+ "core.cron.segment.minute": "Minute",
92
88
  "core.cron.segment.month": "Mois",
93
- "core.cron.segment.second": "secondes",
89
+ "core.cron.segment.second": "Seconde",
94
90
  "core.cron.segment.year": "Année",
95
- "core.cron.specific": "spécifié",
96
- "core.cron.startEvery": "{unit} démarre tous les",
97
- "core.cron.thisMonth": "Ce mois-ci",
98
- "core.cron.title": "Modifier l'expression de synchronisation",
91
+ "core.cron.specific": "Spécifique",
92
+ "core.cron.start_every": "{unit}, toutes les",
93
+ "core.cron.this_month": "Jour de ce mois",
94
+ "core.cron.title": "Modifier l'expression de planification",
99
95
  "core.cron.to": "à",
100
96
  "core.cron.unit.day": "jour",
101
97
  "core.cron.unit.hour": "heure",
102
- "core.cron.unit.minute": "points",
98
+ "core.cron.unit.minute": "minute",
103
99
  "core.cron.unit.month": "mois",
104
- "core.cron.unit.second": "secondes",
105
- "core.cron.unit.year": "année",
106
- "core.cron.unspecified": "Non précisé",
107
- "core.cron.valueSeparator": ",",
108
- "core.cron.valueWithUnit": "{value}{unit}",
109
- "core.cron.workday": "jours ouvrés\nEst-ce que",
110
- "core.data.confirmAction": "{action} ?",
111
- "core.data.operationSuccess": "{action} Succès",
112
- "core.download.largeFileNotice": "Lorsque la quantité de données est importante, le téléchargement sera plus lent, veuillez patienter.",
113
- "core.error.403.detail": "Désolé, vous n'êtes pas autorisé à accéder à cette page",
114
- "core.error.403.title": "Accès restreint",
115
- "core.error.404.detail": "Désolé, la page que vous avez visitée n'existe pas\nLa page",
116
- "core.error.404.title": "n'existe pas",
117
- "core.error.500.detail": "Désolé, une erreur de serveur s'est produite",
118
- "core.error.500.title": "Erreur de serveur",
119
- "core.error.pending.detail": "Cette fonction de page est en construction",
120
- "core.error.pending.title": "Restez à l'écoute",
121
- "core.error.javascript.eval": "Erreur d'utilisation d'évaluation",
100
+ "core.cron.unit.second": "seconde",
101
+ "core.cron.unit.year": "an",
102
+ "core.cron.unspecified": "Non défini",
103
+ "core.cron.value_separator": ", ",
104
+ "core.cron.value_with_unit": "{value} {unit}",
105
+ "core.cron.workday": "Jour ouvré",
106
+ "core.data.confirm_action": "Voulez-vous vraiment {action} ?",
107
+ "core.data.operation_success": "{action} terminé",
108
+ "core.download.large_file_notice": "Le téléchargement de gros volumes de données peut prendre plus de temps. Veuillez patienter.",
109
+ "core.error.403.detail": "Vous n’avez pas l’autorisation d’accéder à cette page.",
110
+ "core.error.404.detail": "La page demandée n’existe pas.",
111
+ "core.error.500.detail": "Le serveur a rencontré une erreur.",
112
+ "core.error.pending.detail": "Cette fonctionnalité est en cours de développement.",
113
+ "core.error.javascript.eval": "Utilisation invalide de Eval",
122
114
  "core.error.javascript.internal": "Erreur interne du moteur JavaScript",
123
- "core.error.javascript.range": "Le paramètre dépasse la plage autorisée",
115
+ "core.error.javascript.range": "Le paramètre est hors limites",
124
116
  "core.error.javascript.reference": "Objet introuvable",
125
117
  "core.error.javascript.syntax": "Erreur de syntaxe",
126
- "core.error.javascript.type": "Mauvais type ou objet utilisé",
118
+ "core.error.javascript.type": "Type ou objet invalide",
127
119
  "core.error.javascript.unknown": "Erreur inconnue",
128
- "core.error.javascript.uri": "Erreur d'URI",
120
+ "core.error.javascript.uri": "Erreur dURI",
129
121
  "core.header.fullscreen": "Plein écran",
130
- "core.header.fullscreenExit": "Quitter le plein écran",
131
- "core.header.fullscreenUnsupported": "Le navigateur actuel ne prend pas en charge le plein écran",
122
+ "core.header.fullscreen_exit": "Quitter le plein écran",
123
+ "core.header.fullscreen_unsupported": "Le plein écran n’est pas pris en charge par ce navigateur",
132
124
  "core.header.language": "Changer de langue",
133
- "core.header.menuSearch": "Recherche par menu",
134
- "core.header.menuSearchEmpty": "Pas encore de menu",
135
- "core.header.menuSearchPlaceholder": "Recherche de menu : prend en charge le nom et le chemin du menu",
125
+ "core.header.menu_search": "Rechercher dans les menus",
126
+ "core.header.menu_search_empty": "Aucun menu trouvé",
127
+ "core.header.menu_search_placeholder": "Rechercher par nom ou chemin du menu",
136
128
  "core.header.size.default": "Par défaut",
137
129
  "core.header.size.large": "Grand",
138
130
  "core.header.size.small": "Petit",
139
- "core.header.sizeSelect": "Taille du composant",
131
+ "core.header.size_select": "Taille du composant",
140
132
  "core.header.theme": "Paramètres du thème",
141
- "core.icon.empty": "L'icône que vous recherchez est introuvable",
142
- "core.icon.placeholder": "Veuillez sélectionner une icône",
143
- "core.icon.search": "Icône de recherche",
144
- "core.layout.departmentUnassigned": "Département non attribué",
133
+ "core.icon.empty": "Aucune icône correspondante",
134
+ "core.icon.placeholder": "Sélectionnez une icône",
135
+ "core.icon.search": "Rechercher des icônes",
136
+ "core.layout.department_unassigned": "Aucun département attribué",
145
137
  "core.layout.home": "Accueil",
146
138
  "core.layout.info": "Informations personnelles",
147
- "core.layout.passwordChange": "Changer le mot de passe",
148
- "core.layout.unnamedMenu": "Menu sans nom",
149
- "core.layout.logoutConfirm": "Êtes-vous sûr de vous déconnecter ?",
150
- "core.layout.logoutSuccess": "Déconnexion réussie",
151
- "core.layout.notSet": "non défini",
152
- "core.layout.profile": "Centre personnel",
153
- "core.layout.roleUnassigned": "Aucun rôle attribué",
154
- "core.login.behaviorClick": "Veuillez cliquer sur le texte dans l'ordre",
155
- "core.login.behaviorConfirm": "Confirmer",
156
- "core.login.behaviorPuzzle": "Veuillez faire glisser le curseur pour terminer le puzzle",
157
- "core.login.behaviorRotate": "Faites glisser le curseur pour corriger l'image du cercle intérieur",
158
- "core.login.captcha": "Veuillez saisir le code de vérification",
159
- "core.login.captchaAlt": "Code de vérification",
160
- "core.login.greeting.afternoon": "Bonjour",
139
+ "core.layout.password_change": "Modifier le mot de passe",
140
+ "core.layout.unnamed_menu": "Menu sans nom",
141
+ "core.layout.logout_confirm": "Voulez-vous vraiment vous déconnecter ?",
142
+ "core.layout.logout_success": "Déconnecté",
143
+ "core.layout.not_set": "Non défini",
144
+ "core.layout.role_unassigned": "Aucun rôle attribué",
145
+ "core.login.behavior_click": "Cliquez sur les caractères dans l'ordre",
146
+ "core.login.behavior_confirm": "Confirmer",
147
+ "core.login.behavior_puzzle": "Faites glisser le curseur pour terminer le puzzle",
148
+ "core.login.behavior_rotate": "Faites glisser le curseur pour remettre l'image intérieure à l'endroit",
149
+ "core.login.captcha": "Saisissez le code de vérification",
150
+ "core.login.captcha_alt": "Code de vérification",
151
+ "core.login.greeting.afternoon": "Bon après-midi",
161
152
  "core.login.greeting.evening": "Bonsoir",
162
153
  "core.login.greeting.morning": "Bonjour",
163
154
  "core.login.greeting.night": "Bonjour",
164
- "core.login.greeting.noon": "Bonjour",
165
- "core.login.otherMethods": "Autres méthodes de connexion",
166
- "core.login.password": "Veuillez saisir le mot de passe",
167
- "core.login.tenantCode": "Veuillez saisir le code locataire",
168
- "core.login.userName": "Veuillez saisir votre nom d'utilisateur",
169
- "core.login.welcome": "Bienvenue pour vous connecter à l'arrière-plan de gestion",
155
+ "core.login.greeting.noon": "Bon après-midi",
156
+ "core.login.other_methods": "Autres méthodes de connexion",
157
+ "core.login.password": "Saisissez le mot de passe",
158
+ "core.login.tenant_code": "Saisissez le code du locataire",
159
+ "core.login.user_name": "Saisissez le nom d'utilisateur",
160
+ "core.login.welcome": "Bienvenue dans la console d'administration",
170
161
  "core.oauth.dingtalk": "DingTalk",
171
162
  "core.oauth.feishu": "Feishu",
172
163
  "core.oauth.wechat": "WeChat",
173
- "core.oauth.wechatmp": "Compte public WeChat",
174
- "core.oauth.wechatwork": "Entreprise WeChat",
175
- "core.oauth.unknown": "Voie inconnue",
176
- "core.password.error": "Le mot de passe doit contenir des lettres majuscules et minuscules, des chiffres et des caractères spéciaux, et ne doit pas comporter moins de 8 caractères.",
177
- "core.password.cryptoUnsupported": "L'environnement actuel ne prend pas en charge le cryptage des mots de passe",
178
- "core.password.required": "Le mot de passe ne peut pas être vide",
164
+ "core.oauth.wechatmp": "Compte officiel WeChat",
165
+ "core.oauth.wechatwork": "WeCom",
166
+ "core.oauth.unknown": "Fournisseur inconnu",
167
+ "core.password.error": "Le mot de passe doit contenir des majuscules, des minuscules, un chiffre et un caractère spécial, et comporter au moins 8 caractères.",
168
+ "core.password.crypto_unsupported": "Le chiffrement des mots de passe n’est pas pris en charge dans cet environnement",
169
+ "core.password.required": "Le mot de passe est obligatoire",
179
170
  "core.password.strength": "Force du mot de passe",
180
- "core.password.strength.empty": "Non renseigné",
181
- "core.password.strength.high": "Élevé",
171
+ "core.password.strength.empty": "Non saisie",
172
+ "core.password.strength.high": "Élevée",
182
173
  "core.password.strength.low": "Faible",
183
- "core.password.strength.medium": "Moyen",
184
- "core.password.tip": "doit contenir des lettres majuscules et minuscules, des chiffres et des caractères spéciaux, et ne doit pas comporter moins de 8 caractères. Il ne doit être soumis qu'après avoir atteint la force la plus élevée.",
185
- "core.theme.accordion": "Menu Accordéon",
186
- "core.theme.asideInverted": "Couleur d'inversion de la barre latérale",
187
- "core.theme.asideInvertedTip": "La couleur de la barre latérale passe en mode sombre",
188
- "core.theme.breadcrumb": "Fil d'Ariane",
189
- "core.theme.breadcrumbIcon": "Icône de fil d'Ariane",
190
- "core.theme.color": "couleur du thème",
174
+ "core.password.strength.medium": "Moyenne",
175
+ "core.password.tip": "Utilisez au moins 8 caractères avec des majuscules, des minuscules, un chiffre et un caractère spécial. Le mot de passe doit atteindre une force élevée avant l’envoi.",
176
+ "core.theme.accordion": "Menu accordéon",
177
+ "core.theme.aside_inverted": "Barre latérale sombre",
178
+ "core.theme.aside_inverted_tip": "Utiliser des couleurs sombres pour la barre latérale",
179
+ "core.theme.breadcrumb": "Fil dAriane",
180
+ "core.theme.breadcrumb_icon": "Icônes du fil dAriane",
181
+ "core.theme.color": "Couleur du thème",
191
182
  "core.theme.dark": "Mode sombre",
192
183
  "core.theme.footer": "Pied de page",
193
184
  "core.theme.global": "Thème global",
194
- "core.theme.grey": "Mode gris",
195
- "core.theme.headerInverted": "Couleur d'inversion de tête",
196
- "core.theme.headerInvertedTip": "La couleur de la tête passe en mode sombre",
197
- "core.theme.interface": "Paramètres de l'interface\nStyle de mise en page",
198
- "core.theme.layout": "Layout",
185
+ "core.theme.grey": "Mode niveaux de gris",
186
+ "core.theme.header_inverted": "En-tête sombre",
187
+ "core.theme.header_inverted_tip": "Utiliser des couleurs sombres pour l’en-tête",
188
+ "core.theme.interface": "Paramètres de linterface",
189
+ "core.theme.layout": "Mise en page",
199
190
  "core.theme.layout.classic": "Classique",
200
- "core.theme.layout.columns": "Colonne",
201
- "core.theme.layout.transverse": "Horizontal",
202
- "core.theme.layout.vertical": "portrait",
203
- "core.theme.menuCollapse": "Réduire le menu",
204
- "core.theme.primaryReset": "Les couleurs du thème ont été réinitialisées à {color}\nParamètres de mise en page",
205
- "core.theme.settings": "Layout settings",
206
- "core.theme.tabs": "Barre d'onglets",
207
- "core.theme.tabsIcon": "Icône de la barre d'onglets",
208
- "core.theme.watermark": "filigrane",
209
- "core.theme.weak": "Mode faiblesse des couleurs",
210
- "core.theme.colorHexInvalid": "Veuillez entrer la valeur de couleur hexadécimale correcte",
211
- "core.theme.colorRgbInvalid": "Veuillez saisir la valeur de couleur RVB correcte",
212
- "core.route.forbidden": "403 pages",
213
- "core.route.login": "Connexion",
214
- "core.route.notFound": "404 pages",
215
- "core.route.serverError": "500 pages",
216
- "core.tabs.closeAll": "Fermer tout",
217
- "core.tabs.closeCurrent": "Fermer le courant",
218
- "core.tabs.closeLeft": "Fermer à gauche",
219
- "core.tabs.closeOther": "Fermer autre",
220
- "core.tabs.closeRight": "Fermer à droite",
191
+ "core.theme.layout.columns": "Colonnes",
192
+ "core.theme.layout.transverse": "Transversal",
193
+ "core.theme.layout.vertical": "Vertical",
194
+ "core.theme.menu_collapse": "Réduire le menu",
195
+ "core.theme.primary_reset": "Couleur du thème réinitialisée à {color}",
196
+ "core.theme.settings": "Paramètres de mise en page",
197
+ "core.theme.tabs": "Onglets",
198
+ "core.theme.tabs_icon": "Icônes des onglets",
199
+ "core.theme.watermark": "Filigrane",
200
+ "core.theme.weak": "Mode daltonisme",
201
+ "core.theme.color_hex_invalid": "Saisissez une couleur hexadécimale valide",
202
+ "core.theme.color_rgb_invalid": "Saisissez une couleur RGB valide",
203
+ "core.route.forbidden": "Page 403",
204
+ "core.route.login": "Se connecter",
205
+ "core.route.not_found": "Page 404",
206
+ "core.route.server_error": "Page 500",
207
+ "core.tabs.close_all": "Tout fermer",
208
+ "core.tabs.close_current": "Fermer l’onglet actuel",
209
+ "core.tabs.close_left": "Fermer les onglets à gauche",
210
+ "core.tabs.close_other": "Fermer les autres onglets",
211
+ "core.tabs.close_right": "Fermer les onglets à droite",
221
212
  "core.tabs.maximize": "Maximiser",
222
- "core.tabs.refresh": "Actualiser le courant",
223
- "core.table.collapseAll": "Tout réduire",
224
- "core.table.columnName": "nom de la colonne\nParamètres de la colonne",
225
- "core.table.columnSetting": "Column settings",
226
- "core.table.expandAll": "Tout développer",
227
- "core.table.hideSearch": "Masquer la recherche",
228
- "core.table.noConfigurableColumns": "Il n'y a actuellement aucune colonne de configuration",
213
+ "core.tabs.refresh": "Actualiser",
214
+ "core.table.collapse_all": "Tout réduire",
215
+ "core.table.column_name": "Colonne",
216
+ "core.table.column_setting": "Paramètres des colonnes",
217
+ "core.table.expand_all": "Tout développer",
218
+ "core.table.hide_search": "Masquer la recherche",
219
+ "core.table.no_configurable_columns": "Aucune colonne configurable",
229
220
  "core.table.refresh": "Actualiser les données",
230
- "core.table.show": "spectacle",
231
- "core.table.showSearch": "Afficher la recherche",
232
- "core.table.sort": "Trier",
233
- "core.tree.filterPlaceholder": "Saisissez les mots-clés à filtrer",
234
- "core.tree.resetSelection": "Réinitialiser la sélection",
235
- "core.upload.action": "Télécharger le fichier",
236
- "core.upload.batchAdd": "Ajouter {resource} par lots",
237
- "core.upload.batchFailed": "L'ajout par lots de {resource} a échoué. Veuillez télécharger à nouveau.",
238
- "core.upload.batchSuccess": "Ajout par lots de {resource} réussi",
239
- "core.upload.click": "Cliquez pour télécharger",
240
- "core.upload.dataCover": "Écrasement des données",
241
- "core.upload.dragOrClick": "Faites glisser les fichiers ici, ou",
242
- "core.upload.excelFormat": "Veuillez télécharger des fichiers au format standard .xls, .xlsx, la taille maximale du fichier est de {size} Mo.",
243
- "core.upload.file": "Téléchargement de fichiers",
244
- "core.upload.fileFailed": "Échec du téléchargement du fichier, veuillez le télécharger à nouveau",
245
- "core.upload.fileFormatInvalid": "Le fichier téléchargé ne répond pas au format requis",
246
- "core.upload.fileSizeExceeded": "La taille du fichier téléchargé ne peut pas dépasser {size} Mo.",
247
- "core.upload.fileSuccess": "Fichier téléchargé avec succès",
248
- "core.upload.imageFailed": "Échec du téléchargement de l'image, veuillez télécharger à nouveau",
249
- "core.upload.imageFormatInvalid": "L'image téléchargée ne répond pas au format requis",
250
- "core.upload.imageLimitExceeded": "Actuellement, seules {limit} photos peuvent être téléchargées au maximum. Veuillez les supprimer avant de les télécharger.",
251
- "core.upload.imageSizeExceeded": "La taille de l'image téléchargée ne peut pas dépasser {size} Mo",
252
- "core.upload.imageSuccess": "Photo téléchargée avec succès",
253
- "core.upload.limitExceeded": "Actuellement, seuls {limit} fichiers peuvent être téléchargés au maximum. Veuillez les supprimer avant de les télécharger.",
254
- "core.upload.singleFileOnly": "Un seul fichier peut être téléchargé\nModèle",
255
- "core.upload.template": "{resource}",
256
- "core.upload.templateDownload": "Téléchargement du modèle",
257
- "core.upload.unnamedFile": "Fichier sans nom"
221
+ "core.table.show": "Visible",
222
+ "core.table.show_search": "Afficher la recherche",
223
+ "core.table.sort": "Triable",
224
+ "core.tree.filter_placeholder": "Saisissez des mots-clés à filtrer",
225
+ "core.tree.reset_selection": "Réinitialiser la sélection",
226
+ "core.upload.action": "Téléverser un fichier",
227
+ "core.upload.batch_add": "Ajouter {resource} par lot",
228
+ "core.upload.batch_failed": "Échec de l’ajout groupé de {resource}. Téléversez à nouveau le fichier.",
229
+ "core.upload.batch_success": "{resource} ajouté avec succès",
230
+ "core.upload.click": "cliquez pour téléverser",
231
+ "core.upload.data_cover": "Écraser les données",
232
+ "core.upload.drag_or_click": "Déposez un fichier ici ou ",
233
+ "core.upload.excel_format": "Téléversez un fichier .xls ou .xlsx standard de {size} Mo maximum",
234
+ "core.upload.file": "Téléversement de fichier",
235
+ "core.upload.file_failed": "Échec du téléversement. Réessayez.",
236
+ "core.upload.file_format_invalid": "Le format du fichier n’est pas pris en charge",
237
+ "core.upload.file_size_exceeded": "Le fichier ne doit pas dépasser {size} Mo",
238
+ "core.upload.file_success": "Fichier téléversé",
239
+ "core.upload.image_failed": "Échec du téléversement de limage. Réessayez.",
240
+ "core.upload.image_format_invalid": "Le format de l’image n’est pas pris en charge",
241
+ "core.upload.image_limit_exceeded": "Vous pouvez téléverser jusqu’à {limit} images. Supprimez-en une avant d’en téléverser une autre.",
242
+ "core.upload.image_size_exceeded": "L’image ne doit pas dépasser {size} Mo",
243
+ "core.upload.image_success": "Image téléversée",
244
+ "core.upload.limit_exceeded": "Vous pouvez téléverser jusqu’à {limit} fichiers. Supprimez-en un avant d’en téléverser un autre.",
245
+ "core.upload.single_file_only": "Un seul fichier peut être téléversé",
246
+ "core.upload.template": "Modèle de {resource}",
247
+ "core.upload.template_download": "Télécharger le modèle",
248
+ "core.upload.unnamed_file": "Fichier sans nom",
249
+ "common.action.create_resource": "Créer {resource}",
250
+ "common.action.edit_resource": "Modifier {resource}",
251
+ "common.action.refresh_cache": "Actualiser le cache",
252
+ "common.dialog.cancel_delete": "Suppression de {resource} annulée",
253
+ "common.dialog.delete_batch": "Supprimer les {count} {resource} {unit} sélectionnés ?",
254
+ "common.dialog.delete_selected": "Supprimer le {resource} sélectionné ?",
255
+ "common.dialog.delete_single": "Supprimer ce {resource} ?",
256
+ "common.dialog.resource_field": "{field} : {value}",
257
+ "common.dialog.status_change": "{action} ce {resource} ?\n{field} : {value}",
258
+ "common.field.created_at": "Créé le",
259
+ "common.field.remark": "Remarques",
260
+ "common.field.sort": "Ordre",
261
+ "common.field.status": "Statut",
262
+ "common.field.tenant": "Locataire",
263
+ "common.field.updated_at": "Mis à jour le",
264
+ "common.message.create_success": "{resource} créé",
265
+ "common.message.delete_success": "{resource} supprimé",
266
+ "common.message.load_children_failed": "Échec du chargement des {resource} enfants",
267
+ "common.message.refresh_success": "Actualisé",
268
+ "common.message.select_delete_item": "Sélectionnez les éléments à supprimer",
269
+ "common.message.status_success": "{action} terminé",
270
+ "common.message.update_success": "{resource} mis à jour",
271
+ "common.placeholder.remark": "Saisissez des remarques",
272
+ "common.validation.max_length": "{field} ne doit pas dépasser {max} caractères",
273
+ "common.validation.required_input": "Saisissez {field}",
274
+ "common.validation.required_select": "Sélectionnez {field}",
275
+ "common.validation.sort_positive": "L’ordre doit être supérieur à 0",
276
+ "common.field.action": "Actions",
277
+ "common.placeholder.start_date": "Date de début",
278
+ "common.placeholder.end_date": "Date de fin",
279
+ "common.value.yes": "Oui",
280
+ "common.value.no": "Non",
281
+ "common.value.unknown": "Inconnu",
282
+ "common.value.none": "Aucun"
258
283
  }
@@ -0,0 +1,57 @@
1
+ /* 此文件由 scripts/sync_locales.py 生成,请勿手工修改。 */
2
+ import "dayjs/locale/zh-cn";
3
+ import "dayjs/locale/en";
4
+ import "dayjs/locale/es";
5
+ import "dayjs/locale/fr";
6
+ import "dayjs/locale/ja";
7
+ import "dayjs/locale/ko";
8
+ import "dayjs/locale/zh-tw";
9
+ import elementLocaleZhCn from "element-plus/es/locale/lang/zh-cn";
10
+ import elementLocaleEnUs from "element-plus/es/locale/lang/en";
11
+ import elementLocaleEsEs from "element-plus/es/locale/lang/es";
12
+ import elementLocaleFrFr from "element-plus/es/locale/lang/fr";
13
+ import elementLocaleJaJp from "element-plus/es/locale/lang/ja";
14
+ import elementLocaleKoKr from "element-plus/es/locale/lang/ko";
15
+ import elementLocaleZhTw from "element-plus/es/locale/lang/zh-tw";
16
+
17
+ import localeZhCn from "./zh-CN.json";
18
+ import localeEnUs from "./en-US.json";
19
+ import localeEsEs from "./es-ES.json";
20
+ import localeFrFr from "./fr-FR.json";
21
+ import localeJaJp from "./ja-JP.json";
22
+ import localeKoKr from "./ko-KR.json";
23
+ import localeZhTw from "./zh-TW.json";
24
+
25
+ export const LOCALE_MESSAGES = {
26
+ "zh-CN": localeZhCn,
27
+ "en-US": localeEnUs,
28
+ "es-ES": localeEsEs,
29
+ "fr-FR": localeFrFr,
30
+ "ja-JP": localeJaJp,
31
+ "ko-KR": localeKoKr,
32
+ "zh-TW": localeZhTw,
33
+ } as const satisfies Record<string, Record<string, string>>;
34
+
35
+ export type GeneratedLocale = keyof typeof LOCALE_MESSAGES;
36
+ export const DEFAULT_LOCALE: GeneratedLocale = "zh-CN";
37
+ export const SUPPORTED_LOCALES = Object.keys(LOCALE_MESSAGES) as GeneratedLocale[];
38
+
39
+ export const DAYJS_LOCALE_MAP: Record<string, string> = {
40
+ "zh-CN": "zh-cn",
41
+ "en-US": "en",
42
+ "es-ES": "es",
43
+ "fr-FR": "fr",
44
+ "ja-JP": "ja",
45
+ "ko-KR": "ko",
46
+ "zh-TW": "zh-tw",
47
+ };
48
+
49
+ export const ELEMENT_LOCALES = {
50
+ "zh-CN": elementLocaleZhCn,
51
+ "en-US": elementLocaleEnUs,
52
+ "es-ES": elementLocaleEsEs,
53
+ "fr-FR": elementLocaleFrFr,
54
+ "ja-JP": elementLocaleJaJp,
55
+ "ko-KR": elementLocaleKoKr,
56
+ "zh-TW": elementLocaleZhTw,
57
+ } as const;