From a84f8221244477985791fc380e9b459ae6dc2ce4 Mon Sep 17 00:00:00 2001 From: Alexander Skoblikov Date: Thu, 13 Jun 2024 17:00:49 +0300 Subject: [PATCH 001/141] dbeaver/pro#1803 send permissions update to headless session (#2698) Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com> --- .../server/events/WSSubjectPermissionUpdatedEventHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/WSSubjectPermissionUpdatedEventHandler.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/WSSubjectPermissionUpdatedEventHandler.java index 3aee6802d2..05bd7280cc 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/WSSubjectPermissionUpdatedEventHandler.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/WSSubjectPermissionUpdatedEventHandler.java @@ -17,6 +17,7 @@ package io.cloudbeaver.server.events; import io.cloudbeaver.model.session.BaseWebSession; +import io.cloudbeaver.model.session.WebHeadlessSession; import io.cloudbeaver.service.security.SMUtils; import org.jkiss.code.NotNull; import org.jkiss.dbeaver.DBException; @@ -41,7 +42,8 @@ protected void updateSessionData(@NotNull BaseWebSession activeUserSession, @Not } activeUserSession.refreshUserData(); var newUserPermissions = activeUserSession.getUserContext().getUserPermissions(); - boolean shouldUpdateData = !(SMUtils.isRMAdmin(oldUserPermissions) && SMUtils.isRMAdmin(newUserPermissions)); + boolean shouldUpdateData = activeUserSession instanceof WebHeadlessSession + || !(SMUtils.isRMAdmin(oldUserPermissions) && SMUtils.isRMAdmin(newUserPermissions)); if (shouldUpdateData) { super.updateSessionData(activeUserSession, event); } From e7f6cbd2fc73595a6776bc2e1ed9624d86e2e03c Mon Sep 17 00:00:00 2001 From: Alexander Skoblikov Date: Thu, 13 Jun 2024 17:50:37 +0300 Subject: [PATCH 002/141] dbeaver/pro#2116 send user deleted event for headless session (#2659) Co-authored-by: Elizabeth --- .../io/cloudbeaver/server/events/WSUserEventHandler.java | 2 +- .../cloudbeaver/service/session/WebSessionManager.java | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/WSUserEventHandler.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/WSUserEventHandler.java index 59adcbda55..4188468da5 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/WSUserEventHandler.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/WSUserEventHandler.java @@ -45,7 +45,7 @@ public void handleEvent(@NotNull EVENT event) { break; case USER_DELETED: if (event instanceof WSUserDeletedEvent userDeletedEvent) { - sessionManager.closeUserSession(userDeletedEvent.getDeletedUserId()); + sessionManager.closeUserSession(userDeletedEvent); } break; default: diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/session/WebSessionManager.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/session/WebSessionManager.java index db96e088b3..40dc20ae00 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/session/WebSessionManager.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/session/WebSessionManager.java @@ -37,6 +37,7 @@ import org.jkiss.dbeaver.model.auth.SMAuthInfo; import org.jkiss.dbeaver.model.security.user.SMAuthPermissions; import org.jkiss.dbeaver.model.websocket.WSConstants; +import org.jkiss.dbeaver.model.websocket.event.WSUserDeletedEvent; import org.jkiss.dbeaver.model.websocket.event.session.WSSessionStateEvent; import org.jkiss.utils.CommonUtils; @@ -347,11 +348,15 @@ public void sendSessionsStates() { } } - public void closeUserSession(@NotNull String userId) { + public void closeUserSession(@NotNull WSUserDeletedEvent userDeletedEvent) { synchronized (sessionMap) { for (Iterator iterator = sessionMap.values().iterator(); iterator.hasNext(); ) { var session = iterator.next(); - if (CommonUtils.equalObjects(session.getUserContext().getUserId(), userId)) { + if (CommonUtils.equalObjects(session.getUserContext().getUserId(), + userDeletedEvent.getDeletedUserId())) { + if (session instanceof WebHeadlessSession headlessSession) { + headlessSession.addSessionEvent(userDeletedEvent); + } iterator.remove(); session.close(); } From df4b88c7e470eff26d15bf21d3d58c6faacde976 Mon Sep 17 00:00:00 2001 From: Anastasiya <45152336+LonwoLonwo@users.noreply.github.com> Date: Thu, 13 Jun 2024 19:13:16 +0200 Subject: [PATCH 003/141] dbeaver/dbeaver#17169 Update FireBird driver to version 5.0.4 (#2707) --- server/drivers/jaybird/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/drivers/jaybird/pom.xml b/server/drivers/jaybird/pom.xml index 4c8565ab1f..6e817e6f23 100644 --- a/server/drivers/jaybird/pom.xml +++ b/server/drivers/jaybird/pom.xml @@ -18,7 +18,7 @@ org.firebirdsql.jdbc jaybird - 5.0.2.java11 + 5.0.4.java11 From bdfb637633fb0e9fe5c9dde449697885fad8e5eb Mon Sep 17 00:00:00 2001 From: Anastasiya <45152336+LonwoLonwo@users.noreply.github.com> Date: Fri, 14 Jun 2024 11:36:10 +0200 Subject: [PATCH 004/141] =?UTF-8?q?CB-4870=20add=20tooltip=20for=20Disable?= =?UTF-8?q?=20Table=20presentation=20setting;=20add=20Germa=E2=80=A6=20(#2?= =?UTF-8?q?704)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * CB-4870 add tooltip for Disable Table presentation setting; add German localization * CB-4870 Update ru localization --------- Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com> --- .../src/ConnectionsLocaleService.ts | 2 + .../core-connections/src/locales/de.ts | 45 +++++++++++++++++ .../core-projects/src/LocaleService.ts | 2 + .../packages/core-projects/src/locales/de.ts | 1 + .../src/LocaleService.ts | 2 + .../src/locales/de.ts | 11 +++++ .../core-version/src/VersionLocaleService.ts | 2 + .../packages/core-version/src/locales/de.ts | 7 +++ .../packages/core-view/src/LocaleService.ts | 2 + webapp/packages/core-view/src/locales/de.ts | 5 ++ .../src/DataGridSettingsService.ts | 1 + .../src/LocaleService.ts | 2 + .../src/locales/de.ts | 21 ++++++++ .../src/locales/en.ts | 1 + .../src/locales/ru.ts | 1 + .../plugin-data-viewer/src/LocaleService.ts | 2 + .../plugin-data-viewer/src/locales/de.ts | 49 +++++++++++++++++++ 17 files changed, 156 insertions(+) create mode 100644 webapp/packages/core-connections/src/locales/de.ts create mode 100644 webapp/packages/core-projects/src/locales/de.ts create mode 100644 webapp/packages/core-settings-localization/src/locales/de.ts create mode 100644 webapp/packages/core-version/src/locales/de.ts create mode 100644 webapp/packages/core-view/src/locales/de.ts create mode 100644 webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts create mode 100644 webapp/packages/plugin-data-viewer/src/locales/de.ts diff --git a/webapp/packages/core-connections/src/ConnectionsLocaleService.ts b/webapp/packages/core-connections/src/ConnectionsLocaleService.ts index 1d2bafb82e..a3ef42fd12 100644 --- a/webapp/packages/core-connections/src/ConnectionsLocaleService.ts +++ b/webapp/packages/core-connections/src/ConnectionsLocaleService.ts @@ -28,6 +28,8 @@ export class ConnectionsLocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'de': + return (await import('./locales/de')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-connections/src/locales/de.ts b/webapp/packages/core-connections/src/locales/de.ts new file mode 100644 index 0000000000..0ae56ba802 --- /dev/null +++ b/webapp/packages/core-connections/src/locales/de.ts @@ -0,0 +1,45 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_connections_connections_settings_group', 'Verbindungen'], + ['connections_administration_new_connection', 'Neue Verbindung'], + ['connections_administration_connection_access_empty', 'Keine verfügbaren Benutzer und Teams'], + ['connections_administration_configuration_wizard_step_title', 'Datenbankverbindungen'], + ['connections_administration_configuration_wizard_step_description', 'Datenbankverbindungen hinzufügen'], + ['connections_administration_configuration_wizard_title', 'Datenbankverbindungen hinzufügen'], + ['connections_administration_connection_no_information', 'Keine Information verfügbar'], + ['connections_administration_delete_confirmation', 'Sie werden diese Verbindungen löschen: '], + ['connections_administration_tools_delete_tooltip', 'Löschen Sie ausgewählte Verbindungen'], + ['connections_administration_tools_refresh_success', 'Die Verbindungsliste wurde aktualisiert'], + ['connections_database_authentication', 'Datenbankauthentifizierung'], + ['connections_connection_edit_not_own_deny', 'Sie haben keinen Zugriff, um diese Verbindung zu bearbeiten.'], + ['connections_connection_connect', 'Verbinden'], + ['connections_connection_create_search_database', 'Suchen'], + ['connections_connection_edit_authentication', 'Authentifizierung'], + ['connections_connection_edit_access', 'Zugang'], + ['connections_connection_edit_access_team', 'Team'], + ['connections_connection_edit_search', 'Suchen'], + ['connections_connection_edit_search_hosts', 'Hostnamen'], + ['connections_connection_address', 'Adresse'], + ['connections_connection_folder', 'Ordner'], + ['connections_connection_name', 'Verbindungsname'], + ['connections_connection_access_user_or_team_name', 'Benutzer- oder Teamname'], + ['connections_connection_access_filter_placeholder', 'Suchen Sie nach dem Benutzer- oder Teamnamen'], + ['connections_connection_access_admin_info', 'Administratoren sehen alle Verbindungen.'], + ['connections_connection_description', 'Beschreibung'], + ['connections_connection_project', 'Projekt'], + ['connections_connection_test_tooltip', 'Testverbindung'], + ['connections_connection_test_fail', 'Verbindungstest ist fehlgeschlagen'], + ['connections_network_handler_default_user', 'Benutzer'], + ['connections_network_handler_default_password', 'Passwort'], + ['connections_network_handler_ssh_tunnel_user', 'Benutzer'], + ['connections_network_handler_ssh_tunnel_password', 'Passwort'], + ['connections_network_handler_ssh_tunnel_auth_type', 'Authentifizierungsmethode'], + ['connections_network_handler_ssh_tunnel_advanced_settings', 'Erweiterte Einstellungen'], + ['connections_not_found', 'Es wurden keine Datenbankverbindungen gefunden'], +]; diff --git a/webapp/packages/core-projects/src/LocaleService.ts b/webapp/packages/core-projects/src/LocaleService.ts index edeb82d255..6d5326d0e6 100644 --- a/webapp/packages/core-projects/src/LocaleService.ts +++ b/webapp/packages/core-projects/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'de': + return (await import('./locales/de')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-projects/src/locales/de.ts b/webapp/packages/core-projects/src/locales/de.ts new file mode 100644 index 0000000000..dc89a293cc --- /dev/null +++ b/webapp/packages/core-projects/src/locales/de.ts @@ -0,0 +1 @@ +export default [['core_projects_no_default_project', 'Projekt wird nicht gefunden']]; diff --git a/webapp/packages/core-settings-localization/src/LocaleService.ts b/webapp/packages/core-settings-localization/src/LocaleService.ts index edeb82d255..6d5326d0e6 100644 --- a/webapp/packages/core-settings-localization/src/LocaleService.ts +++ b/webapp/packages/core-settings-localization/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'de': + return (await import('./locales/de')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-settings-localization/src/locales/de.ts b/webapp/packages/core-settings-localization/src/locales/de.ts new file mode 100644 index 0000000000..7345c1b11c --- /dev/null +++ b/webapp/packages/core-settings-localization/src/locales/de.ts @@ -0,0 +1,11 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_settings_localization_settings_locale_label', 'Sprache'], + ['core_settings_localization_settings_locale_description', 'Sprache für die Applikation'], +]; diff --git a/webapp/packages/core-version/src/VersionLocaleService.ts b/webapp/packages/core-version/src/VersionLocaleService.ts index db62c40d59..0c110756bb 100644 --- a/webapp/packages/core-version/src/VersionLocaleService.ts +++ b/webapp/packages/core-version/src/VersionLocaleService.ts @@ -28,6 +28,8 @@ export class VersionLocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'de': + return (await import('./locales/de')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-version/src/locales/de.ts b/webapp/packages/core-version/src/locales/de.ts new file mode 100644 index 0000000000..66a8bff4ca --- /dev/null +++ b/webapp/packages/core-version/src/locales/de.ts @@ -0,0 +1,7 @@ +export default [ + ['version', 'Version'], + ['versions', 'Versionen'], + ['version_latest', 'Neueste'], + ['version_current', 'Aktuell'], + ['versions_load_fail', 'Konnten die neuesten App-Versionsinformationen nicht erhalten'], +]; diff --git a/webapp/packages/core-view/src/LocaleService.ts b/webapp/packages/core-view/src/LocaleService.ts index 4c2039610f..5c9b21628e 100644 --- a/webapp/packages/core-view/src/LocaleService.ts +++ b/webapp/packages/core-view/src/LocaleService.ts @@ -26,6 +26,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/ru')).default; case 'it': return (await import('./locales/it')).default; + case 'de': + return (await import('./locales/de')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-view/src/locales/de.ts b/webapp/packages/core-view/src/locales/de.ts new file mode 100644 index 0000000000..a78aab510c --- /dev/null +++ b/webapp/packages/core-view/src/locales/de.ts @@ -0,0 +1,5 @@ +export default [ + ['core_view_action_create_label', 'Erstellen'], + ['core_view_action_new_folder', 'Neuer Ordner'], + ['core_view_action_edit_label', 'Bearbeiten'], +]; diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/DataGridSettingsService.ts b/webapp/packages/plugin-data-spreadsheet-new/src/DataGridSettingsService.ts index 9204466e14..9600e31efd 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/DataGridSettingsService.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/DataGridSettingsService.ts @@ -59,6 +59,7 @@ export class DataGridSettingsService extends Dependency { }, type: ESettingsValueType.Checkbox, name: 'plugin_data_spreadsheet_new_settings_disable', + description: 'plugin_data_spreadsheet_new_settings_disable_description', }, ]); } diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/LocaleService.ts b/webapp/packages/plugin-data-spreadsheet-new/src/LocaleService.ts index edeb82d255..6d5326d0e6 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/LocaleService.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'de': + return (await import('./locales/de')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts new file mode 100644 index 0000000000..95681f85f9 --- /dev/null +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts @@ -0,0 +1,21 @@ +export default [ + ['data_grid_table_empty_placeholder', 'Die Tabelle enthält keine Spalten'], + ['data_grid_table_editing', 'Bearbeiten'], + ['data_grid_table_editing_set_to_null', 'Auf NULL einstellen'], + ['data_grid_table_editing_row_add', 'Zeile hinzufügen'], + ['data_grid_table_editing_row_add_copy', 'Doppelte Zeile'], + ['data_grid_table_editing_row_delete', 'Aktuelle Zeile löschen'], + ['data_grid_table_editing_row_revert', 'Wert zurückkehren'], + ['data_grid_table_order', 'Sortierung'], + ['data_grid_table_filter_cell_value', 'Zellwert'], + ['data_grid_table_filter_reset_all_filters', 'Alle Filter zurücksetzen'], + ['data_grid_table_disable_order', 'Deaktiviert'], + ['data_grid_table_disable_all_orders', 'Alle deaktivieren'], + ['data_grid_table_delete_filters_and_orders', 'Filter / Sortierung zurücksetzen'], + ['data_grid_table_tooltip_column_header_order', 'Sortieren nach Spalte'], + ['data_grid_table_context_menu_filter_dialog_title', 'Wert bearbeiten'], + ['data_grid_table_index_column_tooltip', 'Wählen ganze Tabelle aus'], + ['data_grid_table_readonly_tooltip', 'Schreibgeschützt'], + ['plugin_data_spreadsheet_new_settings_disable', 'Tabellenpräsentation deaktivieren'], + ['plugin_data_spreadsheet_new_settings_disable_description', 'Deaktivieren Sie die Tabellenpräsentation von Daten für alle Benutzer'], +]; diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts index 2bef3880df..0241870ca0 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts @@ -23,4 +23,5 @@ export default [ ['data_grid_table_index_column_tooltip', 'Select whole table'], ['data_grid_table_readonly_tooltip', 'Read-only'], ['plugin_data_spreadsheet_new_settings_disable', 'Disable Table presentation'], + ['plugin_data_spreadsheet_new_settings_disable_description', 'Disable table presentation of data for all users'], ]; diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts index d54232486e..11311504e6 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts @@ -23,4 +23,5 @@ export default [ ['data_grid_table_index_column_tooltip', 'Выбрать всю таблицу'], ['data_grid_table_readonly_tooltip', 'Доступно только для чтения'], ['plugin_data_spreadsheet_new_settings_disable', 'Отключить табличное представление'], + ['plugin_data_spreadsheet_new_settings_disable_description', 'Отключить табличное представление данных для всех пользователей'], ]; diff --git a/webapp/packages/plugin-data-viewer/src/LocaleService.ts b/webapp/packages/plugin-data-viewer/src/LocaleService.ts index edeb82d255..6d5326d0e6 100644 --- a/webapp/packages/plugin-data-viewer/src/LocaleService.ts +++ b/webapp/packages/plugin-data-viewer/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'de': + return (await import('./locales/de')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-data-viewer/src/locales/de.ts b/webapp/packages/plugin-data-viewer/src/locales/de.ts new file mode 100644 index 0000000000..fd84a940c7 --- /dev/null +++ b/webapp/packages/plugin-data-viewer/src/locales/de.ts @@ -0,0 +1,49 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['table_header_sql_expression_not_supported', 'Datenfilter wird nicht unterstützt'], + ['data_viewer_tab_title', 'Daten'], + ['data_viewer_value_edit', 'Bearbeiten'], + ['data_viewer_value_apply', 'Anwenden'], + ['data_viewer_value_revert', 'Abbrechen'], + ['data_viewer_value_revert_title', 'Nicht gespeicherte Änderungen abbrechen'], + ['data_viewer_nodata_message', 'Keine Daten zu zeigen'], + ['data_viewer_statistics_status', 'Status:'], + ['data_viewer_statistics_duration', 'Dauer:'], + ['data_viewer_statistics_updated_rows', 'Zeilen aktualisiert:'], + ['data_viewer_action_refresh', 'Aktualisierung'], + ['data_viewer_action_edit_delete', 'Ausgewählte löschen'], + ['data_viewer_action_edit_add', 'Hinzufügen'], + ['data_viewer_action_edit_add_copy', 'Duplikat'], + ['data_viewer_action_edit_revert', 'Ausgewählt abbrechen'], + ['data_viewer_result_edited_title', 'Änderungen speichern'], + ['data_viewer_result_edited_message', 'Das Ergebnissatz wurde bearbeitet. Möchten Sie Änderungen in der Datenbank speichern?'], + ['data_viewer_data_save_error_title', 'Fehler beim Speichern von Änderungen trat ein Fehler auf'], + ['data_viewer_presentation_value_title', 'Wert'], + ['data_viewer_presentation_value_text_line_wrapping_wrap', 'Linien wickeln'], + ['data_viewer_presentation_value_image_title', 'Bild'], + ['data_viewer_presentation_value_image_original_size', 'Originalgröße'], + ['data_viewer_presentation_value_boolean_placeholder', 'Der aktuelle Wert kann nicht als Boolean zeigen'], + ['data_viewer_presentation_value_content_paste_error', 'Volltext kann nicht geladen werden'], + ['data_viewer_script_preview_dialog_title', 'Vorschau ändert sich'], + ['data_viewer_script_preview_error_title', 'Kann das Skript nicht bekommen'], + ['data_viewer_total_count_tooltip', 'Totalzahl erhalten'], + ['data_viewer_model_not_loaded', 'Das Tabellenmodell ist nicht geladen'], + ['settings_data_editor', 'Dateneditor'], + ['settings_data_editor_disable_edit_name', 'Bearbeiten deaktivieren'], + ['settings_data_editor_disable_edit_description', 'Deaktivieren Sie die Bearbeitung von Daten in Data Viewer für Nicht-Admin-Benutzer'], + ['settings_data_editor_disable_data_copy_name', 'Kopie deaktivieren'], + ['settings_data_editor_disable_data_copy_description', 'Deaktivieren Sie das Kopieren von Daten in Data Viewer für Nicht-Admin-Benutzer'], + ['settings_data_editor_fetch_min_name', 'Minimale fetch size'], + ['settings_data_editor_fetch_min_description', 'Mindestanzahl von Zeilen zum Abrufen'], + ['settings_data_editor_fetch_max_name', 'Maximale fetch size'], + ['settings_data_editor_fetch_max_description', 'Maximale Anzahl von Zeilen zum Abrufen'], + ['settings_data_editor_fetch_default_name', 'Standard fetch size'], + ['settings_data_editor_fetch_default_description', 'Standardnummer der Zeilen zum Abrufen'], + ['plugin_data_viewer_no_available_presentation', 'Keine verfügbare Präsentation'], +]; From 340c6e850c513787041d40bd93f0a443f6c82ef0 Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Fri, 14 Jun 2024 15:41:57 +0200 Subject: [PATCH 005/141] CB-2070 DBException refactoring (#2703) Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com> --- .../src/io/cloudbeaver/DBWebException.java | 14 +++++--------- .../io/cloudbeaver/model/WebServerError.java | 18 +++++++----------- .../navigator/impl/WebServiceNavigator.java | 4 ++-- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/DBWebException.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/DBWebException.java index 343343da9e..e0e278a13f 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/DBWebException.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/DBWebException.java @@ -21,7 +21,7 @@ import graphql.GraphQLError; import graphql.language.SourceLocation; import org.jkiss.dbeaver.DBException; -import org.jkiss.dbeaver.model.DBPDataSource; +import org.jkiss.dbeaver.model.sql.SQLState; import org.jkiss.dbeaver.utils.GeneralUtils; import org.jkiss.utils.CommonUtils; @@ -65,12 +65,8 @@ public DBWebException(String message, String errorCode, Throwable cause) { this.webErrorCode = errorCode; } - public DBWebException(Throwable cause, DBPDataSource dataSource) { - super(cause, dataSource); - } - - public DBWebException(String message, Throwable cause, DBPDataSource dataSource) { - super(makeMessage(message, cause), cause, dataSource); + public DBWebException(Throwable cause) { + super(null, cause); } public String getWebErrorCode() { @@ -128,14 +124,14 @@ public Map getExtensions() { //stString = stString.substring(divPos + 1).trim(); } extensions.put("stackTrace", stString.trim()); - int errorCode = getErrorCode(); + int errorCode = SQLState.getCodeFromException(this); if (errorCode != ERROR_CODE_NONE) { extensions.put("errorCode", errorCode); } if (!CommonUtils.isEmpty(webErrorCode)) { extensions.put("webErrorCode", webErrorCode); } - String databaseState = getDatabaseState(); + String databaseState = SQLState.getStateFromException(this); if (databaseState != null) { extensions.put("databaseState", databaseState); } diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebServerError.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebServerError.java index 7d1c1746b5..d294bfa729 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebServerError.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebServerError.java @@ -17,8 +17,8 @@ package io.cloudbeaver.model; import io.cloudbeaver.DBWebException; -import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.sql.DBQuotaException; +import org.jkiss.dbeaver.model.sql.SQLState; import java.io.PrintWriter; import java.io.StringWriter; @@ -28,22 +28,18 @@ */ public class WebServerError { - private String message; - private String stackTrace; - private String errorType; - private String errorCode; + private final String message; + private final String stackTrace; + private final String errorType; + private final String errorCode; public WebServerError(Throwable ex) { this.message = ex.getMessage(); StringWriter buf = new StringWriter(); ex.printStackTrace(new PrintWriter(buf, true)); this.stackTrace = buf.toString(); - if (ex instanceof DBException) { - errorCode = String.valueOf(((DBException) ex).getErrorCode()); - } - if (ex instanceof DBQuotaException) { - errorType = DBWebException.ERROR_CODE_QUOTA_EXCEEDED; - } + errorCode = String.valueOf(SQLState.getCodeFromException(ex)); + errorType = ex instanceof DBQuotaException ? DBWebException.ERROR_CODE_QUOTA_EXCEEDED : null; } public String getMessage() { diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/impl/WebServiceNavigator.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/impl/WebServiceNavigator.java index 534ecb2012..d6f19cbb5f 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/impl/WebServiceNavigator.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/impl/WebServiceNavigator.java @@ -143,7 +143,7 @@ public List getNavigatorNodeChildren( return result.subList(offset, result.size()); } } catch (DBException e) { - throw new DBWebException(e, null); + throw new DBWebException(e); } } @@ -178,7 +178,7 @@ public List getNavigatorNodeParents( return nodeParents; } catch (DBException e) { - throw new DBWebException(e, null); + throw new DBWebException(e); } } From 0b98569c9ea8c75048fc4da549a3fb8ae755df98 Mon Sep 17 00:00:00 2001 From: DenisSinelnikov <142215442+DenisSinelnikov@users.noreply.github.com> Date: Fri, 14 Jun 2024 17:59:17 +0400 Subject: [PATCH 006/141] CB-5129. Implemented add and delete logic for user team api (#2695) * CB-5129. Implemented add and delete logic for user team api --------- Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com> Co-authored-by: Alexander Skoblikov --- .../service/admin/impl/WebServiceAdmin.java | 11 +-- .../CBEmbeddedSecurityController.java | 92 ++++++++++++++++++- 2 files changed, 89 insertions(+), 14 deletions(-) diff --git a/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/impl/WebServiceAdmin.java b/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/impl/WebServiceAdmin.java index b7a32416a6..6c113c1754 100644 --- a/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/impl/WebServiceAdmin.java +++ b/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/impl/WebServiceAdmin.java @@ -270,13 +270,7 @@ public boolean grantUserTeam(@NotNull WebSession webSession, String user, String } try { var adminSecurityController = webSession.getAdminSecurityController(); - SMTeam[] userTeams = adminSecurityController.getUserTeams(user); - List teamIds = Arrays.stream(userTeams).map(SMTeam::getTeamId).collect(Collectors.toList()); - if (teamIds.contains(team)) { - return true; - } - teamIds.add(team); - adminSecurityController.setUserTeams(user, teamIds.toArray(new String[0]), grantor.getUserId()); + adminSecurityController.addUserTeams(user, new String[]{team}, grantor.getUserId()); return true; } catch (Exception e) { throw new DBWebException("Error granting team", e); @@ -299,8 +293,7 @@ public boolean revokeUserTeam(@NotNull WebSession webSession, String user, Strin SMTeam[] userTeams = adminSecurityController.getUserTeams(user); List teamIds = Arrays.stream(userTeams).map(SMTeam::getTeamId).collect(Collectors.toList()); if (teamIds.contains(team)) { - teamIds.remove(team); - adminSecurityController.setUserTeams(user, teamIds.toArray(new String[0]), grantor.getUserId()); + adminSecurityController.deleteUserTeams(user, new String[]{team}); } else { throw new DBWebException("User '" + user + "' doesn't have team '" + team + "'"); } diff --git a/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/CBEmbeddedSecurityController.java b/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/CBEmbeddedSecurityController.java index 53f2525551..697e3e29d8 100644 --- a/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/CBEmbeddedSecurityController.java +++ b/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/CBEmbeddedSecurityController.java @@ -224,6 +224,30 @@ public void setUserTeams(String userId, String[] teamIds, String grantorId) thro addSubjectPermissionsUpdateEvent(userId, SMSubjectType.user); } + public void addUserTeams(@NotNull String userId, @NotNull String[] teamIds, @NotNull String grantorId) throws DBCException { + try (Connection dbCon = database.openConnection()) { + try (JDBCTransaction txn = new JDBCTransaction(dbCon)) { + addUserTeams(dbCon, userId, teamIds, grantorId); + txn.commit(); + } + } catch (SQLException e) { + throw new DBCException("Error saving user teams in database", e); + } + addSubjectPermissionsUpdateEvent(userId, SMSubjectType.user); + } + + public void deleteUserTeams(@NotNull String userId, @NotNull String[] teamIds) throws DBCException { + try (Connection dbCon = database.openConnection()) { + try (JDBCTransaction txn = new JDBCTransaction(dbCon)) { + deleteUserTeams(dbCon, userId, teamIds); + txn.commit(); + } + } catch (SQLException e) { + throw new DBCException("Error delete user teams in database", e); + } + addSubjectPermissionsUpdateEvent(userId, SMSubjectType.user); + } + @Override public void setUserTeamRole( @NotNull String userId, @@ -276,11 +300,7 @@ protected void setUserTeams(@NotNull Connection dbCon, String userId, String[] t teamIds = ArrayUtils.add(String.class, teamIds, defaultUserTeam); } if (!ArrayUtils.isEmpty(teamIds)) { - Set currentUserTeams = new HashSet<>(JDBCUtils.queryStrings( - dbCon, - database.normalizeTableNames("SELECT TEAM_ID FROM {table_prefix}CB_USER_TEAM WHERE USER_ID=?"), - userId - )); + Set currentUserTeams = getCurrentUserTeams(dbCon, userId); try (PreparedStatement dbStat = dbCon.prepareStatement( database.normalizeTableNames("INSERT INTO {table_prefix}CB_USER_TEAM" + @@ -300,6 +320,68 @@ protected void setUserTeams(@NotNull Connection dbCon, String userId, String[] t } } + @NotNull + private Set getCurrentUserTeams(@NotNull Connection dbCon, String userId) throws SQLException { + return new HashSet<>(JDBCUtils.queryStrings( + dbCon, + database.normalizeTableNames("SELECT TEAM_ID FROM {table_prefix}CB_USER_TEAM WHERE USER_ID=?"), + userId + )); + } + + protected void addUserTeams( + @NotNull Connection dbCon, + @NotNull String userId, + @NotNull String[] teamIds, + @NotNull String grantorId + ) throws SQLException { + if (ArrayUtils.isEmpty(teamIds)) { + return; + } + + String defaultUserTeam = getDefaultUserTeam(); + if (CommonUtils.isNotEmpty(defaultUserTeam) && !ArrayUtils.contains(teamIds, defaultUserTeam)) { + teamIds = ArrayUtils.add(String.class, teamIds, defaultUserTeam); + } + + Set currentUserTeams = getCurrentUserTeams(dbCon, userId); + + try (PreparedStatement dbStat = dbCon.prepareStatement( + database.normalizeTableNames("INSERT INTO {table_prefix}CB_USER_TEAM" + + "(USER_ID,TEAM_ID,GRANT_TIME,GRANTED_BY) VALUES(?,?,?,?)")) + ) { + for (String teamId : teamIds) { + if (currentUserTeams.contains(teamId)) { + continue; + } + dbStat.setString(1, userId); + dbStat.setString(2, teamId); + dbStat.setTimestamp(3, new Timestamp(System.currentTimeMillis())); + dbStat.setString(4, grantorId); + dbStat.execute(); + } + } + } + + protected void deleteUserTeams( + @NotNull Connection dbCon, + @NotNull String userId, + @NotNull String[] teamIds + ) throws SQLException { + String deleteUserTeamsSql = "DELETE FROM {table_prefix}CB_USER_TEAM WHERE USER_ID=? " + + "AND TEAM_ID IN (" + SQLUtils.generateParamList(teamIds.length) + ")"; + + try (PreparedStatement dbStat = dbCon.prepareStatement(database.normalizeTableNames(deleteUserTeamsSql))) { + int index = 1; + dbStat.setString(index, userId); + for (String teamId : teamIds) { + index++; + dbStat.setString(index, teamId); + } + dbStat.execute(); + } + } + @NotNull @Override public SMUserTeam[] getUserTeams(String userId) throws DBException { From 422e6283df86f28ac7fabaf2e1cd56da69520460 Mon Sep 17 00:00:00 2001 From: Alexey Date: Fri, 14 Jun 2024 22:30:57 +0800 Subject: [PATCH 007/141] CB-5276 fix: auth fallback (#2712) --- .../plugin-authentication/src/Dialog/useAuthDialogState.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/packages/plugin-authentication/src/Dialog/useAuthDialogState.ts b/webapp/packages/plugin-authentication/src/Dialog/useAuthDialogState.ts index 17f7bae593..d1e0c51b21 100644 --- a/webapp/packages/plugin-authentication/src/Dialog/useAuthDialogState.ts +++ b/webapp/packages/plugin-authentication/src/Dialog/useAuthDialogState.ts @@ -117,7 +117,7 @@ export function useAuthDialogState(accessRequest: boolean, providerId: string | isTooManySessions: false, forceSessionsLogout: false, switchAuthMode(tabId: string | null, resetError = true): void { - if (tabId === this.tabId) { + if (tabId !== null && tabId === this.tabId) { return; } From 240dab7c0f8f7ad821b055867bd9f79725e13626 Mon Sep 17 00:00:00 2001 From: matthieukhl <140057664+matthieukhl@users.noreply.github.com> Date: Fri, 14 Jun 2024 16:52:23 +0200 Subject: [PATCH 008/141] Added French translation files (fr.ts) to respective directories (#2670) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added French translation file for core-administration (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-administration/src/locales/ directory. This file contains the French translations for various administration-related strings used in the application. The translations include menu entries, configuration wizard titles, and success messages. * Added French translation file for core-authentication (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-authentication/src/locales/ directory. This file contains the French translations for various authentication-related strings used in the application. The translations include settings group labels, options for disabling anonymous access, and password policy requirements such as minimum length, case sensitivity, digits, and special characters. * Added French translation file for core-blocks (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-blocks/src/locales/ directory. This file contains the French translations for various core-blocks related strings used in the application. The translations include properties table labels, filter options, add/reset/remove property actions, placeholder texts, error messages, and validation messages. * Added French translation file for core-browser-settings (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-browser-settings/src/locales/ directory. This file contains the French translations for various browser settings related strings used in the application. The translations include settings for cookies and general browser settings. * Added French translation file for core-connections (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-connections/src/locales/ directory. This file contains the French translations for various connection-related strings used in the application. The translations include settings for connections, connection templates, error messages, authentication details, network handler configurations, and various tooltips and placeholder texts related to database connections and SSH tunnels. * Added French translation file for core-localization (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-localization/src/locales/ directory. This file contains the French translations for various UI-related strings used in the application. The translations include messages for renaming, themes, navigation steps, loading states, error handling, clipboard operations, authentication, settings, file operations, and more. * Added French translation file for core-navigation-tree (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-navigation-tree/src/locales/ directory. This file contains the French translation for the navigation tree settings group string used in the application. * Added French translation file for core-projects (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-projects/src/locales/ directory. This file contains the French translation for the message indicating that a project is not found. * Added French translation file for core-resource-manager (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-resource-manager/src/locales/ directory. This file contains the French translation for the resource manager settings group string used in the application. * Added French translation file for core-settings-localization (fr.ts) I have created the fr.ts file in the cloudbeaver/webapp/packages/core-settings-localization/src/locales/ directory. This file contains the French translations for the localization settings, including the labels and descriptions for language settings in the application. * Added French translation file for core-settings-user (fr.ts) I have created the fr.ts file in the cloudbeaver/webapp/packages/core-settings-user/src/locales/ directory. This file currently does not contain any translations, but it has been set up for future French translations for user settings in the application. * Added French translation file for core-settings (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-settings/src/locales/ directory. This file contains the French translations for the interface and root settings groups used in the application. * Added French translation file for core-theming (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-theming/src/locales/ directory. This file contains the French translations for the theming settings, including the labels and descriptions for the application color theme. * Added French translation file for core-ui (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-ui/src/locales/ directory. This file contains the French translations for various UI-related messages used in the application, including messages for empty states, form save errors, and tab switching errors during form validation. * Added French translation file for core-version-update (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-version-update/src/locales/ directory. This file contains the French translations for various version update-related messages used in the application, including messages about version status, refresh actions, and update instructions. * Added French translation file for core-version (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-version/src/locales/ directory. This file contains the French translations for various version-related strings used in the application, including version information, release dates, tags, and error messages for loading version information. * Added French translation file for core-view (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/core-view/src/locales/ directory. This file contains the French translations for various view-related strings used in the application, including layout settings, zoom actions, and labels for creating and editing items and folders. * Added French translation file for plugin-administration (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-administration/src/locales/ directory. This file contains the French translations for various administration-related messages used in the application, including server configuration, welcome messages, security settings, and navigation options. * Added French translation file for plugin-authentication-administration (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-authentication-administration/src/locales/ directory. This file contains the French translations for various authentication and administration-related messages used in the application, including user connections, access management, identity providers, and team management. * Added French translation file for plugin-authentication (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-authentication/src/locales/ directory. This file contains the French translations for various authentication-related messages used in the application, including login, logout, user credentials, error messages, and identity provider configurations. * Added French translation file for plugin-browser (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-browser/src/locales/ directory. This file contains the French translations for various update-related messages used in the application, including installation of the application, installation of updates, and restart messages with progress information. * Added French translation file for plugin-connection-custom (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connection-custom/src/locales/ directory. This file contains the French translations for various custom connection-related messages used in the application, including parameters, URL, main settings, driver properties, and connection actions like testing and creating connections. * Added French translation file for plugin-connection-search (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connection-search/src/locales/ directory. This file contains the French translation for the label used in the plugin-connection-search, specifically the message "Find Local Database" which is translated to "Trouver une base de données locale". * Added French translation file for plugin-connection-template (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connection-template/src/locales/ directory. This file contains the French translations for various strings used in the connection template plugin. The translations include labels and messages related to new connections, database connection dialogs, and connection templates. This addition will help French-speaking users interact with the connection template plugin more easily. * Added French translation file for plugin-connections-administration (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connections-administration/src/locales/ directory. This file contains the French translations for various connection-related strings used in the application. The translations include menu items for editing connections, confirmation messages for reconnection, and descriptions of the templates used by administrators to create reusable connection parameters. * Added French translation file for plugin-connections (fr.ts) I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connections/src/locales/ directory. This file contains the French translations for various connection-related strings used in the application. The translations include messages for editing connections, connection status updates, and SSL settings. * Added French translation file for plugin-data-export (fr.ts) Added French translations for various data export-related strings in the plugin-data-export module. This includes translations for dialogs, notifications, and settings related to data export functionality. * Added French translation file for plugin-data-import (fr.ts) - Added French translations for the data import plugin. - Included translations for various stages and messages related to data import process. * Add French translation file for plugin-data-spreadsheet-new (fr.ts) Added French translations for plugin-data-spreadsheet-new. This includes translations for various table and data grid related functionalities such as table editing, sorting, filtering, and error messages. * Added French translation file for plugin-data-viewer (fr.ts) This commit includes the French translation for the plugin-data-viewer module. * Add French translation for Data Viewer plugin (fr.ts) Added French translations for the Data Viewer plugin. * Added French translation to plugin-datasource-context-switch (fr.ts) Added French translations for the context switch plugin messages. * Added French translation to plugin-datasource-transaction-manager (fr.ts) Added French translations for the transaction manager plugin messages. * Added French translation to plugin-gis-viewer (fr.ts) Added French translations for the GIS viewer plugin messages. * Added French translation to plugin-help (fr.ts) Added French translations for the help plugin messages. * Added French translation to plugin-log-viewer (fr.ts) Added French translations for the log viewer plugin messages. * Added French translation to plugin-navigation-tree-filters (fr.ts) Added French translations for the navigation tree filters plugin messages. * Added French translation to plugin-navigation-tree-rm (fr.ts) Added French translations for the navigation tree remove plugin messages. * Added French translation to plugin-navigation-tree (fr.ts) Added French translations for the navigation tree plugin messages. * Added French translation to plugin-object-viewer (fr.ts) Added French translations for the object viewer plugin messages. * Added French translation to plugin-product (fr.ts) Added French translations for the product plugin messages. * Added French translation to plugin-projects (fr.ts) Added French translations for the projects plugin messages. * Added French translation to plugin-resource-manager-administration (fr.ts) Added French translations for the resource manager administration plugin messages. * Added French translation to plugin-resource-manager-scripts (fr.ts) Added French translations for the resource manager scripts plugin messages. * Added French translation to plugin-resource-manager (fr.ts) Added French translations for the resource manager plugin messages. * Added French translation to plugin-root (fr.ts) Added French translations for the root plugin messages. * Added French translation to plugin-session-expiration (fr.ts) Added an empty template for French translations for the session expiration plugin messages. * Added French translation to plugin-settings-administration (fr.ts) Added French translations for the settings administration plugin messages. * Added French translation to plugin-settings-panel (fr.ts) Added French translations for the settings panel plugin messages. * Added French translation to plugin-sql-editor-navigation-tab-script (fr.ts) Added French translations for the SQL editor navigation tab script plugin messages. * Added French translation to plugin-sql-editor-navigation-tab (fr.ts) Added French translations for the SQL editor navigation tab plugin messages. * Added French translation to plugin-sql-editor-new (fr.ts) Added French translations for the new SQL editor plugin messages. * Added French translation to plugin-sql-editor-screen (fr.ts) Added French translations for the SQL editor screen plugin messages. * Added French translation to plugin-sql-editor (fr.ts) Added French translations for the SQL editor plugin messages. * Added French translation to plugin-sql-generator (fr.ts) Added fr.ts to cloudbeaver/webapp/packages/plugin-sql-generator/src/locales * Added French translation to plugin-task-manager (fr.ts) Added French translations for the task manager plugin messages. * Added French translation to plugin-tools-panel (fr.ts) Added French translations for the tools panel plugin messages. * Added French translation to plugin-user-profile-settings (fr.ts) Added French translations for the user profile settings plugin messages. * Added French translation to plugin-user-profile (fr.ts) Added French translations for the user profile plugin messages. * Added French translation to plugin-version-update-administration (fr.ts) Added French translations for the version update administration plugin messages. * Added French translation to product-default (fr.ts) Added French translations for the default product plugin messages. * CB-5266 registers french localization all over the app * CB-5266 adds core-app localization from other PR * CB-5266 shorter translate for log-viewer french action enable label --------- Co-authored-by: sergeyteleshev Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com> --- .../src/AdministrationLocaleService.ts | 2 + .../core-administration/src/locales/fr.ts | 17 +++ .../packages/core-app/src/AppLocaleService.ts | 2 + webapp/packages/core-app/src/locales/fr.ts | 22 +++ .../core-authentication/src/LocaleService.ts | 2 + .../core-authentication/src/locales/fr.ts | 17 +++ .../core-blocks/src/BlocksLocaleService.ts | 2 + webapp/packages/core-blocks/src/locales/fr.ts | 21 +++ .../src/LocaleService.ts | 2 + .../core-browser-settings/src/locales/fr.ts | 11 ++ .../src/ConnectionsLocaleService.ts | 2 + .../core-connections/src/locales/fr.ts | 98 ++++++++++++ .../src/LocalizationService.ts | 7 + .../core-localization/src/locales/fr.ts | 141 ++++++++++++++++++ .../core-navigation-tree/src/LocaleService.ts | 2 + .../core-navigation-tree/src/locales/fr.ts | 8 + .../core-projects/src/LocaleService.ts | 2 + .../packages/core-projects/src/locales/de.ts | 7 + .../packages/core-projects/src/locales/fr.ts | 8 + .../src/LocaleService.ts | 2 + .../core-resource-manager/src/locales/fr.ts | 8 + .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 11 ++ .../core-settings-user/src/LocaleService.ts | 2 + .../core-settings-user/src/locales/fr.ts | 8 + .../core-settings/src/LocaleService.ts | 2 + .../packages/core-settings/src/locales/fr.ts | 11 ++ .../core-theming/src/LocaleService.ts | 2 + .../packages/core-theming/src/locales/fr.ts | 11 ++ webapp/packages/core-ui/src/LocaleService.ts | 2 + webapp/packages/core-ui/src/locales/fr.ts | 12 ++ .../core-version-update/src/LocaleService.ts | 2 + .../core-version-update/src/locales/fr.ts | 17 +++ .../core-version/src/VersionLocaleService.ts | 2 + .../packages/core-version/src/locales/de.ts | 7 + .../packages/core-version/src/locales/fr.ts | 16 ++ .../packages/core-view/src/LocaleService.ts | 2 + webapp/packages/core-view/src/locales/de.ts | 7 + webapp/packages/core-view/src/locales/fr.ts | 15 ++ .../src/LocaleService.ts | 2 + .../plugin-administration/src/locales/fr.ts | 93 ++++++++++++ .../src/AuthenticationLocaleService.ts | 2 + .../src/locales/fr.ts | 134 +++++++++++++++++ .../src/AuthenticationLocaleService.ts | 2 + .../plugin-authentication/src/locales/fr.ts | 53 +++++++ .../plugin-browser/src/LocaleService.ts | 2 + .../packages/plugin-browser/src/locales/fr.ts | 12 ++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 28 ++++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 8 + .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 20 +++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 20 +++ .../plugin-connections/src/LocaleService.ts | 2 + .../plugin-connections/src/locales/en.ts | 7 + .../plugin-connections/src/locales/fr.ts | 34 +++++ .../plugin-connections/src/locales/ru.ts | 7 + .../plugin-data-export/src/LocaleService.ts | 2 + .../plugin-data-export/src/locales/fr.ts | 27 ++++ .../plugin-data-import/src/LocaleService.ts | 2 + .../plugin-data-import/src/locales/fr.ts | 14 ++ .../src/LocaleService.ts | 2 + .../src/locales/de.ts | 7 + .../src/locales/en.ts | 7 + .../src/locales/fr.ts | 33 ++++ .../src/locales/ru.ts | 7 + .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 21 +++ .../plugin-data-viewer/src/LocaleService.ts | 2 + .../plugin-data-viewer/src/locales/fr.ts | 71 +++++++++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 15 ++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 17 +++ .../plugin-gis-viewer/src/LocaleService.ts | 2 + .../plugin-gis-viewer/src/locales/fr.ts | 13 ++ .../packages/plugin-help/src/LocaleService.ts | 2 + webapp/packages/plugin-help/src/locales/fr.ts | 32 ++++ .../plugin-log-viewer/src/LocaleService.ts | 2 + .../plugin-log-viewer/src/locales/fr.ts | 17 +++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 18 +++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 8 + .../src/LocaleService.ts | 2 + .../plugin-navigation-tree/src/locales/fr.ts | 45 ++++++ .../plugin-object-viewer/src/LocaleService.ts | 2 + .../plugin-object-viewer/src/locales/fr.ts | 15 ++ .../plugin-product/src/LocaleService.ts | 2 + .../packages/plugin-product/src/locales/fr.ts | 16 ++ .../plugin-projects/src/LocaleService.ts | 2 + .../plugin-projects/src/locales/fr.ts | 8 + .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 11 ++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 21 +++ .../src/LocaleService.ts | 2 + .../plugin-resource-manager/src/locales/fr.ts | 11 ++ .../packages/plugin-root/src/LocaleService.ts | 2 + webapp/packages/plugin-root/src/locales/fr.ts | 13 ++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 8 + .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 12 ++ .../src/LocaleService.ts | 2 + .../plugin-settings-panel/src/locales/fr.ts | 8 + .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 28 ++++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 14 ++ .../src/LocaleService.ts | 2 + .../plugin-sql-editor-new/src/locales/fr.ts | 13 ++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 12 ++ .../plugin-sql-editor/src/LocaleService.ts | 2 + .../plugin-sql-editor/src/locales/fr.ts | 50 +++++++ .../plugin-sql-generator/src/LocaleService.ts | 2 + .../plugin-sql-generator/src/locales/fr.ts | 8 + .../plugin-task-manager/src/LocaleService.ts | 2 + .../plugin-task-manager/src/locales/fr.ts | 8 + .../plugin-tools-panel/src/LocaleService.ts | 2 + .../plugin-tools-panel/src/locales/fr.ts | 13 ++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 14 ++ .../plugin-user-profile/src/LocaleService.ts | 2 + .../plugin-user-profile/src/locales/fr.ts | 27 ++++ .../src/LocaleService.ts | 2 + .../src/locales/fr.ts | 15 ++ .../product-default/src/LocaleService.ts | 2 + .../product-default/src/locales/fr.ts | 12 ++ 132 files changed, 1707 insertions(+) create mode 100644 webapp/packages/core-administration/src/locales/fr.ts create mode 100644 webapp/packages/core-app/src/locales/fr.ts create mode 100644 webapp/packages/core-authentication/src/locales/fr.ts create mode 100644 webapp/packages/core-blocks/src/locales/fr.ts create mode 100644 webapp/packages/core-browser-settings/src/locales/fr.ts create mode 100644 webapp/packages/core-connections/src/locales/fr.ts create mode 100644 webapp/packages/core-localization/src/locales/fr.ts create mode 100644 webapp/packages/core-navigation-tree/src/locales/fr.ts create mode 100644 webapp/packages/core-projects/src/locales/fr.ts create mode 100644 webapp/packages/core-resource-manager/src/locales/fr.ts create mode 100644 webapp/packages/core-settings-localization/src/locales/fr.ts create mode 100644 webapp/packages/core-settings-user/src/locales/fr.ts create mode 100644 webapp/packages/core-settings/src/locales/fr.ts create mode 100644 webapp/packages/core-theming/src/locales/fr.ts create mode 100644 webapp/packages/core-ui/src/locales/fr.ts create mode 100644 webapp/packages/core-version-update/src/locales/fr.ts create mode 100644 webapp/packages/core-version/src/locales/fr.ts create mode 100644 webapp/packages/core-view/src/locales/fr.ts create mode 100644 webapp/packages/plugin-administration/src/locales/fr.ts create mode 100644 webapp/packages/plugin-authentication-administration/src/locales/fr.ts create mode 100644 webapp/packages/plugin-authentication/src/locales/fr.ts create mode 100644 webapp/packages/plugin-browser/src/locales/fr.ts create mode 100644 webapp/packages/plugin-connection-custom/src/locales/fr.ts create mode 100644 webapp/packages/plugin-connection-search/src/locales/fr.ts create mode 100644 webapp/packages/plugin-connection-template/src/locales/fr.ts create mode 100644 webapp/packages/plugin-connections-administration/src/locales/fr.ts create mode 100644 webapp/packages/plugin-connections/src/locales/fr.ts create mode 100644 webapp/packages/plugin-data-export/src/locales/fr.ts create mode 100644 webapp/packages/plugin-data-import/src/locales/fr.ts create mode 100644 webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts create mode 100644 webapp/packages/plugin-data-viewer-result-set-grouping/src/locales/fr.ts create mode 100644 webapp/packages/plugin-data-viewer/src/locales/fr.ts create mode 100644 webapp/packages/plugin-datasource-context-switch/src/locales/fr.ts create mode 100644 webapp/packages/plugin-datasource-transaction-manager/src/locales/fr.ts create mode 100644 webapp/packages/plugin-gis-viewer/src/locales/fr.ts create mode 100644 webapp/packages/plugin-help/src/locales/fr.ts create mode 100644 webapp/packages/plugin-log-viewer/src/locales/fr.ts create mode 100644 webapp/packages/plugin-navigation-tree-filters/src/locales/fr.ts create mode 100644 webapp/packages/plugin-navigation-tree-rm/src/locales/fr.ts create mode 100644 webapp/packages/plugin-navigation-tree/src/locales/fr.ts create mode 100644 webapp/packages/plugin-object-viewer/src/locales/fr.ts create mode 100644 webapp/packages/plugin-product/src/locales/fr.ts create mode 100644 webapp/packages/plugin-projects/src/locales/fr.ts create mode 100644 webapp/packages/plugin-resource-manager-administration/src/locales/fr.ts create mode 100644 webapp/packages/plugin-resource-manager-scripts/src/locales/fr.ts create mode 100644 webapp/packages/plugin-resource-manager/src/locales/fr.ts create mode 100644 webapp/packages/plugin-root/src/locales/fr.ts create mode 100644 webapp/packages/plugin-session-expiration/src/locales/fr.ts create mode 100644 webapp/packages/plugin-settings-administration/src/locales/fr.ts create mode 100644 webapp/packages/plugin-settings-panel/src/locales/fr.ts create mode 100644 webapp/packages/plugin-sql-editor-navigation-tab-script/src/locales/fr.ts create mode 100644 webapp/packages/plugin-sql-editor-navigation-tab/src/locales/fr.ts create mode 100644 webapp/packages/plugin-sql-editor-new/src/locales/fr.ts create mode 100644 webapp/packages/plugin-sql-editor-screen/src/locales/fr.ts create mode 100644 webapp/packages/plugin-sql-editor/src/locales/fr.ts create mode 100644 webapp/packages/plugin-sql-generator/src/locales/fr.ts create mode 100644 webapp/packages/plugin-task-manager/src/locales/fr.ts create mode 100644 webapp/packages/plugin-tools-panel/src/locales/fr.ts create mode 100644 webapp/packages/plugin-user-profile-settings/src/locales/fr.ts create mode 100644 webapp/packages/plugin-user-profile/src/locales/fr.ts create mode 100644 webapp/packages/plugin-version-update-administration/src/locales/fr.ts create mode 100644 webapp/packages/product-default/src/locales/fr.ts diff --git a/webapp/packages/core-administration/src/AdministrationLocaleService.ts b/webapp/packages/core-administration/src/AdministrationLocaleService.ts index 7999e2ec48..8febc531c1 100644 --- a/webapp/packages/core-administration/src/AdministrationLocaleService.ts +++ b/webapp/packages/core-administration/src/AdministrationLocaleService.ts @@ -28,6 +28,8 @@ export class AdministrationLocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-administration/src/locales/fr.ts b/webapp/packages/core-administration/src/locales/fr.ts new file mode 100644 index 0000000000..1f664cabda --- /dev/null +++ b/webapp/packages/core-administration/src/locales/fr.ts @@ -0,0 +1,17 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['administration_menu_enter', 'Administration'], + ['administration_menu_back', "Retour à l'application"], + ['administration_configuration_wizard_title', 'Configuration initiale du serveur'], + ['administration_configuration_wizard_finish_success_title', 'Serveur configuré'], + [ + 'administration_configuration_wizard_finish_success_message', + "Vous pouvez vous connecter en tant qu'administrateur pour configurer des paramètres supplémentaires.", + ], +]; diff --git a/webapp/packages/core-app/src/AppLocaleService.ts b/webapp/packages/core-app/src/AppLocaleService.ts index 61a5084e49..6d835fb52a 100644 --- a/webapp/packages/core-app/src/AppLocaleService.ts +++ b/webapp/packages/core-app/src/AppLocaleService.ts @@ -28,6 +28,8 @@ export class AppLocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-app/src/locales/fr.ts b/webapp/packages/core-app/src/locales/fr.ts new file mode 100644 index 0000000000..dcd2287fdb --- /dev/null +++ b/webapp/packages/core-app/src/locales/fr.ts @@ -0,0 +1,22 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ + +export default [ + ['app_shared_settingsMenu_config', 'Configuration'], + ['app_shared_settingsMenu_theme', 'Thème'], + ['app_shared_settingsMenu_lang', 'Langue'], + ['app_shared_inlineEditor_dialog_title', 'Mode Edition'], + ['app_shared_inlineEditor_dialog_apply', 'Appliquer'], + ['app_shared_inlineEditor_dialog_cancel', 'Annuler'], + [ + 'app_shared_navigationTabsBar_placeholder', + 'Il n’y a aucun objet à afficher. Double-cliquez sur un objet dans l’arborescence de navigation pour l’ouvrir.', + ], + ['app_shared_sql_generators_panel_title', 'Générer du SQL'], + ['app_shared_sql_generators_dialog_title', 'SQL Généré'], +]; diff --git a/webapp/packages/core-authentication/src/LocaleService.ts b/webapp/packages/core-authentication/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/core-authentication/src/LocaleService.ts +++ b/webapp/packages/core-authentication/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-authentication/src/locales/fr.ts b/webapp/packages/core-authentication/src/locales/fr.ts new file mode 100644 index 0000000000..39c75dd956 --- /dev/null +++ b/webapp/packages/core-authentication/src/locales/fr.ts @@ -0,0 +1,17 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_authentication_auth_settings_group', 'Authentification'], + ['settings_authentication_disable_anonymous_access_name', "Désactiver l'accès anonyme"], + ['settings_authentication_disable_anonymous_access_description', "Désactiver la fonction d'accès anonyme"], + + ['core_authentication_password_policy_min_length', 'Le mot de passe doit contenir au moins {arg:min} caractères'], + ['core_authentication_password_policy_upper_lower_case', 'Le mot de passe doit contenir des lettres majuscules et minuscules'], + ['core_authentication_password_policy_min_digits', 'Le mot de passe doit contenir au moins {arg:min} chiffres'], + ['core_authentication_password_policy_min_special_characters', 'Le mot de passe doit contenir au moins {arg:min} caractères spéciaux'], +]; diff --git a/webapp/packages/core-blocks/src/BlocksLocaleService.ts b/webapp/packages/core-blocks/src/BlocksLocaleService.ts index b28c8e8099..74224944b2 100644 --- a/webapp/packages/core-blocks/src/BlocksLocaleService.ts +++ b/webapp/packages/core-blocks/src/BlocksLocaleService.ts @@ -26,6 +26,8 @@ export class BlocksLocaleService extends Bootstrap { return (await import('./locales/ru')).default; case 'it': return (await import('./locales/it')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-blocks/src/locales/fr.ts b/webapp/packages/core-blocks/src/locales/fr.ts new file mode 100644 index 0000000000..ad9e143de5 --- /dev/null +++ b/webapp/packages/core-blocks/src/locales/fr.ts @@ -0,0 +1,21 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_block_properties_table_name', 'Nom'], + ['core_block_properties_table_value', 'Valeur'], + ['core_block_properties_table_filter_name', 'Filtrer'], + ['core_block_properties_table_add', 'Ajouter une propriété'], + ['core_blocks_properties_table_item_reset', 'Réinitialiser par défaut'], + ['core_blocks_object_property_info_form_empty_placeholder', 'Propriétés vides'], + ['core_blocks_object_property_info_password_saved', 'La valeur du champ est sauvegardée'], + ['core_blocks_properties_table_item_remove', 'Supprimer la propriété'], + ['combobox_no_results_placeholder', 'Aucun résultat'], + ['core_blocks_exception_message_error_title', "Impossible d'afficher le contenu"], + ['core_blocks_exception_message_error_message', 'Quelque chose a mal tourné.'], + ['core_blocks_custom_input_validation_error', "La valeur du champ n'est pas valide"], +]; diff --git a/webapp/packages/core-browser-settings/src/LocaleService.ts b/webapp/packages/core-browser-settings/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/core-browser-settings/src/LocaleService.ts +++ b/webapp/packages/core-browser-settings/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-browser-settings/src/locales/fr.ts b/webapp/packages/core-browser-settings/src/locales/fr.ts new file mode 100644 index 0000000000..a23dedc122 --- /dev/null +++ b/webapp/packages/core-browser-settings/src/locales/fr.ts @@ -0,0 +1,11 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_browser_settings_cookies_settings_group', 'Cookies'], + ['core_browser_settings_browser_settings_group', 'Navigateur'], +]; diff --git a/webapp/packages/core-connections/src/ConnectionsLocaleService.ts b/webapp/packages/core-connections/src/ConnectionsLocaleService.ts index a3ef42fd12..c22a4836fe 100644 --- a/webapp/packages/core-connections/src/ConnectionsLocaleService.ts +++ b/webapp/packages/core-connections/src/ConnectionsLocaleService.ts @@ -28,6 +28,8 @@ export class ConnectionsLocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; case 'de': return (await import('./locales/de')).default; default: diff --git a/webapp/packages/core-connections/src/locales/fr.ts b/webapp/packages/core-connections/src/locales/fr.ts new file mode 100644 index 0000000000..723c824d6e --- /dev/null +++ b/webapp/packages/core-connections/src/locales/fr.ts @@ -0,0 +1,98 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_connections_connections_settings_group', 'Connexions'], + ['connections_administration_item', 'Modèles de connexion'], + ['connections_administration_connection_create', 'Ajouter un modèle de base de données'], + [ + 'connections_administration_search_database_tip', + "Saisissez vos hôtes ici, par exemple 'localhost host1.myhost.com 192.168.0.1' et appuyez sur Entrée", + ], + ['connections_administration_new_connection', 'Nouvelle connexion'], + ['connections_administration_connection_create_error', 'Erreur de création de connexion'], + ['connections_administration_connection_save_error', 'Erreur de sauvegarde de connexion'], + ['connections_administration_connection_access_empty', 'Aucun utilisateur et équipe disponibles'], + ['connections_administration_configuration_wizard_step_title', 'Connexions de base de données'], + ['connections_administration_configuration_wizard_step_description', 'Ajouter des connexions de base de données'], + ['connections_administration_configuration_wizard_title', 'Ajouter des connexions de base de données'], + [ + 'connections_administration_configuration_wizard_message', + 'Ici, vous pouvez créer des connexions de base de données manuellement ou en utilisant une recherche de serveur de base de données.\nVous pouvez passer cette étape et configurer les connexions plus tard.', + ], + ['connections_administration_connection_no_information', 'Aucune information disponible'], + ['connections_administration_delete_confirmation', 'Vous allez supprimer ces connexions : '], + ['connections_administration_tools_add_tooltip', 'Ajouter un nouveau modèle'], + ['connections_administration_tools_refresh_tooltip', 'Actualiser la liste des connexions'], + ['connections_administration_tools_delete_tooltip', 'Supprimer les connexions sélectionnées'], + ['connections_administration_tools_refresh_success', 'La liste des connexions a été actualisée'], + ['connections_administration_tools_refresh_fail', "Échec de l'actualisation de la liste des connexions"], + ['connections_database_authentication', 'Authentification de la base de données'], + ['connections_connection_edit_not_own_deny', "Vous n'avez pas accès pour modifier cette connexion."], + ['connections_connection_connect', 'Connecter'], + ['connections_connection_create_custom', 'Personnalisé'], + ['connections_connection_create_search_database', 'Recherche'], + ['connections_connection_edit_save_credentials', 'Enregistrer les identifiants'], + ['connections_connection_share_credentials', 'Partager les identifiants'], + ['connections_connection_share_credentials_tooltip', 'Partager les identifiants avec tous les utilisateurs'], + ['connections_connection_credentials_provisioning', "Identifiants d'authentification"], + ['connections_connection_credentials_provisioning_description', 'Vous devez remplir ou confirmer les identifiants pour tester cette connexion'], + ['connections_connection_edit_authentication', 'Authentification'], + ['connections_connection_edit_access', 'Accès'], + ['connections_connection_edit_access_load_failed', "Échec de l'obtention de l'accès à la connexion"], + ['connections_connection_edit_access_team', 'Équipe'], + ['connections_connection_edit_search', 'Rechercher'], + ['connections_connection_edit_search_hosts', 'Noms des hôtes'], + ['connections_connection_address', 'Adresse'], + ['connections_connection_folder', 'Dossier'], + [ + 'connections_connection_folder_validation', + 'Le nom du dossier ne peut pas contenir les symboles suivants : / : " \\ et ne peut pas commencer par un point', + ], + ['connections_connection_name', 'Nom de la connexion'], + ['connections_connection_access_user_or_team_name', "Nom de l'utilisateur ou de l'équipe"], + ['connections_connection_access_filter_placeholder', "Rechercher un nom d'utilisateur ou d'équipe"], + ['connections_connection_access_admin_info', 'Les administrateurs voient toutes les connexions.'], + ['connections_connection_description', 'Description'], + ['connections_connection_project', 'Projet'], + ['connections_connection_driver', 'Pilote'], + ['connections_connection_configuration', 'Configuration'], + ['connections_connection_host', 'Hôte'], + ['connections_connection_port', 'Port'], + ['connections_connection_template', 'Modèle'], + ['connections_connection_test', 'Tester'], + ['connections_connection_test_tooltip', 'Tester la connexion'], + ['connections_connection_test_fail', 'Échec du test de connexion'], + ['connections_connection_create_fail', 'Échec de la création de la connexion'], + ['connections_connection_save_fail', 'Échec de la sauvegarde de la connexion'], + ['connections_connection_keep_alive', 'Garder actif (en secondes)'], + ['connections_connection_keep_alive_tooltip', 'Pas de déconnexion automatique'], + ['connections_network_handler_test', 'Tester le tunnel'], + ['connections_network_handler_test_fail', 'Échec du test du tunnel'], + ['connections_network_handler_test_success', 'Test du tunnel réussi'], + ['connections_network_handler_default_title', 'Gestionnaire de réseau'], + ['connections_network_handler_default_user', 'Utilisateur'], + ['connections_network_handler_default_password', 'Mot de passe'], + ['connections_network_handler_ssh_tunnel_title', 'Tunnel SSH'], + ['connections_network_handler_ssh_tunnel_enable', 'Utiliser le tunnel SSH'], + ['connections_network_handler_ssh_tunnel_host', 'Hôte'], + ['connections_network_handler_ssh_tunnel_port', 'Port'], + ['connections_network_handler_ssh_tunnel_user', 'Utilisateur'], + ['connections_network_handler_ssh_tunnel_password', 'Mot de passe'], + ['connections_network_handler_ssh_tunnel_auth_type', "Méthode d'authentification"], + ['connections_network_handler_ssh_tunnel_private_key', 'Clé privée'], + ['connections_network_handler_ssh_tunnel_advanced_settings', 'Paramètres avancés'], + ['connections_network_handler_ssh_tunnel_advanced_settings_alive_interval', 'Intervalle de maintien en vie (ms)'], + ['connections_network_handler_ssh_tunnel_advanced_settings_connect_timeout', 'Délai de connexion (ms)'], + ['connections_driver_search_placeholder', 'Saisir le nom du pilote...'], + ['connections_not_found', 'Aucune connexion de base de données trouvée'], + + [ + 'cloud_connections_access_placeholder', + 'Les connexions cloud sont visibles par tous les utilisateurs. La gestion des accès peut être configurée dans la "AWS Management Console".', + ], +]; diff --git a/webapp/packages/core-localization/src/LocalizationService.ts b/webapp/packages/core-localization/src/LocalizationService.ts index 7d227ddadd..47d94790df 100644 --- a/webapp/packages/core-localization/src/LocalizationService.ts +++ b/webapp/packages/core-localization/src/LocalizationService.ts @@ -125,6 +125,11 @@ export class LocalizationService extends Bootstrap { name: 'Chinese', nativeName: '中文', }, + { + isoCode: 'fr', + name: 'French', + nativeName: 'Français', + }, ]); this.addProvider(this.coreProvider.bind(this)); } @@ -173,6 +178,8 @@ export class LocalizationService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-localization/src/locales/fr.ts b/webapp/packages/core-localization/src/locales/fr.ts new file mode 100644 index 0000000000..0ec6f36c78 --- /dev/null +++ b/webapp/packages/core-localization/src/locales/fr.ts @@ -0,0 +1,141 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['name', 'fr'], + ['ui_rename_taken_or_invalid', 'Ce nom est indisponible ou invalide'], + ['ui_tag_new', 'Nouveau'], + ['ui_light_theme', 'Clair'], + ['ui_dark_theme', 'Sombre'], + ['ui_stepper_back', 'Retour'], + ['ui_stepper_next', 'Suivant'], + ['ui_stepper_finish', 'Terminer'], + ['ui_load_more', 'Charger plus'], + ['ui_processing_loading', 'Chargement...'], + ['ui_processing_cancel', 'Annuler'], + ['ui_processing_canceling', 'Annulation...'], + ['ui_processing_canceled', 'Annulé'], + ['ui_processing_reload', 'Recharger'], + ['ui_processing_retry', 'Réessayer'], + ['ui_processing_ok', 'Ok'], + ['ui_processing_create', 'Créer'], + ['ui_processing_save', 'Sauvegarder'], + ['ui_processing_saved', 'Sauvegardé'], + ['ui_processing_stop', 'Arrêter'], + ['ui_processing_skip', 'Passer'], + ['ui_second_first_form', '{arg:interval} seconde'], + ['ui_second_second_form', '{arg:interval} secondes'], + ['ui_second_third_form', '{arg:interval} secondes'], + ['ui_minute_first_form', '{arg:interval} minute'], + ['ui_minute_second_form', '{arg:interval} minutes'], + ['ui_minute_third_form', '{arg:interval} minutes'], + ['ui_please_retry', 'Veuillez réessayer'], + ['ui_custom', 'Personnalisé'], + ['ui_configure', 'Configurer'], + ['ui_apply', 'Appliquer'], + ['ui_ignore', 'Ignorer'], + ['ui_unexpected_error', 'Erreur inattendue'], + ['ui_error', 'Erreur'], + ['ui_error_message', 'Erreur :'], + ['ui_error_close', 'Fermer'], + ['ui_clear', 'Effacer'], + ['ui_remove', 'Supprimer'], + ['ui_close', 'Fermer'], + ['ui_open', 'Ouvrir'], + ['ui_errors_details', 'Détails'], + ['ui_search', 'Rechercher...'], + ['ui_delete', 'Supprimer'], + ['ui_add', 'Ajouter'], + ['ui_refresh', 'Actualiser'], + ['ui_data_saving_error', 'Erreur de sauvegarde'], + ['ui_data_remove_confirmation', 'Confirmation de suppression'], + ['ui_data_delete_confirmation', 'Confirmation de suppression'], + ['ui_no_matches_placeholder', 'Votre recherche n\'a retourné aucun résultat.'], + ['ui_information', 'Information'], + ['ui_clipboard', 'Presse-papiers'], + ['ui_copy_to_clipboard', 'Copier'], + ['ui_copy_to_clipboard_copied', 'Copié'], + ['ui_copy_to_clipboard_failed_to_copy', 'Échec de la copie'], + ['ui_clipboard_access_denied_title', 'Accès au presse-papiers refusé'], + ['ui_clipboard_access_denied_message', 'Vous devez donner accès au presse-papiers pour utiliser certaines fonctionnalités de l\'application'], + ['ui_reveal_password', 'Afficher ou masquer le mot de passe'], + ['ui_capslock_on', 'Verr Maj est activé'], + ['ui_page_not_found', 'Page non trouvée'], + ['ui_revoke', 'Révoquer'], + ['ui_grant', 'Accorder'], + ['ui_edit', 'Modifier'], + ['ui_open_in_tab', 'Ouvrir dans un onglet'], + ['ui_rename', 'Renommer'], + ['ui_create', 'Créer'], + ['ui_create_processing', 'Création...'], + ['ui_folder', 'Dossier'], + ['ui_folder_new', 'Nouveau dossier'], + ['ui_rename_processing', 'Renommage...'], + ['ui_interval', 'Intervalle'], + ['ui_name', 'Nom'], + ['ui_cant_delete_item', 'Cet élément ne peut pas être supprimé'], + ['ui_no_items_placeholder', 'Il n\'y a pas encore d\'éléments.'], + ['ui_search_no_result_placeholder', 'Aucun résultat trouvé.'], + ['ui_save_reminder', 'Vous avez des modifications non sauvegardées.'], + ['ui_yes', 'Oui'], + ['ui_no', 'Non'], + ['ui_select_all', 'Tout sélectionner'], + ['ui_reconnect', 'Reconnecter'], + ['ui_forget', 'Oublier'], + ['ui_set', 'Définir'], + ['ui_restore', 'Restaurer'], + ['ui_are_you_sure', 'Êtes-vous sûr?'], + ['ui_options', 'Options'], + ['ui_changes_might_be_lost', 'Vos modifications pourraient être perdues'], + ['ui_file', 'Fichier'], + ['ui_changes_will_be_lost', 'Vos modifications seront perdues'], + ['ui_continue', 'Continuer'], + ['ui_authentication', 'Authentification'], + ['ui_settings', 'Paramètres'], + ['ui_advanced_settings', 'Paramètres avancés'], + ['ui_expand', 'Développer'], + ['ui_close_all', 'Tout fermer'], + ['ui_close_others', 'Fermer les autres'], + ['ui_close_all_to_the_right', 'Fermer tout à droite'], + ['ui_close_all_to_the_left', 'Fermer tout à gauche'], + ['ui_or', 'Ou'], + ['ui_download', 'Télécharger'], + ['ui_download_file', 'Télécharger le fichier'], + ['ui_upload', 'Importer'], + ['ui_import', 'Importer'], + ['ui_view', 'Voir'], + ['ui_show_more', 'Voir plus'], + ['ui_limit', 'Limite'], + ['ui_file_size', 'Taille du fichier'], + ['ui_processing_synchronization', 'Synchronisation...'], + ['ui_no_file_chosen', 'Aucun fichier choisi'], + ['ui_file_size_exceeds', 'La taille maximale du fichier est dépassée. Taille du fichier : {arg:size}. Taille maximale : {arg:maxSize}'], + ['ui_upload_file', 'Importer un fichier'], + ['ui_upload_files', 'Importer des fichiers'], + ['ui_upload_files_duplicate_error', 'Des fichiers portant le même nom existent déjà'], + ['ui_upload_file_fail', 'Échec du téléversement du fichier'], + ['ui_filter', 'Filtrer'], + ['ui_disable', 'Désactiver'], + ['ui_readonly', 'Lecture seule'], + ['ui_test', 'Tester'], + ['ui_export', 'Exporter'], + ['ui_you', 'Vous'], + + ['root_permission_denied', 'Vous n\'avez pas les permissions'], + ['root_permission_no_permission', 'Vous n\'avez pas la permission pour cette action'], + ['app_root_session_expire_warning_title', 'La session est sur le point d\'expirer'], + ['app_root_session_expire_warning_message', 'Votre session expirera dans moins de 5 minutes. Pour continuer à travailler, fermez cette popup.'], + ['app_root_session_expire_warning_button', 'Je suis ici'], + ['app_root_session_expired_title', 'Session expirée'], + ['app_root_session_expired_message', 'La session a expiré. Voulez-vous recharger ?'], + ['app_root_session_expired_reload', 'Recharger'], + ['app_root_server_node_changed_title', 'L\'application a été relancée'], + ['app_root_server_node_changed_message', 'L\'application a été relancée. Veuillez recharger la page.'], + ['app_root_quota_exceeded', 'Quota dépassé'], + ['app_root_event_permissions_changed_message', 'Vos permissions ont été modifiées'], + ['core_eventsLog_dbeaverErrorDetails', 'Détails de l\'erreur'], +]; diff --git a/webapp/packages/core-navigation-tree/src/LocaleService.ts b/webapp/packages/core-navigation-tree/src/LocaleService.ts index c9481817e1..3f07bae28c 100644 --- a/webapp/packages/core-navigation-tree/src/LocaleService.ts +++ b/webapp/packages/core-navigation-tree/src/LocaleService.ts @@ -26,6 +26,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-navigation-tree/src/locales/fr.ts b/webapp/packages/core-navigation-tree/src/locales/fr.ts new file mode 100644 index 0000000000..57ba0d4c28 --- /dev/null +++ b/webapp/packages/core-navigation-tree/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [['core_navigation_tree_navigation_tree_settings_group', 'Arborescence de navigation']]; diff --git a/webapp/packages/core-projects/src/LocaleService.ts b/webapp/packages/core-projects/src/LocaleService.ts index 6d5326d0e6..483bb120d5 100644 --- a/webapp/packages/core-projects/src/LocaleService.ts +++ b/webapp/packages/core-projects/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; case 'de': return (await import('./locales/de')).default; default: diff --git a/webapp/packages/core-projects/src/locales/de.ts b/webapp/packages/core-projects/src/locales/de.ts index dc89a293cc..4be185309d 100644 --- a/webapp/packages/core-projects/src/locales/de.ts +++ b/webapp/packages/core-projects/src/locales/de.ts @@ -1 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ export default [['core_projects_no_default_project', 'Projekt wird nicht gefunden']]; diff --git a/webapp/packages/core-projects/src/locales/fr.ts b/webapp/packages/core-projects/src/locales/fr.ts new file mode 100644 index 0000000000..6be9932987 --- /dev/null +++ b/webapp/packages/core-projects/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [['core_projects_no_default_project', 'Projet non trouvé']]; diff --git a/webapp/packages/core-resource-manager/src/LocaleService.ts b/webapp/packages/core-resource-manager/src/LocaleService.ts index c9481817e1..3f07bae28c 100644 --- a/webapp/packages/core-resource-manager/src/LocaleService.ts +++ b/webapp/packages/core-resource-manager/src/LocaleService.ts @@ -26,6 +26,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-resource-manager/src/locales/fr.ts b/webapp/packages/core-resource-manager/src/locales/fr.ts new file mode 100644 index 0000000000..92cd1efd44 --- /dev/null +++ b/webapp/packages/core-resource-manager/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [['core_resource_manager_resource_manager_settings_group', 'Gestionnaire de ressources']]; diff --git a/webapp/packages/core-settings-localization/src/LocaleService.ts b/webapp/packages/core-settings-localization/src/LocaleService.ts index 6d5326d0e6..483bb120d5 100644 --- a/webapp/packages/core-settings-localization/src/LocaleService.ts +++ b/webapp/packages/core-settings-localization/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; case 'de': return (await import('./locales/de')).default; default: diff --git a/webapp/packages/core-settings-localization/src/locales/fr.ts b/webapp/packages/core-settings-localization/src/locales/fr.ts new file mode 100644 index 0000000000..d88ef16166 --- /dev/null +++ b/webapp/packages/core-settings-localization/src/locales/fr.ts @@ -0,0 +1,11 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_settings_localization_settings_locale_label', 'Langue'], + ['core_settings_localization_settings_locale_description', 'Langue de l\'application'], +]; diff --git a/webapp/packages/core-settings-user/src/LocaleService.ts b/webapp/packages/core-settings-user/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/core-settings-user/src/LocaleService.ts +++ b/webapp/packages/core-settings-user/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-settings-user/src/locales/fr.ts b/webapp/packages/core-settings-user/src/locales/fr.ts new file mode 100644 index 0000000000..499f73c9bf --- /dev/null +++ b/webapp/packages/core-settings-user/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default []; diff --git a/webapp/packages/core-settings/src/LocaleService.ts b/webapp/packages/core-settings/src/LocaleService.ts index c9481817e1..3f07bae28c 100644 --- a/webapp/packages/core-settings/src/LocaleService.ts +++ b/webapp/packages/core-settings/src/LocaleService.ts @@ -26,6 +26,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-settings/src/locales/fr.ts b/webapp/packages/core-settings/src/locales/fr.ts new file mode 100644 index 0000000000..3c8e8c6392 --- /dev/null +++ b/webapp/packages/core-settings/src/locales/fr.ts @@ -0,0 +1,11 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_plugin_interface_settings_group', 'Interface'], + ['core_plugin_root_settings_group', 'Paramètres'], +]; diff --git a/webapp/packages/core-theming/src/LocaleService.ts b/webapp/packages/core-theming/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/core-theming/src/LocaleService.ts +++ b/webapp/packages/core-theming/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-theming/src/locales/fr.ts b/webapp/packages/core-theming/src/locales/fr.ts new file mode 100644 index 0000000000..fda9508a43 --- /dev/null +++ b/webapp/packages/core-theming/src/locales/fr.ts @@ -0,0 +1,11 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_theming_settings_theme_name', 'Thème'], + ['core_theming_settings_theme_description', 'Thème de couleur de l\'application'], +]; diff --git a/webapp/packages/core-ui/src/LocaleService.ts b/webapp/packages/core-ui/src/LocaleService.ts index 4c2039610f..c52a7b982c 100644 --- a/webapp/packages/core-ui/src/LocaleService.ts +++ b/webapp/packages/core-ui/src/LocaleService.ts @@ -26,6 +26,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/ru')).default; case 'it': return (await import('./locales/it')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-ui/src/locales/fr.ts b/webapp/packages/core-ui/src/locales/fr.ts new file mode 100644 index 0000000000..da868a5326 --- /dev/null +++ b/webapp/packages/core-ui/src/locales/fr.ts @@ -0,0 +1,12 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_ui_empty', 'Vide'], + ['core_ui_form_save_error', 'Une erreur est survenue lors de la sauvegarde du formulaire'], + ['core_ui_switch_tab_error', "Impossible de changer d'onglet pendant la validation du formulaire"], +]; diff --git a/webapp/packages/core-version-update/src/LocaleService.ts b/webapp/packages/core-version-update/src/LocaleService.ts index 1125c58f05..e7b46864f9 100644 --- a/webapp/packages/core-version-update/src/LocaleService.ts +++ b/webapp/packages/core-version-update/src/LocaleService.ts @@ -28,6 +28,8 @@ export class VersionUpdateLocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/core-version-update/src/locales/fr.ts b/webapp/packages/core-version-update/src/locales/fr.ts new file mode 100644 index 0000000000..082f3afdd6 --- /dev/null +++ b/webapp/packages/core-version-update/src/locales/fr.ts @@ -0,0 +1,17 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['version_update', 'Mise à jour de version'], + ['version_update_version_is_up_to_date', 'La version est à jour'], + ['version_update_new_version_available', 'Une nouvelle version est disponible'], + ['version_update_version_no_info', 'Aucune information de version disponible'], + ['version_update_versions_refresh_successful', 'Liste des versions rafraîchie avec succès'], + ['version_update_versions_refresh_fail', 'Échec du rafraîchissement de la liste des versions'], + ['version_update_how_to_update', 'Comment mettre à jour'], + ['version_update_info', 'Info'], +]; diff --git a/webapp/packages/core-version/src/VersionLocaleService.ts b/webapp/packages/core-version/src/VersionLocaleService.ts index 0c110756bb..c74671c326 100644 --- a/webapp/packages/core-version/src/VersionLocaleService.ts +++ b/webapp/packages/core-version/src/VersionLocaleService.ts @@ -28,6 +28,8 @@ export class VersionLocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; case 'de': return (await import('./locales/de')).default; default: diff --git a/webapp/packages/core-version/src/locales/de.ts b/webapp/packages/core-version/src/locales/de.ts index 66a8bff4ca..f3d73b6297 100644 --- a/webapp/packages/core-version/src/locales/de.ts +++ b/webapp/packages/core-version/src/locales/de.ts @@ -1,3 +1,10 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ export default [ ['version', 'Version'], ['versions', 'Versionen'], diff --git a/webapp/packages/core-version/src/locales/fr.ts b/webapp/packages/core-version/src/locales/fr.ts new file mode 100644 index 0000000000..411a2e903f --- /dev/null +++ b/webapp/packages/core-version/src/locales/fr.ts @@ -0,0 +1,16 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['version', 'Version'], + ['versions', 'Versions'], + ['version_date', 'Date de sortie'], + ['version_tag', 'Tag'], + ['version_latest', 'Dernière'], + ['version_current', 'Actuelle'], + ['versions_load_fail', "Impossible d'obtenir les informations sur la dernière version de l'application"], +]; diff --git a/webapp/packages/core-view/src/LocaleService.ts b/webapp/packages/core-view/src/LocaleService.ts index 5c9b21628e..911d2cdc68 100644 --- a/webapp/packages/core-view/src/LocaleService.ts +++ b/webapp/packages/core-view/src/LocaleService.ts @@ -26,6 +26,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/ru')).default; case 'it': return (await import('./locales/it')).default; + case 'fr': + return (await import('./locales/fr')).default; case 'de': return (await import('./locales/de')).default; default: diff --git a/webapp/packages/core-view/src/locales/de.ts b/webapp/packages/core-view/src/locales/de.ts index a78aab510c..f9af6e31a0 100644 --- a/webapp/packages/core-view/src/locales/de.ts +++ b/webapp/packages/core-view/src/locales/de.ts @@ -1,3 +1,10 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ export default [ ['core_view_action_create_label', 'Erstellen'], ['core_view_action_new_folder', 'Neuer Ordner'], diff --git a/webapp/packages/core-view/src/locales/fr.ts b/webapp/packages/core-view/src/locales/fr.ts new file mode 100644 index 0000000000..e3e35b18f8 --- /dev/null +++ b/webapp/packages/core-view/src/locales/fr.ts @@ -0,0 +1,15 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['core_view_layout', 'Disposition'], + ['core_view_zoom_in', 'Agrandir'], + ['core_view_zoom_out', 'Réduire'], + ['core_view_action_create_label', 'Créer'], + ['core_view_action_new_folder', 'Nouveau dossier'], + ['core_view_action_edit_label', 'Modifier'], +]; diff --git a/webapp/packages/plugin-administration/src/LocaleService.ts b/webapp/packages/plugin-administration/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-administration/src/LocaleService.ts +++ b/webapp/packages/plugin-administration/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-administration/src/locales/fr.ts b/webapp/packages/plugin-administration/src/locales/fr.ts new file mode 100644 index 0000000000..7bbeff7d09 --- /dev/null +++ b/webapp/packages/plugin-administration/src/locales/fr.ts @@ -0,0 +1,93 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['administration_server_configuration_save_confirmation_title', 'Mise à jour des paramètres du serveur'], + ['administration_server_configuration_save_confirmation_message', 'Vous êtes sur le point de changer des paramètres critiques. Êtes-vous sûr?'], + + ['administration_configuration_wizard_welcome', 'Bienvenue'], + ['administration_configuration_wizard_welcome_step_description', 'Bienvenue sur {alias:product_full_name}'], + ['administration_configuration_wizard_welcome_title', 'Bienvenue sur {alias:product_full_name}, le système de gestion de base de données cloud!'], + [ + 'administration_configuration_wizard_welcome_message', + "L'assistant de configuration facile vous guidera à travers plusieurs étapes simples pour configurer le serveur. Vous devrez définir les informations du serveur et les identifiants de l'administrateur. Vous pourrez configurer des paramètres supplémentaires du serveur une fois la configuration facile terminée.", + ], + [ + 'administration_configuration_wizard_welcome_note', + "Note : vous pourrez changer ces paramètres de configuration plus tard dans le panneau d'administration.", + ], + + ['administration_configuration_wizard_configuration', 'Configuration du serveur'], + ['administration_configuration_wizard_configuration_step_description', 'Configuration principale du serveur'], + ['administration_configuration_wizard_configuration_title', 'Vous pouvez configurer ici les paramètres principaux du serveur.'], + [ + 'administration_configuration_wizard_configuration_message', + "Vous pourrez ajouter des services supplémentaires après la configuration du serveur.\nL'administrateur est un super utilisateur qui peut configurer le serveur, définir les connexions aux bases de données, gérer les autres utilisateurs et bien plus encore. Veuillez vous souvenir du mot de passe saisi. Il n'est pas possible de récupérer automatiquement le mot de passe de l'administrateur.", + ], + + ['administration_configuration_tools_save_tooltip', 'Enregistrer la configuration'], + ['administration_configuration_tools_cancel_tooltip', 'Réinitialiser les modifications'], + + ['administration_configuration_wizard_configuration_server_info', 'Informations sur le serveur'], + ['administration_configuration_wizard_configuration_server_name', 'Nom du serveur'], + ['administration_configuration_wizard_configuration_server_url', 'URL du serveur'], + ['administration_configuration_wizard_configuration_server_url_description', "URL d'accès global au serveur"], + ['administration_configuration_wizard_configuration_server_info_unsaved_title', 'Paramètres non enregistrés'], + [ + 'administration_configuration_wizard_configuration_server_info_unsaved_message', + 'Les paramètres peuvent être enregistrés sur la page de configuration du serveur', + ], + ['administration_configuration_wizard_configuration_server_info_unsaved_navigate', 'Ouvrir'], + ['administration_configuration_wizard_configuration_server_session_lifetime', 'Durée de la session, min'], + [ + 'administration_configuration_wizard_configuration_server_session_lifetime_description', + "Ici, vous pouvez spécifier le nombre de minutes pendant lesquelles vous souhaitez que la session reste inactive avant qu'elle n'expire", + ], + + ['administration_configuration_wizard_configuration_plugins', 'Configuration'], + ['administration_configuration_wizard_configuration_custom_connections', 'Activer les connexions privées'], + ['administration_configuration_wizard_configuration_custom_connections_description', 'Permet aux utilisateurs de créer des connexions privées'], + ['administration_configuration_wizard_configuration_navigation_tree_view', 'Vue simple du navigateur'], + [ + 'administration_configuration_wizard_configuration_navigation_tree_view_description', + "Par défaut, toutes les nouvelles connexions des utilisateurs ne contiendront que des informations de base dans l'arborescence de navigation", + ], + + ['administration_configuration_wizard_configuration_security', 'Sécurité'], + ['administration_configuration_wizard_configuration_security_admin_credentials', 'Enregistrer les identifiants'], + [ + 'administration_configuration_wizard_configuration_security_admin_credentials_description', + "Permet d'enregistrer les identifiants pour la base de données préconfigurée", + ], + ['administration_configuration_wizard_configuration_security_public_credentials', 'Enregistrer les identifiants des utilisateurs'], + [ + 'administration_configuration_wizard_configuration_security_public_credentials_description', + "Permet d'enregistrer les identifiants pour les utilisateurs non administrateurs", + ], + + ['administration_configuration_wizard_configuration_navigator', 'Navigateur'], + ['administration_configuration_wizard_configuration_navigator_hide_folders', 'Masquer les dossiers'], + ['administration_configuration_wizard_configuration_navigator_hide_schemas', 'Masquer les schémas'], + ['administration_configuration_wizard_configuration_navigator_hide_virtual_model', 'Masquer le modèle virtuel'], + ['administration_configuration_wizard_configuration_navigator_merge_entities', 'Fusionner les entités'], + ['administration_configuration_wizard_configuration_navigator_show_only_entities', 'Seulement les entités'], + ['administration_configuration_wizard_configuration_navigator_show_system_objects', 'Objets système'], + ['administration_configuration_wizard_configuration_navigator_show_utility_objects', 'Objets utilitaires'], + + ['administration_configuration_wizard_step_validation_message', "Échec du passage à l'étape suivante"], + + ['administration_configuration_wizard_finish', 'Confirmation'], + ['administration_configuration_wizard_finish_step_description', 'Confirmation'], + ['administration_configuration_wizard_finish_title', "C'est presque terminé."], + [ + 'administration_configuration_wizard_finish_message', + "Appuyez sur le bouton Terminer pour compléter la configuration du serveur. Vous pouvez revenir aux pages précédentes si vous souhaitez modifier ou ajouter quelque chose.\nLorsque la configuration est terminée, tous les paramètres saisis seront appliqués à votre serveur. Vous serez redirigé vers la page principale pour commencer à travailler.\nVous pouvez toujours vous connecter au système en tant qu'administrateur pour modifier les paramètres du serveur.", + ], + + ['administration_disabled_drivers_title', 'Pilotes désactivés'], + ['administration_disabled_drivers_search_placeholder', 'Rechercher le pilote...'], +]; diff --git a/webapp/packages/plugin-authentication-administration/src/AuthenticationLocaleService.ts b/webapp/packages/plugin-authentication-administration/src/AuthenticationLocaleService.ts index be0a485a01..8e1257a264 100644 --- a/webapp/packages/plugin-authentication-administration/src/AuthenticationLocaleService.ts +++ b/webapp/packages/plugin-authentication-administration/src/AuthenticationLocaleService.ts @@ -28,6 +28,8 @@ export class AuthenticationLocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-authentication-administration/src/locales/fr.ts b/webapp/packages/plugin-authentication-administration/src/locales/fr.ts new file mode 100644 index 0000000000..8c546b95ee --- /dev/null +++ b/webapp/packages/plugin-authentication-administration/src/locales/fr.ts @@ -0,0 +1,134 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['authentication_administration_user_connections_user_add', "Création d'utilisateur"], + ['authentication_administration_user_connections_user_new', 'Nouvel utilisateur'], + ['authentication_administration_user_connections_access_load_fail', "Échec du chargement des connexions accordées à l'utilisateur"], + ['authentication_administration_user_connections_access_connections_load_fail', 'Échec du chargement des connexions'], + ['authentication_administration_user_connections_access', 'Accès aux connexions'], + ['authentication_administration_user_connections_access_granted_by', 'Accordé par'], + ['authentication_administration_user_connections_access_granted_team', 'Équipe :'], + ['authentication_administration_user_connections_access_granted_directly', 'Directement'], + ['authentication_administration_user_connections_access_granted_unmanaged', 'Non géré'], + ['authentication_administration_user_connections_empty', 'Aucune connexion disponible'], + ['authentication_administration_user_origin_empty', 'Aucun détail disponible'], + ['authentication_administration_user_info', 'Info'], + ['authentication_administration_user_local', 'Utilisateur local'], + ['authentication_administration_user_auth_method', "Méthode d'authentification"], + ['authentication_administration_user_auth_methods', "Méthodes d'authentification"], + ['authentication_administration_user_auth_methods_empty', "Aucune méthode d'authentification disponible"], + ['authentication_administration_user_auth_method_no_details', 'Aucun détail disponible'], + ['authentication_administration_item', 'Gestion des accès'], + ['authentication_administration_item_users', 'Utilisateurs'], + ['authentication_administration_item_metaParameters', 'Paramètres Méta'], + ['authentication_administration_tools_add_tooltip', 'Créer un nouvel utilisateur'], + ['authentication_administration_tools_refresh_tooltip', 'Rafraîchir la liste des utilisateurs'], + ['authentication_administration_tools_delete_tooltip', 'Supprimer les utilisateurs sélectionnés'], + ['authentication_administration_tools_refresh_success', 'La liste des utilisateurs a été rafraîchie'], + ['authentication_administration_tools_refresh_fail', 'Échec de la mise à jour des utilisateurs'], + ['authentication_administration_user_delete_fail', "Erreur de suppression de l'utilisateur"], + ['authentication_administration_user_update_failed', "Erreur de sauvegarde de l'utilisateur"], + ['authentication_administration_user_updated', 'Utilisateur mis à jour'], + ['authentication_administration_user_created', 'Utilisateur créé avec succès'], + ['authentication_administration_user_create_failed', 'Erreur de création du nouvel utilisateur'], + ['authentication_administration_users_delete_confirmation', 'Vous allez supprimer ces utilisateurs : '], + ['authentication_administration_users_filters_search_placeholder', "Rechercher le nom de l'utilisateur..."], + ['authentication_administration_users_filters_status_enabled', 'ACTIVÉ'], + ['authentication_administration_users_filters_status_disabled', 'DÉSACTIVÉ'], + ['authentication_administration_users_filters_status_all', 'TOUS'], + ['authentication_administration_users_empty', "Il n'y a pas d'utilisateurs"], + ['authentication_administration_users_delete_user', "Supprimer l'utilisateur"], + ['authentication_administration_users_delete_user_fail', "Échec de la suppression de l'utilisateur"], + ['authentication_administration_users_delete_user_success', 'Utilisateur supprimé'], + ['authentication_administration_users_disable_user_fail', "Échec de la désactivation de l'utilisateur"], + ['authentication_administration_users_disable_user_success', 'Utilisateur désactivé'], + [ + 'authentication_administration_users_delete_user_confirmation_input_description', + "Veuillez saisir le nom d'utilisateur du compte pour confirmer sa suppression.", + ], + ['authentication_administration_users_delete_user_confirmation_input_placeholder', "Saisir le nom d'utilisateur ici..."], + [ + 'authentication_administration_users_delete_user_disable_info', + 'Êtes-vous sûr de vouloir supprimer "{arg:username}" ? Si vous voulez simplement empêcher temporairement l\'accès, vous pouvez choisir de désactiver le compte à la place.', + ], + [ + 'authentication_administration_users_delete_user_info', + 'La suppression de ce compte supprimera définitivement toutes les données utilisateur associées du système. Veuillez confirmer que vous souhaitez procéder à la suppression de l\'utilisateur "{arg:username}".', + ], + + ['authentication_administration_user_delete_credentials_error', "Échec de la suppression des identifiants de l'utilisateur"], + ['authentication_administration_user_delete_credentials_success', "Les identifiants de l'utilisateur ont été supprimés"], + [ + 'authentication_administration_user_delete_credentials_confirmation_message', + 'Êtes-vous sûr de vouloir supprimer la méthode d\'authentification "{arg:originName}" de "{arg:userId}" ?', + ], + + ['administration_configuration_wizard_configuration_admin', "Identifiants de l'administrateur"], + ['administration_configuration_wizard_configuration_admin_name', 'Identifiant'], + ['administration_configuration_wizard_configuration_admin_password', 'Mot de passe'], + ['administration_configuration_wizard_configuration_anonymous_access', "Autoriser l'accès anonyme"], + [ + 'administration_configuration_wizard_configuration_anonymous_access_description', + 'Permet de travailler avec CloudBeaver sans authentification utilisateur', + ], + ['administration_configuration_wizard_configuration_authentication_group', "Paramètres d'authentification"], + ['administration_configuration_wizard_configuration_services_group', 'Services'], + ['administration_configuration_wizard_configuration_services', 'Services'], + ['administration_configuration_wizard_configuration_authentication', "Activer l'authentification des utilisateurs"], + [ + 'administration_configuration_wizard_configuration_authentication_description', + "Permet aux utilisateurs de s'authentifier. Sinon, seul l'accès anonyme est activé", + ], + + ['administration_identity_providers_tab_title', "Fournisseurs d'identité"], + ['administration_identity_providers_provider', 'Fournisseur'], + ['administration_identity_providers_provider_id', 'ID'], + ['administration_identity_providers_provider_configuration_name', 'Nom de la configuration'], + ['administration_identity_providers_provider_configuration_disabled', 'Désactivé'], + ['administration_identity_providers_provider_configuration_description', 'Description'], + ['administration_identity_providers_provider_configuration_icon_url', "URL de l'icône"], + ['administration_identity_providers_provider_configuration_parameters', 'Paramètres'], + ['administration_identity_providers_provider_configuration_links', 'Liens'], + ['administration_identity_providers_provider_configuration_links_metadata', 'Télécharger le fichier de métadonnées'], + ['administration_identity_providers_wizard_description', "Ajouter des fournisseurs d'identité"], + ['administration_identity_providers_configuration_add', 'Création de configuration'], + ['administration_identity_providers_choose_provider_placeholder', 'Sélectionner un fournisseur...'], + ['administration_identity_providers_add_tooltip', 'Ajouter une nouvelle configuration'], + ['administration_identity_providers_refresh_tooltip', 'Rafraîchir la liste des configurations'], + ['administration_identity_providers_delete_tooltip', 'Supprimer les configurations sélectionnées'], + ['administration_identity_providers_delete_confirmation', 'Vous allez supprimer ces configurations : '], + ['administration_identity_providers_provider_save_error', 'Erreur de sauvegarde de la configuration'], + ['administration_identity_providers_provider_create_error', 'Erreur de création de la configuration'], + ['administration_identity_providers_configuration_list_update_success', 'La liste des configurations a été rafraîchie'], + ['administration_identity_providers_configuration_list_update_fail', 'Échec du rafraîchissement de la liste des configurations'], + ['administration_identity_providers_service_link', 'Modifier les configurations'], + + ['administration_teams_tab_title', 'Équipes'], + ['administration_teams_tab_description', 'Gestion des équipes'], + ['administration_teams_team_creation', "Création d'équipe"], + ['administration_teams_team_id', "ID de l'équipe"], + ['administration_teams_team_name', "Nom de l'équipe"], + ['administration_teams_team_description', 'Description'], + ['administration_teams_team_permissions', 'Permissions'], + ['administration_teams_team_create_error', "Erreur de création de l'équipe"], + ['administration_teams_team_save_error', "Erreur de sauvegarde de l'équipe"], + ['administration_teams_team_list_update_success', 'La liste des équipes a été rafraîchie'], + ['administration_teams_team_list_update_fail', 'Échec du rafraîchissement de la liste des équipes'], + ['administration_teams_team_info_created', 'Équipe créée'], + ['administration_teams_team_info_updated', 'Équipe mise à jour'], + ['administration_teams_team_info_id_invalid', "Le champ '{alias:administration_teams_team_id}' ne peut pas être vide"], + ['administration_teams_team_info_exists', "Une équipe avec l'ID '{arg:teamId}' existe déjà"], + ['administration_teams_add_tooltip', 'Ajouter une nouvelle équipe'], + ['administration_teams_refresh_tooltip', 'Rafraîchir la liste des équipes'], + ['administration_teams_delete_tooltip', 'Supprimer les équipes sélectionnées'], + ['administration_teams_delete_confirmation', 'Vous allez supprimer ces équipes : '], + [ + 'administration_teams_delete_confirmation_users_note', + "Notez que les utilisateurs perdront leur affiliation à l'équipe et toutes les permissions associées", + ], +]; diff --git a/webapp/packages/plugin-authentication/src/AuthenticationLocaleService.ts b/webapp/packages/plugin-authentication/src/AuthenticationLocaleService.ts index be0a485a01..8e1257a264 100644 --- a/webapp/packages/plugin-authentication/src/AuthenticationLocaleService.ts +++ b/webapp/packages/plugin-authentication/src/AuthenticationLocaleService.ts @@ -28,6 +28,8 @@ export class AuthenticationLocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-authentication/src/locales/fr.ts b/webapp/packages/plugin-authentication/src/locales/fr.ts new file mode 100644 index 0000000000..0a2a4a0c75 --- /dev/null +++ b/webapp/packages/plugin-authentication/src/locales/fr.ts @@ -0,0 +1,53 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['authentication_login_dialog_title', 'Authentification'], + ['authentication_login', 'Connexion'], + ['authentication_logout', 'Déconnexion'], + ['authentication_logout_error', 'Impossible de se déconnecter'], + ['authentication_authenticate', 'S\'authentifier'], + ['authentication_authorizing', 'Autorisation...'], + ['authentication_auth_federated', 'Fédéré'], + ['authentication_auth_force_session_logout', 'Forcer la déconnexion de toutes les autres sessions'], + ['authentication_auth_force_session_logout_popup_title', 'Déconnecter les autres sessions'], + ['authentication_auth_force_session_logout_popup_message', 'Tous les utilisateurs seront déconnectés de tous les appareils. Voulez-vous continuer ?'], + ['authentication_auth_force_session_logout_checkbox_tooltip', 'Pour appliquer cette option, vous devez vous reconnecter'], + ['authentication_auth_additional', 'Supplémentaire'], + ['authentication_select_provider', 'Sélectionner un fournisseur disponible'], + ['authentication_configure', 'Veuillez configurer les méthodes d\'authentification'], + ['authentication_provider_disabled', 'La méthode d\'authentification est désactivée'], + ['authentication_request_token', 'Une authentification supplémentaire est requise'], + ['authentication_identity_provider_search_placeholder', 'Rechercher le nom ou la description de la configuration...'], + ['authentication_identity_provider_dialog_subtitle', 'Choisissez la configuration avec laquelle vous souhaitez vous connecter'], + + ['authentication_user_name', 'Nom d\'utilisateur'], + ['authentication_user_role', 'Rôle'], + ['authentication_user_credentials', 'Identifiants'], + ['authentication_user_meta_parameters', 'Paramètres'], + ['authentication_team_meta_parameters', 'Paramètres'], + ['authentication_user_password', 'Mot de passe de l\'utilisateur'], + ['authentication_user_password_repeat', 'Répéter le mot de passe'], + ['authentication_user_team', 'Équipe de l\'utilisateur'], + ['authentication_user_status', 'Statut de l\'utilisateur'], + ['authentication_user_enabled', 'Activé'], + ['authentication_user_login_not_set', 'Le nom d\'utilisateur ne peut pas être vide'], + ['authentication_user_team_not_set', 'Au moins une équipe doit être sélectionnée'], + ['authentication_user_role_not_set', '{alias:authentication_user_role} est requis'], + ['authentication_user_password_not_set', '{alias:authentication_user_password} est requis'], + ['authentication_user_passwords_not_match', 'Les mots de passe ne correspondent pas'], + ['authentication_user_login_already_exists', 'Un utilisateur avec ce nom existe déjà'], + ['authentication_user_login_cant_be_used', 'Désolé, ce nom ne peut pas être utilisé'], + ['authentication_user_icon_tooltip', 'Utilisateur'], + ['authentication_team_icon_tooltip', 'Équipe'], + + ['plugin_authentication_user_loading_error', 'Impossible de charger les données utilisateur'], + ['plugin_authentication_loading_error_dialog_title', 'Erreur d\'authentification'], + ['plugin_authentication_loading_error_dialog_message', 'Une erreur est survenue lors du chargement des données utilisateur. Voulez-vous vous déconnecter ?'], + + ['plugin_authentication_authentication_method_disabled', 'La méthode d\'authentification est désactivée, veuillez configurer les méthodes d\'authentification dans les paramètres'], +]; diff --git a/webapp/packages/plugin-browser/src/LocaleService.ts b/webapp/packages/plugin-browser/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-browser/src/LocaleService.ts +++ b/webapp/packages/plugin-browser/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-browser/src/locales/fr.ts b/webapp/packages/plugin-browser/src/locales/fr.ts new file mode 100644 index 0000000000..19585bce57 --- /dev/null +++ b/webapp/packages/plugin-browser/src/locales/fr.ts @@ -0,0 +1,12 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_browser_update_dialog_title', "Installation de l'application..."], + ['plugin_browser_update_dialog_title', "Installation d'une mise à jour..."], + ['plugin_browser_update_dialog_message', "L'application sera redémarrée automatiquement \n{arg:progress}"], +]; diff --git a/webapp/packages/plugin-connection-custom/src/LocaleService.ts b/webapp/packages/plugin-connection-custom/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-connection-custom/src/LocaleService.ts +++ b/webapp/packages/plugin-connection-custom/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-connection-custom/src/locales/fr.ts b/webapp/packages/plugin-connection-custom/src/locales/fr.ts new file mode 100644 index 0000000000..45855a2b3c --- /dev/null +++ b/webapp/packages/plugin-connection-custom/src/locales/fr.ts @@ -0,0 +1,28 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['customConnection_connectionType_custom', 'Paramètres'], + ['customConnection_connectionType_url', 'URL'], + ['customConnection_main', 'Principal'], + ['customConnection_properties', 'Propriétés du pilote'], + ['customConnection_custom_name', 'Nom'], + ['customConnection_custom_host', 'Hôte'], + ['customConnection_custom_obligatory', '(obligatoire)'], + ['customConnection_custom_port', 'Port'], + ['customConnection_custom_server_name', 'Nom du serveur'], + ['customConnection_custom_database', 'Base de données'], + ['customConnection_custom_server', 'Serveur'], + ['customConnection_url_JDBC', 'URL JDBC'], + ['customConnection_folder', 'Dossier'], + ['customConnection_userName', "Nom d'utilisateur"], + ['customConnection_Password', 'Mot de passe'], + ['customConnection_test', 'Tester la connexion'], + ['customConnection_create', 'Créer'], + ['customConnection_create_error', 'Erreur de création de la connexion'], + ['plugin_connection_custom_action_custom_label', 'Nouvelle connexion'], +]; diff --git a/webapp/packages/plugin-connection-search/src/LocaleService.ts b/webapp/packages/plugin-connection-search/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-connection-search/src/LocaleService.ts +++ b/webapp/packages/plugin-connection-search/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-connection-search/src/locales/fr.ts b/webapp/packages/plugin-connection-search/src/locales/fr.ts new file mode 100644 index 0000000000..7598c9cb1e --- /dev/null +++ b/webapp/packages/plugin-connection-search/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [['plugin_connection_search_action_search_label', 'Trouver une base de données locale']]; diff --git a/webapp/packages/plugin-connection-template/src/LocaleService.ts b/webapp/packages/plugin-connection-template/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-connection-template/src/LocaleService.ts +++ b/webapp/packages/plugin-connection-template/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-connection-template/src/locales/fr.ts b/webapp/packages/plugin-connection-template/src/locales/fr.ts new file mode 100644 index 0000000000..5dfbf166cc --- /dev/null +++ b/webapp/packages/plugin-connection-template/src/locales/fr.ts @@ -0,0 +1,20 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['basicConnection_connectionDialog_newConnection', 'Nouvelle connexion'], + ['basicConnection_connectionDialog_title', 'Se connecter à la base de données'], + ['basicConnection_connectionDialog_listTitle', 'Base de données :'], + ['basicConnection_connectionDialog_username', "Nom d'utilisateur de la base de données :"], + ['basicConnection_connectionDialog_usernamePlaceholder', 'utilisateur'], + ['basicConnection_connectionDialog_password', "Mot de passe de l'utilisateur de la base de données :"], + ['basicConnection_connectionDialog_passwordPlaceholder', 'mot de passe'], + ['basicConnection_connectionDialog_connecting', 'Connexion en cours...'], + ['basicConnection_connectionDialog_connecting_message', 'Connexion à la base de données en cours...'], + ['plugin_connection_template_connect_success', 'Connexion établie'], + ['plugin_connection_template_action_connection_template_label', "À partir d'un modèle"], +]; diff --git a/webapp/packages/plugin-connections-administration/src/LocaleService.ts b/webapp/packages/plugin-connections-administration/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-connections-administration/src/LocaleService.ts +++ b/webapp/packages/plugin-connections-administration/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-connections-administration/src/locales/fr.ts b/webapp/packages/plugin-connections-administration/src/locales/fr.ts new file mode 100644 index 0000000000..1db4f20421 --- /dev/null +++ b/webapp/packages/plugin-connections-administration/src/locales/fr.ts @@ -0,0 +1,20 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['connections_public_connection_edit_menu_item_title', 'Modifier la connexion'], + ['connections_public_connection_edit_cancel_title', "Confirmation d'annulation"], + ['connections_public_connection_edit_reconnect_title', 'Connexion mise à jour'], + ['connections_public_connection_edit_reconnect_message', 'La connexion a été mise à jour. Voulez-vous vous reconnecter ?'], + ['connections_public_connection_edit_reconnect_failed', 'Échec de la reconnexion'], + + ['connections_administration_deactivate_message', 'Les paramètres de votre connexion seront perdus. Voulez-vous continuer ?'], + [ + 'templates_administration_info_message', + 'Les modèles permettent aux administrateurs de définir divers paramètres de connexion réutilisables, permettant ensuite aux utilisateurs de créer plusieurs connexions basées sur ces modèles.', + ], +]; diff --git a/webapp/packages/plugin-connections/src/LocaleService.ts b/webapp/packages/plugin-connections/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-connections/src/LocaleService.ts +++ b/webapp/packages/plugin-connections/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-connections/src/locales/en.ts b/webapp/packages/plugin-connections/src/locales/en.ts index 3ebdfb9fc3..a3113f25e4 100644 --- a/webapp/packages/plugin-connections/src/locales/en.ts +++ b/webapp/packages/plugin-connections/src/locales/en.ts @@ -1,3 +1,10 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ export default [ ['connections_public_connection_edit_menu_item_title', 'Edit Connection'], ['connections_public_connection_edit_cancel_title', 'Cancel confirmation'], diff --git a/webapp/packages/plugin-connections/src/locales/fr.ts b/webapp/packages/plugin-connections/src/locales/fr.ts new file mode 100644 index 0000000000..fce351a57b --- /dev/null +++ b/webapp/packages/plugin-connections/src/locales/fr.ts @@ -0,0 +1,34 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['connections_public_connection_edit_menu_item_title', 'Modifier la connexion'], + ['connections_public_connection_edit_cancel_title', 'Confirmation d\'annulation'], + ['connections_public_connection_edit_cancel_message', 'Vous allez annuler les modifications de la connexion. Les modifications non enregistrées seront perdues. Êtes-vous sûr ?'], + ['connections_public_connection_edit_reconnect_title', 'Connexion mise à jour'], + ['connections_public_connection_edit_reconnect_message', 'La connexion a été mise à jour. Voulez-vous vous reconnecter ?'], + ['connections_public_connection_edit_reconnect_failed', 'Échec de la reconnexion'], + ['connections_public_connection_folder_move_failed', 'Échec du déplacement vers le dossier'], + ['connections_public_connection_folder_move_duplication', 'Le dossier cible ou les dossiers sélectionnés contiennent un dossier portant le même nom ({arg:name})'], + ['connections_public_connection_cloud_auth_required', 'Vous devez vous connecter avec les identifiants "{arg:providerLabel}" pour travailler avec cette connexion.'], + ['plugin_connections_connection_form_project_invalid', 'Vous n\'avez pas accès à la création de connexions dans le projet sélectionné'], + ['plugin_connections_connection_form_host_configuration_invalid', 'La configuration de l\'hôte n\'est pas supportée'], + ['plugin_connections_connection_form_name_invalid', 'Le champ "Nom de la connexion" ne peut pas être vide'], + ['plugin_connections_connection_form_host_invalid', 'Le champ "Hôte" ne peut pas être vide'], + ['connections_public_connection_folder_delete_confirmation', 'Vous allez supprimer "{arg:name}". Les connexions ne seront pas supprimées. Êtes-vous sûr ?'], + ['plugin_connections_menu_connections_label', 'Connexion'], + ['plugin_connections_action_disconnect_all_label', 'Déconnecter tout'], + ['settings_connections', 'Connexions'], + ['settings_connections_hide_connections_view_name', 'Afficher les connexions uniquement aux administrateurs'], + ['settings_connections_hide_connections_view_description', 'Afficher les connexions uniquement aux administrateurs'], + + ['connections_public_connection_ssl_enable', 'Activer SSL'], + + ['plugin_connections_connection_form_shared_credentials_manage_info', 'Vous pouvez gérer les identifiants dans l\'onglet '], + ['plugin_connections_connection_form_shared_credentials_manage_info_tab_link', 'Onglet Identifiants'], + ['plugin_connections_connection_auth_secret_description', 'Veuillez sélectionner les identifiants fournis par une de vos équipes'], +]; diff --git a/webapp/packages/plugin-connections/src/locales/ru.ts b/webapp/packages/plugin-connections/src/locales/ru.ts index 1641b4b464..68b99ff41d 100644 --- a/webapp/packages/plugin-connections/src/locales/ru.ts +++ b/webapp/packages/plugin-connections/src/locales/ru.ts @@ -1,3 +1,10 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ export default [ ['connections_public_connection_edit_menu_item_title', 'Изменить подключение'], ['connections_public_connection_edit_cancel_title', 'Отмена редактирования'], diff --git a/webapp/packages/plugin-data-export/src/LocaleService.ts b/webapp/packages/plugin-data-export/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-data-export/src/LocaleService.ts +++ b/webapp/packages/plugin-data-export/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-data-export/src/locales/fr.ts b/webapp/packages/plugin-data-export/src/locales/fr.ts new file mode 100644 index 0000000000..447c21fab0 --- /dev/null +++ b/webapp/packages/plugin-data-export/src/locales/fr.ts @@ -0,0 +1,27 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_data_export_data_export_settings_group', 'Exportation des données'], + ['data_transfer_dialog_title', 'Exporter les données'], + ['data_transfer_dialog_export', 'Exporter'], + ['data_transfer_dialog_export_tooltip', 'Exporter le jeu de résultats en tant que fichier'], + ['data_transfer_dialog_configuration_title', 'Configuration de l\'exportation'], + ['data_transfer_dialog_preparation', 'Nous préparons votre fichier pour l\'exportation. Veuillez patienter...'], + ['data_transfer_notification_preparation', 'Nous préparons votre fichier pour le téléchargement. Veuillez patienter...'], + ['data_transfer_notification_ready', 'Le fichier est prêt à être téléchargé'], + ['data_transfer_notification_error', 'L\'exportation des données a échoué'], + ['data_transfer_notification_cancelled', 'L\'exportation des données a été annulée'], + ['data_transfer_notification_download', 'Télécharger'], + ['data_transfer_notification_delete', 'Supprimer'], + ['data_transfer_exporting_table', 'Table :'], + ['data_transfer_exporting_sql', 'SQL :'], + ['data_transfer_format_settings', 'Format'], + ['data_transfer_dialog_select_processor_fail', 'Échec de la sélection du processeur'], + ['data_transfer_output_settings', 'Sortie'], + ['data_transfer_output_settings_compress', 'Compression'], +]; diff --git a/webapp/packages/plugin-data-import/src/LocaleService.ts b/webapp/packages/plugin-data-import/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-data-import/src/LocaleService.ts +++ b/webapp/packages/plugin-data-import/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-data-import/src/locales/fr.ts b/webapp/packages/plugin-data-import/src/locales/fr.ts new file mode 100644 index 0000000000..e6efd4a11d --- /dev/null +++ b/webapp/packages/plugin-data-import/src/locales/fr.ts @@ -0,0 +1,14 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_data_import_title', 'Importation de données'], + ['plugin_data_import_process_title', 'Importation des données...'], + ['plugin_data_import_process_success', 'Données importées avec succès'], + ['plugin_data_import_process_fail', 'Échec de l\'importation des données'], + ['plugin_data_import_process_file_processing_step_message', 'Fichier téléchargé, en cours de traitement...'], +]; diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/LocaleService.ts b/webapp/packages/plugin-data-spreadsheet-new/src/LocaleService.ts index 6d5326d0e6..483bb120d5 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/LocaleService.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; case 'de': return (await import('./locales/de')).default; default: diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts index 95681f85f9..49d04e4812 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts @@ -1,3 +1,10 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ export default [ ['data_grid_table_empty_placeholder', 'Die Tabelle enthält keine Spalten'], ['data_grid_table_editing', 'Bearbeiten'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts index 0241870ca0..843bc884f2 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts @@ -1,3 +1,10 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ export default [ ['data_grid_table_empty_placeholder', 'The table does not contain any columns'], ['data_grid_table_editing', 'Edit'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts new file mode 100644 index 0000000000..0f11ecb807 --- /dev/null +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts @@ -0,0 +1,33 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['data_grid_table_empty_placeholder', 'La table ne contient aucune colonne'], + ['data_grid_table_editing', 'Modifier'], + ['data_grid_table_editing_set_to_null', 'Définir à NULL'], + ['data_grid_table_editing_open_inline_editor', 'Ouvrir l\'éditeur en ligne'], + ['data_grid_table_editing_row_add', 'Ajouter une ligne'], + ['data_grid_table_editing_row_add_copy', 'Dupliquer la ligne'], + ['data_grid_table_editing_row_delete', 'Supprimer la ligne actuelle'], + ['data_grid_table_editing_row_revert', 'Revenir à la valeur'], + ['data_grid_table_order', 'Tri'], + ['data_grid_table_open_value_panel', 'Afficher dans le panneau de valeurs'], + ['data_grid_table_filter', 'Filtres'], + ['data_grid_table_filter_cell_value', 'Valeur de la cellule'], + ['data_grid_table_filter_custom_value', 'Personnalisé'], + ['data_grid_table_filter_reset_all_filters', 'Réinitialiser tous les filtres'], + ['data_grid_table_disable_order', 'Désactivé'], + ['data_grid_table_disable_all_orders', 'Désactiver tout'], + ['data_grid_table_delete_filters_and_orders', 'Réinitialiser les filtres / le tri'], + ['data_grid_table_tooltip_column_header_order', 'Trier par colonne'], + ['data_grid_table_context_menu_filter_dialog_title', 'Modifier la valeur'], + ['data_grid_table_context_menu_filter_clipboard_permission', 'Donner accès au presse-papiers'], + ['data_grid_table_context_menu_save_value_error', 'Échec de la sauvegarde de la valeur'], + ['data_grid_table_index_column_tooltip', 'Sélectionner toute la table'], + ['data_grid_table_readonly_tooltip', 'Lecture seule'], + ['plugin_data_spreadsheet_new_settings_disable', 'Désactiver la présentation de la table'], +]; diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts index 11311504e6..5667d8eed4 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts @@ -1,3 +1,10 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ export default [ ['data_grid_table_empty_placeholder', 'Таблица не содержит колонок'], ['data_grid_table_editing', 'Редактировать'], diff --git a/webapp/packages/plugin-data-viewer-result-set-grouping/src/LocaleService.ts b/webapp/packages/plugin-data-viewer-result-set-grouping/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-data-viewer-result-set-grouping/src/LocaleService.ts +++ b/webapp/packages/plugin-data-viewer-result-set-grouping/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-data-viewer-result-set-grouping/src/locales/fr.ts b/webapp/packages/plugin-data-viewer-result-set-grouping/src/locales/fr.ts new file mode 100644 index 0000000000..d9d37b4568 --- /dev/null +++ b/webapp/packages/plugin-data-viewer-result-set-grouping/src/locales/fr.ts @@ -0,0 +1,21 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_data_viewer_result_set_grouping_title', 'Regroupement'], + ['plugin_data_viewer_result_set_grouping_placeholder', "Il n'y a pas de données à afficher.\nFaites glisser une colonne de l'affichage des résultats pour regrouper les valeurs."], + ['plugin_data_viewer_result_set_grouping_column_delete_tooltip', 'Supprimer le regroupement par colonnes sélectionnées'], + ['plugin_data_viewer_result_set_grouping_action_show_duplicates', 'Afficher les doublons'], + ['plugin_data_viewer_result_set_grouping_action_show_all', 'Afficher tout'], + ['plugin_data_viewer_result_set_grouping_action_configure', 'Configurer'], + ['plugin_data_viewer_result_set_grouping_action_configure_tooltip', 'Modifier la configuration du regroupement'], + ['plugin_data_viewer_result_set_grouping_grouping_configuration', 'Configuration du regroupement'], + ['plugin_data_viewer_result_set_grouping_grouping_columns', 'Colonnes'], + ['plugin_data_viewer_result_set_grouping_grouping_functions', 'Fonctions'], + ['plugin_data_viewer_result_set_grouping_grouping_columns_placeholder', 'Entrez le nom de la nouvelle colonne'], + ['plugin_data_viewer_result_set_grouping_grouping_functions_placeholder', 'Entrez la fonction (par exemple, SUM(salary), AVG(score))'], +]; diff --git a/webapp/packages/plugin-data-viewer/src/LocaleService.ts b/webapp/packages/plugin-data-viewer/src/LocaleService.ts index 6d5326d0e6..483bb120d5 100644 --- a/webapp/packages/plugin-data-viewer/src/LocaleService.ts +++ b/webapp/packages/plugin-data-viewer/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; case 'de': return (await import('./locales/de')).default; default: diff --git a/webapp/packages/plugin-data-viewer/src/locales/fr.ts b/webapp/packages/plugin-data-viewer/src/locales/fr.ts new file mode 100644 index 0000000000..c618ff5eff --- /dev/null +++ b/webapp/packages/plugin-data-viewer/src/locales/fr.ts @@ -0,0 +1,71 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_data_viewer_data_viewer_settings_group', 'Affichage des données'], + ['table_header_sql_expression', 'Entrez une expression SQL pour filtrer les résultats, par exemple column_name=10'], + ['table_header_sql_expression_not_supported', 'Le filtrage des données n\'est pas supporté'], + ['data_viewer_tab_title', 'Données'], + ['data_viewer_value_edit', 'Modifier'], + ['data_viewer_value_apply', 'Appliquer'], + ['data_viewer_value_revert', 'Annuler'], + ['data_viewer_value_revert_title', 'Annuler les modifications non sauvegardées'], + ['data_viewer_nodata_message', 'Aucune donnée à afficher'], + ['data_viewer_statistics_status', 'Statut :'], + ['data_viewer_statistics_duration', 'Durée :'], + ['data_viewer_statistics_updated_rows', 'Lignes mises à jour :'], + ['data_viewer_action_refresh', 'Actualiser'], + ['data_viewer_action_auto_refresh', 'Actualisation automatique'], + ['data_viewer_action_auto_refresh_stop', 'Arrêter l\'actualisation automatique'], + ['data_viewer_action_edit_delete', 'Supprimer la sélection'], + ['data_viewer_action_edit_add', 'Ajouter'], + ['data_viewer_action_edit_add_copy', 'Dupliquer'], + ['data_viewer_action_edit_revert', 'Annuler la sélection'], + ['data_viewer_result_edited_title', 'Enregistrer les modifications'], + ['data_viewer_result_edited_message', 'Le jeu de résultats a été modifié. Voulez-vous enregistrer les modifications dans la base de données ?'], + ['data_viewer_data_save_error_title', 'Erreur lors de l\'enregistrement des modifications'], + ['data_viewer_auto_refresh_settings', 'Paramètres d\'actualisation automatique'], + ['data_viewer_auto_refresh_settings_stop_on_error', 'Arrêter en cas d\'erreur'], + ['data_viewer_presentation_value_title', 'Valeur'], + ['data_viewer_presentation_value_text_line_wrapping_wrap', 'Retour à la ligne'], + ['data_viewer_presentation_value_text_line_wrapping_no_wrap', 'Ne pas revenir à la ligne'], + ['data_viewer_presentation_value_text_title', 'Texte'], + ['data_viewer_presentation_value_text_plain_title', 'Texte'], + ['data_viewer_presentation_value_text_html_title', 'HTML'], + ['data_viewer_presentation_value_text_xml_title', 'XML'], + ['data_viewer_presentation_value_text_json_title', 'JSON'], + ['data_viewer_presentation_value_text_hex_title', 'HEX'], + ['data_viewer_presentation_value_text_base64_title', 'Base64'], + ['data_viewer_presentation_value_image_title', 'Image'], + ['data_viewer_presentation_value_image_fit', 'Ajuster à la fenêtre'], + ['data_viewer_presentation_value_image_original_size', 'Taille d\'origine'], + ['data_viewer_presentation_value_boolean_placeholder', 'Impossible d\'afficher la valeur actuelle en tant que booléen'], + ['data_viewer_presentation_value_content_truncated_placeholder', 'La valeur a été tronquée en raison de la'], + ['data_viewer_presentation_value_content_download_error', 'Échec du téléchargement'], + ['data_viewer_presentation_value_content_paste_error', 'Impossible de charger le texte complet'], + ['data_viewer_script_preview', 'Script'], + ['data_viewer_script_preview_dialog_title', 'Aperçu des modifications'], + ['data_viewer_script_preview_error_title', 'Impossible d\'obtenir le script'], + ['data_viewer_refresh_result_set', 'Actualiser le jeu de résultats'], + ['data_viewer_total_count_tooltip', 'Obtenir le compte total'], + ['data_viewer_total_count_canceled_title', 'Total annulé'], + ['data_viewer_total_count_canceled_message', 'La déclaration a été annulée à la demande de l\'utilisateur'], + ['data_viewer_total_count_failed', 'Échec de l\'obtention du compte total'], + ['data_viewer_model_not_loaded', 'Le modèle de la table n\'est pas chargé'], + ['settings_data_editor', 'Éditeur de données'], + ['settings_data_editor_disable_edit_name', 'Désactiver l\'édition'], + ['settings_data_editor_disable_edit_description', 'Désactiver l\'édition des données dans le Data Viewer pour les utilisateurs non administrateurs'], + ['settings_data_editor_disable_data_copy_name', 'Désactiver la copie'], + ['settings_data_editor_disable_data_copy_description', 'Désactiver la copie des données dans le Data Viewer pour les utilisateurs non administrateurs'], + ['settings_data_editor_fetch_min_name', 'Taille de récupération minimale'], + ['settings_data_editor_fetch_min_description', 'Nombre minimal de lignes à récupérer'], + ['settings_data_editor_fetch_max_name', 'Taille de récupération maximale'], + ['settings_data_editor_fetch_max_description', 'Nombre maximal de lignes à récupérer'], + ['settings_data_editor_fetch_default_name', 'Taille de récupération par défaut'], + ['settings_data_editor_fetch_default_description', 'Nombre par défaut de lignes à récupérer'], + ['plugin_data_viewer_no_available_presentation', 'Aucune présentation disponible'], +]; diff --git a/webapp/packages/plugin-datasource-context-switch/src/LocaleService.ts b/webapp/packages/plugin-datasource-context-switch/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-datasource-context-switch/src/LocaleService.ts +++ b/webapp/packages/plugin-datasource-context-switch/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-datasource-context-switch/src/locales/fr.ts b/webapp/packages/plugin-datasource-context-switch/src/locales/fr.ts new file mode 100644 index 0000000000..89b05b2991 --- /dev/null +++ b/webapp/packages/plugin-datasource-context-switch/src/locales/fr.ts @@ -0,0 +1,15 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_datasource_context_switch_select_connection', 'Sélectionner la connexion'], + ['plugin_datasource_context_switch_select_container', 'Sélectionner le conteneur'], + [ + 'plugin_datasource_context_switch_select_container_tooltip', + 'Les modifications seront appliquées à tous les scripts actifs associés à une connexion "{arg:name}"', + ], +]; diff --git a/webapp/packages/plugin-datasource-transaction-manager/src/LocaleService.ts b/webapp/packages/plugin-datasource-transaction-manager/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-datasource-transaction-manager/src/LocaleService.ts +++ b/webapp/packages/plugin-datasource-transaction-manager/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-datasource-transaction-manager/src/locales/fr.ts b/webapp/packages/plugin-datasource-transaction-manager/src/locales/fr.ts new file mode 100644 index 0000000000..76278e2a5c --- /dev/null +++ b/webapp/packages/plugin-datasource-transaction-manager/src/locales/fr.ts @@ -0,0 +1,17 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_datasource_transaction_manager_commit', 'Commit'], + ['plugin_datasource_transaction_manager_rollback', 'Rollback'], + ['plugin_datasource_transaction_manager_commit_mode_switch_to_auto', 'Passer en mode auto-commit'], + ['plugin_datasource_transaction_manager_commit_mode_switch_to_manual', 'Passer en mode commit manuel'], + ['plugin_datasource_transaction_manager_commit_fail', 'Échec de la transaction de commit'], + ['plugin_datasource_transaction_manager_rollback_fail', "Échec de l'annulation de la transaction"], + ['plugin_datasource_transaction_manager_commit_mode_fail', 'Échec du changement de mode de commit'], + ['plugin_datasource_transaction_manager_commit_confirmation_message', 'Voulez-vous commiter les modifications ?'], +]; diff --git a/webapp/packages/plugin-gis-viewer/src/LocaleService.ts b/webapp/packages/plugin-gis-viewer/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-gis-viewer/src/LocaleService.ts +++ b/webapp/packages/plugin-gis-viewer/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-gis-viewer/src/locales/fr.ts b/webapp/packages/plugin-gis-viewer/src/locales/fr.ts new file mode 100644 index 0000000000..9cb7c1df7a --- /dev/null +++ b/webapp/packages/plugin-gis-viewer/src/locales/fr.ts @@ -0,0 +1,13 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['gis_presentation_title', 'Carte'], + ['gis_presentation_placeholder', 'Aucune donnée disponible'], + ['gis_presentation_base_tile_street_name', 'Rue'], + ['gis_presentation_base_tile_topography_name', 'Topographie'], +]; diff --git a/webapp/packages/plugin-help/src/LocaleService.ts b/webapp/packages/plugin-help/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-help/src/LocaleService.ts +++ b/webapp/packages/plugin-help/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-help/src/locales/fr.ts b/webapp/packages/plugin-help/src/locales/fr.ts new file mode 100644 index 0000000000..89650f5bb8 --- /dev/null +++ b/webapp/packages/plugin-help/src/locales/fr.ts @@ -0,0 +1,32 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['shortcuts_title', 'Raccourcis'], + ['data_viewer_shortcut_start_inline_editing', "Ouvrir l'éditeur en ligne pour la cellule sélectionnée"], + ['data_viewer_shortcut_add_new_row', 'Ajouter une nouvelle ligne'], + ['data_viewer_shortcut_duplicate_row', 'Dupliquer la ligne'], + ['data_viewer_shortcut_delete_row', 'Supprimer la ligne'], + ['data_viewer_shortcut_revert_inline_editor_changes', "Annuler les modifications de l'éditeur en ligne"], + ['data_viewer_shortcut_past_value', 'Coller la valeur du Presse-papiers'], + ['data_viewer_shortcut_copy_value', 'Copier la valeur dans le Presse-papiers'], + ['sql_editor_shortcut_execute_statement', 'Exécuter la déclaration SQL'], + ['sql_editor_shortcut_execute_statement_new_tab', 'Exécuter la déclaration SQL dans un nouvel onglet'], + ['sql_editor_shortcut_execute_script', 'Exécuter le script'], + ['sql_editor_shortcut_show_execution_plan', "Afficher le plan d'exécution"], + ['sql_editor_shortcut_format', 'Formater le script'], + ['sql_editor_shortcut_open_editor_in_new_tab', "Ouvrir l'éditeur SQL dans un nouvel onglet"], + ['sql_editor_shortcut_undo', 'Annuler'], + ['sql_editor_shortcut_redo', 'Rétablir'], + ['navigation_tree_shortcut_enable_filter', 'Activer le filtrage'], + ['plugin_help_multi_tab_support_title', "Le multi-onglet n'est pas supporté"], + [ + 'plugin_help_multi_tab_support_description', + "Les données ne sont pas connectées à d'autres onglets du navigateur. Tout onglet d'application ouvert ne sera pas sauvegardé et sera probablement perdu après la fermeture de l'onglet. Vos paramètres et données locaux seront perdus après la fermeture de l'onglet. Vous pouvez charger les onglets et les paramètres pour cet onglet.", + ], + ['plugin_help_multi_tab_support_load_settings', 'Charger les onglets comme paramètres'], +]; diff --git a/webapp/packages/plugin-log-viewer/src/LocaleService.ts b/webapp/packages/plugin-log-viewer/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-log-viewer/src/LocaleService.ts +++ b/webapp/packages/plugin-log-viewer/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-log-viewer/src/locales/fr.ts b/webapp/packages/plugin-log-viewer/src/locales/fr.ts new file mode 100644 index 0000000000..7ae53d80eb --- /dev/null +++ b/webapp/packages/plugin-log-viewer/src/locales/fr.ts @@ -0,0 +1,17 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_log_viewer_log_viewer_settings_group', 'Visionneuse de journaux'], + ['plugin_log_viewer_action_enable_label', 'Visualiseur de journaux'], + ['plugin_log_viewer_placeholder', "La visionneuse de journaux n'est pas active"], + ['plugin_log_viewer_clear_log', 'Effacer les journaux'], + ['plugin_log_viewer_entry_type', 'Type'], + ['plugin_log_viewer_entry_timestamp', 'Heure'], + ['plugin_log_viewer_entry_message', 'Message'], + ['plugin_log_viewer_entry_details', 'Détails'], +]; diff --git a/webapp/packages/plugin-navigation-tree-filters/src/LocaleService.ts b/webapp/packages/plugin-navigation-tree-filters/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-navigation-tree-filters/src/LocaleService.ts +++ b/webapp/packages/plugin-navigation-tree-filters/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-navigation-tree-filters/src/locales/fr.ts b/webapp/packages/plugin-navigation-tree-filters/src/locales/fr.ts new file mode 100644 index 0000000000..18f68e7418 --- /dev/null +++ b/webapp/packages/plugin-navigation-tree-filters/src/locales/fr.ts @@ -0,0 +1,18 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_navigation_tree_filters_title', 'Filtres'], + ['plugin_navigation_tree_filters_info', 'Vous pouvez utiliser des masques (%_and%)'], + ['plugin_navigation_tree_filters_configuration', 'Configurer le filtre "{arg:name}"'], + ['plugin_navigation_tree_filters_reset', 'Réinitialiser le filtre'], + ['plugin_navigation_tree_filters_filter', 'Filtrer'], + ['plugin_navigation_tree_filters_include', 'Inclure'], + ['plugin_navigation_tree_filters_exclude', 'Exclure'], + ['plugin_navigation_tree_filters_submit_fail', "Échec de l'application des filtres"], + ['plugin_navigation_tree_filters_reset_fail', 'Échec de la réinitialisation des filtres'], +]; diff --git a/webapp/packages/plugin-navigation-tree-rm/src/LocaleService.ts b/webapp/packages/plugin-navigation-tree-rm/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-navigation-tree-rm/src/LocaleService.ts +++ b/webapp/packages/plugin-navigation-tree-rm/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-navigation-tree-rm/src/locales/fr.ts b/webapp/packages/plugin-navigation-tree-rm/src/locales/fr.ts new file mode 100644 index 0000000000..9f0c4978b0 --- /dev/null +++ b/webapp/packages/plugin-navigation-tree-rm/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [['plugin_navigation_tree_rm_delete_confirmation_message', 'Vous allez supprimer la ressource "{arg:name}". Êtes-vous sûr ?']]; diff --git a/webapp/packages/plugin-navigation-tree/src/LocaleService.ts b/webapp/packages/plugin-navigation-tree/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-navigation-tree/src/LocaleService.ts +++ b/webapp/packages/plugin-navigation-tree/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-navigation-tree/src/locales/fr.ts b/webapp/packages/plugin-navigation-tree/src/locales/fr.ts new file mode 100644 index 0000000000..bd940bd383 --- /dev/null +++ b/webapp/packages/plugin-navigation-tree/src/locales/fr.ts @@ -0,0 +1,45 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_navigation_tree_explorer_tab_title', 'Explorateur'], + ['app_navigationTree_openNodeTab', 'Ouvrir'], + ['app_navigationTree_search', 'Rechercher des éléments...'], + ['app_navigationTree_limited', 'Les éléments sont limités à {arg:limit} éléments'], + ['app_navigationTree_link_with_editor', "Lier avec l'éditeur"], + ['app_navigationTree_action_collapse_all', 'Tout réduire'], + ['app_navigationTree_settings_filter_title', 'Filtrer'], + ['app_navigationTree_settings_filter_description', 'Affiche les éléments filtrés dans les dossiers réduits'], + ['app_navigationTree_settings_filter_all_title', 'Tout filtrer'], + ['app_navigationTree_settings_filter_all_description', 'Affiche les éléments filtrés dans tous les dossiers réduits'], + ['app_navigationTree_settings_state_title', "Enregistrer l'état"], + ['app_navigationTree_settings_state_description', "Rouvrir les nœuds étendus après l'actualisation de la page"], + ['app_navigationTree_settings_folders_title', 'Dossiers'], + ['app_navigationTree_settings_folders_description', "Ouvrir n'importe quel nœud en tant que nœud racine"], + ['app_navigationTree_node_delete_confirmation', 'Vous allez supprimer la ressource "{arg:name}". Êtes-vous sûr ?'], + ['app_navigationTree_node_folder_delete_confirmation', 'Tout le contenu du dossier sélectionné sera supprimé.'], + ['app_navigationTree_node_delete_error', 'Échec de la suppression de "{arg:name}"'], + ['app_navigationTree_node_rename_error', "Une erreur s'est produite lors du renommage"], + ['app_navigationTree_node_empty', 'Vide'], + ['app_navigationTree_node_no_results', 'Nous sommes désolés. Aucun résultat correspondant pour "{arg:filter}"'], + ['app_navigationTree_node_not_found', 'Nœud introuvable'], + ['app_navigationTree_connection_view', 'Vue de connexion'], + ['app_navigationTree_connection_view_option_simple', 'Simple'], + ['app_navigationTree_connection_view_option_advanced', 'Avancée'], + ['app_navigationTree_connection_view_option_custom', 'Personnalisée'], + ['app_navigationTree_refresh', 'Actualiser'], + ['app_navigationTree_refresh_error', "Échec de l'actualisation du nœud"], + ['app_navigationTree_node_change_error', "Une erreur s'est produite lors du changement de nom"], + ['app_navigationTree_context_disconnect', 'Déconnecter'], + ['app_navigationTree_connection_group_credentials', "Changer les informations d'identification"], + ['app_navigationTree_connection_group_user', 'Connexions utilisateur'], + ['app_navigationTree_connection_group_shared', 'Connexions partagées'], + ['app_navigationTree_empty_placeholder', 'Aucune connexion. Utilisez le menu supérieur pour configurer la connexion à votre base de données.'], + ['app_navigationTree_drop_here', 'Déposer ici...'], + ['plugin_navigation_tree_settings_projects_description', 'Affiche les éléments sous les groupes de projets'], + ['plugin_navigation_tree_settings_projects_title', 'Grouper par projet'], +]; diff --git a/webapp/packages/plugin-object-viewer/src/LocaleService.ts b/webapp/packages/plugin-object-viewer/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-object-viewer/src/LocaleService.ts +++ b/webapp/packages/plugin-object-viewer/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-object-viewer/src/locales/fr.ts b/webapp/packages/plugin-object-viewer/src/locales/fr.ts new file mode 100644 index 0000000000..6baaf6f406 --- /dev/null +++ b/webapp/packages/plugin-object-viewer/src/locales/fr.ts @@ -0,0 +1,15 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_object_viewer_properties_tab', 'Propriétés'], + ['plugin_object_viewer_object_info_tab', 'Infos'], + ['plugin_object_viewer_table_name', 'Nom'], + ['plugin_object_viewer_table_no_items', "Il n'y a aucun élément à afficher"], + ['plugin_object_viewer_error', "Une erreur s'est produite lors du chargement de l'onglet"], + ['plugin_object_viewer_delete_object_fail', "Échec de la suppression de l'objet"], +]; diff --git a/webapp/packages/plugin-product/src/LocaleService.ts b/webapp/packages/plugin-product/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-product/src/LocaleService.ts +++ b/webapp/packages/plugin-product/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-product/src/locales/fr.ts b/webapp/packages/plugin-product/src/locales/fr.ts new file mode 100644 index 0000000000..ef8be9d32d --- /dev/null +++ b/webapp/packages/plugin-product/src/locales/fr.ts @@ -0,0 +1,16 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['app_product_info', 'Informations sur le produit'], + ['app_product_info_name', 'Nom du produit'], + ['app_product_info_description', 'Description du produit'], + ['app_product_info_license_info', 'Informations sur la licence'], + ['app_product_info_build_time', 'Heure de construction'], + ['app_product_info_contacts', 'Contacts'], + ['app_product_info_placeholder', 'Aucune information à afficher'], +]; diff --git a/webapp/packages/plugin-projects/src/LocaleService.ts b/webapp/packages/plugin-projects/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-projects/src/LocaleService.ts +++ b/webapp/packages/plugin-projects/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-projects/src/locales/fr.ts b/webapp/packages/plugin-projects/src/locales/fr.ts new file mode 100644 index 0000000000..78a1e117a8 --- /dev/null +++ b/webapp/packages/plugin-projects/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [['plugin_projects_project_select_label', 'Projet']]; diff --git a/webapp/packages/plugin-resource-manager-administration/src/LocaleService.ts b/webapp/packages/plugin-resource-manager-administration/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-resource-manager-administration/src/LocaleService.ts +++ b/webapp/packages/plugin-resource-manager-administration/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-resource-manager-administration/src/locales/fr.ts b/webapp/packages/plugin-resource-manager-administration/src/locales/fr.ts new file mode 100644 index 0000000000..954a57b854 --- /dev/null +++ b/webapp/packages/plugin-resource-manager-administration/src/locales/fr.ts @@ -0,0 +1,11 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_resource_manager_administration_settings_enable', 'Activer {alias:plugin_resource_manager_title}'], + ['plugin_resource_manager_administration_settings_enable_description', 'Activer la fonctionnalité {alias:plugin_resource_manager_title}'], +]; diff --git a/webapp/packages/plugin-resource-manager-scripts/src/LocaleService.ts b/webapp/packages/plugin-resource-manager-scripts/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-resource-manager-scripts/src/LocaleService.ts +++ b/webapp/packages/plugin-resource-manager-scripts/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-resource-manager-scripts/src/locales/fr.ts b/webapp/packages/plugin-resource-manager-scripts/src/locales/fr.ts new file mode 100644 index 0000000000..e576064868 --- /dev/null +++ b/webapp/packages/plugin-resource-manager-scripts/src/locales/fr.ts @@ -0,0 +1,21 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_resource_manager_scripts_action_enable_label', 'Afficher les scripts'], + ['plugin_resource_manager_scripts_title', 'Scripts'], + ['plugin_resource_manager_scripts_no_resources_placeholder', "Il n'y a pas encore de scripts"], + ['plugin_resource_manager_scripts_save_script', 'Enregistrer le script'], + [ + 'plugin_resource_manager_scripts_script_name_invalid_characters_message', + 'Le nom du script ne peut pas contenir les symboles suivants : / \\ \\ et ne peut pas commencer par un point', + ], + [ + 'plugin_resource_manager_scripts_save_script_project_restriction_description', + 'Le projet du script ne peut pas être différent de celui de la connexion', + ], +]; diff --git a/webapp/packages/plugin-resource-manager/src/LocaleService.ts b/webapp/packages/plugin-resource-manager/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-resource-manager/src/LocaleService.ts +++ b/webapp/packages/plugin-resource-manager/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-resource-manager/src/locales/fr.ts b/webapp/packages/plugin-resource-manager/src/locales/fr.ts new file mode 100644 index 0000000000..fb7d4204b6 --- /dev/null +++ b/webapp/packages/plugin-resource-manager/src/locales/fr.ts @@ -0,0 +1,11 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_resource_manager_title', 'Gestionnaire de ressources'], + ['plugin_resource_manager_folder_move_failed', 'Échec du déplacement vers le dossier'], +]; diff --git a/webapp/packages/plugin-root/src/LocaleService.ts b/webapp/packages/plugin-root/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-root/src/LocaleService.ts +++ b/webapp/packages/plugin-root/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-root/src/locales/fr.ts b/webapp/packages/plugin-root/src/locales/fr.ts new file mode 100644 index 0000000000..30152b47dd --- /dev/null +++ b/webapp/packages/plugin-root/src/locales/fr.ts @@ -0,0 +1,13 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_root_network_state_title', 'Mode hors ligne'], + ['plugin_root_network_state_description', "L'application est maintenant en mode hors ligne, certaines fonctionnalités sont désactivées"], + ['plugin_root_data_sync_title', 'Synchronisation des données'], + ['plugin_root_data_sync_message', 'Vous avez des mises à jour de données, souhaitez-vous les appliquer ? Certaines données peuvent être perdues.'], +]; diff --git a/webapp/packages/plugin-session-expiration/src/LocaleService.ts b/webapp/packages/plugin-session-expiration/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-session-expiration/src/LocaleService.ts +++ b/webapp/packages/plugin-session-expiration/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-session-expiration/src/locales/fr.ts b/webapp/packages/plugin-session-expiration/src/locales/fr.ts new file mode 100644 index 0000000000..499f73c9bf --- /dev/null +++ b/webapp/packages/plugin-session-expiration/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default []; diff --git a/webapp/packages/plugin-settings-administration/src/LocaleService.ts b/webapp/packages/plugin-settings-administration/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-settings-administration/src/LocaleService.ts +++ b/webapp/packages/plugin-settings-administration/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-settings-administration/src/locales/fr.ts b/webapp/packages/plugin-settings-administration/src/locales/fr.ts new file mode 100644 index 0000000000..99f147fec5 --- /dev/null +++ b/webapp/packages/plugin-settings-administration/src/locales/fr.ts @@ -0,0 +1,12 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_settings_administration_settings_save_success', 'Préférences enregistrées avec succès'], + ['plugin_settings_administration_settings_save_fail', "Échec de l'enregistrement des préférences"], + ['plugin_settings_administration_drawer_item_title', 'Préférences'], +]; diff --git a/webapp/packages/plugin-settings-panel/src/LocaleService.ts b/webapp/packages/plugin-settings-panel/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-settings-panel/src/LocaleService.ts +++ b/webapp/packages/plugin-settings-panel/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-settings-panel/src/locales/fr.ts b/webapp/packages/plugin-settings-panel/src/locales/fr.ts new file mode 100644 index 0000000000..bbc9fb5df3 --- /dev/null +++ b/webapp/packages/plugin-settings-panel/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [['plugin_settings_panel_empty', 'Aucun paramètre disponible']]; diff --git a/webapp/packages/plugin-sql-editor-navigation-tab-script/src/LocaleService.ts b/webapp/packages/plugin-sql-editor-navigation-tab-script/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-sql-editor-navigation-tab-script/src/LocaleService.ts +++ b/webapp/packages/plugin-sql-editor-navigation-tab-script/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-sql-editor-navigation-tab-script/src/locales/fr.ts b/webapp/packages/plugin-sql-editor-navigation-tab-script/src/locales/fr.ts new file mode 100644 index 0000000000..18e1056e06 --- /dev/null +++ b/webapp/packages/plugin-sql-editor-navigation-tab-script/src/locales/fr.ts @@ -0,0 +1,28 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_sql_editor_navigation_tab_resource_save_title', 'Enregistrer comme script'], + ['plugin_sql_editor_navigation_tab_script_state_renaming', 'Renommer le script...'], + ['plugin_sql_editor_navigation_tab_script_state_reading', 'Lecture du script...'], + ['plugin_sql_editor_navigation_tab_script_state_saving', 'Enregistrement du script...'], + ['plugin_sql_editor_navigation_tab_script_state_updating', 'Mise à jour des informations du script...'], + [ + 'plugin_sql_editor_navigation_tab_script_state_different_project', + "Le projet de connexion diffère du projet du script, le changement de connexion n'est pas enregistré.", + ], + ['plugin_sql_editor_navigation_tab_resource_save_script_success', 'Script enregistré avec succès'], + ['plugin_sql_editor_navigation_tab_resource_open_script_error', "Échec de l'ouverture du script"], + ['plugin_sql_editor_navigation_tab_resource_save_script_error', "Erreur lors de la tentative d'enregistrement du script"], + ['plugin_sql_editor_navigation_tab_resource_update_script_error', 'Échec de la mise à jour du script'], + ['plugin_sql_editor_navigation_tab_resource_sync_script_error', "Échec de la synchronisation de la requête de l'éditeur"], + ['plugin_sql_editor_navigation_tab_resource_save_script_error_confirmation_title', "Impossible d'enregistrer le script"], + [ + 'plugin_sql_editor_navigation_tab_resource_save_script_error_confirmation_message', + "Une erreur est survenue lors de la tentative d'enregistrement du script. Fermer l'onglet quand même ?", + ], +]; diff --git a/webapp/packages/plugin-sql-editor-navigation-tab/src/LocaleService.ts b/webapp/packages/plugin-sql-editor-navigation-tab/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-sql-editor-navigation-tab/src/LocaleService.ts +++ b/webapp/packages/plugin-sql-editor-navigation-tab/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-sql-editor-navigation-tab/src/locales/fr.ts b/webapp/packages/plugin-sql-editor-navigation-tab/src/locales/fr.ts new file mode 100644 index 0000000000..b46b7b7034 --- /dev/null +++ b/webapp/packages/plugin-sql-editor-navigation-tab/src/locales/fr.ts @@ -0,0 +1,14 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_sql_editor_navigation_tab_action_sql_editor_new', 'SQL'], + ['plugin_sql_editor_navigation_tab_action_sql_editor_new_tooltip', "Ouvrir l'éditeur SQL"], + ['plugin_sql_editor_navigation_tab_action_sql_editor_new_tooltip_context', "Ouvrir l'éditeur SQL pour {arg:connection}"], + ['plugin_sql_editor_navigation_tab_data_source_save_confirmation_title', 'Enregistrer les modifications'], + ['plugin_sql_editor_navigation_tab_data_source_save_confirmation_message', 'Voulez-vous enregistrer les modifications ?'], +]; diff --git a/webapp/packages/plugin-sql-editor-new/src/LocaleService.ts b/webapp/packages/plugin-sql-editor-new/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-sql-editor-new/src/LocaleService.ts +++ b/webapp/packages/plugin-sql-editor-new/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-sql-editor-new/src/locales/fr.ts b/webapp/packages/plugin-sql-editor-new/src/locales/fr.ts new file mode 100644 index 0000000000..92a877e3b8 --- /dev/null +++ b/webapp/packages/plugin-sql-editor-new/src/locales/fr.ts @@ -0,0 +1,13 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_sql_editor_new_merge_conflict_keep_current_label', "Garder l'actuel"], + ['plugin_sql_editor_new_merge_conflict_keep_current_tooltip', 'Garder les modifications actuelles'], + ['plugin_sql_editor_new_merge_conflict_accept_incoming_label', 'Accepter les modifications entrantes'], + ['plugin_sql_editor_new_merge_conflict_accept_incoming_tooltip', 'Accepter les modifications entrantes'], +]; diff --git a/webapp/packages/plugin-sql-editor-screen/src/LocaleService.ts b/webapp/packages/plugin-sql-editor-screen/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-sql-editor-screen/src/LocaleService.ts +++ b/webapp/packages/plugin-sql-editor-screen/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-sql-editor-screen/src/locales/fr.ts b/webapp/packages/plugin-sql-editor-screen/src/locales/fr.ts new file mode 100644 index 0000000000..90214f9f7c --- /dev/null +++ b/webapp/packages/plugin-sql-editor-screen/src/locales/fr.ts @@ -0,0 +1,12 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['sql_editor_screen_no_context_title', "Erreur lors de l'ouverture dans un nouvel onglet"], + ['sql_editor_screen_no_context_message', "Veuillez sélectionner une connexion pour l'éditeur SQL actuel"], + ['sql_editor_screen_context_not_found', 'Contexte non trouvé'], +]; diff --git a/webapp/packages/plugin-sql-editor/src/LocaleService.ts b/webapp/packages/plugin-sql-editor/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-sql-editor/src/LocaleService.ts +++ b/webapp/packages/plugin-sql-editor/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-sql-editor/src/locales/fr.ts b/webapp/packages/plugin-sql-editor/src/locales/fr.ts new file mode 100644 index 0000000000..56d2553b84 --- /dev/null +++ b/webapp/packages/plugin-sql-editor/src/locales/fr.ts @@ -0,0 +1,50 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_sql_editor_sql_editor_settings_group', 'Éditeur SQL'], + ['sql_editor_settings_insert_table_name', 'Insérer les noms de tables (dans la clause FROM)'], + ['sql_editor_settings_insert_table_aliases', 'Insérer automatiquement les alias de table'], + ['sql_editor', 'Éditeur SQL'], + ['sql_editor_alias_loading_error', 'Erreur survenue lors du chargement des alias'], + ['sql_editor_restore_message', 'Voulez-vous restaurer la connexion ?'], + ['sql_editor_restore', 'Restaurer'], + ['sql_editor_placeholder', 'Exécuter une requête (appuyez sur Ctrl+Entrée pour voir les résultats)'], + ['sql_editor_hint_empty', "Il n'y a aucune proposition..."], + ['sql_editor_execution_plan_button', "Afficher le plan d'exécution (Shift + Ctrl + E)"], + ['sql_editor_output_logs_button_tooltip', 'Afficher la sortie du serveur (Shift + Ctrl + O)'], + ['sql_editor_output_logs_tab_title', 'Journaux'], + ['sql_editor_output_logs_hint', 'Aucun message du serveur'], + ['sql_editor_output_logs_wrap_mode', 'Mode Wrap'], + ['sql_editor_execution_plan_button_tooltip', "Afficher le plan d'exécution (Shift + Ctrl + E)"], + ['sql_editor_execution_plan_button', "Afficher le plan d'exécution"], + ['sql_editor_execution_script_button_tooltip', 'Exécuter le script SQL (Alt + X)'], + ['sql_editor_execution_script_button', 'Exécuter le script SQL'], + ['sql_editor_execution_query_button_tooltip', 'Exécuter la déclaration SQL (Ctrl + Entrée)'], + ['sql_editor_execution_query_button', 'Exécuter la déclaration SQL'], + ['sql_editor_execution_query_new_tab_button_tooltip', 'Exécuter la déclaration SQL dans un nouvel onglet (Ctrl + \\)(Shift + Ctrl + Entrée)'], + ['sql_editor_execution_query_new_tab_button', 'Exécuter dans un nouvel onglet'], + ['sql_editor_execution_query_tooltip', 'Exécuter les requêtes'], + ['sql_editor_lock_button_tooltip', "Verrouiller l'éditeur pour éviter les modifications (Shift + Ctrl + F)"], + ['sql_editor_lock_button', "Verrouiller l'éditeur"], + ['sql_editor_sql_statistics_unavailable', 'Les statistiques SQL ne sont pas disponibles'], + ['sql_editor_queries_tab_title', 'Requêtes exécutées'], + ['sql_execution_plan_placeholder', "Le plan d'exécution est vide"], + ['sql_execution_plan_properties_panel_placeholder', 'Aucun élément à afficher'], + ['sql_execution_plan_properties_panel_name', 'Nom'], + ['sql_execution_plan_properties_panel_value', 'Valeur'], + ['sql_execution_plan_properties_panel_general', 'Général'], + ['sql_execution_plan_properties_panel_details', 'Détails'], + ['sql_editor_upload_script_tooltip', 'Télécharger le script SQL'], + ['sql_editor_upload_script', 'Télécharger le script'], + ['sql_editor_upload_script_unsaved_changes_dialog_message', "Certains fichiers n'ont pas été enregistrés. Voulez-vous d'abord les enregistrer ?"], + ['sql_editor_upload_script_max_size_title', 'La taille du fichier dépasse la taille maximale'], + ['sql_editor_confirm_close_tabs_dialog_title', 'Confirmer la fermeture des onglets'], + ['plugin_sql_editor_action_overlay_title', 'Action requise'], + ['plugin_sql_editor_overlay_description', "Veuillez rouvrir l'éditeur pour continuer à travailler."], + ['plugin_sql_editor_action_close_query', 'Fermer toutes les requêtes du même type'], +]; diff --git a/webapp/packages/plugin-sql-generator/src/LocaleService.ts b/webapp/packages/plugin-sql-generator/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-sql-generator/src/LocaleService.ts +++ b/webapp/packages/plugin-sql-generator/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-sql-generator/src/locales/fr.ts b/webapp/packages/plugin-sql-generator/src/locales/fr.ts new file mode 100644 index 0000000000..499f73c9bf --- /dev/null +++ b/webapp/packages/plugin-sql-generator/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default []; diff --git a/webapp/packages/plugin-task-manager/src/LocaleService.ts b/webapp/packages/plugin-task-manager/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-task-manager/src/LocaleService.ts +++ b/webapp/packages/plugin-task-manager/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-task-manager/src/locales/fr.ts b/webapp/packages/plugin-task-manager/src/locales/fr.ts new file mode 100644 index 0000000000..0c41fd7193 --- /dev/null +++ b/webapp/packages/plugin-task-manager/src/locales/fr.ts @@ -0,0 +1,8 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [['plugin_task_manager_notification_title', 'Traitement en cours...']]; diff --git a/webapp/packages/plugin-tools-panel/src/LocaleService.ts b/webapp/packages/plugin-tools-panel/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-tools-panel/src/LocaleService.ts +++ b/webapp/packages/plugin-tools-panel/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-tools-panel/src/locales/fr.ts b/webapp/packages/plugin-tools-panel/src/locales/fr.ts new file mode 100644 index 0000000000..92a8792215 --- /dev/null +++ b/webapp/packages/plugin-tools-panel/src/locales/fr.ts @@ -0,0 +1,13 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_tools_panel_tools_settings_group', 'Outils'], + ['plugin_tools_panel_settings_disable_label', 'Désactiver les outils'], + ['plugin_tools_panel_settings_disable_description', 'Supprime le menu Outils de la barre de menu supérieure'], + ['plugin_tools_panel_menu_title', 'Outils'], +]; diff --git a/webapp/packages/plugin-user-profile-settings/src/LocaleService.ts b/webapp/packages/plugin-user-profile-settings/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-user-profile-settings/src/LocaleService.ts +++ b/webapp/packages/plugin-user-profile-settings/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-user-profile-settings/src/locales/fr.ts b/webapp/packages/plugin-user-profile-settings/src/locales/fr.ts new file mode 100644 index 0000000000..f392f425b1 --- /dev/null +++ b/webapp/packages/plugin-user-profile-settings/src/locales/fr.ts @@ -0,0 +1,14 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_user_profile_settings_tab_label', 'Préférences'], + ['plugin_user_profile_settings_action_description', 'Préférences utilisateur'], + ['plugin_user_profile_settings_save_success', 'Préférences enregistrées avec succès'], + ['plugin_user_profile_settings_save_fail', "Échec de l'enregistrement des préférences"], + ['plugin_user_profile_settings_restore_defaults', 'Restaurer les paramètres par défaut'], +]; diff --git a/webapp/packages/plugin-user-profile/src/LocaleService.ts b/webapp/packages/plugin-user-profile/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-user-profile/src/LocaleService.ts +++ b/webapp/packages/plugin-user-profile/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-user-profile/src/locales/fr.ts b/webapp/packages/plugin-user-profile/src/locales/fr.ts new file mode 100644 index 0000000000..068d334836 --- /dev/null +++ b/webapp/packages/plugin-user-profile/src/locales/fr.ts @@ -0,0 +1,27 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_user_profile_account_title', 'Compte'], + ['plugin_user_profile_menu', 'Profil'], + ['plugin_user_profile_info', 'Infos'], + ['plugin_user_profile_info_id', 'Identifiant'], + ['plugin_user_profile_info_displayName', 'Nom d\'affichage'], + ['plugin_user_profile_auth_providers', 'Fournisseurs d\'authentification'], + ['plugin_user_profile_info', 'Informations utilisateur'], + ['plugin_user_profile_auth_tokens', 'Jetons d\'authentification'], + ['plugin_user_profile_auth_providers_active', 'L\'authentification est active'], + + ['plugin_user_profile_authentication_change_password', 'Changer le mot de passe'], + ['plugin_user_profile_authentication_change_password_current_password', 'Mot de passe actuel'], + ['plugin_user_profile_authentication_change_password_new_password', 'Nouveau mot de passe'], + ['plugin_user_profile_authentication_change_password_repeat_password', 'Répéter le mot de passe'], + ['plugin_user_profile_authentication_change_password_success', 'Le mot de passe a été changé avec succès'], + ['plugin_user_profile_authentication_change_password_submit_label', 'Changer'], + ['plugin_user_profile_authentication_change_password_passwords_not_match', 'Les mots de passe ne correspondent pas'], + ['plugin_user_profile_authentication_change_password_validation_error', 'Échec de la validation du mot de passe'], +]; diff --git a/webapp/packages/plugin-version-update-administration/src/LocaleService.ts b/webapp/packages/plugin-version-update-administration/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/plugin-version-update-administration/src/LocaleService.ts +++ b/webapp/packages/plugin-version-update-administration/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/plugin-version-update-administration/src/locales/fr.ts b/webapp/packages/plugin-version-update-administration/src/locales/fr.ts new file mode 100644 index 0000000000..67f1c78fe0 --- /dev/null +++ b/webapp/packages/plugin-version-update-administration/src/locales/fr.ts @@ -0,0 +1,15 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['plugin_version_update_administration_version_selector_label', 'Version'], + ['plugin_version_update_administration_recommendations_label', 'Recommandations'], + [ + 'plugin_version_update_administration_recommendations', + "Nous recommandons fortement d'éviter la rétrogradation du produit. Nous ne pouvons pas garantir le bon fonctionnement de l'application après cette procédure.", + ], +]; diff --git a/webapp/packages/product-default/src/LocaleService.ts b/webapp/packages/product-default/src/LocaleService.ts index edeb82d255..f8618985f9 100644 --- a/webapp/packages/product-default/src/LocaleService.ts +++ b/webapp/packages/product-default/src/LocaleService.ts @@ -28,6 +28,8 @@ export class LocaleService extends Bootstrap { return (await import('./locales/it')).default; case 'zh': return (await import('./locales/zh')).default; + case 'fr': + return (await import('./locales/fr')).default; default: return (await import('./locales/en')).default; } diff --git a/webapp/packages/product-default/src/locales/fr.ts b/webapp/packages/product-default/src/locales/fr.ts new file mode 100644 index 0000000000..b95c6a1a0b --- /dev/null +++ b/webapp/packages/product-default/src/locales/fr.ts @@ -0,0 +1,12 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2024 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +export default [ + ['product_name', 'CE'], + ['product_full_name', 'CloudBeaver Community'], + ['product_license_prefix', '-- CloudBeaver {alias:product_name}'], +]; From e779a23f0e45a8d55b5fd4f8bdea13f3b63288df Mon Sep 17 00:00:00 2001 From: Alexey Date: Tue, 18 Jun 2024 14:30:24 +0800 Subject: [PATCH 009/141] CB-5213 chore: update react-data-grid (#2716) --- .../react-data-grid-dist/lib/bundle.cjs | 89 +++++++++-------- .../react-data-grid-dist/lib/bundle.cjs.map | 2 +- .../react-data-grid-dist/lib/bundle.js | 89 +++++++++-------- .../react-data-grid-dist/lib/bundle.js.map | 2 +- .../react-data-grid-dist/lib/index.d.ts | 39 ++++---- .../react-data-grid-dist/lib/styles.css | 98 +++++++++---------- .../react-data-grid-dist/package.json | 38 +++---- 7 files changed, 190 insertions(+), 167 deletions(-) diff --git a/webapp/packages/plugin-react-data-grid/react-data-grid-dist/lib/bundle.cjs b/webapp/packages/plugin-react-data-grid/react-data-grid-dist/lib/bundle.cjs index 5ad9061973..88e288ac7b 100644 --- a/webapp/packages/plugin-react-data-grid/react-data-grid-dist/lib/bundle.cjs +++ b/webapp/packages/plugin-react-data-grid/react-data-grid-dist/lib/bundle.cjs @@ -59,7 +59,7 @@ function onEditorNavigation({ return false; } -const measuringCellClassname = "mlln6zg7-0-0-beta-42"; +const measuringCellClassname = "mlln6zg7-0-0-beta-44"; function renderMeasuringCells(viewportColumns) { return viewportColumns.map(({ key, @@ -264,9 +264,9 @@ function canExitGrid({ return shiftKey ? atFirstCellInRow && atFirstRow : atLastCellInRow && atLastRow; } -const cell = "cj343x07-0-0-beta-42"; +const cell = "cj343x07-0-0-beta-44"; const cellClassname = `rdg-cell ${cell}`; -const cellFrozen = "csofj7r7-0-0-beta-42"; +const cellFrozen = "csofj7r7-0-0-beta-44"; const cellFrozenClassname = `rdg-cell-frozen ${cellFrozen}`; function getRowStyle(rowIdx, height) { @@ -336,13 +336,13 @@ function getHeaderCellRowSpan(column, rowIdx) { return column.parent === undefined ? rowIdx : column.level - column.parent.level; } -const checkboxLabel = "c1bn88vv7-0-0-beta-42"; +const checkboxLabel = "c1bn88vv7-0-0-beta-44"; const checkboxLabelClassname = `rdg-checkbox-label ${checkboxLabel}`; -const checkboxInput = "c1qt073l7-0-0-beta-42"; +const checkboxInput = "c1qt073l7-0-0-beta-44"; const checkboxInputClassname = `rdg-checkbox-input ${checkboxInput}`; -const checkbox = "cf71kmq7-0-0-beta-42"; +const checkbox = "cf71kmq7-0-0-beta-44"; const checkboxClassname = `rdg-checkbox ${checkbox}`; -const checkboxLabelDisabled = "c1lwve4p7-0-0-beta-42"; +const checkboxLabelDisabled = "c1lwve4p7-0-0-beta-44"; const checkboxLabelDisabledClassname = `rdg-checkbox-label-disabled ${checkboxLabelDisabled}`; function renderCheckbox({ onChange, @@ -364,9 +364,9 @@ function renderCheckbox({ }); } -const groupCellContent = "g1s9ylgp7-0-0-beta-42"; +const groupCellContent = "g1s9ylgp7-0-0-beta-44"; const groupCellContentClassname = `rdg-group-cell-content ${groupCellContent}`; -const caret = "cz54e4y7-0-0-beta-42"; +const caret = "cz54e4y7-0-0-beta-44"; const caretClassname = `rdg-caret ${caret}`; function renderToggleGroup(props) { return /*#__PURE__*/jsxRuntime.jsx(ToggleGroup, { @@ -810,6 +810,7 @@ function useGridDimensions() { const gridRef = react.useRef(null); const [inlineSize, setInlineSize] = react.useState(1); const [blockSize, setBlockSize] = react.useState(1); + const [horizontalScrollbarHeight, setHorizontalScrollbarHeight] = react.useState(0); useLayoutEffect(() => { const { ResizeObserver @@ -825,15 +826,22 @@ function useGridDimensions() { width, height } = gridRef.current.getBoundingClientRect(); + const initialHorizontalScrollbarHeight = offsetHeight - clientHeight; const initialWidth = width - offsetWidth + clientWidth; - const initialHeight = height - offsetHeight + clientHeight; + const initialHeight = height - initialHorizontalScrollbarHeight; setInlineSize(initialWidth); setBlockSize(initialHeight); + setHorizontalScrollbarHeight(initialHorizontalScrollbarHeight); const resizeObserver = new ResizeObserver(entries => { const size = entries[0].contentBoxSize[0]; + const { + clientHeight, + offsetHeight + } = gridRef.current; reactDom.flushSync(() => { setInlineSize(size.inlineSize); setBlockSize(size.blockSize); + setHorizontalScrollbarHeight(offsetHeight - clientHeight); }); }); resizeObserver.observe(gridRef.current); @@ -841,7 +849,7 @@ function useGridDimensions() { resizeObserver.disconnect(); }; }, []); - return [gridRef, inlineSize, blockSize]; + return [gridRef, inlineSize, blockSize, horizontalScrollbarHeight]; } function useLatestFunc(fn) { @@ -1027,9 +1035,9 @@ function useViewportRows({ }; } -const cellCopied = "c6ra8a37-0-0-beta-42"; +const cellCopied = "c6ra8a37-0-0-beta-44"; const cellCopiedClassname = `rdg-cell-copied ${cellCopied}`; -const cellDraggedOver = "cq910m07-0-0-beta-42"; +const cellDraggedOver = "cq910m07-0-0-beta-44"; const cellDraggedOverClassname = `rdg-cell-dragged-over ${cellDraggedOver}`; function Cell({ column, @@ -1135,8 +1143,8 @@ function defaultRenderCell(key, props) { }, key); } -const cellDragHandle = "c1w9bbhr7-0-0-beta-42"; -const cellDragHandleFrozenClassname = "c1creorc7-0-0-beta-42"; +const cellDragHandle = "c1w9bbhr7-0-0-beta-44"; +const cellDragHandleFrozenClassname = "c1creorc7-0-0-beta-44"; const cellDragHandleClassname = `rdg-cell-drag-handle ${cellDragHandle}`; function DragHandle({ gridRowStart, @@ -1241,7 +1249,7 @@ function DragHandle({ }); } -const cellEditing = "cis5rrm7-0-0-beta-42"; +const cellEditing = "cis5rrm7-0-0-beta-44"; function EditCell({ column, colSpan, @@ -1379,8 +1387,8 @@ function GroupedColumnHeaderCell({ }); } -const headerSortCellClassname = "h44jtk67-0-0-beta-42"; -const headerSortName = "hcgkhxz7-0-0-beta-42"; +const headerSortCellClassname = "h44jtk67-0-0-beta-44"; +const headerSortName = "hcgkhxz7-0-0-beta-44"; const headerSortNameClassname = `rdg-header-sort-name ${headerSortName}`; function renderHeaderCell({ column, @@ -1414,14 +1422,14 @@ function SortableHeaderCell({ }); } -const cellSortableClassname = "c6l2wv17-0-0-beta-42"; -const cellResizable = "c1kqdw7y7-0-0-beta-42"; +const cellSortableClassname = "c6l2wv17-0-0-beta-44"; +const cellResizable = "c1kqdw7y7-0-0-beta-44"; const cellResizableClassname = `rdg-cell-resizable ${cellResizable}`; -const resizeHandleClassname = "r1y6ywlx7-0-0-beta-42"; +const resizeHandleClassname = "r1y6ywlx7-0-0-beta-44"; const cellDraggableClassname = 'rdg-cell-draggable'; -const cellDragging = "c1bezg5o7-0-0-beta-42"; +const cellDragging = "c1bezg5o7-0-0-beta-44"; const cellDraggingClassname = `rdg-cell-dragging ${cellDragging}`; -const cellOver = "c1vc96037-0-0-beta-42"; +const cellOver = "c1vc96037-0-0-beta-44"; const cellOverClassname = `rdg-cell-drag-over ${cellOver}`; function HeaderCell({ column, @@ -1629,15 +1637,15 @@ function isEventPertinent(event) { return !event.currentTarget.contains(relatedTarget); } -const row = "r1upfr807-0-0-beta-42"; +const row = "r1upfr807-0-0-beta-44"; const rowClassname = `rdg-row ${row}`; -const rowSelected = "r190mhd37-0-0-beta-42"; +const rowSelected = "r190mhd37-0-0-beta-44"; const rowSelectedClassname = 'rdg-row-selected'; -const rowSelectedWithFrozenCell = "r139qu9m7-0-0-beta-42"; +const rowSelectedWithFrozenCell = "r139qu9m7-0-0-beta-44"; const topSummaryRowClassname = 'rdg-top-summary-row'; const bottomSummaryRowClassname = 'rdg-bottom-summary-row'; -const headerRow = "h10tskcx7-0-0-beta-42"; +const headerRow = "h10tskcx7-0-0-beta-44"; const headerRowClassname = `rdg-header-row ${headerRow}`; function HeaderRow({ rowIdx, @@ -1846,7 +1854,7 @@ function ScrollToCell({ }); } -const arrow = "a3ejtar7-0-0-beta-42"; +const arrow = "a3ejtar7-0-0-beta-44"; const arrowClassname = `rdg-sort-arrow ${arrow}`; function renderSortStatus({ sortDirection, @@ -1881,14 +1889,14 @@ function renderSortPriority({ return priority; } -const root = "rnvodz57-0-0-beta-42"; +const root = "rnvodz57-0-0-beta-44"; const rootClassname = `rdg ${root}`; -const viewportDragging = "vlqv91k7-0-0-beta-42"; +const viewportDragging = "vlqv91k7-0-0-beta-44"; const viewportDraggingClassname = `rdg-viewport-dragging ${viewportDragging}`; -const focusSinkClassname = "f1lsfrzw7-0-0-beta-42"; -const focusSinkHeaderAndSummaryClassname = "f1cte0lg7-0-0-beta-42"; +const focusSinkClassname = "f1lsfrzw7-0-0-beta-44"; +const focusSinkHeaderAndSummaryClassname = "f1cte0lg7-0-0-beta-44"; -const summaryCellClassname = "s8wc6fl7-0-0-beta-42"; +const summaryCellClassname = "s8wc6fl7-0-0-beta-44"; function SummaryCell({ column, colSpan, @@ -1931,8 +1939,8 @@ function SummaryCell({ } const SummaryCell$1 = /*#__PURE__*/react.memo(SummaryCell); -const summaryRow = "skuhp557-0-0-beta-42"; -const topSummaryRow = "tf8l5ub7-0-0-beta-42"; +const summaryRow = "skuhp557-0-0-beta-44"; +const topSummaryRow = "tf8l5ub7-0-0-beta-44"; const summaryRowClassname = `rdg-summary-row ${summaryRow}`; function SummaryRow({ rowIdx, @@ -2044,7 +2052,7 @@ function DataGrid(props, ref) { const getColumnWidth = react.useCallback(column => { return resizedColumnWidths.get(column.key) ?? measuredColumnWidths.get(column.key) ?? column.width; }, [measuredColumnWidths, resizedColumnWidths]); - const [gridRef, gridWidth, gridHeight] = useGridDimensions(); + const [gridRef, gridWidth, gridHeight, horizontalScrollbarHeight] = useGridDimensions(); const { columns, colSpanColumns, @@ -2083,7 +2091,8 @@ function DataGrid(props, ref) { const shouldFocusCellRef = react.useRef(false); const isTreeGrid = role === 'treegrid'; const headerRowsHeight = headerRowsCount * headerRowHeight; - const clientHeight = gridHeight - headerRowsHeight - summaryRowsCount * summaryRowHeight; + const summaryRowsHeight = summaryRowsCount * summaryRowHeight; + const clientHeight = gridHeight - headerRowsHeight - summaryRowsHeight; const isSelectable = selectedRows != null && onSelectedRowsChange != null; const isRtl = direction === 'rtl'; const leftKey = isRtl ? 'ArrowRight' : 'ArrowLeft'; @@ -2135,6 +2144,7 @@ function DataGrid(props, ref) { const maxColIdx = columns.length - 1; const selectedCellIsWithinSelectionBounds = isCellWithinSelectionBounds(selectedPosition); const selectedCellIsWithinViewportBounds = isCellWithinViewportBounds(selectedPosition); + const scrollHeight = headerRowHeight + totalRowHeight + summaryRowsHeight + horizontalScrollbarHeight; const handleColumnResizeLatest = useLatestFunc(handleColumnResize); const onColumnsReorderLastest = useLatestFunc(onColumnsReorder); const onSortColumnsChangeLatest = useLatestFunc(onSortColumnsChange); @@ -2750,6 +2760,7 @@ function DataGrid(props, ref) { gridTemplateRows: templateRows, '--rdg-header-row-height': `${headerRowHeight}px`, '--rdg-summary-row-height': `${summaryRowHeight}px`, + '--rdg-scroll-height': `${scrollHeight}px`, '--rdg-sign': isRtl ? -1 : 1, ...layoutCssVars }, @@ -2894,7 +2905,7 @@ function GroupCell({ } const GroupCell$1 = /*#__PURE__*/react.memo(GroupCell); -const groupRow = "g1yxluv37-0-0-beta-42"; +const groupRow = "g1yxluv37-0-0-beta-44"; const groupRowClassname = `rdg-group-row ${groupRow}`; function GroupedRow({ className, @@ -3284,7 +3295,7 @@ function isReadonlyArray(arr) { } const TreeDataGrid$1 = /*#__PURE__*/react.forwardRef(TreeDataGrid); -const textEditorInternalClassname = "t7vyx3i7-0-0-beta-42"; +const textEditorInternalClassname = "t7vyx3i7-0-0-beta-44"; const textEditorClassname = `rdg-text-editor ${textEditorInternalClassname}`; function autoFocusAndSelect(input) { input?.focus(); diff --git a/webapp/packages/plugin-react-data-grid/react-data-grid-dist/lib/bundle.cjs.map b/webapp/packages/plugin-react-data-grid/react-data-grid-dist/lib/bundle.cjs.map index 9bd3dede43..a0731d41f3 100644 --- a/webapp/packages/plugin-react-data-grid/react-data-grid-dist/lib/bundle.cjs.map +++ b/webapp/packages/plugin-react-data-grid/react-data-grid-dist/lib/bundle.cjs.map @@ -1 +1 @@ -{"version":3,"file":"bundle.cjs","sources":["../src/utils/colSpanUtils.ts","../src/utils/domUtils.ts","../src/utils/eventUtils.ts","../src/utils/keyboardUtils.ts","../src/utils/renderMeasuringCells.tsx","../src/utils/selectedCellUtils.ts","../src/style/cell.ts","../src/utils/styleUtils.ts","../src/utils/index.ts","../src/cellRenderers/renderCheckbox.tsx","../src/cellRenderers/renderToggleGroup.tsx","../src/cellRenderers/renderValue.tsx","../src/DataGridDefaultRenderersProvider.ts","../src/cellRenderers/SelectCellFormatter.tsx","../src/hooks/useRowSelection.ts","../src/Columns.tsx","../src/hooks/useCalculatedColumns.ts","../src/hooks/useLayoutEffect.ts","../src/hooks/useColumnWidths.ts","../src/hooks/useGridDimensions.ts","../src/hooks/useLatestFunc.ts","../src/hooks/useRovingTabIndex.ts","../src/hooks/useViewportColumns.ts","../src/hooks/useViewportRows.ts","../src/Cell.tsx","../src/DragHandle.tsx","../src/EditCell.tsx","../src/GroupedColumnHeaderCell.tsx","../src/renderHeaderCell.tsx","../src/HeaderCell.tsx","../src/style/row.ts","../src/HeaderRow.tsx","../src/GroupedColumnHeaderRow.tsx","../src/Row.tsx","../src/ScrollToCell.tsx","../src/sortStatus.tsx","../src/style/core.ts","../src/SummaryCell.tsx","../src/SummaryRow.tsx","../src/DataGrid.tsx","../src/GroupCell.tsx","../src/GroupRow.tsx","../src/TreeDataGrid.tsx","../src/editors/textEditor.tsx"],"sourcesContent":["import type { CalculatedColumn, ColSpanArgs } from '../types';\n\nexport function getColSpan(\n column: CalculatedColumn,\n lastFrozenColumnIndex: number,\n args: ColSpanArgs\n): number | undefined {\n const colSpan = typeof column.colSpan === 'function' ? column.colSpan(args) : 1;\n if (\n Number.isInteger(colSpan) &&\n colSpan! > 1 &&\n // ignore colSpan if it spans over both frozen and regular columns\n (!column.frozen || column.idx + colSpan! - 1 <= lastFrozenColumnIndex)\n ) {\n return colSpan!;\n }\n return undefined;\n}\n","import type { Maybe } from '../types';\n\nexport function stopPropagation(event: React.SyntheticEvent) {\n event.stopPropagation();\n}\n\nexport function scrollIntoView(element: Maybe) {\n element?.scrollIntoView({ inline: 'nearest', block: 'nearest' });\n}\n","import type { CellEvent } from '../types';\n\nexport function createCellEvent>(\n event: E\n): CellEvent {\n let defaultPrevented = false;\n const cellEvent = {\n ...event,\n preventGridDefault() {\n defaultPrevented = true;\n },\n isGridDefaultPrevented() {\n return defaultPrevented;\n }\n };\n\n Object.setPrototypeOf(cellEvent, Object.getPrototypeOf(event));\n\n return cellEvent;\n}\n","// https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values\nconst nonInputKeys = new Set([\n // Special keys\n 'Unidentified',\n // Modifier keys\n 'Alt',\n 'AltGraph',\n 'CapsLock',\n 'Control',\n 'Fn',\n 'FnLock',\n 'Meta',\n 'NumLock',\n 'ScrollLock',\n 'Shift',\n // Whitespace keys\n 'Tab',\n // Navigation keys\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'End',\n 'Home',\n 'PageDown',\n 'PageUp',\n // Editing\n 'Insert',\n // UI keys\n 'ContextMenu',\n 'Escape',\n 'Pause',\n 'Play',\n // Device keys\n 'PrintScreen',\n // Function keys\n 'F1',\n // 'F2', /!\\ specifically allowed, do not edit\n 'F3',\n 'F4',\n 'F5',\n 'F6',\n 'F7',\n 'F8',\n 'F9',\n 'F10',\n 'F11',\n 'F12'\n]);\n\nexport function isCtrlKeyHeldDown(e: React.KeyboardEvent): boolean {\n return (e.ctrlKey || e.metaKey) && e.key !== 'Control';\n}\n\nexport function isDefaultCellInput(event: React.KeyboardEvent): boolean {\n const vKey = 86;\n if (isCtrlKeyHeldDown(event) && event.keyCode !== vKey) return false;\n return !nonInputKeys.has(event.key);\n}\n\n/**\n * By default, the following navigation keys are enabled while an editor is open, under specific conditions:\n * - Tab:\n * - The editor must be an , a