pgkiln 0.57.0 → 0.59.0
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/docs/apex-feature-parity.md +1 -1
- package/docs/guide/03-builder.md +7 -3
- package/docs/guide/12-development.md +2 -1
- package/package.json +1 -1
- package/src/builder/i18n/de.ts +668 -0
- package/src/builder/i18n/en.ts +668 -0
- package/src/builder/i18n/es.ts +668 -0
- package/src/builder/i18n/fr.ts +668 -0
- package/src/builder/i18n/nl.ts +668 -0
- package/src/builder/i18n/pt.ts +668 -0
- package/src/builder/routes.ts +119 -117
- package/src/builder/shared.ts +88 -79
- package/src/builder/users.ts +123 -118
- package/src/builder/workspaces.ts +143 -135
package/src/builder/i18n/fr.ts
CHANGED
|
@@ -1043,4 +1043,672 @@ export const fr: BuilderMessages = {
|
|
|
1043
1043
|
'te.failed_stmt': 'Instruction en échec',
|
|
1044
1044
|
'te.title_table': 'Table {table}',
|
|
1045
1045
|
'te.title_create': 'Créer une table',
|
|
1046
|
+
// ------------------------------------------------------------ Shared Components (sprint 124)
|
|
1047
|
+
'comp.nav_entry': 'Entrée de navigation',
|
|
1048
|
+
'comp.nav_entry.plural': 'Menu de navigation',
|
|
1049
|
+
'comp.authz_scheme': 'Schéma d’autorisation',
|
|
1050
|
+
'comp.authz_scheme.plural': 'Schémas d’autorisation',
|
|
1051
|
+
'comp.build_option': 'Option de build',
|
|
1052
|
+
'comp.build_option.plural': 'Options de build',
|
|
1053
|
+
'comp.page_group': 'Groupe de pages',
|
|
1054
|
+
'comp.page_group.plural': 'Groupes de pages',
|
|
1055
|
+
'comp.lov': 'Liste de valeurs',
|
|
1056
|
+
'comp.lov.plural': 'Listes de valeurs',
|
|
1057
|
+
'comp.app_item': 'Élément d’application',
|
|
1058
|
+
'comp.app_item.plural': 'Éléments d’application',
|
|
1059
|
+
'comp.app_process': 'Processus d’application',
|
|
1060
|
+
'comp.app_process.plural': 'Processus d’application',
|
|
1061
|
+
'comp.app_computation': 'Calcul d’application',
|
|
1062
|
+
'comp.app_computation.plural': 'Calculs d’application',
|
|
1063
|
+
'comp.shortcut': 'Raccourci',
|
|
1064
|
+
'comp.shortcut.plural': 'Raccourcis',
|
|
1065
|
+
'comp.report_query': 'Requête de rapport',
|
|
1066
|
+
'comp.report_query.plural': 'Requêtes de rapport',
|
|
1067
|
+
'comp.component_group': 'Groupe de composants',
|
|
1068
|
+
'comp.component_group.plural': 'Groupes de composants',
|
|
1069
|
+
'comp.automation': 'Automatisation',
|
|
1070
|
+
'comp.automation.plural': 'Automatisations',
|
|
1071
|
+
'comp.automation_action': 'Action d’automatisation',
|
|
1072
|
+
'comp.automation_action.plural': 'Actions d’automatisation',
|
|
1073
|
+
'comp.report_layout': 'Mise en page de rapport',
|
|
1074
|
+
'comp.report_layout.plural': 'Mises en page de rapport',
|
|
1075
|
+
'comp.document_template': 'Modèle de document',
|
|
1076
|
+
'comp.document_template.plural': 'Modèles de document',
|
|
1077
|
+
'comp.task_definition': 'Définition de tâche',
|
|
1078
|
+
'comp.task_definition.plural': 'Définitions de tâche',
|
|
1079
|
+
'comp.workflow_definition': 'Workflow',
|
|
1080
|
+
'comp.workflow_definition.plural': 'Workflows',
|
|
1081
|
+
'comp.rest_module': 'Module REST',
|
|
1082
|
+
'comp.rest_module.plural': 'Modules REST',
|
|
1083
|
+
'comp.template_component': 'Composant de modèle',
|
|
1084
|
+
'comp.template_component.plural': 'Composants de modèle',
|
|
1085
|
+
'comp.web_credential': 'Identifiant web',
|
|
1086
|
+
'comp.web_credential.plural': 'Identifiants web',
|
|
1087
|
+
'comp.rest_source': 'Source de données REST',
|
|
1088
|
+
'comp.rest_source.plural': 'Sources de données REST',
|
|
1089
|
+
'comp.data_load_def': 'Définition de chargement',
|
|
1090
|
+
'comp.data_load_def.plural': 'Définitions de chargement',
|
|
1091
|
+
'comp.list': 'Liste',
|
|
1092
|
+
'comp.list.plural': 'Listes',
|
|
1093
|
+
'comp.list_entry': 'Entrée de liste',
|
|
1094
|
+
'comp.list_entry.plural': 'Entrées de liste',
|
|
1095
|
+
'comp.supporting_script': 'Script de support',
|
|
1096
|
+
'comp.supporting_script.plural': 'Objets de support',
|
|
1097
|
+
'comp.search_config': 'Configuration de recherche',
|
|
1098
|
+
'comp.search_config.plural': 'Configurations de recherche',
|
|
1099
|
+
'comp.email_template': 'Modèle d’e-mail',
|
|
1100
|
+
'comp.email_template.plural': 'Modèles d’e-mail',
|
|
1101
|
+
'comp.app_setting': 'Paramètre d’application',
|
|
1102
|
+
'comp.app_setting.plural': 'Paramètres d’application',
|
|
1103
|
+
'comp.dynamic_translation': 'Traduction dynamique',
|
|
1104
|
+
'comp.dynamic_translation.plural': 'Traductions dynamiques',
|
|
1105
|
+
'sc.group.logic': 'Logique de l’application',
|
|
1106
|
+
'sc.group.security': 'Sécurité',
|
|
1107
|
+
'sc.group.other': 'Autres composants',
|
|
1108
|
+
'sc.group.navigation': 'Navigation et recherche',
|
|
1109
|
+
'sc.group.ui': 'Interface utilisateur',
|
|
1110
|
+
'sc.group.files': 'Fichiers et rapports',
|
|
1111
|
+
'sc.group.data': 'Sources de données',
|
|
1112
|
+
'sc.group.workflows': 'Workflows et automatisations',
|
|
1113
|
+
'sc.group.globalization': 'Mondialisation',
|
|
1114
|
+
'sc.group.ai': 'IA générative',
|
|
1115
|
+
'sc.item.application_items': 'Éléments d’application',
|
|
1116
|
+
'sc.item.application_processes': 'Processus d’application',
|
|
1117
|
+
'sc.item.application_computations': 'Calculs d’application',
|
|
1118
|
+
'sc.item.application_settings': 'Paramètres d’application',
|
|
1119
|
+
'sc.item.build_options': 'Options de build',
|
|
1120
|
+
'sc.item.application_definition': 'Définition de l’application',
|
|
1121
|
+
'sc.item.access_control': 'Contrôle d’accès',
|
|
1122
|
+
'sc.item.authentication': 'Authentification',
|
|
1123
|
+
'sc.item.authorization_schemes': 'Schémas d’autorisation',
|
|
1124
|
+
'sc.item.security_attributes': 'Attributs de sécurité',
|
|
1125
|
+
'sc.item.sign_in_and_session_management': 'Connexion et gestion des sessions',
|
|
1126
|
+
'sc.item.lists_of_values': 'Listes de valeurs',
|
|
1127
|
+
'sc.item.lists': 'Listes',
|
|
1128
|
+
'sc.item.list_entries': 'Entrées de liste',
|
|
1129
|
+
'sc.item.email_templates': 'Modèles d’e-mail',
|
|
1130
|
+
'sc.item.shortcuts': 'Raccourcis',
|
|
1131
|
+
'sc.item.component_groups': 'Groupes de composants',
|
|
1132
|
+
'sc.item.supporting_objects': 'Objets de support',
|
|
1133
|
+
'sc.item.subscriptions': 'Abonnements',
|
|
1134
|
+
'sc.item.navigation_menu': 'Menu de navigation',
|
|
1135
|
+
'sc.item.navigation_bar_list': 'Liste de la barre de navigation',
|
|
1136
|
+
'sc.item.breadcrumbs': 'Fils d’Ariane',
|
|
1137
|
+
'sc.item.page_groups': 'Groupes de pages',
|
|
1138
|
+
'sc.item.search_configurations': 'Configurations de recherche',
|
|
1139
|
+
'sc.item.themes_and_theme_roller': 'Thèmes et Theme Roller',
|
|
1140
|
+
'sc.item.user_interface_attributes': 'Attributs de l’interface utilisateur',
|
|
1141
|
+
'sc.item.template_components': 'Composants de modèle',
|
|
1142
|
+
'sc.item.plug_ins': 'Plug-ins',
|
|
1143
|
+
'sc.item.component_settings': 'Paramètres des composants',
|
|
1144
|
+
'sc.item.progressive_web_app': 'Application web progressive',
|
|
1145
|
+
'sc.item.static_application_files': 'Fichiers statiques de l’application',
|
|
1146
|
+
'sc.item.report_layouts': 'Mises en page de rapport',
|
|
1147
|
+
'sc.item.report_queries': 'Requêtes de rapport',
|
|
1148
|
+
'sc.item.document_templates': 'Modèles de document',
|
|
1149
|
+
'sc.item.rest_data_sources': 'Sources de données REST',
|
|
1150
|
+
'sc.item.web_credentials': 'Identifiants web',
|
|
1151
|
+
'sc.item.restful_services': 'Services RESTful',
|
|
1152
|
+
'sc.item.data_load_definitions': 'Définitions de chargement',
|
|
1153
|
+
'sc.item.workflows': 'Workflows',
|
|
1154
|
+
'sc.item.task_definitions': 'Définitions de tâche',
|
|
1155
|
+
'sc.item.automations': 'Automatisations',
|
|
1156
|
+
'sc.item.translations_and_text_messages': 'Traductions et messages texte',
|
|
1157
|
+
'sc.item.dynamic_translations': 'Traductions dynamiques',
|
|
1158
|
+
'sc.item.globalization_attributes': 'Attributs de mondialisation',
|
|
1159
|
+
'sc.item.ai_services': 'Services d’IA',
|
|
1160
|
+
'sc.item.ai_agents': 'Agents d’IA',
|
|
1161
|
+
'sc.entries': 'Entrées',
|
|
1162
|
+
'sc.list_sql': 'Cette liste affiche les lignes de sa requête ; les entrées ci-dessous ne sont pas utilisées.',
|
|
1163
|
+
'sc.no_entries': 'Pas encore d’entrées.',
|
|
1164
|
+
'sc.add_entry': '+ Ajouter une entrée',
|
|
1165
|
+
'sc.breadcrumbs_help': 'Le fil d’Ariane d’une page liste les pages au-dessus : chaque page indique sa page parente (Page Designer → page → Breadcrumb parent). Les pages sans parent affichent Home.',
|
|
1166
|
+
'sc.cs_help': 'Valeurs par défaut des types de composants intégrés, utilisées quand un composant ne fixe rien lui-même. Vide : la valeur par défaut de pgkiln.',
|
|
1167
|
+
'sc.cs_now': '{help} {min}–{max} ; actuellement {now}.',
|
|
1168
|
+
'sc.cs_saved': 'Paramètres des composants enregistrés.',
|
|
1169
|
+
'sc.intro': 'Les composants que partagent les pages de {app}.',
|
|
1170
|
+
'sc.tree_view': 'Vue arborescente',
|
|
1171
|
+
'sc.create': 'Créer',
|
|
1172
|
+
'sc.search': 'Rechercher',
|
|
1173
|
+
'sc.name': 'Nom',
|
|
1174
|
+
'sc.details': 'Détails',
|
|
1175
|
+
'sc.nothing_matches': 'Aucun résultat.',
|
|
1176
|
+
'sc.none_yet': 'Pas encore de {what}.',
|
|
1177
|
+
'sc.count': '{n} sur {total}',
|
|
1178
|
+
'sc.new': 'Nouveau : {what}',
|
|
1179
|
+
'sc.save': 'Enregistrer',
|
|
1180
|
+
'sc.run_supporting': 'Exécuter les objets de support…',
|
|
1181
|
+
'sc.delete_confirm': 'Supprimer cet élément ({what}) ?',
|
|
1182
|
+
'sc.delete': 'Supprimer',
|
|
1183
|
+
'sc.not_found': 'Introuvable.',
|
|
1184
|
+
'sc.groups_title': 'Groupes du fournisseur d’identité → rôles',
|
|
1185
|
+
'sc.groups_help': 'Avec l’authentification unique, les membres de ces groupes reçoivent le rôle dans cette application et peuvent se connecter même sans figurer ci-dessus.',
|
|
1186
|
+
'sc.remove_mapping': 'Retirer l’association de {group} à {role}',
|
|
1187
|
+
'sc.no_groups': 'Aucune association de groupe.',
|
|
1188
|
+
'sc.group_label': 'Groupe (comme dans le jeton)',
|
|
1189
|
+
'sc.group_ph': 'p. ex. hr-managers',
|
|
1190
|
+
'sc.role_label': 'Rôle dans cette application',
|
|
1191
|
+
'sc.role_ph': 'p. ex. manager',
|
|
1192
|
+
'sc.add_mapping': 'Ajouter une association',
|
|
1193
|
+
'sc.access': 'Contrôle d’accès',
|
|
1194
|
+
'sc.who': 'Qui peut se connecter',
|
|
1195
|
+
'sc.who.assigned': 'Seulement les comptes listés ci-dessous (accès par rôles)',
|
|
1196
|
+
'sc.who.any': 'Tout compte actif de l’annuaire',
|
|
1197
|
+
'sc.access_help': 'Les comptes se trouvent dans l’{directory} ; ici vous leur donnez accès à {app} et attribuez des rôles, que vérifient les schémas d’autorisation et {fn}. Les changements de rôle s’appliquent à la prochaine connexion (leurs sessions dans cette application prennent fin).',
|
|
1198
|
+
'sc.directory': 'annuaire des utilisateurs',
|
|
1199
|
+
'sc.account': 'Compte',
|
|
1200
|
+
'sc.roles_in_app': 'Rôles dans cette application',
|
|
1201
|
+
'sc.last_signin': 'Dernière connexion',
|
|
1202
|
+
'sc.roles': 'Rôles',
|
|
1203
|
+
'sc.inactive': '(inactif)',
|
|
1204
|
+
'sc.roles_of': 'Rôles de {user}',
|
|
1205
|
+
'sc.no_roles': 'aucun rôle',
|
|
1206
|
+
'sc.revoke_confirm': 'Retirer l’accès de {user} à {app} ?',
|
|
1207
|
+
'sc.revoke': 'Retirer',
|
|
1208
|
+
'sc.no_access': 'Aucun compte n’a encore accès.',
|
|
1209
|
+
'sc.grant': 'Accorder l’accès',
|
|
1210
|
+
'sc.username_ph': 'nom d’utilisateur',
|
|
1211
|
+
'sc.existing': 'Un compte existant.',
|
|
1212
|
+
'sc.create_in_users': 'Créez des comptes dans Utilisateurs.',
|
|
1213
|
+
'sc.roles_ph': 'séparés par des virgules, ou choisissez ci-dessous',
|
|
1214
|
+
'sc.tree.security': 'Sécurité',
|
|
1215
|
+
'sc.tree.globalization': 'Mondialisation',
|
|
1216
|
+
'sc.tree.translations': 'Traductions et messages texte',
|
|
1217
|
+
'sc.tree.files': 'Fichiers et plug-ins',
|
|
1218
|
+
'sc.tree.static': 'Fichiers statiques de l’application',
|
|
1219
|
+
'sc.tree.subscriptions': 'Abonnements',
|
|
1220
|
+
'sc.tree.subscribers': 'Abonnements et abonnés',
|
|
1221
|
+
'sc.add_kind': 'Ajouter : {what}',
|
|
1222
|
+
'sc.add': '+ Ajouter',
|
|
1223
|
+
'sc.review_run': 'Vérifier et exécuter…',
|
|
1224
|
+
'sc.edit': 'Modifier',
|
|
1225
|
+
'sc.saved': '{what} : enregistré.',
|
|
1226
|
+
'sc.deleted': '{what} : supprimé.',
|
|
1227
|
+
'sc.access_saved': 'Contrôle d’accès enregistré.',
|
|
1228
|
+
'sc.no_account': 'Il n’existe pas de compte « {user} ». Créez-le d’abord dans Utilisateurs.',
|
|
1229
|
+
'sc.granted': 'Accès accordé à {user}.',
|
|
1230
|
+
'sc.mapping_added': 'Association de groupe ajoutée. Elle s’applique à la prochaine connexion.',
|
|
1231
|
+
'sc.mapping_removed': 'Association de groupe retirée. Cela s’applique à la prochaine connexion.',
|
|
1232
|
+
'sc.roles_saved': 'Rôles enregistrés. Ils s’appliquent à la prochaine connexion.',
|
|
1233
|
+
'sc.revoked': 'Accès retiré.',
|
|
1234
|
+
// ------------------------------------------------------------ Application settings (sprint 124)
|
|
1235
|
+
'st.tab.definition': 'Définition',
|
|
1236
|
+
'st.tab.security': 'Sécurité',
|
|
1237
|
+
'st.tab.signin': 'Connexion',
|
|
1238
|
+
'st.tab.ui': 'Interface utilisateur',
|
|
1239
|
+
'st.tab.globalization': 'Mondialisation',
|
|
1240
|
+
'st.tab.errors': 'Erreurs et sessions',
|
|
1241
|
+
'st.tab.pwa': 'Application web progressive',
|
|
1242
|
+
'st.settings': 'Paramètres',
|
|
1243
|
+
'st.name': 'Nom',
|
|
1244
|
+
'st.alias': 'Alias',
|
|
1245
|
+
'st.version': 'Version',
|
|
1246
|
+
'st.version_ph': 'Version 1.0',
|
|
1247
|
+
'st.version_help': 'Affichée dans le pied de page des pages de l’application ; vide : aucune.',
|
|
1248
|
+
'st.home_page': 'Page d’accueil',
|
|
1249
|
+
'st.app_type': 'Type d’application',
|
|
1250
|
+
'st.app_type_help': 'Les applications de thème et de bibliothèque offrent leur thème ou leurs composants partagés à d’autres applications (Shared Components → Abonnements) ; Créer une application peut partir d’une application modèle.',
|
|
1251
|
+
'st.type.standard': 'Standard',
|
|
1252
|
+
'st.type.theme': 'Application de thème',
|
|
1253
|
+
'st.type.library': 'Application de bibliothèque',
|
|
1254
|
+
'st.type.boilerplate': 'Application modèle',
|
|
1255
|
+
'st.authentication': 'Authentification',
|
|
1256
|
+
'st.auth.app_users': 'Utilisateurs de l’application (page de connexion)',
|
|
1257
|
+
'st.auth.header': 'En-tête HTTP (proxy inverse)',
|
|
1258
|
+
'st.auth.database': 'Comptes de base de données (rôles PostgreSQL)',
|
|
1259
|
+
'st.auth.custom': 'Personnalisée (une fonction PL/pgSQL)',
|
|
1260
|
+
'st.auth.none': 'Aucune (publique)',
|
|
1261
|
+
'st.db_role': 'Rôle de base de données (schéma d’analyse)',
|
|
1262
|
+
'st.db_role_help': 'Tout le SQL de l’application s’exécute sous ce rôle (SET LOCAL ROLE), donc les droits et la sécurité au niveau des lignes s’appliquent. Ne laissez vide que pour des applications internes de confiance.',
|
|
1263
|
+
'st.debug': 'Mode débogage',
|
|
1264
|
+
'st.debug_help': 'Affiche aux utilisateurs finaux le détail des erreurs de base de données. Développement uniquement.',
|
|
1265
|
+
'st.debug_msgs': 'Messages de débogage',
|
|
1266
|
+
'st.debug_on': 'activé, niveau {level}',
|
|
1267
|
+
'st.off': 'désactivé',
|
|
1268
|
+
'st.debug_msgs_help': 'Enregistre les étapes de chaque requête avec leurs durées et les messages de {fn}, conservés {days} jours.',
|
|
1269
|
+
'st.header_title': 'Authentification par en-tête HTTP',
|
|
1270
|
+
'st.header_intro': 'Utilisé seulement quand l’authentification est « En-tête HTTP ». Un proxy inverse ou une passerelle d’authentification unique connecte les utilisateurs et transmet le nom d’utilisateur dans un en-tête ; pgkiln ne lui fait confiance que depuis les adresses de proxy de {env}',
|
|
1271
|
+
'st.header_unset': 'non défini sur ce serveur : la connexion par en-tête est refusée',
|
|
1272
|
+
'st.header_name': 'En-tête du nom d’utilisateur',
|
|
1273
|
+
'st.header_name_help': 'L’en-tête de la requête avec le nom d’utilisateur (APEX : HTTP Header Variable). Vide : X-Remote-User. Un en-tête modifié ou absent met fin à la session.',
|
|
1274
|
+
'st.logout_url': 'URL de déconnexion',
|
|
1275
|
+
'st.logout_url_ph': 'p. ex. https://sso.example.com/logout',
|
|
1276
|
+
'st.logout_url_help': 'Où mène « Se déconnecter » après la fin de la session, en général la page de déconnexion du proxy. Vide : une page « déconnecté ».',
|
|
1277
|
+
'st.header_auto': 'Créer les comptes automatiquement',
|
|
1278
|
+
'st.header_auto_help': 'Un nom d’utilisateur inconnu reçoit un nouveau compte avec accès à cette application. Sinon, le compte doit exister et avoir accès.',
|
|
1279
|
+
'st.db_title': 'Comptes de base de données',
|
|
1280
|
+
'st.db_intro': 'Utilisé seulement quand l’authentification est « Comptes de base de données ». Les utilisateurs se connectent avec un rôle de connexion PostgreSQL et son mot de passe, vérifiés par une courte connexion à cette base sous ce rôle. Les superutilisateurs et les rôles propres à pgkiln sont toujours refusés ; sans aucun des deux champs, personne ne peut se connecter.',
|
|
1281
|
+
'st.db_roles': 'Rôles autorisés',
|
|
1282
|
+
'st.db_roles_ph': 'p. ex. alice, bob',
|
|
1283
|
+
'st.db_roles_help': 'Rôles de connexion autorisés à se connecter, séparés par des virgules (noms exacts).',
|
|
1284
|
+
'st.db_member': 'Ou membres du rôle',
|
|
1285
|
+
'st.db_member_ph': 'p. ex. app_users_group',
|
|
1286
|
+
'st.db_member_help': 'Tout membre de ce rôle peut aussi se connecter.',
|
|
1287
|
+
'st.custom_title': 'Authentification personnalisée',
|
|
1288
|
+
'st.custom_intro': 'Utilisé seulement quand l’authentification est « Personnalisée ». Votre propre PL/pgSQL vérifie le nom d’utilisateur et le mot de passe du formulaire, sous le rôle de base de données de l’application ; le mot de passe est passé en paramètre et jamais journalisé. Les échecs sont freinés comme les autres connexions. Sans aucun des deux champs, personne ne peut se connecter.',
|
|
1289
|
+
'st.custom_fn': 'Nom de la fonction',
|
|
1290
|
+
'st.custom_fn_ph': 'p. ex. app.check_login',
|
|
1291
|
+
'st.custom_fn_help': 'Une fonction (p_username text, p_password text) returns boolean, en minuscules, éventuellement avec son schéma. Le rôle de l’application a besoin d’EXECUTE dessus. Prioritaire sur le corps ci-dessous.',
|
|
1292
|
+
'st.custom_body': 'Ou corps de fonction',
|
|
1293
|
+
'st.custom_body_help': 'PL/pgSQL avec p_username et p_password, qui renvoie true pour une connexion valide, p. ex. {example}',
|
|
1294
|
+
'st.custom_post': 'Code après authentification',
|
|
1295
|
+
'st.custom_post_help': 'PL/pgSQL facultatif exécuté après une vérification réussie, avec p_username (et meta.app_user()), p. ex. pour enregistrer la dernière connexion. Lever une exception refuse la connexion. Les processus d’application « after login » s’exécutent ensuite comme d’habitude.',
|
|
1296
|
+
'st.signin': 'Connexion',
|
|
1297
|
+
'st.methods': 'Méthodes de connexion',
|
|
1298
|
+
'st.local': 'Nom d’utilisateur et mot de passe',
|
|
1299
|
+
'st.ldap': 'Mots de passe LDAP : {name}',
|
|
1300
|
+
'st.disabled': '(désactivé)',
|
|
1301
|
+
'st.no_ldap': 'Aucun annuaire LDAP configuré. {add} pour vérifier les mots de passe auprès de LDAP ou d’Active Directory.',
|
|
1302
|
+
'st.add_one': 'Ajoutez-en un',
|
|
1303
|
+
'st.ldap_help': 'Le formulaire nom d’utilisateur et mot de passe vérifie les mots de passe LDAP, après les comptes locaux : gardez donc cette méthode active.',
|
|
1304
|
+
'st.session_group': 'Groupe de partage de session',
|
|
1305
|
+
'st.session_group_ph': 'vide : non partagée',
|
|
1306
|
+
'st.session_group_help': 'Les applications du même groupe (avec l’annuaire des utilisateurs comme authentification) partagent la connexion : après s’être connecté à l’une, les autres s’ouvrent sans nouvelle connexion, chacune avec son propre contrôle d’accès et ses rôles ; se déconnecter de l’une déconnecte de toutes (APEX : session sharing). Minuscules, chiffres et _.',
|
|
1307
|
+
'st.remember': '« Rester connecté » pendant (jours)',
|
|
1308
|
+
'st.remember_ph': 'vide : non proposé',
|
|
1309
|
+
'st.remember_help': 'Propose une case à cocher sur le formulaire de connexion (APEX : authentification persistante). Le navigateur reste connecté ce nombre de jours après la connexion, même quand la session se termine ; la déconnexion, un nouveau mot de passe, une désactivation ou un accès retiré y mettent fin. 1 à 365.',
|
|
1310
|
+
'st.sso': 'Se connecter avec {name}',
|
|
1311
|
+
'st.no_sso': 'Aucun fournisseur d’identité configuré. {add} pour l’authentification unique.',
|
|
1312
|
+
'st.theme': 'Thème',
|
|
1313
|
+
'st.base': 'Style de base',
|
|
1314
|
+
'st.base.iris': 'Iris (par défaut pour les nouvelles applications)',
|
|
1315
|
+
'st.base.lavender': 'Lavender (Iris jusqu’à pgkiln 0.41)',
|
|
1316
|
+
'st.base.standard': 'Standard (pgkiln jusqu’à 0.28)',
|
|
1317
|
+
'st.base_help': 'Couleurs, coins, police et ombres de toute l’application, en clair et en sombre. Les couleurs ci-dessous remplacent son accent et son en-tête.',
|
|
1318
|
+
'st.accent': 'Couleur d’accent',
|
|
1319
|
+
'st.header_colour': 'Couleur de l’en-tête',
|
|
1320
|
+
'st.accent_dark': 'Couleur d’accent en mode sombre',
|
|
1321
|
+
'st.header_dark': 'Couleur de l’en-tête en mode sombre',
|
|
1322
|
+
'st.own_colour': 'Utiliser cette couleur (sinon la palette sombre du style de base)',
|
|
1323
|
+
'st.nav': 'Menu de navigation',
|
|
1324
|
+
'st.nav.side': 'Latéral (repliable)',
|
|
1325
|
+
'st.nav.top': 'Barre supérieure',
|
|
1326
|
+
'st.nav_help': 'Sur tablettes et téléphones, le menu est toujours un tiroir.',
|
|
1327
|
+
'st.nav_list': 'Liste du menu de navigation',
|
|
1328
|
+
'st.nav_entries': '- les entrées de navigation -',
|
|
1329
|
+
'st.nav_list_help': 'Une liste (Shared Components → Listes) affichée comme menu de navigation à la place des entrées de navigation.',
|
|
1330
|
+
'st.navbar_list': 'Liste de la barre de navigation',
|
|
1331
|
+
'st.none_option': '- aucune -',
|
|
1332
|
+
'st.navbar_help': 'Une liste affichée comme liens dans l’en-tête, à côté du menu utilisateur.',
|
|
1333
|
+
'st.missing': '{name} (manquante !)',
|
|
1334
|
+
'st.mode': 'Style du thème',
|
|
1335
|
+
'st.mode.auto': 'Automatique (clair ou sombre, selon l’appareil)',
|
|
1336
|
+
'st.mode.light': 'Clair',
|
|
1337
|
+
'st.mode.dark': 'Sombre',
|
|
1338
|
+
'st.user_choice': 'Les utilisateurs peuvent choisir clair ou sombre',
|
|
1339
|
+
'st.user_choice_help': 'Ajoute un interrupteur au menu utilisateur et à Mon compte ; le choix est enregistré sur le compte (APEX : « Enable End Users to Choose Theme Style »).',
|
|
1340
|
+
'st.roller': 'Theme Roller : variantes de style…',
|
|
1341
|
+
'st.styles_one': '{n} style',
|
|
1342
|
+
'st.styles': '{n} styles',
|
|
1343
|
+
'st.no_styles': 'pas encore de styles',
|
|
1344
|
+
'st.language': 'Langue principale',
|
|
1345
|
+
'st.language_help': 'La langue dans laquelle l’application est construite, p. ex. en, nl, de, en-GB.',
|
|
1346
|
+
'st.languages': 'Langues traduites',
|
|
1347
|
+
'st.languages_ph': 'p. ex. nl, de',
|
|
1348
|
+
'st.languages_help': 'Séparées par des virgules. Traduisez les textes sous Shared Components → Mondialisation.',
|
|
1349
|
+
'st.language_from': 'Langue déduite de',
|
|
1350
|
+
'st.from.browser': 'Navigateur (Accept-Language)',
|
|
1351
|
+
'st.from.user': 'Préférence de l’utilisateur, puis navigateur',
|
|
1352
|
+
'st.from.primary': 'Toujours la langue principale',
|
|
1353
|
+
'st.language_from_help': 'Les utilisateurs peuvent aussi changer avec ?lang=xx ou le sélecteur de la page de connexion.',
|
|
1354
|
+
'st.date_format': 'Format de date',
|
|
1355
|
+
'st.date_format_ph': 'p. ex. DD-MM-YYYY (vide : selon la langue)',
|
|
1356
|
+
'st.date_format_help': 'Masques : YYYY YY MM MON MONTH DD DY DAY HH24 HH MI SS AM',
|
|
1357
|
+
'st.ts_format': 'Format de date et heure',
|
|
1358
|
+
'st.ts_format_ph': 'p. ex. DD-MM-YYYY HH24:MI',
|
|
1359
|
+
'st.save_settings': 'Enregistrer les paramètres',
|
|
1360
|
+
'st.delete_confirm': 'Supprimer l’application {app} et toutes ses pages ?',
|
|
1361
|
+
'st.delete': 'Supprimer l’application',
|
|
1362
|
+
'st.error_fn': 'Fonction de gestion des erreurs',
|
|
1363
|
+
'st.error_fn_ph': 'p. ex. sales.error_message',
|
|
1364
|
+
'st.error_fn_help': 'schema.function(jsonb) returns jsonb, exécutée sous le rôle de l’application : elle reçoit le message et ce que l’on sait d’une erreur (code, constraint, table, column, component, page, user, internal, reference) et peut renvoyer {"message": "…"} à afficher à la place. Vide : aucune.',
|
|
1365
|
+
'st.warning': 'Avertissement de fin de session (secondes)',
|
|
1366
|
+
'st.warning_help': 'Les utilisateurs connectés sont avertis ce temps avant la fin de leur session et peuvent rester connectés (0 : pas d’avertissement).',
|
|
1367
|
+
'st.save': 'Enregistrer',
|
|
1368
|
+
'st.checklist': 'Liste de contrôle de sécurité',
|
|
1369
|
+
'st.ck.role': 'S’exécute sous un rôle de base de données dédié',
|
|
1370
|
+
'st.ck.runtime': '(s’exécute sous la connexion d’exécution)',
|
|
1371
|
+
'st.ck.signin': 'Les utilisateurs doivent se connecter',
|
|
1372
|
+
'st.ck.public': 'Application publique',
|
|
1373
|
+
'st.ck.debug_on': 'Le mode débogage est activé : le détail des erreurs est affiché aux utilisateurs',
|
|
1374
|
+
'st.ck.debug_off': 'Le mode débogage est désactivé',
|
|
1375
|
+
'st.ck.msgs_on': 'Les messages de débogage sont activés (niveau {level}) : chaque requête est enregistrée',
|
|
1376
|
+
'st.ck.msgs_off': 'Les messages de débogage sont désactivés',
|
|
1377
|
+
'st.ck.unprotected': 'Pages sans protection par somme de contrôle : {n}',
|
|
1378
|
+
'st.ck.public_pages': 'Pages publiques : {n}',
|
|
1379
|
+
'st.title': 'Paramètres de {app}',
|
|
1380
|
+
'st.err.fn_shape': 'La fonction de gestion des erreurs est schema.function, p. ex. sales.error_message.',
|
|
1381
|
+
'st.err.no_fn': 'Il n’existe pas de fonction {fn}(jsonb) qui renvoie jsonb.',
|
|
1382
|
+
'st.err.warning': 'L’avertissement de fin de session est de 0 à 3600 secondes.',
|
|
1383
|
+
'st.saved': 'Enregistré.',
|
|
1384
|
+
'st.settings_saved': 'Paramètres enregistrés.',
|
|
1385
|
+
'st.app_deleted': 'Application supprimée.',
|
|
1386
|
+
// ------------------------------------------------------------ Users and identity providers (sprint 125)
|
|
1387
|
+
'us.hints_none': 'Cette application ne vérifie encore aucun rôle. Les rôles ne comptent que là où un schéma d’autorisation ou {fn} les vérifie (Shared Components → Schémas d’autorisation).',
|
|
1388
|
+
'us.hints_label': 'Rôles que vérifie cette application',
|
|
1389
|
+
'us.hints_add': 'Ajouter',
|
|
1390
|
+
'us.hints_app': '{app} vérifie',
|
|
1391
|
+
'us.title': 'Utilisateurs',
|
|
1392
|
+
'us.providers_btn': 'Fournisseurs d’identité (authentification unique)',
|
|
1393
|
+
'us.ldap_btn': 'Annuaires LDAP',
|
|
1394
|
+
'us.intro': 'Un compte par personne. Donnez aux comptes l’accès aux applications, avec des rôles par application, ici ou sous {where} d’une application.',
|
|
1395
|
+
'us.access_path': 'Shared Components → Contrôle d’accès',
|
|
1396
|
+
'us.accounts': 'Comptes',
|
|
1397
|
+
'us.search_ph': 'Rechercher un nom, un identifiant ou un e-mail…',
|
|
1398
|
+
'us.search_label': 'Rechercher des comptes',
|
|
1399
|
+
'us.search': 'Rechercher',
|
|
1400
|
+
'us.username': 'Nom d’utilisateur',
|
|
1401
|
+
'us.name': 'Nom',
|
|
1402
|
+
'us.apps_roles': 'Applications (rôles)',
|
|
1403
|
+
'us.applications': 'Applications',
|
|
1404
|
+
'us.signin': 'Connexion',
|
|
1405
|
+
'us.status': 'Statut',
|
|
1406
|
+
'us.none': 'aucune',
|
|
1407
|
+
'us.password': 'mot de passe',
|
|
1408
|
+
'us.no_password': 'pas de mot de passe',
|
|
1409
|
+
'us.active': 'actif',
|
|
1410
|
+
'us.inactive': 'inactif',
|
|
1411
|
+
'us.last': 'dernier {at}',
|
|
1412
|
+
'us.no_accounts': 'Aucun compte trouvé.',
|
|
1413
|
+
'us.create': 'Créer un compte',
|
|
1414
|
+
'us.username_help': 'Sans espaces ni deux-points ; insensible à la casse.',
|
|
1415
|
+
'us.email': 'E-mail',
|
|
1416
|
+
'us.password_label': 'Mot de passe',
|
|
1417
|
+
'us.password_help': 'Au moins 8 caractères. Laissez vide pour les comptes qui ne se connectent que par authentification unique.',
|
|
1418
|
+
'us.must_change': 'Exiger le changement du mot de passe à la première utilisation',
|
|
1419
|
+
'us.settings': 'Paramètres des comptes',
|
|
1420
|
+
'us.min_length': 'Longueur minimale du mot de passe',
|
|
1421
|
+
'us.lifetime': 'Durée de validité du mot de passe (jours)',
|
|
1422
|
+
'us.lifetime_help': 'Après ce nombre de jours, les utilisateurs doivent choisir un nouveau mot de passe à la connexion. 0 = jamais.',
|
|
1423
|
+
'us.mixed': 'Les mots de passe doivent contenir des lettres et des chiffres',
|
|
1424
|
+
'us.policy_note': 'Les mots de passe ne peuvent jamais contenir le nom d’utilisateur. La connexion est bloquée {minutes} minutes après {failures} échecs (Utilitaires de l’espace de travail → Paramètres de l’instance) ; Débloquer sur un compte la lève.',
|
|
1425
|
+
'us.save_settings': 'Enregistrer les paramètres',
|
|
1426
|
+
'us.created': 'Compte créé. Donnez-lui maintenant accès à des applications.',
|
|
1427
|
+
'us.exists': 'Un compte avec ce nom d’utilisateur existe déjà.',
|
|
1428
|
+
'us.settings_saved': 'Paramètres des comptes enregistrés.',
|
|
1429
|
+
'us.details': 'Détails',
|
|
1430
|
+
'us.active_label': 'Actif',
|
|
1431
|
+
'us.active_help': 'Les comptes inactifs ne peuvent se connecter à aucune application ; la désactivation met fin à leurs sessions.',
|
|
1432
|
+
'us.save': 'Enregistrer',
|
|
1433
|
+
'us.password_title': 'Mot de passe',
|
|
1434
|
+
'us.set': 'Défini',
|
|
1435
|
+
'us.set_on': 'Défini le {date}',
|
|
1436
|
+
'us.sso_only': 'Pas de mot de passe (authentification unique uniquement)',
|
|
1437
|
+
'us.must_next': 'Doit être changé à la prochaine connexion',
|
|
1438
|
+
'us.expires': 'Expire dans {n} jour(s)',
|
|
1439
|
+
'us.fails': '{n} échec(s) de connexion dans la dernière heure',
|
|
1440
|
+
'us.unexpire': 'Annuler l’expiration',
|
|
1441
|
+
'us.expire': 'Faire expirer le mot de passe',
|
|
1442
|
+
'us.unlock': 'Débloquer la connexion',
|
|
1443
|
+
'us.new_password': 'Nouveau mot de passe',
|
|
1444
|
+
'us.set_password_label': 'Définir un mot de passe',
|
|
1445
|
+
'us.ends_sessions': 'Met fin aux sessions du compte.',
|
|
1446
|
+
'us.set_password': 'Définir le mot de passe',
|
|
1447
|
+
'us.remove_confirm': 'Retirer le mot de passe ? Le compte ne pourra plus se connecter que par authentification unique.',
|
|
1448
|
+
'us.remove_password': 'Retirer le mot de passe',
|
|
1449
|
+
'us.delete_confirm': 'Supprimer le compte {user} et tous ses accès aux applications ?',
|
|
1450
|
+
'us.delete': 'Supprimer le compte',
|
|
1451
|
+
'us.app_access': 'Accès aux applications',
|
|
1452
|
+
'us.application': 'Application',
|
|
1453
|
+
'us.roles': 'Rôles',
|
|
1454
|
+
'us.roles_in': 'Rôles dans {app}',
|
|
1455
|
+
'us.roles_ph': 'aucun rôle (p. ex. {example})',
|
|
1456
|
+
'us.revoke_confirm': 'Retirer l’accès à {app} ?',
|
|
1457
|
+
'us.revoke': 'Retirer',
|
|
1458
|
+
'us.no_access': 'Pas encore d’accès à une application.',
|
|
1459
|
+
'us.grant': 'Accorder l’accès',
|
|
1460
|
+
'us.roles_comma': 'séparés par des virgules, ou choisissez ci-dessous',
|
|
1461
|
+
'us.saved': 'Compte enregistré.',
|
|
1462
|
+
'us.pw_removed': 'Mot de passe retiré.',
|
|
1463
|
+
'us.pw_set': 'Mot de passe défini.',
|
|
1464
|
+
'us.pw_expired': 'Mot de passe expiré : il doit être changé à la prochaine connexion.',
|
|
1465
|
+
'us.pw_unexpired': 'Le mot de passe n’est plus expiré.',
|
|
1466
|
+
'us.unlocked': 'Connexion débloquée.',
|
|
1467
|
+
'us.deleted': 'Compte supprimé.',
|
|
1468
|
+
'us.granted': 'Accès accordé.',
|
|
1469
|
+
'us.roles_saved': 'Rôles enregistrés. L’utilisateur les reçoit à la prochaine connexion.',
|
|
1470
|
+
'us.revoked': 'Accès retiré.',
|
|
1471
|
+
'idp.title': 'Fournisseurs d’identité',
|
|
1472
|
+
'idp.name': 'Nom (dans les URL)',
|
|
1473
|
+
'idp.name_help': 'en minuscules, p. ex. entra, google, keycloak',
|
|
1474
|
+
'idp.protocol': 'Protocole',
|
|
1475
|
+
'idp.label': 'Libellé du bouton',
|
|
1476
|
+
'idp.label_help': 'Affiché comme « Se connecter avec … »',
|
|
1477
|
+
'idp.issuer': 'Émetteur (OIDC : URL ; SAML : l’entity ID de l’IdP)',
|
|
1478
|
+
'idp.issuer_help': 'p. ex. https://login.microsoftonline.com/<tenant>/v2.0, https://keycloak.example.com/realms/acme, ou pour SAML l’entityID des métadonnées de l’IdP',
|
|
1479
|
+
'idp.client_id': 'ID client (SAML : l’entity ID de pgkiln)',
|
|
1480
|
+
'idp.client_id_help': 'OIDC : obligatoire. SAML : vide = l’URL des métadonnées de ce fournisseur.',
|
|
1481
|
+
'idp.sso_url': 'SAML : URL de connexion de l’IdP',
|
|
1482
|
+
'idp.sso_url_help': 'L’emplacement du SingleSignOnService (liaison HTTP-Redirect) dans les métadonnées de l’IdP.',
|
|
1483
|
+
'idp.cert': 'SAML : certificat de signature de l’IdP (PEM)',
|
|
1484
|
+
'idp.cert_help': 'Issu des métadonnées de l’IdP (X509Certificate, entouré des lignes BEGIN/END CERTIFICATE). Les assertions doivent être signées avec lui.',
|
|
1485
|
+
'idp.secret': 'Secret client',
|
|
1486
|
+
'idp.secret_kept': 'Un secret est enregistré. Laissez vide pour le garder.',
|
|
1487
|
+
'idp.secret_public': 'Laissez vide pour un client public (PKCE uniquement).',
|
|
1488
|
+
'idp.scopes': 'Portées',
|
|
1489
|
+
'idp.username_claim': 'Claim du nom d’utilisateur',
|
|
1490
|
+
'idp.username_claim_help': 'Utilisez un claim que les utilisateurs ne peuvent pas modifier eux-mêmes (p. ex. preferred_username, upn, email). SAML : un nom d’attribut ou nameID.',
|
|
1491
|
+
'idp.groups_claim': 'Claim des groupes',
|
|
1492
|
+
'idp.groups_claim_help': 'Les chemins à points fonctionnent, p. ex. realm_access.roles',
|
|
1493
|
+
'idp.auto_create': 'Créer les comptes automatiquement à la première connexion',
|
|
1494
|
+
'idp.auto_create_help': 'Sinon, seules les personnes avec un compte lié à ce fournisseur (ou autorisées ci-dessous) peuvent se connecter.',
|
|
1495
|
+
'idp.link': 'Lier les comptes existants de même nom d’utilisateur à leur première connexion',
|
|
1496
|
+
'idp.link_help': 'Seulement quand les utilisateurs ne peuvent pas choisir eux-mêmes le claim du nom chez ce fournisseur : sinon quelqu’un pourrait enregistrer le nom d’un compte existant et s’en emparer. Avec le claim e-mail, seules les adresses vérifiées sont liées. Désactivez-le une fois les comptes liés.',
|
|
1497
|
+
'idp.enabled': 'Activé',
|
|
1498
|
+
'idp.remove_secret': 'Retirer le secret client enregistré',
|
|
1499
|
+
'idp.add': 'Ajouter le fournisseur',
|
|
1500
|
+
'idp.intro': 'Fournisseurs OpenID Connect pour l’authentification unique (Microsoft Entra ID, Google, Okta, Keycloak, Auth0, …). Enregistrez pgkiln chez le fournisseur comme application web avec l’URI de redirection affichée, puis activez le fournisseur par application sous {where}.',
|
|
1501
|
+
'idp.where': 'Paramètres → Méthodes de connexion',
|
|
1502
|
+
'idp.providers': 'Fournisseurs',
|
|
1503
|
+
'idp.provider': 'Fournisseur',
|
|
1504
|
+
'idp.issuer_col': 'Émetteur',
|
|
1505
|
+
'idp.used_by': 'Utilisé par',
|
|
1506
|
+
'idp.linked': 'Comptes liés',
|
|
1507
|
+
'idp.no_apps': 'aucune application',
|
|
1508
|
+
'idp.enabled_s': 'activé',
|
|
1509
|
+
'idp.disabled_s': 'désactivé',
|
|
1510
|
+
'idp.auto_s': 'création automatique',
|
|
1511
|
+
'idp.links_s': 'lie les comptes existants',
|
|
1512
|
+
'idp.none': 'Pas encore de fournisseurs d’identité.',
|
|
1513
|
+
'idp.settings': 'Paramètres',
|
|
1514
|
+
'idp.delete_confirm': 'Supprimer {name} ? Les identités liées sont retirées ; les comptes restent.',
|
|
1515
|
+
'idp.delete': 'Supprimer le fournisseur',
|
|
1516
|
+
'idp.register_idp': 'Enregistrer chez le fournisseur d’identité',
|
|
1517
|
+
'idp.sp_metadata': 'Métadonnées du fournisseur de services (à importer chez l’IdP) :',
|
|
1518
|
+
'idp.by_hand': 'Ou à la main : entity ID {entity}, assertion consumer service (HTTP-POST) {acs}.',
|
|
1519
|
+
'idp.saml_note': 'Basé sur {env}. Signez les assertions ; envoyez les groupes dans l’attribut {claim} pour les associer à des rôles.',
|
|
1520
|
+
'idp.register': 'Enregistrer chez le fournisseur',
|
|
1521
|
+
'idp.redirect': 'URI de redirection (callback) :',
|
|
1522
|
+
'idp.public_url': 'Basé sur {env} ; réglez-le sur l’adresse que voient les utilisateurs (p. ex. https://apps.example.com).',
|
|
1523
|
+
'idp.grant': 'Type d’autorisation : {type} avec PKCE. Portées : {scopes}. Incluez un claim {claim} dans le jeton d’ID pour associer les groupes aux rôles.',
|
|
1524
|
+
'idp.auth_code': 'code d’autorisation',
|
|
1525
|
+
'idp.test': 'Tester la découverte',
|
|
1526
|
+
'idp.added': 'Fournisseur ajouté. Enregistrez l’URI de redirection chez le fournisseur, puis testez la connexion.',
|
|
1527
|
+
'idp.saved': 'Fournisseur enregistré.',
|
|
1528
|
+
'idp.works': 'La découverte fonctionne. Point d’autorisation : {url}',
|
|
1529
|
+
'idp.failed': 'La découverte a échoué : {error}',
|
|
1530
|
+
'idp.deleted': 'Fournisseur supprimé.',
|
|
1531
|
+
// ------------------------------------------------------------ Workspaces (sprint 125)
|
|
1532
|
+
'wsp.title': 'Espaces de travail',
|
|
1533
|
+
'wsp.admins_only': 'Seuls les administrateurs gèrent les espaces de travail.',
|
|
1534
|
+
'wsp.err.exists': 'Un espace de travail de ce nom existe déjà.',
|
|
1535
|
+
'wsp.err.name_check': 'Le nom compte 1 à 60 caractères, sans espace au début ni à la fin.',
|
|
1536
|
+
'wsp.err.name': 'Le nom compte 1 à 60 caractères.',
|
|
1537
|
+
'wsp.iso.secret': 'définissez PGKILN_SECRET_KEY (au moins 32 caractères) dans l’environnement du serveur : les connexions de base de données de l’espace de travail en tirent leurs mots de passe.',
|
|
1538
|
+
'wsp.iso.runtime': 'définissez RUNTIME_DATABASE_URL : les applications s’exécutent sur la connexion du propriétaire, donc aucun espace de travail ne peut être isolé.',
|
|
1539
|
+
'wsp.err.role_taken': 'ce rôle appartient déjà à un autre espace de travail.',
|
|
1540
|
+
'wsp.err.role_has': 'l’espace de travail a déjà ce rôle.',
|
|
1541
|
+
'wsp.isolated_tag': 'isolé',
|
|
1542
|
+
'wsp.iso.on': 'Ses applications s’exécutent en tant que {run} et le SQL de ses développeurs (SQL Workshop, contrôles de code, l’Advisor) en tant que {dev}. Les deux n’atteignent que les rôles ci-dessous et ne voient que les applications, sessions et comptes de cet espace de travail dans les tables de pgkiln. Les développeurs qui appartiennent aussi à un espace partagé y gardent ses droits.',
|
|
1543
|
+
'wsp.db_role': 'Rôle de base de données',
|
|
1544
|
+
'wsp.used_by': 'Utilisé par',
|
|
1545
|
+
'wsp.missing': 'manquant',
|
|
1546
|
+
'wsp.no_app': 'aucune application',
|
|
1547
|
+
'wsp.remove': 'Retirer',
|
|
1548
|
+
'wsp.no_roles': 'Aucun rôle de base de données : les applications d’ici ne peuvent pas s’exécuter sous un rôle propre.',
|
|
1549
|
+
'wsp.add_role': 'Ajouter un rôle de base de données',
|
|
1550
|
+
'wsp.add_role_help': 'Un rôle existant (pas un superutilisateur, ni un rôle qui crée des rôles ou contourne la sécurité au niveau des lignes). Ses droits deviennent ceux de cet espace de travail ; il ne peut pas appartenir à un autre.',
|
|
1551
|
+
'wsp.add_role_btn': 'Ajouter le rôle',
|
|
1552
|
+
'wsp.make_shared_confirm': 'Rendre {name} de nouveau partagé ? Ses applications s’exécuteront alors sur la connexion d’exécution partagée, et le SQL de ses développeurs en tant que propriétaire.',
|
|
1553
|
+
'wsp.make_shared': 'Rendre partagé',
|
|
1554
|
+
'wsp.shared_text': 'Partagé : les applications s’exécutent sur la connexion d’exécution partagée et le SQL des développeurs en tant que propriétaire, comme pour tout espace partagé.',
|
|
1555
|
+
'wsp.iso_help': 'Isoler donne à l’espace de travail deux connexions de base de données propres et les rôles qu’utilisent maintenant ses applications. Le code des applications n’atteint alors que ces rôles et les applications de cet espace ; le SQL Workshop de ses développeurs s’exécute sur la connexion de l’espace au lieu du propriétaire. Les nouvelles applications reçoivent un rôle et un schéma propres.',
|
|
1556
|
+
'wsp.to_isolate': 'Pour isoler un espace de travail, {problem}',
|
|
1557
|
+
'wsp.isolate_confirm': 'Isoler {name} ?',
|
|
1558
|
+
'wsp.isolate': 'Isoler cet espace de travail',
|
|
1559
|
+
'wsp.isolation': 'Isolation',
|
|
1560
|
+
'wsp.service': 'Gérer le service',
|
|
1561
|
+
'wsp.message': 'Message de l’espace de travail',
|
|
1562
|
+
'wsp.message_help': 'Affiché aux développeurs de cet espace sur l’accueil d’App Builder, p. ex. une fenêtre de maintenance. Texte brut.',
|
|
1563
|
+
'wsp.banner': 'Bandeau d’environnement',
|
|
1564
|
+
'wsp.banner_help': 'Un court libellé en haut de chaque page du builder tant que cet espace est actif. Vide : pas de bandeau.',
|
|
1565
|
+
'wsp.banner_colour': 'Couleur du bandeau',
|
|
1566
|
+
'wsp.save': 'Enregistrer',
|
|
1567
|
+
'wsp.prefs': 'Préférences de l’espace de travail',
|
|
1568
|
+
'wsp.sql_on': 'Activer SQL Workshop',
|
|
1569
|
+
'wsp.sql_on_help': 'Désactivé : la feuille de calcul SQL, le navigateur d’objets, les scripts SQL, le chargement et déchargement de données, Quick SQL, le générateur de requêtes, DDL, Comparer et l’IA sont refusés tant que cet espace est actif, pour tous les développeurs.',
|
|
1570
|
+
'wsp.rest_on': 'Activer les services RESTful',
|
|
1571
|
+
'wsp.rest_on_help': 'Désactivé : les modules REST des applications de cet espace répondent 404 (Not found) à {path} ; ils restent modifiables.',
|
|
1572
|
+
'wsp.builder_home': 'Les liens du builder ouvrent',
|
|
1573
|
+
'wsp.home.apps': 'App Builder',
|
|
1574
|
+
'wsp.home.home': 'Accueil de l’espace de travail',
|
|
1575
|
+
'wsp.builder_home_help': 'Où mène un lien vers /builder (un favori d’avant l’accueil de l’espace de travail) dans cet espace. La connexion ouvre toujours l’accueil de l’espace ; App Builder est à /builder/apps.',
|
|
1576
|
+
'wsp.save_prefs': 'Enregistrer les préférences',
|
|
1577
|
+
'wsp.links': 'Liens d’extension',
|
|
1578
|
+
'wsp.links_help': 'Liens vers d’autres outils qu’utilisent les développeurs de cet espace (supervision, wiki, système de tickets), dans le menu {menu} du builder tant que l’espace est actif. Ils s’ouvrent dans un nouvel onglet.',
|
|
1579
|
+
'wsp.extensions': 'Extensions',
|
|
1580
|
+
'wsp.label': 'Libellé',
|
|
1581
|
+
'wsp.url': 'URL',
|
|
1582
|
+
'wsp.order': 'Ordre',
|
|
1583
|
+
'wsp.delete_link_confirm': 'Supprimer le lien {label} ?',
|
|
1584
|
+
'wsp.delete': 'Supprimer',
|
|
1585
|
+
'wsp.no_links': 'Aucun lien d’extension.',
|
|
1586
|
+
'wsp.label_ph': 'Supervision',
|
|
1587
|
+
'wsp.description': 'Description',
|
|
1588
|
+
'wsp.add_link': 'Ajouter le lien',
|
|
1589
|
+
'wsp.switched': 'Espace de travail {name}.',
|
|
1590
|
+
'wsp.intro': 'Un espace de travail regroupe des applications et les développeurs qui les construisent. Les développeurs voient et modifient les applications de leurs propres espaces ; les administrateurs les voient toutes. Un espace partagé n’est pas une frontière de sécurité entre développeurs qui écrivent du SQL : son SQL Workshop et le code des applications s’exécutent avec les droits de cette installation. Un espace {isolated} en est une : ses applications et son SQL s’exécutent sur des connexions de base de données propres qui n’atteignent que ses rôles et ses propres applications.',
|
|
1591
|
+
'wsp.isolated_word': 'isolé',
|
|
1592
|
+
'wsp.workspace': 'Espace de travail',
|
|
1593
|
+
'wsp.applications': 'Applications',
|
|
1594
|
+
'wsp.developers': 'Développeurs',
|
|
1595
|
+
'wsp.admins_text': 'administrateurs uniquement',
|
|
1596
|
+
'wsp.add': 'Ajouter un espace de travail',
|
|
1597
|
+
'wsp.name': 'Nom',
|
|
1598
|
+
'wsp.name_help': 'Par exemple l’équipe ou le service qui construit ici ses applications.',
|
|
1599
|
+
'wsp.first_dev': 'Vous en devenez le premier développeur ; ajoutez-en d’autres sur sa page.',
|
|
1600
|
+
'wsp.added': 'Espace de travail {name} ajouté.',
|
|
1601
|
+
'wsp.settings': 'Paramètres',
|
|
1602
|
+
'wsp.default_no_delete': 'L’espace Default ne peut pas être supprimé : les applications importées et celles créées en ligne de commande y commencent.',
|
|
1603
|
+
'wsp.delete_confirm': 'Supprimer l’espace de travail {name} ?',
|
|
1604
|
+
'wsp.delete_ws': 'Supprimer l’espace de travail',
|
|
1605
|
+
'wsp.move_first': 'Déplacez d’abord ses applications vers un autre espace de travail.',
|
|
1606
|
+
'wsp.devs_help': 'Les développeurs de cet espace voient et modifient ses applications. Les administrateurs voient tous les espaces.',
|
|
1607
|
+
'wsp.administrator': '(administrateur)',
|
|
1608
|
+
'wsp.ws_admins': 'Administrateurs de l’espace de travail',
|
|
1609
|
+
'wsp.ws_admins_help': 'Ils gèrent le nom et les développeurs de cet espace. L’isolation, les rôles de base de données, le déplacement des applications et la suppression de l’espace restent aux administrateurs.',
|
|
1610
|
+
'wsp.save_devs': 'Enregistrer les développeurs',
|
|
1611
|
+
'wsp.mail_net': 'Messagerie et accès réseau',
|
|
1612
|
+
'wsp.mail_net_text': 'Le {mail} propre à cet espace pour ses applications qui n’en ont pas, sa liste d’{network} (les hôtes que ses applications peuvent appeler, dans la liste de l’installation) et la {queue}.',
|
|
1613
|
+
'wsp.mail_service': 'service de messagerie',
|
|
1614
|
+
'wsp.network': 'accès réseau',
|
|
1615
|
+
'wsp.queue': 'file des e-mails',
|
|
1616
|
+
'wsp.iso_short_on': 'Isolé : ses applications et son SQL s’exécutent sur des connexions de base de données propres.',
|
|
1617
|
+
'wsp.iso_short_off': 'Partagé.',
|
|
1618
|
+
'wsp.admins_change': 'Les administrateurs le modifient.',
|
|
1619
|
+
'wsp.application': 'Application',
|
|
1620
|
+
'wsp.move_to': 'Déplacer vers',
|
|
1621
|
+
'wsp.move_label': 'Déplacer {app} vers',
|
|
1622
|
+
'wsp.move': 'Déplacer',
|
|
1623
|
+
'wsp.no_other': 'aucun autre espace de travail',
|
|
1624
|
+
'wsp.no_apps': 'Aucune application.',
|
|
1625
|
+
'wsp.saved': 'Espace de travail enregistré.',
|
|
1626
|
+
'wsp.not_found': 'Introuvable.',
|
|
1627
|
+
'wsp.devs_saved': 'Développeurs enregistrés.',
|
|
1628
|
+
'wsp.not_moved': 'Non déplacée : {why}',
|
|
1629
|
+
'wsp.moved': 'Application déplacée vers {name}.',
|
|
1630
|
+
'wsp.err.default': 'L’espace Default ne peut pas être supprimé.',
|
|
1631
|
+
'wsp.err.isolated': 'Rendez l’espace partagé (non isolé) avant de le supprimer.',
|
|
1632
|
+
'wsp.err.has_apps': 'Déplacez d’abord les applications de cet espace vers un autre.',
|
|
1633
|
+
'wsp.deleted': 'Espace de travail {name} supprimé.',
|
|
1634
|
+
'wsp.isolated_now': 'L’espace de travail est isolé : ses applications et son SQL s’exécutent désormais sur ses propres connexions de base de données.',
|
|
1635
|
+
'wsp.shared_now': 'L’espace de travail est de nouveau partagé : ses applications s’exécutent sur la connexion d’exécution partagée.',
|
|
1636
|
+
'wsp.not_isolated': 'Non isolé : {why}',
|
|
1637
|
+
'wsp.not_changed': 'Non modifié : {why}',
|
|
1638
|
+
'wsp.err.role_name': 'Un nom de rôle est une lettre ou _ suivie de lettres, de chiffres, de _ ou de $ (au plus 63).',
|
|
1639
|
+
'wsp.err.no_role': 'Il n’existe pas de rôle de base de données {role}.',
|
|
1640
|
+
'wsp.err.role_used_one': '{apps} s’exécute en tant que {role} : donnez-lui d’abord un autre rôle.',
|
|
1641
|
+
'wsp.err.role_used': '{apps} s’exécutent en tant que {role} : donnez-leur d’abord un autre rôle.',
|
|
1642
|
+
'wsp.role_removed': 'Rôle {role} retiré.',
|
|
1643
|
+
'wsp.role_added': 'Rôle {role} ajouté.',
|
|
1644
|
+
'wsp.not_saved': 'Non enregistré : {why}',
|
|
1645
|
+
'wsp.err.message': 'Le message compte au plus 2000 caractères.',
|
|
1646
|
+
'wsp.err.banner': 'Le libellé du bandeau compte au plus 40 caractères.',
|
|
1647
|
+
'wsp.service_saved': 'Message et bandeau enregistrés.',
|
|
1648
|
+
'wsp.prefs_saved': 'Préférences enregistrées.',
|
|
1649
|
+
'wsp.err.label': 'Le libellé compte 1 à 60 caractères.',
|
|
1650
|
+
'wsp.err.url': 'L’URL commence par http:// ou https://.',
|
|
1651
|
+
'wsp.err.description': 'La description compte au plus 500 caractères.',
|
|
1652
|
+
'wsp.err.order': 'L’ordre est un nombre entier.',
|
|
1653
|
+
'wsp.link_added': 'Lien {label} ajouté.',
|
|
1654
|
+
'wsp.link_exists': 'Un lien {label} existe déjà.',
|
|
1655
|
+
'wsp.link_not_saved': 'Le lien n’a pas été enregistré.',
|
|
1656
|
+
'wsp.link_deleted': 'Lien supprimé.',
|
|
1657
|
+
'wsp.util_title': 'Utilisation de l’espace de travail : {name}',
|
|
1658
|
+
'wsp.pages': 'Pages',
|
|
1659
|
+
'wsp.views30': 'Pages vues (30 jours)',
|
|
1660
|
+
'wsp.scripts': 'Scripts SQL',
|
|
1661
|
+
'wsp.regions': 'Régions',
|
|
1662
|
+
'wsp.items': 'Éléments',
|
|
1663
|
+
'wsp.users30': 'Utilisateurs (30 jours)',
|
|
1664
|
+
'wsp.static': 'Fichiers statiques',
|
|
1665
|
+
'wsp.views': 'Pages vues',
|
|
1666
|
+
'wsp.users': 'Utilisateurs',
|
|
1667
|
+
'wsp.schemas': 'Schémas',
|
|
1668
|
+
'wsp.schemas_help': 'Les schémas que les rôles de base de données de l’espace peuvent utiliser, avec le stockage de leurs tables, index et données TOAST.',
|
|
1669
|
+
'wsp.schema': 'Schéma',
|
|
1670
|
+
'wsp.owner': 'Propriétaire',
|
|
1671
|
+
'wsp.tables': 'Tables',
|
|
1672
|
+
'wsp.storage': 'Stockage',
|
|
1673
|
+
'wsp.no_schemas': 'Aucun schéma : les applications de l’espace n’ont pas de rôle de base de données propre.',
|
|
1674
|
+
'wsp.utilization': 'Utilisation',
|
|
1675
|
+
'wsp.util_crumb': 'Utilisation : {name}',
|
|
1676
|
+
// ------------------------------------------------------------ Developers (sprint 125)
|
|
1677
|
+
'dev.title': 'Développeurs',
|
|
1678
|
+
'dev.change_pw': 'Changer votre mot de passe',
|
|
1679
|
+
'dev.current': 'Mot de passe actuel',
|
|
1680
|
+
'dev.new': 'Nouveau mot de passe',
|
|
1681
|
+
'dev.min8': 'Au moins 8 caractères.',
|
|
1682
|
+
'dev.change_btn': 'Changer le mot de passe',
|
|
1683
|
+
'dev.your_email': 'Votre adresse e-mail',
|
|
1684
|
+
'dev.email': 'Adresse e-mail',
|
|
1685
|
+
'dev.email_help': '« Trouver mon espace de travail » sur la page de connexion y envoie vos espaces. Vide : aucune.',
|
|
1686
|
+
'dev.save': 'Enregistrer',
|
|
1687
|
+
'dev.accounts': 'Comptes de développeur',
|
|
1688
|
+
'dev.accounts_help': 'Les administrateurs ajoutent et retirent des développeurs et peuvent lever les verrous de pages et d’applications des autres.',
|
|
1689
|
+
'dev.username': 'Nom d’utilisateur',
|
|
1690
|
+
'dev.role': 'Rôle',
|
|
1691
|
+
'dev.email_col': 'E-mail',
|
|
1692
|
+
'dev.you': '(vous)',
|
|
1693
|
+
'dev.administrator': 'Administrateur',
|
|
1694
|
+
'dev.developer': 'Développeur',
|
|
1695
|
+
'dev.email_of': 'Adresse e-mail de {user}',
|
|
1696
|
+
'dev.none': 'aucune',
|
|
1697
|
+
'dev.make_dev': 'Rendre développeur',
|
|
1698
|
+
'dev.make_admin': 'Rendre administrateur',
|
|
1699
|
+
'dev.remove_confirm': 'Retirer le développeur {user} ?',
|
|
1700
|
+
'dev.remove': 'Retirer',
|
|
1701
|
+
'dev.add': 'Ajouter un développeur',
|
|
1702
|
+
'dev.password': 'Mot de passe',
|
|
1703
|
+
'dev.optional_email': 'Facultatif : pour « Trouver mon espace de travail ».',
|
|
1704
|
+
'dev.admins_only': 'Seuls les administrateurs ajoutent et retirent des développeurs.',
|
|
1705
|
+
'dev.err.email': 'L’adresse e-mail n’est pas valide.',
|
|
1706
|
+
'dev.added_ws': 'Développeur ajouté à l’espace de travail {name}.',
|
|
1707
|
+
'dev.added': 'Développeur ajouté.',
|
|
1708
|
+
'dev.err.current': 'Le mot de passe actuel est incorrect.',
|
|
1709
|
+
'dev.pw_changed': 'Mot de passe changé.',
|
|
1710
|
+
'dev.email_saved': 'Adresse e-mail enregistrée.',
|
|
1711
|
+
'dev.not_found': 'Introuvable.',
|
|
1712
|
+
'dev.role_changed': 'Rôle modifié.',
|
|
1713
|
+
'dev.removed': 'Développeur retiré.',
|
|
1046
1714
|
};
|