pgkiln 0.56.0 → 0.58.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.
@@ -672,4 +672,715 @@ export const fr: BuilderMessages = {
672
672
  'sql.tool.reports.desc': 'Tables sans clé, clés étrangères non indexées, lacunes de sécurité au niveau des lignes, et plus encore.',
673
673
  'sql.tool.activity': "Surveiller l'activité",
674
674
  'sql.tool.activity.desc': 'Pages vues, erreurs et pages lentes des applications.',
675
+ // ------------------------------------------------------------ SQL Worksheet (sprint 123)
676
+ 'ws.title': 'Feuille de calcul SQL',
677
+ 'ws.tab.result': 'Résultat de la requête',
678
+ 'ws.tab.chart': 'Graphique',
679
+ 'ws.tab.output': 'Sortie du script',
680
+ 'ws.tab.notices': 'Avis',
681
+ 'ws.tab.explain': "Plan d'exécution",
682
+ 'ws.tab.autotrace': 'Autotrace',
683
+ 'ws.tab.history': 'Historique SQL',
684
+ 'ob.type.all': 'Tous les objets',
685
+ 'ob.type.table': 'Tables',
686
+ 'ob.type.view': 'Vues',
687
+ 'ob.type.matview': 'Vues matérialisées',
688
+ 'ob.type.index': 'Index',
689
+ 'ob.type.sequence': 'Séquences',
690
+ 'ob.type.type': 'Types',
691
+ 'ob.type.function': 'Fonctions',
692
+ 'ob.type.procedure': 'Procédures',
693
+ 'ob.type.trigger': 'Déclencheurs',
694
+ 'ob.type.policy': 'Politiques',
695
+ 'ws.nav.no_schema': 'Aucun schéma que vous puissiez utiliser.',
696
+ 'ws.nav.no_objects': 'Aucun objet dans {schema}.',
697
+ 'ws.nav.no_type': 'Aucun objet du type « {type} » dans {schema}.',
698
+ 'ws.nav.drag': '{type} : faites-le glisser dans l’éditeur pour un SELECT',
699
+ 'ws.nav.open': 'Ouvrir',
700
+ 'ws.nav.cols_limit': 'Les colonnes sont listées pour les {n} premières tables et vues.',
701
+ 'ws.rows_one': '{n} ligne',
702
+ 'ws.rows': '{n} lignes',
703
+ 'ws.stmt_one': '{n} instruction',
704
+ 'ws.stmt': '{n} instructions',
705
+ 'ws.download': 'Télécharger',
706
+ 'ws.dl.sql': 'INSERT SQL',
707
+ 'ws.result.showing': 'les {n} premières affichées',
708
+ 'ws.line': 'ligne {n}',
709
+ 'ws.all_rows': 'Toutes les lignes',
710
+ 'ws.all_rows.title': 'Réexécuter l’instruction et afficher jusqu’à {n} lignes',
711
+ 'ws.chart.title': 'Créer un graphique (Ctrl+F11)',
712
+ 'ws.copy': 'Copier',
713
+ 'ws.value': 'Valeur',
714
+ 'ws.close': 'Fermer',
715
+ 'ws.result.failed': 'L’instruction a échoué : voir la sortie du script.',
716
+ 'ws.result.no_rows': 'Aucune ligne : la dernière instruction n’était pas une requête. Voir la sortie du script.',
717
+ 'ws.result.empty': 'Exécutez une requête (Ctrl+Entrée) pour voir ses lignes ici.',
718
+ 'ws.log.not_run': '-- {n}. ligne {line} : non exécutée (une instruction précédente a échoué)',
719
+ 'ws.log.head': '-- {n}. ligne {line} : {sql}',
720
+ 'ws.error': 'Erreur : {error}',
721
+ 'ws.error_at': 'Erreur à la ligne {line} : {error}',
722
+ 'ws.error_at_col': 'Erreur à la ligne {line}, colonne {col} : {error}',
723
+ 'ws.log.first': '({n} premières lignes sur {rows})',
724
+ 'ws.log.summary_one': '{n} instruction exécutée, {failed} en échec, {ms} ms.',
725
+ 'ws.log.summary': '{n} instructions exécutées, {failed} en échec, {ms} ms.',
726
+ 'ws.log.empty': 'Exécuter le script (F5) exécute chaque instruction et la consigne ici.',
727
+ 'ws.notice.meta': 'instruction {n} · {at}',
728
+ 'ws.notice.empty': 'Les messages RAISE NOTICE, INFO et WARNING de la dernière exécution s’affichent ici.',
729
+ 'ws.no_plan': 'Aucun plan.',
730
+ 'ws.hist.search': 'Rechercher dans l’historique',
731
+ 'ws.hist.status': 'Statut',
732
+ 'ws.hist.all': 'Toutes',
733
+ 'ws.hist.ok': 'Réussies',
734
+ 'ws.hist.failed': 'En échec',
735
+ 'ws.hist.failed_title': 'En échec : {error}',
736
+ 'ws.hist.insert': 'Insérer au curseur : {sql}',
737
+ 'ws.hist.run_title': 'La mettre dans l’éditeur et l’exécuter',
738
+ 'ws.hist.empty': 'Vos instructions s’affichent ici une fois exécutées.',
739
+ 'ws.ready': 'Prêt.',
740
+ 'ws.status.explain': 'Plan d’exécution en {ms} ms.',
741
+ 'ws.status.autotrace': 'Autotrace en {ms} ms.',
742
+ 'ws.status.rows_one': '{n} ligne en {ms} ms.',
743
+ 'ws.status.rows': '{n} lignes en {ms} ms.',
744
+ 'ws.status.stmts_one': '{n} instruction en {ms} ms.',
745
+ 'ws.status.stmts': '{n} instructions en {ms} ms.',
746
+ 'ws.errors': 'Erreurs',
747
+ 'ws.warnings': 'Avertissements',
748
+ 'ws.running': 'Exécution…',
749
+ 'ws.chart.empty': 'Créer un graphique (Ctrl+F11) dessine la dernière requête : une colonne de libellés et des colonnes numériques.',
750
+ 'ws.explain.empty': 'Plan d’exécution (F10) montre comment PostgreSQL exécuterait l’instruction au curseur ; rien n’est exécuté.',
751
+ 'ws.autotrace.empty': 'Autotrace (F6) exécute l’instruction au curseur avec EXPLAIN ANALYZE puis l’annule : lignes réelles, temps et tampons par étape.',
752
+ 'ws.idle.seconds': '{n} secondes',
753
+ 'ws.idle.minute': '{n} minute',
754
+ 'ws.idle.minutes': '{n} minutes',
755
+ 'ws.txn.none': 'Aucune transaction ouverte',
756
+ 'ws.txn.failed': 'Transaction en échec',
757
+ 'ws.txn.open': 'Transaction ouverte',
758
+ 'ws.txn.under_minute': 'moins d’une minute',
759
+ 'ws.txn.min': '{n} min',
760
+ 'ws.txn.no_txn': 'Cette feuille n’a aucune transaction ouverte.',
761
+ 'ws.txn.busy': 'Une exécution est encore en cours dans cette feuille : attendez qu’elle se termine.',
762
+ 'ws.txn.end_failed': '{action} a échoué : {error}. La connexion a été fermée, la transaction est donc annulée.',
763
+ 'ws.txn.commit_rolled': 'La transaction avait échoué, COMMIT l’a donc annulée : rien n’a été enregistré.',
764
+ 'ws.txn.committed': 'Validée ({what}).',
765
+ 'ws.txn.rolled_back': 'Annulée ({what} sans effet).',
766
+ 'ws.txn.rolled_back_failed': 'Annulée ({what} sans effet ; la transaction avait échoué).',
767
+ 'ws.file.name_long': 'Un nom compte au plus 200 caractères.',
768
+ 'ws.file.too_big': 'Un script fait au plus 5 Mo.',
769
+ 'ws.file.new_name': 'Saisissez le nouveau nom.',
770
+ 'ws.file.need_name': 'Nommez la feuille pour l’enregistrer comme script.',
771
+ 'ws.file.exists': 'Un script nommé « {name} » existe déjà.',
772
+ 'ws.file.renamed': 'Renommé en « {name} ».',
773
+ 'ws.file.saved': 'Enregistré comme script « {name} ».',
774
+ 'ws.txn.switched': 'Vous avez changé d’espace de travail : la transaction a été annulée.',
775
+ 'ws.txn.open_first': 'Cette feuille a une transaction ouverte : faites d’abord Commit ou Rollback, ou revenez à Transaction.',
776
+ 'ws.txn.needs_js': 'Le mode transaction nécessite JavaScript (l’onglet de feuille auquel il appartient) ; cette exécution a été refusée.',
777
+ 'ws.txn.runs_as': 'La transaction de cette feuille s’exécute en tant que {who} : faites Commit ou Rollback avant de changer Exécuter en tant que.',
778
+ 'ws.txn.not_in_txn': 'Ligne {line} : {what} ne peut pas s’exécuter dans une transaction. Passez la feuille en Autocommit pour l’exécuter.',
779
+ 'ws.txn.new_started': '{note} Une nouvelle transaction a commencé.',
780
+ 'ws.txn.begin_left': 'La transaction commencée par BEGIN était encore ouverte à la fin de l’exécution et a été annulée. Passez la feuille en Transaction pour garder une transaction ouverte entre les exécutions.',
781
+ 'ws.txn.ended_editor': 'La transaction s’est terminée par le COMMIT ou le ROLLBACK de l’éditeur ; la prochaine exécution en commence une nouvelle.',
782
+ 'ws.txn.aborted': 'Une instruction a échoué, la transaction est donc interrompue : Rollback la termine (COMMIT l’annulerait aussi).',
783
+ 'ws.chart.nothing': 'Rien à dessiner : la requête a besoin d’une colonne numérique à côté de ses libellés.',
784
+ 'ws.chart.again': 'Redessiner',
785
+ 'ws.chart.name': 'Nom du graphique',
786
+ 'ws.chart.save': 'Enregistrer le graphique',
787
+ 'ws.binds.title': 'Valeurs pour l’exécution',
788
+ 'ws.binds.help': 'Les variables de liaison ({bind}) reçoivent une valeur sous forme de littéral entre guillemets ; les variables de substitution ({sub}) insèrent le texte tel quel dans l’instruction. Vide vaut NULL pour une variable de liaison.',
789
+ 'ws.runs_as_role': 'le rôle {role} de {app}',
790
+ 'ws.refresh_nav': 'Actualiser le navigateur',
791
+ 'ws.navigator': 'Navigateur',
792
+ 'ws.objects': 'Objets',
793
+ 'ws.files': 'Fichiers',
794
+ 'ws.schema': 'Schéma',
795
+ 'ws.object_type': 'Type d’objet',
796
+ 'ws.search_objects': 'Rechercher des objets',
797
+ 'ws.refresh': 'Actualiser',
798
+ 'ws.sql_scripts': '(Scripts SQL)',
799
+ 'ws.no_scripts': 'Pas encore de scripts : enregistrez une feuille pour en créer un.',
800
+ 'ws.resize_nav': 'Redimensionner le navigateur',
801
+ 'ws.worksheet': 'Feuille',
802
+ 'ws.toggle_nav': 'Masquer ou afficher le navigateur',
803
+ 'ws.file.menu': 'Enregistrer, ouvrir, renommer ou télécharger la feuille (Ctrl+S enregistre)',
804
+ 'ws.untitled': 'Sans titre',
805
+ 'ws.name': 'Nom',
806
+ 'ws.save_title': 'Enregistrer (Ctrl+S)',
807
+ 'ws.save_as': 'Enregistrer comme nouveau',
808
+ 'ws.rename': 'Renommer',
809
+ 'ws.new': 'Nouveau',
810
+ 'ws.open_file': 'Ouvrir…',
811
+ 'ws.pin_title': 'Épingler cette feuille sur l’accueil de SQL Workshop',
812
+ 'ws.pin': 'Épingler',
813
+ 'ws.run_statement': 'Exécuter l’instruction',
814
+ 'ws.run_script': 'Exécuter le script',
815
+ 'ws.continue': 'Continuer en cas d’erreur',
816
+ 'ws.format': 'Mettre en forme',
817
+ 'ws.format_title': 'Mettre en forme (Ctrl+F7)',
818
+ 'ws.case_title': 'Changer la casse de la sélection (Ctrl+B)',
819
+ 'ws.case': 'Changer la casse',
820
+ 'ws.find_title': 'Rechercher et remplacer (Ctrl+F, Ctrl+H)',
821
+ 'ws.find': 'Rechercher',
822
+ 'ws.load_title': 'Charger des données dans une table',
823
+ 'ws.load': 'Charger des données',
824
+ 'ws.keys': 'Raccourcis clavier',
825
+ 'ws.key.save': 'Enregistrer',
826
+ 'ws.key.find': 'Rechercher / remplacer',
827
+ 'ws.key.goto': 'Aller à la ligne',
828
+ 'ws.key.comment': 'Commenter les lignes',
829
+ 'ws.key.suggest': 'Suggestions',
830
+ 'ws.key.help': 'Aide',
831
+ 'ws.key.fullscreen': 'Quitter le plein écran',
832
+ 'ws.kwcase': 'Mots-clés en',
833
+ 'ws.lower': 'minuscules',
834
+ 'ws.upper': 'MAJUSCULES',
835
+ 'ws.help': 'Aide sur la feuille de calcul SQL',
836
+ 'ws.commit_label': 'Commit',
837
+ 'ws.txn.mode_title': 'Autocommit : chaque instruction est validée seule. Transaction : les instructions restent dans une transaction jusqu’à Commit ou Rollback.',
838
+ 'ws.autocommit': 'Autocommit',
839
+ 'ws.transaction': 'Transaction',
840
+ 'ws.txn.runs_as_title': 'S’exécute en tant que {who}',
841
+ 'ws.txn.commit_title': 'Valider la transaction de la feuille',
842
+ 'ws.txn.rollback_title': 'Annuler la transaction de la feuille',
843
+ 'ws.rollback': 'Rollback',
844
+ 'ws.run_as': 'Exécuter en tant que',
845
+ 'ws.run_as_title': 'Sous quelle identité les instructions s’exécutent',
846
+ 'ws.owner_conn': 'Connexion du propriétaire',
847
+ 'ws.ws_login': 'Connexion de l’espace de travail',
848
+ 'ws.clear_title': 'Vider l’éditeur',
849
+ 'ws.clear': 'Vider',
850
+ 'ws.fullscreen_title': 'Plein écran (Échap pour quitter)',
851
+ 'ws.fullscreen': 'Plein écran',
852
+ 'ws.runs_as': 'S’exécute en tant que {who}',
853
+ 'ws.search_path': '{schema} en premier dans le chemin de recherche ({change})',
854
+ 'ws.change': 'modifier',
855
+ 'ws.commit.txn': 'Les instructions restent dans une transaction jusqu’à Commit ou Rollback ; elle est annulée après {idle} sans exécution.',
856
+ 'ws.commit.auto': 'Chaque instruction est validée seule.',
857
+ 'ws.worksheets': 'Feuilles',
858
+ 'ws.replace_with': 'Remplacer par',
859
+ 'ws.regex': 'Regex',
860
+ 'ws.match_case': 'Respecter la casse',
861
+ 'ws.next': 'Suivant',
862
+ 'ws.replace': 'Remplacer',
863
+ 'ws.replace_all': 'Tout remplacer',
864
+ 'ws.line_ph': 'Ligne',
865
+ 'ws.close_esc': 'Fermer (Échap)',
866
+ 'ws.resize_out': 'Redimensionner la sortie',
867
+ 'ws.output': 'Sortie',
868
+ 'js.ws.copied': '{what} copié.',
869
+ 'js.ws.no_copy': 'La copie n’est pas autorisée ici.',
870
+ 'js.ws.the_statement': 'L’instruction',
871
+ 'js.ws.rows': '{n} lignes',
872
+ 'js.ws.untitled': 'Sans titre {n}',
873
+ 'js.ws.script': 'Script « {name} »',
874
+ 'js.ws.unsaved': '(modifications non enregistrées)',
875
+ 'js.ws.not_saved': 'Non enregistrée comme script',
876
+ 'js.ws.close_tab': 'Fermer {name}',
877
+ 'js.ws.new_tab': 'Nouvelle feuille',
878
+ 'js.ws.close_unsaved': 'Fermer « {name} » sans enregistrer ?',
879
+ 'js.ws.txn_unknown': 'État de la transaction inconnu',
880
+ 'js.ws.txn_not_ended': 'La transaction n’a pas pu être terminée : rechargez la page.',
881
+ 'js.ws.txn_confirm': 'Passer en Autocommit annule la transaction ouverte. L’annuler ?',
882
+ 'js.ws.formatted': 'Mis en forme.',
883
+ 'js.ws.format_failed': 'La mise en forme a échoué.',
884
+ 'js.ws.bad_pattern': 'Motif non valide : {error}',
885
+ 'js.ws.not_found': 'Introuvable.',
886
+ 'js.ws.open_ob': 'Ouvrir dans le navigateur d’objets',
887
+ 'js.ws.close': 'Fermer',
888
+ 'js.ws.open_failed': 'L’objet n’a pas pu être ouvert.',
889
+ 'js.ws.replaced': '{n} remplacé(s).',
890
+ // ------------------------------------------------------------ SQL Worksheet, the browser's transaction texts (sprint 123)
891
+ 'js.ws.close_txn': '« {name} » a une transaction ouverte. La fermer et annuler la transaction ?',
892
+ 'js.ws.commit_txn': 'Les instructions restent dans une transaction jusqu’à Commit ou Rollback ; elle est annulée après {idle} sans exécution.',
893
+ 'js.ws.commit_auto': 'Chaque instruction est validée seule.',
894
+ 'js.ws.idle_seconds': '{n} secondes',
895
+ 'js.ws.idle_minute': '{n} minute',
896
+ 'js.ws.idle_minutes': '{n} minutes',
897
+ 'js.ws.txn_none': 'Aucune transaction ouverte',
898
+ 'js.ws.txn_failed': 'Transaction en échec',
899
+ 'js.ws.txn_open': 'Transaction ouverte',
900
+ 'js.ws.stmt_one': '{n} instruction',
901
+ 'js.ws.stmt': '{n} instructions',
902
+ 'js.ws.under_minute': 'moins d’une minute',
903
+ 'js.ws.min': '{n} min',
904
+ // ------------------------------------------------------------ Object Browser (sprint 123)
905
+ 'ob.title': 'Navigateur d’objets',
906
+ 'ob.tab.columns': 'Colonnes',
907
+ 'ob.tab.data': 'Données',
908
+ 'ob.tab.indexes': 'Index',
909
+ 'ob.tab.constraints': 'Contraintes',
910
+ 'ob.tab.triggers': 'Déclencheurs',
911
+ 'ob.tab.grants': 'Droits',
912
+ 'ob.tab.rls': 'Sécurité au niveau des lignes',
913
+ 'ob.tab.dependencies': 'Dépendances',
914
+ 'ob.tab.statistics': 'Statistiques',
915
+ 'ob.tab.ddl': 'DDL',
916
+ 'ob.filter_label': 'Filtrer les objets',
917
+ 'ob.filter': 'Filtrer',
918
+ 'ob.extension': 'extension',
919
+ 'ob.no_schema': 'Aucun schéma que vous puissiez utiliser.',
920
+ 'ob.create_in': 'Créer des objets de base de données dans {schema}',
921
+ 'ob.tile.table_form': 'Table (formulaire)',
922
+ 'ob.tile.table_form.desc': 'Colonnes, clés, index et sécurité dans un formulaire',
923
+ 'ob.kind.table': 'Table',
924
+ 'ob.kind.view': 'Vue',
925
+ 'ob.kind.function': 'Fonction',
926
+ 'ob.kind.sequence': 'Séquence',
927
+ 'ob.kind.index': 'Index',
928
+ 'ob.tile.start': 'Commencer une instruction CREATE {what}',
929
+ 'ob.tile.quick': 'Quick SQL',
930
+ 'ob.tile.quick.desc': 'Un modèle de données en abrégé',
931
+ 'ob.tile.load': 'Charger des données',
932
+ 'ob.tile.load.desc': 'Une table à partir d’un fichier',
933
+ 'ob.select_hint': 'Sélectionnez un objet dans l’arborescence ou filtrez-le par nom.',
934
+ 'ob.schema': 'Schéma',
935
+ 'ob.system': 'Afficher les objets système',
936
+ 'ob.create': 'Créer',
937
+ 'ob.db_objects': 'Objets de base de données',
938
+ 'ob.err.table': 'Choisissez une table que vous pouvez utiliser.',
939
+ 'ob.err.col_name': 'Un nom de colonne est une lettre ou _ suivie de lettres, de chiffres, de _ ou de $.',
940
+ 'ob.err.col_exists': '{column} est déjà une colonne.',
941
+ 'ob.err.type': 'Un type est un nom avec une taille facultative, p. ex. text, numeric(9,2), varchar(40), int[].',
942
+ 'ob.err.choose_col': 'Choisissez une colonne de la table.',
943
+ 'ob.err.new_name': 'Le nouveau nom doit être un nom valide que la table n’a pas encore.',
944
+ 'ob.err.default': "Une valeur par défaut est une expression (au plus 200 caractères, sans ; ni commentaires), p. ex. now(), 0 ou 'new'.",
945
+ 'ob.err.nothing': 'Rien à modifier : choisissez un nouveau type, les valeurs nulles ou une valeur par défaut.',
946
+ 'ob.err.action': 'Action inconnue.',
947
+ 'ob.review': 'Vérifiez l’instruction et cliquez sur Exécuter : rien n’a encore été modifié.',
948
+ 'ob.none': 'Aucun.',
949
+ 'ob.ddl_of': 'DDL de {name}',
950
+ 'ob.no_ddl': 'Pas de DDL (objet d’une extension, ou illisible avec cette connexion).',
951
+ 'ob.source_of': 'Source de {name}',
952
+ 'ob.no_source': 'Une fonction d’agrégat ou de fenêtrage : pas de source.',
953
+ 'ob.definition_of': 'Définition de {name}',
954
+ 'ob.size': 'Taille : {size}',
955
+ 'ob.more': 'Plus',
956
+ 'ob.column': 'Colonne',
957
+ 'ob.add_col': 'Ajouter une colonne',
958
+ 'ob.name': 'Nom',
959
+ 'ob.type': 'Type',
960
+ 'ob.show_sql': 'Afficher le SQL',
961
+ 'ob.modify_col': 'Modifier la colonne',
962
+ 'ob.new_type': 'Nouveau type',
963
+ 'ob.the_same': 'inchangé',
964
+ 'ob.nulls': 'Valeurs nulles',
965
+ 'ob.allowed': 'autorisées',
966
+ 'ob.default': 'Valeur par défaut',
967
+ 'ob.set_to': 'définir à',
968
+ 'ob.default_none': 'aucune',
969
+ 'ob.default_expr': 'Expression par défaut',
970
+ 'ob.rename_col': 'Renommer la colonne',
971
+ 'ob.new_name': 'Nouveau nom',
972
+ 'ob.new_name_ph': 'nouveau nom',
973
+ 'ob.drop_col': 'Supprimer la colonne',
974
+ 'ob.toolbar_note': 'Chacune écrit l’instruction ALTER TABLE dans la feuille de calcul SQL : vérifiez-la et exécutez-la.',
975
+ 'ob.no_rows': 'Aucune ligne.',
976
+ 'ob.pages': 'Pages',
977
+ 'ob.previous': '‹ Précédent',
978
+ 'ob.next': 'Suivant ›',
979
+ 'ob.rows_range': 'Lignes {from}–{to}',
980
+ 'ob.change_rows': 'Pour modifier des lignes, utilisez la feuille de calcul SQL ou une grille interactive sur la table dans une application.',
981
+ 'ob.rls_on': 'La sécurité au niveau des lignes est activée',
982
+ 'ob.rls_forced': '(imposée aussi au propriétaire)',
983
+ 'ob.rls_off': 'La sécurité au niveau des lignes est désactivée.',
984
+ 'ob.no_policies': 'Aucune politique.',
985
+ 'ob.used_by': 'Utilisé par',
986
+ 'ob.nothing_refers': 'Rien n’y fait référence.',
987
+ 'ob.uses': 'Utilise',
988
+ 'ob.refers_nothing': 'Il ne fait référence à rien d’autre.',
989
+ 'ob.edit_table': 'Modifier la table',
990
+ 'ob.security': 'Sécurité',
991
+ // ------------------------------------------------------------ Table Properties (sprint 123)
992
+ 'te.move_up': 'Monter',
993
+ 'te.move_down': 'Descendre',
994
+ 'te.name': 'Nom',
995
+ 'te.type': 'Type',
996
+ 'te.key': 'Clé',
997
+ 'te.pk': 'Clé primaire',
998
+ 'te.not_null': 'Not null',
999
+ 'te.generated': 'Générée (stockée)',
1000
+ 'te.default': 'Valeur par défaut',
1001
+ 'te.identity': 'Identité',
1002
+ 'te.comment': 'Commentaire',
1003
+ 'te.remove': 'Retirer',
1004
+ 'te.columns': 'Colonnes',
1005
+ 'te.add_col': 'Ajouter une colonne',
1006
+ 'te.pk_name': 'Nom de la clé primaire',
1007
+ 'te.pk_help': 'Cochez Clé sur les colonnes de la clé primaire.',
1008
+ 'te.uniques': 'Clés uniques',
1009
+ 'te.cols_comma': 'Colonnes (séparées par des virgules)',
1010
+ 'te.fks': 'Clés étrangères',
1011
+ 'te.references': 'Référence',
1012
+ 'te.their_cols': 'Leurs colonnes',
1013
+ 'te.its_pk': 'sa clé primaire',
1014
+ 'te.on_delete': 'À la suppression',
1015
+ 'te.checks': 'Contrôles',
1016
+ 'te.condition': 'Condition',
1017
+ 'te.indexes': 'Index',
1018
+ 'te.cols_exprs': 'Colonnes ou expressions',
1019
+ 'te.unique': 'Unique',
1020
+ 'te.kept': 'Conservés tels quels (autre méthode ou condition) :',
1021
+ 'te.more': 'Commentaire et sécurité',
1022
+ 'te.rls': 'Sécurité au niveau des lignes : lignes uniquement via des politiques',
1023
+ 'te.force_rls': 'L’imposer aussi au propriétaire de la table',
1024
+ 'te.partitioning': 'Partitionnement',
1025
+ 'te.partition_by': 'Partitionner par',
1026
+ 'te.not_partitioned': 'Non partitionnée',
1027
+ 'te.part_help': 'Les partitions elles-mêmes sont des tables créées avec CREATE TABLE … PARTITION OF dans la feuille.',
1028
+ 'te.no_changes': 'Pas encore de modifications : la table est telle que le formulaire la montre.',
1029
+ 'te.fill_in': 'Remplissez la table et cliquez sur Aperçu du DDL.',
1030
+ 'te.output': 'Sortie',
1031
+ 'te.output_empty': 'Appliquer montre ici ce qui s’est passé.',
1032
+ 'te.schema': 'Schéma',
1033
+ 'te.table_name': 'Nom de la table',
1034
+ 'te.props': 'Propriétés de la table',
1035
+ 'te.preview': 'Aperçu du DDL',
1036
+ 'te.apply': 'Appliquer',
1037
+ 'te.open_ws': 'Ouvrir dans la feuille',
1038
+ 'te.review': 'Vérifiez les instructions et exécutez-les : rien n’a encore été modifié.',
1039
+ 'te.changed': '{table} modifiée : {what}.',
1040
+ 'te.created': '{table} créée : {what}.',
1041
+ 'te.nothing_changed': 'Rien n’a été modifié',
1042
+ 'te.rolled_back': 'les instructions se sont exécutées dans une transaction, qui a été annulée.',
1043
+ 'te.failed_stmt': 'Instruction en échec',
1044
+ 'te.title_table': 'Table {table}',
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.',
675
1386
  };