diff --git a/backend/src/baserow/config/settings/base.py b/backend/src/baserow/config/settings/base.py index 2bce9afb50..2f3ffeb7fe 100644 --- a/backend/src/baserow/config/settings/base.py +++ b/backend/src/baserow/config/settings/base.py @@ -345,6 +345,7 @@ ("it", "Italian"), ("pl", "Polish"), ("ko", "Korean"), + ("uk", "Ukrainian"), ] TIME_ZONE = "UTC" diff --git a/backend/src/baserow/core/migrations/0112_alter_userprofile_language.py b/backend/src/baserow/core/migrations/0112_alter_userprofile_language.py new file mode 100644 index 0000000000..4b6a973c76 --- /dev/null +++ b/backend/src/baserow/core/migrations/0112_alter_userprofile_language.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.11 on 2026-02-11 16:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0111_alter_twofactorauthprovidermodel_user'), + ] + + operations = [ + migrations.AlterField( + model_name='userprofile', + name='language', + field=models.TextField(choices=[('en', 'English'), ('fr', 'French'), ('nl', 'Dutch'), ('de', 'German'), ('es', 'Spanish'), ('it', 'Italian'), ('pl', 'Polish'), ('ko', 'Korean'), ('uk', 'Ukrainian')], default='en', help_text='An ISO 639 language code (with optional variant) selected by the user. Ex: en-GB.', max_length=10), + ), + ] diff --git a/backend/tests/baserow/contrib/database/webhooks/test_webhook_validators.py b/backend/tests/baserow/contrib/database/webhooks/test_webhook_validators.py index 82cef2ab4a..7035b7a50e 100644 --- a/backend/tests/baserow/contrib/database/webhooks/test_webhook_validators.py +++ b/backend/tests/baserow/contrib/database/webhooks/test_webhook_validators.py @@ -90,7 +90,7 @@ def test_hostname_blacklist_rules(): assert exec_info.value.code == "invalid_url" # This request should still go through - url_validator("https://www.otherdomain.com") + url_validator("https://www.cloudflare.com") @override_settings( diff --git a/changelog/entries/unreleased/feature/add_ukrainian_language.json b/changelog/entries/unreleased/feature/add_ukrainian_language.json new file mode 100644 index 0000000000..aa9343c107 --- /dev/null +++ b/changelog/entries/unreleased/feature/add_ukrainian_language.json @@ -0,0 +1,9 @@ +{ + "type": "feature", + "message": "Add Ukrainian languauge.", + "issue_origin": "github", + "issue_number": null, + "domain": "core", + "bullet_points": [], + "created_at": "2026-02-09" +} diff --git a/enterprise/web-frontend/modules/baserow_enterprise/locales/es.json b/enterprise/web-frontend/modules/baserow_enterprise/locales/es.json index 81ee438e8c..b80b9b8d8e 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/locales/es.json +++ b/enterprise/web-frontend/modules/baserow_enterprise/locales/es.json @@ -189,11 +189,12 @@ }, "memberRolesModal": { "memberRolesDatabaseTabTitle": "Base de datos", - "memberRolesTableTabTitle": "Tabla actual", + "memberRolesTableTabTitle": "Tabla", "error": { "title": "No se han podido obtener los datos", "description": "Se ha producido un error al obtener los datos de los miembros." - } + }, + "memberRolesViewTabTitle": "Vista" }, "memberRolesTab": { "database": { @@ -213,6 +214,15 @@ "everyoneHasAccess": "Todos en el espacio de trabajo {nombre} pueden acceder a esta tabla.", "warningTitle": "¡Otros usuarios podrían heredar el acceso!", "headerTooltip": "Los roles de tabla prevalecerán sobre los roles de espacio de trabajo y base de datos." + }, + "view": { + "warningMessage": "Otros usuarios podrían heredar acceso a través de sus respectivos roles en la tabla padre, la base de datos o el espacio de trabajo.", + "headerTooltip": "Los roles de vista sobrescribirán los roles del espacio de trabajo, la base de datos y la tabla.", + "everyoneHasAccess": "Cualquiera en el flujo de trabajo {name} puede acceder a esta vista.", + "onlyYouHaveAccess": "Solo tú puedes acceder a esta vista.", + "warningTitle": "¡Otros usuarios podrían heredar el acceso!", + "title": "Vista {name}", + "selectMembers": "Seleccionar miembros" } }, "memberRolesShareToggle": { @@ -610,7 +620,7 @@ "fileInputElementForm": { "defaultNameTitle": "Nombre de archivo inicial|Nombres de archivo iniciales", "defaultNamePlaceholder": "Introduce un nombre de archivo...|Introduce los nombres de archivo...", - "defaultNameHelp": "El número de nombres debe coincidir con el número de URLs.", + "defaultNameHelp": "El número de nombres debe coincidir con el número de URLs.", "defaultUrlTitle": "URL de archivo inicial|URLs de archivos iniciales", "defaultUrlPlaceholder": "Introduce una URL predeterminada...|Introduce URLs predeterminadas...", "helpTextTitle": "Texto de ayuda", @@ -700,7 +710,9 @@ "advancedSettingsLabel": "Configuración avanzada", "includeWeekendsLabel": "Incluye los fines de semana al calcular duraciones", "dependencyFieldForReaderTooltip": "Este campo está incluido en la regla de campo de dependencia de fecha", - "fieldInvalidTitle": "Error de campo en la dependencia de fecha" + "fieldInvalidTitle": "Error de campo en la dependencia de fecha", + "addNewField": "Añadir nuevo campo", + "linkRowFieldTitle": "Padres" }, "dateDependency": { "invalidChildRow": "La fila sucesora es inválida", @@ -712,5 +724,33 @@ "invalidDurationValue": "El valor de duración no es válido", "invalidDurationEmpty": "La duración está vacía", "invalidDurationMismatch": "Desajuste de valor de duración" + }, + "viewOwnershipType": { + "restrictedDescription": "Los editores y los usuarios de nivel inferior sólo pueden ver los datos filtrados y los campos visibles. Es posible gestionar los miembros.", + "restricted": "Restringido" + }, + "aiDatabaseOnboardingForm": { + "exampleCompanyAssetTrackerPrompt": "Crea un rastreador de activos con: Activos, Categorías, Números de serie, Fecha de compra, Asignado a, Ubicación y vencimiento de garantía.", + "exampleBugTrackerPrompt": "Crea un gestor de errores con: Errores, Severidad, Estado, Pasos para reproducir, Entorno, Reportero, Responsable y versión de corrección.", + "exampleTeamCheckInsPrompt": "Crea un gestor semanal de seguimiento de equipo con: Miembros del equipo, Fecha, Logros, Obstáculos, Estado de ánimo, Prioridades y seguimientos.", + "exampleProductRoadmapPrompt": "Crea una hoja de ruta de producto con: Iniciativas, Funcionalidades, Responsables, Estado, Prioridad, Trimestre objetivo y Notas de lanzamiento.", + "exampleProjectTrackerPrompt": "Crea un gestor de proyectos con: Proyectos, Tareas, Asignados, Estado, Prioridad, Fechas de vencimiento y Dependencias.", + "description": "Describe lo que quieres rastrear. Kuma creará las tablas y los campos.", + "placeholder": "Por ejemplo: Crear solución de gestión de proyectos", + "label": "Describe tu base de datos", + "exampleCompanyAssetTrackerName": "Rastreador de activos de la empresa", + "exampleProjectTrackerName": "Gestor de proyectos", + "exampleProductRoadmapName": "Hoja de ruta del producto", + "exampleTeamCheckInsName": "Gestor de seguimiento de equipo", + "exampleBugTrackerName": "Gestor de errores" + }, + "aiDatabaseOnboardingStepType": { + "prompt": "Crea una base de datos que incluya: tablas, campos, filas de ejemplo y vistas de ejemplo que coincidan con esta descripción: {prompt}" + }, + "assistantOnboardingMessage": { + "instructing": "Instruyendo a Kuma para crear tu base de datos." + }, + "databaseStep": { + "ai": "Kuma IA" } } diff --git a/enterprise/web-frontend/modules/baserow_enterprise/locales/fr.json b/enterprise/web-frontend/modules/baserow_enterprise/locales/fr.json index 5d59bdee19..6f0fd63276 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/locales/fr.json +++ b/enterprise/web-frontend/modules/baserow_enterprise/locales/fr.json @@ -192,11 +192,12 @@ }, "memberRolesModal": { "memberRolesDatabaseTabTitle": "Base de données", - "memberRolesTableTabTitle": "Table actuelle", + "memberRolesTableTabTitle": "Table", "error": { "title": "Impossible de récupérer les données", "description": "Une erreur s’est produite lors de la récupération des données des membres." - } + }, + "memberRolesViewTabTitle": "Vue" }, "memberRolesTab": { "database": { @@ -216,6 +217,15 @@ "onlyYouHaveAccess": "Vous seul pouvez accéder à cette table.", "warningTitle": "D'autres utilisateurs peuvent avoir hérité de l'accès !", "headerTooltip": "Les rôles de table sont prioritaires sur les rôles de projet et de base de données." + }, + "view": { + "title": "Vue {name}", + "selectMembers": "Sélectionnez les membres", + "everyoneHasAccess": "Tout les membres du projet {name} peuvent accéder à cette vue.", + "onlyYouHaveAccess": "Seulement vous pouvez accéder à cette vue.", + "warningTitle": "D'autres utilisateurs pourraient hériter de l'accès !", + "warningMessage": "D'autres utilisateurs peuvent hériter de l'accès par leurs rôles respectifs sur la table parente, la base de données ou le projet.", + "headerTooltip": "Les rôles de Vue remplacent les rôles du projet, de la base de données et de la table." } }, "memberRolesShareToggle": { @@ -685,7 +695,9 @@ "advancedSettingsLabel": "Paramètres avancés", "includeWeekendsLabel": "Inclure les week-ends dans le calcul des durées", "dependencyFieldForReaderTooltip": "Ce champ est inclus dans la règle de dépendance de date", - "fieldInvalidTitle": "Erreur dans la dépendance de date" + "fieldInvalidTitle": "Erreur dans la dépendance de date", + "addNewField": "Ajouter une nouvelle colonne", + "linkRowFieldTitle": "Parents" }, "assistant": { "statusThinking": "Réflexions...", @@ -717,5 +729,33 @@ }, "assistantMessageList": { "disclaimer": "Kuma peut faire des erreurs, veuillez vérifier les réponses" + }, + "viewOwnershipType": { + "restricted": "Accès restreint", + "restrictedDescription": "Les Éditeurs ou en dessous peuvent seulement voir les données filtrées et les colonnes visibles. Il est possible de choisir les membres." + }, + "databaseStep": { + "ai": "Kuma IA" + }, + "aiDatabaseOnboardingForm": { + "label": "Décrivez votre base de données", + "placeholder": "ex. Créer une solution de gestion de projet", + "description": "Décrivez ce que vous voulez suivre. Kuma va créer les tables et les colonnes.", + "exampleProjectTrackerName": "Suivi de Projet", + "exampleProjectTrackerPrompt": "Créer un suivi de projet avec les tables Projets, Tâches, Assignations, Statut, Priorité, Dates et dépendances.", + "exampleProductRoadmapName": "Feuille de route", + "exampleProductRoadmapPrompt": "Créer une feuille de route de produit avec les tables Initiatives, Caractéristiques, Propriétaires, Statut, Priorité, Cible trimestrielle, et les notes de version.", + "exampleCompanyAssetTrackerName": "Gestion des actifs de l’entreprise", + "exampleCompanyAssetTrackerPrompt": "Créer un gestionnaire des actifs de l’entreprise avec les tables Catégories, Numéros de série, Date d'achat, Affecté à, Emplacement et expiration de garantie.", + "exampleTeamCheckInsName": "Suivi d’équipe", + "exampleTeamCheckInsPrompt": "Créer un Suivi hebdomadaire d’équipe avec les Membres de l'équipe, Date, Succés, Obstacles, Ambiance, Priorités et suivis.", + "exampleBugTrackerName": "Suivi de défauts", + "exampleBugTrackerPrompt": "Créez un suivi de défauts avec Défaut, Sévérité, Status, Étapes de reproduction, Environnement, Créateur, Affectation et Version de correction." + }, + "aiDatabaseOnboardingStepType": { + "prompt": "Créer une base de données comprenant des tables, des colonnes, des lignes et des vues d'exemple correspondant à cette description : {prompt}" + }, + "assistantOnboardingMessage": { + "instructing": "Demander à Kuma de créer votre base de données." } } diff --git a/enterprise/web-frontend/modules/baserow_enterprise/locales/ko.json b/enterprise/web-frontend/modules/baserow_enterprise/locales/ko.json index 61a14b7519..e84f79c475 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/locales/ko.json +++ b/enterprise/web-frontend/modules/baserow_enterprise/locales/ko.json @@ -191,11 +191,12 @@ }, "memberRolesModal": { "memberRolesDatabaseTabTitle": "데이터베이스", - "memberRolesTableTabTitle": "현재 테이블", + "memberRolesTableTabTitle": "테이블", "error": { "title": "데이터를 가져올 수 없습니다", "description": "멤버 데이터를 가져오는 동안 오류가 발생했습니다." - } + }, + "memberRolesViewTabTitle": "뷰" }, "memberRolesTab": { "database": { @@ -215,6 +216,15 @@ "warningTitle": "다른 사용자가 액세스를 상속받을 수 있습니다!", "warningMessage": "다른 사용자가 상위 데이터베이스 또는 작업공간의 해당 역할을 통해 액세스를 상속받을 수 있습니다.", "headerTooltip": "테이블 역할은 작업공간 및 데이터베이스 역할을 재정의합니다." + }, + "view": { + "title": "{name} 뷰", + "selectMembers": "멤버를 선택하세요", + "everyoneHasAccess": "{name} 워크스페이스의 모든 사용자는 이 보기에 접근할 수 있습니다.", + "onlyYouHaveAccess": "이 화면은 당신만 볼 수 있습니다.", + "warningTitle": "다른 사용자가 접근 권한을 상속받을 수도 있습니다!", + "warningMessage": "다른 사용자는 상위 테이블, 데이터베이스 또는 작업 공간에 대한 각자의 역할에 따라 액세스 권한을 상속받을 수 있습니다.", + "headerTooltip": "보기 역할은 작업 공간, 데이터베이스 및 테이블 역할을 재정의합니다." } }, "memberRolesShareToggle": { @@ -554,7 +564,7 @@ "helpTextTitle": "도움말", "defaultNameTitle": "초기 파일 이름|초기 파일 이름", "defaultNamePlaceholder": "파일 이름을 입력하세요...|파일 이름을 입력하세요...", - "defaultNameHelp": "이름의 수는 URL의 수와 일치해야 합니다.", + "defaultNameHelp": "이름의 개수는 URL의 개수와 일치해야 합니다.", "defaultUrlTitle": "초기 파일 URL|초기 파일 URL", "defaultUrlPlaceholder": "기본 URL을 입력하세요...|기본 URL을 입력하세요...", "helpTextPlaceholder": "비워두면 기본값이 사용됩니다...", @@ -682,7 +692,9 @@ "advancedSettingsLabel": "고급 설정", "includeWeekendsLabel": "기간을 계산할 때 주말을 포함", "dependencyFieldForReaderTooltip": "이 필드는 날짜 종속성 필드 규칙에 포함됩니다", - "fieldInvalidTitle": "날짜 종속성 필드 오류" + "fieldInvalidTitle": "날짜 종속성 필드 오류", + "addNewField": "새 필드 추가", + "linkRowFieldTitle": "부모" }, "assistant": { "statusThinking": "생각중...", @@ -714,5 +726,9 @@ }, "assistantMessageList": { "disclaimer": "쿠마는 실수를 할 수 있으니 답변을 다시 한번 확인해 주세요" + }, + "viewOwnershipType": { + "restricted": "제한된", + "restrictedDescription": "편집자 이하 권한자는 필터링된 데이터와 표시된 필드만 볼 수 있습니다. 멤버 관리도 가능합니다." } } diff --git a/enterprise/web-frontend/modules/baserow_enterprise/locales/nl.json b/enterprise/web-frontend/modules/baserow_enterprise/locales/nl.json index b9c624dd48..6c56336748 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/locales/nl.json +++ b/enterprise/web-frontend/modules/baserow_enterprise/locales/nl.json @@ -201,6 +201,15 @@ "warningTitle": "Andere gebruikers kunnen toegang erven!", "warningMessage": "Andere gebruikers kunnen toegang erven via hun respectieve rollen in de bovenliggende database of werkruimte.", "everyoneHasAccess": "Iedereen in {name} werkruimte heeft toegang tot deze tabel." + }, + "view": { + "title": "Weergave {name}", + "selectMembers": "Leden selecteren", + "everyoneHasAccess": "Iedereen in de workspace {name} kan deze weergave openen.", + "onlyYouHaveAccess": "Alleen jij kunt deze weergave openen.", + "warningTitle": "Andere gebruikers kunnen toegang overerven!", + "warningMessage": "Andere gebruikers kunnen toegang overerven via hun rollen op de bovenliggende tabel, database of workspace.", + "headerTooltip": "Rollen voor weergaven hebben voorrang op rollen voor workspace, database en tabel." } }, "memberRolesMembersList": { @@ -307,7 +316,8 @@ "description": "Er is een fout opgetreden bij het ophalen van de ledengegevens.", "title": "Kon geen gegevens ophalen" }, - "memberRolesTableTabTitle": "Huidige tabel" + "memberRolesTableTabTitle": "Huidige tabel", + "memberRolesViewTabTitle": "Weergave" }, "memberRolesShareToggle": { "subLabel": "{totalUserAmount} werkruimte leden", @@ -685,7 +695,9 @@ "advancedSettingsLabel": "Geavanceerde instellingen", "includeWeekendsLabel": "Houd rekening met weekenden bij het berekenen van looptijden", "dependencyFieldForReaderTooltip": "Dit veld is opgenomen in de regel voor datumafhankelijke velden", - "fieldInvalidTitle": "Fout in datumafhankelijkheidsveld" + "fieldInvalidTitle": "Fout in datumafhankelijkheidsveld", + "addNewField": "Nieuw veld toevoegen", + "linkRowFieldTitle": "Bovenliggend" }, "assistant": { "statusThinking": "Denken...", @@ -716,5 +728,33 @@ }, "assistantMessageList": { "disclaimer": "Kuma kan fouten maken, controleer antwoorden dubbel" + }, + "viewOwnershipType": { + "restricted": "Beperkt", + "restrictedDescription": "Editors en lager kunnen alleen de gefilterde data en zichtbare velden zien. Je kunt de leden beheren." + }, + "databaseStep": { + "ai": "Kuma AI" + }, + "aiDatabaseOnboardingForm": { + "label": "Beschrijf je database", + "placeholder": "bijv. Maak een projectmanagementoplossing", + "description": "Beschrijf wat je wilt bijhouden. Kuma maakt de tabellen en velden voor je.", + "exampleProjectTrackerName": "Projecttracker", + "exampleProjectTrackerPrompt": "Maak een projecttracker met Projecten, Taken, Toegewezen aan, Status, Prioriteit, Einddatums en afhankelijkheden.", + "exampleProductRoadmapName": "Productroadmap", + "exampleProductRoadmapPrompt": "Maak een productroadmap met Initiatieven, Features, Eigenaren, Status, Prioriteit, Doelkwartaal en releasenotes.", + "exampleCompanyAssetTrackerName": "Bedrijfsmiddelentracker", + "exampleCompanyAssetTrackerPrompt": "Maak een middelentracker met Middelen, Categorieën, Serienummers, Aankoopdatum, Toegewezen aan, Locatie en vervaldatum van de garantie.", + "exampleTeamCheckInsName": "Team check-ins", + "exampleTeamCheckInsPrompt": "Maak een wekelijkse team check-in tracker met Teamleden, Datum, Successen, Blokkers, Stemming, Prioriteiten en opvolging.", + "exampleBugTrackerName": "Bugtracker", + "exampleBugTrackerPrompt": "Maak een bugtracker met Bugs, Ernst, Status, Stappen om te reproduceren, Omgeving, Melder, Toegewezen aan en fixversie." + }, + "aiDatabaseOnboardingStepType": { + "prompt": "Maak een database met tabellen, velden, voorbeeldrijen en voorbeeldweergaven die passen bij deze beschrijving: {prompt}" + }, + "assistantOnboardingMessage": { + "instructing": "Kuma krijgt de instructie om je database te maken." } } diff --git a/enterprise/web-frontend/modules/baserow_enterprise/locales/uk.json b/enterprise/web-frontend/modules/baserow_enterprise/locales/uk.json index 579f1e1d0a..a6856b3df7 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/locales/uk.json +++ b/enterprise/web-frontend/modules/baserow_enterprise/locales/uk.json @@ -197,11 +197,12 @@ }, "memberRolesModal": { "memberRolesDatabaseTabTitle": "База даних", - "memberRolesTableTabTitle": "Поточна таблиця", + "memberRolesTableTabTitle": "Таблиця", "error": { "title": "Не вдалося отримати дані", "description": "Виникла помилка під час отримання даних учасників." - } + }, + "memberRolesViewTabTitle": "Подання" }, "memberRolesTab": { "database": { @@ -221,6 +222,15 @@ "warningTitle": "Інші користувачі можуть успадкувати доступ!", "warningMessage": "Інші користувачі можуть успадкувати доступ через свої ролі в батьківській базі даних або робочому просторі.", "headerTooltip": "Ролі таблиці перевизначають ролі робочого простору та бази даних." + }, + "view": { + "title": "{name} подання", + "selectMembers": "Виберіть учасників", + "everyoneHasAccess": "Усі в робочому просторі {name} можуть отримати доступ до цього подання.", + "onlyYouHaveAccess": "Тільки ви можете отримати доступ до цього подання.", + "warningTitle": "Інші користувачі можуть успадкувати доступ!", + "warningMessage": "Інші користувачі можуть успадкувати доступ через свої відповідні ролі в батьківській таблиці, базі даних або робочому просторі.", + "headerTooltip": "Ролі подання матимуть пріоритет над ролями робочого простору, бази даних і таблиці." } }, "memberRolesShareToggle": { @@ -682,7 +692,9 @@ "includeWeekendsLabel": "Включати вихідні при обчисленні тривалості", "dependencyFieldForReaderTooltip": "Це поле включено до правила залежності дат", "fieldInvalidTitle": "Помилка поля залежності дат", - "durationFieldHint": "Це поле повинно використовувати формат \"д г\"." + "durationFieldHint": "Це поле повинно використовувати формат \"д г\".", + "addNewField": "Додати нове поле", + "linkRowFieldTitle": "Батьківські елементи" }, "dateDependency": { "invalidChildRow": "Рядок-наступник недійсний", @@ -694,5 +706,33 @@ "invalidDurationEmpty": "Тривалість порожня", "invalidDurationValue": "Значення тривалості недійсне", "invalidDurationMismatch": "Невідповідність значення тривалості" + }, + "viewOwnershipType": { + "restricted": "Обмежено", + "restrictedDescription": "Редактори та користувачі з нижчими ролями можуть бачити лише відфільтровані дані й видимі поля. Вони також можуть керувати учасниками." + }, + "databaseStep": { + "ai": "Kuma ШІ" + }, + "aiDatabaseOnboardingForm": { + "label": "Опишіть вашу базу даних", + "placeholder": "наприклад: Створити рішення для управління проєктами", + "description": "Опишіть, що ви хочете відстежувати. Kuma створить таблиці та поля.", + "exampleProjectTrackerName": "Трекер проєктів", + "exampleProjectTrackerPrompt": "Створіть відстежувач проєктів з таблицями «Проєкти», «Завдання», «Виконавці», «Статус», «Пріоритет», «Термін виконання» та «Залежності».", + "exampleProductRoadmapName": "План розвитку продукту", + "exampleProductRoadmapPrompt": "Створіть дорожню карту продукту з таблицями «Ініціативи», «Функції», «Власники», «Статус», «Пріоритет», «Цільовий квартал» та «Нотатки до релізу».", + "exampleCompanyAssetTrackerName": "Відстежувач активів компанії", + "exampleCompanyAssetTrackerPrompt": "Створіть відстежувач активів з таблицями «Активи», «Категорії», «Серійні номери», «Дата придбання», «Відповідальний», «Локація» та «Термін дії гарантії».", + "exampleTeamCheckInsName": "Зустрічі команди", + "exampleTeamCheckInsPrompt": "Створіть щотижневий трекер командних зустрічей з таблицями «Члени команди», «Дата», «Досягнення», «Перешкоди», «Настрій», «Пріоритети» та «Подальші дії».", + "exampleBugTrackerName": "Відстежувач помилок", + "exampleBugTrackerPrompt": "Створіть відстежувач помилок з таблицями «Помилки», «Серйозність», «Статус», «Кроки для відтворення», «Середовище», «Повідомив», «Виконавець» та «Версія виправлення»." + }, + "aiDatabaseOnboardingStepType": { + "prompt": "Створіть базу даних, включно з таблицями, полями, прикладами рядків та прикладами подань, що відповідають цьому опису: {prompt}" + }, + "assistantOnboardingMessage": { + "instructing": "Інструкція Kuma щодо створення вашої бази даних." } } diff --git a/premium/web-frontend/modules/baserow_premium/locales/es.json b/premium/web-frontend/modules/baserow_premium/locales/es.json index b1ae006002..5aea87ce7d 100644 --- a/premium/web-frontend/modules/baserow_premium/locales/es.json +++ b/premium/web-frontend/modules/baserow_premium/locales/es.json @@ -394,7 +394,19 @@ "other": "Otro" }, "generateAIValuesModal": { - "title": "Generar todos los valores de IA" + "title": "Generar todos los valores de IA", + "autoUpdate": "Actualización automática: los campos referenciados cambiaron", + "deletedView": "Vista: ID {viewId} (eliminada)", + "noPreviousJobs": "No hay trabajos previos", + "table": "Tabla: Todas las filas", + "rows": "Filas: {count} filas", + "view": "Vista: {name}", + "started": "Iniciado", + "finished": "Completado", + "running": "Ejecutándose", + "failed": "Falló", + "cancelled": "Cancelado", + "pending": "Pendiente" }, "generateAIValuesForm": { "scopeLabel": "Alcance", @@ -409,5 +421,9 @@ }, "jobType": { "generateAIValues": "Regenerar los valores del campo IA" + }, + "viewOwnershipType": { + "personalDescription": "Solo tú puedes ver la vista.", + "personal": "Personal" } } diff --git a/premium/web-frontend/modules/baserow_premium/locales/fr.json b/premium/web-frontend/modules/baserow_premium/locales/fr.json index 87509aa7ce..d2079e6943 100644 --- a/premium/web-frontend/modules/baserow_premium/locales/fr.json +++ b/premium/web-frontend/modules/baserow_premium/locales/fr.json @@ -393,7 +393,19 @@ "false": "faux" }, "generateAIValuesModal": { - "title": "Générer toutes les valeurs IA" + "title": "Générer toutes les valeurs IA", + "noPreviousJobs": "Aucune tâche", + "started": "Démarré", + "finished": "Terminé", + "running": "En cours", + "failed": "Échec", + "cancelled": "Annulé", + "pending": "En attente", + "view": "Vue : {name}", + "table": "Table : toutes les lignes", + "deletedView": "Vue : ID {viewId} (supprimé)", + "rows": "Lignes : {count} lignes", + "autoUpdate": "Mise à jour automatique : modification des champs référencés" }, "generateAIValuesForm": { "scopeLabel": "Champ d ' application", @@ -408,5 +420,9 @@ }, "jobType": { "generateAIValues": "Régénérer les valeurs du champ" + }, + "viewOwnershipType": { + "personal": "Personnelle", + "personalDescription": "Vous êtes le seul à voir cette Vue." } } diff --git a/premium/web-frontend/modules/baserow_premium/locales/ko.json b/premium/web-frontend/modules/baserow_premium/locales/ko.json index 7199d94864..d06dc9b9f5 100644 --- a/premium/web-frontend/modules/baserow_premium/locales/ko.json +++ b/premium/web-frontend/modules/baserow_premium/locales/ko.json @@ -366,7 +366,7 @@ "export": "내보내기" }, "tableFileExporter": { - "organizeFiles": "행 ID로 파일 그룹화" + "organizeFiles": "행 ID별로 파일을 그룹화" }, "kanbanView": { "addStack": "스택 추가" @@ -381,7 +381,19 @@ "false": "거짓" }, "generateAIValuesModal": { - "title": "모든 AI 값 생성" + "title": "모든 AI 값 생성", + "noPreviousJobs": "이전 작업 없음", + "started": "시작됨", + "finished": "완료됨", + "running": "실행중", + "failed": "실패함", + "cancelled": "취소됨", + "pending": "보류 중", + "view": "뷰: {name}", + "table": "표: 모든 행", + "deletedView": "뷰: ID {viewId} (삭제됨)", + "rows": "행 수: {count} 행", + "autoUpdate": "자동 업데이트: 참조된 필드가 변경되었습니다" }, "generateAIValuesForm": { "scopeLabel": "범위", @@ -396,5 +408,9 @@ }, "jobType": { "generateAIValues": "AI 필드 값 재생성" + }, + "viewOwnershipType": { + "personal": "개인", + "personalDescription": "오직 당신만이 그 뷰를 볼 수 있습니다." } } diff --git a/premium/web-frontend/modules/baserow_premium/locales/nl.json b/premium/web-frontend/modules/baserow_premium/locales/nl.json index 1c9d413653..91a478e767 100644 --- a/premium/web-frontend/modules/baserow_premium/locales/nl.json +++ b/premium/web-frontend/modules/baserow_premium/locales/nl.json @@ -393,7 +393,19 @@ "false": "onwaar" }, "generateAIValuesModal": { - "title": "Genereer alle AI-waarden" + "title": "Genereer alle AI-waarden", + "noPreviousJobs": "Geen eerdere taken", + "started": "Gestart", + "finished": "Voltooid", + "running": "Bezig", + "failed": "Mislukt", + "cancelled": "Geannuleerd", + "pending": "In afwachting", + "view": "Weergave: {name}", + "table": "Tabel: Alle rijen", + "deletedView": "Weergave: ID {viewId} (verwijderd)", + "rows": "Rijen: {count} rijen", + "autoUpdate": "Automatisch bijwerken: verwezen velden gewijzigd" }, "generateAIValuesForm": { "scopeLabel": "Scope", @@ -408,5 +420,9 @@ }, "jobType": { "generateAIValues": "AI-veldwaarden opnieuw genereren" + }, + "viewOwnershipType": { + "personal": "Persoonlijk", + "personalDescription": "Alleen jij kunt de weergave zien." } } diff --git a/premium/web-frontend/modules/baserow_premium/locales/uk.json b/premium/web-frontend/modules/baserow_premium/locales/uk.json index db2cd0ff49..219a27175b 100644 --- a/premium/web-frontend/modules/baserow_premium/locales/uk.json +++ b/premium/web-frontend/modules/baserow_premium/locales/uk.json @@ -477,7 +477,19 @@ "other": "Інше" }, "generateAIValuesModal": { - "title": "Згенерувати всі значення ШІ" + "title": "Згенерувати всі значення ШІ", + "noPreviousJobs": "Немає попередніх завдань", + "started": "Розпочато", + "finished": "Виконано", + "running": "Виконується", + "failed": "Збій", + "cancelled": "Скасовано", + "pending": "Очікує", + "view": "Подання: {name}", + "table": "Таблиця: Усі рядки", + "deletedView": "Подання: ID {viewId} (видалено)", + "rows": "Рядки: {count} рядків", + "autoUpdate": "Автооновлення: змінено пов’язані поля" }, "generateAIValuesForm": { "scopeLabel": "Область", @@ -492,5 +504,9 @@ }, "jobType": { "generateAIValues": "Перегенерувати значення поля ШІ" + }, + "viewOwnershipType": { + "personal": "Персональне", + "personalDescription": "Тільки ви можете бачити це подання." } } diff --git a/web-frontend/config/locales.js b/web-frontend/config/locales.js index 85829d3784..39f784fc63 100644 --- a/web-frontend/config/locales.js +++ b/web-frontend/config/locales.js @@ -15,4 +15,5 @@ export const locales = [ { code: 'it', name: 'Italiano', file: 'it.json' }, { code: 'pl', name: 'Polski (Beta)', file: 'pl.json' }, { code: 'ko', name: '한국어', file: 'ko.json' }, + { code: 'uk', name: 'Українська', file: 'uk.json' }, ] diff --git a/web-frontend/locales/es.json b/web-frontend/locales/es.json index b30f59dab6..97544b5734 100644 --- a/web-frontend/locales/es.json +++ b/web-frontend/locales/es.json @@ -97,7 +97,8 @@ "deleteAccount": "Borrar cuenta", "emailNotifications": "Notificaciones por correo electrónico", "mcpEndpoint": "Servidor MCP", - "twoFactorAuth": "Autenticación de dos factores (2FA)" + "twoFactorAuth": "Autenticación de dos factores", + "email": "Cambiar correo electrónico" }, "userFileUploadType": { "file": "mi dispositivo", @@ -690,7 +691,19 @@ "categoryNumber": "Número", "categoryBoolean": "Booleano", "categoryDate": "Fecha", - "categoryCondition": "Condición" + "categoryCondition": "Condición", + "lengthDescription": "Devuelve la longitud del argumento: el número de elementos en un `array`, el número de caracteres en una cadena, o el número de claves en un objeto.", + "splitDescription": "Divide el primer argumento usando el segundo argumento opcional como separador. Si no se proporciona el segundo argumento, usa ' ' como separador.", + "joinDescription": "Une el primer argumento usando el segundo argumento opcional como separador. Si no se proporciona el segundo argumento, usa ',' como separador.", + "reverseDescription": "Si el argumento es una cadena, la cadena se invierte. Si es una lista, el orden de la lista se invierte.", + "replaceDescription": "Con el primer argumento dado, reemplaza todas las apariciones del segundo argumento por el tercer argumento.", + "atDescription": "Devuelve el elemento del primer argumento en el índice especificado por el segundo argumento.", + "containsDescription": "Devuelve «verdadero» si el primer argumento contiene el segundo argumento.", + "isEmptyDescription": "Devuelve «verdadero» si el argumento está vacío; de lo contrario devuelve «falso»", + "stripDescription": "Elimina cualquier espacio en blanco al principio y al final del argumento", + "toArrayDescription": "Convierte una cadena delimitada por comas en un `array`.", + "sumDescription": "Suma los números dentro del argumento.", + "avgDescription": "Calcula el promedio de los números dentro del argumento." }, "formulaInputContext": { "useRegularInput": "Usa entrada regular", diff --git a/web-frontend/locales/fr.json b/web-frontend/locales/fr.json index 9b48fa8d2c..58b25cdcba 100644 --- a/web-frontend/locales/fr.json +++ b/web-frontend/locales/fr.json @@ -97,7 +97,8 @@ "deleteAccount": "Supprimer le compte", "emailNotifications": "Notifications par courriel", "mcpEndpoint": "Serveur MCP", - "twoFactorAuth": "Autorisation à deux facteurs" + "twoFactorAuth": "Autorisation à deux facteurs", + "email": "Changer courriel" }, "userFileUploadType": { "file": "de mon appareil", @@ -509,7 +510,7 @@ "yyyy-mm-dd": "aaaa-mm-jj" }, "formulaFunctions": { - "upperDescription": "Retourne l'argument en MAJUSCULES.", + "upperDescription": "Retourne l'argument en majuscules.", "lowerDescription": "Retourne l'argument en minuscules.", "concatDescription": "Retourne ses arguments concaténés ensemble en une seule chaîne.", "addDescription": "Retourne le résultat de l'addition de ses deux arguments.", @@ -588,7 +589,7 @@ "isNullDescription": "Retourne true si l'argument est null, false sinon.", "wheNanDescription": "Renvoie le premier argument s'il n'est pas 'NaN'. Renvoie le deuxième argument si le premier argument est 'NaN'", "isNanDescription": "Retourne true si l'argument est 'NaN', retourne false sinon.", - "nowDescription": "Renvoie la date et l’heure actuelles en UTC.", + "nowDescription": "Renvoie la date et l’heure actuelle en UTC.", "todayDescription": "Retourne la date actuelle en UTC.", "toDateTzDescription": "Renvoie le premier argument converti en date à partir de la chaîne de caractères représentant le format de cette date en deuxième argument et du fuseau horaire fourni en troisième argument.", "whenNanDescription": "Renvoie le premier argument s'il n'est pas 'NaN'. Renvoie le second argument si le premier argument est 'NaN'", @@ -690,7 +691,19 @@ "categoryNumber": "Nombre", "categoryBoolean": "Booléen", "categoryDate": "Date", - "categoryCondition": "Condition" + "categoryCondition": "Condition", + "replaceDescription": "Compte tenu du premier argument, remplace toutes les occurrences du deuxième argument par le troisième argument.", + "lengthDescription": "Renvoie la longueur de l'argument : le nombre d'éléments dans un tableau, le nombre de caractères dans une chaîne, ou le nombre de clefs dans un objet.", + "containsDescription": "Renvoie vrai si le premier argument contient le deuxième argument.", + "reverseDescription": "Inverse l'argument. Si l'argument est une chaîne, la chaîne est inversée. Si c'est une liste, l'ordre de liste est inversé.", + "joinDescription": "Joins le premier argument en utilisant le deuxième argument optionnel comme séparateur. Si le deuxième argument n'est pas fourni, utilise ',' comme séparateur.", + "splitDescription": "Découpe le premier argument en utilisant le deuxième argument optionnel comme séparateur. Si le deuxième argument n'est pas fourni, utilise ' ' comme séparateur.", + "isEmptyDescription": "Retourne vrai si l'argument est vide, sinon retourne faux", + "stripDescription": "Supprime tout espace finale ou initiale de l'argument", + "sumDescription": "Calcule la somme des nombres en argument.", + "avgDescription": "Calcule la moyenne des nombres en argument.", + "atDescription": "Retourne l'élément du premier argument à l'index spécifié par le deuxième argument.", + "toArrayDescription": "Convertit une chaîne délimitée par virgule en une liste de valeurs." }, "formulaInputContext": { "useRegularInput": "Utiliser une formule simple", diff --git a/web-frontend/locales/ko.json b/web-frontend/locales/ko.json index c0a0a6a2f1..12276eb33b 100644 --- a/web-frontend/locales/ko.json +++ b/web-frontend/locales/ko.json @@ -95,7 +95,8 @@ "tokens": "데이터베이스 토큰", "deleteAccount": "계정 삭제", "mcpEndpoint": "MCP 서버", - "twoFactorAuth": "2단계 인증" + "twoFactorAuth": "2단계 인증", + "email": "이메일 변경" }, "userFileUploadType": { "file": "내 기기", @@ -202,15 +203,15 @@ "url": "URL이어야 하는 문자열을 허용합니다.", "email": "이메일 주소여야 하는 문자열을 허용합니다.", "file": "사용자 파일의 이름을 포함하는 최소한의 객체 배열을 허용합니다. 또는 쉼표로 구분된 파일 이름 목록이나 파일 이름 배열을 제공할 수 있습니다. \"파일 업로드\" 엔드포인트를 사용하여 파일을 업로드할 수 있습니다. 해당 호출의 응답을 여기에서 객체로 직접 제공할 수 있습니다. 엔드포인트는 왼쪽 사이드바에서 찾을 수 있습니다.", - "singleSelect": "선택된 선택 옵션 ID 또는 옵션 값을 나타내는 정수 또는 텍스트 값을 허용합니다. null 값은 선택되지 않았음을 의미합니다. 텍스트 값의 경우 첫 번째 일치하는 옵션이 선택됩니다.", - "multipleSelect": "선택된 선택 옵션 ID 또는 값을 나타내는 정수 또는 텍스트 값의 배열을 허용합니다. 텍스트 값의 경우 첫 번째 일치하는 옵션이 선택됩니다. 값으로 쉼표로 구분된 옵션 이름의 문자열을 보낼 수 있으며, 이 경우 문자열은 옵션 이름의 배열로 변환됩니다.", + "singleSelect": "선택한 옵션의 ID 또는 옵션 값을 나타내는 정수 또는 텍스트 값을 허용합니다. null 값은 아무것도 선택되지 않았음을 의미합니다. 텍스트 값인 경우, 일치하는 첫 번째 옵션이 선택됩니다.", + "multipleSelect": "선택된 옵션의 ID 또는 값을 나타내는 정수 또는 텍스트 값의 배열을 허용합니다. 텍스트 값의 경우, 일치하는 첫 번째 옵션이 선택됩니다. 쉼표로 구분된 이름 문자열을 값으로 보낼 수 있으며, 이 경우 문자열은 옵션 이름 배열로 변환됩니다.", "phoneNumber": "최대 100자의 숫자, 공백 및 다음 문자를 포함하는 전화번호를 허용합니다: Nx,._+*()#=;/- .", "formula": "Baserow 수식 언어로 작성된 수식에 의해 정의된 읽기 전용 필드입니다.", "count": "링크된 테이블 필드에 연결된 읽기 전용 필드로, 관계 수를 반환합니다.", "rollup": "링크된 테이블 필드에 연결된 읽기 전용 필드로, 링크된 테이블의 선택된 조회 필드의 값을 롤업하여 반환합니다.", - "lookup": "링크된 테이블 필드에 연결된 읽기 전용 필드로, 링크된 테이블의 선택된 조회 필드의 값과 행 ID의 배열을 반환합니다.", - "multipleCollaborators": "각 객체에 사용자의 ID가 포함된 객체의 배열을 허용합니다.", - "uuid": "고유하고 지속적인 UUID인 읽기 전용 필드입니다.", + "lookup": "연결된 테이블 필드에 연결된 읽기 전용 필드로, 연결된 테이블에서 선택한 조회 필드의 값과 행 ID 배열을 반환합니다.", + "multipleCollaborators": "각 객체에 사용자 ID가 포함된 객체 배열을 허용합니다.", + "uuid": "읽기 전용의 고유하고 영구적인 UUID입니다.", "autonumber": "각 새 행에 대해 자동으로 번호를 증가시키는 읽기 전용 필드입니다.", "password": "해시된 비밀번호를 보유하는 쓰기 전용 필드입니다. 설정되지 않은 경우 값은 `null`이며, 설정된 경우 `true`입니다. 문자열을 받아서 설정합니다." }, @@ -534,8 +535,8 @@ "toDateTzDescription": "첫 번째 인수를 두 번째 인수로 제공된 날짜 형식과 세 번째 인수로 제공된 타임존에 따라 날짜로 변환하여 반환합니다.", "dayDescription": "인수에서 1에서 31 사이의 숫자로 월의 일을 반환합니다.", "dateDiffDescription": "첫 번째 인수로 측정할 날짜 단위('year', 'month', 'week', 'day', 'hour', 'minute', 'seconds')를 제공하고, 두 번째 인수에서 세 번째 인수까지의 단위 수를 계산하여 반환합니다.", - "andDescription": "첫 번째와 두 번째 인수의 논리적 AND를 반환하므로 둘 다 true이면 결과는 true이고, 그렇지 않으면 false입니다.", - "orDescription": "첫 번째와 두 번째 인수의 논리적 OR를 반환하므로 둘 중 하나가 true이면 결과는 true이고, 그렇지 않으면 false입니다.", + "andDescription": "첫 번째 인수와 두 번째 인수의 논리 AND 연산 결과를 반환합니다. 따라서 두 인수가 모두 참이면 결과는 참이고, 그렇지 않으면 거짓입니다.", + "orDescription": "첫 번째 인수와 두 번째 인수의 논리합(OR)을 반환합니다. 따라서 둘 중 하나라도 참이면 결과는 참이고, 그렇지 않으면 거짓입니다.", "dateIntervalDescription": "제공된 인수에 해당하는 날짜 간격을 반환합니다.", "replaceDescription": "첫 번째 인수에서 두 번째 인수의 모든 인스턴스를 세 번째 인수로 대체합니다.", "searchDescription": "첫 번째 인수 내에서 두 번째 인수의 첫 번째 발생에 대해 1부터 시작하는 양의 정수를 반환하며, 발생이 없으면 0을 반환합니다.", @@ -570,7 +571,7 @@ "linkDescription": "첫 번째 인수로 제공된 URI를 사용하여 하이퍼링크를 생성합니다.", "buttonDescription": "URI(첫 번째 인수)와 레이블(두 번째 인수)을 사용하여 버튼을 생성합니다.", "getLinkLabelDescription": "link 또는 button 함수에서 사용된 수식에서 레이블을 가져옵니다.", - "getLinkUrlDescription": "link 또는 button 함수에서 사용된 수식에서 URL을 가져옵니다.", + "getLinkUrlDescription": "링크 또는 버튼 함수를 사용하여 수식에서 URL을 가져옵니다.", "evenDescription": "제공된 인수가 짝수이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.", "oddDescription": "제공된 인수가 홀수이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.", "modDescription": "첫 번째 인수와 두 번째 인수 사이의 나눗셈의 나머지를 반환합니다.", @@ -590,7 +591,7 @@ "encodeUriDescription": "제공된 인수로부터 인코딩된 URI 문자열을 반환합니다.", "encodeUriComponentDescription": "제공된 인수로부터 인코딩된 URI 문자열 구성 요소를 반환합니다.", "getFileVisibleNameDescription": "index 함수에서 반환된 단일 파일의 표시 파일 이름을 반환합니다.", - "getFileMimeTypeDescription": "index 함수에서 반환된 단일 파일의 파일 MIME 유형을 반환합니다.", + "getFileMimeTypeDescription": "index 함수에서 반환된 단일 파일의 MIME 유형을 반환합니다.", "getFileCountDescription": "참조된 파일 필드의 파일 수를 반환합니다", "getFileSizeDescription": "index 함수에서 반환된 단일 파일의 파일 크기를 반환합니다.", "getImageWidthDescription": "index 함수에서 반환된 단일 파일의 이미지 너비를 반환합니다.", @@ -683,7 +684,19 @@ "categoryNumber": "숫자", "categoryBoolean": "부울", "categoryDate": "날짜", - "categoryCondition": "상태" + "categoryCondition": "상태", + "replaceDescription": "첫 번째 인수가 주어졌을 때, 두 번째 인수가 나타나는 모든 부분을 세 번째 인수로 바꿉니다.", + "lengthDescription": "인수의 길이를 반환합니다. 배열의 항목 수, 문자열의 문자 수 또는 객체의 키 수를 반환합니다.", + "containsDescription": "첫 번째 인수에 두 번째 인수가 포함되어 있으면 true를 반환합니다.", + "reverseDescription": "인수를 역순으로 정렬합니다. 인수가 문자열인 경우 문자열의 순서를 뒤집고, 리스트인 경우 리스트의 순서를 뒤집습니다.", + "joinDescription": "선택적 두 번째 인수를 구분자로 사용하여 첫 번째 인수를 결합합니다. 두 번째 인수가 제공되지 않으면 쉼표(,)를 구분자로 사용합니다.", + "splitDescription": "선택적 두 번째 인수를 구분자로 사용하여 첫 번째 인수를 분할합니다. 두 번째 인수가 제공되지 않으면 ' '를 구분자로 사용합니다.", + "isEmptyDescription": "인수가 비어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다", + "stripDescription": "인수의 앞뒤 공백을 모두 제거합니다", + "sumDescription": "인수에 포함된 숫자들을 합산합니다.", + "avgDescription": "인수에 포함된 숫자들의 평균을 냅니다.", + "atDescription": "첫 번째 인수에 있는 항목을 두 번째 인수로 지정된 인덱스에서 반환합니다.", + "toArrayDescription": "쉼표로 구분된 문자열을 배열로 변환합니다." }, "formulaInputContext": { "useRegularInput": "일반적인 입력을 사용", diff --git a/web-frontend/locales/nl.json b/web-frontend/locales/nl.json index e090253589..8ee1b26d79 100644 --- a/web-frontend/locales/nl.json +++ b/web-frontend/locales/nl.json @@ -97,7 +97,8 @@ "deleteAccount": "Account verwijderen", "emailNotifications": "E-mail notificaties", "mcpEndpoint": "MCP server", - "twoFactorAuth": "Tweefactorauth" + "twoFactorAuth": "Tweefactorauth", + "email": "E-mailadres wijzigen" }, "userFileUploadType": { "file": "mijn apparaat", @@ -690,7 +691,19 @@ "categoryNumber": "Nummer", "categoryBoolean": "Boolean", "categoryDate": "Datum", - "categoryCondition": "Voorwaarde" + "categoryCondition": "Voorwaarde", + "replaceDescription": "Met het eerste argument vervangt dit alle voorkomens van het tweede argument door het derde argument.", + "lengthDescription": "Geeft de lengte van het argument terug: het aantal items in een array, het aantal tekens in een string, of het aantal sleutels in een object.", + "containsDescription": "Geeft true terug als het eerste argument het tweede argument bevat.", + "reverseDescription": "Keert het argument om. Als het argument een string is, wordt de string omgekeerd. Als het een lijst is, wordt de volgorde van de lijst omgekeerd.", + "joinDescription": "Voegt het eerste argument samen met het optionele tweede argument als scheidingsteken. Als het tweede argument niet is opgegeven, wordt ',' als scheidingsteken gebruikt.", + "splitDescription": "Splitst het eerste argument met het optionele tweede argument als scheidingsteken. Als het tweede argument niet is opgegeven, wordt ' ' als scheidingsteken gebruikt.", + "isEmptyDescription": "Geeft true terug als het argument leeg is, anders false.", + "stripDescription": "Verwijdert witruimte aan het begin en einde van het argument.", + "sumDescription": "Telt de getallen in het argument op.", + "avgDescription": "Berekent het gemiddelde van de getallen in het argument.", + "atDescription": "Geeft het item in het eerste argument terug op de index die is opgegeven door het tweede argument.", + "toArrayDescription": "Zet een door komma's gescheiden string om naar een array." }, "formulaInputContext": { "useRegularInput": "Gebruik regelmatige invoer", diff --git a/web-frontend/locales/uk.json b/web-frontend/locales/uk.json index 569aca8be5..dfb98e0eed 100644 --- a/web-frontend/locales/uk.json +++ b/web-frontend/locales/uk.json @@ -95,7 +95,8 @@ "deleteAccount": "Видалити обліковий запис", "emailNotifications": "Сповіщення електронною поштою", "mcpEndpoint": "MCP сервер", - "twoFactorAuth": "Двофакторна автентифікація" + "twoFactorAuth": "Двофакторна автентифікація", + "email": "Змінити електронну адресу" }, "userFileUploadType": { "file": "мій пристрій", @@ -684,7 +685,19 @@ "categoryNumber": "Число", "categoryBoolean": "Логічне значення", "categoryDate": "Дата", - "categoryCondition": "Умова" + "categoryCondition": "Умова", + "replaceDescription": "Беручи перший аргумент, замінює всі входження другого аргументу на третій аргумент.", + "lengthDescription": "Повертає довжину аргументу: кількість елементів у масиві, кількість символів у рядку або кількість ключів в об’єкті.", + "containsDescription": "Повертає істину, якщо перший аргумент включає другий.", + "reverseDescription": "Розгортає аргумент у зворотному порядку. Якщо аргумент — рядок, рядок перевертається. Якщо аргумент — список, порядок елементів списку змінюється на зворотний.", + "joinDescription": "Об’єднує перший аргумент, використовуючи другий аргумент як роздільник (за бажанням). Якщо другий аргумент не вказано, використовується ',' як роздільник.", + "splitDescription": "Розбиває перший аргумент, використовуючи другий аргумент як роздільник (за бажанням). Якщо другий аргумент не вказано, використовується пробіл (' ') як роздільник.", + "isEmptyDescription": "Повертає «істина», якщо аргумент порожній, інакше повертає «хиба»", + "stripDescription": "Видаляє всі пробіли на початку та в кінці аргументу", + "sumDescription": "Підсумовує числа всередині аргументу.", + "avgDescription": "Обчислює середнє значення чисел всередині аргументу.", + "atDescription": "Повертає елемент із першого аргументу за індексом, вказаним другим аргументом.", + "toArrayDescription": "Перетворює рядок, розділений комами, на масив." }, "formulaInputContext": { "useRegularInput": "Використовувати звичайний ввід", diff --git a/web-frontend/modules/automation/locales/es.json b/web-frontend/modules/automation/locales/es.json index 0967ef424b..6d228abbfd 100644 --- a/web-frontend/modules/automation/locales/es.json +++ b/web-frontend/modules/automation/locales/es.json @@ -1 +1,205 @@ -{} +{ + "automationWorkflow": { + "title": "Flujo de trabajo" + }, + "automationWelcomeGuidedTourStep": { + "title": "¡Bienvenido a las Automatizaciones de Baserow!", + "content": "Vamos a hacer un recorrido rápido. Verás cómo configurar disparadores, añadir acciones, probar tu flujo de trabajo y publicarlo — no se requiere codificación." + }, + "automationGraphGuidedTourStep": { + "title": "Gestiona aquí tu gráfico de flujo de trabajo", + "content": "Crea un disparador y acciones aquí para definir lo que el flujo de trabajo debe hacer. Selecciona un disparador o acción para configurarlo en el panel lateral." + }, + "automationTestRunGuidedTourStep": { + "title": "Prueba tu flujo de trabajo", + "content": "Cuando estés listo, inicia una ejecución de prueba para ver tu flujo de trabajo en acción. El disparador se ejecutará una vez para simular una ejecución completa." + }, + "automationHistoryGuidedTourStep": { + "title": "Ver historial del flujo de trabajo", + "content": "Usa el panel de historial para revisar ejecuciones de prueba pasadas y ejecuciones publicadas. Es una excelente manera de depurar o confirmar los resultados." + }, + "automationPublishGuidedTourStep": { + "title": "Publica tu flujo de trabajo", + "content": "Una vez que hayas probado y ajustado tu configuración, publica tu flujo de trabajo para ponerlo en funcionamiento. Ahora, el disparador se ejecutará automáticamente según el horario." + }, + "automationWorkflowStateGuidedTourStep": { + "title": "Controlar el estado del flujo de trabajo", + "content": "Desde aquí, puedes pausar o reanudar tu flujo de trabajo en cualquier momento. Siempre tienes el control sobre si está activo o deshabilitado." + }, + "automationDocsGuidedTourStep": { + "title": "Explora la documentación", + "content": "Si alguna vez te quedas atascado o quieres aprender más, haz clic en el botón resaltado para obtener guías detalladas y respuestas a preguntas frecuentes sobre cómo crear automatizaciones en Baserow." + }, + "sidebarComponentAutomation": { + "createAutomationWorkflow": "Nuevo flujo de trabajo" + }, + "createAutomationWorkflowModal": { + "header": "Crear flujo de trabajo", + "submit": "Añadir flujo de trabajo" + }, + "automationWorkflowForm": { + "defaultName": "Flujo de trabajo", + "nameTitle": "Nombre", + "nameSubtitle": "Nombre único del flujo de trabajo", + "namePlaceholder": "Escribe un nombre…" + }, + "duplicateAutomationWorkflowJobType": { + "name": "Duplicar el flujo de trabajo de automatización", + "duplicating": "Duplicando", + "duplicatedTitle": "Flujo de trabajo duplicado" + }, + "automationWorkflowErrors": { + "errorNameNotUnique": "Ya existe un flujo de trabajo con este nombre", + "errorNameNotUniqueDescription": "Por favor, introduce un nombre único para el flujo de trabajo" + }, + "trashType": { + "workflow": "flujo de trabajo", + "automation": "automatización" + }, + "generalSettings": { + "titleOverview": "General", + "nameLabel": "Nombre de la automatización", + "notificationLabel": "Notificaciones", + "notificationCheckboxLabel": "Recibe una notificación cuando esta automatización falle", + "cantUpdateAutomationTitle": "No se pudo actualizar la automatización", + "cantUpdateAutomationDescription": "Lo siento, no se pudo actualizar la automatización." + }, + "integrationSettings": { + "title": "Integraciones", + "noIntegrationMessage": "Aún no has creado ninguna integración. Se pueden crear añadiendo una fuente de datos, una acción o una autenticación de usuario.", + "integrationMessage": "Puedes crear nuevas integraciones añadiendo una fuente de datos, una acción o una autenticación de usuario." + }, + "automationHeader": { + "startTestRun": "Iniciar ejecución de prueba", + "stopTestRun": "Detener ejecución de prueba", + "publishBtn": "Publicar", + "settingsBtn": "Configuración", + "historyBtn": "Historial", + "docsBtn": "Documentación", + "switchLabelDraft": "Borrador", + "switchLabelDisabled": "Deshabilitado", + "switchLabelPaused": "Pausado", + "switchLabelLive": "En vivo", + "lastPublished": "Última publicación" + }, + "dataProviderType": { + "currentIteration": "Iteración actual", + "item": "Ítem", + "previousNode": "Nodo anterior" + }, + "nodeSidePanel": { + "labelTitle": "Etiqueta" + }, + "historySidePanel": { + "title": "Historial", + "noRunsTitle": "Aún no hay ejecuciones", + "noRunsDescription": "Cuando este flujo de trabajo se haya ejecutado, los resultados se mostrarán aquí.", + "statusSuccess": "Ejecutado con éxito", + "statusError": "Fallo al ejecutar", + "statusDisabled": "Deshabilitado por Baserow", + "completedInSeconds": "Completado en {s} segundos.", + "completedInLessThanSecond": "Completado en menos de 1 segundo.", + "testRun": "Prueba" + }, + "nodeType": { + "triggerDeletionError": "Los disparadores no pueden eliminarse, solo reemplazarse.", + "localBaserowRowsCreatedLabel": "Filas creadas en {tableName}", + "localBaserowRowsUpdatedLabel": "Filas actualizadas en {tableName}", + "localBaserowRowsDeletedLabel": "Filas eliminadas en {tableName}", + "localBaserowCreateRowLabel": "Crear una fila en {tableName}", + "localBaserowUpdateRowLabel": "Actualizar una fila en {tableName}", + "localBaserowDeleteRowLabel": "Eliminar una fila en {tableName}", + "localBaserowGetRowLabel": "Leer una fila en {tableName}", + "localBaserowListRowsLabel": "Listar filas en {tableName}", + "localBaserowAggregateRowsLabel": "Resumir filas en {tableName}", + "httpRequestLabel": "Enviar una solicitud HTTP", + "smtpEmailLabel": "Enviar un correo electrónico", + "iterationLabel": "Itera sobre los elementos", + "routerLabel": "Sigue 1 de {edgeCount} ramas", + "routerDefaultEdgeLabelFallback": "Predeterminado", + "routerWithOutputNodesDeleteError": "No se puede eliminar hasta que se eliminen sus {outputCount} nodos de salida.", + "routerWithOutputNodesReplaceError": "No se puede reemplazar hasta que se eliminen sus {outputCount} nodos de salida.", + "iteratorWithChildrenNodesDeleteError": "No se puede eliminar hasta que se eliminen sus nodos hijos.", + "iteratorWithChildrenNodesReplaceError": "No se puede reemplazar hasta que se eliminen sus nodos hijos.", + "slackWriteMessageLabel": "Envía un mensaje a #{channel}", + "slackWriteMessageName": "Enviar un mensaje de Slack", + "periodicTriggerLabel": "Disparador periódico", + "aiAgent": "Prompt de IA" + }, + "simulateDispatch": { + "testNodeDescription": "Prueba este evento para confirmar que la configuración es correcta. Los datos de esta prueba pueden usarse en pasos posteriores.", + "triggerNodeAwaitingEvent": "El nodo está esperando. Por favor, dispara manualmente el evento para rellenar la carga útil y completar la prueba.", + "errorNodeNotConfigured": "El nodo debe configurarse antes de que pueda probarse.", + "errorPreviousNodesNotTested": "El nodo anterior «{node}» debe probarse primero.", + "errorPreviousNodeNotConfigured": "El nodo anterior «{node}» debe configurarse.", + "simulationInProgress": "La prueba del nodo está en curso...", + "sampleDataCopied": "Carga útil copiada al portapapeles", + "buttonLabelTestAgain": "Probar evento nuevamente", + "sampleDataModalTitle": "Carga útil para {nodeLabel}", + "errorOccurred": "Ocurrió un error…", + "sampleDataLabel": "Salida", + "sampleDataCopy": "Copiar", + "buttonLabelTest": "Probar evento", + "buttonLabelShowPayload": "Mostrar carga útil", + "buttonLabelShowError": "Mostrar error", + "sampleDataModalSubTitle": "Carga útil JSON" + }, + "periodicTriggerServiceForm": { + "monthHelper": "Este flujo de trabajo se ejecutará cada mes en el día y hora especificados en tu zona horaria local ({timezone})", + "weekHelper": "Este flujo de trabajo se ejecutará cada semana en el día y hora especificados en tu zona horaria local ({timezone})", + "hourHelper": "Este flujo de trabajo se ejecutará cada hora en el minuto especificado en tu zona horaria local ({timezone})", + "dayHelper": "Este flujo de trabajo se ejecutará cada día a la hora especificada en tu zona horaria local ({timezone})", + "deactivatedText": "Este disparador periódico ha sido desactivado automáticamente debido a fallos consecutivos.", + "intervalHelper": "Elige con qué frecuencia quieres que este flujo de trabajo se ejecute", + "minuteHelper": "Este flujo de trabajo se ejecutará cada minuto", + "dayOfWeek": "Día de la semana", + "dayOfMonth": "Día del mes", + "deactivatedTitle": "Disparador periódico desactivado", + "everyMinute": "Cada minuto", + "everyHour": "Cada hora", + "everyDay": "Cada día", + "everyWeek": "Cada semana", + "hourPlaceholder": "0-23", + "minutePlaceholder": "0-59", + "dayOfMonthPlaceholder": "1-31", + "intervalLabel": "Intervalo", + "hour": "Hora", + "minute": "Minuto", + "everyMonth": "Cada mes" + }, + "serviceType": { + "periodicTriggerDescription": "Dispara el flujo de trabajo de forma periódica en intervalos especificados", + "coreHTTPTriggerDescription": "Recibe solicitudes HTTP para disparar flujos de trabajo", + "errorIntervalMissing": "Se requiere un intervalo.", + "periodicTrigger": "Disparador periódico", + "periodicTriggerTriggeredAt": "Disparado a las", + "coreHTTPTrigger": "Disparador HTTP" + }, + "workflowNode": { + "displayLabelDebug": "ID: {id} | ID Previo: {previousNodeId} | {outputUid}", + "beforeLabelConditionDefault": "Si no se cumple(n) ninguna condición", + "beforeLabelCondition": "Si se cumple la condición", + "beforeLabelRepeat": "Para cada ítem", + "beforeLabelTrigger": "Comienza cuando", + "nodeOptions": "Opciones de nodo", + "actionDelete": "Eliminar", + "actionReplace": "Reemplazar", + "actionDuplicate": "Duplicar", + "actionConfigure": "Configurar", + "beforeLabelAction": "Luego", + "moreEdit": "Editar", + "moreReplace": "Reemplazar", + "moreDuplicate": "Duplicar" + }, + "workflowNodeContext": { + "searchPlaceholderTrigger": "Buscar un disparador…", + "searchPlaceholderActions": "Buscar acciones…", + "noResults": "No se encontraron resultados" + }, + "workflowAddNode": { + "displayTitle": "Crear nodo de automatización" + }, + "workflowEditor": { + "chooseEvent": "Elige un evento…" + } +} diff --git a/web-frontend/modules/automation/locales/fr.json b/web-frontend/modules/automation/locales/fr.json index 0967ef424b..e3452aede6 100644 --- a/web-frontend/modules/automation/locales/fr.json +++ b/web-frontend/modules/automation/locales/fr.json @@ -1 +1,205 @@ -{} +{ + "automationWorkflow": { + "title": "Scénario" + }, + "automationWelcomeGuidedTourStep": { + "title": "Bienvenue sur les Automatisations de Baserow !", + "content": "Faisons une découverte rapide. Vous allez voir comment configurer des déclencheurs, ajouter des actions, tester votre scénario et le publier, sans avoir besoin de coder." + }, + "automationGraphGuidedTourStep": { + "title": "Gérez votre scénario dans cette zone", + "content": "Créez ici un déclencheur et des actions pour définir ce que le scénario doit faire. Sélectionnez un déclencheur ou une action pour la configurer dans le panneau latéral." + }, + "automationTestRunGuidedTourStep": { + "title": "Testez votre scénario", + "content": "Quand vous êtes prêt, déclenchez un test pour voir votre scénario en action. Le déclencheur va fonctionner une seule fois pour simuler une exécution complète." + }, + "automationHistoryGuidedTourStep": { + "title": "Voir l'historique du scénario", + "content": "Utilisez le volet d'historique pour examiner les tests passés et les exécutions publiées. C'est une bonne façon de déboguer ou de confirmer le bon fonctionnement." + }, + "automationPublishGuidedTourStep": { + "title": "Publiez votre scénario", + "content": "Une fois que vous avez testé et affiné votre configuration, publiez votre scénario pour le rendre actif. Son déclencheur va maintenant se déclencher dès que les conditions le pemettrons." + }, + "automationWorkflowStateGuidedTourStep": { + "title": "État du scénario", + "content": "Avec ce bouton, vous pouvez choisir de mettre en pause ou redémarrer votre scénario à tout moment." + }, + "automationDocsGuidedTourStep": { + "title": "Explorer la documentation", + "content": "Si vous vous voulez en savoir plus, cliquez sur ce bouton pour consulter les guides détaillés et les FAQs sur les Automatisations dans Baserow." + }, + "sidebarComponentAutomation": { + "createAutomationWorkflow": "Nouveau scénario" + }, + "createAutomationWorkflowModal": { + "header": "Créer un scénario", + "submit": "Ajouter un scénario" + }, + "automationWorkflowForm": { + "defaultName": "Scénario", + "nameTitle": "Nom", + "nameSubtitle": "Nom unique du scénario", + "namePlaceholder": "Saisir un nom..." + }, + "duplicateAutomationWorkflowJobType": { + "name": "Dupliquer le scénario", + "duplicating": "Duplication en cours", + "duplicatedTitle": "Scénario dupliqué" + }, + "automationWorkflowErrors": { + "errorNameNotUnique": "Un scénario avec ce nom existe déjà", + "errorNameNotUniqueDescription": "Veuillez saisir un nom unique pour le scénario" + }, + "trashType": { + "workflow": "scénario", + "automation": "automatisation" + }, + "generalSettings": { + "titleOverview": "Général", + "nameLabel": "Nom de l'automatisation", + "notificationLabel": "Notifications", + "notificationCheckboxLabel": "Être notifié quand ces automatisations échouent", + "cantUpdateAutomationTitle": "Impossible de mettre à jour l'automatisation", + "cantUpdateAutomationDescription": "Désolé, la mise à jour de l'automatisation a échouée." + }, + "integrationSettings": { + "title": "Intégrations", + "noIntegrationMessage": "Vous n'avez pas encore créé d'intégrations. Elles peuvent être créés lors de l'ajout d'une source de données, d'une action ou d'une authentification utilisateur.", + "integrationMessage": "Vous pouvez créer de nouvelles intégrations en ajoutant une source de données, une action ou une authentification utilisateur." + }, + "automationHeader": { + "startTestRun": "Lancer un test", + "stopTestRun": "Annuler le test", + "publishBtn": "Publier", + "settingsBtn": "Paramètres", + "historyBtn": "Historique", + "docsBtn": "Docs", + "switchLabelDraft": "Brouillon", + "switchLabelDisabled": "Désactivé", + "switchLabelPaused": "En pause", + "switchLabelLive": "Actif", + "lastPublished": "Dernière publication" + }, + "dataProviderType": { + "currentIteration": "Itération actuelle", + "item": "Ligne", + "previousNode": "Noeud précédent" + }, + "nodeSidePanel": { + "labelTitle": "Libéllé" + }, + "historySidePanel": { + "title": "Historique", + "noRunsTitle": "Aucune exécution", + "noRunsDescription": "Lorsque ce scénario s'exécutera, les résultats seront affichés ici.", + "statusSuccess": "Terminé avec succès", + "statusError": "Échec de l’exécution", + "statusDisabled": "Désactivé par Baserow", + "completedInSeconds": "Complété en {s} secondes.", + "completedInLessThanSecond": "Complété en moins d'une seconde.", + "testRun": "Essai" + }, + "nodeType": { + "triggerDeletionError": "Les déclencheurs ne peuvent être supprimés, seulement remplacés.", + "localBaserowRowsCreatedLabel": "Des lignes sont créées dans {tableName}", + "localBaserowRowsUpdatedLabel": "Des lignes sont mises à jour dans {tableName}", + "localBaserowRowsDeletedLabel": "Des lignes sont supprimées dans {tableName}", + "localBaserowCreateRowLabel": "Créer une ligne dans {tableName}", + "localBaserowUpdateRowLabel": "Modifier une ligne dans {tableName}", + "localBaserowDeleteRowLabel": "Supprimer une ligne dans {tableName}", + "localBaserowGetRowLabel": "Lire une ligne dans {tableName}", + "localBaserowListRowsLabel": "Lister les lignes de {tableName}", + "localBaserowAggregateRowsLabel": "Résumer les lignes dans {tableName}", + "httpRequestLabel": "Envoyer une requête HTTP", + "smtpEmailLabel": "Envoyer un courriel", + "routerLabel": "Suivre 1 des {edgeCount} branches", + "iterationLabel": "Itérer sur les lignes", + "routerDefaultEdgeLabelFallback": "Par défaut", + "routerWithOutputNodesDeleteError": "Ne peut être supprimé que si ses {outputCount} nœuds de sortie sont supprimés.", + "routerWithOutputNodesReplaceError": "Ne peut être remplacé quequand ses {outputCount} nœuds de sortie sont supprimés.", + "iteratorWithChildrenNodesDeleteError": "Ne peut être supprimé qui si ses noeuds enfants sont supprimés.", + "iteratorWithChildrenNodesReplaceError": "Ne peut être remplacé que si ses nœuds enfants sont supprimés.", + "periodicTriggerLabel": "Déclencheur périodique", + "aiAgent": "Prompt IA", + "slackWriteMessageName": "Envoyer un message Slack", + "slackWriteMessageLabel": "Envoyer un message à #{channel}" + }, + "workflowNode": { + "actionDelete": "Supprimer", + "actionReplace": "Remplacer", + "actionDuplicate": "Dupliquer", + "actionConfigure": "Configurer", + "beforeLabelTrigger": "S’exécute quand", + "beforeLabelAction": "Ensuite", + "beforeLabelCondition": "Si la condition est satisfaite", + "beforeLabelConditionDefault": "Si aucune condition n'est satisfaite", + "beforeLabelRepeat": "Pour chaque ligne", + "moreEdit": "Modifier", + "moreReplace": "Remplacer", + "nodeOptions": "Options du nœud", + "displayLabelDebug": "ID: {id} | Prev: {previousNodeId} | {outputUid}", + "moreDuplicate": "Dupliquer" + }, + "workflowAddNode": { + "displayTitle": "Créer un nœud de scénario" + }, + "workflowNodeContext": { + "searchPlaceholderTrigger": "Cherchez un déclencheur...", + "searchPlaceholderActions": "Rechercher une action...", + "noResults": "Aucun résultat" + }, + "serviceType": { + "periodicTrigger": "Déclencheur périodique", + "periodicTriggerDescription": "Déclenche le scénario à des intervalles déterminés", + "periodicTriggerTriggeredAt": "Déclenché à", + "errorIntervalMissing": "Un intervalle est requis.", + "coreHTTPTrigger": "Déclencheur HTTP", + "coreHTTPTriggerDescription": "Déclenche un scénario quand une requête HTTP est reçue" + }, + "periodicTriggerServiceForm": { + "intervalLabel": "Intervale", + "intervalHelper": "Choisissez la fréquence d'exécution du scénario", + "everyMinute": "Toutes les minutes", + "everyHour": "Toutes les heures", + "everyDay": "Tous les jours", + "everyWeek": "Toutes les semaines", + "everyMonth": "Tous les mois", + "hour": "Heure", + "minute": "Minute", + "dayOfWeek": "Jour de la semaine", + "dayOfMonth": "Jour du mois", + "hourPlaceholder": "0-23", + "minutePlaceholder": "0-59", + "dayOfMonthPlaceholder": "1-31", + "minuteHelper": "Ce scénario s'exécutera toutes les minutes", + "hourHelper": "Ce scénario s’exécutera toutes les heures à la minute spécifiée dans votre fuseau horaire local ({timezone})", + "dayHelper": "Ce scénario s’exécutera tous les jours à l'heure spécifiée dans votre fuseau horaire local ({timezone})", + "weekHelper": "Ce scénario s’exécutera toutes les semaines au jour et à l'heure spécifiée dans votre fuseau horaire local ({timezone})", + "monthHelper": "Ce scénario s’exécutera tous les mois au jour et à l'heure spécifiée dans votre fuseau horaire local ({timezone})", + "deactivatedTitle": "Déclencheur périodique désactivé", + "deactivatedText": "Ce déclencheur périodique a été automatiquement désactivé en raison de défaillances consécutives." + }, + "workflowEditor": { + "chooseEvent": "Choisissez un déclencheur..." + }, + "simulateDispatch": { + "sampleDataLabel": "Résultat", + "triggerNodeAwaitingEvent": "Le nœud attend. Veuillez déclencher manuellement l'événement pour terminer le test.", + "simulationInProgress": "Test du nœud en cours...", + "errorNodeNotConfigured": "Le nœud doit être configuré avant qu'il puisse être testé.", + "errorPreviousNodeNotConfigured": "Le nœud précédent « {node} » doit être configuré.", + "errorPreviousNodesNotTested": "Le nœud précédent « {node} » doit être testé préallablement.", + "buttonLabelTest": "Tester le déclencheur", + "buttonLabelTestAgain": "Tester à nouveau", + "testNodeDescription": "Tester ce déclencheur pour confirmer que la configuration est correcte. Les données de ce test peuvent être utilisées par les nœuds suivants.", + "buttonLabelShowPayload": "Voir le résultat", + "buttonLabelShowError": "Voir l'erreur", + "sampleDataModalTitle": "Résultat de {nodeLabel}", + "sampleDataModalSubTitle": "Résultat JSON", + "sampleDataCopy": "Copier", + "errorOccurred": "Une erreur s'est produite...", + "sampleDataCopied": "Résultat copié" + } +} diff --git a/web-frontend/modules/automation/locales/ko.json b/web-frontend/modules/automation/locales/ko.json index 0967ef424b..f50de2ca83 100644 --- a/web-frontend/modules/automation/locales/ko.json +++ b/web-frontend/modules/automation/locales/ko.json @@ -1 +1,202 @@ -{} +{ + "automationWelcomeGuidedTourStep": { + "content": "간단한 둘러보기를 해볼까요? 코딩 없이 트리거 설정, 액션 추가, 워크플로 테스트 및 게시 방법을 확인할 수 있습니다.", + "title": "Baserow 자동화에 오신 것을 환영합니다!" + }, + "automationGraphGuidedTourStep": { + "title": "여기에서 워크플로 그래프를 관리하세요", + "content": "여기에서 트리거와 액션을 생성하여 워크플로가 수행할 작업을 정의하세요. 트리거 또는 액션을 선택하여 사이드 패널에서 구성할 수 있습니다." + }, + "automationTestRunGuidedTourStep": { + "title": "워크플로를 테스트하세요", + "content": "준비가 되면 테스트 실행을 시작하여 워크플로가 어떻게 작동하는지 확인하세요. 트리거는 전체 실행을 시뮬레이션하기 위해 한 번 실행됩니다." + }, + "automationHistoryGuidedTourStep": { + "title": "워크플로 기록 보기", + "content": "기록 패널을 사용하여 과거 테스트 실행 및 게시된 실행 결과를 검토할 수 있습니다. 디버깅이나 결과 확인에 매우 유용합니다." + }, + "automationPublishGuidedTourStep": { + "title": "워크플로를 게시하세요", + "content": "설정을 테스트하고 개선한 후에는 워크플로를 게시하여 실제 서비스에 적용하세요. 이제 워크플로의 트리거가 예약된 시간에 자동으로 실행됩니다." + }, + "automationWorkflowStateGuidedTourStep": { + "title": "워크플로 제어 상태", + "content": "여기에서 언제든지 워크플로를 일시 중지하거나 다시 시작할 수 있습니다. 워크플로 활성화 또는 비활성화 여부는 항상 사용자가 제어할 수 있습니다." + }, + "automationDocsGuidedTourStep": { + "title": "문서를 살펴보세요", + "content": "Baserow에서 자동화 구축에 어려움을 겪거나 더 자세한 정보를 원하시면 강조 표시된 버튼을 클릭하여 자세한 가이드와 FAQ를 확인하세요." + }, + "sidebarComponentAutomation": { + "createAutomationWorkflow": "새로운 워크플로" + }, + "createAutomationWorkflowModal": { + "header": "워크플로 생성", + "submit": "워크플로 추가" + }, + "automationWorkflowForm": { + "defaultName": "워크플로", + "nameTitle": "이름", + "nameSubtitle": "워크플로의 고유 이름", + "namePlaceholder": "이름을 입력하세요..." + }, + "duplicateAutomationWorkflowJobType": { + "name": "자동화 워크플로 중복", + "duplicating": "복제", + "duplicatedTitle": "워크플로가 복제되었습니다" + }, + "automationWorkflowErrors": { + "errorNameNotUnique": "이미 동일한 이름의 워크플로가 존재합니다", + "errorNameNotUniqueDescription": "워크플로에 고유한 이름을 입력해 주세요" + }, + "trashType": { + "workflow": "워크플로", + "automation": "자동화" + }, + "generalSettings": { + "titleOverview": "일반", + "nameLabel": "자동화 이름", + "notificationLabel": "알림", + "notificationCheckboxLabel": "이 자동화가 실패하면 알림을 받으세요", + "cantUpdateAutomationTitle": "자동화를 업데이트할 수 없습니다", + "cantUpdateAutomationDescription": "죄송합니다. 자동화 시스템을 업데이트할 수 없었습니다." + }, + "integrationSettings": { + "title": "통합", + "noIntegrationMessage": "아직 통합을 생성하지 않았습니다. 데이터 소스, 작업 또는 사용자 인증을 추가하여 통합을 생성할 수 있습니다.", + "integrationMessage": "데이터 소스, 작업 또는 사용자 인증을 추가하여 새로운 통합을 생성할 수 있습니다." + }, + "automationHeader": { + "startTestRun": "테스트 실행 시작", + "stopTestRun": "테스트 실행 중지", + "publishBtn": "게시", + "settingsBtn": "설정", + "historyBtn": "기록", + "docsBtn": "문서", + "switchLabelDraft": "초안", + "switchLabelDisabled": "비활성화", + "switchLabelPaused": "일시 중지됨", + "switchLabelLive": "라이브", + "lastPublished": "마지막 게시됨" + }, + "dataProviderType": { + "currentIteration": "현재 버전", + "item": "아이템", + "previousNode": "이전 노드" + }, + "nodeSidePanel": { + "labelTitle": "라벨" + }, + "historySidePanel": { + "title": "기록", + "noRunsTitle": "아직 실행 안됨", + "noRunsDescription": "이 워크플로가 실행되면 결과가 여기에 표시됩니다.", + "statusSuccess": "성공적으로 실행되었습니다", + "statusError": "실행에 실패했습니다", + "statusDisabled": "Baserow에 의해 비활성화됨", + "completedInSeconds": "{s}초 만에 완료되었습니다.", + "completedInLessThanSecond": "1초도 안 걸려 완료되었습니다.", + "testRun": "테스트" + }, + "nodeType": { + "triggerDeletionError": "트리거는 삭제할 수 없고, 교체만 가능합니다.", + "localBaserowRowsCreatedLabel": "{tableName}에 행이 생성됩니다", + "localBaserowRowsUpdatedLabel": "{tableName} 테이블의 행이 업데이트되었습니다", + "localBaserowRowsDeletedLabel": "{tableName} 테이블에서 행이 삭제되었습니다", + "localBaserowCreateRowLabel": "{tableName} 테이블에 행을 생성합니다", + "localBaserowUpdateRowLabel": "{tableName} 테이블의 행을 업데이트합니다", + "localBaserowDeleteRowLabel": "{tableName} 테이블에서 행을 삭제합니다", + "localBaserowGetRowLabel": "{tableName} 테이블에서 행을 읽습니다", + "localBaserowListRowsLabel": "{tableName} 테이블의 행 목록", + "localBaserowAggregateRowsLabel": "{tableName} 테이블의 행 요약", + "httpRequestLabel": "HTTP 요청을 보냅니다", + "smtpEmailLabel": "이메일 보내기", + "routerLabel": "{edgeCount}개의 분기 중 1개를 따라가세요", + "iterationLabel": "항목들을 순회합니다", + "routerDefaultEdgeLabelFallback": "기본", + "routerWithOutputNodesDeleteError": "출력 노드가 {outputCount}개 제거될 때까지 삭제할 수 없습니다.", + "routerWithOutputNodesReplaceError": "출력 노드가 {outputCount}개 제거될 때까지 교체할 수 없습니다.", + "iteratorWithChildrenNodesDeleteError": "자식 노드가 제거될 때까지는 삭제할 수 없습니다.", + "iteratorWithChildrenNodesReplaceError": "하위 노드가 제거될 때까지 교체할 수 없습니다.", + "periodicTriggerLabel": "주기적 트리거", + "aiAgent": "AI 프롬프트", + "slackWriteMessageName": "슬랙 메시지를 보내세요", + "slackWriteMessageLabel": "#{channel}에 메시지를 보내세요" + }, + "workflowNode": { + "actionDelete": "삭제", + "actionReplace": "교체", + "actionDuplicate": "복제", + "actionConfigure": "구성", + "beforeLabelTrigger": "언제 시작하는지", + "beforeLabelAction": "그 다음에", + "beforeLabelCondition": "조건이 충족되면", + "beforeLabelConditionDefault": "조건이 충족되지 않으면", + "beforeLabelRepeat": "각 항목에 대해", + "moreEdit": "편집", + "moreReplace": "교체", + "nodeOptions": "노드 옵션", + "displayLabelDebug": "ID: {id} | 이전: {previousNodeId} | {outputUid}", + "moreDuplicate": "복제" + }, + "workflowAddNode": { + "displayTitle": "자동화 노드 생성" + }, + "workflowNodeContext": { + "searchPlaceholderTrigger": "트리거를 검색하세요...", + "searchPlaceholderActions": "검색 결과를 확인하세요...", + "noResults": "검색 결과가 없습니다" + }, + "serviceType": { + "periodicTrigger": "주기적 트리거", + "periodicTriggerDescription": "지정된 간격으로 주기적으로 워크플로우를 실행합니다", + "periodicTriggerTriggeredAt": "트리거됨", + "errorIntervalMissing": "간격이 필요합니다.", + "coreHTTPTrigger": "HTTP 트리거", + "coreHTTPTriggerDescription": "워크플로를 트리거하기 위해 HTTP 요청을 수신합니다" + }, + "periodicTriggerServiceForm": { + "intervalLabel": "간격", + "intervalHelper": "이 워크플로를 실행할 빈도를 선택하세요", + "everyMinute": "매분", + "everyHour": "매 시간", + "everyDay": "매 일", + "everyWeek": "매 주", + "everyMonth": "매 월", + "hour": "시간", + "minute": "분", + "dayOfWeek": "주간 지정일", + "dayOfMonth": "월간 지정일", + "hourPlaceholder": "0-23", + "minutePlaceholder": "0-59", + "dayOfMonthPlaceholder": "1-31", + "minuteHelper": "이 워크플로는 매분 실행됩니다", + "hourHelper": "이 워크플로는 사용자의 현지 시간대({timezone}) 기준으로 지정된 분에 매시간 실행됩니다", + "dayHelper": "이 워크플로는 지정된 현지 시간대({timezone})에 매일 실행됩니다", + "weekHelper": "이 워크플로는 사용자의 현지 시간대({timezone})에 지정된 요일과 시간에 매주 실행됩니다", + "monthHelper": "이 워크플로는 지정된 날짜와 시간에 사용자의 현지 시간대({timezone})로 매달 실행됩니다", + "deactivatedTitle": "주기적 트리거 비활성화됨", + "deactivatedText": "연속적인 오류 발생으로 인해 이 주기적 트리거가 자동으로 비활성화되었습니다." + }, + "workflowEditor": { + "chooseEvent": "이벤트를 선택하세요..." + }, + "simulateDispatch": { + "sampleDataLabel": "출력", + "triggerNodeAwaitingEvent": "노드가 대기 중입니다. 페이로드를 채우고 테스트를 완료하려면 이벤트를 수동으로 트리거하십시오.", + "simulationInProgress": "노드 테스트가 진행 중입니다...", + "errorNodeNotConfigured": "노드를 테스트하기 전에 먼저 구성해야 합니다.", + "errorPreviousNodeNotConfigured": "이전 노드 \"{node}\"를 구성해야 합니다.", + "errorPreviousNodesNotTested": "이전 노드 \"{node}\"를 먼저 테스트해야 합니다.", + "buttonLabelTest": "테스트 이벤트", + "buttonLabelTestAgain": "테스트 이벤트 다시 진행", + "testNodeDescription": "이 이벤트를 테스트하여 구성이 올바른지 확인하십시오. 이 테스트에서 얻은 데이터는 이후 단계에서 사용할 수 있습니다.", + "buttonLabelShowPayload": "페이로드 표시", + "buttonLabelShowError": "오류 표시", + "sampleDataModalTitle": "{nodeLabel}에 대한 페이로드", + "sampleDataModalSubTitle": "JSON 페이로드", + "sampleDataCopy": "복사", + "errorOccurred": "오류가 발생했습니다...", + "sampleDataCopied": "페이로드가 클립보드에 복사되었습니다" + } +} diff --git a/web-frontend/modules/automation/locales/nl.json b/web-frontend/modules/automation/locales/nl.json index 0967ef424b..4be4daab4c 100644 --- a/web-frontend/modules/automation/locales/nl.json +++ b/web-frontend/modules/automation/locales/nl.json @@ -1 +1,205 @@ -{} +{ + "automationWorkflow": { + "title": "Workflow" + }, + "automationWelcomeGuidedTourStep": { + "title": "Welkom bij Baserow Automatiseringen!", + "content": "Laten we een korte rondleiding doen. Je ziet hoe je activeringen instelt, acties toevoegt, je workflow test en publiceert — zonder code." + }, + "automationGraphGuidedTourStep": { + "title": "Beheer je workflow-grafiek hier", + "content": "Maak hier een activering en acties om te bepalen wat de workflow moet doen. Selecteer een activering of actie om die in het zijpaneel te configureren." + }, + "automationTestRunGuidedTourStep": { + "title": "Test je workflow", + "content": "Als je er klaar voor bent, start je een testrun om je workflow in actie te zien. De activering draait één keer om een volledige uitvoering te simuleren." + }, + "automationHistoryGuidedTourStep": { + "title": "Bekijk workflowgeschiedenis", + "content": "Gebruik het geschiedenispaneel om eerdere testruns en gepubliceerde uitvoeringen te bekijken. Handig om te debuggen of resultaten te bevestigen." + }, + "automationPublishGuidedTourStep": { + "title": "Publiceer je workflow", + "content": "Als je je setup hebt getest en verfijnd, publiceer je workflow om hem live te zetten. De activering draait daarna automatisch volgens het schema." + }, + "automationWorkflowStateGuidedTourStep": { + "title": "Beheer de workflowstatus", + "content": "Vanaf hier kun je je workflow op elk moment pauzeren of hervatten. Jij bepaalt altijd of hij actief is of uit staat." + }, + "automationDocsGuidedTourStep": { + "title": "Bekijk de documentatie", + "content": "Loop je vast of wil je meer leren? Klik op de gemarkeerde knop voor uitgebreide handleidingen en veelgestelde vragen over het bouwen van automatiseringen in Baserow." + }, + "sidebarComponentAutomation": { + "createAutomationWorkflow": "Nieuwe workflow" + }, + "createAutomationWorkflowModal": { + "header": "Workflow maken", + "submit": "Workflow toevoegen" + }, + "automationWorkflowForm": { + "defaultName": "Workflow", + "nameTitle": "Naam", + "nameSubtitle": "Unieke naam van de workflow", + "namePlaceholder": "Voer een naam in..." + }, + "duplicateAutomationWorkflowJobType": { + "name": "Workflow dupliceren", + "duplicating": "Bezig met dupliceren", + "duplicatedTitle": "Workflow gedupliceerd" + }, + "automationWorkflowErrors": { + "errorNameNotUnique": "Er bestaat al een workflow met deze naam", + "errorNameNotUniqueDescription": "Voer een unieke naam voor de workflow in" + }, + "trashType": { + "workflow": "workflow", + "automation": "automatisering" + }, + "generalSettings": { + "titleOverview": "Algemeen", + "nameLabel": "Naam van automatisering", + "notificationLabel": "Meldingen", + "notificationCheckboxLabel": "Krijg een melding als deze automatisering faalt", + "cantUpdateAutomationTitle": "Automatisering kon niet worden bijgewerkt", + "cantUpdateAutomationDescription": "Sorry, de automatisering kon niet worden bijgewerkt." + }, + "integrationSettings": { + "title": "Integraties", + "noIntegrationMessage": "Je hebt nog geen integraties gemaakt. Je kunt ze maken door een databron, actie of gebruikersauthenticatie toe te voegen.", + "integrationMessage": "Je kunt nieuwe integraties maken door een databron, actie of gebruikersauthenticatie toe te voegen." + }, + "automationHeader": { + "startTestRun": "Testrun starten", + "stopTestRun": "Testrun stoppen", + "publishBtn": "Publiceren", + "settingsBtn": "Instellingen", + "historyBtn": "Geschiedenis", + "docsBtn": "Documentatie", + "switchLabelDraft": "Concept", + "switchLabelDisabled": "Uitgeschakeld", + "switchLabelPaused": "Gepauzeerd", + "switchLabelLive": "Live", + "lastPublished": "Laatst gepubliceerd" + }, + "dataProviderType": { + "currentIteration": "Huidige iteratie", + "item": "Item", + "previousNode": "Vorige node" + }, + "nodeSidePanel": { + "labelTitle": "Label" + }, + "historySidePanel": { + "title": "Geschiedenis", + "noRunsTitle": "Nog geen runs", + "noRunsDescription": "Als deze workflow heeft gedraaid, zie je de resultaten hier.", + "statusSuccess": "Succesvol uitgevoerd", + "statusError": "Uitvoering mislukt", + "statusDisabled": "Uitgeschakeld door Baserow", + "completedInSeconds": "Afgerond in {s} seconden.", + "completedInLessThanSecond": "Afgerond in minder dan 1 seconde.", + "testRun": "Test" + }, + "nodeType": { + "triggerDeletionError": "Activeringen kunnen niet worden verwijderd, alleen vervangen.", + "localBaserowRowsCreatedLabel": "Rijen zijn aangemaakt in {tableName}", + "localBaserowRowsUpdatedLabel": "Rijen zijn bijgewerkt in {tableName}", + "localBaserowRowsDeletedLabel": "Rijen zijn verwijderd in {tableName}", + "localBaserowCreateRowLabel": "Maak een rij aan in {tableName}", + "localBaserowUpdateRowLabel": "Werk een rij bij in {tableName}", + "localBaserowDeleteRowLabel": "Verwijder een rij in {tableName}", + "localBaserowGetRowLabel": "Lees een rij in {tableName}", + "localBaserowListRowsLabel": "Toon rijen in {tableName}", + "localBaserowAggregateRowsLabel": "Vat rijen samen in {tableName}", + "httpRequestLabel": "Stuur een HTTP-verzoek", + "smtpEmailLabel": "Stuur een e-mail", + "routerLabel": "Volg 1 van {edgeCount} takken", + "iterationLabel": "Doorloop items", + "routerDefaultEdgeLabelFallback": "Standaard", + "routerWithOutputNodesDeleteError": "Kan niet worden verwijderd totdat de {outputCount} output-nodes zijn verwijderd.", + "routerWithOutputNodesReplaceError": "Kan niet worden vervangen totdat de {outputCount} output-nodes zijn verwijderd.", + "iteratorWithChildrenNodesDeleteError": "Kan niet worden verwijderd totdat de child-nodes zijn verwijderd.", + "iteratorWithChildrenNodesReplaceError": "Kan niet worden vervangen totdat de child-nodes zijn verwijderd.", + "periodicTriggerLabel": "Periodieke activering", + "aiAgent": "AI-prompt", + "slackWriteMessageName": "Stuur een Slack-bericht", + "slackWriteMessageLabel": "Stuur een bericht naar #{channel}" + }, + "workflowNode": { + "actionDelete": "Verwijderen", + "actionReplace": "Vervangen", + "actionDuplicate": "Dupliceren", + "actionConfigure": "Configureren", + "beforeLabelTrigger": "Start wanneer", + "beforeLabelAction": "Dan", + "beforeLabelCondition": "Als aan de voorwaarde wordt voldaan", + "beforeLabelConditionDefault": "Als aan geen voorwaarde wordt voldaan", + "beforeLabelRepeat": "Voor elk item", + "moreEdit": "Bewerken", + "moreReplace": "Vervangen", + "nodeOptions": "Node-opties", + "displayLabelDebug": "ID: {id} | Vorige: {previousNodeId} | {outputUid}", + "moreDuplicate": "Dupliceren" + }, + "workflowAddNode": { + "displayTitle": "Automatiseringsnode maken" + }, + "workflowNodeContext": { + "searchPlaceholderTrigger": "Zoek een activering...", + "searchPlaceholderActions": "Zoek acties...", + "noResults": "Geen resultaten gevonden" + }, + "serviceType": { + "periodicTrigger": "Periodieke activering", + "periodicTriggerDescription": "Activeert de workflow periodiek op opgegeven intervallen", + "periodicTriggerTriggeredAt": "Geactiveerd om", + "errorIntervalMissing": "Er is een interval nodig.", + "coreHTTPTrigger": "HTTP-activering", + "coreHTTPTriggerDescription": "Ontvang HTTP-verzoeken om workflows te activeren" + }, + "periodicTriggerServiceForm": { + "intervalLabel": "Interval", + "intervalHelper": "Kies hoe vaak je deze workflow wilt laten draaien", + "everyMinute": "Elke minuut", + "everyHour": "Elk uur", + "everyDay": "Elke dag", + "everyWeek": "Elke week", + "everyMonth": "Elke maand", + "hour": "Uur", + "minute": "Minuut", + "dayOfWeek": "Dag van de week", + "dayOfMonth": "Dag van de maand", + "hourPlaceholder": "0-23", + "minutePlaceholder": "0-59", + "dayOfMonthPlaceholder": "1-31", + "minuteHelper": "Deze workflow draait elke minuut", + "hourHelper": "Deze workflow draait elk uur op de opgegeven minuut in je lokale tijdzone ({timezone})", + "dayHelper": "Deze workflow draait elke dag op de opgegeven tijd in je lokale tijdzone ({timezone})", + "weekHelper": "Deze workflow draait elke week op de opgegeven dag en tijd in je lokale tijdzone ({timezone})", + "monthHelper": "Deze workflow draait elke maand op de opgegeven dag en tijd in je lokale tijdzone ({timezone})", + "deactivatedTitle": "Periodieke activering gedeactiveerd", + "deactivatedText": "Deze periodieke activering is automatisch gedeactiveerd door opeenvolgende fouten." + }, + "workflowEditor": { + "chooseEvent": "Kies een event..." + }, + "simulateDispatch": { + "sampleDataLabel": "Output", + "triggerNodeAwaitingEvent": "De node wacht. Activeer het event handmatig om de payload te vullen en de test af te ronden.", + "simulationInProgress": "Node-test is bezig...", + "errorNodeNotConfigured": "De node moet worden geconfigureerd voordat je hem kunt testen.", + "errorPreviousNodeNotConfigured": "De vorige node \"{node}\" moet worden geconfigureerd.", + "errorPreviousNodesNotTested": "De vorige node \"{node}\" moet eerst worden getest.", + "buttonLabelTest": "Event testen", + "buttonLabelTestAgain": "Event opnieuw testen", + "testNodeDescription": "Test dit event om te bevestigen dat de configuratie klopt. Data uit deze test kun je in latere stappen gebruiken.", + "buttonLabelShowPayload": "Payload tonen", + "buttonLabelShowError": "Fout tonen", + "sampleDataModalTitle": "Payload voor {nodeLabel}", + "sampleDataModalSubTitle": "JSON-payload", + "sampleDataCopy": "Kopiëren", + "errorOccurred": "Er is een fout opgetreden...", + "sampleDataCopied": "Payload gekopieerd naar klembord" + } +} diff --git a/web-frontend/modules/automation/locales/uk.json b/web-frontend/modules/automation/locales/uk.json new file mode 100644 index 0000000000..da2a229beb --- /dev/null +++ b/web-frontend/modules/automation/locales/uk.json @@ -0,0 +1,205 @@ +{ + "automationWorkflow": { + "title": "Процес" + }, + "automationWelcomeGuidedTourStep": { + "title": "Ласкаво просимо до Baserow Автоматизацій!", + "content": "Давайте швидко ознайомимося. Ви побачите, як налаштувати тригери, додавати дії, тестувати ваш робочий процес і публікувати його — без необхідності програмування." + }, + "automationGraphGuidedTourStep": { + "content": "Створіть тут тригер та дії, щоб визначити, що має виконувати робочий процес. Виберіть тригер або дію, щоб налаштувати їх у бічній панелі.", + "title": "Керуйте графом вашого робочого процесу тут" + }, + "automationTestRunGuidedTourStep": { + "title": "Протестуйте робочий процес", + "content": "Коли будете готові, запустіть тест, щоб побачити робочий процес у дії. Тригер спрацює один раз, щоб змоделювати повне виконання." + }, + "automationHistoryGuidedTourStep": { + "title": "Переглянути історію робочого процесу", + "content": "Використовуйте панель історії, щоб переглянути минулі тестові запуски та опубліковані виконання. Це зручний спосіб налагодження або підтвердження результатів." + }, + "automationPublishGuidedTourStep": { + "title": "Опублікувати робочий процес", + "content": "Після того як ви протестували та вдосконалили налаштування, опублікуйте робочий процес, щоб він запрацював. Тригер тепер виконуватиметься автоматично за розкладом." + }, + "automationWorkflowStateGuidedTourStep": { + "title": "Керувати станом робочого процесу", + "content": "Тут ви можете призупинити або відновити робочий процес у будь-який момент. Ви завжди контролюєте, чи він активний, чи вимкнений." + }, + "automationDocsGuidedTourStep": { + "title": "Ознайомтеся з документацією", + "content": "Якщо ви коли-небудь застрягнете або захочете дізнатися більше, натисніть виділену кнопку для докладних посібників та розділу FAQ про створення автоматизацій у Baserow." + }, + "sidebarComponentAutomation": { + "createAutomationWorkflow": "Новий робочий процес" + }, + "createAutomationWorkflowModal": { + "header": "Створити робочий процес", + "submit": "Додати робочий процес" + }, + "automationWorkflowForm": { + "defaultName": "Робочий процес", + "nameTitle": "Ім'я", + "nameSubtitle": "Унікальна назва робочого процесу", + "namePlaceholder": "Введіть назву…" + }, + "duplicateAutomationWorkflowJobType": { + "name": "Дублювати робочий процес автоматизації", + "duplicating": "Дублювання", + "duplicatedTitle": "Робочий процес дубльовано" + }, + "automationWorkflowErrors": { + "errorNameNotUnique": "Робочий процес із такою назвою вже існує", + "errorNameNotUniqueDescription": "Будь ласка, введіть унікальну назву для робочого процесу" + }, + "trashType": { + "workflow": "робочий процес", + "automation": "автоматизація" + }, + "generalSettings": { + "titleOverview": "Загальні", + "nameLabel": "Назва автоматизації", + "notificationLabel": "Сповіщення", + "notificationCheckboxLabel": "Отримувати сповіщення, коли ця автоматизація не спрацьовує", + "cantUpdateAutomationTitle": "Не вдалося оновити автоматизацію", + "cantUpdateAutomationDescription": "Вибачте, не вдалося оновити автоматизацію." + }, + "integrationSettings": { + "title": "Інтеграції", + "noIntegrationMessage": "Ви ще не створили жодних інтеграцій. Їх можна створити, додавши джерело даних, дію або автентифікацію користувача.", + "integrationMessage": "Ви можете створювати нові інтеграції, додаючи джерело даних, дію або автентифікацію користувача." + }, + "automationHeader": { + "startTestRun": "Запустити тестовий запуск", + "stopTestRun": "Зупинити тестовий запуск", + "publishBtn": "Опублікувати", + "settingsBtn": "Налаштування", + "historyBtn": "Історія", + "docsBtn": "Документація", + "switchLabelDraft": "Чернетка", + "switchLabelDisabled": "Вимкнено", + "switchLabelPaused": "Призупинено", + "switchLabelLive": "У роботі", + "lastPublished": "Остання публікація" + }, + "dataProviderType": { + "currentIteration": "Поточна ітерація", + "item": "Об’єкт", + "previousNode": "Попередній елемент" + }, + "nodeSidePanel": { + "labelTitle": "Позначка" + }, + "historySidePanel": { + "title": "Історія", + "noRunsTitle": "Ще немає запусків", + "noRunsDescription": "Коли цей робочий процес буде виконано, результати відображатимуться тут.", + "statusSuccess": "Виконано успішно", + "statusError": "Не вдалося виконати", + "statusDisabled": "Вимкнено Baserow", + "completedInSeconds": "Виконано за {s} секунд.", + "completedInLessThanSecond": "Виконано менше ніж за 1 секунду.", + "testRun": "Тест" + }, + "nodeType": { + "triggerDeletionError": "Тригери не можна видаляти, лише замінювати.", + "localBaserowRowsCreatedLabel": "Рядки створюються в {tableName}", + "localBaserowRowsUpdatedLabel": "Рядки оновлюються в {tableName}", + "localBaserowRowsDeletedLabel": "Рядки видаляються в {tableName}", + "localBaserowCreateRowLabel": "Створити рядок у {tableName}", + "localBaserowUpdateRowLabel": "Оновити рядок у {tableName}", + "localBaserowDeleteRowLabel": "Видалити рядок у {tableName}", + "localBaserowGetRowLabel": "Прочитати рядок у {tableName}", + "localBaserowListRowsLabel": "Перелік рядків у {tableName}", + "localBaserowAggregateRowsLabel": "Підсумувати рядки в {tableName}", + "httpRequestLabel": "Надіслати HTTP-запит", + "smtpEmailLabel": "Надіслати електронного листа", + "routerLabel": "Слідувати 1 із {edgeCount} гілок", + "iterationLabel": "Обробляти елементи по черзі", + "routerDefaultEdgeLabelFallback": "За замовчуванням", + "routerWithOutputNodesDeleteError": "Не можна видалити, поки не будуть видалені {outputCount} вихідних вузлів.", + "routerWithOutputNodesReplaceError": "Не можна замінити, поки не будуть видалені {outputCount} вихідних вузлів.", + "iteratorWithChildrenNodesDeleteError": "Не можна видалити, поки не будуть видалені дочірні вузли.", + "iteratorWithChildrenNodesReplaceError": "Не можна замінити, поки не будуть видалені дочірні вузли.", + "periodicTriggerLabel": "Періодичний тригер", + "aiAgent": "Запит для ШІ", + "slackWriteMessageName": "Надіслати повідомлення в Slack", + "slackWriteMessageLabel": "Надіслати повідомлення в #{channel}" + }, + "workflowNode": { + "actionDelete": "Видалити", + "actionReplace": "Замінити", + "actionDuplicate": "Дублювати", + "actionConfigure": "Налаштувати", + "beforeLabelTrigger": "Починається, коли", + "beforeLabelAction": "Тоді", + "beforeLabelCondition": "Якщо умова виконана", + "beforeLabelConditionDefault": "Якщо жодна умова не виконана", + "beforeLabelRepeat": "Для кожного елемента", + "moreEdit": "Редагувати", + "moreReplace": "Замінити", + "nodeOptions": "Параметри кроку автоматизації", + "displayLabelDebug": "ID: {id} | Попередній: {previousNodeId} | {outputUid}", + "moreDuplicate": "Дублювати" + }, + "workflowAddNode": { + "displayTitle": "Створити крок автоматизації" + }, + "workflowNodeContext": { + "searchPlaceholderTrigger": "Пошук тригера…", + "searchPlaceholderActions": "Пошук дій…", + "noResults": "Результатів не знайдено" + }, + "serviceType": { + "periodicTrigger": "Періодичний тригер", + "periodicTriggerDescription": "Запускає робочий процес періодично через задані інтервали", + "periodicTriggerTriggeredAt": "Активовано о", + "errorIntervalMissing": "Необхідно вказати інтервал.", + "coreHTTPTrigger": "HTTP-тригер", + "coreHTTPTriggerDescription": "Отримує HTTP-запити для запуску робочих процесів" + }, + "periodicTriggerServiceForm": { + "intervalLabel": "Інтервал", + "intervalHelper": "Виберіть, як часто ви хочете запускати цей робочий процес", + "everyMinute": "Щохвилини", + "everyHour": "Щогодини", + "everyDay": "Щодня", + "everyWeek": "Щотижня", + "everyMonth": "Щомісяця", + "hour": "Година", + "minute": "Хвилина", + "dayOfWeek": "День тижня", + "dayOfMonth": "День місяця", + "hourPlaceholder": "0-23", + "minutePlaceholder": "0-59", + "dayOfMonthPlaceholder": "1-31", + "minuteHelper": "Цей робочий процес буде запускатися щохвилини", + "hourHelper": "Цей робочий процес буде запускатися щогодини у вказану хвилину за вашим локальним часовим поясом ({timezone})", + "dayHelper": "Цей робочий процес буде запускатися щодня у вказаний час за вашим локальним часовим поясом ({timezone})", + "weekHelper": "Цей робочий процес буде запускатися щотижня у вказаний день та час за вашим локальним часовим поясом ({timezone})", + "monthHelper": "Цей робочий процес буде запускатися щомісяця у вказаний день та час за вашим локальним часовим поясом ({timezone})", + "deactivatedTitle": "Періодичний тригер деактивовано", + "deactivatedText": "Цей періодичний тригер був автоматично деактивований через послідовні збої." + }, + "workflowEditor": { + "chooseEvent": "Оберіть подію…" + }, + "simulateDispatch": { + "sampleDataLabel": "Результат", + "triggerNodeAwaitingEvent": "Крок очікує. Для завершення тесту вручну активуйте подію, щоб заповнити дані.", + "simulationInProgress": "Виконується тест кроку…", + "errorNodeNotConfigured": "Крок повинен бути налаштований перед тестуванням.", + "errorPreviousNodeNotConfigured": "Попередній крок \"{node}\" повинен бути налаштований.", + "errorPreviousNodesNotTested": "Попередній крок \"{node}\" спочатку потрібно протестувати.", + "buttonLabelTest": "Тестова подія", + "buttonLabelTestAgain": "Повторити тестову подію", + "testNodeDescription": "Протестуйте цю подію, щоб підтвердити правильність налаштувань. Дані з цього тесту можна буде використовувати на наступних кроках.", + "buttonLabelShowPayload": "Показати дані", + "buttonLabelShowError": "Показати помилку", + "sampleDataModalTitle": "Дані для {nodeLabel}", + "sampleDataModalSubTitle": "JSON-дані", + "sampleDataCopy": "Скопіювати", + "errorOccurred": "Сталася помилка…", + "sampleDataCopied": "Дані скопійовано в буфер обміну" + } +} diff --git a/web-frontend/modules/builder/components/PublicPageContent.vue b/web-frontend/modules/builder/components/PublicPageContent.vue new file mode 100644 index 0000000000..cf742a9b7f --- /dev/null +++ b/web-frontend/modules/builder/components/PublicPageContent.vue @@ -0,0 +1,412 @@ + + + diff --git a/web-frontend/modules/builder/locales/es.json b/web-frontend/modules/builder/locales/es.json index 0e6774cba7..fa3f08d0c5 100644 --- a/web-frontend/modules/builder/locales/es.json +++ b/web-frontend/modules/builder/locales/es.json @@ -355,8 +355,8 @@ "authorizedToastMessage": "Debes iniciar sesión para acceder a esta página. Por favor, inicia sesión para continuar." }, "integrationSettings": { - "integrationMessage": "Se pueden crear nuevas integraciones añadiendo fuente de datos, acción o autenticación de usuario.", - "noIntegrationMessage": "Aún no has creado ninguna conexión. Se pueden crear añadiendo fuente de datos, acción o autenticación de usuario.", + "integrationMessage": "Puedes crear nuevas integraciones añadiendo una fuente de datos, una acción o una autenticación de usuario.", + "noIntegrationMessage": "Aún no has creado ninguna integración. Se pueden crear añadiendo una fuente de datos, una acción o una autenticación de usuario.", "title": "Integraciones" }, "upsertRowWorkflowActionForm": { @@ -506,7 +506,8 @@ "errorPathNotUnique": "Ya existe una ruta con este nombre", "errorValidPathCharacters": "La ruta contiene caracteres inválidos", "errorNameNotUnique": "Ya existe una página con este nombre", - "errorUniqueValidQueryParams": "Los nombres de los parámetros de consulta deben ser únicos y válidos." + "errorUniqueValidQueryParams": "Los nombres de los parámetros de consulta deben ser únicos y válidos.", + "errorNameNotUniqueDescription": "Por favor, introduce un nombre único para la página" }, "addElementButton": { "label": "Elemento" @@ -691,7 +692,8 @@ "errorFetchingRolesMessage": "Se ha producido un problema al recuperar los roles de usuario.", "visibilityCondition": "Condición de visibilidad", "visibilityConditionHelper": "Si el resultado de esta fórmula es «verdadero», y la elección del visitante anterior es «verdadero», el elemento será visible. Esta condición solo afecta la visibilidad del elemento. Para excluir datos de la respuesta del servidor, usa la opción de filtrado por rol de usuario anterior.", - "visibilityConditionPlaceholder": "Condición…" + "visibilityConditionPlaceholder": "Condición…", + "documentationLink": "documentación" }, "generalSettings": { "titleOverview": "General", @@ -872,7 +874,8 @@ }, "customStyle": { "themeOverrides": "Anulación de temas", - "configureThemeOverrides": "Configurar las modificaciones del tema para este elemento" + "configureThemeOverrides": "Configurar las modificaciones del tema para este elemento", + "backToElement": "Volver a la configuración del elemento" }, "resetButton": { "reset": "Restablecer el valor predeterminado del tema" @@ -895,7 +898,7 @@ "backgroundColor": "Color de fondo", "textColor": "Color del texto", "padding": "Acolchado", - "fontFamily": "Fuente", + "fontFamily": "Fuente tipográfica", "size": "Tamaño", "fontSize": "Tamaño de letra", "table": "Tabla", @@ -949,7 +952,8 @@ "noDataSources": "Sin origen para los datos disponibles", "shared": "compartido", "pageOnly": "esta página", - "noSharedDataSources": "No hay fuentes de datos compartidas" + "noSharedDataSources": "No hay fuentes de datos compartidas", + "addNew": "Añadir nueva fuente de datos" }, "recordSelectorElementForm": { "selectRecordsFrom": "Seleccionar registros de", @@ -1034,7 +1038,8 @@ "except": "Excluir páginas seleccionadas" }, "pageEditor": { - "pageNotFound": "Página no encontrada" + "pageNotFound": "Página no encontrada", + "title": "Constructor de aplicaciones" }, "builderToast": { "details": "Detalles", diff --git a/web-frontend/modules/builder/locales/fr.json b/web-frontend/modules/builder/locales/fr.json index 610fd9396f..1c59c9dfa7 100644 --- a/web-frontend/modules/builder/locales/fr.json +++ b/web-frontend/modules/builder/locales/fr.json @@ -1,1207 +1,1212 @@ { - "sidebarComponentBuilder": { - "settings": "Paramètres", - "createPage": "Nouvelle page" - }, - "createPageModal": { - "header": "Créer une page", - "submit": "Ajouter une page" - }, - "pageForm": { - "errorNameNotUnique": "Une page avec le même nom existe déjà", - "defaultName": "Page", - "nameLabel": "Titre", - "errorPathNotUnique": "Un chemin similaire existe déjà", - "errorValidPathCharacters": "Le chemin contient des caractères invalides", - "errorStartingSlash": "Un chemin doit commencer par un '/'", - "pathLabel": "Chemin", - "nameTitle": "Nom", - "nameSubtitle": "Nom unique de la page", - "pathSubtitle": "Un paramètre peut être ajouté en faisant précéder son nom par « : ». Par exemple - /page/:id -", - "pathParamsTitle": "Paramètres de chemin", - "pathParamsSubtitle": "Sont définis par - :parameter - dans le chemin", - "pathParamsSubtitleTutorial": "Les paramètres de chemin peuvent être utilisés pour charger dynamiquement les données, en fonction du paramètre fourni. Ajoutez - :parameter - au chemin pour en ajouter un.", - "pathTitle": "Chemin", - "namePlaceholder": "Saisir un nom...", - "pathPlaceholder": "Entrez un chemin...", - "queryParamsSubtitleTutorial": "Les paramètres de requête sont optionnels et peuvent être utilisés pour selectionner dynamiquement des données par exemple.", - "addAnotherParameter": "Ajouter un paramètre de requête", - "addParameter": "Ajouter un paramètre de requête", - "queryParamsTitle": "Paramètres de requête" - }, - "builderSettingTypes": { - "integrationsName": "Intégrations", - "themeName": "Thème", - "domainsName": "Domaines", - "userSourcesName": "Utilisateurs", - "generalName": "Général" - }, - "builderForm": { - "submit": "Ajouter une application" - }, - "builderSettingsModal": { - "title": "Application" - }, - "pageHeaderItemTypes": { - "labelDataSource": "Données", - "labelVariables": "Variables", - "labelSettings": "Configuration", - "labelElements": "Éléments" - }, - "elementsContext": { - "searchPlaceholder": "Chercher des éléments", - "noElements": "Aucun élément trouvé", - "noPageElements": "Aucun élément trouvé pour cette page" - }, - "elementType": { - "heading": "Titre", - "text": "texte", - "textDescription": "Texte multiligne", - "headingDescription": "Titre de page", - "link": "Lien", - "linkDescription": "Un lien vers une page/URL", - "image": "Image", - "imageDescription": "Affiche une image", - "inputText": "Champ de saisie", - "inputTextDescription": "Un champ de saisie", - "columnDescription": "Conteneur multi-colonnes", - "column": "Colonnes", - "table": "Table", - "tableDescription": "Une table de données", - "button": "Bouton", - "buttonDescription": "Un bouton", - "formContainer": "Formulaire", - "formContainerDescription": "Un élément Formulaire", - "dropdown": "Liste déroulante", - "dropdownDescription": "Une liste déroulante", - "checkbox": "Case à cocher", - "checkboxDescription": "Une case à cocher", - "iframe": "IFrame", - "iframeDescription": "Un element IFrame", - "authForm": "Formulaire de connexion", - "authFormDescription": "Formulaire de connexion pour les utilisateurs", - "repeat": "Répétition", - "repeatDescription": "Répète des éléments", - "choice": "Sélecteur", - "choiceDescription": "Pour la sélection d'une ou plusieurs valeurs", - "recordSelector": "Sélecteur d'enregistrement", - "recordSelectorDescription": "Pour sélectionner les enregistrements d'une source", - "dateTimePicker": "Sélecteur de date", - "dateTimePickerDescription": "Un champ de saisie de la date et de l'heure", - "headerDescription": "Un conteneur partagé entre plusieurs pages", - "footer": "Pied de page multi-page", - "footerDescription": "Un conteneur partagé entre plusieurs pages", - "notAllowedUnlessTop": "Cet élément n'est autorisé qu'en haut de la page", - "notAllowedUnlessBottom": "Cet élément n'est autorisé qu'en bas de page", - "notAllowedUnlessHeader": "Cet élément n'est autorisé qu'à l'intérieur de l'en-tête de la page", - "notAllowedUnlessFooter": "Cet élément n'est autorisé qu'à l'intérieur du pied de page", - "notAllowedInsideSameType": "Cet élément n'est pas autorisé dans un conteneur du même type", - "header": "En-tête multi-pages", - "notAllowedInsideContainer": "Cet élément n'est pas autorisé à l'intérieur d'un conteneur", - "notAllowedLocation": "Cet élément n'est pas autorisé à cet endroit", - "menu": "Menu", - "simpleContainerDescription": "Un conteneur pour grouper des éléments", - "simpleContainer": "Conteneur", - "menuDescription": "Un élément de menu", - "ratingDescription": "Affichage d'une notation", - "invalidElementValue": "Valeur non valide : {value}", - "ratingInput": "Champ de notation", - "rating": "Notation", - "ratingInputDescription": "Un champ de notation", - "fileInputDescription": "Un champ de formulaire pour envoyer des fichiers", - "fileInput": "Champ fichier", - "errorPageParameterInError": "Au moins un paramètre de page est mal configuré", - "errorNavigationUrlMissing": "Propriété URL de navigation manquante", - "errorImageFileMissing": "Fichier image manquant", - "errorImageUrlMissing": "Propriété « Image URL » manquante", - "errorNoWorkflowAction": "Aucune action de workflow n'est configurée", - "errorOptionsMissing": "Aucune option configurée", - "errorIframeUrlMissing": "Propriété URL IFrame manquante", - "errorIframeContentMissing": "Contenu de l'IFrame manquant", - "errorNoMenuItem": "Aucun élément de menu n'est configuré", - "errorMenuItemInError": "Au moins un menu est mal configuré", - "errorSubMenuItemInError": "Au moins un sous-menu est mal configuré", - "errorValueMissing": "Propriété des valeurs manquantes", - "errorEmptyContainer": "Ce conteneur est vide", - "errorParentWithDataSourceMissing": "Aucune source de données sélectionnée sur l'élément ou un conteneur parent", - "errorDataSourceMissing": "Aucune source de données sélectionnée", - "errorSchemaPropertyMissing": "Aucune propriété de schéma sélectionnée", - "errorWorkflowActionInError": "Au moins une action est mal configurée", - "errorCollectionFieldInError": "Au moins un champ est mal configuré", - "errorNavigateToPageMissing": "Propriété Naviguer vers manquante" - }, - "elementMenu": { - "moveDown": "Descendre", - "moveUp": "Monter", - "moveRight": "Déplacer à droite", - "moveLeft": "Déplacer à gauche", - "selectParent": "Sélectionner le parent" - }, - "addElementButton": { - "label": "Élément" - }, - "addElementModal": { - "title": "Ajouter un élément", - "searchPlaceholder": "Chercher des éléments", - "disabledElementTooltip": "Non disponible à l'intérieur de cet élément", - "elementInProgress": "Ajout d'un élément..." - }, - "duplicatePageJobType": { - "duplicating": "Duplication", - "duplicatedTitle": "Page dupliquée", - "name": "Duplication de page" - }, - "pageSidePanelType": { - "general": "Général", - "visibility": "Visibilité", - "events": "Événements", - "style": "Style", - "eventsTabDeactivatedNoEvents": "Cet élément ne supporte aucun événement", - "eventsTabInError": "Une ou plusieurs actions sont mal configurées." - }, - "emptySidePanelState": { - "message": "Cliquez sur l'un des éléments pour obtenir plus de détails" - }, - "headingElement": { - "noValue": "Aucun titre...", - "emptyValue": "Titre vide...", - "missingValue": "Titre manquant..." - }, - "headingElementForm": { - "levelTitle": "Niveau", - "textTitle": "Texte", - "textPlaceholder": "Saisir le texte...", - "headingName": "Titre {level} ", - "textError": "La valeur est invalide." - }, - "textElement": { - "noValue": "texte vide...", - "missingValue": "Texte manquant...", - "emptyValue": "Texte vide..." - }, - "textElementForm": { - "textTitle": "Texte", - "textPlaceholder": "Saisir le texte...", - "textError": "La valeur est invalide.", - "textFormatTypeLabel": "Format", - "textFormatTypePlain": "Texte simple", - "textFormatTypeMarkdown": "Markdown" - }, - "pageErrors": { - "errorPathNotUnique": "Un chemin similaire existe déjà", - "errorUniquePathParams": "Les paramètres de chemin doivent être uniques.", - "errorNameNotUnique": "Une page avec le même nom existe déjà", - "errorValidPathCharacters": "Le chemin contient des caractères invalides", - "errorStartingSlash": "Un chemin doit commencer par un '/'", - "errorUniqueValidQueryParams": "Les noms des paramètres de requête doivent être uniques et valides." - }, - "publishActionModal": { - "publish": "Publier", - "publishSucceedTitle": "Site publié", - "publishSucceedDescription": "Le site a été publié avec succès.", - "publishFailedTitle": "La publication du site a échoué", - "publishFailedDescription": "La publication du site a échoué. Veuillez réessayer plus tard.", - "openInNewTab": "Ouvrir dans un nouvel onglet", - "title": "Publication", - "noDomain": "Vous devez disposer d’au moins un domaine pour publier votre application.", - "description": "Mettez votre application en ligne en publiant sur l’un des domaines. Notez que votre application peut avoir plusieurs domaines, chacun avec une version différente de l’application.", - "importingState": "Import en cours…", - "addDomain": "Ajouter un domaine", - "publishSucceedLink": "Voir le site" - }, - "pageActionTypes": { - "preview": "Aperçu", - "publish": "Publication" - }, - "lastPublishedDomainDate": { - "neverPublished": "jamais", - "lastPublished": "Dernière publication :" - }, - "elementForms": { - "textInputPlaceholder": "Saisissez un texte...", - "urlInputPlaceholder": "Saisissez une URL...", - "invalidFormula": "La formule est invalide" - }, - "imageElement": { - "emptyState": "Aucun texte alternatif défini...", - "missingValue": "Texte alternatif manquant...", - "emptyValue": "Texte alternitf vide..." - }, - "imageElementForm": { - "fileLabel": "Image", - "invalidUrlError": "L’URL n’est pas valide", - "altTextTitle": "Texte alternatif", - "urlWarning": "Remarque : assurez-vous que vous contrôlez ou faites confiance à l'URL saisie.", - "uploadFileButton": "Envoyer un fichier", - "fileSourceTypeUpload": "Envoyer", - "fileSourceTypeURL": "URL", - "altTextDescription": "Est utilisé par les lecteurs d'écran et affiché si l'image ne peut pas être chargée", - "maxWidthLabel": "Largeur maximale", - "maxHeightLabel": "Hauteur maximale", - "maxHeightPlaceholder": "Saisir une hauteur maximale en pixels.", - "imageConstraintsLabel": "Contraintes", - "imageConstraintCover": "Couvrir", - "imageConstraintCoverDisabled": "Indisponible avec une hauteur maximale vide.", - "imageConstraintContain": "Contenir", - "imageConstraintContainDisabled": "Indisponible avec une hauteur maximale.", - "maxWidthPlaceholder": "Saisir une largeur maximale en pourcentage.", - "imageConstraintFullWidth": "Extension à la largeur maximale" - }, - "domainSettings": { - "titleOverview": "Domaines", - "titleAddDomain": "Ajouter un domaine", - "addDomain": "Ajouter un domaine", - "noDomainMessage": "Vous n’avez pas encore associé de domaine à cette application. Vous devez ajouter un domaine pour pouvoir publier votre application. Vous pouvez publier différentes versions de votre application pour chaque domaine répertorié ici." - }, - "dnsStatus": { - "description": "Accédez aux paramètres DNS de vos domaines et apportez les modifications suivantes", - "valueHeader": "Valeur", - "typeHeader": "Type", - "hostHeader": "Hôte" - }, - "customDomainForm": { - "domainNameLabel": "Nom de domaine", - "notUniqueDomain": "Le domaine fourni est déjà utilisé", - "invalidDomain": "Le nom de domaine fourni est invalide" - }, - "domainCard": { - "refresh": "Actualiser les paramètres", - "detailLabel": "Afficher les détails", - "unpublishedDomainWarning": "Veuillez publier l'application pour la rendre disponible sur ce domaine." - }, - "domainTypes": { - "customName": "Domaine personnalisé", - "subDomain": "Sous-domaine de {domain}", - "subDomainName": "Sous-domaine" - }, - "linkElement": { - "noValue": "Sans nom...", - "missingValue": "Texte du lien manquant...", - "emptyValue": "Texte du lien vide..." - }, - "linkElementForm": { - "text": "Texte", - "textPlaceholder": "Saisissez le texte...", - "navigateTo": "Naviguer vers", - "navigateToNotSet": "Aucune destination", - "navigateToCustom": "URL personnalisée", - "url": "URL de destination", - "urlPlaceholder": "Saisissez une URL...", - "variant": "Variante", - "paramsInErrorButton": "Mettre à jour les paramètres", - "widthFull": "Pleine largeur", - "widthAuto": "Auto", - "paramPlaceholder": "Entrez une valeur...", - "variantLink": "Lien", - "variantButton": "Bouton", - "width": "Largeur", - "targetSelf": "Même onglet", - "target": "Ouvrir dans...", - "targetNewTab": "Nouvel onglet", - "pageParameterTypeError": "Type non valide", - "paramsInErrorDescription": "Les paramètres enregistrés ne correspondent pas aux paramètres de la page. La page a probablement été mise à jour ou supprimée.", - "buttonColor": "Couleur du bouton" - }, - "alignmentSelector": { - "alignment": "Alignement", - "alignmentLeft": "Lien", - "alignmentCenter": "Centré", - "alignmentRight": "Droite" - }, - "pageSettings": { - "pageUpdatedTitle": "Mise à jour", - "pageUpdatedDescription": "Les paramètres de la page ont été mis à jour.", - "title": "Page" - }, - "pathParamTypes": { - "textName": "Texte", - "numericName": "Numérique" - }, - "publicPage": { - "pageNotFound": "Page non trouvée", - "siteNotFound": "Site introuvable", - "authorizedToastTitle": "Authentification requise", - "loginToastTitle": "Authentification réussie", - "loginToastMessage": "Vous avez été authentifié·e avec succès.", - "authorizedToastMessage": "Vous devez être authentifié·e pour accéder à cette page. Veuillez vous connecter pour continuer." - }, - "integrationSettings": { - "title": "Intégrations", - "noIntegrationMessage": "Vous n’avez pas encore créé d'intégration. Elles peuvent être créés en ajoutant une source de données, une action ou une source d'authentification.", - "integrationMessage": "Vous pouvez créer une intégration en ajoutant une source de données, une action ou une source d'authentification utilisateur." - }, - "dataSourceForm": { - "namePlaceholder": "Nom de la source", - "addIntegration": "Ajouter une intégration", - "noIntegrations": "Aucune intégration trouvée.", - "selectTypeFirst": "Sélectionnez d'abord le service", - "servicePlaceholder": "Sélectionnez un service", - "errorUniqueName": "Le nom de la source de données doit être unique.", - "integrationPlaceholder": "Sélectionnez une intégration", - "actionLabel": "Action", - "integrationLabel": "Intégration", - "nameLabel": "Nom" - }, - "dataSourceContext": { - "addDataSource": "Ajouter une source de données", - "noDataSourceMessage": "Les source de données peuvent être utilisées pour récupérer des données à partir de sources internes ou externes et les afficher sur la page.", - "noDataSourceTitle": "Vous n’avez pas encore ajouté de source de données.", - "pageDataSourceTitle": "Pour cette page", - "sharedDataSourceTitle": "Partagée entre les pages", - "sharedDataSourceDescription": "Accessible sur toutes les pages et récupérée une fois lors du premier chargement de la page.", - "pageDataSourceDescription": "Récupérée lorsque l'utilisateur navigue vers cette page." - }, - "pageSettingsTypes": { - "pageName": "Page" - }, - "verticalAlignmentSelector": { - "alignmentTop": "En haut", - "alignmentBottom": "En bas", - "alignmentCenter": "Au milieu", - "alignment": "Alignement vertical" - }, - "horizontalAlignmentSelector": { - "alignmentLeft": "À gauche", - "alignmentRight": "À droite", - "alignment": "Alignement horizontal", - "alignmentCenter": "Centré" - }, - "inputTextElementForm": { - "placeholderPlaceholder": "Entrez un texte provisoire (optionnel)", - "valueTitle": "Valeur par défaut", - "valuePlaceholder": "Entrez une valeur par défaut (optionnel)", - "placeholderTitle": "Texte provisoire", - "requiredTitle": "Obligatoire", - "labelTitle": "Étiquette", - "labelPlaceholder": "Entrez une étiquette (facultatif)", - "multilineTitle": "Multiligne", - "rowsTitle": "Nombre de lignes", - "rowsPlaceholder": "Saisir le nombre de lignes minimum", - "validationTypeAnyLabel": "Toutes les valeurs", - "validationTypeAnyDescription": "Permet d'accepter n'importe quelle valeur dans cette entrée.", - "validationTypeIntegerLabel": "Nombre", - "validationTypeEmailLabel": "Courriel", - "validationTypeEmailDescription": "N'autoriser que les courriels dans ce champ.", - "validationTypeIntegerDescription": "N'autoriser que les valeurs numériques dans ce champ (accepte les entiers et les décimaux).", - "inputTypeTextLabel": "Texte", - "inputTypePasswordLabel": "Mot de passe", - "inputType": "Type de l'entrée", - "passwordTypeWarning": "Les mots de passe sont des données sensibles. Faites attention à la manière dont vous les traitez et les stockez dans votre application." - }, - "columnElementForm": { - "columnGapPlaceholder": "Entrez l'espace entre les colonnes...", - "columnGapTitle": "Espace entre colonnes", - "columnAmountTitle": "Mise en page", - "columnAmountName": "pas de colonnes | 1 colonne | {columnAmount} colonnes", - "verticalAlignment": "Alignement vertical" - }, - "tableElementForm": { - "addField": "ajouter un champ", - "itemsPerPage": "Lignes par page", - "fieldValueLabel": "Valeur", - "dataSource": "Source de données", - "fieldValuePlaceholder": "Saisir la valeur...", - "itemsPerPagePlaceholder": "Saisir la valeur...", - "fields": "Colonnes", - "fieldType": "Type", - "fieldDefaultName": "Colonne", - "selectSourceFirst": "Choisissez une source de données et/ou une propriété pour commencer à configurer vos champs.", - "buttonColor": "Couleur du bouton", - "refreshFieldsFromDataSource": "Réinitialiser les champs à partir de la source de données", - "name": "Nom", - "orientation": "Orientation", - "orientationHorizontal": "Horizontale", - "orientationVertical": "Verticale", - "buttonLoadMoreLabel": "Libellé « afficher plus »", - "propertySelectorMissingArrays": "Aucun champ à valeurs multiples n'a été trouvé pour être utilisé comme données.", - "noName": "Aucun nom" - }, - "mainThemeConfigBlock": { - "colorsLabel": "Couleurs", - "primaryColor": "Primaire", - "headingValue": "Titre ", - "typography": "Typographie", - "fontSizeError": "La valeur doit être comprise entre 1 et 100.", - "headingLabel": "Titre {i} (h{i})", - "secondaryColor": "Secondaire" - }, - "widthSelector": { - "widthFull": "Pleine largeur", - "widthAuto": "Auto", - "width": "Largeur" - }, - "defaultStyleForm": { - "boxTop": "Haut", - "boxBottom": "Bas", - "widthLabel": "Largeur", - "backgroundLabel": "Arrière plan", - "backgroundColor": "Couleur d'arrière-plan", - "boxLeft": "Gauche", - "boxRight": "Droit", - "backgroundImageMode": "Mode de remplissage", - "backgroundImage": "Image", - "cssClasses": "Classes CSS", - "cssClassesHelp": "Définissez une liste de classes séparées par des espaces pour cet élément qui apparaîtra dans le code HTML généré.", - "cssClassesPlaceholder": "classe1 classe2..." - }, - "buttonElementForm": { - "valuePlaceholder": "Saisir le texte...", - "valueLabel": "Texte du bouton", - "buttonColor": "Couleur du bouton" - }, - "subDomainDetails": { - "text": "Les paramètres DNS du domaine ont déjà été configurés et vérifiés. Cela fonctionne sans qu'il soit nécessaire d'apporter des modifications supplémentaires." - }, - "notificationWorkflowActionForm": { - "descriptionLabel": "Description", - "descriptionPlaceholder": "Saisir le texte...", - "titleLabel": "Titre", - "titlePlaceholder": "Saisir le texte..." - }, - "currentRecordDataProviderType": { - "index": "Index", - "firstPartName": "Source de données : {nom}", - "schemaProperty": "{prefixName} : {schemaProperty}" - }, - "domainForm": { - "notUniqueDomain": "Le domaine fourni est déjà utilisé", - "invalidDomain": "Le nom de domaine fourni est invalide" - }, - "dataProviderType": { - "currentRecord": "Source de données", - "pageParameter": "Paramètre", - "dataSource": "Données reçues", - "formData": "Données de formulaire", - "user": "Utilisateur", - "previousAction": "Action précédente", - "dataSourceContext": "Choix disponibles", - "metadata": "Métadonnées" - }, - "openPageWorkflowActionForm": { - "urlLabel": "URL", - "urlPlaceholder": "Saisir le texte..." - }, - "event": { - "addAction": "ajouter une action" - }, - "buttonElement": { - "noValue": "Sans nom...", - "missingValue": "Texte du bouton manquant...", - "emptyValue": "Texte du bouton vide..." - }, - "tableElement": { - "empty": "Aucun résultat n'a été trouvée.", - "showMore": "Afficher plus" - }, - "fontSidePanelForm": { - "label": "Couleur de la police" - }, - "styleBoxForm": { - "paddingError": "La valeur doit être comprise entre 0 et 200.", - "borderLabel": "Épaisseur", - "paddingLabel": "Espacement", - "error": "La valeur doit être comprise entre 0 et 200.", - "marginLabel": "Marge", - "borderColor": "Couleur de la bordure" - }, - "subDomainForm": { - "domainNameLabel": "Nom de domaine" - }, - "workflowActionTypes": { - "notificationLabel": "Afficher une notification", - "openPageLabel": "Ouvrir une page", - "updateRowLabel": "Mise à jour de ligne", - "createRowLabel": "Création de ligne", - "logoutLabel": "Déconnexion", - "refreshDataSourceLabel": "Actualiser une source de données", - "deleteRowLabel": "Supprimer une ligne", - "httpRequest": "Envoyer une requête HTTP", - "errorNavigateToPageMissing": "Propriété Naviguer vers manquante", - "errorPageParameterInError": "Au moins un paramètre de page est mal configuré", - "errorNavigationUrlMissing": "Propriété URL de destination manquante", - "errorDataSourceMissing": "Aucune source de données sélectionnée" - }, - "getFormulaComponent": { - "errorTooltip": "Référence invalide" - }, - "eventTypes": { - "clickLabel": "Au clic", - "submitLabel": "Sur validation", - "afterLoginLabel": "Après la connexion" - }, - "linkFieldForm": { - "fieldLinkNamePlaceholder": "Saisir la valeur...", - "fieldValuePlaceholder": "Saisir la valeur...", - "fieldLinkNameLabel": "Texte du lien", - "fieldValueLabel": "Url", - "buttonColor": "Couleur du bouton" - }, - "updateUserSourceForm": { - "nameFieldLabel": "Nom", - "nameFieldPlaceholder": "Saisir un nom...", - "integrationFieldLabel": "Intégration", - "authTitle": "Authentification", - "addProvider": "Ajouter un fournisseur" - }, - "widthTypes": { - "full": "Pleine largeur", - "small": "Petite", - "medium": "Moyenne", - "normal": "Normale", - "fullBleed": "Fond étendu", - "fullWidth": "Pleine largeur" - }, - "userSourceSettings": { - "titleOverview": "Sources d'utilisateurs", - "titleUpdateUserSource": "Modifier la source d'utilisateurs", - "titleAddUserSource": "Nouvelle source d'utilisateurs", - "addUserSource": "Ajouter la source d'utilisateurs", - "noUserSourceMessage": "Vous n'avez pas encore ajouté de source d'utilisateurs à cette application. Vous devez ajouter une source d'utilisateurs si vous souhaitez que les utilisateurs puissent authentifier votre application." - }, - "upsertRowWorkflowActionForm": { - "rowIdPlaceholder": "Saisir l'ID d'une ligne", - "fieldMappingPlaceholder": "Choisir la valeur du champ", - "integrationDropdownLabel": "Intégration", - "rowIdLabel": "ID de la ligne", - "noTableSelectedMessage": "Choisissez une table pour commencer à configurer vos champs." - }, - "dispatchWorkflowActionError": { - "defaultMessage": "Une erreur s'est produite lors du traitement de cette action.", - "defaultTitle": "Erreur", - "formDataInvalidTitle": "Formulaire invalide", - "formDataInvalidMessage": "Un ou plusieurs champs contiennent des valeurs invalides." - }, - "collectionFieldType": { - "text": "Texte", - "link": "Lien", - "boolean": "Booléen", - "tags": "Étiquettes", - "button": "Bouton", - "image": "Image", - "rating": "Notation", - "errorValueMissing": "Valeur manquante" - }, - "createUserSourceForm": { - "userSourceName": "Nom", - "userSourceIntegration": "Intégration", - "userSourceType": "Type" - }, - "formDataProviderType": { - "nodeMissing": "Manquant" - }, - "textFieldForm": { - "fieldValuePlaceholder": "Saisir la valeur...", - "fieldValueLabel": "Valeur" - }, - "backgroundTypes": { - "color": "Couleur", - "none": "Aucun" - }, - "pagePreview": { - "emptyMessage": "Cliquez pour créer un élément", - "header": "EN-TÊTE", - "footer": "PIED DE PAGE" - }, - "formContainerElementForm": { - "submitButtonLabel": "Bouton de soumission", - "submitButtonPlaceholder": "Saisir la valeur...", - "buttonColor": "Couleur du bouton", - "resetToInitialValuesTitle": "Réinitialiser les valeurs par défaut après soumission", - "resetToInitialValuesDescription": "Si cette case est cochée, le formulaire sera réinitialisé avec les valeurs par défaut après une soumission réussie. Si la case n'est pas cochée, les valeurs saisies par l'utilisateur seront conservées." - }, - "linkField": { - "details": "Détails" - }, - "generalForm": { - "labelPlaceholder": "Saisir un label", - "valuePlaceholder": "Saisir une valeur", - "requiredTitle": "Obligatoire", - "labelTitle": "Label", - "valueTitle": "Valeur", - "placeholderTitle": "Texte provisoire", - "placeholderPlaceholder": "Saisir un texte provisoire", - "validationTitle": "Validation", - "defaultValueTitle": "Valeur par défaut", - "defaultValuePlaceholder": "Saisir la valeur par défaut" - }, - "iframeElementForm": { - "urlPlaceholder": "Lien vers la ressource externe à intégrer", - "empty": "IFrame vide...", - "sourceTypeLabel": "Type de la source", - "urlLabel": "URL", - "urlHelp": "Remarque : assurez-vous que vous contrôlez ou faites confiance à l'URL saisie.", - "embedLabel": "Embarquer", - "embedPlaceholder": "Contenu HTML brut à intégrer", - "heightLabel": "Hauteur (px)", - "heightPlaceholder": "Hauteur en pixels", - "emptyValue": "Source vide...", - "missingValue": "Source manquante..." - }, - "linkNavigationSelection": { - "paramPlaceholder": "Saisir une valeur...", - "urlPlaceholder": "Saisir une URL...", - "navigateTo": "Naviguer vers", - "navigateToCustom": "URL personnalisée", - "url": "URL de destination", - "paramsInErrorDescription": "Les paramètres enregistrés ne correspondent pas aux paramètres de la page. La page a probablement été mise à jour ou supprimée.", - "paramsInErrorButton": "Mettre à jour les paramètres", - "targetSelf": "Même onglet", - "target": "Ouvrir dans...", - "targetNewTab": "Nouvel onglet" - }, - "dropdownOptionSelector": { - "label": "Options", - "addOption": "ajouter une option", - "value": "Valeur", - "name": "Nom" - }, - "checkboxElementForm": { - "labelTitle": "Libéllé de l'option", - "valueTitle": "Valeur par défaut", - "requiredTitle": "Obligatoire" - }, - "authFormElement": { - "emailPlaceholder": "Saisissez votre courriel...", - "passwordPlaceholder": "Saisissez votre mot de passe...", - "selectOrConfigureUserSourceFirst": "Choisissez une source d'utilisateurs pour commencer à utiliser ce formulaire d'authentification.", - "email": "Courriel", - "password": "Mot de passe" - }, - "userSourceUsersContext": { - "searchPlaceholder": "Rechercher un utilisateur", - "anonymous": "Anonyme", - "unnamed": "Sans nom", - "noEmail": "Pas de courriel" - }, - "userSelector": { - "viewAs": "Voir en tant que : {user}", - "anonymous": "Anonyme", - "member": "Membre de {prefix}" - }, - "dispatchDataSourceError": { - "defaultTitle": "Erreur de chargement des données", - "defaultMessage": "Une erreur s'est produite lors du chargement des données de la page." - }, - "authFormElementForm": { - "userSource": "Source d'utilisateur" - }, - "formContainerElement": { - "submitDeactivatedText": "Veuillez remplir tous les champs requis pour soumettre le formulaire", - "defaultSubmitButtonLabel": "Valider" - }, - "visibilityForm": { - "allVisitors": "Tous les visiteurs", - "loggedInVisitors": "Visiteurs connectés", - "notLoggedInVisitors": "Visiteurs déconnectés", - "warningTitle": "C'est un dispositif de sécurité", - "warningMessage": "Veuillez consulter la <a href='https://baserow.io/user-docs/application-builder-element-visibility#note-accessing-hidden-data-via-api' target='_blank'>documentation</a> pour plus d'informations sur la sécurité des données.", - "excludedRolesLabel": "tous les rôles sauf", - "switchAllowLabel": "Autoriser", - "switchDisallowLabel": "Interdir", - "rolesSelectAll": "Sélectionner tout", - "rolesDeselectAll": "Désélectionner tout", - "rolesSelectHint": "Sélectionnez un ou plusieurs rôles", - "roleTypesHint": "Sélectionnez un type de rôle", - "roleTypeDisallowAllRolesExcept": "Autoriser les rôles...", - "roleTypeAllowAllRoles": "Tous les rôles", - "roleTypeAllowAllRolesExcept": "Interdire les rôles...", - "errorFetchingRolesMessage": "Il y a eu un problème lors de la récupération des rôles d'utilisateur.", - "rolesAllMembersOf": "Tous les membres de {name}", - "noRole": "Sans rôle", - "errorFetchingRolesTitle": "Impossible de récupérer les rôles des utilisateurs", - "visibilityCondition": "Conditions de visibilité", - "visibilityConditionHelper": "Si le résultat de cette formule est vrai et que le statut du visiteur ci-dessus est vrai, l'élément sera visible. Cette condition n'affecte que la visibilité de l'élément. Pour exclure des données de la réponse du serveur, utilisez l'option de filtrage du rôle de l'utilisateur ci-dessus.", - "visibilityConditionPlaceholder": "Condition..." - }, - "imageInput": { - "labelDescription": "Description par défaut", - "labelButton": "Envoyer" - }, - "generalSettings": { - "cantUpdateApplicationDescription": "Désolé, impossible de mettre à jour l'application.", - "labelButton": "Envoyer la favicon", - "cantUploadFaviconTitle": "Impossible de télécharger le fichier fourni", - "cantUploadFaviconDescription": "Désolé, il n'est pas possible de télécharger l'image. Veuillez vous assurer que le fichier image est unique et qu'il s'agit d'un format d'image pris en charge.", - "cantUpdateApplicationTitle": "Impossible de mettre à jour l'application", - "titleOverview": "Général", - "labelForm": "Favicon", - "labelDescription": "Choisissez un fichier ICO, PNG, GIF ou JPEG de 128x128px." - }, - "repeatElement": { - "showMore": "Afficher plus", - "empty": "Aucun résultat n'a été trouvée.", - "missingDataSourceTooltip": "Choisissez une source de données pour commencer à ajouter des éléments.", - "missingSchemaPropertyTooltip": "Choisissez une propriété pour commencer à ajouter des éléments.", - "emptyState": "Aucun enregistrement n'a été trouvé." - }, - "repeatElementForm": { - "dataSource": "Source de données", - "itemsPerPage": "Lignes par page", - "orientationLabel": "Orientation", - "itemsPerPagePlaceholder": "Saisir la valeur...", - "itemsPerRowLabel": "Nombre de colonne", - "itemsPerRowDescription": "Nombre de colonnes par ligne et type d'appareil.", - "orientationVertical": "Verticale", - "orientationHorizontal": "Horizontale", - "buttonLoadMoreLabel": "Libellé « afficher plus »", - "toggleEditorRepetitionsLabel": "Désactiver temporairement les répétitions", - "propertySelectorMissingArrays": "Aucun champ à valeurs multiples n'a été trouvé pour créer les répétitions.", - "gapLabel": "Espace entre les répétitions", - "gapVerticalLabel": "Vertical", - "gapHorizontalLabel": "Horizontal" - }, - "userDataProviderType": { - "isAuthenticated": "Est authentifié", - "id": "Id", - "email": "Courriel", - "username": "Nom d'utilisateur", - "role": "Rôle" - }, - "buttonFieldForm": { - "labelPlaceholder": "Saisir le nom...", - "infoMessage": "Pour configurer les actions de ce bouton, ouvrez l'onglet \"Événements\" de l'élément courant." - }, - "tagsFieldForm": { - "fieldValuesPlaceholder": "Saisir les valeurs...", - "fieldColorsLabel": "Couleurs", - "fieldColorsPlaceholder": "Choisir les couleurs...", - "fieldValuesLabel": "Valeurs" - }, - "buttonField": { - "noLabel": "Sans nom..." - }, - "themeConfigBlockType": { - "color": "Couleurs", - "page": "Page", - "typography": "Typographie", - "button": "Bouton", - "link": "Lien", - "image": "Image", - "input": "Champs de saisie", - "table": "Table" - }, - "colorThemeConfigBlock": { - "primaryColor": "Primaire", - "secondaryColor": "Secondaire", - "borderColor": "Bordure", - "successColor": "Succès", - "warningColor": "Avertissement", - "errorColor": "Erreur", - "transparent": "Transparent", - "customColors": "Couleurs personnalisées", - "addCustomColor": "Ajouter une couleur personnalisée", - "customColorPrefix": "Ma couleur" - }, - "pageThemeConfigBlock": { - "backgroundColor": "Couleur d'arrière-plan", - "backgroundImage": "Image d'arrière plan", - "backgroundMode": "Mode d'arrière-plan" - }, - "colorThemeConfigBlockType": { - "primary": "Primaire", - "secondary": "Secondaire", - "success": "Succès", - "warning": "Avertissement", - "border": "Bordure", - "error": "Erreur", - "transparent": "Transparent" - }, - "typographyThemeConfigBlock": { - "headingValue": "Titre ", - "color": "Couleur", - "size": "Taille", - "textAlignment": "Alignement", - "bodyLabel": "Corps", - "fontFamily": "Police", - "headingLabel": "Titre {i} (h{i})", - "weight": "Graisse", - "decoration": "Décoration" - }, - "buttonThemeConfigBlock": { - "backgroundColor": "Couleur d'arrière-plan", - "defaultState": "État par défaut", - "hoverState": "État de survol", - "textAlignment": "Alignement du texte", - "alignment": "Alignement", - "width": "Largeur", - "borderSize": "Épaisseur de la bordure", - "borderRadius": "Rayon de l'arrondi", - "padding": "Espacement", - "fontFamily": "Police", - "size": "Taille de la police", - "textColor": "Couleur du texte", - "button": "Bouton", - "borderColor": "Couleur de la bordure", - "weight": "Graisse de la police", - "activeState": "État actif" - }, - "linkThemeConfigBlock": { - "color": "Couleur", - "link": "Lien", - "defaultState": "État par défaut", - "hoverState": "État de survol", - "alignment": "Alignement", - "fontFamily": "Police", - "size": "Taille de la police", - "weight": "Graisse de la police", - "activeState": "État actif", - "decoration": "Décoration" - }, - "imageThemeConfigBlock": { - "alignment": "Alignement", - "maxWidthLabel": "Pleine largeur", - "maxHeightLabel": "Hauteur max.", - "maxHeightPlaceholder": "Entrer une hauteur max.", - "maxWidthPlaceholder": "Entrer une largeur max.", - "imageConstraintsLabel": "Contraintes", - "imageConstraintFullWidth": "Extension à la largeur maximale", - "imageConstraintCover": "Couvrir", - "imageConstraintCoverDisabled": "Indisponible avec une hauteur maximale vide.", - "imageConstraintContain": "Contenir", - "imageConstraintContainDisabled": "Indisponible avec une hauteur maximale.", - "imageBorderRadiusLabel": "Arrondi des coins", - "imageBorderRadiusPlaceholder": "Saisissez la valeur d'arrondi des coins de l'image." - }, - "choiceElementForm": { - "display": "Affichage", - "dropdown": "Liste déroulante", - "radio": "Boutons radio", - "multiple": "Autoriser plusieurs valeurs", - "checkbox": "Case à cocher" - }, - "choiceOptionSelector": { - "label": "Options", - "value": "Valeurs des options", - "valuePlaceholder": "Saisir la valeur", - "name": "Libellés des options", - "namePlaceholder": "Saisir le nom", - "addOption": "ajouter une option", - "optionType": "Type d'options", - "manual": "Manuelle", - "dataSource": "Source de données", - "formulas": "Formules", - "addOptionDescription": "Cliquez sur \"ajouter une option\" pour ajouter des options à votre liste de choix" - }, - "choiceElement": { - "addOptions": "Ajouter des options pour utiliser cet élément..." - }, - "resetButton": { - "reset": "Rétablissement de la valeur par défaut du thème" - }, - "backgroundModes": { - "fill": "Remplir", - "tile": "Tuilage", - "fit": "Contenir" - }, - "customStyle": { - "themeOverrides": "Style spécifique", - "configureThemeOverrides": "Définir les exceptions au thème pour cet élément" - }, - "inputThemeConfigBlock": { - "label": "Libéllé", - "input": "Champs de saisie", - "backgroundColor": "Couleur de fond", - "textColor": "Couleur du texte", - "borderSize": "Épaisseur de la bordure", - "borderRadius": "Rayon de l'arrondi", - "padding": "Espacement", - "fontFamily": "Police", - "size": "Taille de la police", - "borderColor": "Couleur de bordure", - "weight": "Graisse de la police" - }, - "tableThemeConfigBlock": { - "borderColor": "Couleur de bordure", - "backgroundAlternateColor": "Couleur des rangs pairs", - "backgroundColor": "Couleur de fond", - "textColor": "Couleur du texte", - "borderSize": "Épaisseur de la bordure", - "borderRadius": "Rayon de l'arrondi", - "padding": "Espacement", - "fontFamily": "Police", - "size": "Épaisseur", - "fontSize": "Taille de la police", - "table": "Table", - "header": "En-tête", - "alignment": "Alignement", - "cells": "Cellules", - "separators": "Séparateurs", - "verticalSeparatorColor": "Couleur verticale", - "verticalSeparatorSize": "Taille verticale", - "horizontalSeparatorColor": "Couleur horizontale", - "horizontalSeparatorSize": "Taille horizontale", - "fontWeight": "Graisse de la police" - }, - "localBaserowServiceForm": { - "integrationDropdownLabel": "Intégration", - "rowIdPlaceholder": "Saisir l'ID d'une ligne", - "rowIdLabel": "ID de ligne" - }, - "fieldMappingContext": { - "enableField": "Activer le champ", - "disableField": "Désactiver le champ" - }, - "dropdown": { - "empty": "Aucune option disponible" - }, - "abTable": { - "empty": "Aucun résultat n'a été trouvée.", - "loading": "Chargement..." - }, - "collectionElementForm": { - "noDataSourceMessage": "Choisissez une source de données retournant plusieurs lignes pour lister tous les résultats, ou une source de données retournant une seule ligne pour choisir une propriété à l'intérieur de cette ligne.", - "noSchemaPropertyMessage": "Choisissez une propriété de la source de données à utiliser comme source de données pour votre élément.", - "propertyOptionLabel": "Actions possibles" - }, - "imageFieldForm": { - "fieldSrcLabel": "Source de l'image", - "fieldSrcPlaceholder": "Saisir la valeur", - "fieldAltPlaceholder": "Saisir la valeur...", - "fieldAltLabel": "Texte Alt", - "fieldAltHelp": "Est utilisé par les lecteurs d'écran et affiché si l'image ne peut pas être chargée" - }, - "dataSourceDropdown": { - "noDataSources": "Aucune source de données disponible", - "label": "Source des données", - "shared": "partagée", - "pageOnly": "cette page", - "noSharedDataSources": "Aucune source de données partagée disponible" - }, - "serviceSchemaPropertySelector": { - "label": "Propriété", - "noProperties": "Aucune propriété disponible" - }, - "recordSelectorElementForm": { - "selectRecordsFrom": "Sélectionner les enregistrements de...", - "record": "Option {id}", - "noDataSourceMessage": "Choisir une source de données avec plusieurs lignes pour lister tous les résultats.", - "optionNameSuffix": "Suffixe des options", - "optionNameSuffixPlaceholder": "Saisir un suffixe...", - "optionNameSuffixHelper": "Ce suffixe est ajouté à chaque nom d'option lorsque vous ouvrez la liste déroulante et permet de les distinguer.", - "itemsPerPage": "Éléments par page", - "itemsPerPagePlaceholder": "Saisir une valeur...", - "multipleLabel": "Autoriser plusieurs valeurs" - }, - "dataSourceItemContext": { - "shareBetweenPages": "Partager entre les pages", - "unshareBetweenPages": "Arréter le partage" - }, - "dataSourceCreateEditModal": { - "editTitle": "Modifier la source de données", - "createTitle": "Créer une source de données", - "sharedWarning": "Cette source de données est partagée, de sorte que vos modifications peuvent affecter plusieurs pages." - }, - "propertyOptionForm": { - "fieldHeading": "Colonne", - "filterHeading": "Filtre", - "sortHeading": "Trier", - "searchHeading": "Chercher", - "optionUnavailable": "Non disponible", - "noPropertiesAvailable": "Aucun champ disponible.", - "formDescription": "Choisissez les propriétés de la source de données que les utilisateurs de l'application peuvent filtrer, trier et rechercher." - }, - "dataSourceItem": { - "notConfigured": "Non configurée" - }, - "recordSelectorElement": { - "emptyAdhocState": "Aucun enregistrement correspondant à '{query}' n'a été trouvé.", - "emptyState": "Aucun enregistrement n'a été trouvé." - }, - "common": { - "dateFormatTitle": "Format de date", - "dateFormatEU": "Européen", - "dateFormatUS": "Américain", - "dateFormatISO": "ISO", - "timeFormatTitle": "Format de l'heure", - "timeFormat24Hour": "24 heures", - "timeFormat12Hour": "12 heures" - }, - "pageVisibilitySettingsTypes": { - "pageName": "Visibilité", - "logInPageInfoTitle": "Les utilisateurs anonymes seront redirigés", - "logInPageInfoMessage": "Les utilisateurs anonymes qui tentent d'accéder à cette page seront redirigés vers la page « {logInPageName} ».", - "logInPageWarningTitle": "La page de connexion n'est pas définie", - "logInPagewarningMessage": "Lorsqu'un utilisateur anonyme tente d'accéder à cette page, il est redirigé vers la page de connexion. Veuillez définir la page de connexion dans les paramètres généraux de l'application." - }, - "dateTimePickerElementForm": { - "includeTime": "Inclure l'heure", - "invalidDateError": "Date non valide. Veuillez vous assurer que la date saisie correspond au format indiqué." - }, - "themeSettings": { - "titleOverview": "Thème" - }, - "pageVisibilitySettings": { - "title": "Visibilité", - "allVisitors": "Tous les visiteurs", - "loggedInVisitors": "Visiteurs connectés", - "description": "Qui peut consulter cette page ?" - }, - "pageEditor": { - "pageNotFound": "Page non trouvée" - }, - "builderLoginPageForm": { - "pageDropdownLabel": "Page de connexion", - "pageDropdownPlaceholder": "Sélectionner une page", - "pageDropdownDescription": "Sélectionnez la page de connexion vers laquelle les utilisateurs non connectés doivent être redirigés lorsqu'ils tentent d'accéder à une page restreinte." - }, - "multiPageContainerElementForm": { - "display": "Affichage", - "pagePosition": "Position", - "behaviour": "Comportement", - "selectAll": "Sélectionner tout", - "deselectAll": "Désélectionner tout" - }, - "pageShareType": { - "all": "Sur toutes les pages", - "except": "Exclure les pages sélectionnées", - "only": "Uniquement les pages sélectionnées" - }, - "fontWeightType": { - "extraBlack": "Extra-noir", - "extraBold": "Extra-gras", - "extraLight": "Extra-léger", - "light": "Léger", - "regular": "Normale", - "medium": "Moyenne", - "semiBold": "Semi-gras", - "black": "Noir", - "thin": "Mince", - "bold": "Gras" - }, - "radiusStyleForm": { - "borderRadiusLabel": "Bordure", - "cornerRadiusLabel": "Arrondi des coins", - "backgroundRadiusLabel": "Arrière plan" - }, - "authProviderWithModal": { - "authProviderInError": "Veuillez modifier ce fournisseur pour corriger l'erreur.", - "title": "Modification du fournisseur : {name}" - }, - "queryParamTypes": { - "textName": "Texte", - "numericName": "Numérique" - }, - "addElementCategory": { - "suggestedElement": "Éléments suggérés", - "baseElement": "Éléments basiques", - "formElement": "Éléments de formulaire", - "layoutElement": "Éléments de mise en page" - }, - "orientations": { - "horizontal": "Horizontale", - "vertical": "Verticale", - "label": "Orientation" - }, - "menuElement": { - "spacer": "Espacement", - "missingLinkValue": "Nom du lien manquant...", - "emptyLinkValue": "Nom du lien vide...", - "missingButtonValue": "Nom du bouton manquant...", - "missingValue": "Aucune entrée de menu", - "emptyButtonValue": "Nom du bouton vide...", - "separator": "Séparateur" - }, - "menuElementForm": { - "menuItemsLabel": "Entrées du menu", - "addMenuItemLink": "Ajouter...", - "menuItemTypeItem": "Item", - "menuItemAddSeparator": "Séparateur", - "menuItemVariantLink": "Lien", - "menuItemVariantLabel": "Variante", - "namePlaceholder": "Page", - "noMenuItemsMessage": "Cliquez sur \"Ajouter\" pour ajouter votre première entrée de menu.", - "menuItemAddLink": "Lien", - "alignment": "Alignement", - "menuItemAddButton": "Bouton", - "menuItemDefaultName": "Page", - "menuItemTypeLabel": "Type", - "menuItemSubLinkDefaultName": "Lien enfant", - "menuItemLabelLabel": "Label", - "menuItemAddSpacer": "Espacement", - "menuItemTypeSeparator": "Séparateur", - "menuItemVariantButton": "Bouton", - "addSubLink": "Ajouter un lien enfant", - "eventDescription": "Pour configurer les actions de ce bouton, ouvrez l'onglet « Événements » de l'élément courant." - }, - "simpleContainerElementForm": { - "noConfigurationOptions": "L'élément conteneur n'a pas de configuration." - }, - "ratingFieldForm": { - "style": "Style", - "star": "Étoile", - "thumbsUp": "Pouce en l'air", - "value": "Valeur", - "heart": "Cœur", - "maxValue": "Valeur maximale", - "flag": "Drapeau", - "color": "Couleur" - }, - "ratingElementForm": { - "flag": "Drapeau", - "ratingStyle": "Style", - "star": "Étoile", - "thumbsUp": "Pouce en l'air", - "maxValue": "Maximum", - "heart": "Cœur", - "color": "Couleur", - "smile": "Sourire" - }, - "linkDecorations": { - "normal": "Normal", - "plain": "Normal" - }, - "userSourceDropdown": { - "addUserSource": "Ajouter une nouvelle source d'utilisateurs", - "noUserSources": "Aucune source d'utilisateur disponible", - "label": "Source d'utilisateur" - }, - "textDecorationSelector": { - "underline": "Souligner", - "stroke": "Barrer", - "italic": "Italique", - "uppercase": "Majuscules" - }, - "abFileInput": { - "delete": "Supprimer" - }, - "automationSettingsModal": { - "title": "Scénario" - }, - "elementsGuidedTourStep": { - "title": "Ajouter des éléments à votre page", - "content": "Toutes les applications ont besoin de composants ! Ajoutez des éléments tels que des tableaux, des formulaires, des boutons, etc. pour donner vie à votre application." - }, - "dataGuidedTourStep": { - "title": "Connectez vos données", - "content": "Liez vos tables Baserow ici pour afficher, filtrer et mettre à jour vos données de manière dynamique sur différents éléments." - }, - "previewGuidedTourStep": { - "title": "Votre centre de contrôle", - "content": "C'est ici que vous configurez les pages de votre application. Ajoutez des éléments, prévisualisez le résultat et structurez votre application exactement comme vous le souhaitez." - }, - "devicesGuidedTourStep": { - "title": "Prévisualisation sur différents appareils", - "content": "Passez d'un aperçu pour ordinateur de bureau à un aperçu pour tablette et à un aperçu pour mobile afin de voir comment votre application se présente sur différentes tailles d'écran. Assurez-vous que votre design fonctionne parfaitement sur tous les appareils !" - }, - "sidePanelGuidedTourStep": { - "title": "Panneau latéral : Personnaliser les éléments", - "content": "*Onglet Général** - Configurez l'élément sélectionné.\n\n**Onglet Style** - Personnalisez le remplissage, la marge, les bordures, etc.\n\n**Onglet Visibilité** - Contrôlez qui peut voir cet élément : les utilisateurs connectés, les utilisateurs déconnectés ou des rôles spécifiques.\n\n**Onglet Événements** - Si l'élément prend en charge des actions, configurez-les ici pour une interactivité dynamique." - }, - "previewPublishGuidedTourStep": { - "title": "Prévisualiser et publier votre application", - "content": "Cliquez sur **Preview** pour tester votre application en privé. Lorsque vous êtes prêt, cliquez sur **Publier** pour la partager avec le public via un domaine." - }, - "builderToast": { - "details": "Détails", - "defaultTitle": "Erreur inattendue", - "defaultMessage": "Une erreur inattendue s'est produite. Veuillez réessayer plus tard.", - "invalidContextTitle": "Demande non valide", - "invalidContextMessage": "La demande n'est pas valide.", - "InvalidContentTitle": "Formulaire invalide", - "invalidContentMessage": "Un ou plusieurs champs contiennent des valeurs non valides.", - "serviceMisconfiguredTitle": "Configuration incomplète", - "serviceMisconfiguredMessage": "Veuillez vérifier la configuration.", - "errorWorkflowActionDispatch": "L'action « {nom} » a échoué : ", - "errorDataSourceDispatch": "Échec du chargement de « {name} » : " - } + "sidebarComponentBuilder": { + "settings": "Paramètres", + "createPage": "Nouvelle page" + }, + "createPageModal": { + "header": "Créer une page", + "submit": "Ajouter une page" + }, + "pageForm": { + "errorNameNotUnique": "Une page avec le même nom existe déjà", + "defaultName": "Page", + "nameLabel": "Titre", + "errorPathNotUnique": "Un chemin similaire existe déjà", + "errorValidPathCharacters": "Le chemin contient des caractères invalides", + "errorStartingSlash": "Un chemin doit commencer par un '/'", + "pathLabel": "Chemin", + "nameTitle": "Nom", + "nameSubtitle": "Nom unique de la page", + "pathSubtitle": "Un paramètre peut être ajouté en faisant précéder son nom par « : ». Par exemple - /page/:id -", + "pathParamsTitle": "Paramètres de chemin", + "pathParamsSubtitle": "Sont définis par - :parameter - dans le chemin", + "pathParamsSubtitleTutorial": "Les paramètres de chemin peuvent être utilisés pour charger dynamiquement les données, en fonction du paramètre fourni. Ajoutez - :parameter - au chemin pour en ajouter un.", + "pathTitle": "Chemin", + "namePlaceholder": "Saisir un nom...", + "pathPlaceholder": "Entrez un chemin...", + "queryParamsSubtitleTutorial": "Les paramètres de requête sont optionnels et peuvent être utilisés pour selectionner dynamiquement des données par exemple.", + "addAnotherParameter": "Ajouter un paramètre de requête", + "addParameter": "Ajouter un paramètre de requête", + "queryParamsTitle": "Paramètres de requête" + }, + "builderSettingTypes": { + "integrationsName": "Intégrations", + "themeName": "Thème", + "domainsName": "Domaines", + "userSourcesName": "Utilisateurs", + "generalName": "Général" + }, + "builderForm": { + "submit": "Ajouter une application" + }, + "builderSettingsModal": { + "title": "Application" + }, + "pageHeaderItemTypes": { + "labelDataSource": "Données", + "labelVariables": "Variables", + "labelSettings": "Configuration", + "labelElements": "Éléments" + }, + "elementsContext": { + "searchPlaceholder": "Chercher des éléments", + "noElements": "Aucun élément trouvé", + "noPageElements": "Aucun élément trouvé pour cette page" + }, + "elementType": { + "heading": "Titre", + "text": "texte", + "textDescription": "Texte multiligne", + "headingDescription": "Titre de page", + "link": "Lien", + "linkDescription": "Un lien vers une page/URL", + "image": "Image", + "imageDescription": "Affiche une image", + "inputText": "Champ de saisie", + "inputTextDescription": "Un champ de saisie", + "columnDescription": "Conteneur multi-colonnes", + "column": "Colonnes", + "table": "Table", + "tableDescription": "Une table de données", + "button": "Bouton", + "buttonDescription": "Un bouton", + "formContainer": "Formulaire", + "formContainerDescription": "Un élément Formulaire", + "dropdown": "Liste déroulante", + "dropdownDescription": "Une liste déroulante", + "checkbox": "Case à cocher", + "checkboxDescription": "Une case à cocher", + "iframe": "IFrame", + "iframeDescription": "Un element IFrame", + "authForm": "Formulaire de connexion", + "authFormDescription": "Formulaire de connexion pour les utilisateurs", + "repeat": "Répétition", + "repeatDescription": "Répète des éléments", + "choice": "Sélecteur", + "choiceDescription": "Pour la sélection d'une ou plusieurs valeurs", + "recordSelector": "Sélecteur d'enregistrement", + "recordSelectorDescription": "Pour sélectionner les enregistrements d'une source", + "dateTimePicker": "Sélecteur de date", + "dateTimePickerDescription": "Un champ de saisie de la date et de l'heure", + "headerDescription": "Un conteneur partagé entre plusieurs pages", + "footer": "Pied de page multi-page", + "footerDescription": "Un conteneur partagé entre plusieurs pages", + "notAllowedUnlessTop": "Cet élément n'est autorisé qu'en haut de la page", + "notAllowedUnlessBottom": "Cet élément n'est autorisé qu'en bas de page", + "notAllowedUnlessHeader": "Cet élément n'est autorisé qu'à l'intérieur de l'en-tête de la page", + "notAllowedUnlessFooter": "Cet élément n'est autorisé qu'à l'intérieur du pied de page", + "notAllowedInsideSameType": "Cet élément n'est pas autorisé dans un conteneur du même type", + "header": "En-tête multi-pages", + "notAllowedInsideContainer": "Cet élément n'est pas autorisé à l'intérieur d'un conteneur", + "notAllowedLocation": "Cet élément n'est pas autorisé à cet endroit", + "menu": "Menu", + "simpleContainerDescription": "Un conteneur pour grouper des éléments", + "simpleContainer": "Conteneur", + "menuDescription": "Un élément de menu", + "ratingDescription": "Affichage d'une notation", + "invalidElementValue": "Valeur non valide : {value}", + "ratingInput": "Champ de notation", + "rating": "Notation", + "ratingInputDescription": "Un champ de notation", + "fileInputDescription": "Un champ de formulaire pour envoyer des fichiers", + "fileInput": "Champ fichier", + "errorPageParameterInError": "Au moins un paramètre de page est mal configuré", + "errorNavigationUrlMissing": "Propriété URL de navigation manquante", + "errorImageFileMissing": "Fichier image manquant", + "errorImageUrlMissing": "Propriété « Image URL » manquante", + "errorNoWorkflowAction": "Aucune action de workflow n'est configurée", + "errorOptionsMissing": "Aucune option configurée", + "errorIframeUrlMissing": "Propriété URL IFrame manquante", + "errorIframeContentMissing": "Contenu de l'IFrame manquant", + "errorNoMenuItem": "Aucun élément de menu n'est configuré", + "errorMenuItemInError": "Au moins un menu est mal configuré", + "errorSubMenuItemInError": "Au moins un sous-menu est mal configuré", + "errorValueMissing": "Propriété des valeurs manquantes", + "errorEmptyContainer": "Ce conteneur est vide", + "errorParentWithDataSourceMissing": "Aucune source de données sélectionnée sur l'élément ou un conteneur parent", + "errorDataSourceMissing": "Aucune source de données sélectionnée", + "errorSchemaPropertyMissing": "Aucune propriété de schéma sélectionnée", + "errorWorkflowActionInError": "Au moins une action est mal configurée", + "errorCollectionFieldInError": "Au moins un champ est mal configuré", + "errorNavigateToPageMissing": "Propriété Naviguer vers manquante" + }, + "elementMenu": { + "moveDown": "Descendre", + "moveUp": "Monter", + "moveRight": "Déplacer à droite", + "moveLeft": "Déplacer à gauche", + "selectParent": "Sélectionner le parent" + }, + "addElementButton": { + "label": "Élément" + }, + "addElementModal": { + "title": "Ajouter un élément", + "searchPlaceholder": "Chercher des éléments", + "disabledElementTooltip": "Non disponible à l'intérieur de cet élément", + "elementInProgress": "Ajout d'un élément..." + }, + "duplicatePageJobType": { + "duplicating": "Duplication", + "duplicatedTitle": "Page dupliquée", + "name": "Duplication de page" + }, + "pageSidePanelType": { + "general": "Général", + "visibility": "Visibilité", + "events": "Événements", + "style": "Style", + "eventsTabDeactivatedNoEvents": "Cet élément ne supporte aucun événement", + "eventsTabInError": "Une ou plusieurs actions sont mal configurées." + }, + "emptySidePanelState": { + "message": "Cliquez sur l'un des éléments pour obtenir plus de détails" + }, + "headingElement": { + "noValue": "Aucun titre...", + "emptyValue": "Titre vide...", + "missingValue": "Titre manquant..." + }, + "headingElementForm": { + "levelTitle": "Niveau", + "textTitle": "Texte", + "textPlaceholder": "Saisir le texte...", + "headingName": "Titre {level} ", + "textError": "La valeur est invalide." + }, + "textElement": { + "noValue": "texte vide...", + "missingValue": "Texte manquant...", + "emptyValue": "Texte vide..." + }, + "textElementForm": { + "textTitle": "Texte", + "textPlaceholder": "Saisir le texte...", + "textError": "La valeur est invalide.", + "textFormatTypeLabel": "Format", + "textFormatTypePlain": "Texte simple", + "textFormatTypeMarkdown": "Markdown" + }, + "pageErrors": { + "errorPathNotUnique": "Un chemin similaire existe déjà", + "errorUniquePathParams": "Les paramètres de chemin doivent être uniques.", + "errorNameNotUnique": "Une page avec le même nom existe déjà", + "errorValidPathCharacters": "Le chemin contient des caractères invalides", + "errorStartingSlash": "Un chemin doit commencer par un '/'", + "errorUniqueValidQueryParams": "Les noms des paramètres de requête doivent être uniques et valides.", + "errorNameNotUniqueDescription": "Veuillez saisir un nom unique pour la page" + }, + "publishActionModal": { + "publish": "Publier", + "publishSucceedTitle": "Site publié", + "publishSucceedDescription": "Le site a été publié avec succès.", + "publishFailedTitle": "La publication du site a échoué", + "publishFailedDescription": "La publication du site a échoué. Veuillez réessayer plus tard.", + "openInNewTab": "Ouvrir dans un nouvel onglet", + "title": "Publication", + "noDomain": "Vous devez disposer d’au moins un domaine pour publier votre application.", + "description": "Mettez votre application en ligne en publiant sur l’un des domaines. Notez que votre application peut avoir plusieurs domaines, chacun avec une version différente de l’application.", + "importingState": "Import en cours…", + "addDomain": "Ajouter un domaine", + "publishSucceedLink": "Voir le site" + }, + "pageActionTypes": { + "preview": "Aperçu", + "publish": "Publication" + }, + "lastPublishedDomainDate": { + "neverPublished": "jamais", + "lastPublished": "Dernière publication :" + }, + "elementForms": { + "textInputPlaceholder": "Saisissez un texte...", + "urlInputPlaceholder": "Saisissez une URL...", + "invalidFormula": "La formule est invalide" + }, + "imageElement": { + "emptyState": "Aucun texte alternatif défini...", + "missingValue": "Texte alternatif manquant...", + "emptyValue": "Texte alternitf vide..." + }, + "imageElementForm": { + "fileLabel": "Image", + "invalidUrlError": "L’URL n’est pas valide", + "altTextTitle": "Texte alternatif", + "urlWarning": "Remarque : assurez-vous que vous contrôlez ou faites confiance à l'URL saisie.", + "uploadFileButton": "Envoyer un fichier", + "fileSourceTypeUpload": "Envoyer", + "fileSourceTypeURL": "URL", + "altTextDescription": "Est utilisé par les lecteurs d'écran et affiché si l'image ne peut pas être chargée", + "maxWidthLabel": "Largeur maximale", + "maxHeightLabel": "Hauteur maximale", + "maxHeightPlaceholder": "Saisir une hauteur maximale en pixels.", + "imageConstraintsLabel": "Contraintes", + "imageConstraintCover": "Couvrir", + "imageConstraintCoverDisabled": "Indisponible avec une hauteur maximale vide.", + "imageConstraintContain": "Contenir", + "imageConstraintContainDisabled": "Indisponible avec une hauteur maximale.", + "maxWidthPlaceholder": "Saisir une largeur maximale en pourcentage.", + "imageConstraintFullWidth": "Extension à la largeur maximale" + }, + "domainSettings": { + "titleOverview": "Domaines", + "titleAddDomain": "Ajouter un domaine", + "addDomain": "Ajouter un domaine", + "noDomainMessage": "Vous n’avez pas encore associé de domaine à cette application. Vous devez ajouter un domaine pour pouvoir publier votre application. Vous pouvez publier différentes versions de votre application pour chaque domaine répertorié ici." + }, + "dnsStatus": { + "description": "Accédez aux paramètres DNS de vos domaines et apportez les modifications suivantes", + "valueHeader": "Valeur", + "typeHeader": "Type", + "hostHeader": "Hôte" + }, + "customDomainForm": { + "domainNameLabel": "Nom de domaine", + "notUniqueDomain": "Le domaine fourni est déjà utilisé", + "invalidDomain": "Le nom de domaine fourni est invalide" + }, + "domainCard": { + "refresh": "Actualiser les paramètres", + "detailLabel": "Afficher les détails", + "unpublishedDomainWarning": "Veuillez publier l'application pour la rendre disponible sur ce domaine." + }, + "domainTypes": { + "customName": "Domaine personnalisé", + "subDomain": "Sous-domaine de {domain}", + "subDomainName": "Sous-domaine" + }, + "linkElement": { + "noValue": "Sans nom...", + "missingValue": "Texte du lien manquant...", + "emptyValue": "Texte du lien vide..." + }, + "linkElementForm": { + "text": "Texte", + "textPlaceholder": "Saisissez le texte...", + "navigateTo": "Naviguer vers", + "navigateToNotSet": "Aucune destination", + "navigateToCustom": "URL personnalisée", + "url": "URL de destination", + "urlPlaceholder": "Saisissez une URL...", + "variant": "Variante", + "paramsInErrorButton": "Mettre à jour les paramètres", + "widthFull": "Pleine largeur", + "widthAuto": "Auto", + "paramPlaceholder": "Entrez une valeur...", + "variantLink": "Lien", + "variantButton": "Bouton", + "width": "Largeur", + "targetSelf": "Même onglet", + "target": "Ouvrir dans...", + "targetNewTab": "Nouvel onglet", + "pageParameterTypeError": "Type non valide", + "paramsInErrorDescription": "Les paramètres enregistrés ne correspondent pas aux paramètres de la page. La page a probablement été mise à jour ou supprimée.", + "buttonColor": "Couleur du bouton" + }, + "alignmentSelector": { + "alignment": "Alignement", + "alignmentLeft": "Lien", + "alignmentCenter": "Centré", + "alignmentRight": "Droite" + }, + "pageSettings": { + "pageUpdatedTitle": "Mise à jour", + "pageUpdatedDescription": "Les paramètres de la page ont été mis à jour.", + "title": "Page" + }, + "pathParamTypes": { + "textName": "Texte", + "numericName": "Numérique" + }, + "publicPage": { + "pageNotFound": "Page non trouvée", + "siteNotFound": "Site introuvable", + "authorizedToastTitle": "Authentification requise", + "loginToastTitle": "Authentification réussie", + "loginToastMessage": "Vous avez été authentifié·e avec succès.", + "authorizedToastMessage": "Vous devez être authentifié·e pour accéder à cette page. Veuillez vous connecter pour continuer." + }, + "integrationSettings": { + "title": "Intégrations", + "noIntegrationMessage": "Vous n'avez pas encore créé d'intégrations. Elles peuvent être créés lors de l'ajout d'une source de données, d'une action ou d'une authentification utilisateur.", + "integrationMessage": "Vous pouvez créer de nouvelles intégrations en ajoutant une source de données, une action ou une authentification utilisateur." + }, + "dataSourceForm": { + "namePlaceholder": "Nom de la source", + "addIntegration": "Ajouter une intégration", + "noIntegrations": "Aucune intégration trouvée.", + "selectTypeFirst": "Sélectionnez d'abord le service", + "servicePlaceholder": "Sélectionnez un service", + "errorUniqueName": "Le nom de la source de données doit être unique.", + "integrationPlaceholder": "Sélectionnez une intégration", + "actionLabel": "Action", + "integrationLabel": "Intégration", + "nameLabel": "Nom" + }, + "dataSourceContext": { + "addDataSource": "Ajouter une source de données", + "noDataSourceMessage": "Les source de données peuvent être utilisées pour récupérer des données à partir de sources internes ou externes et les afficher sur la page.", + "noDataSourceTitle": "Vous n’avez pas encore ajouté de source de données.", + "pageDataSourceTitle": "Pour cette page", + "sharedDataSourceTitle": "Partagée entre les pages", + "sharedDataSourceDescription": "Accessible sur toutes les pages et récupérée une fois lors du premier chargement de la page.", + "pageDataSourceDescription": "Récupérée lorsque l'utilisateur navigue vers cette page." + }, + "pageSettingsTypes": { + "pageName": "Page" + }, + "verticalAlignmentSelector": { + "alignmentTop": "En haut", + "alignmentBottom": "En bas", + "alignmentCenter": "Au milieu", + "alignment": "Alignement vertical" + }, + "horizontalAlignmentSelector": { + "alignmentLeft": "À gauche", + "alignmentRight": "À droite", + "alignment": "Alignement horizontal", + "alignmentCenter": "Centré" + }, + "inputTextElementForm": { + "placeholderPlaceholder": "Entrez un texte provisoire (optionnel)", + "valueTitle": "Valeur par défaut", + "valuePlaceholder": "Entrez une valeur par défaut (optionnel)", + "placeholderTitle": "Texte provisoire", + "requiredTitle": "Obligatoire", + "labelTitle": "Étiquette", + "labelPlaceholder": "Entrez une étiquette (facultatif)", + "multilineTitle": "Multiligne", + "rowsTitle": "Nombre de lignes", + "rowsPlaceholder": "Saisir le nombre de lignes minimum", + "validationTypeAnyLabel": "Toutes les valeurs", + "validationTypeAnyDescription": "Permet d'accepter n'importe quelle valeur dans cette entrée.", + "validationTypeIntegerLabel": "Nombre", + "validationTypeEmailLabel": "Courriel", + "validationTypeEmailDescription": "N'autoriser que les courriels dans ce champ.", + "validationTypeIntegerDescription": "N'autoriser que les valeurs numériques dans ce champ (accepte les entiers et les décimaux).", + "inputTypeTextLabel": "Texte", + "inputTypePasswordLabel": "Mot de passe", + "inputType": "Type de l'entrée", + "passwordTypeWarning": "Les mots de passe sont des données sensibles. Faites attention à la manière dont vous les traitez et les stockez dans votre application." + }, + "columnElementForm": { + "columnGapPlaceholder": "Entrez l'espace entre les colonnes...", + "columnGapTitle": "Espace entre colonnes", + "columnAmountTitle": "Mise en page", + "columnAmountName": "pas de colonnes | 1 colonne | {columnAmount} colonnes", + "verticalAlignment": "Alignement vertical" + }, + "tableElementForm": { + "addField": "ajouter un champ", + "itemsPerPage": "Lignes par page", + "fieldValueLabel": "Valeur", + "dataSource": "Source de données", + "fieldValuePlaceholder": "Saisir la valeur...", + "itemsPerPagePlaceholder": "Saisir la valeur...", + "fields": "Colonnes", + "fieldType": "Type", + "fieldDefaultName": "Colonne", + "selectSourceFirst": "Choisissez une source de données et/ou une propriété pour commencer à configurer vos champs.", + "buttonColor": "Couleur du bouton", + "refreshFieldsFromDataSource": "Réinitialiser les champs à partir de la source de données", + "name": "Nom", + "orientation": "Orientation", + "orientationHorizontal": "Horizontale", + "orientationVertical": "Verticale", + "buttonLoadMoreLabel": "Libellé « afficher plus »", + "propertySelectorMissingArrays": "Aucun champ à valeurs multiples n'a été trouvé pour être utilisé comme données.", + "noName": "Aucun nom" + }, + "mainThemeConfigBlock": { + "colorsLabel": "Couleurs", + "primaryColor": "Primaire", + "headingValue": "Titre ", + "typography": "Typographie", + "fontSizeError": "La valeur doit être comprise entre 1 et 100.", + "headingLabel": "Titre {i} (h{i})", + "secondaryColor": "Secondaire" + }, + "widthSelector": { + "widthFull": "Pleine largeur", + "widthAuto": "Auto", + "width": "Largeur" + }, + "defaultStyleForm": { + "boxTop": "Haut", + "boxBottom": "Bas", + "widthLabel": "Largeur", + "backgroundLabel": "Arrière plan", + "backgroundColor": "Couleur d'arrière-plan", + "boxLeft": "Gauche", + "boxRight": "Droit", + "backgroundImageMode": "Mode de remplissage", + "backgroundImage": "Image", + "cssClasses": "Classes CSS", + "cssClassesHelp": "Définissez une liste de classes séparées par des espaces pour cet élément qui apparaîtra dans le code HTML généré.", + "cssClassesPlaceholder": "classe1 classe2..." + }, + "buttonElementForm": { + "valuePlaceholder": "Saisir le texte...", + "valueLabel": "Texte du bouton", + "buttonColor": "Couleur du bouton" + }, + "subDomainDetails": { + "text": "Les paramètres DNS du domaine ont déjà été configurés et vérifiés. Cela fonctionne sans qu'il soit nécessaire d'apporter des modifications supplémentaires." + }, + "notificationWorkflowActionForm": { + "descriptionLabel": "Description", + "descriptionPlaceholder": "Saisir le texte...", + "titleLabel": "Titre", + "titlePlaceholder": "Saisir le texte..." + }, + "currentRecordDataProviderType": { + "index": "Index", + "firstPartName": "Source de données : {nom}", + "schemaProperty": "{prefixName} : {schemaProperty}" + }, + "domainForm": { + "notUniqueDomain": "Le domaine fourni est déjà utilisé", + "invalidDomain": "Le nom de domaine fourni est invalide" + }, + "dataProviderType": { + "currentRecord": "Source de données", + "pageParameter": "Paramètre", + "dataSource": "Données reçues", + "formData": "Données de formulaire", + "user": "Utilisateur", + "previousAction": "Action précédente", + "dataSourceContext": "Choix disponibles", + "metadata": "Métadonnées" + }, + "openPageWorkflowActionForm": { + "urlLabel": "URL", + "urlPlaceholder": "Saisir le texte..." + }, + "event": { + "addAction": "ajouter une action" + }, + "buttonElement": { + "noValue": "Sans nom...", + "missingValue": "Texte du bouton manquant...", + "emptyValue": "Texte du bouton vide..." + }, + "tableElement": { + "empty": "Aucun résultat n'a été trouvée.", + "showMore": "Afficher plus" + }, + "fontSidePanelForm": { + "label": "Couleur de la police" + }, + "styleBoxForm": { + "paddingError": "La valeur doit être comprise entre 0 et 200.", + "borderLabel": "Épaisseur", + "paddingLabel": "Espacement", + "error": "La valeur doit être comprise entre 0 et 200.", + "marginLabel": "Marge", + "borderColor": "Couleur de la bordure" + }, + "subDomainForm": { + "domainNameLabel": "Nom de domaine" + }, + "workflowActionTypes": { + "notificationLabel": "Afficher une notification", + "openPageLabel": "Ouvrir une page", + "updateRowLabel": "Mise à jour de ligne", + "createRowLabel": "Création de ligne", + "logoutLabel": "Déconnexion", + "refreshDataSourceLabel": "Actualiser une source de données", + "deleteRowLabel": "Supprimer une ligne", + "httpRequest": "Envoyer une requête HTTP", + "errorNavigateToPageMissing": "Propriété Naviguer vers manquante", + "errorPageParameterInError": "Au moins un paramètre de page est mal configuré", + "errorNavigationUrlMissing": "Propriété URL de destination manquante", + "errorDataSourceMissing": "Aucune source de données sélectionnée" + }, + "getFormulaComponent": { + "errorTooltip": "Référence invalide" + }, + "eventTypes": { + "clickLabel": "Au clic", + "submitLabel": "Sur validation", + "afterLoginLabel": "Après la connexion" + }, + "linkFieldForm": { + "fieldLinkNamePlaceholder": "Saisir la valeur...", + "fieldValuePlaceholder": "Saisir la valeur...", + "fieldLinkNameLabel": "Texte du lien", + "fieldValueLabel": "Url", + "buttonColor": "Couleur du bouton" + }, + "updateUserSourceForm": { + "nameFieldLabel": "Nom", + "nameFieldPlaceholder": "Saisir un nom...", + "integrationFieldLabel": "Intégration", + "authTitle": "Authentification", + "addProvider": "Ajouter un fournisseur" + }, + "widthTypes": { + "full": "Pleine largeur", + "small": "Petite", + "medium": "Moyenne", + "normal": "Normale", + "fullBleed": "Fond étendu", + "fullWidth": "Pleine largeur" + }, + "userSourceSettings": { + "titleOverview": "Sources d'utilisateurs", + "titleUpdateUserSource": "Modifier la source d'utilisateurs", + "titleAddUserSource": "Nouvelle source d'utilisateurs", + "addUserSource": "Ajouter la source d'utilisateurs", + "noUserSourceMessage": "Vous n'avez pas encore ajouté de source d'utilisateurs à cette application. Vous devez ajouter une source d'utilisateurs si vous souhaitez que les utilisateurs puissent authentifier votre application." + }, + "upsertRowWorkflowActionForm": { + "rowIdPlaceholder": "Saisir l'ID d'une ligne", + "fieldMappingPlaceholder": "Choisir la valeur du champ", + "integrationDropdownLabel": "Intégration", + "rowIdLabel": "ID de la ligne", + "noTableSelectedMessage": "Choisissez une table pour commencer à configurer vos champs." + }, + "dispatchWorkflowActionError": { + "defaultMessage": "Une erreur s'est produite lors du traitement de cette action.", + "defaultTitle": "Erreur", + "formDataInvalidTitle": "Formulaire invalide", + "formDataInvalidMessage": "Un ou plusieurs champs contiennent des valeurs invalides." + }, + "collectionFieldType": { + "text": "Texte", + "link": "Lien", + "boolean": "Booléen", + "tags": "Étiquettes", + "button": "Bouton", + "image": "Image", + "rating": "Notation", + "errorValueMissing": "Valeur manquante" + }, + "createUserSourceForm": { + "userSourceName": "Nom", + "userSourceIntegration": "Intégration", + "userSourceType": "Type" + }, + "formDataProviderType": { + "nodeMissing": "Manquant" + }, + "textFieldForm": { + "fieldValuePlaceholder": "Saisir la valeur...", + "fieldValueLabel": "Valeur" + }, + "backgroundTypes": { + "color": "Couleur", + "none": "Aucun" + }, + "pagePreview": { + "emptyMessage": "Cliquez pour créer un élément", + "header": "EN-TÊTE", + "footer": "PIED DE PAGE" + }, + "formContainerElementForm": { + "submitButtonLabel": "Bouton de soumission", + "submitButtonPlaceholder": "Saisir la valeur...", + "buttonColor": "Couleur du bouton", + "resetToInitialValuesTitle": "Réinitialiser les valeurs par défaut après soumission", + "resetToInitialValuesDescription": "Si cette case est cochée, le formulaire sera réinitialisé avec les valeurs par défaut après une soumission réussie. Si la case n'est pas cochée, les valeurs saisies par l'utilisateur seront conservées." + }, + "linkField": { + "details": "Détails" + }, + "generalForm": { + "labelPlaceholder": "Saisir un label", + "valuePlaceholder": "Saisir une valeur", + "requiredTitle": "Obligatoire", + "labelTitle": "Label", + "valueTitle": "Valeur", + "placeholderTitle": "Texte provisoire", + "placeholderPlaceholder": "Saisir un texte provisoire", + "validationTitle": "Validation", + "defaultValueTitle": "Valeur par défaut", + "defaultValuePlaceholder": "Saisir la valeur par défaut" + }, + "iframeElementForm": { + "urlPlaceholder": "Lien vers la ressource externe à intégrer", + "empty": "IFrame vide...", + "sourceTypeLabel": "Type de la source", + "urlLabel": "URL", + "urlHelp": "Remarque : assurez-vous que vous contrôlez ou faites confiance à l'URL saisie.", + "embedLabel": "Embarquer", + "embedPlaceholder": "Contenu HTML brut à intégrer", + "heightLabel": "Hauteur (px)", + "heightPlaceholder": "Hauteur en pixels", + "emptyValue": "Source vide...", + "missingValue": "Source manquante..." + }, + "linkNavigationSelection": { + "paramPlaceholder": "Saisir une valeur...", + "urlPlaceholder": "Saisir une URL...", + "navigateTo": "Naviguer vers", + "navigateToCustom": "URL personnalisée", + "url": "URL de destination", + "paramsInErrorDescription": "Les paramètres enregistrés ne correspondent pas aux paramètres de la page. La page a probablement été mise à jour ou supprimée.", + "paramsInErrorButton": "Mettre à jour les paramètres", + "targetSelf": "Même onglet", + "target": "Ouvrir dans...", + "targetNewTab": "Nouvel onglet" + }, + "dropdownOptionSelector": { + "label": "Options", + "addOption": "ajouter une option", + "value": "Valeur", + "name": "Nom" + }, + "checkboxElementForm": { + "labelTitle": "Libéllé de l'option", + "valueTitle": "Valeur par défaut", + "requiredTitle": "Obligatoire" + }, + "authFormElement": { + "emailPlaceholder": "Saisissez votre courriel...", + "passwordPlaceholder": "Saisissez votre mot de passe...", + "selectOrConfigureUserSourceFirst": "Choisissez une source d'utilisateurs pour commencer à utiliser ce formulaire d'authentification.", + "email": "Courriel", + "password": "Mot de passe" + }, + "userSourceUsersContext": { + "searchPlaceholder": "Rechercher un utilisateur", + "anonymous": "Anonyme", + "unnamed": "Sans nom", + "noEmail": "Pas de courriel" + }, + "userSelector": { + "viewAs": "Voir en tant que : {user}", + "anonymous": "Anonyme", + "member": "Membre de {prefix}" + }, + "dispatchDataSourceError": { + "defaultTitle": "Erreur de chargement des données", + "defaultMessage": "Une erreur s'est produite lors du chargement des données de la page." + }, + "authFormElementForm": { + "userSource": "Source d'utilisateur" + }, + "formContainerElement": { + "submitDeactivatedText": "Veuillez remplir tous les champs requis pour soumettre le formulaire", + "defaultSubmitButtonLabel": "Valider" + }, + "visibilityForm": { + "allVisitors": "Tous les visiteurs", + "loggedInVisitors": "Visiteurs connectés", + "notLoggedInVisitors": "Visiteurs déconnectés", + "warningTitle": "C'est un dispositif de sécurité", + "warningMessage": "Veuillez consulter la <a href='https://baserow.io/user-docs/application-builder-element-visibility#note-accessing-hidden-data-via-api' target='_blank'>documentation</a> pour plus d'informations sur la sécurité des données.", + "excludedRolesLabel": "tous les rôles sauf", + "switchAllowLabel": "Autoriser", + "switchDisallowLabel": "Interdir", + "rolesSelectAll": "Sélectionner tout", + "rolesDeselectAll": "Désélectionner tout", + "rolesSelectHint": "Sélectionnez un ou plusieurs rôles", + "roleTypesHint": "Sélectionnez un type de rôle", + "roleTypeDisallowAllRolesExcept": "Autoriser les rôles...", + "roleTypeAllowAllRoles": "Tous les rôles", + "roleTypeAllowAllRolesExcept": "Interdire les rôles...", + "errorFetchingRolesMessage": "Il y a eu un problème lors de la récupération des rôles d'utilisateur.", + "rolesAllMembersOf": "Tous les membres de {name}", + "noRole": "Sans rôle", + "errorFetchingRolesTitle": "Impossible de récupérer les rôles des utilisateurs", + "visibilityCondition": "Conditions de visibilité", + "visibilityConditionHelper": "Si le résultat de cette formule est vrai et que le statut du visiteur ci-dessus est vrai, l'élément sera visible. Cette condition n'affecte que la visibilité de l'élément. Pour exclure des données de la réponse du serveur, utilisez l'option de filtrage du rôle de l'utilisateur ci-dessus.", + "visibilityConditionPlaceholder": "Condition...", + "documentationLink": "documentation" + }, + "imageInput": { + "labelDescription": "Description par défaut", + "labelButton": "Envoyer" + }, + "generalSettings": { + "cantUpdateApplicationDescription": "Désolé, impossible de mettre à jour l'application.", + "labelButton": "Envoyer la favicon", + "cantUploadFaviconTitle": "Impossible de télécharger le fichier fourni", + "cantUploadFaviconDescription": "Désolé, il n'est pas possible de télécharger l'image. Veuillez vous assurer que le fichier image est unique et qu'il s'agit d'un format d'image pris en charge.", + "cantUpdateApplicationTitle": "Impossible de mettre à jour l'application", + "titleOverview": "Général", + "labelForm": "Favicon", + "labelDescription": "Choisissez un fichier ICO, PNG, GIF ou JPEG de 128x128px." + }, + "repeatElement": { + "showMore": "Afficher plus", + "empty": "Aucun résultat n'a été trouvée.", + "missingDataSourceTooltip": "Choisissez une source de données pour commencer à ajouter des éléments.", + "missingSchemaPropertyTooltip": "Choisissez une propriété pour commencer à ajouter des éléments.", + "emptyState": "Aucun enregistrement n'a été trouvé." + }, + "repeatElementForm": { + "dataSource": "Source de données", + "itemsPerPage": "Lignes par page", + "orientationLabel": "Orientation", + "itemsPerPagePlaceholder": "Saisir la valeur...", + "itemsPerRowLabel": "Nombre de colonne", + "itemsPerRowDescription": "Nombre de colonnes par ligne et type d'appareil.", + "orientationVertical": "Verticale", + "orientationHorizontal": "Horizontale", + "buttonLoadMoreLabel": "Libellé « afficher plus »", + "toggleEditorRepetitionsLabel": "Désactiver temporairement les répétitions", + "propertySelectorMissingArrays": "Aucun champ à valeurs multiples n'a été trouvé pour créer les répétitions.", + "gapLabel": "Espace entre les répétitions", + "gapVerticalLabel": "Vertical", + "gapHorizontalLabel": "Horizontal" + }, + "userDataProviderType": { + "isAuthenticated": "Est authentifié", + "id": "Id", + "email": "Courriel", + "username": "Nom d'utilisateur", + "role": "Rôle" + }, + "buttonFieldForm": { + "labelPlaceholder": "Saisir le nom...", + "infoMessage": "Pour configurer les actions de ce bouton, ouvrez l'onglet \"Événements\" de l'élément courant." + }, + "tagsFieldForm": { + "fieldValuesPlaceholder": "Saisir les valeurs...", + "fieldColorsLabel": "Couleurs", + "fieldColorsPlaceholder": "Choisir les couleurs...", + "fieldValuesLabel": "Valeurs" + }, + "buttonField": { + "noLabel": "Sans nom..." + }, + "themeConfigBlockType": { + "color": "Couleurs", + "page": "Page", + "typography": "Typographie", + "button": "Bouton", + "link": "Lien", + "image": "Image", + "input": "Champs de saisie", + "table": "Table" + }, + "colorThemeConfigBlock": { + "primaryColor": "Primaire", + "secondaryColor": "Secondaire", + "borderColor": "Bordure", + "successColor": "Succès", + "warningColor": "Avertissement", + "errorColor": "Erreur", + "transparent": "Transparent", + "customColors": "Couleurs personnalisées", + "addCustomColor": "Ajouter une couleur personnalisée", + "customColorPrefix": "Ma couleur" + }, + "pageThemeConfigBlock": { + "backgroundColor": "Couleur d'arrière-plan", + "backgroundImage": "Image d'arrière plan", + "backgroundMode": "Mode d'arrière-plan" + }, + "colorThemeConfigBlockType": { + "primary": "Primaire", + "secondary": "Secondaire", + "success": "Succès", + "warning": "Avertissement", + "border": "Bordure", + "error": "Erreur", + "transparent": "Transparent" + }, + "typographyThemeConfigBlock": { + "headingValue": "Titre ", + "color": "Couleur", + "size": "Taille", + "textAlignment": "Alignement", + "bodyLabel": "Corps", + "fontFamily": "Police", + "headingLabel": "Titre {i} (h{i})", + "weight": "Graisse", + "decoration": "Décoration" + }, + "buttonThemeConfigBlock": { + "backgroundColor": "Couleur d'arrière-plan", + "defaultState": "État par défaut", + "hoverState": "État de survol", + "textAlignment": "Alignement du texte", + "alignment": "Alignement", + "width": "Largeur", + "borderSize": "Épaisseur de la bordure", + "borderRadius": "Rayon de l'arrondi", + "padding": "Espacement", + "fontFamily": "Police", + "size": "Taille de la police", + "textColor": "Couleur du texte", + "button": "Bouton", + "borderColor": "Couleur de la bordure", + "weight": "Graisse de la police", + "activeState": "État actif" + }, + "linkThemeConfigBlock": { + "color": "Couleur", + "link": "Lien", + "defaultState": "État par défaut", + "hoverState": "État de survol", + "alignment": "Alignement", + "fontFamily": "Police", + "size": "Taille de la police", + "weight": "Graisse de la police", + "activeState": "État actif", + "decoration": "Décoration" + }, + "imageThemeConfigBlock": { + "alignment": "Alignement", + "maxWidthLabel": "Pleine largeur", + "maxHeightLabel": "Hauteur max.", + "maxHeightPlaceholder": "Entrer une hauteur max.", + "maxWidthPlaceholder": "Entrer une largeur max.", + "imageConstraintsLabel": "Contraintes", + "imageConstraintFullWidth": "Extension à la largeur maximale", + "imageConstraintCover": "Couvrir", + "imageConstraintCoverDisabled": "Indisponible avec une hauteur maximale vide.", + "imageConstraintContain": "Contenir", + "imageConstraintContainDisabled": "Indisponible avec une hauteur maximale.", + "imageBorderRadiusLabel": "Arrondi des coins", + "imageBorderRadiusPlaceholder": "Saisissez la valeur d'arrondi des coins de l'image." + }, + "choiceElementForm": { + "display": "Affichage", + "dropdown": "Liste déroulante", + "radio": "Boutons radio", + "multiple": "Autoriser plusieurs valeurs", + "checkbox": "Case à cocher" + }, + "choiceOptionSelector": { + "label": "Options", + "value": "Valeurs des options", + "valuePlaceholder": "Saisir la valeur", + "name": "Libellés des options", + "namePlaceholder": "Saisir le nom", + "addOption": "ajouter une option", + "optionType": "Type d'options", + "manual": "Manuelle", + "dataSource": "Source de données", + "formulas": "Formules", + "addOptionDescription": "Cliquez sur \"ajouter une option\" pour ajouter des options à votre liste de choix" + }, + "choiceElement": { + "addOptions": "Ajouter des options pour utiliser cet élément..." + }, + "resetButton": { + "reset": "Rétablissement de la valeur par défaut du thème" + }, + "backgroundModes": { + "fill": "Remplir", + "tile": "Tuilage", + "fit": "Contenir" + }, + "customStyle": { + "themeOverrides": "Style spécifique", + "configureThemeOverrides": "Définir les exceptions au thème pour cet élément", + "backToElement": "Retour à la configuration de l'élément" + }, + "inputThemeConfigBlock": { + "label": "Libéllé", + "input": "Champs de saisie", + "backgroundColor": "Couleur de fond", + "textColor": "Couleur du texte", + "borderSize": "Épaisseur de la bordure", + "borderRadius": "Rayon de l'arrondi", + "padding": "Espacement", + "fontFamily": "Police", + "size": "Taille de la police", + "borderColor": "Couleur de bordure", + "weight": "Graisse de la police" + }, + "tableThemeConfigBlock": { + "borderColor": "Couleur de bordure", + "backgroundAlternateColor": "Couleur des rangs pairs", + "backgroundColor": "Couleur de fond", + "textColor": "Couleur du texte", + "borderSize": "Épaisseur de la bordure", + "borderRadius": "Rayon de l'arrondi", + "padding": "Espacement", + "fontFamily": "Police", + "size": "Épaisseur", + "fontSize": "Taille de la police", + "table": "Table", + "header": "En-tête", + "alignment": "Alignement", + "cells": "Cellules", + "separators": "Séparateurs", + "verticalSeparatorColor": "Couleur verticale", + "verticalSeparatorSize": "Taille verticale", + "horizontalSeparatorColor": "Couleur horizontale", + "horizontalSeparatorSize": "Taille horizontale", + "fontWeight": "Graisse de la police" + }, + "localBaserowServiceForm": { + "integrationDropdownLabel": "Intégration", + "rowIdPlaceholder": "Saisir l'ID d'une ligne", + "rowIdLabel": "ID de ligne" + }, + "fieldMappingContext": { + "enableField": "Activer le champ", + "disableField": "Désactiver le champ" + }, + "dropdown": { + "empty": "Aucune option disponible" + }, + "abTable": { + "empty": "Aucun résultat n'a été trouvée.", + "loading": "Chargement..." + }, + "collectionElementForm": { + "noDataSourceMessage": "Choisissez une source de données retournant plusieurs lignes pour lister tous les résultats, ou une source de données retournant une seule ligne pour choisir une propriété à l'intérieur de cette ligne.", + "noSchemaPropertyMessage": "Choisissez une propriété de la source de données à utiliser comme source de données pour votre élément.", + "propertyOptionLabel": "Actions possibles" + }, + "imageFieldForm": { + "fieldSrcLabel": "Source de l'image", + "fieldSrcPlaceholder": "Saisir la valeur", + "fieldAltPlaceholder": "Saisir la valeur...", + "fieldAltLabel": "Texte Alt", + "fieldAltHelp": "Est utilisé par les lecteurs d'écran et affiché si l'image ne peut pas être chargée" + }, + "dataSourceDropdown": { + "noDataSources": "Aucune source de données disponible", + "label": "Source des données", + "shared": "partagée", + "pageOnly": "cette page", + "noSharedDataSources": "Aucune source de données partagée disponible", + "addNew": "Ajouter une nouvelle source de données" + }, + "serviceSchemaPropertySelector": { + "label": "Propriété", + "noProperties": "Aucune propriété disponible" + }, + "recordSelectorElementForm": { + "selectRecordsFrom": "Sélectionner les enregistrements de...", + "record": "Option {id}", + "noDataSourceMessage": "Choisir une source de données avec plusieurs lignes pour lister tous les résultats.", + "optionNameSuffix": "Suffixe des options", + "optionNameSuffixPlaceholder": "Saisir un suffixe...", + "optionNameSuffixHelper": "Ce suffixe est ajouté à chaque nom d'option lorsque vous ouvrez la liste déroulante et permet de les distinguer.", + "itemsPerPage": "Éléments par page", + "itemsPerPagePlaceholder": "Saisir une valeur...", + "multipleLabel": "Autoriser plusieurs valeurs" + }, + "dataSourceItemContext": { + "shareBetweenPages": "Partager entre les pages", + "unshareBetweenPages": "Arréter le partage" + }, + "dataSourceCreateEditModal": { + "editTitle": "Modifier la source de données", + "createTitle": "Créer une source de données", + "sharedWarning": "Cette source de données est partagée, de sorte que vos modifications peuvent affecter plusieurs pages." + }, + "propertyOptionForm": { + "fieldHeading": "Colonne", + "filterHeading": "Filtre", + "sortHeading": "Trier", + "searchHeading": "Chercher", + "optionUnavailable": "Non disponible", + "noPropertiesAvailable": "Aucun champ disponible.", + "formDescription": "Choisissez les propriétés de la source de données que les utilisateurs de l'application peuvent filtrer, trier et rechercher." + }, + "dataSourceItem": { + "notConfigured": "Non configurée" + }, + "recordSelectorElement": { + "emptyAdhocState": "Aucun enregistrement correspondant à '{query}' n'a été trouvé.", + "emptyState": "Aucun enregistrement n'a été trouvé." + }, + "common": { + "dateFormatTitle": "Format de date", + "dateFormatEU": "Européen", + "dateFormatUS": "Américain", + "dateFormatISO": "ISO", + "timeFormatTitle": "Format de l'heure", + "timeFormat24Hour": "24 heures", + "timeFormat12Hour": "12 heures" + }, + "pageVisibilitySettingsTypes": { + "pageName": "Visibilité", + "logInPageInfoTitle": "Les utilisateurs anonymes seront redirigés", + "logInPageInfoMessage": "Les utilisateurs anonymes qui tentent d'accéder à cette page seront redirigés vers la page « {logInPageName} ».", + "logInPageWarningTitle": "La page de connexion n'est pas définie", + "logInPagewarningMessage": "Lorsqu'un utilisateur anonyme tente d'accéder à cette page, il est redirigé vers la page de connexion. Veuillez définir la page de connexion dans les paramètres généraux de l'application." + }, + "dateTimePickerElementForm": { + "includeTime": "Inclure l'heure", + "invalidDateError": "Date non valide. Veuillez vous assurer que la date saisie correspond au format indiqué." + }, + "themeSettings": { + "titleOverview": "Thème" + }, + "pageVisibilitySettings": { + "title": "Visibilité", + "allVisitors": "Tous les visiteurs", + "loggedInVisitors": "Visiteurs connectés", + "description": "Qui peut consulter cette page ?" + }, + "pageEditor": { + "pageNotFound": "Page non trouvée", + "title": "Application" + }, + "builderLoginPageForm": { + "pageDropdownLabel": "Page de connexion", + "pageDropdownPlaceholder": "Sélectionner une page", + "pageDropdownDescription": "Sélectionnez la page de connexion vers laquelle les utilisateurs non connectés doivent être redirigés lorsqu'ils tentent d'accéder à une page restreinte." + }, + "multiPageContainerElementForm": { + "display": "Affichage", + "pagePosition": "Position", + "behaviour": "Comportement", + "selectAll": "Sélectionner tout", + "deselectAll": "Désélectionner tout" + }, + "pageShareType": { + "all": "Sur toutes les pages", + "except": "Exclure les pages sélectionnées", + "only": "Uniquement les pages sélectionnées" + }, + "fontWeightType": { + "extraBlack": "Extra-noir", + "extraBold": "Extra-gras", + "extraLight": "Extra-léger", + "light": "Léger", + "regular": "Normale", + "medium": "Moyenne", + "semiBold": "Semi-gras", + "black": "Noir", + "thin": "Mince", + "bold": "Gras" + }, + "radiusStyleForm": { + "borderRadiusLabel": "Bordure", + "cornerRadiusLabel": "Arrondi des coins", + "backgroundRadiusLabel": "Arrière plan" + }, + "authProviderWithModal": { + "authProviderInError": "Veuillez modifier ce fournisseur pour corriger l'erreur.", + "title": "Modification du fournisseur : {name}" + }, + "queryParamTypes": { + "textName": "Texte", + "numericName": "Numérique" + }, + "addElementCategory": { + "suggestedElement": "Éléments suggérés", + "baseElement": "Éléments basiques", + "formElement": "Éléments de formulaire", + "layoutElement": "Éléments de mise en page" + }, + "orientations": { + "horizontal": "Horizontale", + "vertical": "Verticale", + "label": "Orientation" + }, + "menuElement": { + "spacer": "Espacement", + "missingLinkValue": "Nom du lien manquant...", + "emptyLinkValue": "Nom du lien vide...", + "missingButtonValue": "Nom du bouton manquant...", + "missingValue": "Aucune entrée de menu", + "emptyButtonValue": "Nom du bouton vide...", + "separator": "Séparateur" + }, + "menuElementForm": { + "menuItemsLabel": "Entrées du menu", + "addMenuItemLink": "Ajouter...", + "menuItemTypeItem": "Item", + "menuItemAddSeparator": "Séparateur", + "menuItemVariantLink": "Lien", + "menuItemVariantLabel": "Variante", + "namePlaceholder": "Page", + "noMenuItemsMessage": "Cliquez sur \"Ajouter\" pour ajouter votre première entrée de menu.", + "menuItemAddLink": "Lien", + "alignment": "Alignement", + "menuItemAddButton": "Bouton", + "menuItemDefaultName": "Page", + "menuItemTypeLabel": "Type", + "menuItemSubLinkDefaultName": "Lien enfant", + "menuItemLabelLabel": "Label", + "menuItemAddSpacer": "Espacement", + "menuItemTypeSeparator": "Séparateur", + "menuItemVariantButton": "Bouton", + "addSubLink": "Ajouter un lien enfant", + "eventDescription": "Pour configurer les actions de ce bouton, ouvrez l'onglet « Événements » de l'élément courant." + }, + "simpleContainerElementForm": { + "noConfigurationOptions": "L'élément conteneur n'a pas de configuration." + }, + "ratingFieldForm": { + "style": "Style", + "star": "Étoile", + "thumbsUp": "Pouce en l'air", + "value": "Valeur", + "heart": "Cœur", + "maxValue": "Valeur maximale", + "flag": "Drapeau", + "color": "Couleur" + }, + "ratingElementForm": { + "flag": "Drapeau", + "ratingStyle": "Style", + "star": "Étoile", + "thumbsUp": "Pouce en l'air", + "maxValue": "Maximum", + "heart": "Cœur", + "color": "Couleur", + "smile": "Sourire" + }, + "linkDecorations": { + "normal": "Normal", + "plain": "Normal" + }, + "userSourceDropdown": { + "addUserSource": "Ajouter une nouvelle source d'utilisateurs", + "noUserSources": "Aucune source d'utilisateur disponible", + "label": "Source d'utilisateur" + }, + "textDecorationSelector": { + "underline": "Souligner", + "stroke": "Barrer", + "italic": "Italique", + "uppercase": "Majuscules" + }, + "abFileInput": { + "delete": "Supprimer" + }, + "automationSettingsModal": { + "title": "Scénario" + }, + "elementsGuidedTourStep": { + "title": "Ajouter des éléments à votre page", + "content": "Toutes les applications ont besoin de composants ! Ajoutez des éléments tels que des tableaux, des formulaires, des boutons, etc. pour donner vie à votre application." + }, + "dataGuidedTourStep": { + "title": "Connectez vos données", + "content": "Liez vos tables Baserow ici pour afficher, filtrer et mettre à jour vos données de manière dynamique sur différents éléments." + }, + "previewGuidedTourStep": { + "title": "Votre centre de contrôle", + "content": "C'est ici que vous configurez les pages de votre application. Ajoutez des éléments, prévisualisez le résultat et structurez votre application exactement comme vous le souhaitez." + }, + "devicesGuidedTourStep": { + "title": "Prévisualisation sur différents appareils", + "content": "Passez d'un aperçu pour ordinateur de bureau à un aperçu pour tablette et à un aperçu pour mobile afin de voir comment votre application se présente sur différentes tailles d'écran. Assurez-vous que votre design fonctionne parfaitement sur tous les appareils !" + }, + "sidePanelGuidedTourStep": { + "title": "Panneau latéral : Personnaliser les éléments", + "content": "*Onglet Général** - Configurez l'élément sélectionné.\n\n**Onglet Style** - Personnalisez le remplissage, la marge, les bordures, etc.\n\n**Onglet Visibilité** - Contrôlez qui peut voir cet élément : les utilisateurs connectés, les utilisateurs déconnectés ou des rôles spécifiques.\n\n**Onglet Événements** - Si l'élément prend en charge des actions, configurez-les ici pour une interactivité dynamique." + }, + "previewPublishGuidedTourStep": { + "title": "Prévisualiser et publier votre application", + "content": "Cliquez sur **Preview** pour tester votre application en privé. Lorsque vous êtes prêt, cliquez sur **Publier** pour la partager avec le public via un domaine." + }, + "builderToast": { + "details": "Détails", + "defaultTitle": "Erreur inattendue", + "defaultMessage": "Une erreur inattendue s'est produite. Veuillez réessayer plus tard.", + "invalidContextTitle": "Demande non valide", + "invalidContextMessage": "La demande n'est pas valide.", + "InvalidContentTitle": "Formulaire invalide", + "invalidContentMessage": "Un ou plusieurs champs contiennent des valeurs non valides.", + "serviceMisconfiguredTitle": "Configuration incomplète", + "serviceMisconfiguredMessage": "Veuillez vérifier la configuration.", + "errorWorkflowActionDispatch": "L'action « {nom} » a échoué : ", + "errorDataSourceDispatch": "Échec du chargement de « {name} » : " + } } diff --git a/web-frontend/modules/builder/locales/ko.json b/web-frontend/modules/builder/locales/ko.json index 81ac5b83c6..602c61e666 100644 --- a/web-frontend/modules/builder/locales/ko.json +++ b/web-frontend/modules/builder/locales/ko.json @@ -1,1106 +1,1111 @@ { - "dataProviderType": { - "dataSource": "데이터 레코드", - "dataSourceContext": "사용 가능한 옵션", - "pageParameter": "매개변수", - "currentRecord": "데이터 소스", - "formData": "양식 데이터", - "previousAction": "이전 작업", - "user": "사용자" - }, - "formDataProviderType": { - "nodeMissing": "누락됨" - }, - "builderForm": { - "submit": "애플리케이션 추가" - }, - "sidebarComponentBuilder": { - "settings": "설정", - "createPage": "새 페이지" - }, - "builderSettingsModal": { - "title": "애플리케이션" - }, - "builderSettingTypes": { - "generalName": "일반", - "integrationsName": "통합", - "themeName": "테마", - "domainsName": "도메인", - "userSourcesName": "사용자" - }, - "createPageModal": { - "header": "페이지 생성", - "submit": "페이지 추가" - }, - "pageErrors": { - "errorNameNotUnique": "이 이름의 페이지가 이미 존재합니다", - "errorPathNotUnique": "이 이름의 경로가 이미 존재합니다", - "errorStartingSlash": "경로는 '/'로 시작해야 합니다", - "errorValidPathCharacters": "경로에 잘못된 문자가 포함되어 있습니다", - "errorUniquePathParams": "경로 매개변수는 고유해야 합니다.", - "errorUniqueValidQueryParams": "쿼리 매개변수 이름은 고유하고 유효해야 합니다." - }, - "pageHeaderItemTypes": { - "labelElements": "요소", - "labelDataSource": "데이터", - "labelVariables": "변수", - "labelSettings": "페이지 설정" - }, - "pageActionTypes": { - "preview": "미리보기", - "publish": "게시" - }, - "publishActionModal": { - "title": "게시", - "description": "도메인 중 하나에 게시하여 앱을 라이브로 만드세요. 애플리케이션은 여러 도메인을 가질 수 있으며, 각 도메인마다 다른 버전의 애플리케이션을 실행할 수 있습니다.", - "publish": "게시", - "publishSucceedTitle": "사이트 게시됨", - "publishSucceedDescription": "사이트가 성공적으로 게시되었습니다.", - "publishFailedTitle": "사이트 게시 실패", - "publishFailedDescription": "사이트 게시에 실패했습니다. 나중에 다시 시도하세요.", - "openInNewTab": "새 탭에서 열기", - "importingState": "가져오는 중", - "noDomain": "애플리케이션을 게시하려면 최소 하나의 도메인이 필요합니다.", - "publishSucceedLink": "사이트 보기", - "addDomain": "도메인 추가" - }, - "lastPublishedDomainDate": { - "neverPublished": "게시되지 않음", - "lastPublished": "마지막 게시:" - }, - "elementsContext": { - "searchPlaceholder": "요소 검색", - "noElements": "요소를 찾을 수 없습니다", - "noPageElements": "이 페이지에 대한 요소가 발견되지 않았습니다" - }, - "elementType": { - "heading": "제목", - "headingDescription": "페이지 제목", - "text": "텍스트", - "textDescription": "여러 줄의 텍스트", - "link": "링크", - "linkDescription": "페이지/URL로의 링크", - "image": "이미지", - "imageDescription": "이미지 표시", - "inputText": "데이터 입력", - "inputTextDescription": "데이터 입력 필드", - "column": "열", - "columnDescription": "열 컨테이너", - "button": "버튼", - "buttonDescription": "버튼 요소", - "table": "테이블", - "tableDescription": "테이블 요소", - "formContainer": "양식", - "formContainerDescription": "양식 요소", - "choice": "선택", - "choiceDescription": "단일/다중 값 선택", - "checkbox": "체크박스", - "checkboxDescription": "체크박스 요소", - "iframe": "아이프레임", - "iframeDescription": "인라인 프레임", - "authForm": "로그인 양식", - "authFormDescription": "사용자 로그인 양식", - "repeat": "반복", - "repeatDescription": "반복 가능한 요소 집합", - "recordSelector": "레코드 선택기", - "recordSelectorDescription": "관련 레코드 선택기", - "header": "다중 페이지 헤더", - "footer": "다중 페이지 바닥글", - "notAllowedUnlessTop": "이 요소는 페이지 상단에만 허용됩니다", - "notAllowedUnlessBottom": "이 요소는 페이지 하단에만 허용됩니다", - "notAllowedUnlessHeader": "이 요소는 페이지 헤더 내부에만 허용됩니다", - "notAllowedInsideContainer": "이 요소는 컨테이너 내부에 허용되지 않습니다", - "dateTimePickerDescription": "날짜 및 시간 입력 필드", - "dateTimePicker": "날짜 시간 선택기", - "footerDescription": "여러 페이지에서 공유되는 컨테이너", - "headerDescription": "여러 페이지에서 공유되는 컨테이너", - "notAllowedUnlessFooter": "이 요소는 페이지 바닥글 내부에만 허용됩니다", - "notAllowedInsideSameType": "이 요소는 동일한 유형의 컨테이너에서 허용되지 않습니다", - "notAllowedLocation": "이 위치에서는 이 요소가 허용되지 않습니다", - "menu": "메뉴", - "menuDescription": "메뉴 요소", - "simpleContainer": "컨테이너", - "simpleContainerDescription": "다른 요소를 위한 컨테이너", - "ratingInput": "평가 입력", - "rating": "평가", - "invalidElementValue": "잘못된 요소 값: {value}", - "ratingDescription": "평가 요소", - "ratingInputDescription": "평가 입력 요소", - "fileInput": "파일 선택", - "fileInputDescription": "파일을 업로드하기 위한 입력란", - "errorValueMissing": "누락된 값 속성", - "errorEmptyContainer": "이 컨테이너는 비어 있습니다", - "errorParentWithDataSourceMissing": "요소 또는 부모 컨테이너에서 선택된 데이터 소스가 없습니다", - "errorDataSourceMissing": "선택된 데이터 소스가 없습니다", - "errorSchemaPropertyMissing": "스키마 속성이 선택되지 않았습니다", - "errorWorkflowActionInError": "적어도 하나의 작업이 잘못 구성되었습니다", - "errorCollectionFieldInError": "적어도 하나의 필드가 잘못 구성되었습니다", - "errorNavigateToPageMissing": "이동 속성이 누락되었습니다", - "errorPageParameterInError": "하나 이상의 페이지 매개변수가 잘못 구성되었습니다", - "errorNavigationUrlMissing": "네비게이션 URL 속성이 없습니다", - "errorImageFileMissing": "이미지 파일이 없습니다", - "errorImageUrlMissing": "이미지 URL 속성이 누락되었습니다", - "errorNoWorkflowAction": "워크플로 작업이 구성되지 않았습니다", - "errorOptionsMissing": "옵션이 구성되지 않았습니다", - "errorIframeUrlMissing": "IFrame URL 속성이 없습니다", - "errorIframeContentMissing": "IFrame 콘텐츠가 누락되었습니다", - "errorNoMenuItem": "메뉴 항목이 구성되지 않았습니다", - "errorMenuItemInError": "최소한 하나의 메뉴가 잘못 구성되었습니다", - "errorSubMenuItemInError": "적어도 하나의 하위 메뉴가 잘못 구성되었습니다" - }, - "addElementButton": { - "label": "요소" - }, - "addElementModal": { - "title": "새 요소 추가", - "searchPlaceholder": "요소 검색", - "disabledElementTooltip": "이 요소 내에서는 사용할 수 없습니다", - "elementInProgress": "요소를 추가하는 중..." - }, - "elementMenu": { - "moveUp": "위로 이동", - "moveDown": "아래로 이동", - "moveLeft": "왼쪽으로 이동", - "moveRight": "오른쪽으로 이동", - "selectParent": "부모 선택" - }, - "duplicatePageJobType": { - "duplicating": "복제 중", - "duplicatedTitle": "페이지 복제됨", - "name": "페이지 복제" - }, - "pageSidePanelType": { - "general": "일반", - "style": "스타일", - "visibility": "공개여부", - "events": "이벤트", - "eventsTabDeactivatedNoEvents": "이 요소는 이벤트를 지원하지 않습니다", - "eventsTabInError": "하나 이상의 작업이 잘못 구성되었습니다." - }, - "emptySidePanelState": { - "message": "더 자세한 정보를 보려면 요소 중 하나를 클릭하세요" - }, - "pagePreview": { - "emptyMessage": "첫 번째 요소를 생성하려면 클릭하세요", - "footer": "푸터", - "header": "헤더" - }, - "elementForms": { - "textInputPlaceholder": "텍스트 입력...", - "urlInputPlaceholder": "URL 입력...", - "invalidFormula": "수식이 유효하지 않습니다" - }, - "headingElement": { - "missingValue": "제목 없음...", - "emptyValue": "빈 제목..." - }, - "headingElementForm": { - "levelTitle": "레벨", - "textTitle": "텍스트", - "textPlaceholder": "텍스트 입력...", - "headingName": "제목 {level} ", - "textError": "값이 유효하지 않습니다." - }, - "textElement": { - "missingValue": "텍스트 없음...", - "emptyValue": "빈 텍스트..." - }, - "textElementForm": { - "textTitle": "텍스트", - "textPlaceholder": "텍스트 입력...", - "textError": "값이 유효하지 않습니다.", - "textFormatTypeLabel": "형식", - "textFormatTypePlain": "일반 텍스트", - "textFormatTypeMarkdown": "마크다운" - }, - "imageElement": { - "missingValue": "대체 텍스트 없음...", - "emptyValue": "빈 대체 텍스트..." - }, - "generalForm": { - "labelTitle": "표시", - "labelPlaceholder": "표시명 입력", - "valueTitle": "값", - "valuePlaceholder": "값 입력", - "placeholderTitle": "플레이스홀더", - "placeholderPlaceholder": "예시 문구 입력", - "requiredTitle": "필수", - "validationTitle": "유효성 검사", - "defaultValueTitle": "기본값", - "defaultValuePlaceholder": "기본값 입력" - }, - "inputTextElementForm": { - "multilineTitle": "여러 줄", - "rowsTitle": "줄 수", - "rowsPlaceholder": "이 입력의 줄 수 입력", - "validationTypeAnyLabel": "무엇이든", - "validationTypeAnyDescription": "이 입력에 어떤 값이든 설정할 수 있도록 허용합니다.", - "validationTypeIntegerLabel": "숫자", - "validationTypeIntegerDescription": "이 입력란에는 숫자만 입력할 수 있도록 제한합니다(정수와 소수 모두 허용).", - "validationTypeEmailLabel": "이메일", - "validationTypeEmailDescription": "이 입력에 이메일 주소 값을 적용합니다.", - "inputType": "입력 유형", - "inputTypeTextLabel": "텍스트", - "inputTypePasswordLabel": "비밀번호", - "passwordTypeWarning": "비밀번호는 민감한 데이터입니다. 애플리케이션에서 비밀번호를 처리하고 저장하는 방법에 주의하세요." - }, - "imageElementForm": { - "fileLabel": "이미지", - "invalidUrlError": "URL이 유효하지 않습니다", - "altTextTitle": "대체 텍스트", - "altTextDescription": "스크린 리더에서 사용되며 이미지를 로드할 수 없는 경우 표시됩니다", - "fileSourceTypeUpload": "업로드", - "fileSourceTypeURL": "URL", - "urlWarning": "참고: 입력한 URL을 신뢰하거나 제어할 수 있는지 확인하세요.", - "uploadFileButton": "파일 업로드" - }, - "iframeElementForm": { - "missingValue": "IFrame 소스 없음...", - "emptyValue": "빈 IFrame 소스...", - "sourceTypeLabel": "소스 유형", - "urlLabel": "URL", - "urlPlaceholder": "삽입할 외부 리소스의 링크", - "urlHelp": "참고: 입력한 URL을 신뢰하거나 제어할 수 있는지 확인하세요.", - "embedLabel": "임베드", - "embedPlaceholder": "삽입할 원시 HTML 콘텐츠", - "heightLabel": "높이 (px)", - "heightPlaceholder": "최대 높이 입력" - }, - "columnElementForm": { - "columnAmountTitle": "레이아웃", - "verticalAlignment": "수직 정렬", - "columnAmountName": "열 없음 | 1열 | {columnAmount}열", - "columnGapTitle": "열 사이 간격", - "columnGapPlaceholder": "열 사이 간격 입력..." - }, - "domainSettings": { - "titleOverview": "도메인", - "titleAddDomain": "도메인 추가", - "addDomain": "도메인 추가", - "noDomainMessage": "이 애플리케이션에 도메인을 아직 연결하지 않았습니다. 애플리케이션을 게시하려면 도메인을 추가해야 합니다. 여기 나열된 각 도메인에 대해 애플리케이션의 다른 버전을 게시할 수 있습니다." - }, - "userSourceSettings": { - "titleAddUserSource": "새 사용자 소스", - "titleUpdateUserSource": "사용자 소스 편집", - "noUserSourceMessage": "이 애플리케이션에 사용자 소스를 아직 추가하지 않았습니다. 애플리케이션에서 사용자가 인증할 수 있도록 하려면 사용자 소스를 추가해야 합니다.", - "titleOverview": "사용자 소스", - "addUserSource": "사용자 소스 추가" - }, - "generalSettings": { - "titleOverview": "일반", - "labelForm": "파비콘", - "labelDescription": "128x128px ICO, PNG, GIF 또는 JPEG를 선택하세요.", - "labelButton": "파비콘 업로드", - "cantUploadFaviconTitle": "파비콘 파일을 업로드할 수 없음", - "cantUploadFaviconDescription": "죄송합니다, 파비콘 이미지를 업로드할 수 없습니다. 이미지 파일이 고유하고 지원되는 이미지 형식인지 확인하세요.", - "cantUpdateApplicationTitle": "애플리케이션을 업데이트할 수 없음", - "cantUpdateApplicationDescription": "죄송합니다, 애플리케이션을 업데이트할 수 없습니다." - }, - "dnsStatus": { - "description": "도메인의 DNS 설정으로 이동하여 다음 변경을 수행하세요", - "typeHeader": "유형", - "hostHeader": "호스트", - "valueHeader": "값" - }, - "domainForm": { - "invalidDomain": "제공된 도메인 이름이 유효하지 않습니다", - "notUniqueDomain": "제공된 도메인이 이미 사용 중입니다" - }, - "customDomainForm": { - "domainNameLabel": "도메인 이름" - }, - "subDomainForm": { - "domainNameLabel": "도메인 이름" - }, - "subDomainDetails": { - "text": "도메인의 DNS 설정이 이미 구성되고 확인되었습니다. 추가 변경 없이 작동합니다." - }, - "domainCard": { - "refresh": "설정 새로 고침", - "detailLabel": "세부 정보 표시", - "unpublishedDomainWarning": "이 도메인에서 사용할 수 있도록 애플리케이션을 게시하세요." - }, - "domainTypes": { - "customName": "사용자 정의 도메인", - "subDomainName": "서브도메인", - "subDomain": "{domain}의 서브도메인" - }, - "linkElement": { - "missingValue": "링크 텍스트 없음...", - "emptyValue": "빈 링크 텍스트..." - }, - "linkNavigationSelection": { - "navigateTo": "이동 대상", - "navigateToCustom": "사용자 정의 URL", - "paramPlaceholder": "값 입력...", - "urlPlaceholder": "URL 입력...", - "url": "목적지 URL", - "paramsInErrorDescription": "저장된 매개변수가 페이지 매개변수와 일치하지 않습니다. 페이지가 삭제되었거나 업데이트되었을 수 있습니다.", - "paramsInErrorButton": "매개변수 업데이트", - "target": "여는 위치는...", - "targetSelf": "현재 탭", - "targetNewTab": "새 탭" - }, - "linkElementForm": { - "text": "텍스트", - "textPlaceholder": "텍스트 입력...", - "variant": "변환", - "variantLink": "링크", - "variantButton": "버튼", - "buttonColor": "버튼 색상" - }, - "widthSelector": { - "width": "너비", - "widthAuto": "자동", - "widthFull": "전체 너비" - }, - "backgroundTypes": { - "none": "없음", - "color": "색상" - }, - "widthTypes": { - "fullBleed": "전체 폭", - "fullWidth": "전체 너비", - "normal": "보통", - "medium": "중간", - "small": "작게" - }, - "horizontalAlignmentSelector": { - "alignmentLeft": "왼쪽", - "alignmentCenter": "가운데", - "alignmentRight": "오른쪽" - }, - "verticalAlignmentSelector": { - "alignmentTop": "상단", - "alignmentCenter": "중간", - "alignmentBottom": "하단" - }, - "pageSettingsTypes": { - "pageName": "페이지" - }, - "pageSettings": { - "title": "페이지", - "pageUpdatedTitle": "변경됨", - "pageUpdatedDescription": "페이지 설정이 업데이트되었습니다." - }, - "pageForm": { - "defaultName": "페이지", - "nameTitle": "이름", - "nameSubtitle": "페이지의 고유한 이름", - "namePlaceholder": "이름 입력...", - "pathTitle": "경로", - "pathSubtitle": ":parameter를 통해 매개변수를 추가할 수 있습니다", - "pathPlaceholder": "경로 입력...", - "pathParamsTitle": "경로 매개변수", - "pathParamsSubtitle": "경로의 :parameter로 정의됩니다", - "pathParamsSubtitleTutorial": "경로 매개변수는 제공된 매개변수에 따라 데이터를 동적으로 로드하는 데 사용할 수 있습니다. 경로에 :parameter를 추가하여 하나를 추가하세요.", - "addParameter": "쿼리 문자열 매개변수 추가", - "queryParamsTitle": "쿼리 문자열 매개변수", - "queryParamsSubtitleTutorial": "쿼리 매개변수는 제공된 매개변수에 따라 데이터를 동적으로 로드하는 데 사용할 수 있습니다.", - "addAnotherParameter": "다른 쿼리 문자열 매개변수 추가" - }, - "pathParamTypes": { - "textName": "텍스트", - "numericName": "숫자" - }, - "publicPage": { - "siteNotFound": "사이트를 찾을 수 없습니다", - "pageNotFound": "페이지를 찾을 수 없습니다", - "loginToastMessage": "성공적으로 로그인되었습니다.", - "authorizedToastTitle": "인증 필요", - "loginToastTitle": "인증 성공", - "authorizedToastMessage": "이 페이지에 접근하려면 로그인해야 합니다. 계속하려면 로그인하세요." - }, - "integrationSettings": { - "title": "통합", - "noIntegrationMessage": "아직 통합을 생성하지 않았습니다. 데이터 소스, 작업 또는 사용자 인증을 추가하여 생성할 수 있습니다.", - "integrationMessage": "데이터 소스, 작업 또는 사용자 인증을 추가하여 새로운 통합을 생성할 수 있습니다." - }, - "dataSourceForm": { - "namePlaceholder": "소스 이름", - "nameLabel": "이름", - "actionLabel": "작업", - "integrationLabel": "통합", - "servicePlaceholder": "서비스 선택", - "integrationPlaceholder": "통합 선택", - "errorUniqueName": "데이터 소스 이름은 고유해야 합니다." - }, - "dataSourceContext": { - "addDataSource": "새 데이터 소스 추가", - "noDataSourceTitle": "아직 데이터 소스를 추가하지 않았습니다.", - "noDataSourceMessage": "데이터 소스는 내부 또는 외부 소스에서 데이터를 가져와 페이지에 표시하는 데 사용할 수 있습니다.", - "sharedDataSourceTitle": "페이지 간 공유", - "pageDataSourceTitle": "이 페이지용", - "sharedDataSourceDescription": "모든 페이지에서 접근 가능하며 첫 페이지 로드 시 한 번 가져옵니다.", - "pageDataSourceDescription": "사용자가 이 페이지로 이동할 때 가져옵니다." - }, - "dataSourceItem": { - "notConfigured": "구성되지 않음" - }, - "dataSourceItemContext": { - "shareBetweenPages": "페이지 간 공유", - "unshareBetweenPages": "다른 페이지에서 공유 해제" - }, - "dataSourceCreateEditModal": { - "editTitle": "데이터 소스 편집", - "createTitle": "데이터 소스 생성", - "sharedWarning": "이 데이터 소스는 공유되므로 변경 사항이 여러 페이지에 영향을 미칠 수 있습니다." - }, - "defaultStyleForm": { - "boxTop": "상단", - "boxBottom": "하단", - "boxLeft": "왼쪽", - "boxRight": "오른쪽", - "backgroundLabel": "배경", - "backgroundColor": "배경색", - "widthLabel": "너비", - "backgroundImage": "이미지", - "backgroundImageMode": "채우기 모드", - "cssClasses": "CSS 클래스", - "cssClassesHelp": "생성된 HTML에 나타날 이 요소에 대한 클래스 목록을 공백으로 구분하여 설정합니다.", - "cssClassesPlaceholder": "CSS 클래스를 소개합니다..." - }, - "styleBoxForm": { - "borderColor": "테두리 색상", - "borderLabel": "크기", - "paddingLabel": "안쪽 여백", - "marginLabel": "바깥 여백" - }, - "themeConfigBlockType": { - "color": "색상", - "page": "페이지", - "typography": "타이포그래피", - "button": "버튼", - "link": "링크", - "image": "이미지", - "input": "입력", - "table": "테이블" - }, - "colorThemeConfigBlock": { - "transparent": "투명", - "primaryColor": "기본", - "secondaryColor": "보조", - "borderColor": "테두리", - "successColor": "성공", - "warningColor": "경고", - "errorColor": "오류", - "customColors": "사용자 색상", - "addCustomColor": "사용자 색상 추가", - "customColorPrefix": "커스텀" - }, - "pageThemeConfigBlock": { - "backgroundColor": "배경색", - "backgroundImage": "배경 이미지", - "backgroundMode": "배경 모드" - }, - "colorThemeConfigBlockType": { - "transparent": "투명", - "primary": "기본", - "secondary": "보조", - "border": "테두리", - "success": "성공", - "warning": "경고", - "error": "오류" - }, - "typographyThemeConfigBlock": { - "headingLabel": "제목 {i} (h{i})", - "headingValue": "제목 ", - "color": "색상", - "size": "크기", - "textAlignment": "정렬", - "bodyLabel": "본문", - "fontFamily": "폰트", - "weight": "굵기", - "decoration": "텍스트 꾸밈" - }, - "buttonThemeConfigBlock": { - "backgroundColor": "배경색", - "button": "버튼", - "defaultState": "기본 상태", - "hoverState": "눌린 상태", - "textAlignment": "텍스트 정렬", - "alignment": "정렬", - "width": "너비", - "textColor": "텍스트 색상", - "borderColor": "테두리 색상", - "borderSize": "테두리 크기", - "borderRadius": "테두리 반경", - "padding": "안쪽 여백", - "fontFamily": "폰트", - "size": "폰트 크기", - "weight": "폰트 굵기", - "activeState": "활성 상태" - }, - "linkThemeConfigBlock": { - "color": "색상", - "link": "링크", - "defaultState": "기본 상태", - "hoverState": "눌린 상태", - "alignment": "정렬", - "fontFamily": "폰트", - "size": "폰트 크기", - "weight": "폰트 굵기", - "activeState": "활성 상태", - "decoration": "텍스트 꾸밈" - }, - "inputThemeConfigBlock": { - "label": "표시", - "input": "입력", - "backgroundColor": "배경색", - "textColor": "텍스트 색상", - "borderColor": "테두리 색상", - "borderSize": "테두리 크기", - "borderRadius": "테두리 반경", - "padding": "안쪽 여백", - "fontFamily": "폰트", - "size": "폰트 크기", - "weight": "폰트 굵기" - }, - "imageThemeConfigBlock": { - "alignment": "정렬", - "maxWidthLabel": "최대 너비", - "maxHeightLabel": "최대 높이", - "maxHeightPlaceholder": "최대 높이 입력", - "maxWidthPlaceholder": "최대 너비 입력", - "imageConstraintsLabel": "제한", - "imageConstraintFullWidth": "최대 너비까지 확장", - "imageConstraintCover": "채우기", - "imageConstraintCoverDisabled": "빈 최대 높이로는 사용할 수 없습니다.", - "imageConstraintContain": "맞춤", - "imageConstraintContainDisabled": "최대 높이가 있으면 사용할 수 없습니다.", - "imageBorderRadiusLabel": "테두리 반경", - "imageBorderRadiusPlaceholder": "이미지 테두리 반경을 입력하세요." - }, - "tableThemeConfigBlock": { - "borderColor": "테두리 색상", - "backgroundAlternateColor": "짝수 행 색상", - "backgroundColor": "배경색", - "textColor": "텍스트 색상", - "borderSize": "테두리 크기", - "borderRadius": "테두리 반경", - "padding": "안쪽 여백", - "fontFamily": "폰트", - "size": "크기", - "fontSize": "폰트 크기", - "table": "테이블", - "header": "헤더", - "alignment": "정렬", - "cells": "셀", - "separators": "구분선", - "verticalSeparatorColor": "세로 색상", - "verticalSeparatorSize": "세로 크기", - "horizontalSeparatorColor": "가로 색상", - "horizontalSeparatorSize": "가로 크기", - "fontWeight": "폰트 굵기" - }, - "buttonElementForm": { - "valueLabel": "버튼 텍스트", - "valuePlaceholder": "텍스트 입력..." - }, - "buttonElement": { - "missingValue": "버튼 텍스트 없음...", - "emptyValue": "빈 버튼 텍스트..." - }, - "eventTypes": { - "clickLabel": "클릭 시", - "submitLabel": "제출 시", - "afterLoginLabel": "로그인 후" - }, - "getFormulaComponent": { - "errorTooltip": "유효하지 않은 참조" - }, - "fontSidePanelForm": { - "label": "폰트 색상" - }, - "choiceElementForm": { - "multiple": "다중 값 허용", - "display": "디스플레이", - "dropdown": "드롭다운", - "checkbox": "체크박스", - "radio": "라디오" - }, - "dropdown": { - "empty": "사용 가능한 옵션 없음" - }, - "tableElementForm": { - "dataSource": "데이터 소스", - "fields": "필드", - "fieldValueLabel": "값", - "addField": "필드 추가", - "fieldValuePlaceholder": "값 입력...", - "itemsPerPage": "페이지당 항목 수", - "fieldDefaultName": "열", - "name": "이름", - "fieldType": "유형", - "itemsPerPagePlaceholder": "값 입력...", - "selectSourceFirst": "필드를 구성하려면 데이터 소스 및/또는 속성을 선택하세요.", - "buttonColor": "버튼 색상", - "refreshFieldsFromDataSource": "데이터 소스에서 필드 새로 고침", - "orientation": "방향", - "orientationHorizontal": "수평", - "orientationVertical": "수직", - "buttonLoadMoreLabel": "더 보기 표시", - "propertySelectorMissingArrays": "행으로 사용할 다중 값 필드를 찾을 수 없습니다.", - "noName": "이름 없음" - }, - "tableElement": { - "showMore": "더 보기" - }, - "abTable": { - "loading": "로드 중...", - "empty": "항목을 찾을 수 없습니다." - }, - "repeatElement": { - "empty": "항목을 찾을 수 없습니다.", - "showMore": "더 보기", - "missingDataSourceTooltip": "요소를 추가하려면 데이터 소스를 선택하세요.", - "missingSchemaPropertyTooltip": "요소를 추가하려면 속성을 선택하세요.", - "emptyState": "내용을 찾을 수 없습니다." - }, - "collectionElementForm": { - "noDataSourceMessage": "모든 결과를 나열하려면 여러 행이 있는 데이터 소스를 선택하거나, 이 행 내의 속성을 선택하려면 단일 행 데이터 소스를 선택하세요.", - "noSchemaPropertyMessage": "요소의 목록 데이터로 사용할 데이터 소스 내의 속성을 선택하세요.", - "propertyOptionLabel": "사용자 작업" - }, - "propertyOptionForm": { - "fieldHeading": "필드", - "filterHeading": "필터", - "sortHeading": "정렬", - "searchHeading": "검색", - "optionUnavailable": "사용할 수 없음", - "noPropertiesAvailable": "사용 가능한 필드가 없습니다.", - "formDescription": "이 요소의 데이터 소스에서 페이지 방문자가 필터링, 정렬 및 검색할 수 있는 속성을 선택하세요." - }, - "repeatElementForm": { - "dataSource": "데이터 소스", - "itemsPerPage": "페이지당 항목 수", - "itemsPerPagePlaceholder": "값 입력...", - "itemsPerRowLabel": "행당 항목 수", - "itemsPerRowDescription": "열 당 열 수 및 기기 유형.", - "orientationLabel": "방향", - "orientationVertical": "수직", - "orientationHorizontal": "수평", - "buttonLoadMoreLabel": "더 보기 표시", - "toggleEditorRepetitionsLabel": "반복 일시적으로 비활성화", - "propertySelectorMissingArrays": "반복할 다중 값 필드를 찾을 수 없습니다.", - "gapVerticalLabel": "세로", - "gapLabel": "반복 사이의 간격", - "gapHorizontalLabel": "가로" - }, - "recordSelectorElement": { - "emptyAdhocState": "'{query}'와 일치하는 내용을 찾을 수 없습니다.", - "emptyState": "내용을 찾을 수 없습니다." - }, - "recordSelectorElementForm": { - "selectRecordsFrom": "레코드 선택", - "noDataSourceMessage": "모든 결과를 나열하려면 여러 행이 있는 데이터 소스를 선택하세요.", - "optionNameSuffix": "옵션 이름 접미사", - "optionNameSuffixPlaceholder": "접미사 입력...", - "optionNameSuffixHelper": "드롭다운을 열 때 각 옵션 이름에 추가되며 구분하는 데 도움이 됩니다.", - "itemsPerPage": "페이지당 항목 수", - "itemsPerPagePlaceholder": "값 입력...", - "multipleLabel": "다중 값 허용", - "record": "레코드 {id}" - }, - "currentRecordDataProviderType": { - "index": "인덱스", - "firstPartName": "데이터 소스: {name}", - "schemaProperty": "{prefixName}: {schemaProperty}" - }, - "workflowActionTypes": { - "notificationLabel": "알림 표시", - "openPageLabel": "페이지 열기", - "createRowLabel": "행 생성", - "updateRowLabel": "행 업데이트", - "deleteRowLabel": "행 삭제", - "logoutLabel": "로그아웃", - "refreshDataSourceLabel": "데이터 소스 새로 고침", - "httpRequest": "HTTP 요청 보내기", - "errorNavigateToPageMissing": "이동대상 속성이 누락되었습니다", - "errorPageParameterInError": "하나 이상의 페이지 매개변수가 잘못 구성되었습니다", - "errorNavigationUrlMissing": "네비게이션 URL 속성이 없습니다", - "errorDataSourceMissing": "선택된 데이터 소스가 없습니다" - }, - "notificationWorkflowActionForm": { - "titleLabel": "제목", - "titlePlaceholder": "텍스트 입력...", - "descriptionLabel": "설명", - "descriptionPlaceholder": "텍스트 입력..." - }, - "event": { - "addAction": "작업 추가" - }, - "collectionFieldType": { - "boolean": "불리언", - "button": "버튼", - "text": "텍스트", - "link": "링크", - "tags": "태그", - "image": "이미지", - "rating": "평가", - "errorValueMissing": "누락된 값 속성" - }, - "textFieldForm": { - "fieldValueLabel": "값", - "fieldValuePlaceholder": "값 입력..." - }, - "linkFieldForm": { - "fieldValueLabel": "URL", - "fieldValuePlaceholder": "값 입력...", - "fieldLinkNameLabel": "링크 텍스트", - "fieldLinkNamePlaceholder": "값 입력...", - "buttonColor": "버튼 색상" - }, - "tagsFieldForm": { - "fieldValuesLabel": "값", - "fieldValuesPlaceholder": "값 입력...", - "fieldColorsLabel": "색상", - "fieldColorsPlaceholder": "색상 입력..." - }, - "linkField": { - "details": "세부 정보" - }, - "imageFieldForm": { - "fieldSrcLabel": "이미지 소스", - "fieldSrcPlaceholder": "값 입력", - "fieldAltLabel": "대체 텍스트", - "fieldAltPlaceholder": "값 입력...", - "fieldAltHelp": "스크린 리더에서 사용되며 이미지를 로드할 수 없는 경우 표시됩니다" - }, - "createUserSourceForm": { - "userSourceType": "유형", - "userSourceIntegration": "통합", - "userSourceName": "이름" - }, - "updateUserSourceForm": { - "nameFieldLabel": "이름", - "nameFieldPlaceholder": "이름 입력...", - "authTitle": "인증", - "integrationFieldLabel": "통합", - "addProvider": "제공자 추가" - }, - "formContainerElement": { - "submitDeactivatedText": "제출하려면 모든 필수 필드를 완료하세요", - "defaultSubmitButtonLabel": "제출" - }, - "formContainerElementForm": { - "submitButtonLabel": "제출 버튼", - "submitButtonPlaceholder": "값 입력...", - "buttonColor": "버튼 색상", - "resetToInitialValuesTitle": "제출 후 기본값으로 재설정", - "resetToInitialValuesDescription": "선택한 경우, 성공적인 제출 후 양식의 기본값이 양식을 재설정하는 데 사용됩니다. 선택하지 않은 경우, 사용자의 값이 유지됩니다." - }, - "choiceOptionSelector": { - "label": "옵션", - "value": "옵션 값", - "valuePlaceholder": "값 입력", - "name": "옵션 이름", - "namePlaceholder": "이름 입력", - "addOption": "옵션 추가", - "addOptionDescription": "'옵션 추가'를 클릭하여 드롭다운에 옵션을 추가하세요", - "optionType": "옵션 유형", - "manual": "수동", - "dataSource": "데이터 소스", - "formulas": "수식" - }, - "dispatchWorkflowActionError": { - "defaultTitle": "이벤트 오류", - "defaultMessage": "이 이벤트를 트리거하는 중 오류가 발생했습니다.", - "formDataInvalidTitle": "유효하지 않은 양식", - "formDataInvalidMessage": "하나 이상의 필드에 유효하지 않은 값이 있습니다." - }, - "dispatchDataSourceError": { - "defaultTitle": "데이터 로딩 오류", - "defaultMessage": "페이지의 데이터를 로드하는 중 오류가 발생했습니다." - }, - "localBaserowServiceForm": { - "integrationDropdownLabel": "통합", - "rowIdLabel": "행 ID", - "rowIdPlaceholder": "행 ID 선택" - }, - "upsertRowWorkflowActionForm": { - "fieldMappingPlaceholder": "필드 값 선택", - "noTableSelectedMessage": "필드를 구성하려면 테이블을 선택하세요." - }, - "fieldMappingContext": { - "enableField": "필드 활성화", - "disableField": "필드 비활성화" - }, - "checkboxElementForm": { - "labelTitle": "옵션 이름", - "valueTitle": "기본값", - "requiredTitle": "필수" - }, - "choiceElement": { - "addOptions": "이 요소를 사용하려면 옵션을 추가하세요..." - }, - "userSourceUsersContext": { - "searchPlaceholder": "사용자 검색", - "anonymous": "익명", - "unnamed": "이름 없음", - "noEmail": "이메일 없음" - }, - "userSelector": { - "viewAs": "{user}으로 보기", - "anonymous": "익명", - "member": "{prefix} 멤버" - }, - "visibilityForm": { - "allVisitors": "모든 방문자", - "loggedInVisitors": "로그인한 방문자", - "notLoggedInVisitors": "로그아웃한 방문자", - "warningTitle": "이것은 보안 기능입니다", - "warningMessage": "<a href='https://baserow.io/user-docs/application-builder-element-visibility#note-accessing-hidden-data-via-api' target='_blank'>문서</a>를 확인하여 데이터를 보호하는 방법에 대해 자세히 알아보세요.", - "excludedRolesLabel": "모든 역할 제외", - "switchAllowLabel": "허용", - "switchDisallowLabel": "허용 안 함", - "rolesSelectAll": "모두 선택", - "rolesDeselectAll": "모두 선택 취소", - "rolesSelectHint": "하나 이상의 역할 선택", - "roleTypesHint": "역할 유형 선택", - "roleTypeAllowAllRoles": "모든 역할", - "roleTypeAllowAllRolesExcept": "역할 허용 안 함...", - "roleTypeDisallowAllRolesExcept": "역할 허용...", - "rolesAllMembersOf": "{name}의 모든 멤버", - "noRole": "역할 없음", - "errorFetchingRolesTitle": "사용자 역할을 가져올 수 없습니다", - "errorFetchingRolesMessage": "사용자 역할을 가져오는 동안 문제가 발생했습니다.", - "visibilityCondition": "표시성 조건", - "visibilityConditionHelper": "이 수식의 결과가 참이고 위의 방문자 선택 사항이 참이면 요소가 표시됩니다. 이 조건은 요소의 표시 여부에만 영향을 미칩니다. 서버 응답에서 데이터를 제외하려면 위의 사용자 역할 필터링 옵션을 사용하세요.", - "visibilityConditionPlaceholder": "상태..." - }, - "userDataProviderType": { - "isAuthenticated": "인증됨", - "id": "아이디", - "email": "이메일", - "username": "사용자 이름", - "role": "역할" - }, - "buttonField": { - "noLabel": "이름 없음..." - }, - "buttonFieldForm": { - "infoMessage": "이 버튼의 작업을 구성하려면 현재 요소의 \"이벤트\" 탭을 여세요.", - "labelPlaceholder": "표시명 입력..." - }, - "resetButton": { - "reset": "기본 테마 값으로 재설정" - }, - "backgroundModes": { - "fill": "채우기", - "tile": "타일", - "fit": "맞춤" - }, - "customStyle": { - "themeOverrides": "테마 재정의", - "configureThemeOverrides": "이 요소에 대한 테마 재정의 구성" - }, - "serviceSchemaPropertySelector": { - "label": "속성", - "noProperties": "사용 가능한 속성 없음" - }, - "dataSourceDropdown": { - "label": "데이터 소스", - "noDataSources": "사용 가능한 데이터 소스 없음", - "shared": "공유됨", - "pageOnly": "이 페이지", - "noSharedDataSources": "공유 데이터 소스가 없습니다" - }, - "common": { - "timeFormat12Hour": "12 시간", - "dateFormatISO": "ISO", - "dateFormatUS": "US", - "timeFormatTitle": "시간 형식", - "dateFormatEU": "European", - "timeFormat24Hour": "24 시간", - "dateFormatTitle": "날짜 형식" - }, - "themeSettings": { - "titleOverview": "테마" - }, - "pageVisibilitySettings": { - "title": "공개여부", - "allVisitors": "모든 방문자", - "loggedInVisitors": "로그인한 방문자", - "description": "이 페이지를 누가 볼 수 있나요" - }, - "multiPageContainerElementForm": { - "behaviour": "동작", - "display": "표시", - "deselectAll": "모두 선택 해제", - "pagePosition": "위치", - "selectAll": "모두 선택" - }, - "pageShareType": { - "all": "모든 페이지에서", - "only": "선택된 페이지에서만", - "except": "선택한 페이지 제외" - }, - "dateTimePickerElementForm": { - "includeTime": "시간 포함", - "invalidDateError": "잘못된 날짜입니다. 입력 날짜가 주어진 형식과 일치하는지 확인하세요." - }, - "pageVisibilitySettingsTypes": { - "logInPageWarningTitle": "로그인 페이지가 설정되지 않았습니다", - "pageName": "공개여부", - "logInPagewarningMessage": "익명 사용자가 이 페이지에 액세스하려고 하면 로그인 페이지로 리디렉션됩니다. 애플리케이션의 일반 설정에서 로그인 페이지를 설정하세요.", - "logInPageInfoTitle": "익명 사용자는 리디렉션됩니다", - "logInPageInfoMessage": "익명의 사용자가 이 페이지에 접근을 시도하면 {logInPageName} 페이지로 리디렉션됩니다." - }, - "pageEditor": { - "pageNotFound": "페이지를 찾을 수 없습니다" - }, - "builderLoginPageForm": { - "pageDropdownLabel": "로그인 페이지", - "pageDropdownPlaceholder": "페이지를 선택하세요", - "pageDropdownDescription": "로그인하지 않은 사용자가 제한된 페이지에 접근하려 할 때 리디렉션되어야 하는 로그인 페이지를 선택하세요." - }, - "fontWeightType": { - "light": "Light", - "thin": "Thin", - "extraLight": "Extra-light", - "black": "Black", - "regular": "Regular", - "bold": "Bold", - "extraBold": "Extra-bold", - "medium": "Medium", - "semiBold": "Semi-bold", - "extraBlack": "Extra-black" - }, - "queryParamTypes": { - "textName": "텍스트", - "numericName": "숫자" - }, - "radiusStyleForm": { - "backgroundRadiusLabel": "배경", - "borderRadiusLabel": "테두리", - "cornerRadiusLabel": "모서리 반경" - }, - "authProviderWithModal": { - "authProviderInError": "오류를 수정하려면 이 공급자를 편집하세요.", - "title": "제공자 편집: {name}" - }, - "addElementCategory": { - "layoutElement": "레이아웃 요소", - "suggestedElement": "제안된 요소", - "baseElement": "기본 요소", - "formElement": "양식 요소" - }, - "userSourceDropdown": { - "label": "사용자 소스", - "addUserSource": "새로운 사용자 소스 추가", - "noUserSources": "사용 가능한 사용자 소스 없음" - }, - "menuElement": { - "emptyLinkValue": "링크 이름이 비어있습니다...", - "missingLinkValue": "링크 이름이 없습니다...", - "missingValue": "메뉴 항목이 없음", - "separator": "구분자", - "spacer": "공간 조정자", - "missingButtonValue": "버튼 이름이 없습니다...", - "emptyButtonValue": "버튼 이름이 비어있습니다..." - }, - "orientations": { - "label": "방향", - "vertical": "수직", - "horizontal": "가로" - }, - "menuElementForm": { - "menuItemsLabel": "메뉴 항목", - "menuItemTypeSeparator": "구분자", - "menuItemAddSeparator": "구분자", - "addMenuItemLink": "추가...", - "alignment": "조정", - "menuItemDefaultName": "페이지", - "menuItemLabelLabel": "라벨", - "menuItemTypeLabel": "종류", - "menuItemTypeItem": "아이템", - "menuItemVariantLabel": "변형", - "menuItemVariantLink": "링크", - "menuItemVariantButton": "버튼", - "namePlaceholder": "페이지", - "addSubLink": "하위 링크 추가", - "menuItemSubLinkDefaultName": "하위 링크", - "menuItemAddLink": "링크", - "menuItemAddButton": "버튼", - "menuItemAddSpacer": "공간 조정자", - "eventDescription": "이 버튼의 동작을 구성하려면 해당 요소의 이벤트 탭을 열어주세요.", - "noMenuItemsMessage": "'추가' 버튼을 클릭하여 첫 번째 메뉴 항목을 추가하세요." - }, - "simpleContainerElementForm": { - "noConfigurationOptions": "컨테이너 요소에는 구성 옵션이 없습니다." - }, - "linkDecorations": { - "normal": "기본", - "plain": "꾸밈없음" - }, - "textDecorationSelector": { - "underline": "밑줄", - "stroke": "윤곽선", - "italic": "이탤릭", - "uppercase": "대문자" - }, - "ratingFieldForm": { - "style": "스타일", - "thumbsUp": "좋아요", - "maxValue": "최대값", - "value": "값", - "color": "색상", - "star": "별", - "heart": "하트", - "flag": "깃발" - }, - "ratingElementForm": { - "heart": "하트", - "color": "색상", - "maxValue": "최대", - "ratingStyle": "스타일", - "star": "별", - "smile": "스마일", - "flag": "깃발", - "thumbsUp": "좋아요" - }, - "automationSettingsModal": { - "title": "워크플로우" - }, - "abFileInput": { - "delete": "제거" - }, - "elementsGuidedTourStep": { - "title": "페이지에 요소를 추가", - "content": "모든 앱에는 컴포넌트가 필요합니다! 표, 양식, 버튼 등의 요소를 추가하여 앱에 생동감을 더하세요." - }, - "dataGuidedTourStep": { - "title": "데이터를 연결하세요", - "content": "여기에 Baserow 테이블을 연결하면 다양한 요소에서 데이터를 동적으로 표시, 필터링, 업데이트할 수 있습니다." - }, - "previewGuidedTourStep": { - "title": "귀하의 제어 센터", - "content": "여기서 앱 페이지를 구성할 수 있습니다. 요소를 추가하고, 결과를 미리 보고, 원하는 대로 앱을 구성하세요." - }, - "devicesGuidedTourStep": { - "title": "다양한 기기에서 미리 보기", - "content": "데스크톱, 태블릿, 모바일 미리보기를 전환하여 다양한 화면 크기에서 앱이 어떻게 보이는지 확인하세요. 모든 기기에서 디자인이 완벽하게 작동하는지 확인하세요!" - }, - "sidePanelGuidedTourStep": { - "title": "사이드 패널: 요소 사용자 정의", - "content": "**일반 탭** – 선택한 요소를 구성합니다.\n\n**스타일 탭** – 패딩, 여백, 테두리 등을 사용자 지정합니다.\n\n**표시 여부 탭** – 이 요소를 볼 수 있는 사용자(로그인한 사용자, 로그아웃한 사용자 또는 특정 역할)를 제어합니다.\n\n**이벤트 탭** – 요소가 동작을 지원하는 경우, 동적 상호작용을 위해 여기에서 동작을 설정합니다." - }, - "previewPublishGuidedTourStep": { - "title": "앱 미리 보기 및 게시", - "content": "**미리보기**를 클릭하여 앱을 비공개로 테스트해 보세요. 준비가 되면 **게시**를 클릭하여 도메인을 통해 모든 사람과 공유하세요." - }, - "builderToast": { - "details": "세부", - "defaultTitle": "예기치 않은 오류", - "defaultMessage": "예기치 않은 오류가 발생했습니다. 나중에 다시 시도해 주세요.", - "invalidContextTitle": "잘못된 요청", - "invalidContextMessage": "요청이 잘못되었습니다.", - "InvalidContentTitle": "잘못된 형식", - "invalidContentMessage": "하나 이상의 필드에 잘못된 값이 포함되어 있습니다.", - "serviceMisconfiguredTitle": "구성이 완료되지 않았습니다", - "serviceMisconfiguredMessage": "구성을 확인하세요.", - "errorWorkflowActionDispatch": "\"{name}\" 작업이 실패했습니다. ", - "errorDataSourceDispatch": "\"{name}\" 데이터를 로드하는 데 실패했습니다. " - } + "dataProviderType": { + "dataSource": "데이터 레코드", + "dataSourceContext": "사용 가능한 옵션", + "pageParameter": "매개변수", + "currentRecord": "데이터 소스", + "formData": "양식 데이터", + "previousAction": "이전 작업", + "user": "사용자" + }, + "formDataProviderType": { + "nodeMissing": "누락됨" + }, + "builderForm": { + "submit": "애플리케이션 추가" + }, + "sidebarComponentBuilder": { + "settings": "설정", + "createPage": "새 페이지" + }, + "builderSettingsModal": { + "title": "애플리케이션" + }, + "builderSettingTypes": { + "generalName": "일반", + "integrationsName": "통합", + "themeName": "테마", + "domainsName": "도메인", + "userSourcesName": "사용자" + }, + "createPageModal": { + "header": "페이지 생성", + "submit": "페이지 추가" + }, + "pageErrors": { + "errorNameNotUnique": "이 이름의 페이지가 이미 존재합니다", + "errorPathNotUnique": "이 이름의 경로가 이미 존재합니다", + "errorStartingSlash": "경로는 '/'로 시작해야 합니다", + "errorValidPathCharacters": "경로에 잘못된 문자가 포함되어 있습니다", + "errorUniquePathParams": "경로 매개변수는 고유해야 합니다.", + "errorUniqueValidQueryParams": "쿼리 매개변수 이름은 고유하고 유효해야 합니다.", + "errorNameNotUniqueDescription": "페이지에 고유한 이름을 입력해 주세요" + }, + "pageHeaderItemTypes": { + "labelElements": "요소", + "labelDataSource": "데이터", + "labelVariables": "변수", + "labelSettings": "페이지 설정" + }, + "pageActionTypes": { + "preview": "미리보기", + "publish": "게시" + }, + "publishActionModal": { + "title": "게시", + "description": "도메인 중 하나에 게시하여 앱을 라이브로 만드세요. 애플리케이션은 여러 도메인을 가질 수 있으며, 각 도메인마다 다른 버전의 애플리케이션을 실행할 수 있습니다.", + "publish": "게시", + "publishSucceedTitle": "사이트 게시됨", + "publishSucceedDescription": "사이트가 성공적으로 게시되었습니다.", + "publishFailedTitle": "사이트 게시 실패", + "publishFailedDescription": "사이트 게시에 실패했습니다. 나중에 다시 시도하세요.", + "openInNewTab": "새 탭에서 열기", + "importingState": "가져오는 중", + "noDomain": "애플리케이션을 게시하려면 최소 하나의 도메인이 필요합니다.", + "publishSucceedLink": "사이트 보기", + "addDomain": "도메인 추가" + }, + "lastPublishedDomainDate": { + "neverPublished": "게시되지 않음", + "lastPublished": "마지막 게시:" + }, + "elementsContext": { + "searchPlaceholder": "요소 검색", + "noElements": "요소를 찾을 수 없습니다", + "noPageElements": "이 페이지에 대한 요소가 발견되지 않았습니다" + }, + "elementType": { + "heading": "제목", + "headingDescription": "페이지 제목", + "text": "텍스트", + "textDescription": "여러 줄의 텍스트", + "link": "링크", + "linkDescription": "페이지/URL로의 링크", + "image": "이미지", + "imageDescription": "이미지 표시", + "inputText": "데이터 입력", + "inputTextDescription": "데이터 입력 필드", + "column": "열", + "columnDescription": "열 컨테이너", + "button": "버튼", + "buttonDescription": "버튼 요소", + "table": "테이블", + "tableDescription": "테이블 요소", + "formContainer": "양식", + "formContainerDescription": "양식 요소", + "choice": "선택", + "choiceDescription": "단일/다중 값 선택", + "checkbox": "체크박스", + "checkboxDescription": "체크박스 요소", + "iframe": "아이프레임", + "iframeDescription": "인라인 프레임", + "authForm": "로그인 양식", + "authFormDescription": "사용자 로그인 양식", + "repeat": "반복", + "repeatDescription": "반복 가능한 요소 집합", + "recordSelector": "레코드 선택기", + "recordSelectorDescription": "관련 레코드 선택기", + "header": "다중 페이지 헤더", + "footer": "다중 페이지 바닥글", + "notAllowedUnlessTop": "이 요소는 페이지 상단에만 허용됩니다", + "notAllowedUnlessBottom": "이 요소는 페이지 하단에만 허용됩니다", + "notAllowedUnlessHeader": "이 요소는 페이지 헤더 내부에만 허용됩니다", + "notAllowedInsideContainer": "이 요소는 컨테이너 내부에 허용되지 않습니다", + "dateTimePickerDescription": "날짜 및 시간 입력 필드", + "dateTimePicker": "날짜 시간 선택기", + "footerDescription": "여러 페이지에서 공유되는 컨테이너", + "headerDescription": "여러 페이지에서 공유되는 컨테이너", + "notAllowedUnlessFooter": "이 요소는 페이지 바닥글 내부에만 허용됩니다", + "notAllowedInsideSameType": "이 요소는 동일한 유형의 컨테이너에서 허용되지 않습니다", + "notAllowedLocation": "이 위치에서는 이 요소가 허용되지 않습니다", + "menu": "메뉴", + "menuDescription": "메뉴 요소", + "simpleContainer": "컨테이너", + "simpleContainerDescription": "다른 요소를 위한 컨테이너", + "ratingInput": "평가 입력", + "rating": "평가", + "invalidElementValue": "잘못된 요소 값: {value}", + "ratingDescription": "평가 요소", + "ratingInputDescription": "평가 입력 요소", + "fileInput": "파일 선택", + "fileInputDescription": "파일을 업로드하기 위한 입력란", + "errorValueMissing": "누락된 값 속성", + "errorEmptyContainer": "이 컨테이너는 비어 있습니다", + "errorParentWithDataSourceMissing": "요소 또는 부모 컨테이너에서 선택된 데이터 소스가 없습니다", + "errorDataSourceMissing": "선택된 데이터 소스가 없습니다", + "errorSchemaPropertyMissing": "스키마 속성이 선택되지 않았습니다", + "errorWorkflowActionInError": "적어도 하나의 작업이 잘못 구성되었습니다", + "errorCollectionFieldInError": "적어도 하나의 필드가 잘못 구성되었습니다", + "errorNavigateToPageMissing": "이동 속성이 누락되었습니다", + "errorPageParameterInError": "하나 이상의 페이지 매개변수가 잘못 구성되었습니다", + "errorNavigationUrlMissing": "네비게이션 URL 속성이 없습니다", + "errorImageFileMissing": "이미지 파일이 없습니다", + "errorImageUrlMissing": "이미지 URL 속성이 누락되었습니다", + "errorNoWorkflowAction": "워크플로 작업이 구성되지 않았습니다", + "errorOptionsMissing": "옵션이 구성되지 않았습니다", + "errorIframeUrlMissing": "IFrame URL 속성이 없습니다", + "errorIframeContentMissing": "IFrame 콘텐츠가 누락되었습니다", + "errorNoMenuItem": "메뉴 항목이 구성되지 않았습니다", + "errorMenuItemInError": "최소한 하나의 메뉴가 잘못 구성되었습니다", + "errorSubMenuItemInError": "적어도 하나의 하위 메뉴가 잘못 구성되었습니다" + }, + "addElementButton": { + "label": "요소" + }, + "addElementModal": { + "title": "새 요소 추가", + "searchPlaceholder": "요소 검색", + "disabledElementTooltip": "이 요소 내에서는 사용할 수 없습니다", + "elementInProgress": "요소를 추가하는 중..." + }, + "elementMenu": { + "moveUp": "위로 이동", + "moveDown": "아래로 이동", + "moveLeft": "왼쪽으로 이동", + "moveRight": "오른쪽으로 이동", + "selectParent": "부모 선택" + }, + "duplicatePageJobType": { + "duplicating": "복제 중", + "duplicatedTitle": "페이지 복제됨", + "name": "페이지 복제" + }, + "pageSidePanelType": { + "general": "일반", + "style": "스타일", + "visibility": "공개여부", + "events": "이벤트", + "eventsTabDeactivatedNoEvents": "이 요소는 이벤트를 지원하지 않습니다", + "eventsTabInError": "하나 이상의 작업이 잘못 구성되었습니다." + }, + "emptySidePanelState": { + "message": "더 자세한 정보를 보려면 요소 중 하나를 클릭하세요" + }, + "pagePreview": { + "emptyMessage": "첫 번째 요소를 생성하려면 클릭하세요", + "footer": "푸터", + "header": "헤더" + }, + "elementForms": { + "textInputPlaceholder": "텍스트 입력...", + "urlInputPlaceholder": "URL 입력...", + "invalidFormula": "수식이 유효하지 않습니다" + }, + "headingElement": { + "missingValue": "제목 없음...", + "emptyValue": "빈 제목..." + }, + "headingElementForm": { + "levelTitle": "레벨", + "textTitle": "텍스트", + "textPlaceholder": "텍스트 입력...", + "headingName": "제목 {level} ", + "textError": "값이 유효하지 않습니다." + }, + "textElement": { + "missingValue": "텍스트 없음...", + "emptyValue": "빈 텍스트..." + }, + "textElementForm": { + "textTitle": "텍스트", + "textPlaceholder": "텍스트 입력...", + "textError": "값이 유효하지 않습니다.", + "textFormatTypeLabel": "형식", + "textFormatTypePlain": "일반 텍스트", + "textFormatTypeMarkdown": "마크다운" + }, + "imageElement": { + "missingValue": "대체 텍스트 없음...", + "emptyValue": "빈 대체 텍스트..." + }, + "generalForm": { + "labelTitle": "표시", + "labelPlaceholder": "표시명 입력", + "valueTitle": "값", + "valuePlaceholder": "값 입력", + "placeholderTitle": "플레이스홀더", + "placeholderPlaceholder": "예시 문구 입력", + "requiredTitle": "필수", + "validationTitle": "유효성 검사", + "defaultValueTitle": "기본값", + "defaultValuePlaceholder": "기본값 입력" + }, + "inputTextElementForm": { + "multilineTitle": "여러 줄", + "rowsTitle": "줄 수", + "rowsPlaceholder": "이 입력의 줄 수 입력", + "validationTypeAnyLabel": "무엇이든", + "validationTypeAnyDescription": "이 입력에 어떤 값이든 설정할 수 있도록 허용합니다.", + "validationTypeIntegerLabel": "숫자", + "validationTypeIntegerDescription": "이 입력란에는 숫자만 입력할 수 있도록 제한합니다(정수와 소수 모두 허용).", + "validationTypeEmailLabel": "이메일", + "validationTypeEmailDescription": "이 입력에 이메일 주소 값을 적용합니다.", + "inputType": "입력 유형", + "inputTypeTextLabel": "텍스트", + "inputTypePasswordLabel": "비밀번호", + "passwordTypeWarning": "비밀번호는 민감한 데이터입니다. 애플리케이션에서 비밀번호를 처리하고 저장하는 방법에 주의하세요." + }, + "imageElementForm": { + "fileLabel": "이미지", + "invalidUrlError": "URL이 유효하지 않습니다", + "altTextTitle": "대체 텍스트", + "altTextDescription": "스크린 리더에서 사용되며 이미지를 로드할 수 없는 경우 표시됩니다", + "fileSourceTypeUpload": "업로드", + "fileSourceTypeURL": "URL", + "urlWarning": "참고: 입력하신 URL을 직접 관리하시거나 신뢰할 수 있는 사이트인지 확인해 주십시오.", + "uploadFileButton": "파일 업로드" + }, + "iframeElementForm": { + "missingValue": "IFrame 소스 없음...", + "emptyValue": "빈 IFrame 소스...", + "sourceTypeLabel": "소스 유형", + "urlLabel": "URL", + "urlPlaceholder": "삽입할 외부 리소스의 링크", + "urlHelp": "참고: 입력하신 URL을 직접 관리하시거나 신뢰할 수 있는 사이트인지 확인해 주십시오.", + "embedLabel": "임베드", + "embedPlaceholder": "삽입할 원시 HTML 콘텐츠", + "heightLabel": "높이 (px)", + "heightPlaceholder": "최대 높이 입력" + }, + "columnElementForm": { + "columnAmountTitle": "레이아웃", + "verticalAlignment": "수직 정렬", + "columnAmountName": "열 없음 | 1열 | {columnAmount}열", + "columnGapTitle": "열 사이 간격", + "columnGapPlaceholder": "열 사이 간격 입력..." + }, + "domainSettings": { + "titleOverview": "도메인", + "titleAddDomain": "도메인 추가", + "addDomain": "도메인 추가", + "noDomainMessage": "이 애플리케이션에 도메인을 아직 연결하지 않았습니다. 애플리케이션을 게시하려면 도메인을 추가해야 합니다. 여기 나열된 각 도메인에 대해 애플리케이션의 다른 버전을 게시할 수 있습니다." + }, + "userSourceSettings": { + "titleAddUserSource": "새 사용자 소스", + "titleUpdateUserSource": "사용자 소스 편집", + "noUserSourceMessage": "이 애플리케이션에 사용자 소스를 아직 추가하지 않았습니다. 애플리케이션에서 사용자가 인증할 수 있도록 하려면 사용자 소스를 추가해야 합니다.", + "titleOverview": "사용자 소스", + "addUserSource": "사용자 소스 추가" + }, + "generalSettings": { + "titleOverview": "일반", + "labelForm": "파비콘", + "labelDescription": "128x128px ICO, PNG, GIF 또는 JPEG를 선택하세요.", + "labelButton": "파비콘 업로드", + "cantUploadFaviconTitle": "파비콘 파일을 업로드할 수 없음", + "cantUploadFaviconDescription": "죄송합니다, 파비콘 이미지를 업로드할 수 없습니다. 이미지 파일이 고유하고 지원되는 이미지 형식인지 확인하세요.", + "cantUpdateApplicationTitle": "애플리케이션을 업데이트할 수 없음", + "cantUpdateApplicationDescription": "죄송합니다, 애플리케이션을 업데이트할 수 없습니다." + }, + "dnsStatus": { + "description": "도메인의 DNS 설정으로 이동하여 다음 변경을 수행하세요", + "typeHeader": "유형", + "hostHeader": "호스트", + "valueHeader": "값" + }, + "domainForm": { + "invalidDomain": "제공된 도메인 이름이 유효하지 않습니다", + "notUniqueDomain": "제공된 도메인이 이미 사용 중입니다" + }, + "customDomainForm": { + "domainNameLabel": "도메인 이름" + }, + "subDomainForm": { + "domainNameLabel": "도메인 이름" + }, + "subDomainDetails": { + "text": "도메인의 DNS 설정이 이미 구성되고 확인되었습니다. 추가 변경 없이 작동합니다." + }, + "domainCard": { + "refresh": "설정 새로 고침", + "detailLabel": "세부 정보 표시", + "unpublishedDomainWarning": "이 도메인에서 사용할 수 있도록 애플리케이션을 게시하세요." + }, + "domainTypes": { + "customName": "사용자 정의 도메인", + "subDomainName": "서브도메인", + "subDomain": "{domain}의 서브도메인" + }, + "linkElement": { + "missingValue": "링크 텍스트 없음...", + "emptyValue": "빈 링크 텍스트..." + }, + "linkNavigationSelection": { + "navigateTo": "이동 대상", + "navigateToCustom": "사용자 정의 URL", + "paramPlaceholder": "값 입력...", + "urlPlaceholder": "URL 입력...", + "url": "목적지 URL", + "paramsInErrorDescription": "저장된 매개변수가 페이지 매개변수와 일치하지 않습니다. 페이지가 삭제되었거나 업데이트되었을 수 있습니다.", + "paramsInErrorButton": "매개변수 업데이트", + "target": "여는 위치는...", + "targetSelf": "현재 탭", + "targetNewTab": "새 탭" + }, + "linkElementForm": { + "text": "텍스트", + "textPlaceholder": "텍스트 입력...", + "variant": "변환", + "variantLink": "링크", + "variantButton": "버튼", + "buttonColor": "버튼 색상" + }, + "widthSelector": { + "width": "너비", + "widthAuto": "자동", + "widthFull": "전체 너비" + }, + "backgroundTypes": { + "none": "없음", + "color": "색상" + }, + "widthTypes": { + "fullBleed": "전체 폭", + "fullWidth": "전체 너비", + "normal": "보통", + "medium": "중간", + "small": "작게" + }, + "horizontalAlignmentSelector": { + "alignmentLeft": "왼쪽", + "alignmentCenter": "가운데", + "alignmentRight": "오른쪽" + }, + "verticalAlignmentSelector": { + "alignmentTop": "상단", + "alignmentCenter": "중간", + "alignmentBottom": "하단" + }, + "pageSettingsTypes": { + "pageName": "페이지" + }, + "pageSettings": { + "title": "페이지", + "pageUpdatedTitle": "변경됨", + "pageUpdatedDescription": "페이지 설정이 업데이트되었습니다." + }, + "pageForm": { + "defaultName": "페이지", + "nameTitle": "이름", + "nameSubtitle": "페이지의 고유한 이름", + "namePlaceholder": "이름 입력...", + "pathTitle": "경로", + "pathSubtitle": ":parameter를 통해 매개변수를 추가할 수 있습니다", + "pathPlaceholder": "경로 입력...", + "pathParamsTitle": "경로 매개변수", + "pathParamsSubtitle": "경로의 :parameter로 정의됩니다", + "pathParamsSubtitleTutorial": "경로 매개변수는 제공된 매개변수에 따라 데이터를 동적으로 로드하는 데 사용할 수 있습니다. 경로에 :parameter를 추가하여 하나를 추가하세요.", + "addParameter": "쿼리 문자열 매개변수 추가", + "queryParamsTitle": "쿼리 문자열 매개변수", + "queryParamsSubtitleTutorial": "쿼리 매개변수는 제공된 매개변수에 따라 데이터를 동적으로 로드하는 데 사용할 수 있습니다.", + "addAnotherParameter": "다른 쿼리 문자열 매개변수 추가" + }, + "pathParamTypes": { + "textName": "텍스트", + "numericName": "숫자" + }, + "publicPage": { + "siteNotFound": "사이트를 찾을 수 없습니다", + "pageNotFound": "페이지를 찾을 수 없습니다", + "loginToastMessage": "성공적으로 로그인되었습니다.", + "authorizedToastTitle": "인증 필요", + "loginToastTitle": "인증 성공", + "authorizedToastMessage": "이 페이지에 접근하려면 로그인해야 합니다. 계속하려면 로그인하세요." + }, + "integrationSettings": { + "title": "통합", + "noIntegrationMessage": "아직 통합을 생성하지 않았습니다. 데이터 소스, 작업 또는 사용자 인증을 추가하여 통합을 생성할 수 있습니다.", + "integrationMessage": "데이터 소스, 작업 또는 사용자 인증을 추가하여 새로운 통합을 생성할 수 있습니다." + }, + "dataSourceForm": { + "namePlaceholder": "소스 이름", + "nameLabel": "이름", + "actionLabel": "작업", + "integrationLabel": "통합", + "servicePlaceholder": "서비스 선택", + "integrationPlaceholder": "통합 선택", + "errorUniqueName": "데이터 소스 이름은 고유해야 합니다." + }, + "dataSourceContext": { + "addDataSource": "새 데이터 소스 추가", + "noDataSourceTitle": "아직 데이터 소스를 추가하지 않았습니다.", + "noDataSourceMessage": "데이터 소스는 내부 또는 외부 소스에서 데이터를 가져와 페이지에 표시하는 데 사용할 수 있습니다.", + "sharedDataSourceTitle": "페이지 간 공유", + "pageDataSourceTitle": "이 페이지용", + "sharedDataSourceDescription": "모든 페이지에서 접근 가능하며 첫 페이지 로드 시 한 번 가져옵니다.", + "pageDataSourceDescription": "사용자가 이 페이지로 이동할 때 가져옵니다." + }, + "dataSourceItem": { + "notConfigured": "구성되지 않음" + }, + "dataSourceItemContext": { + "shareBetweenPages": "페이지 간 공유", + "unshareBetweenPages": "다른 페이지에서 공유 해제" + }, + "dataSourceCreateEditModal": { + "editTitle": "데이터 소스 편집", + "createTitle": "데이터 소스 생성", + "sharedWarning": "이 데이터 소스는 공유되므로 변경 사항이 여러 페이지에 영향을 미칠 수 있습니다." + }, + "defaultStyleForm": { + "boxTop": "상단", + "boxBottom": "하단", + "boxLeft": "왼쪽", + "boxRight": "오른쪽", + "backgroundLabel": "배경", + "backgroundColor": "배경색", + "widthLabel": "너비", + "backgroundImage": "이미지", + "backgroundImageMode": "채우기 모드", + "cssClasses": "CSS 클래스", + "cssClassesHelp": "생성된 HTML에 나타날 이 요소에 대한 클래스 목록을 공백으로 구분하여 설정합니다.", + "cssClassesPlaceholder": "CSS 클래스를 소개합니다..." + }, + "styleBoxForm": { + "borderColor": "테두리 색상", + "borderLabel": "크기", + "paddingLabel": "안쪽 여백", + "marginLabel": "바깥 여백" + }, + "themeConfigBlockType": { + "color": "색상", + "page": "페이지", + "typography": "타이포그래피", + "button": "버튼", + "link": "링크", + "image": "이미지", + "input": "입력", + "table": "테이블" + }, + "colorThemeConfigBlock": { + "transparent": "투명", + "primaryColor": "기본", + "secondaryColor": "보조", + "borderColor": "테두리", + "successColor": "성공", + "warningColor": "경고", + "errorColor": "오류", + "customColors": "사용자 색상", + "addCustomColor": "사용자 색상 추가", + "customColorPrefix": "커스텀" + }, + "pageThemeConfigBlock": { + "backgroundColor": "배경색", + "backgroundImage": "배경 이미지", + "backgroundMode": "배경 모드" + }, + "colorThemeConfigBlockType": { + "transparent": "투명", + "primary": "기본", + "secondary": "보조", + "border": "테두리", + "success": "성공", + "warning": "경고", + "error": "오류" + }, + "typographyThemeConfigBlock": { + "headingLabel": "제목 {i} (h{i})", + "headingValue": "제목 ", + "color": "색상", + "size": "크기", + "textAlignment": "정렬", + "bodyLabel": "본문", + "fontFamily": "폰트", + "weight": "굵기", + "decoration": "텍스트 꾸밈" + }, + "buttonThemeConfigBlock": { + "backgroundColor": "배경색", + "button": "버튼", + "defaultState": "기본 상태", + "hoverState": "눌린 상태", + "textAlignment": "텍스트 정렬", + "alignment": "정렬", + "width": "너비", + "textColor": "텍스트 색상", + "borderColor": "테두리 색상", + "borderSize": "테두리 크기", + "borderRadius": "테두리 반경", + "padding": "안쪽 여백", + "fontFamily": "폰트", + "size": "폰트 크기", + "weight": "폰트 굵기", + "activeState": "활성 상태" + }, + "linkThemeConfigBlock": { + "color": "색상", + "link": "링크", + "defaultState": "기본 상태", + "hoverState": "눌린 상태", + "alignment": "정렬", + "fontFamily": "폰트", + "size": "폰트 크기", + "weight": "폰트 굵기", + "activeState": "활성 상태", + "decoration": "텍스트 꾸밈" + }, + "inputThemeConfigBlock": { + "label": "표시", + "input": "입력", + "backgroundColor": "배경색", + "textColor": "텍스트 색상", + "borderColor": "테두리 색상", + "borderSize": "테두리 크기", + "borderRadius": "테두리 반경", + "padding": "안쪽 여백", + "fontFamily": "폰트", + "size": "폰트 크기", + "weight": "폰트 굵기" + }, + "imageThemeConfigBlock": { + "alignment": "정렬", + "maxWidthLabel": "최대 너비", + "maxHeightLabel": "최대 높이", + "maxHeightPlaceholder": "최대 높이 입력", + "maxWidthPlaceholder": "최대 너비 입력", + "imageConstraintsLabel": "제한", + "imageConstraintFullWidth": "최대 너비까지 확장", + "imageConstraintCover": "채우기", + "imageConstraintCoverDisabled": "빈 최대 높이로는 사용할 수 없습니다.", + "imageConstraintContain": "맞춤", + "imageConstraintContainDisabled": "최대 높이가 있으면 사용할 수 없습니다.", + "imageBorderRadiusLabel": "테두리 반경", + "imageBorderRadiusPlaceholder": "이미지 테두리 반경을 입력하세요." + }, + "tableThemeConfigBlock": { + "borderColor": "테두리 색상", + "backgroundAlternateColor": "짝수 행 색상", + "backgroundColor": "배경색", + "textColor": "텍스트 색상", + "borderSize": "테두리 크기", + "borderRadius": "테두리 반경", + "padding": "안쪽 여백", + "fontFamily": "폰트", + "size": "크기", + "fontSize": "폰트 크기", + "table": "테이블", + "header": "헤더", + "alignment": "정렬", + "cells": "셀", + "separators": "구분선", + "verticalSeparatorColor": "세로 색상", + "verticalSeparatorSize": "세로 크기", + "horizontalSeparatorColor": "가로 색상", + "horizontalSeparatorSize": "가로 크기", + "fontWeight": "폰트 굵기" + }, + "buttonElementForm": { + "valueLabel": "버튼 텍스트", + "valuePlaceholder": "텍스트 입력..." + }, + "buttonElement": { + "missingValue": "버튼 텍스트 없음...", + "emptyValue": "빈 버튼 텍스트..." + }, + "eventTypes": { + "clickLabel": "클릭 시", + "submitLabel": "제출 시", + "afterLoginLabel": "로그인 후" + }, + "getFormulaComponent": { + "errorTooltip": "유효하지 않은 참조" + }, + "fontSidePanelForm": { + "label": "폰트 색상" + }, + "choiceElementForm": { + "multiple": "다중 값 허용", + "display": "디스플레이", + "dropdown": "드롭다운", + "checkbox": "체크박스", + "radio": "라디오" + }, + "dropdown": { + "empty": "사용 가능한 옵션 없음" + }, + "tableElementForm": { + "dataSource": "데이터 소스", + "fields": "필드", + "fieldValueLabel": "값", + "addField": "필드 추가", + "fieldValuePlaceholder": "값 입력...", + "itemsPerPage": "페이지당 항목 수", + "fieldDefaultName": "열", + "name": "이름", + "fieldType": "유형", + "itemsPerPagePlaceholder": "값 입력...", + "selectSourceFirst": "필드를 구성하려면 데이터 소스 및/또는 속성을 선택하세요.", + "buttonColor": "버튼 색상", + "refreshFieldsFromDataSource": "데이터 소스에서 필드 새로 고침", + "orientation": "방향", + "orientationHorizontal": "수평", + "orientationVertical": "수직", + "buttonLoadMoreLabel": "더 보기 표시", + "propertySelectorMissingArrays": "행으로 사용할 다중 값 필드를 찾을 수 없습니다.", + "noName": "이름 없음" + }, + "tableElement": { + "showMore": "더 보기" + }, + "abTable": { + "loading": "로드 중...", + "empty": "항목을 찾을 수 없습니다." + }, + "repeatElement": { + "empty": "항목을 찾을 수 없습니다.", + "showMore": "더 보기", + "missingDataSourceTooltip": "요소를 추가하려면 데이터 소스를 선택하세요.", + "missingSchemaPropertyTooltip": "요소를 추가하려면 속성을 선택하세요.", + "emptyState": "내용을 찾을 수 없습니다." + }, + "collectionElementForm": { + "noDataSourceMessage": "모든 결과를 나열하려면 여러 행이 있는 데이터 소스를 선택하거나, 이 행 내의 속성을 선택하려면 단일 행 데이터 소스를 선택하세요.", + "noSchemaPropertyMessage": "요소의 목록 데이터로 사용할 데이터 소스 내의 속성을 선택하세요.", + "propertyOptionLabel": "사용자 작업" + }, + "propertyOptionForm": { + "fieldHeading": "필드", + "filterHeading": "필터", + "sortHeading": "정렬", + "searchHeading": "검색", + "optionUnavailable": "사용할 수 없음", + "noPropertiesAvailable": "사용 가능한 필드가 없습니다.", + "formDescription": "이 요소의 데이터 소스에서 페이지 방문자가 필터링, 정렬 및 검색할 수 있는 속성을 선택하세요." + }, + "repeatElementForm": { + "dataSource": "데이터 소스", + "itemsPerPage": "페이지당 항목 수", + "itemsPerPagePlaceholder": "값 입력...", + "itemsPerRowLabel": "행당 항목 수", + "itemsPerRowDescription": "열 당 열 수 및 기기 유형.", + "orientationLabel": "방향", + "orientationVertical": "수직", + "orientationHorizontal": "수평", + "buttonLoadMoreLabel": "더 보기 표시", + "toggleEditorRepetitionsLabel": "반복 일시적으로 비활성화", + "propertySelectorMissingArrays": "반복할 다중 값 필드를 찾을 수 없습니다.", + "gapVerticalLabel": "세로", + "gapLabel": "반복 사이의 간격", + "gapHorizontalLabel": "가로" + }, + "recordSelectorElement": { + "emptyAdhocState": "'{query}'와 일치하는 내용을 찾을 수 없습니다.", + "emptyState": "내용을 찾을 수 없습니다." + }, + "recordSelectorElementForm": { + "selectRecordsFrom": "레코드 선택", + "noDataSourceMessage": "모든 결과를 나열하려면 여러 행이 있는 데이터 소스를 선택하세요.", + "optionNameSuffix": "옵션 이름 접미사", + "optionNameSuffixPlaceholder": "접미사 입력...", + "optionNameSuffixHelper": "드롭다운을 열 때 각 옵션 이름에 추가되며 구분하는 데 도움이 됩니다.", + "itemsPerPage": "페이지당 항목 수", + "itemsPerPagePlaceholder": "값 입력...", + "multipleLabel": "다중 값 허용", + "record": "레코드 {id}" + }, + "currentRecordDataProviderType": { + "index": "인덱스", + "firstPartName": "데이터 소스: {name}", + "schemaProperty": "{prefixName}: {schemaProperty}" + }, + "workflowActionTypes": { + "notificationLabel": "알림 표시", + "openPageLabel": "페이지 열기", + "createRowLabel": "행 생성", + "updateRowLabel": "행 업데이트", + "deleteRowLabel": "행 삭제", + "logoutLabel": "로그아웃", + "refreshDataSourceLabel": "데이터 소스 새로 고침", + "httpRequest": "HTTP 요청 보내기", + "errorNavigateToPageMissing": "이동대상 속성이 누락되었습니다", + "errorPageParameterInError": "하나 이상의 페이지 매개변수가 잘못 구성되었습니다", + "errorNavigationUrlMissing": "네비게이션 URL 속성이 없습니다", + "errorDataSourceMissing": "선택된 데이터 소스가 없습니다" + }, + "notificationWorkflowActionForm": { + "titleLabel": "제목", + "titlePlaceholder": "텍스트 입력...", + "descriptionLabel": "설명", + "descriptionPlaceholder": "텍스트 입력..." + }, + "event": { + "addAction": "작업 추가" + }, + "collectionFieldType": { + "boolean": "불리언", + "button": "버튼", + "text": "텍스트", + "link": "링크", + "tags": "태그", + "image": "이미지", + "rating": "평가", + "errorValueMissing": "누락된 값 속성" + }, + "textFieldForm": { + "fieldValueLabel": "값", + "fieldValuePlaceholder": "값 입력..." + }, + "linkFieldForm": { + "fieldValueLabel": "URL", + "fieldValuePlaceholder": "값 입력...", + "fieldLinkNameLabel": "링크 텍스트", + "fieldLinkNamePlaceholder": "값 입력...", + "buttonColor": "버튼 색상" + }, + "tagsFieldForm": { + "fieldValuesLabel": "값", + "fieldValuesPlaceholder": "값 입력...", + "fieldColorsLabel": "색상", + "fieldColorsPlaceholder": "색상 입력..." + }, + "linkField": { + "details": "세부 정보" + }, + "imageFieldForm": { + "fieldSrcLabel": "이미지 소스", + "fieldSrcPlaceholder": "값 입력", + "fieldAltLabel": "대체 텍스트", + "fieldAltPlaceholder": "값 입력...", + "fieldAltHelp": "스크린 리더에서 사용되며 이미지를 로드할 수 없는 경우 표시됩니다" + }, + "createUserSourceForm": { + "userSourceType": "유형", + "userSourceIntegration": "통합", + "userSourceName": "이름" + }, + "updateUserSourceForm": { + "nameFieldLabel": "이름", + "nameFieldPlaceholder": "이름 입력...", + "authTitle": "인증", + "integrationFieldLabel": "통합", + "addProvider": "제공자 추가" + }, + "formContainerElement": { + "submitDeactivatedText": "제출하려면 모든 필수 필드를 완료하세요", + "defaultSubmitButtonLabel": "제출" + }, + "formContainerElementForm": { + "submitButtonLabel": "제출 버튼", + "submitButtonPlaceholder": "값 입력...", + "buttonColor": "버튼 색상", + "resetToInitialValuesTitle": "제출 후 기본값으로 재설정", + "resetToInitialValuesDescription": "선택한 경우, 성공적인 제출 후 양식의 기본값이 양식을 재설정하는 데 사용됩니다. 선택하지 않은 경우, 사용자의 값이 유지됩니다." + }, + "choiceOptionSelector": { + "label": "옵션", + "value": "옵션 값", + "valuePlaceholder": "값 입력", + "name": "옵션 이름", + "namePlaceholder": "이름 입력", + "addOption": "옵션 추가", + "addOptionDescription": "'옵션 추가'를 클릭하여 드롭다운에 옵션을 추가하세요", + "optionType": "옵션 유형", + "manual": "수동", + "dataSource": "데이터 소스", + "formulas": "수식" + }, + "dispatchWorkflowActionError": { + "defaultTitle": "이벤트 오류", + "defaultMessage": "이 이벤트를 트리거하는 중 오류가 발생했습니다.", + "formDataInvalidTitle": "유효하지 않은 양식", + "formDataInvalidMessage": "하나 이상의 필드에 유효하지 않은 값이 있습니다." + }, + "dispatchDataSourceError": { + "defaultTitle": "데이터 로딩 오류", + "defaultMessage": "페이지의 데이터를 로드하는 중 오류가 발생했습니다." + }, + "localBaserowServiceForm": { + "integrationDropdownLabel": "통합", + "rowIdLabel": "행 ID", + "rowIdPlaceholder": "행 ID 선택" + }, + "upsertRowWorkflowActionForm": { + "fieldMappingPlaceholder": "필드 값 선택", + "noTableSelectedMessage": "필드를 구성하려면 테이블을 선택하세요." + }, + "fieldMappingContext": { + "enableField": "필드 활성화", + "disableField": "필드 비활성화" + }, + "checkboxElementForm": { + "labelTitle": "옵션 이름", + "valueTitle": "기본값", + "requiredTitle": "필수" + }, + "choiceElement": { + "addOptions": "이 요소를 사용하려면 옵션을 추가하세요..." + }, + "userSourceUsersContext": { + "searchPlaceholder": "사용자 검색", + "anonymous": "익명", + "unnamed": "이름 없음", + "noEmail": "이메일 없음" + }, + "userSelector": { + "viewAs": "{user}으로 보기", + "anonymous": "익명", + "member": "{prefix} 멤버" + }, + "visibilityForm": { + "allVisitors": "모든 방문자", + "loggedInVisitors": "로그인한 방문자", + "notLoggedInVisitors": "로그아웃한 방문자", + "warningTitle": "이것은 보안 기능입니다", + "warningMessage": "<a href='https://baserow.io/user-docs/application-builder-element-visibility#note-accessing-hidden-data-via-api' target='_blank'>문서</a>를 확인하여 데이터를 보호하는 방법에 대해 자세히 알아보세요.", + "excludedRolesLabel": "모든 역할 제외", + "switchAllowLabel": "허용", + "switchDisallowLabel": "허용 안 함", + "rolesSelectAll": "모두 선택", + "rolesDeselectAll": "모두 선택 취소", + "rolesSelectHint": "하나 이상의 역할 선택", + "roleTypesHint": "역할 유형 선택", + "roleTypeAllowAllRoles": "모든 역할", + "roleTypeAllowAllRolesExcept": "역할 허용 안 함...", + "roleTypeDisallowAllRolesExcept": "역할 허용...", + "rolesAllMembersOf": "{name}의 모든 멤버", + "noRole": "역할 없음", + "errorFetchingRolesTitle": "사용자 역할을 가져올 수 없습니다", + "errorFetchingRolesMessage": "사용자 역할을 가져오는 동안 문제가 발생했습니다.", + "visibilityCondition": "표시성 조건", + "visibilityConditionHelper": "이 수식의 결과가 참이고 위의 방문자 선택 사항이 참이면 요소가 표시됩니다. 이 조건은 요소의 표시 여부에만 영향을 미칩니다. 서버 응답에서 데이터를 제외하려면 위의 사용자 역할 필터링 옵션을 사용하세요.", + "visibilityConditionPlaceholder": "상태...", + "documentationLink": "문서" + }, + "userDataProviderType": { + "isAuthenticated": "인증됨", + "id": "아이디", + "email": "이메일", + "username": "사용자 이름", + "role": "역할" + }, + "buttonField": { + "noLabel": "이름 없음..." + }, + "buttonFieldForm": { + "infoMessage": "이 버튼의 작업을 구성하려면 현재 요소의 \"이벤트\" 탭을 여세요.", + "labelPlaceholder": "표시명 입력..." + }, + "resetButton": { + "reset": "기본 테마 값으로 재설정" + }, + "backgroundModes": { + "fill": "채우기", + "tile": "타일", + "fit": "맞춤" + }, + "customStyle": { + "themeOverrides": "테마 재정의", + "configureThemeOverrides": "이 요소에 대한 테마 재정의 구성", + "backToElement": "요소 구성으로 돌아가기" + }, + "serviceSchemaPropertySelector": { + "label": "속성", + "noProperties": "사용 가능한 속성 없음" + }, + "dataSourceDropdown": { + "label": "데이터 소스", + "noDataSources": "사용 가능한 데이터 소스 없음", + "shared": "공유됨", + "pageOnly": "이 페이지", + "noSharedDataSources": "공유 데이터 소스가 없습니다", + "addNew": "새 데이터 소스 추가" + }, + "common": { + "timeFormat12Hour": "12 시간", + "dateFormatISO": "ISO", + "dateFormatUS": "US", + "timeFormatTitle": "시간 형식", + "dateFormatEU": "European", + "timeFormat24Hour": "24 시간", + "dateFormatTitle": "날짜 형식" + }, + "themeSettings": { + "titleOverview": "테마" + }, + "pageVisibilitySettings": { + "title": "공개여부", + "allVisitors": "모든 방문자", + "loggedInVisitors": "로그인한 방문자", + "description": "이 페이지를 누가 볼 수 있나요" + }, + "multiPageContainerElementForm": { + "behaviour": "동작", + "display": "표시", + "deselectAll": "모두 선택 해제", + "pagePosition": "위치", + "selectAll": "모두 선택" + }, + "pageShareType": { + "all": "모든 페이지에서", + "only": "선택된 페이지에서만", + "except": "선택한 페이지 제외" + }, + "dateTimePickerElementForm": { + "includeTime": "시간 포함", + "invalidDateError": "잘못된 날짜입니다. 입력 날짜가 주어진 형식과 일치하는지 확인하세요." + }, + "pageVisibilitySettingsTypes": { + "logInPageWarningTitle": "로그인 페이지가 설정되지 않았습니다", + "pageName": "공개여부", + "logInPagewarningMessage": "익명 사용자가 이 페이지에 액세스하려고 하면 로그인 페이지로 리디렉션됩니다. 애플리케이션의 일반 설정에서 로그인 페이지를 설정하세요.", + "logInPageInfoTitle": "익명 사용자는 리디렉션됩니다", + "logInPageInfoMessage": "익명의 사용자가 이 페이지에 접근을 시도하면 {logInPageName} 페이지로 리디렉션됩니다." + }, + "pageEditor": { + "pageNotFound": "페이지를 찾을 수 없습니다", + "title": "베이스로우 | 애플리케이션 빌더" + }, + "builderLoginPageForm": { + "pageDropdownLabel": "로그인 페이지", + "pageDropdownPlaceholder": "페이지를 선택하세요", + "pageDropdownDescription": "로그인하지 않은 사용자가 제한된 페이지에 접근하려 할 때 리디렉션되어야 하는 로그인 페이지를 선택하세요." + }, + "fontWeightType": { + "light": "Light", + "thin": "Thin", + "extraLight": "Extra-light", + "black": "Black", + "regular": "Regular", + "bold": "Bold", + "extraBold": "Extra-bold", + "medium": "Medium", + "semiBold": "Semi-bold", + "extraBlack": "Extra-black" + }, + "queryParamTypes": { + "textName": "텍스트", + "numericName": "숫자" + }, + "radiusStyleForm": { + "backgroundRadiusLabel": "배경", + "borderRadiusLabel": "테두리", + "cornerRadiusLabel": "모서리 반경" + }, + "authProviderWithModal": { + "authProviderInError": "오류를 수정하려면 이 공급자를 편집하세요.", + "title": "제공자 편집: {name}" + }, + "addElementCategory": { + "layoutElement": "레이아웃 요소", + "suggestedElement": "제안된 요소", + "baseElement": "기본 요소", + "formElement": "양식 요소" + }, + "userSourceDropdown": { + "label": "사용자 소스", + "addUserSource": "새로운 사용자 소스 추가", + "noUserSources": "사용 가능한 사용자 소스 없음" + }, + "menuElement": { + "emptyLinkValue": "링크 이름이 비어있습니다...", + "missingLinkValue": "링크 이름이 없습니다...", + "missingValue": "메뉴 항목이 없음", + "separator": "구분자", + "spacer": "공간 조정자", + "missingButtonValue": "버튼 이름이 없습니다...", + "emptyButtonValue": "버튼 이름이 비어있습니다..." + }, + "orientations": { + "label": "방향", + "vertical": "수직", + "horizontal": "가로" + }, + "menuElementForm": { + "menuItemsLabel": "메뉴 항목", + "menuItemTypeSeparator": "구분자", + "menuItemAddSeparator": "구분자", + "addMenuItemLink": "추가...", + "alignment": "조정", + "menuItemDefaultName": "페이지", + "menuItemLabelLabel": "라벨", + "menuItemTypeLabel": "종류", + "menuItemTypeItem": "아이템", + "menuItemVariantLabel": "변형", + "menuItemVariantLink": "링크", + "menuItemVariantButton": "버튼", + "namePlaceholder": "페이지", + "addSubLink": "하위 링크 추가", + "menuItemSubLinkDefaultName": "하위 링크", + "menuItemAddLink": "링크", + "menuItemAddButton": "버튼", + "menuItemAddSpacer": "공간 조정자", + "eventDescription": "이 버튼의 동작을 구성하려면 해당 요소의 이벤트 탭을 열어주세요.", + "noMenuItemsMessage": "'추가' 버튼을 클릭하여 첫 번째 메뉴 항목을 추가하세요." + }, + "simpleContainerElementForm": { + "noConfigurationOptions": "컨테이너 요소에는 구성 옵션이 없습니다." + }, + "linkDecorations": { + "normal": "기본", + "plain": "꾸밈없음" + }, + "textDecorationSelector": { + "underline": "밑줄", + "stroke": "윤곽선", + "italic": "이탤릭", + "uppercase": "대문자" + }, + "ratingFieldForm": { + "style": "스타일", + "thumbsUp": "좋아요", + "maxValue": "최대값", + "value": "값", + "color": "색상", + "star": "별", + "heart": "하트", + "flag": "깃발" + }, + "ratingElementForm": { + "heart": "하트", + "color": "색상", + "maxValue": "최대", + "ratingStyle": "스타일", + "star": "별", + "smile": "스마일", + "flag": "깃발", + "thumbsUp": "좋아요" + }, + "automationSettingsModal": { + "title": "워크플로우" + }, + "abFileInput": { + "delete": "제거" + }, + "elementsGuidedTourStep": { + "title": "페이지에 요소를 추가", + "content": "모든 앱에는 컴포넌트가 필요합니다! 표, 양식, 버튼 등의 요소를 추가하여 앱에 생동감을 더하세요." + }, + "dataGuidedTourStep": { + "title": "데이터를 연결하세요", + "content": "여기에 Baserow 테이블을 연결하면 다양한 요소에서 데이터를 동적으로 표시, 필터링, 업데이트할 수 있습니다." + }, + "previewGuidedTourStep": { + "title": "귀하의 제어 센터", + "content": "여기서 앱 페이지를 구성할 수 있습니다. 요소를 추가하고, 결과를 미리 보고, 원하는 대로 앱을 구성하세요." + }, + "devicesGuidedTourStep": { + "title": "다양한 기기에서 미리 보기", + "content": "데스크톱, 태블릿, 모바일 미리보기를 전환하여 다양한 화면 크기에서 앱이 어떻게 보이는지 확인하세요. 모든 기기에서 디자인이 완벽하게 작동하는지 확인하세요!" + }, + "sidePanelGuidedTourStep": { + "title": "사이드 패널: 요소 사용자 정의", + "content": "**일반 탭** – 선택한 요소를 구성합니다.\n\n**스타일 탭** – 패딩, 여백, 테두리 등을 사용자 지정합니다.\n\n**표시 여부 탭** – 이 요소를 볼 수 있는 사용자(로그인한 사용자, 로그아웃한 사용자 또는 특정 역할)를 제어합니다.\n\n**이벤트 탭** – 요소가 동작을 지원하는 경우, 동적 상호작용을 위해 여기에서 동작을 설정합니다." + }, + "previewPublishGuidedTourStep": { + "title": "앱 미리 보기 및 게시", + "content": "**미리보기**를 클릭하여 앱을 비공개로 테스트해 보세요. 준비가 되면 **게시**를 클릭하여 도메인을 통해 모든 사람과 공유하세요." + }, + "builderToast": { + "details": "세부", + "defaultTitle": "예기치 않은 오류", + "defaultMessage": "예기치 않은 오류가 발생했습니다. 나중에 다시 시도해 주세요.", + "invalidContextTitle": "잘못된 요청", + "invalidContextMessage": "요청이 잘못되었습니다.", + "InvalidContentTitle": "잘못된 형식", + "invalidContentMessage": "하나 이상의 필드에 잘못된 값이 포함되어 있습니다.", + "serviceMisconfiguredTitle": "구성이 완료되지 않았습니다", + "serviceMisconfiguredMessage": "구성을 확인하세요.", + "errorWorkflowActionDispatch": "\"{name}\" 작업이 실패했습니다. ", + "errorDataSourceDispatch": "\"{name}\" 데이터를 로드하는 데 실패했습니다. " + } } diff --git a/web-frontend/modules/builder/locales/nl.json b/web-frontend/modules/builder/locales/nl.json index 70243942cc..d2b0e92d06 100644 --- a/web-frontend/modules/builder/locales/nl.json +++ b/web-frontend/modules/builder/locales/nl.json @@ -1,1205 +1,1210 @@ { - "sidebarComponentBuilder": { - "settings": "Instellingen", - "createPage": "Pagina maken" - }, - "builderSettingsModal": { - "title": "Applicatie" - }, - "createPageModal": { - "header": "Pagina maken", - "submit": "Pagina toevoegen" - }, - "pageForm": { - "nameLabel": "Naam", - "defaultName": "Pagina", - "errorNameNotUnique": "Een pagina met deze naam bestaat al", - "pathLabel": "Pad", - "errorPathNotUnique": "Een pagina met deze naam bestaat al", - "errorStartingSlash": "Een pad moet beginnen met een '/'", - "errorValidPathCharacters": "Het pad bevat ongeldige tekens", - "pathParamsTitle": "Pad parameters", - "pathParamsSubtitle": "Worden gedefinieerd door :parameter in het pad", - "nameSubtitle": "Unieke naam van de pagina", - "pathTitle": "Pad", - "pathParamsSubtitleTutorial": "Pad parameters kunnen worden gebruikt om gegevens dynamisch te laden, afhankelijk van de opgegeven parameter. Voeg :parameter toe aan het pad om er een toe te voegen.", - "nameTitle": "Naam", - "pathSubtitle": "Een parameter kan worden toegevoegd via :parameter", - "namePlaceholder": "Voer een naam in...", - "pathPlaceholder": "Voer een pad in...", - "addAnotherParameter": "Nog een query string parameter toevoegen", - "addParameter": "Query string parameter toevoegen", - "queryParamsSubtitleTutorial": "Query parameters kunnen worden gebruikt om dynamisch gegevens te laden, afhankelijk van de opgegeven parameter.", - "queryParamsTitle": "Query string parameters" - }, - "builderForm": { - "submit": "Applicatie toevoegen" - }, - "builderSettingTypes": { - "themeName": "Thema", - "integrationsName": "Integraties", - "domainsName": "Domeinen", - "userSourcesName": "Gebruikers", - "generalName": "Algemeen" - }, - "elementMenu": { - "moveUp": "Verplaats omhoog", - "moveDown": "Verplaats omlaag", - "moveRight": "Naar rechts", - "moveLeft": "Naar links", - "selectParent": "Selecteer ouder" - }, - "pageHeaderItemTypes": { - "labelElements": "Elementen", - "labelDataSource": "Data", - "labelVariables": "Variabelen", - "labelSettings": "Pagina-instellingen" - }, - "elementsContext": { - "searchPlaceholder": "Zoek elementen", - "noElements": "Geen elementen gevonden", - "noPageElements": "Geen elementen gevonden voor deze pagina" - }, - "elementType": { - "heading": "Kop", - "headingDescription": "Titel paginakop", - "text": "Paragraaf", - "textDescription": "Tekst op één regel", - "link": "Link", - "image": "Afbeelding", - "linkDescription": "Een link naar pagina/URL", - "imageDescription": "Afbeelding weergeven", - "inputText": "Tekstinvoer", - "inputTextDescription": "Een tekstinvoerveld", - "column": "Kolommen", - "table": "Tabel", - "formContainer": "Formulier", - "tableDescription": "Een tabel element", - "columnDescription": "Kolommen container", - "button": "Knop", - "buttonDescription": "Een knop element", - "formContainerDescription": "Een formulier element", - "dropdownDescription": "Dropdown element", - "iframeDescription": "Inline frame", - "dropdown": "Dropdown", - "checkbox": "Checkbox", - "checkboxDescription": "Checkbox element", - "iframe": "IFrame", - "authForm": "Inlogformulier", - "authFormDescription": "Een login formulier voor gebruikers", - "repeat": "Herhaal", - "repeatDescription": "Een herhaalbare reeks elementen", - "choice": "Keuze", - "choiceDescription": "Voor enkele/meervoudige waarde selectie", - "recordSelector": "Recordkiezer", - "recordSelectorDescription": "Een gerelateerde recordkiezer", - "header": "Multi-pagina header", - "headerDescription": "Een container gedeeld over pagina's", - "footer": "Multi-pagina footer", - "footerDescription": "Een container gedeeld over pagina's", - "notAllowedUnlessTop": "Dit element is alleen toegestaan bovenaan de pagina", - "notAllowedUnlessBottom": "Dit element is alleen toegestaan onderaan de pagina", - "notAllowedUnlessHeader": "Dit element is alleen toegestaan in de pagina header", - "notAllowedUnlessFooter": "Dit element is alleen toegestaan in de footer van de pagina", - "notAllowedInsideContainer": "Dit element is niet toegestaan in een container", - "notAllowedInsideSameType": "Dit element is niet toegestaan in een container van hetzelfde type", - "notAllowedLocation": "Dit element is niet toegestaan op deze locatie", - "dateTimePicker": "Datum tijd kiezer", - "dateTimePickerDescription": "Een invoerveld voor datum en tijd", - "simpleContainer": "Container", - "menu": "Menu", - "menuDescription": "Menu element", - "simpleContainerDescription": "Een container voor andere elementen", - "invalidElementValue": "Ongeldige element waarde: {value}", - "ratingDescription": "Een beoordelings element", - "ratingInput": "Beoordeling invoer", - "rating": "Beoordeling", - "ratingInputDescription": "Een beoordeling selement", - "fileInput": "Bestandsinvoer", - "fileInputDescription": "Een invoerveld om bestanden te uploaden", - "errorValueMissing": "Ontbrekende waarde eigenschap", - "errorEmptyContainer": "Deze container is leeg", - "errorParentWithDataSourceMissing": "Geen gegevensbron geselecteerd op het element of een bovenliggende container", - "errorDataSourceMissing": "Geen gegevensbron geselecteerd", - "errorSchemaPropertyMissing": "Geen schema-eigenschap geselecteerd", - "errorWorkflowActionInError": "Ten minste één actie is verkeerd geconfigureerd", - "errorCollectionFieldInError": "Ten minste één veld is verkeerd geconfigureerd", - "errorNavigateToPageMissing": "Ontbreekt Navigeer naar eigenschap", - "errorPageParameterInError": "Ten minste één paginaparameter is verkeerd geconfigureerd", - "errorNavigationUrlMissing": "Ontbrekende URL-eigenschap voor navigatie", - "errorImageFileMissing": "Ontbrekend afbeeldingsbestand", - "errorImageUrlMissing": "Ontbrekende URL-eigenschap voor afbeelding", - "errorNoWorkflowAction": "Geen workflowactie geconfigureerd", - "errorOptionsMissing": "Geen optie geconfigureerd", - "errorIframeUrlMissing": "Ontbrekende IFrame URL eigenschap", - "errorIframeContentMissing": "Ontbrekende IFrame-inhoud", - "errorNoMenuItem": "Geen menu-item geconfigureerd", - "errorMenuItemInError": "Ten minste één menu is verkeerd geconfigureerd", - "errorSubMenuItemInError": "Ten minste één submenu is verkeerd geconfigureerd" - }, - "addElementButton": { - "label": "Element" - }, - "addElementModal": { - "title": "Nieuw element toevoegen", - "searchPlaceholder": "Zoek elementen", - "disabledElementTooltip": "Niet beschikbaar binnen dit element", - "elementInProgress": "Element toevoegen..." - }, - "duplicatePageJobType": { - "duplicating": "Dupliceren", - "duplicatedTitle": "Pagina gedupliceerd", - "name": "Dupliceer pagina" - }, - "pageSidePanelType": { - "general": "Algemeen", - "style": "Stijl", - "visibility": "Zichtbaarheid", - "events": "Gebeurtenissen", - "eventsTabDeactivatedNoEvents": "Dit element ondersteunt geen events", - "eventsTabInError": "Een of meer acties zijn verkeerd geconfigureerd." - }, - "emptySidePanelState": { - "message": "Klik op een van de elementen om meer details te zien" - }, - "headingElement": { - "noValue": "Geen titel...", - "emptyValue": "Lege titel...", - "missingValue": "Ontbrekende titel..." - }, - "headingElementForm": { - "levelTitle": "Niveau", - "textTitle": "Tekst", - "headingName": "Kop {level} ", - "textError": "De waarde is ongeldig.", - "textPlaceholder": "Tekst invoeren..." - }, - "textElement": { - "noValue": "Lege paragraaf...", - "emptyValue": "Lege tekst...", - "missingValue": "Ontbrekende tekst..." - }, - "textElementForm": { - "textTitle": "Tekst", - "textPlaceholder": "Tekst invoeren...", - "textError": "De waarde is ongeldig.", - "textFormatTypeLabel": "Format", - "textFormatTypePlain": "Platte tekst", - "textFormatTypeMarkdown": "Markdown" - }, - "pageErrors": { - "errorPathNotUnique": "Een pad met deze naam bestaat al", - "errorValidPathCharacters": "Het pad bevat ongeldige tekens", - "errorUniquePathParams": "Pad parameters moeten uniek zijn.", - "errorStartingSlash": "Een pad moet beginnen met een '/'", - "errorNameNotUnique": "Een pagina met deze naam bestaat al", - "errorUniqueValidQueryParams": "Query parameternamen moeten uniek en geldig zijn." - }, - "pageActionTypes": { - "preview": "Voorbeeld", - "publish": "Publiceren" - }, - "publishActionModal": { - "title": "Publiceren", - "description": "Breng uw app live door te publiceren naar een van de domeinen. Houd er rekening mee dat uw applicatie meerdere domeinen kan hebben, die elk een andere versie van de applicatie hebben.", - "publish": "Publiceren", - "publishSucceedTitle": "Site gepubliceerd", - "publishSucceedDescription": "De site is met succes gepubliceerd.", - "publishFailedTitle": "Publiceren van de site is mislukt", - "publishFailedDescription": "Het publiceren van de site is mislukt. Probeer het later opnieuw.", - "openInNewTab": "Openen in nieuw tabblad", - "noDomain": "Je moet ten minste één domein hebben om uw applicatie te kunnen publiceren.", - "importingState": "importeren", - "addDomain": "Domein toevoegen", - "publishSucceedLink": "Bekijk site" - }, - "lastPublishedDomainDate": { - "neverPublished": "nooit", - "lastPublished": "Laatst gepubliceerd:" - }, - "imageElementForm": { - "invalidUrlError": "URL is ongeldig", - "altTextTitle": "Alt tekst", - "altTextDescription": "Wordt gebruikt door schermlezers en weergegeven als de afbeelding niet kan worden geladen", - "fileLabel": "Afbeeldingsbestand", - "fileSourceTypeURL": "URL", - "fileSourceTypeUpload": "Uploaden", - "urlWarning": "Opmerking: zorg ervoor dat u controle heeft over de ingevoerde URL of deze vertrouwt.", - "uploadFileButton": "Upload bestand", - "maxWidthLabel": "Max breedte", - "maxHeightLabel": "Max hoogte", - "maxHeightPlaceholder": "Voer een maximale hoogte in pixels in.", - "maxWidthPlaceholder": "Voer een maximale breedte in als percentage.", - "imageConstraintsLabel": "Beperkingen", - "imageConstraintFullWidth": "Uitbreiden tot max breedte", - "imageConstraintCover": "Omslag", - "imageConstraintCoverDisabled": "Niet beschikbaar met lege maximumhoogte.", - "imageConstraintContain": "Bevat", - "imageConstraintContainDisabled": "Niet beschikbaar met een maximale hoogte." - }, - "domainSettings": { - "titleOverview": "Domeinen", - "noDomainMessage": "Je hebt nog geen domein aan deze applicatie gekoppeld. Je moet een domein toevoegen om uw applicatie te kunnen publiceren. Je kunt verschillende versies van je applicatie publiceren voor elk domein dat hier wordt vermeld.", - "titleAddDomain": "Domein toevoegen", - "addDomain": "Domein toevoegen" - }, - "domainCard": { - "refresh": "Instellingen vernieuwen", - "detailLabel": "Toon details", - "unpublishedDomainWarning": "Publiceer de applicatie om deze beschikbaar te maken op dit domein." - }, - "domainTypes": { - "customName": "Aangepast domein", - "subDomain": "Subdomein van {domain}", - "subDomainName": "Subdomein" - }, - "linkElement": { - "noValue": "Naamloos...", - "missingValue": "Ontbrekende linktekst...", - "emptyValue": "Lege linktekst..." - }, - "linkElementForm": { - "text": "Tekst", - "textPlaceholder": "Tekst invoeren...", - "navigateTo": "Navigeer naar", - "navigateToNotSet": "Geen bestemming", - "navigateToCustom": "Aangepaste URL", - "variantButton": "Knop", - "width": "Breedte", - "target": "Open in...", - "targetSelf": "Zelfde tabblad", - "paramsInErrorDescription": "De opgeslagen parameters komen niet overeen met de paginaparameters. De pagina is waarschijnlijk verwijderd of bijgewerkt.", - "pageParameterTypeError": "Ongeldig type", - "url": "Bestemmings-URL", - "widthAuto": "Auto", - "targetNewTab": "Nieuw tabblad", - "urlPlaceholder": "Voer een URL in...", - "variant": "Variant", - "widthFull": "Volle breedte", - "variantLink": "Link", - "paramPlaceholder": "Voer een waarde in...", - "paramsInErrorButton": "Parameters bijwerken", - "buttonColor": "Kleur knop" - }, - "alignmentSelector": { - "alignment": "Uitlijning", - "alignmentLeft": "Link", - "alignmentCenter": "Centreren", - "alignmentRight": "Rechts" - }, - "pageSettings": { - "pageUpdatedTitle": "Gewijzigd", - "pageUpdatedDescription": "De pagina-instellingen zijn bijgewerkt.", - "title": "Pagina" - }, - "pathParamTypes": { - "textName": "Tekst", - "numericName": "Numeriek" - }, - "publicPage": { - "siteNotFound": "Site niet gevonden", - "pageNotFound": "Pagina niet gevonden", - "loginToastTitle": "Authenticatie succesvol", - "loginToastMessage": "Je bent succesvol aangemeld.", - "authorizedToastTitle": "Authenticatie vereist", - "authorizedToastMessage": "Je moet ingelogd zijn om toegang te krijgen tot deze pagina. Log in om verder te gaan." - }, - "integrationSettings": { - "title": "Integraties", - "integrationMessage": "Je kunt nieuwe integraties maken door gegevensbron, actie of gebruikers authenticatie toe te voegen.", - "noIntegrationMessage": "Je hebt nog geen verbinding gemaakt. Ze kunnen worden gemaakt door gegevensbron, actie of gebruikers authenticatie toe te voegen." - }, - "dataSourceForm": { - "addIntegration": "Nieuwe integratie toevoegen", - "noIntegrations": "je hebt nog geen integratie", - "integrationPlaceholder": "Selecteer een integratie", - "errorUniqueName": "Data bron naam moet uniek zijn.", - "selectTypeFirst": "Selecteer eerst de dienst", - "servicePlaceholder": "Selecteer een dienst", - "namePlaceholder": "Bron naam", - "actionLabel": "Actie", - "nameLabel": "Naam", - "integrationLabel": "Integratie" - }, - "dataSourceContext": { - "addDataSource": "Nieuwe gegevensbron toevoegen", - "noDataSourceTitle": "Je hebt nog geen data toegevoegd", - "noDataSourceMessage": "Data kan worden gebruikt om gegevens op te halen uit interne of externe bronnen en deze op de pagina weer te geven.", - "sharedDataSourceTitle": "Gedeeld tussen pagina's", - "pageDataSourceTitle": "Voor deze pagina", - "sharedDataSourceDescription": "Toegankelijk op elke pagina en wordt eenmalig opgehaald bij de eerste keer dat de pagina wordt geladen.", - "pageDataSourceDescription": "Wordt opgehaald wanneer de gebruiker naar deze pagina navigeert." - }, - "imageElement": { - "emptyState": "Geen alt-tekst gedefinieerd...", - "emptyValue": "Lege alt-tekst...", - "missingValue": "Ontbrekende alt-tekst..." - }, - "elementForms": { - "textInputPlaceholder": "Voer tekst in...", - "urlInputPlaceholder": "Voer url in...", - "invalidFormula": "De formule is ongeldig" - }, - "dnsStatus": { - "hostHeader": "Host", - "description": "Ga naar de DNS-instellingen van je domeinen en breng de volgende wijzigingen aan", - "valueHeader": "Waarde", - "typeHeader": "Type" - }, - "customDomainForm": { - "domainNameLabel": "Domeinnaam", - "notUniqueDomain": "Het opgegeven domein is al in gebruik", - "invalidDomain": "De opgegeven domeinnaam is ongeldig" - }, - "pageSettingsTypes": { - "pageName": "Pagina" - }, - "dataProviderType": { - "currentRecord": "Gegevensbron", - "pageParameter": "Parameter", - "dataSource": "Data rijen", - "formData": "Formuliergegevens", - "user": "Gebruiker", - "previousAction": "Vorige actie", - "dataSourceContext": "Beschikbare opties", - "metadata": "Metadata" - }, - "tableElementForm": { - "addField": "veld toevoegen", - "itemsPerPage": "Items per pagina", - "fieldType": "Type", - "fieldValueLabel": "Waarde", - "fieldDefaultName": "Kolom", - "dataSource": "Gegevensbron", - "fieldValuePlaceholder": "Waarde invoeren...", - "itemsPerPagePlaceholder": "Waarde invoeren...", - "fields": "Velden", - "selectSourceFirst": "Kies een lijstgegevensbron om te beginnen met het configureren van je velden.", - "buttonColor": "Kleur knop", - "refreshFieldsFromDataSource": "velden van gegevensbron verversen", - "name": "Naam", - "orientation": "Oriëntatie", - "orientationHorizontal": "Horizontaal", - "orientationVertical": "Verticaal", - "buttonLoadMoreLabel": "Toon meer label", - "propertySelectorMissingArrays": "Geen velden met meerdere waarden gevonden om als rijen te gebruiken.", - "noName": "Geen naam" - }, - "linkFieldForm": { - "fieldLinkNamePlaceholder": "Waarde invoeren...", - "fieldValuePlaceholder": "Waarde invoeren...", - "fieldLinkNameLabel": "Link tekst", - "fieldValueLabel": "Url", - "buttonColor": "Kleur knop" - }, - "verticalAlignmentSelector": { - "alignmentTop": "Boven", - "alignmentBottom": "Onderkant", - "alignmentCenter": "Midden", - "alignment": "Verticale uitlijning" - }, - "horizontalAlignmentSelector": { - "alignmentLeft": "Link", - "alignmentRight": "Rechts", - "alignment": "Horizontaal uitlijnen", - "alignmentCenter": "Centreren" - }, - "defaultStyleForm": { - "widthLabel": "Breedte", - "boxTop": "Bovenkant", - "backgroundLabel": "Achtergrond", - "backgroundColor": "Achtergrond kleur", - "boxBottom": "Onderkant", - "boxRight": "Rechts", - "boxLeft": "Links", - "backgroundImage": "Afbeelding", - "backgroundImageMode": "Vulmodus", - "cssClasses": "CSS-klassen", - "cssClassesHelp": "Stel een door spaties gescheiden lijst in van klassen voor dit element die zullen verschijnen in de gegenereerde HTML.", - "cssClassesPlaceholder": "CSS-klassen invoeren..." - }, - "updateUserSourceForm": { - "nameFieldLabel": "Naam", - "nameFieldPlaceholder": "Voer een naam in...", - "integrationFieldLabel": "Integratie", - "authTitle": "Authenticatie", - "addProvider": "Provider toevoegen" - }, - "mainThemeConfigBlock": { - "colorsLabel": "Kleuren", - "primaryColor": "Primair", - "headingValue": "Kop ", - "typography": "Typografie", - "headingLabel": "Kop {i} (h{i})", - "secondaryColor": "Secundair" - }, - "inputTextElementForm": { - "placeholderPlaceholder": "Voer een placeholder in (optioneel)", - "valueTitle": "Standaardwaarde", - "valuePlaceholder": "Voer een standaardwaarde in (optioneel)", - "placeholderTitle": "Placeholder", - "labelTitle": "Label", - "requiredTitle": "Vereist", - "labelPlaceholder": "Voer een label in (optioneel)", - "multilineTitle": "Meerdere regels", - "rowsTitle": "Aantal regels", - "rowsPlaceholder": "Voer het aantal rijen van deze invoer in", - "validationTypeAnyLabel": "Elke", - "validationTypeIntegerLabel": "Nummer", - "validationTypeEmailLabel": "E-mail", - "validationTypeEmailDescription": "Dwing een e-mailadres waarde af in deze invoer.", - "validationTypeAnyDescription": "Sta toe dat deze invoer een willekeurige waarde bevat.", - "validationTypeIntegerDescription": "Dwing een getalwaarde af in deze invoer.", - "inputTypePasswordLabel": "Wachtwoord", - "passwordTypeWarning": "Wachtwoorden zijn gevoelige gegevens. Wees voorzichtig met hoe je wachtwoorden behandelt en opslaat in je applicatie.", - "inputType": "Input type", - "inputTypeTextLabel": "Tekst" - }, - "widthSelector": { - "widthFull": "Volledige breedte", - "widthAuto": "Auto", - "width": "Breedte" - }, - "buttonElementForm": { - "valuePlaceholder": "Voer tekst in...", - "valueLabel": "Tekst", - "buttonColor": "Kleur knop" - }, - "workflowActionTypes": { - "updateRowLabel": "Rij bijwerken", - "createRowLabel": "Rij maken", - "notificationLabel": "Melding tonen", - "openPageLabel": "Pagina openen", - "logoutLabel": "Uitloggen", - "refreshDataSourceLabel": "Gegevensbron verversen", - "deleteRowLabel": "Verwijder Rij", - "httpRequest": "Stuur HTTP verzoek", - "errorNavigateToPageMissing": "Ontbreekt Navigeer naar eigenschap", - "errorPageParameterInError": "Ten minste één paginaparameter is verkeerd geconfigureerd", - "errorNavigationUrlMissing": "Ontbrekende URL-eigenschap voor navigatie", - "errorDataSourceMissing": "Geen gegevensbron geselecteerd" - }, - "widthTypes": { - "full": "Volledige breedte", - "small": "Klein", - "medium": "Medium", - "normal": "Normaal", - "fullBleed": "Full bleed", - "fullWidth": "Volledige breedte" - }, - "userSourceSettings": { - "titleOverview": "Gebruiker bronnen", - "titleUpdateUserSource": "Gebruikersbron bewerken", - "titleAddUserSource": "Nieuwe gebruikersbron", - "addUserSource": "Gebruikersbron toevoegen", - "noUserSourceMessage": "U hebt nog geen gebruikersbron toegevoegd aan deze applicatie. U moet een gebruikersbron toevoegen als u wilt dat gebruikers uw applicatie kunnen authenticeren." - }, - "upsertRowWorkflowActionForm": { - "rowIdPlaceholder": "Selecteer een rij-ID", - "fieldMappingPlaceholder": "Kies een veldwaarde", - "integrationDropdownLabel": "Integratie", - "rowIdLabel": "Rij ID", - "noTableSelectedMessage": "Kies een tabel om te beginnen met het configureren van je velden." - }, - "subDomainDetails": { - "text": "De DNS-instellingen van de domeinnaam zijn al geconfigureerd en gecontroleerd. Het werkt zonder extra wijzigingen." - }, - "columnElementForm": { - "columnGapPlaceholder": "Voer ruimte in tussen kolommen...", - "columnGapTitle": "Ruimte tussen kolommen", - "columnAmountTitle": "Layout", - "columnAmountName": "geen kolommen | 1 kolom | {columnAmount} kolommen", - "verticalAlignment": "Verticale uitlijning" - }, - "notificationWorkflowActionForm": { - "descriptionLabel": "Beschrijving", - "descriptionPlaceholder": "Tekst invoeren...", - "titleLabel": "Titel", - "titlePlaceholder": "Tekst invoeren..." - }, - "currentRecordDataProviderType": { - "index": "Index", - "firstPartName": "Gegevensbron: {name}", - "schemaProperty": "{prefixName}: {schemaProperty}" - }, - "domainForm": { - "notUniqueDomain": "De opgegeven domeinnaam is al in gebruik", - "invalidDomain": "De opgegeven domeinnaam is ongeldig" - }, - "dispatchWorkflowActionError": { - "defaultMessage": "Er is een fout opgetreden die deze gebeurtenis heeft veroorzaakt.", - "defaultTitle": "Gebeurtenis fout", - "formDataInvalidTitle": "Ongeldig formulier", - "formDataInvalidMessage": "Een of meer velden bevatten ongeldige waarden." - }, - "openPageWorkflowActionForm": { - "urlLabel": "URL", - "urlPlaceholder": "Tekst invoeren..." - }, - "collectionFieldType": { - "text": "Tekst", - "link": "Link", - "boolean": "Boolean", - "tags": "Tags", - "button": "Knop", - "image": "Afbeelding", - "rating": "Beoordeling", - "errorValueMissing": "Ontbrekende waarde eigenschap" - }, - "createUserSourceForm": { - "userSourceName": "Naam", - "userSourceIntegration": "Integratie", - "userSourceType": "Type" - }, - "event": { - "addAction": "actie toevoegen" - }, - "buttonElement": { - "noValue": "Naamloos...", - "missingValue": "Ontbrekende knop tekst...", - "emptyValue": "Lege knop tekst..." - }, - "formDataProviderType": { - "nodeMissing": "Ontbrekend" - }, - "textFieldForm": { - "fieldValuePlaceholder": "Waarde invoeren...", - "fieldValueLabel": "Waarde" - }, - "tableElement": { - "empty": "Er zijn geen items gevonden.", - "showMore": "Meer tonen" - }, - "fontSidePanelForm": { - "label": "Lettertype" - }, - "styleBoxForm": { - "borderLabel": "Grens", - "paddingLabel": "Opvulling", - "error": "De waarde moet een geheel getal zijn tussen 0 en 200.", - "borderColor": "Kleur rand", - "marginLabel": "Marge" - }, - "backgroundTypes": { - "color": "Kleur", - "none": "Geen" - }, - "pagePreview": { - "emptyMessage": "Klik om het eerste element te maken", - "header": "HEADER", - "footer": "FOOTER" - }, - "eventTypes": { - "submitLabel": "Op versturen", - "clickLabel": "Op klik", - "afterLoginLabel": "Na inloggen" - }, - "formContainerElementForm": { - "submitButtonLabel": "Verstuur knop", - "submitButtonPlaceholder": "Waarde invoeren...", - "buttonColor": "Kleur knop", - "resetToInitialValuesTitle": "Terugzetten naar standaardwaarden na verzenden", - "resetToInitialValuesDescription": "Als aangevinkt, worden de standaardwaarden van het formulier gebruikt om het formulier te resetten na een succesvolle verzending. Als niet aangevinkt, blijven de waarden van de gebruiker behouden." - }, - "subDomainForm": { - "domainNameLabel": "Domeinnaam" - }, - "linkField": { - "details": "Details" - }, - "getFormulaComponent": { - "errorTooltip": "Ongeldige referentie" - }, - "generalForm": { - "labelTitle": "Label", - "labelPlaceholder": "Voer een label in (optioneel)", - "valueTitle": "Standaardwaarde", - "valuePlaceholder": "Voer een standaardwaarde in (optioneel)", - "placeholderTitle": "Placeholder", - "placeholderPlaceholder": "Voer een placeholder in (optioneel)", - "requiredTitle": "Verplicht", - "validationTitle": "Validatie", - "defaultValueTitle": "Standaardwaarde", - "defaultValuePlaceholder": "Standaardwaarde invoeren" - }, - "linkNavigationSelection": { - "urlPlaceholder": "Voer een URL in...", - "navigateToCustom": "Aangepaste URL", - "navigateTo": "Navigeer naar", - "paramPlaceholder": "Voer een waarde in...", - "url": "Bestemmings URL", - "paramsInErrorDescription": "De opgeslagen parameters komen niet overeen met de paginaparameters. De pagina is waarschijnlijk verwijderd of bijgewerkt.", - "paramsInErrorButton": "Parameters bijwerken", - "target": "Open in...", - "targetSelf": "Zelfde tab", - "targetNewTab": "Nieuw tabblad" - }, - "iframeElementForm": { - "empty": "Leeg IFrame...", - "sourceTypeLabel": "Bron soort", - "urlLabel": "URL", - "urlPlaceholder": "Link naar de externe bron die moet worden ingesloten", - "urlHelp": "Opmerking: zorg ervoor dat je controle hebt over de ingevoerde URL of dat je deze vertrouwt.", - "embedLabel": "Insluiten", - "embedPlaceholder": "Ruwe HTML-inhoud die moet worden ingesloten", - "heightLabel": "Hoogte (px)", - "heightPlaceholder": "Hoogte in pixels", - "missingValue": "IFrame bron ontbreekt...", - "emptyValue": "Lege IFrame bron..." - }, - "dropdownOptionSelector": { - "label": "Opties", - "value": "Waarde", - "name": "Naam", - "addOption": "optie toevoegen" - }, - "checkboxElementForm": { - "labelTitle": "Label", - "valueTitle": "Standaardwaarde", - "requiredTitle": "Verplicht" - }, - "dispatchDataSourceError": { - "defaultMessage": "Er is een fout opgetreden tijdens het laden van gegevens voor de pagina.", - "defaultTitle": "Fout bij het laden van gegevens" - }, - "authFormElementForm": { - "userSource": "Gebruiker bron" - }, - "authFormElement": { - "email": "E-mail", - "passwordPlaceholder": "Voer je wachtwoord in...", - "selectOrConfigureUserSourceFirst": "Kies een gebruikersbron om dit aanmeldingselement te gaan gebruiken.", - "password": "Wachtwoord", - "emailPlaceholder": "Voer uw e-mailadres in..." - }, - "userSourceUsersContext": { - "searchPlaceholder": "Gebruiker zoeken", - "noEmail": "Geen e-mail", - "anonymous": "Anoniem", - "unnamed": "Naamloos" - }, - "userSelector": { - "viewAs": "Weergeven als: {user}", - "anonymous": "Anoniem", - "member": "{prefix} lid" - }, - "formContainerElement": { - "submitDeactivatedText": "Vul alle verplichte velden in om te verzenden", - "defaultSubmitButtonLabel": "Verstuur" - }, - "visibilityForm": { - "allVisitors": "Alle bezoekers", - "loggedInVisitors": "Aangemelde bezoekers", - "notLoggedInVisitors": "Uitgelogde bezoekers", - "warningMessage": "Op dit moment wordt de zichtbaarheid alleen toegepast in de UI, de onderliggende gegevens zijn nog steeds toegankelijk via de API. Raadpleeg de <a href='https://baserow.io/user-docs/application-builder-element-visibility#note-accessing-hidden-data-via-api'>documentatie</a> voor meer informatie over gegevensbeveiliging.", - "warningTitle": "We verbeteren voortdurend de beveiliging", - "excludedRolesLabel": "alle rollen behalve", - "switchAllowLabel": "Sta toe", - "switchDisallowLabel": "Niet toestaan", - "rolesSelectAll": "Selecteer alles", - "rolesDeselectAll": "Deselecteer alles", - "rolesSelectHint": "Selecteer een of meer rollen", - "roleTypesHint": "Selecteer een type rol", - "roleTypeAllowAllRoles": "Alle rollen", - "roleTypeAllowAllRolesExcept": "Rollen niet toestaan...", - "roleTypeDisallowAllRolesExcept": "Rollen toestaan...", - "rolesAllMembersOf": "Alle leden van {name}", - "noRole": "Geen rol", - "errorFetchingRolesTitle": "Kan gebruikersrollen niet ophalen", - "errorFetchingRolesMessage": "Er is een probleem opgetreden tijdens het ophalen van gebruikersrollen.", - "visibilityCondition": "Zichtbaarheid voorwaarde", - "visibilityConditionHelper": "Als het resultaat van deze formule waar is en de bezoekerskeuze hierboven waar is, zal het element zichtbaar zijn. Deze voorwaarde beïnvloedt alleen de zichtbaarheid van het element. Als u in plaats daarvan gegevens wilt uitsluiten van het serverantwoord, gebruikt u de bovenstaande filteroptie voor gebruikersrollen.", - "visibilityConditionPlaceholder": "Voorwaarde..." - }, - "imageInput": { - "labelButton": "Uploaden", - "labelDescription": "Standaard beschrijving" - }, - "generalSettings": { - "labelForm": "Favicon", - "labelDescription": "Kies een 128x128px ICO, PNG, GIF of JPEG.", - "labelButton": "Favicon uploaden", - "cantUploadFaviconTitle": "Kon favicon bestand niet uploaden", - "cantUploadFaviconDescription": "Sorry, kon favicon afbeelding niet uploaden. Zorg ervoor dat het afbeeldingsbestand uniek is en een ondersteund afbeeldingsformaat heeft.", - "cantUpdateApplicationTitle": "Applicatie kan niet worden bijgewerkt", - "cantUpdateApplicationDescription": "Sorry, kon de applicatie niet bijwerken.", - "titleOverview": "Algemeen" - }, - "repeatElementForm": { - "dataSource": "Gegevensbron", - "itemsPerRowDescription": "Kies per apparaattype wat het aantal herhalingen per rij moet zijn.", - "orientationVertical": "Verticaal", - "orientationLabel": "Oriëntatie", - "orientationHorizontal": "Horizontaal", - "itemsPerPage": "Items per pagina", - "itemsPerPagePlaceholder": "Waarde invoeren...", - "itemsPerRowLabel": "Items per rij", - "buttonLoadMoreLabel": "Toon meer label", - "toggleEditorRepetitionsLabel": "Herhalingen tijdelijk uitschakelen", - "propertySelectorMissingArrays": "Geen velden met meerdere waarden gevonden om mee te herhalen.", - "gapLabel": "Ruimte tussen herhalingen", - "gapVerticalLabel": "Verticaal", - "gapHorizontalLabel": "Horizontaal" - }, - "userDataProviderType": { - "isAuthenticated": "Is ingelogd", - "id": "Id", - "email": "E-mail", - "username": "Gebruikersnaam", - "role": "Rol" - }, - "buttonField": { - "noLabel": "Naamloos..." - }, - "repeatElement": { - "showMore": "Meer tonen", - "missingDataSourceTooltip": "Kies een gegevensbron om te beginnen met het toevoegen van elementen.", - "empty": "Er zijn geen items gevonden.", - "missingSchemaPropertyTooltip": "Kies een eigenschap om te beginnen met het toevoegen van elementen.", - "emptyState": "Geen rijen gevonden." - }, - "tagsFieldForm": { - "fieldValuesLabel": "Waarden", - "fieldValuesPlaceholder": "Waarden invoeren...", - "fieldColorsLabel": "Kleuren", - "fieldColorsPlaceholder": "Voer kleuren in..." - }, - "buttonFieldForm": { - "infoMessage": "Om acties voor deze knop te configureren, open je het tabblad \"Gebeurtenissen\" van het huidige element.", - "labelPlaceholder": "Voer een label in..." - }, - "themeConfigBlockType": { - "color": "Kleuren", - "page": "Pagina", - "typography": "Typografie", - "link": "Link", - "button": "Knop", - "image": "Afbeelding", - "input": "Invoer", - "table": "Tabel" - }, - "buttonThemeConfigBlock": { - "defaultState": "Standaard staat", - "hoverState": "Hover staat", - "textAlignment": "Tekstuitlijning", - "alignment": "Uitlijning", - "width": "Breedte", - "textColor": "Kleur tekst", - "borderColor": "Border kleur", - "borderSize": "Bordergrootte", - "borderRadius": "Border radius", - "padding": "Opvulling", - "fontFamily": "Lettertype", - "size": "Lettergrootte", - "backgroundColor": "Achtergrond kleur", - "button": "Knop", - "weight": "Lettertype gewicht", - "activeState": "Actieve status" - }, - "linkThemeConfigBlock": { - "color": "Kleur", - "link": "Link", - "defaultState": "Standaard staat", - "hoverState": "Hover staat", - "alignment": "Uitlijning", - "fontFamily": "Lettertype", - "size": "Lettergrootte", - "weight": "Lettertype gewicht", - "activeState": "Actieve status", - "decoration": "Tekst decoratie" - }, - "imageThemeConfigBlock": { - "alignment": "Uitlijning", - "maxWidthLabel": "Max breedte", - "maxHeightLabel": "Max hoogte", - "imageConstraintsLabel": "Beperkingen", - "imageConstraintCover": "Omslag", - "imageConstraintCoverDisabled": "Niet beschikbaar met lege maximumhoogte.", - "imageConstraintContain": "Bevat", - "imageConstraintContainDisabled": "Niet beschikbaar met een maximale hoogte.", - "maxWidthPlaceholder": "Voer een maximale breedte in", - "maxHeightPlaceholder": "Maximale hoogte invoeren", - "imageConstraintFullWidth": "Uitbreiden tot max breedte", - "imageBorderRadiusLabel": "Randradius", - "imageBorderRadiusPlaceholder": "Voer de afbeelding rand radius in" - }, - "choiceElementForm": { - "multiple": "Meerdere waarden toestaan", - "display": "Weergave", - "dropdown": "Dropdown", - "checkbox": "Checkbox", - "radio": "Radio" - }, - "choiceOptionSelector": { - "name": "Optie waargave namen", - "namePlaceholder": "Naam invoeren", - "addOption": "optie toevoegen", - "manual": "Handmatig", - "dataSource": "Gegevensbron", - "formulas": "Formules", - "optionType": "Opties type", - "label": "Opties", - "value": "Optiewaarden", - "valuePlaceholder": "Waarde invoeren", - "addOptionDescription": "Klik op 'optie toevoegen' om opties toe te voegen aan je vervolgkeuzelijst" - }, - "choiceElement": { - "addOptions": "Opties toevoegen om dit element te gaan gebruiken..." - }, - "backgroundModes": { - "tile": "Tegel", - "fill": "Vullen", - "fit": "Pas" - }, - "customStyle": { - "themeOverrides": "Thema overschrijvingen", - "configureThemeOverrides": "Thema-overschrijvingen voor dit element configureren" - }, - "colorThemeConfigBlock": { - "errorColor": "Fout", - "successColor": "Succes", - "secondaryColor": "Secundair", - "borderColor": "Border", - "warningColor": "Waarschuwing", - "primaryColor": "Primair", - "transparent": "Transparant", - "addCustomColor": "Aangepaste kleur toevoegen", - "customColorPrefix": "Maatwerk", - "customColors": "Aangepaste kleuren" - }, - "colorThemeConfigBlockType": { - "secondary": "Secundair", - "success": "Succes", - "warning": "Waarschuwing", - "error": "Fout", - "primary": "Primair", - "border": "Border", - "transparent": "Transparant" - }, - "pageThemeConfigBlock": { - "backgroundColor": "Achtergrond kleur", - "backgroundImage": "Achtergrondafbeelding", - "backgroundMode": "Achtergrondmodus" - }, - "typographyThemeConfigBlock": { - "size": "Maat", - "textAlignment": "Uitlijning", - "headingLabel": "Kop {i} (h{i})", - "headingValue": "Kop ", - "color": "Kleur", - "fontFamily": "Lettertype", - "bodyLabel": "Body", - "weight": "Gewicht", - "decoration": "Tekst decoratie" - }, - "resetButton": { - "reset": "Terugzetten naar standaard themawaarde" - }, - "inputThemeConfigBlock": { - "label": "Label", - "input": "Invoer", - "backgroundColor": "Achtergrond kleur", - "textColor": "Kleur tekst", - "borderColor": "Kleur rand", - "borderSize": "Randgrootte", - "borderRadius": "Randradius", - "padding": "Opvulling", - "fontFamily": "Lettertype", - "size": "Lettergrootte", - "weight": "Lettertype gewicht" - }, - "tableThemeConfigBlock": { - "borderColor": "Kleur rand", - "backgroundAlternateColor": "Even rij kleur", - "textColor": "Kleur tekst", - "borderSize": "Randgrootte", - "fontSize": "Lettergrootte", - "table": "Tabel", - "header": "Kop", - "alignment": "Uitlijning", - "cells": "Cellen", - "separators": "Scheiders", - "verticalSeparatorColor": "Verticale kleur", - "verticalSeparatorSize": "Verticale grootte", - "horizontalSeparatorColor": "Horizontale kleur", - "horizontalSeparatorSize": "Horizontale grootte", - "borderRadius": "Randradius", - "padding": "Opvulling", - "size": "Grootte", - "backgroundColor": "Achtergrond kleur", - "fontFamily": "Lettertype", - "fontWeight": "Lettertype gewicht" - }, - "dropdown": { - "empty": "Geen opties beschikbaar" - }, - "abTable": { - "empty": "Er zijn geen items gevonden.", - "loading": "Aan het laden..." - }, - "localBaserowServiceForm": { - "rowIdPlaceholder": "Selecteer een rij ID", - "rowIdLabel": "Rij ID", - "integrationDropdownLabel": "Integratie" - }, - "fieldMappingContext": { - "enableField": "Veld inschakelen", - "disableField": "Veld uitschakelen" - }, - "collectionElementForm": { - "noSchemaPropertyMessage": "Kies een eigenschap in de gegevensbron om te gebruiken als de lijstgegevens van je element.", - "noDataSourceMessage": "Kies een gegevensbron met meerdere rijen om alle resultaten weer te geven, of een gegevensbron met één rij om een eigenschap in deze rij te kiezen.", - "propertyOptionLabel": "Acties van gebruikers" - }, - "imageFieldForm": { - "fieldAltHelp": "Wordt gebruikt door schermlezers en weergegeven als de afbeelding niet kan worden geladen", - "fieldSrcPlaceholder": "Waarde invoeren", - "fieldSrcLabel": "Afbeelding bron", - "fieldAltLabel": "Alt tekst", - "fieldAltPlaceholder": "Waarde invoeren..." - }, - "serviceSchemaPropertySelector": { - "label": "Eigenschap", - "noProperties": "Geen eigenschappen beschikbaar" - }, - "dataSourceDropdown": { - "noDataSources": "Geen gegevensbronnen beschikbaar", - "label": "Gegevensbron", - "shared": "gedeeld", - "pageOnly": "deze pagina", - "noSharedDataSources": "Geen gedeelde gegevensbronnen beschikbaar" - }, - "recordSelectorElementForm": { - "selectRecordsFrom": "Records selecteren uit", - "optionNameSuffix": "Optie naam achtervoegsel", - "optionNameSuffixPlaceholder": "Voer een achtervoegsel in...", - "optionNameSuffixHelper": "Dit achtervoegsel wordt toegevoegd aan elke optienaam wanneer je de vervolgkeuzelijst opent en helpt om ze te onderscheiden.", - "itemsPerPage": "Items per pagina", - "record": "Record {id}", - "noDataSourceMessage": "Kies een gegevensbron met meerdere rijen om alle resultaten te vermelden.", - "itemsPerPagePlaceholder": "Waarde invoeren...", - "multipleLabel": "Meerdere waarden toestaan" - }, - "dataSourceItemContext": { - "unshareBetweenPages": "Stop delen met andere pagina's", - "shareBetweenPages": "Delen tussen pagina's" - }, - "dataSourceCreateEditModal": { - "sharedWarning": "Deze gegevensbron wordt gedeeld, dus je wijzigingen kunnen invloed hebben op meerdere pagina's.", - "editTitle": "Gegevensbron bewerken", - "createTitle": "Gegevensbron maken" - }, - "propertyOptionForm": { - "searchHeading": "Zoeken", - "filterHeading": "Filter", - "sortHeading": "Sorteren", - "fieldHeading": "Veld", - "noPropertiesAvailable": "Geen velden beschikbaar.", - "optionUnavailable": "Niet beschikbaar", - "formDescription": "Kies op welke eigenschappen in de gegevensbron van dit element externe gebruikers kunnen filteren, sorteren en zoeken." - }, - "dataSourceItem": { - "notConfigured": "Niet geconfigureerd" - }, - "recordSelectorElement": { - "emptyAdhocState": "Geen rijen gevonden die overeenkomen met '{query}'.", - "emptyState": "Geen rijen gevonden." - }, - "common": { - "dateFormatEU": "Europees", - "dateFormatTitle": "Datum formaat", - "dateFormatUS": "VS", - "dateFormatISO": "ISO", - "timeFormatTitle": "Tijdformaat", - "timeFormat24Hour": "24 uur", - "timeFormat12Hour": "12 uur" - }, - "dateTimePickerElementForm": { - "includeTime": "Inclusief tijd", - "invalidDateError": "Ongeldige datum. Controleer of de ingevoerde datum overeenkomt met het opgegeven formaat." - }, - "themeSettings": { - "titleOverview": "Thema" - }, - "pageVisibilitySettingsTypes": { - "pageName": "Zichtbaarheid", - "logInPageWarningTitle": "De login pagina is niet ingesteld", - "logInPagewarningMessage": "Als een anonieme gebruiker deze pagina probeert te openen, wordt hij doorgestuurd naar een inlogpagina. Stel de login pagina in bij de algemene instellingen van de applicatie.", - "logInPageInfoTitle": "Anonieme gebruikers worden omgeleid", - "logInPageInfoMessage": "Anonieme gebruikers die deze pagina proberen te openen, worden doorgestuurd naar de {logInPageName} pagina." - }, - "pageVisibilitySettings": { - "title": "Zichtbaarheid", - "allVisitors": "Alle bezoekers", - "loggedInVisitors": "Aangemelde bezoekers", - "description": "Wie kan deze pagina zien" - }, - "pageEditor": { - "pageNotFound": "Pagina niet gevonden" - }, - "builderLoginPageForm": { - "pageDropdownDescription": "Selecteer de aanmeldpagina waar niet-ingelogde gebruikers naar moeten worden omgeleid als ze een pagina met verboden proberen te openen.", - "pageDropdownLabel": "Login pagina", - "pageDropdownPlaceholder": "Selecteer een pagina" - }, - "multiPageContainerElementForm": { - "pagePosition": "Positie", - "behaviour": "Gedrag", - "display": "Weergave", - "selectAll": "Selecteer alles", - "deselectAll": "Deselecteer alles" - }, - "pageShareType": { - "except": "Geselecteerde pagina's uitsluiten", - "all": "Op alle pagina's", - "only": "Alleen op geselecteerde pagina's" - }, - "fontWeightType": { - "thin": "Dun", - "medium": "Middel", - "light": "Licht", - "extraLight": "Extra licht", - "extraBold": "Extra vet", - "regular": "Normaal", - "bold": "Vet", - "semiBold": "Halfvet", - "black": "Zwart", - "extraBlack": "Extra zwart" - }, - "authProviderWithModal": { - "title": "Bewerk provider: {name}", - "authProviderInError": "Bewerk deze provider om de fout te herstellen." - }, - "queryParamTypes": { - "textName": "Tekst", - "numericName": "Numeriek" - }, - "radiusStyleForm": { - "cornerRadiusLabel": "Hoekradius", - "backgroundRadiusLabel": "Achtergrond", - "borderRadiusLabel": "Rand" - }, - "addElementCategory": { - "suggestedElement": "Voorgestelde elementen", - "baseElement": "Basis elementen", - "layoutElement": "Layout elementen", - "formElement": "Formulier elementen" - }, - "menuElement": { - "spacer": "Spacer", - "missingLinkValue": "Ontbrekende linknaam...", - "missingButtonValue": "Ontbrekende knopnaam...", - "emptyLinkValue": "Lege linknaam...", - "missingValue": "Ontbrekend menu-item", - "separator": "Scheider", - "emptyButtonValue": "Lege knopnaam..." - }, - "menuElementForm": { - "menuItemsLabel": "Menu items", - "addMenuItemLink": "Toevoegen...", - "alignment": "Uitlijning", - "menuItemDefaultName": "Pagina", - "menuItemLabelLabel": "Label", - "menuItemTypeLabel": "Type", - "menuItemTypeItem": "Item", - "menuItemTypeSeparator": "Scheider", - "menuItemVariantLabel": "Variant", - "menuItemAddButton": "Knop", - "eventDescription": "Om acties te configureren voor deze knop, open de events van dit element.", - "noMenuItemsMessage": "Klik 'Toevoegen' om je eerste menu item toe te voegen.", - "menuItemVariantLink": "Link", - "menuItemAddSeparator": "Scheider", - "menuItemSubLinkDefaultName": "Sublink", - "addSubLink": "Sublink toevoegen", - "menuItemVariantButton": "Knop", - "namePlaceholder": "Pagina", - "menuItemAddSpacer": "Spacer", - "menuItemAddLink": "Link" - }, - "simpleContainerElementForm": { - "noConfigurationOptions": "Het container element heeft geen configuratieopties." - }, - "orientations": { - "vertical": "Vertical", - "horizontal": "Horizontaal", - "label": "Oriëntatie" - }, - "ratingElementForm": { - "thumbsUp": "Duimen omhoog", - "maxValue": "Maximum", - "color": "Kleur", - "star": "Ster", - "flag": "Vlag", - "smile": "Lachen", - "heart": "Hart", - "ratingStyle": "Stijl" - }, - "ratingFieldForm": { - "color": "Kleur", - "value": "Waarde", - "maxValue": "Maximale waarde", - "thumbsUp": "Duimen omhoog", - "flag": "Vlag", - "style": "Stijl", - "heart": "Hart", - "star": "Ster" - }, - "linkDecorations": { - "plain": "Gewoon", - "normal": "Normaal" - }, - "textDecorationSelector": { - "stroke": "Doorstreept", - "italic": "Cursief", - "underline": "Onderstrepen", - "uppercase": "Hoofdletters" - }, - "userSourceDropdown": { - "label": "Gebruiker bron", - "addUserSource": "Voeg nieuwe gebruikersbron toe", - "noUserSources": "Geen gebruikersbronnen beschikbaar" - }, - "abFileInput": { - "delete": "Verwijder" - }, - "automationSettingsModal": { - "title": "Werkstroom" - }, - "elementsGuidedTourStep": { - "title": "Elementen toevoegen aan je pagina", - "content": "Elke app heeft componenten nodig! Voeg elementen toe zoals tabellen, formulieren, knoppen en meer om je app tot leven te brengen." - }, - "dataGuidedTourStep": { - "title": "Verbind uw gegevens", - "content": "Koppel hier je Baserow-tabellen om je gegevens dynamisch weer te geven, te filteren en bij te werken in verschillende elementen." - }, - "previewGuidedTourStep": { - "title": "Je controlecentrum", - "content": "Hier configureer je de pagina's van je app. Voeg elementen toe, bekijk het resultaat en structureer je app precies zoals jij wilt." - }, - "devicesGuidedTourStep": { - "title": "Voorbeeld op verschillende apparaten", - "content": "Schakel tussen previews voor desktop, tablet en mobiel om te zien hoe je app eruitziet op verschillende schermformaten. Zorg ervoor dat je ontwerp perfect werkt op alle apparaten!" - }, - "sidePanelGuidedTourStep": { - "title": "Zijpaneel: Elementen aanpassen", - "content": "**Algemeen tabblad** - Configureer het geselecteerde element.\n\n**Tabblad Stijl** - Vulling, marge, randen en meer aanpassen.\n\n**Tabblad Zichtbaarheid** - Bepaal wie dit element kan zien: ingelogde gebruikers, uitgelogde gebruikers of specifieke rollen.\n\n**Tabblad Gebeurtenissen** - Als het element acties ondersteunt, configureer ze dan hier voor dynamische interactiviteit." - }, - "previewPublishGuidedTourStep": { - "title": "Je app bekijken en publiceren", - "content": "Klik op **Preview** om je app privé te testen. Als je klaar bent, klik je op **Publiceer** om de app te delen met het publiek via een domein." - }, - "builderToast": { - "details": "Details", - "defaultTitle": "Onverwachte fout", - "defaultMessage": "Er is een onverwachte fout opgetreden. Probeer het later nog eens.", - "invalidContextTitle": "Ongeldig verzoek", - "invalidContextMessage": "Het verzoek is ongeldig.", - "InvalidContentTitle": "Ongeldig formulier", - "invalidContentMessage": "Een of meer velden bevatten ongeldige waarden.", - "serviceMisconfiguredTitle": "Onvolledige configuratie", - "serviceMisconfiguredMessage": "Controleer de configuratie.", - "errorWorkflowActionDispatch": "De actie \"{naam}\" is mislukt: ", - "errorDataSourceDispatch": "Mislukt bij het laden van \"{name}\" gegevens: " - } + "sidebarComponentBuilder": { + "settings": "Instellingen", + "createPage": "Pagina maken" + }, + "builderSettingsModal": { + "title": "Applicatie" + }, + "createPageModal": { + "header": "Pagina maken", + "submit": "Pagina toevoegen" + }, + "pageForm": { + "nameLabel": "Naam", + "defaultName": "Pagina", + "errorNameNotUnique": "Een pagina met deze naam bestaat al", + "pathLabel": "Pad", + "errorPathNotUnique": "Een pagina met deze naam bestaat al", + "errorStartingSlash": "Een pad moet beginnen met een '/'", + "errorValidPathCharacters": "Het pad bevat ongeldige tekens", + "pathParamsTitle": "Pad parameters", + "pathParamsSubtitle": "Worden gedefinieerd door :parameter in het pad", + "nameSubtitle": "Unieke naam van de pagina", + "pathTitle": "Pad", + "pathParamsSubtitleTutorial": "Pad parameters kunnen worden gebruikt om gegevens dynamisch te laden, afhankelijk van de opgegeven parameter. Voeg :parameter toe aan het pad om er een toe te voegen.", + "nameTitle": "Naam", + "pathSubtitle": "Een parameter kan worden toegevoegd via :parameter", + "namePlaceholder": "Voer een naam in...", + "pathPlaceholder": "Voer een pad in...", + "addAnotherParameter": "Nog een query string parameter toevoegen", + "addParameter": "Query string parameter toevoegen", + "queryParamsSubtitleTutorial": "Query parameters kunnen worden gebruikt om dynamisch gegevens te laden, afhankelijk van de opgegeven parameter.", + "queryParamsTitle": "Query string parameters" + }, + "builderForm": { + "submit": "Applicatie toevoegen" + }, + "builderSettingTypes": { + "themeName": "Thema", + "integrationsName": "Integraties", + "domainsName": "Domeinen", + "userSourcesName": "Gebruikers", + "generalName": "Algemeen" + }, + "elementMenu": { + "moveUp": "Verplaats omhoog", + "moveDown": "Verplaats omlaag", + "moveRight": "Naar rechts", + "moveLeft": "Naar links", + "selectParent": "Selecteer ouder" + }, + "pageHeaderItemTypes": { + "labelElements": "Elementen", + "labelDataSource": "Data", + "labelVariables": "Variabelen", + "labelSettings": "Pagina-instellingen" + }, + "elementsContext": { + "searchPlaceholder": "Zoek elementen", + "noElements": "Geen elementen gevonden", + "noPageElements": "Geen elementen gevonden voor deze pagina" + }, + "elementType": { + "heading": "Kop", + "headingDescription": "Titel paginakop", + "text": "Paragraaf", + "textDescription": "Tekst op één regel", + "link": "Link", + "image": "Afbeelding", + "linkDescription": "Een link naar pagina/URL", + "imageDescription": "Afbeelding weergeven", + "inputText": "Tekstinvoer", + "inputTextDescription": "Een tekstinvoerveld", + "column": "Kolommen", + "table": "Tabel", + "formContainer": "Formulier", + "tableDescription": "Een tabel element", + "columnDescription": "Kolommen container", + "button": "Knop", + "buttonDescription": "Een knop element", + "formContainerDescription": "Een formulier element", + "dropdownDescription": "Dropdown element", + "iframeDescription": "Inline frame", + "dropdown": "Dropdown", + "checkbox": "Checkbox", + "checkboxDescription": "Checkbox element", + "iframe": "IFrame", + "authForm": "Inlogformulier", + "authFormDescription": "Een login formulier voor gebruikers", + "repeat": "Herhaal", + "repeatDescription": "Een herhaalbare reeks elementen", + "choice": "Keuze", + "choiceDescription": "Voor enkele/meervoudige waarde selectie", + "recordSelector": "Recordkiezer", + "recordSelectorDescription": "Een gerelateerde recordkiezer", + "header": "Multi-pagina header", + "headerDescription": "Een container gedeeld over pagina's", + "footer": "Multi-pagina footer", + "footerDescription": "Een container gedeeld over pagina's", + "notAllowedUnlessTop": "Dit element is alleen toegestaan bovenaan de pagina", + "notAllowedUnlessBottom": "Dit element is alleen toegestaan onderaan de pagina", + "notAllowedUnlessHeader": "Dit element is alleen toegestaan in de pagina header", + "notAllowedUnlessFooter": "Dit element is alleen toegestaan in de footer van de pagina", + "notAllowedInsideContainer": "Dit element is niet toegestaan in een container", + "notAllowedInsideSameType": "Dit element is niet toegestaan in een container van hetzelfde type", + "notAllowedLocation": "Dit element is niet toegestaan op deze locatie", + "dateTimePicker": "Datum tijd kiezer", + "dateTimePickerDescription": "Een invoerveld voor datum en tijd", + "simpleContainer": "Container", + "menu": "Menu", + "menuDescription": "Menu element", + "simpleContainerDescription": "Een container voor andere elementen", + "invalidElementValue": "Ongeldige element waarde: {value}", + "ratingDescription": "Een beoordelings element", + "ratingInput": "Beoordeling invoer", + "rating": "Beoordeling", + "ratingInputDescription": "Een beoordeling selement", + "fileInput": "Bestandsinvoer", + "fileInputDescription": "Een invoerveld om bestanden te uploaden", + "errorValueMissing": "Ontbrekende waarde eigenschap", + "errorEmptyContainer": "Deze container is leeg", + "errorParentWithDataSourceMissing": "Geen gegevensbron geselecteerd op het element of een bovenliggende container", + "errorDataSourceMissing": "Geen gegevensbron geselecteerd", + "errorSchemaPropertyMissing": "Geen schema-eigenschap geselecteerd", + "errorWorkflowActionInError": "Ten minste één actie is verkeerd geconfigureerd", + "errorCollectionFieldInError": "Ten minste één veld is verkeerd geconfigureerd", + "errorNavigateToPageMissing": "Ontbreekt Navigeer naar eigenschap", + "errorPageParameterInError": "Ten minste één paginaparameter is verkeerd geconfigureerd", + "errorNavigationUrlMissing": "Ontbrekende URL-eigenschap voor navigatie", + "errorImageFileMissing": "Ontbrekend afbeeldingsbestand", + "errorImageUrlMissing": "Ontbrekende URL-eigenschap voor afbeelding", + "errorNoWorkflowAction": "Geen workflowactie geconfigureerd", + "errorOptionsMissing": "Geen optie geconfigureerd", + "errorIframeUrlMissing": "Ontbrekende IFrame URL eigenschap", + "errorIframeContentMissing": "Ontbrekende IFrame-inhoud", + "errorNoMenuItem": "Geen menu-item geconfigureerd", + "errorMenuItemInError": "Ten minste één menu is verkeerd geconfigureerd", + "errorSubMenuItemInError": "Ten minste één submenu is verkeerd geconfigureerd" + }, + "addElementButton": { + "label": "Element" + }, + "addElementModal": { + "title": "Nieuw element toevoegen", + "searchPlaceholder": "Zoek elementen", + "disabledElementTooltip": "Niet beschikbaar binnen dit element", + "elementInProgress": "Element toevoegen..." + }, + "duplicatePageJobType": { + "duplicating": "Dupliceren", + "duplicatedTitle": "Pagina gedupliceerd", + "name": "Dupliceer pagina" + }, + "pageSidePanelType": { + "general": "Algemeen", + "style": "Stijl", + "visibility": "Zichtbaarheid", + "events": "Gebeurtenissen", + "eventsTabDeactivatedNoEvents": "Dit element ondersteunt geen events", + "eventsTabInError": "Een of meer acties zijn verkeerd geconfigureerd." + }, + "emptySidePanelState": { + "message": "Klik op een van de elementen om meer details te zien" + }, + "headingElement": { + "noValue": "Geen titel...", + "emptyValue": "Lege titel...", + "missingValue": "Ontbrekende titel..." + }, + "headingElementForm": { + "levelTitle": "Niveau", + "textTitle": "Tekst", + "headingName": "Kop {level} ", + "textError": "De waarde is ongeldig.", + "textPlaceholder": "Tekst invoeren..." + }, + "textElement": { + "noValue": "Lege paragraaf...", + "emptyValue": "Lege tekst...", + "missingValue": "Ontbrekende tekst..." + }, + "textElementForm": { + "textTitle": "Tekst", + "textPlaceholder": "Tekst invoeren...", + "textError": "De waarde is ongeldig.", + "textFormatTypeLabel": "Format", + "textFormatTypePlain": "Platte tekst", + "textFormatTypeMarkdown": "Markdown" + }, + "pageErrors": { + "errorPathNotUnique": "Een pad met deze naam bestaat al", + "errorValidPathCharacters": "Het pad bevat ongeldige tekens", + "errorUniquePathParams": "Pad parameters moeten uniek zijn.", + "errorStartingSlash": "Een pad moet beginnen met een '/'", + "errorNameNotUnique": "Een pagina met deze naam bestaat al", + "errorUniqueValidQueryParams": "Query parameternamen moeten uniek en geldig zijn.", + "errorNameNotUniqueDescription": "Voer een unieke naam in voor de pagina" + }, + "pageActionTypes": { + "preview": "Voorbeeld", + "publish": "Publiceren" + }, + "publishActionModal": { + "title": "Publiceren", + "description": "Breng uw app live door te publiceren naar een van de domeinen. Houd er rekening mee dat uw applicatie meerdere domeinen kan hebben, die elk een andere versie van de applicatie hebben.", + "publish": "Publiceren", + "publishSucceedTitle": "Site gepubliceerd", + "publishSucceedDescription": "De site is met succes gepubliceerd.", + "publishFailedTitle": "Publiceren van de site is mislukt", + "publishFailedDescription": "Het publiceren van de site is mislukt. Probeer het later opnieuw.", + "openInNewTab": "Openen in nieuw tabblad", + "noDomain": "Je moet ten minste één domein hebben om uw applicatie te kunnen publiceren.", + "importingState": "importeren", + "addDomain": "Domein toevoegen", + "publishSucceedLink": "Bekijk site" + }, + "lastPublishedDomainDate": { + "neverPublished": "nooit", + "lastPublished": "Laatst gepubliceerd:" + }, + "imageElementForm": { + "invalidUrlError": "URL is ongeldig", + "altTextTitle": "Alt tekst", + "altTextDescription": "Wordt gebruikt door schermlezers en weergegeven als de afbeelding niet kan worden geladen", + "fileLabel": "Afbeeldingsbestand", + "fileSourceTypeURL": "URL", + "fileSourceTypeUpload": "Uploaden", + "urlWarning": "Opmerking: zorg ervoor dat u controle heeft over de ingevoerde URL of deze vertrouwt.", + "uploadFileButton": "Upload bestand", + "maxWidthLabel": "Max breedte", + "maxHeightLabel": "Max hoogte", + "maxHeightPlaceholder": "Voer een maximale hoogte in pixels in.", + "maxWidthPlaceholder": "Voer een maximale breedte in als percentage.", + "imageConstraintsLabel": "Beperkingen", + "imageConstraintFullWidth": "Uitbreiden tot max breedte", + "imageConstraintCover": "Omslag", + "imageConstraintCoverDisabled": "Niet beschikbaar met lege maximumhoogte.", + "imageConstraintContain": "Bevat", + "imageConstraintContainDisabled": "Niet beschikbaar met een maximale hoogte." + }, + "domainSettings": { + "titleOverview": "Domeinen", + "noDomainMessage": "Je hebt nog geen domein aan deze applicatie gekoppeld. Je moet een domein toevoegen om uw applicatie te kunnen publiceren. Je kunt verschillende versies van je applicatie publiceren voor elk domein dat hier wordt vermeld.", + "titleAddDomain": "Domein toevoegen", + "addDomain": "Domein toevoegen" + }, + "domainCard": { + "refresh": "Instellingen vernieuwen", + "detailLabel": "Toon details", + "unpublishedDomainWarning": "Publiceer de applicatie om deze beschikbaar te maken op dit domein." + }, + "domainTypes": { + "customName": "Aangepast domein", + "subDomain": "Subdomein van {domain}", + "subDomainName": "Subdomein" + }, + "linkElement": { + "noValue": "Naamloos...", + "missingValue": "Ontbrekende linktekst...", + "emptyValue": "Lege linktekst..." + }, + "linkElementForm": { + "text": "Tekst", + "textPlaceholder": "Tekst invoeren...", + "navigateTo": "Navigeer naar", + "navigateToNotSet": "Geen bestemming", + "navigateToCustom": "Aangepaste URL", + "variantButton": "Knop", + "width": "Breedte", + "target": "Open in...", + "targetSelf": "Zelfde tabblad", + "paramsInErrorDescription": "De opgeslagen parameters komen niet overeen met de paginaparameters. De pagina is waarschijnlijk verwijderd of bijgewerkt.", + "pageParameterTypeError": "Ongeldig type", + "url": "Bestemmings-URL", + "widthAuto": "Auto", + "targetNewTab": "Nieuw tabblad", + "urlPlaceholder": "Voer een URL in...", + "variant": "Variant", + "widthFull": "Volle breedte", + "variantLink": "Link", + "paramPlaceholder": "Voer een waarde in...", + "paramsInErrorButton": "Parameters bijwerken", + "buttonColor": "Kleur knop" + }, + "alignmentSelector": { + "alignment": "Uitlijning", + "alignmentLeft": "Link", + "alignmentCenter": "Centreren", + "alignmentRight": "Rechts" + }, + "pageSettings": { + "pageUpdatedTitle": "Gewijzigd", + "pageUpdatedDescription": "De pagina-instellingen zijn bijgewerkt.", + "title": "Pagina" + }, + "pathParamTypes": { + "textName": "Tekst", + "numericName": "Numeriek" + }, + "publicPage": { + "siteNotFound": "Site niet gevonden", + "pageNotFound": "Pagina niet gevonden", + "loginToastTitle": "Authenticatie succesvol", + "loginToastMessage": "Je bent succesvol aangemeld.", + "authorizedToastTitle": "Authenticatie vereist", + "authorizedToastMessage": "Je moet ingelogd zijn om toegang te krijgen tot deze pagina. Log in om verder te gaan." + }, + "integrationSettings": { + "title": "Integraties", + "integrationMessage": "Je kunt nieuwe integraties maken door een databron, actie of gebruikersauthenticatie toe te voegen.", + "noIntegrationMessage": "Je hebt nog geen integraties gemaakt. Je kunt ze maken door een databron, actie of gebruikersauthenticatie toe te voegen." + }, + "dataSourceForm": { + "addIntegration": "Nieuwe integratie toevoegen", + "noIntegrations": "je hebt nog geen integratie", + "integrationPlaceholder": "Selecteer een integratie", + "errorUniqueName": "Data bron naam moet uniek zijn.", + "selectTypeFirst": "Selecteer eerst de dienst", + "servicePlaceholder": "Selecteer een dienst", + "namePlaceholder": "Bron naam", + "actionLabel": "Actie", + "nameLabel": "Naam", + "integrationLabel": "Integratie" + }, + "dataSourceContext": { + "addDataSource": "Nieuwe gegevensbron toevoegen", + "noDataSourceTitle": "Je hebt nog geen data toegevoegd", + "noDataSourceMessage": "Data kan worden gebruikt om gegevens op te halen uit interne of externe bronnen en deze op de pagina weer te geven.", + "sharedDataSourceTitle": "Gedeeld tussen pagina's", + "pageDataSourceTitle": "Voor deze pagina", + "sharedDataSourceDescription": "Toegankelijk op elke pagina en wordt eenmalig opgehaald bij de eerste keer dat de pagina wordt geladen.", + "pageDataSourceDescription": "Wordt opgehaald wanneer de gebruiker naar deze pagina navigeert." + }, + "imageElement": { + "emptyState": "Geen alt-tekst gedefinieerd...", + "emptyValue": "Lege alt-tekst...", + "missingValue": "Ontbrekende alt-tekst..." + }, + "elementForms": { + "textInputPlaceholder": "Voer tekst in...", + "urlInputPlaceholder": "Voer url in...", + "invalidFormula": "De formule is ongeldig" + }, + "dnsStatus": { + "hostHeader": "Host", + "description": "Ga naar de DNS-instellingen van je domeinen en breng de volgende wijzigingen aan", + "valueHeader": "Waarde", + "typeHeader": "Type" + }, + "customDomainForm": { + "domainNameLabel": "Domeinnaam", + "notUniqueDomain": "Het opgegeven domein is al in gebruik", + "invalidDomain": "De opgegeven domeinnaam is ongeldig" + }, + "pageSettingsTypes": { + "pageName": "Pagina" + }, + "dataProviderType": { + "currentRecord": "Gegevensbron", + "pageParameter": "Parameter", + "dataSource": "Data rijen", + "formData": "Formuliergegevens", + "user": "Gebruiker", + "previousAction": "Vorige actie", + "dataSourceContext": "Beschikbare opties", + "metadata": "Metadata" + }, + "tableElementForm": { + "addField": "veld toevoegen", + "itemsPerPage": "Items per pagina", + "fieldType": "Type", + "fieldValueLabel": "Waarde", + "fieldDefaultName": "Kolom", + "dataSource": "Gegevensbron", + "fieldValuePlaceholder": "Waarde invoeren...", + "itemsPerPagePlaceholder": "Waarde invoeren...", + "fields": "Velden", + "selectSourceFirst": "Kies een lijstgegevensbron om te beginnen met het configureren van je velden.", + "buttonColor": "Kleur knop", + "refreshFieldsFromDataSource": "velden van gegevensbron verversen", + "name": "Naam", + "orientation": "Oriëntatie", + "orientationHorizontal": "Horizontaal", + "orientationVertical": "Verticaal", + "buttonLoadMoreLabel": "Toon meer label", + "propertySelectorMissingArrays": "Geen velden met meerdere waarden gevonden om als rijen te gebruiken.", + "noName": "Geen naam" + }, + "linkFieldForm": { + "fieldLinkNamePlaceholder": "Waarde invoeren...", + "fieldValuePlaceholder": "Waarde invoeren...", + "fieldLinkNameLabel": "Link tekst", + "fieldValueLabel": "Url", + "buttonColor": "Kleur knop" + }, + "verticalAlignmentSelector": { + "alignmentTop": "Boven", + "alignmentBottom": "Onderkant", + "alignmentCenter": "Midden", + "alignment": "Verticale uitlijning" + }, + "horizontalAlignmentSelector": { + "alignmentLeft": "Link", + "alignmentRight": "Rechts", + "alignment": "Horizontaal uitlijnen", + "alignmentCenter": "Centreren" + }, + "defaultStyleForm": { + "widthLabel": "Breedte", + "boxTop": "Bovenkant", + "backgroundLabel": "Achtergrond", + "backgroundColor": "Achtergrond kleur", + "boxBottom": "Onderkant", + "boxRight": "Rechts", + "boxLeft": "Links", + "backgroundImage": "Afbeelding", + "backgroundImageMode": "Vulmodus", + "cssClasses": "CSS-klassen", + "cssClassesHelp": "Stel een door spaties gescheiden lijst in van klassen voor dit element die zullen verschijnen in de gegenereerde HTML.", + "cssClassesPlaceholder": "CSS-klassen invoeren..." + }, + "updateUserSourceForm": { + "nameFieldLabel": "Naam", + "nameFieldPlaceholder": "Voer een naam in...", + "integrationFieldLabel": "Integratie", + "authTitle": "Authenticatie", + "addProvider": "Provider toevoegen" + }, + "mainThemeConfigBlock": { + "colorsLabel": "Kleuren", + "primaryColor": "Primair", + "headingValue": "Kop ", + "typography": "Typografie", + "headingLabel": "Kop {i} (h{i})", + "secondaryColor": "Secundair" + }, + "inputTextElementForm": { + "placeholderPlaceholder": "Voer een placeholder in (optioneel)", + "valueTitle": "Standaardwaarde", + "valuePlaceholder": "Voer een standaardwaarde in (optioneel)", + "placeholderTitle": "Placeholder", + "labelTitle": "Label", + "requiredTitle": "Vereist", + "labelPlaceholder": "Voer een label in (optioneel)", + "multilineTitle": "Meerdere regels", + "rowsTitle": "Aantal regels", + "rowsPlaceholder": "Voer het aantal rijen van deze invoer in", + "validationTypeAnyLabel": "Elke", + "validationTypeIntegerLabel": "Nummer", + "validationTypeEmailLabel": "E-mail", + "validationTypeEmailDescription": "Dwing een e-mailadres waarde af in deze invoer.", + "validationTypeAnyDescription": "Sta toe dat deze invoer een willekeurige waarde bevat.", + "validationTypeIntegerDescription": "Dwing een getalwaarde af in deze invoer.", + "inputTypePasswordLabel": "Wachtwoord", + "passwordTypeWarning": "Wachtwoorden zijn gevoelige gegevens. Wees voorzichtig met hoe je wachtwoorden behandelt en opslaat in je applicatie.", + "inputType": "Input type", + "inputTypeTextLabel": "Tekst" + }, + "widthSelector": { + "widthFull": "Volledige breedte", + "widthAuto": "Auto", + "width": "Breedte" + }, + "buttonElementForm": { + "valuePlaceholder": "Voer tekst in...", + "valueLabel": "Tekst", + "buttonColor": "Kleur knop" + }, + "workflowActionTypes": { + "updateRowLabel": "Rij bijwerken", + "createRowLabel": "Rij maken", + "notificationLabel": "Melding tonen", + "openPageLabel": "Pagina openen", + "logoutLabel": "Uitloggen", + "refreshDataSourceLabel": "Gegevensbron verversen", + "deleteRowLabel": "Verwijder Rij", + "httpRequest": "Stuur HTTP verzoek", + "errorNavigateToPageMissing": "Ontbreekt Navigeer naar eigenschap", + "errorPageParameterInError": "Ten minste één paginaparameter is verkeerd geconfigureerd", + "errorNavigationUrlMissing": "Ontbrekende URL-eigenschap voor navigatie", + "errorDataSourceMissing": "Geen gegevensbron geselecteerd" + }, + "widthTypes": { + "full": "Volledige breedte", + "small": "Klein", + "medium": "Medium", + "normal": "Normaal", + "fullBleed": "Full bleed", + "fullWidth": "Volledige breedte" + }, + "userSourceSettings": { + "titleOverview": "Gebruiker bronnen", + "titleUpdateUserSource": "Gebruikersbron bewerken", + "titleAddUserSource": "Nieuwe gebruikersbron", + "addUserSource": "Gebruikersbron toevoegen", + "noUserSourceMessage": "U hebt nog geen gebruikersbron toegevoegd aan deze applicatie. U moet een gebruikersbron toevoegen als u wilt dat gebruikers uw applicatie kunnen authenticeren." + }, + "upsertRowWorkflowActionForm": { + "rowIdPlaceholder": "Selecteer een rij-ID", + "fieldMappingPlaceholder": "Kies een veldwaarde", + "integrationDropdownLabel": "Integratie", + "rowIdLabel": "Rij ID", + "noTableSelectedMessage": "Kies een tabel om te beginnen met het configureren van je velden." + }, + "subDomainDetails": { + "text": "De DNS-instellingen van de domeinnaam zijn al geconfigureerd en gecontroleerd. Het werkt zonder extra wijzigingen." + }, + "columnElementForm": { + "columnGapPlaceholder": "Voer ruimte in tussen kolommen...", + "columnGapTitle": "Ruimte tussen kolommen", + "columnAmountTitle": "Layout", + "columnAmountName": "geen kolommen | 1 kolom | {columnAmount} kolommen", + "verticalAlignment": "Verticale uitlijning" + }, + "notificationWorkflowActionForm": { + "descriptionLabel": "Beschrijving", + "descriptionPlaceholder": "Tekst invoeren...", + "titleLabel": "Titel", + "titlePlaceholder": "Tekst invoeren..." + }, + "currentRecordDataProviderType": { + "index": "Index", + "firstPartName": "Gegevensbron: {name}", + "schemaProperty": "{prefixName}: {schemaProperty}" + }, + "domainForm": { + "notUniqueDomain": "De opgegeven domeinnaam is al in gebruik", + "invalidDomain": "De opgegeven domeinnaam is ongeldig" + }, + "dispatchWorkflowActionError": { + "defaultMessage": "Er is een fout opgetreden die deze gebeurtenis heeft veroorzaakt.", + "defaultTitle": "Gebeurtenis fout", + "formDataInvalidTitle": "Ongeldig formulier", + "formDataInvalidMessage": "Een of meer velden bevatten ongeldige waarden." + }, + "openPageWorkflowActionForm": { + "urlLabel": "URL", + "urlPlaceholder": "Tekst invoeren..." + }, + "collectionFieldType": { + "text": "Tekst", + "link": "Link", + "boolean": "Boolean", + "tags": "Tags", + "button": "Knop", + "image": "Afbeelding", + "rating": "Beoordeling", + "errorValueMissing": "Ontbrekende waarde eigenschap" + }, + "createUserSourceForm": { + "userSourceName": "Naam", + "userSourceIntegration": "Integratie", + "userSourceType": "Type" + }, + "event": { + "addAction": "actie toevoegen" + }, + "buttonElement": { + "noValue": "Naamloos...", + "missingValue": "Ontbrekende knop tekst...", + "emptyValue": "Lege knop tekst..." + }, + "formDataProviderType": { + "nodeMissing": "Ontbrekend" + }, + "textFieldForm": { + "fieldValuePlaceholder": "Waarde invoeren...", + "fieldValueLabel": "Waarde" + }, + "tableElement": { + "empty": "Er zijn geen items gevonden.", + "showMore": "Meer tonen" + }, + "fontSidePanelForm": { + "label": "Lettertype" + }, + "styleBoxForm": { + "borderLabel": "Grens", + "paddingLabel": "Opvulling", + "error": "De waarde moet een geheel getal zijn tussen 0 en 200.", + "borderColor": "Kleur rand", + "marginLabel": "Marge" + }, + "backgroundTypes": { + "color": "Kleur", + "none": "Geen" + }, + "pagePreview": { + "emptyMessage": "Klik om het eerste element te maken", + "header": "HEADER", + "footer": "FOOTER" + }, + "eventTypes": { + "submitLabel": "Op versturen", + "clickLabel": "Op klik", + "afterLoginLabel": "Na inloggen" + }, + "formContainerElementForm": { + "submitButtonLabel": "Verstuur knop", + "submitButtonPlaceholder": "Waarde invoeren...", + "buttonColor": "Kleur knop", + "resetToInitialValuesTitle": "Terugzetten naar standaardwaarden na verzenden", + "resetToInitialValuesDescription": "Als aangevinkt, worden de standaardwaarden van het formulier gebruikt om het formulier te resetten na een succesvolle verzending. Als niet aangevinkt, blijven de waarden van de gebruiker behouden." + }, + "subDomainForm": { + "domainNameLabel": "Domeinnaam" + }, + "linkField": { + "details": "Details" + }, + "getFormulaComponent": { + "errorTooltip": "Ongeldige referentie" + }, + "generalForm": { + "labelTitle": "Label", + "labelPlaceholder": "Voer een label in (optioneel)", + "valueTitle": "Standaardwaarde", + "valuePlaceholder": "Voer een standaardwaarde in (optioneel)", + "placeholderTitle": "Placeholder", + "placeholderPlaceholder": "Voer een placeholder in (optioneel)", + "requiredTitle": "Verplicht", + "validationTitle": "Validatie", + "defaultValueTitle": "Standaardwaarde", + "defaultValuePlaceholder": "Standaardwaarde invoeren" + }, + "linkNavigationSelection": { + "urlPlaceholder": "Voer een URL in...", + "navigateToCustom": "Aangepaste URL", + "navigateTo": "Navigeer naar", + "paramPlaceholder": "Voer een waarde in...", + "url": "Bestemmings URL", + "paramsInErrorDescription": "De opgeslagen parameters komen niet overeen met de paginaparameters. De pagina is waarschijnlijk verwijderd of bijgewerkt.", + "paramsInErrorButton": "Parameters bijwerken", + "target": "Open in...", + "targetSelf": "Zelfde tab", + "targetNewTab": "Nieuw tabblad" + }, + "iframeElementForm": { + "empty": "Leeg IFrame...", + "sourceTypeLabel": "Bron soort", + "urlLabel": "URL", + "urlPlaceholder": "Link naar de externe bron die moet worden ingesloten", + "urlHelp": "Opmerking: zorg ervoor dat je controle hebt over de ingevoerde URL of dat je deze vertrouwt.", + "embedLabel": "Insluiten", + "embedPlaceholder": "Ruwe HTML-inhoud die moet worden ingesloten", + "heightLabel": "Hoogte (px)", + "heightPlaceholder": "Hoogte in pixels", + "missingValue": "IFrame bron ontbreekt...", + "emptyValue": "Lege IFrame bron..." + }, + "dropdownOptionSelector": { + "label": "Opties", + "value": "Waarde", + "name": "Naam", + "addOption": "optie toevoegen" + }, + "checkboxElementForm": { + "labelTitle": "Label", + "valueTitle": "Standaardwaarde", + "requiredTitle": "Verplicht" + }, + "dispatchDataSourceError": { + "defaultMessage": "Er is een fout opgetreden tijdens het laden van gegevens voor de pagina.", + "defaultTitle": "Fout bij het laden van gegevens" + }, + "authFormElementForm": { + "userSource": "Gebruiker bron" + }, + "authFormElement": { + "email": "E-mail", + "passwordPlaceholder": "Voer je wachtwoord in...", + "selectOrConfigureUserSourceFirst": "Kies een gebruikersbron om dit aanmeldingselement te gaan gebruiken.", + "password": "Wachtwoord", + "emailPlaceholder": "Voer uw e-mailadres in..." + }, + "userSourceUsersContext": { + "searchPlaceholder": "Gebruiker zoeken", + "noEmail": "Geen e-mail", + "anonymous": "Anoniem", + "unnamed": "Naamloos" + }, + "userSelector": { + "viewAs": "Weergeven als: {user}", + "anonymous": "Anoniem", + "member": "{prefix} lid" + }, + "formContainerElement": { + "submitDeactivatedText": "Vul alle verplichte velden in om te verzenden", + "defaultSubmitButtonLabel": "Verstuur" + }, + "visibilityForm": { + "allVisitors": "Alle bezoekers", + "loggedInVisitors": "Aangemelde bezoekers", + "notLoggedInVisitors": "Uitgelogde bezoekers", + "warningMessage": "Op dit moment wordt de zichtbaarheid alleen toegepast in de UI, de onderliggende gegevens zijn nog steeds toegankelijk via de API. Raadpleeg de <a href='https://baserow.io/user-docs/application-builder-element-visibility#note-accessing-hidden-data-via-api'>documentatie</a> voor meer informatie over gegevensbeveiliging.", + "warningTitle": "We verbeteren voortdurend de beveiliging", + "excludedRolesLabel": "alle rollen behalve", + "switchAllowLabel": "Sta toe", + "switchDisallowLabel": "Niet toestaan", + "rolesSelectAll": "Selecteer alles", + "rolesDeselectAll": "Deselecteer alles", + "rolesSelectHint": "Selecteer een of meer rollen", + "roleTypesHint": "Selecteer een type rol", + "roleTypeAllowAllRoles": "Alle rollen", + "roleTypeAllowAllRolesExcept": "Rollen niet toestaan...", + "roleTypeDisallowAllRolesExcept": "Rollen toestaan...", + "rolesAllMembersOf": "Alle leden van {name}", + "noRole": "Geen rol", + "errorFetchingRolesTitle": "Kan gebruikersrollen niet ophalen", + "errorFetchingRolesMessage": "Er is een probleem opgetreden tijdens het ophalen van gebruikersrollen.", + "visibilityCondition": "Zichtbaarheid voorwaarde", + "visibilityConditionHelper": "Als het resultaat van deze formule waar is en de bezoekerskeuze hierboven waar is, zal het element zichtbaar zijn. Deze voorwaarde beïnvloedt alleen de zichtbaarheid van het element. Als u in plaats daarvan gegevens wilt uitsluiten van het serverantwoord, gebruikt u de bovenstaande filteroptie voor gebruikersrollen.", + "visibilityConditionPlaceholder": "Voorwaarde...", + "documentationLink": "documentatie" + }, + "imageInput": { + "labelButton": "Uploaden", + "labelDescription": "Standaard beschrijving" + }, + "generalSettings": { + "labelForm": "Favicon", + "labelDescription": "Kies een 128x128px ICO, PNG, GIF of JPEG.", + "labelButton": "Favicon uploaden", + "cantUploadFaviconTitle": "Kon favicon bestand niet uploaden", + "cantUploadFaviconDescription": "Sorry, kon favicon afbeelding niet uploaden. Zorg ervoor dat het afbeeldingsbestand uniek is en een ondersteund afbeeldingsformaat heeft.", + "cantUpdateApplicationTitle": "Applicatie kan niet worden bijgewerkt", + "cantUpdateApplicationDescription": "Sorry, kon de applicatie niet bijwerken.", + "titleOverview": "Algemeen" + }, + "repeatElementForm": { + "dataSource": "Gegevensbron", + "itemsPerRowDescription": "Kies per apparaattype wat het aantal herhalingen per rij moet zijn.", + "orientationVertical": "Verticaal", + "orientationLabel": "Oriëntatie", + "orientationHorizontal": "Horizontaal", + "itemsPerPage": "Items per pagina", + "itemsPerPagePlaceholder": "Waarde invoeren...", + "itemsPerRowLabel": "Items per rij", + "buttonLoadMoreLabel": "Toon meer label", + "toggleEditorRepetitionsLabel": "Herhalingen tijdelijk uitschakelen", + "propertySelectorMissingArrays": "Geen velden met meerdere waarden gevonden om mee te herhalen.", + "gapLabel": "Ruimte tussen herhalingen", + "gapVerticalLabel": "Verticaal", + "gapHorizontalLabel": "Horizontaal" + }, + "userDataProviderType": { + "isAuthenticated": "Is ingelogd", + "id": "Id", + "email": "E-mail", + "username": "Gebruikersnaam", + "role": "Rol" + }, + "buttonField": { + "noLabel": "Naamloos..." + }, + "repeatElement": { + "showMore": "Meer tonen", + "missingDataSourceTooltip": "Kies een gegevensbron om te beginnen met het toevoegen van elementen.", + "empty": "Er zijn geen items gevonden.", + "missingSchemaPropertyTooltip": "Kies een eigenschap om te beginnen met het toevoegen van elementen.", + "emptyState": "Geen rijen gevonden." + }, + "tagsFieldForm": { + "fieldValuesLabel": "Waarden", + "fieldValuesPlaceholder": "Waarden invoeren...", + "fieldColorsLabel": "Kleuren", + "fieldColorsPlaceholder": "Voer kleuren in..." + }, + "buttonFieldForm": { + "infoMessage": "Om acties voor deze knop te configureren, open je het tabblad \"Gebeurtenissen\" van het huidige element.", + "labelPlaceholder": "Voer een label in..." + }, + "themeConfigBlockType": { + "color": "Kleuren", + "page": "Pagina", + "typography": "Typografie", + "link": "Link", + "button": "Knop", + "image": "Afbeelding", + "input": "Invoer", + "table": "Tabel" + }, + "buttonThemeConfigBlock": { + "defaultState": "Standaard staat", + "hoverState": "Hover staat", + "textAlignment": "Tekstuitlijning", + "alignment": "Uitlijning", + "width": "Breedte", + "textColor": "Kleur tekst", + "borderColor": "Border kleur", + "borderSize": "Bordergrootte", + "borderRadius": "Border radius", + "padding": "Opvulling", + "fontFamily": "Lettertype", + "size": "Lettergrootte", + "backgroundColor": "Achtergrond kleur", + "button": "Knop", + "weight": "Lettertype gewicht", + "activeState": "Actieve status" + }, + "linkThemeConfigBlock": { + "color": "Kleur", + "link": "Link", + "defaultState": "Standaard staat", + "hoverState": "Hover staat", + "alignment": "Uitlijning", + "fontFamily": "Lettertype", + "size": "Lettergrootte", + "weight": "Lettertype gewicht", + "activeState": "Actieve status", + "decoration": "Tekst decoratie" + }, + "imageThemeConfigBlock": { + "alignment": "Uitlijning", + "maxWidthLabel": "Max breedte", + "maxHeightLabel": "Max hoogte", + "imageConstraintsLabel": "Beperkingen", + "imageConstraintCover": "Omslag", + "imageConstraintCoverDisabled": "Niet beschikbaar met lege maximumhoogte.", + "imageConstraintContain": "Bevat", + "imageConstraintContainDisabled": "Niet beschikbaar met een maximale hoogte.", + "maxWidthPlaceholder": "Voer een maximale breedte in", + "maxHeightPlaceholder": "Maximale hoogte invoeren", + "imageConstraintFullWidth": "Uitbreiden tot max breedte", + "imageBorderRadiusLabel": "Randradius", + "imageBorderRadiusPlaceholder": "Voer de afbeelding rand radius in" + }, + "choiceElementForm": { + "multiple": "Meerdere waarden toestaan", + "display": "Weergave", + "dropdown": "Dropdown", + "checkbox": "Checkbox", + "radio": "Radio" + }, + "choiceOptionSelector": { + "name": "Optie waargave namen", + "namePlaceholder": "Naam invoeren", + "addOption": "optie toevoegen", + "manual": "Handmatig", + "dataSource": "Gegevensbron", + "formulas": "Formules", + "optionType": "Opties type", + "label": "Opties", + "value": "Optiewaarden", + "valuePlaceholder": "Waarde invoeren", + "addOptionDescription": "Klik op 'optie toevoegen' om opties toe te voegen aan je vervolgkeuzelijst" + }, + "choiceElement": { + "addOptions": "Opties toevoegen om dit element te gaan gebruiken..." + }, + "backgroundModes": { + "tile": "Tegel", + "fill": "Vullen", + "fit": "Pas" + }, + "customStyle": { + "themeOverrides": "Thema overschrijvingen", + "configureThemeOverrides": "Thema-overschrijvingen voor dit element configureren", + "backToElement": "Terug naar element configuratie" + }, + "colorThemeConfigBlock": { + "errorColor": "Fout", + "successColor": "Succes", + "secondaryColor": "Secundair", + "borderColor": "Border", + "warningColor": "Waarschuwing", + "primaryColor": "Primair", + "transparent": "Transparant", + "addCustomColor": "Aangepaste kleur toevoegen", + "customColorPrefix": "Maatwerk", + "customColors": "Aangepaste kleuren" + }, + "colorThemeConfigBlockType": { + "secondary": "Secundair", + "success": "Succes", + "warning": "Waarschuwing", + "error": "Fout", + "primary": "Primair", + "border": "Border", + "transparent": "Transparant" + }, + "pageThemeConfigBlock": { + "backgroundColor": "Achtergrond kleur", + "backgroundImage": "Achtergrondafbeelding", + "backgroundMode": "Achtergrondmodus" + }, + "typographyThemeConfigBlock": { + "size": "Maat", + "textAlignment": "Uitlijning", + "headingLabel": "Kop {i} (h{i})", + "headingValue": "Kop ", + "color": "Kleur", + "fontFamily": "Lettertype", + "bodyLabel": "Body", + "weight": "Gewicht", + "decoration": "Tekst decoratie" + }, + "resetButton": { + "reset": "Terugzetten naar standaard themawaarde" + }, + "inputThemeConfigBlock": { + "label": "Label", + "input": "Invoer", + "backgroundColor": "Achtergrond kleur", + "textColor": "Kleur tekst", + "borderColor": "Kleur rand", + "borderSize": "Randgrootte", + "borderRadius": "Randradius", + "padding": "Opvulling", + "fontFamily": "Lettertype", + "size": "Lettergrootte", + "weight": "Lettertype gewicht" + }, + "tableThemeConfigBlock": { + "borderColor": "Kleur rand", + "backgroundAlternateColor": "Even rij kleur", + "textColor": "Kleur tekst", + "borderSize": "Randgrootte", + "fontSize": "Lettergrootte", + "table": "Tabel", + "header": "Kop", + "alignment": "Uitlijning", + "cells": "Cellen", + "separators": "Scheiders", + "verticalSeparatorColor": "Verticale kleur", + "verticalSeparatorSize": "Verticale grootte", + "horizontalSeparatorColor": "Horizontale kleur", + "horizontalSeparatorSize": "Horizontale grootte", + "borderRadius": "Randradius", + "padding": "Opvulling", + "size": "Grootte", + "backgroundColor": "Achtergrond kleur", + "fontFamily": "Lettertype", + "fontWeight": "Lettertype gewicht" + }, + "dropdown": { + "empty": "Geen opties beschikbaar" + }, + "abTable": { + "empty": "Er zijn geen items gevonden.", + "loading": "Aan het laden..." + }, + "localBaserowServiceForm": { + "rowIdPlaceholder": "Selecteer een rij ID", + "rowIdLabel": "Rij ID", + "integrationDropdownLabel": "Integratie" + }, + "fieldMappingContext": { + "enableField": "Veld inschakelen", + "disableField": "Veld uitschakelen" + }, + "collectionElementForm": { + "noSchemaPropertyMessage": "Kies een eigenschap in de gegevensbron om te gebruiken als de lijstgegevens van je element.", + "noDataSourceMessage": "Kies een gegevensbron met meerdere rijen om alle resultaten weer te geven, of een gegevensbron met één rij om een eigenschap in deze rij te kiezen.", + "propertyOptionLabel": "Acties van gebruikers" + }, + "imageFieldForm": { + "fieldAltHelp": "Wordt gebruikt door schermlezers en weergegeven als de afbeelding niet kan worden geladen", + "fieldSrcPlaceholder": "Waarde invoeren", + "fieldSrcLabel": "Afbeelding bron", + "fieldAltLabel": "Alt tekst", + "fieldAltPlaceholder": "Waarde invoeren..." + }, + "serviceSchemaPropertySelector": { + "label": "Eigenschap", + "noProperties": "Geen eigenschappen beschikbaar" + }, + "dataSourceDropdown": { + "noDataSources": "Geen gegevensbronnen beschikbaar", + "label": "Gegevensbron", + "shared": "gedeeld", + "pageOnly": "deze pagina", + "noSharedDataSources": "Geen gedeelde gegevensbronnen beschikbaar", + "addNew": "Voeg nieuwe data bron toe" + }, + "recordSelectorElementForm": { + "selectRecordsFrom": "Records selecteren uit", + "optionNameSuffix": "Optie naam achtervoegsel", + "optionNameSuffixPlaceholder": "Voer een achtervoegsel in...", + "optionNameSuffixHelper": "Dit achtervoegsel wordt toegevoegd aan elke optienaam wanneer je de vervolgkeuzelijst opent en helpt om ze te onderscheiden.", + "itemsPerPage": "Items per pagina", + "record": "Record {id}", + "noDataSourceMessage": "Kies een gegevensbron met meerdere rijen om alle resultaten te vermelden.", + "itemsPerPagePlaceholder": "Waarde invoeren...", + "multipleLabel": "Meerdere waarden toestaan" + }, + "dataSourceItemContext": { + "unshareBetweenPages": "Stop delen met andere pagina's", + "shareBetweenPages": "Delen tussen pagina's" + }, + "dataSourceCreateEditModal": { + "sharedWarning": "Deze gegevensbron wordt gedeeld, dus je wijzigingen kunnen invloed hebben op meerdere pagina's.", + "editTitle": "Gegevensbron bewerken", + "createTitle": "Gegevensbron maken" + }, + "propertyOptionForm": { + "searchHeading": "Zoeken", + "filterHeading": "Filter", + "sortHeading": "Sorteren", + "fieldHeading": "Veld", + "noPropertiesAvailable": "Geen velden beschikbaar.", + "optionUnavailable": "Niet beschikbaar", + "formDescription": "Kies op welke eigenschappen in de gegevensbron van dit element externe gebruikers kunnen filteren, sorteren en zoeken." + }, + "dataSourceItem": { + "notConfigured": "Niet geconfigureerd" + }, + "recordSelectorElement": { + "emptyAdhocState": "Geen rijen gevonden die overeenkomen met '{query}'.", + "emptyState": "Geen rijen gevonden." + }, + "common": { + "dateFormatEU": "Europees", + "dateFormatTitle": "Datum formaat", + "dateFormatUS": "VS", + "dateFormatISO": "ISO", + "timeFormatTitle": "Tijdformaat", + "timeFormat24Hour": "24 uur", + "timeFormat12Hour": "12 uur" + }, + "dateTimePickerElementForm": { + "includeTime": "Inclusief tijd", + "invalidDateError": "Ongeldige datum. Controleer of de ingevoerde datum overeenkomt met het opgegeven formaat." + }, + "themeSettings": { + "titleOverview": "Thema" + }, + "pageVisibilitySettingsTypes": { + "pageName": "Zichtbaarheid", + "logInPageWarningTitle": "De login pagina is niet ingesteld", + "logInPagewarningMessage": "Als een anonieme gebruiker deze pagina probeert te openen, wordt hij doorgestuurd naar een inlogpagina. Stel de login pagina in bij de algemene instellingen van de applicatie.", + "logInPageInfoTitle": "Anonieme gebruikers worden omgeleid", + "logInPageInfoMessage": "Anonieme gebruikers die deze pagina proberen te openen, worden doorgestuurd naar de {logInPageName} pagina." + }, + "pageVisibilitySettings": { + "title": "Zichtbaarheid", + "allVisitors": "Alle bezoekers", + "loggedInVisitors": "Aangemelde bezoekers", + "description": "Wie kan deze pagina zien" + }, + "pageEditor": { + "pageNotFound": "Pagina niet gevonden", + "title": "Applicatie bouwer" + }, + "builderLoginPageForm": { + "pageDropdownDescription": "Selecteer de aanmeldpagina waar niet-ingelogde gebruikers naar moeten worden omgeleid als ze een pagina met verboden proberen te openen.", + "pageDropdownLabel": "Login pagina", + "pageDropdownPlaceholder": "Selecteer een pagina" + }, + "multiPageContainerElementForm": { + "pagePosition": "Positie", + "behaviour": "Gedrag", + "display": "Weergave", + "selectAll": "Selecteer alles", + "deselectAll": "Deselecteer alles" + }, + "pageShareType": { + "except": "Geselecteerde pagina's uitsluiten", + "all": "Op alle pagina's", + "only": "Alleen op geselecteerde pagina's" + }, + "fontWeightType": { + "thin": "Dun", + "medium": "Middel", + "light": "Licht", + "extraLight": "Extra licht", + "extraBold": "Extra vet", + "regular": "Normaal", + "bold": "Vet", + "semiBold": "Halfvet", + "black": "Zwart", + "extraBlack": "Extra zwart" + }, + "authProviderWithModal": { + "title": "Bewerk provider: {name}", + "authProviderInError": "Bewerk deze provider om de fout te herstellen." + }, + "queryParamTypes": { + "textName": "Tekst", + "numericName": "Numeriek" + }, + "radiusStyleForm": { + "cornerRadiusLabel": "Hoekradius", + "backgroundRadiusLabel": "Achtergrond", + "borderRadiusLabel": "Rand" + }, + "addElementCategory": { + "suggestedElement": "Voorgestelde elementen", + "baseElement": "Basis elementen", + "layoutElement": "Layout elementen", + "formElement": "Formulier elementen" + }, + "menuElement": { + "spacer": "Spacer", + "missingLinkValue": "Ontbrekende linknaam...", + "missingButtonValue": "Ontbrekende knopnaam...", + "emptyLinkValue": "Lege linknaam...", + "missingValue": "Ontbrekend menu-item", + "separator": "Scheider", + "emptyButtonValue": "Lege knopnaam..." + }, + "menuElementForm": { + "menuItemsLabel": "Menu items", + "addMenuItemLink": "Toevoegen...", + "alignment": "Uitlijning", + "menuItemDefaultName": "Pagina", + "menuItemLabelLabel": "Label", + "menuItemTypeLabel": "Type", + "menuItemTypeItem": "Item", + "menuItemTypeSeparator": "Scheider", + "menuItemVariantLabel": "Variant", + "menuItemAddButton": "Knop", + "eventDescription": "Om acties te configureren voor deze knop, open de events van dit element.", + "noMenuItemsMessage": "Klik 'Toevoegen' om je eerste menu item toe te voegen.", + "menuItemVariantLink": "Link", + "menuItemAddSeparator": "Scheider", + "menuItemSubLinkDefaultName": "Sublink", + "addSubLink": "Sublink toevoegen", + "menuItemVariantButton": "Knop", + "namePlaceholder": "Pagina", + "menuItemAddSpacer": "Spacer", + "menuItemAddLink": "Link" + }, + "simpleContainerElementForm": { + "noConfigurationOptions": "Het container element heeft geen configuratieopties." + }, + "orientations": { + "vertical": "Vertical", + "horizontal": "Horizontaal", + "label": "Oriëntatie" + }, + "ratingElementForm": { + "thumbsUp": "Duimen omhoog", + "maxValue": "Maximum", + "color": "Kleur", + "star": "Ster", + "flag": "Vlag", + "smile": "Lachen", + "heart": "Hart", + "ratingStyle": "Stijl" + }, + "ratingFieldForm": { + "color": "Kleur", + "value": "Waarde", + "maxValue": "Maximale waarde", + "thumbsUp": "Duimen omhoog", + "flag": "Vlag", + "style": "Stijl", + "heart": "Hart", + "star": "Ster" + }, + "linkDecorations": { + "plain": "Gewoon", + "normal": "Normaal" + }, + "textDecorationSelector": { + "stroke": "Doorstreept", + "italic": "Cursief", + "underline": "Onderstrepen", + "uppercase": "Hoofdletters" + }, + "userSourceDropdown": { + "label": "Gebruiker bron", + "addUserSource": "Voeg nieuwe gebruikersbron toe", + "noUserSources": "Geen gebruikersbronnen beschikbaar" + }, + "abFileInput": { + "delete": "Verwijder" + }, + "automationSettingsModal": { + "title": "Werkstroom" + }, + "elementsGuidedTourStep": { + "title": "Elementen toevoegen aan je pagina", + "content": "Elke app heeft componenten nodig! Voeg elementen toe zoals tabellen, formulieren, knoppen en meer om je app tot leven te brengen." + }, + "dataGuidedTourStep": { + "title": "Verbind uw gegevens", + "content": "Koppel hier je Baserow-tabellen om je gegevens dynamisch weer te geven, te filteren en bij te werken in verschillende elementen." + }, + "previewGuidedTourStep": { + "title": "Je controlecentrum", + "content": "Hier configureer je de pagina's van je app. Voeg elementen toe, bekijk het resultaat en structureer je app precies zoals jij wilt." + }, + "devicesGuidedTourStep": { + "title": "Voorbeeld op verschillende apparaten", + "content": "Schakel tussen previews voor desktop, tablet en mobiel om te zien hoe je app eruitziet op verschillende schermformaten. Zorg ervoor dat je ontwerp perfect werkt op alle apparaten!" + }, + "sidePanelGuidedTourStep": { + "title": "Zijpaneel: Elementen aanpassen", + "content": "**Algemeen tabblad** - Configureer het geselecteerde element.\n\n**Tabblad Stijl** - Vulling, marge, randen en meer aanpassen.\n\n**Tabblad Zichtbaarheid** - Bepaal wie dit element kan zien: ingelogde gebruikers, uitgelogde gebruikers of specifieke rollen.\n\n**Tabblad Gebeurtenissen** - Als het element acties ondersteunt, configureer ze dan hier voor dynamische interactiviteit." + }, + "previewPublishGuidedTourStep": { + "title": "Je app bekijken en publiceren", + "content": "Klik op **Preview** om je app privé te testen. Als je klaar bent, klik je op **Publiceer** om de app te delen met het publiek via een domein." + }, + "builderToast": { + "details": "Details", + "defaultTitle": "Onverwachte fout", + "defaultMessage": "Er is een onverwachte fout opgetreden. Probeer het later nog eens.", + "invalidContextTitle": "Ongeldig verzoek", + "invalidContextMessage": "Het verzoek is ongeldig.", + "InvalidContentTitle": "Ongeldig formulier", + "invalidContentMessage": "Een of meer velden bevatten ongeldige waarden.", + "serviceMisconfiguredTitle": "Onvolledige configuratie", + "serviceMisconfiguredMessage": "Controleer de configuratie.", + "errorWorkflowActionDispatch": "De actie \"{naam}\" is mislukt: ", + "errorDataSourceDispatch": "Mislukt bij het laden van \"{name}\" gegevens: " + } } diff --git a/web-frontend/modules/builder/locales/uk.json b/web-frontend/modules/builder/locales/uk.json index 1825552d35..da39fe3b36 100644 --- a/web-frontend/modules/builder/locales/uk.json +++ b/web-frontend/modules/builder/locales/uk.json @@ -60,7 +60,8 @@ "errorStartingSlash": "Шлях повинен починатися з '/'", "errorValidPathCharacters": "Шлях містить недійсні символи", "errorUniquePathParams": "Параметри шляху мають бути унікальними.", - "errorUniqueValidQueryParams": "Назви параметрів запиту мають бути унікальними та дійсними." + "errorUniqueValidQueryParams": "Назви параметрів запиту мають бути унікальними та дійсними.", + "errorNameNotUniqueDescription": "Будь ласка, введіть унікальну назву сторінки" }, "pageHeaderItemTypes": { "labelElements": "Елементи", @@ -493,7 +494,8 @@ "numericName": "Числовий" }, "pageEditor": { - "pageNotFound": "Сторінку не знайдено" + "pageNotFound": "Сторінку не знайдено", + "title": "Створення застосунків" }, "publicPage": { "siteNotFound": "Сайт не знайдено", @@ -505,8 +507,8 @@ }, "integrationSettings": { "title": "Інтеграції", - "noIntegrationMessage": "Ви ще не створили жодних інтеграцій. Їх можна створити, додавши джерело даних, дію або автентифікацію користувачів.", - "integrationMessage": "Ви можете створити нові інтеграції, додавши джерело даних, дію або автентифікацію користувачів." + "noIntegrationMessage": "Ви ще не створили жодних інтеграцій. Їх можна створити, додавши джерело даних, дію або автентифікацію користувача.", + "integrationMessage": "Ви можете створювати нові інтеграції, додаючи джерело даних, дію або автентифікацію користувача." }, "dataSourceForm": { "namePlaceholder": "Назва джерела", @@ -960,7 +962,10 @@ "errorFetchingRolesTitle": "Не вдалося отримати ролі користувачів", "errorFetchingRolesMessage": "Виникла проблема під час отримання ролей користувачів.", "visibilityCondition": "Умова видимості", - "visibilityConditionPlaceholder": "Умова..." + "visibilityConditionPlaceholder": "Умова...", + "warningMessage": "Перегляньте {link}, щоб дізнатися більше про те, як ми забезпечуємо безпеку даних.", + "documentationLink": "документація", + "visibilityConditionHelper": "Якщо результат цієї формули істинний, і вибір відвідувача вище також істинний, елемент буде видимим. Ця умова впливає лише на видимість елемента. Щоб замість цього виключити дані з відповіді сервера, скористайтеся опцією фільтрації за роллю користувача вище." }, "userDataProviderType": { "isAuthenticated": "Автентифікований", @@ -986,7 +991,8 @@ }, "customStyle": { "themeOverrides": "Перевизначення теми", - "configureThemeOverrides": "Налаштуйте перевизначення теми для цього елемента" + "configureThemeOverrides": "Налаштуйте перевизначення теми для цього елемента", + "backToElement": "Повернутися до налаштування елемента" }, "serviceSchemaPropertySelector": { "label": "Властивість", @@ -1002,7 +1008,8 @@ "noDataSources": "Немає доступних джерел даних", "noSharedDataSources": "Немає доступних спільних джерел даних", "shared": "спільне", - "pageOnly": "ця сторінка" + "pageOnly": "ця сторінка", + "addNew": "Додати нове джерело даних" }, "multiPageContainerElementForm": { "pagePosition": "Позиція", @@ -1061,7 +1068,8 @@ "content": "Зв'яжіть ваші таблиці Baserow тут, щоб відображати, фільтрувати та оновлювати дані динамічно в різних елементах." }, "previewGuidedTourStep": { - "title": "Ваш центр керування" + "title": "Ваш центр керування", + "content": "Тут ви налаштовуєте сторінки вашого застосунку. Додавайте елементи, переглядайте результат і структуруйте застосунок саме так, як вам потрібно." }, "devicesGuidedTourStep": { "title": "Попередній перегляд на різних пристроях", diff --git a/web-frontend/modules/builder/pages/publicPage.vue b/web-frontend/modules/builder/pages/publicPage.vue index 2ac0e54d9a..0a89c0f117 100644 --- a/web-frontend/modules/builder/pages/publicPage.vue +++ b/web-frontend/modules/builder/pages/publicPage.vue @@ -1,47 +1,30 @@ diff --git a/web-frontend/modules/core/components/FormInput.vue b/web-frontend/modules/core/components/FormInput.vue index d2840c2d25..ea1d4f78a9 100644 --- a/web-frontend/modules/core/components/FormInput.vue +++ b/web-frontend/modules/core/components/FormInput.vue @@ -154,8 +154,12 @@ function focus() { input.value?.focus() } +function blur() { + input.value?.blur() +} + const slots = useSlots() const hasSuffixSlot = computed(() => !!slots.suffix) -defineExpose({ focus }) +defineExpose({ focus, blur }) diff --git a/web-frontend/modules/core/components/Highlight.vue b/web-frontend/modules/core/components/Highlight.vue index a3df313d8b..33ac318114 100644 --- a/web-frontend/modules/core/components/Highlight.vue +++ b/web-frontend/modules/core/components/Highlight.vue @@ -58,7 +58,7 @@ export default { if (!this.resizeObserver) { return } - this.resizeObserver.unobserve(parent) + this.resizeObserver.disconnect() this.clearScrollEvents() }, methods: { diff --git a/web-frontend/modules/core/components/crudTable/ExpandOnOverflowList.vue b/web-frontend/modules/core/components/crudTable/ExpandOnOverflowList.vue index 10589f1666..d80f65d29c 100644 --- a/web-frontend/modules/core/components/crudTable/ExpandOnOverflowList.vue +++ b/web-frontend/modules/core/components/crudTable/ExpandOnOverflowList.vue @@ -88,7 +88,7 @@ export default { this.$el.resizeObserver.observe(this.$el) }, beforeUnmount() { - this.$el.resizeObserver.unobserve(this.$el) + this.$el.resizeObserver.disconnect() }, created() { this.recalculateHiddenRecords() diff --git a/web-frontend/modules/core/components/workspace/WorkspaceContext.vue b/web-frontend/modules/core/components/workspace/WorkspaceContext.vue index 1363965c21..5d89272970 100644 --- a/web-frontend/modules/core/components/workspace/WorkspaceContext.vue +++ b/web-frontend/modules/core/components/workspace/WorkspaceContext.vue @@ -209,7 +209,6 @@ export default { await pageFinished() await nextTick() } - this.hide() } catch (error) { notifyIf(error, 'application') } diff --git a/web-frontend/modules/core/directives/autoOverflowScroll.js b/web-frontend/modules/core/directives/autoOverflowScroll.js index a109dca8a1..ecc12e6698 100644 --- a/web-frontend/modules/core/directives/autoOverflowScroll.js +++ b/web-frontend/modules/core/directives/autoOverflowScroll.js @@ -51,7 +51,7 @@ export default { el.autoOverflowScrollHeightObserverBinded = true }, removeListeners(el) { - el.autoOverflowScrollHeightObserver?.unobserve(el) + el.autoOverflowScrollHeightObserver?.disconnect() el.autoOverflowScrollHeightObserverBinded = false }, } diff --git a/web-frontend/modules/core/locales/es.json b/web-frontend/modules/core/locales/es.json index 69a74a207c..81095f3a07 100644 --- a/web-frontend/modules/core/locales/es.json +++ b/web-frontend/modules/core/locales/es.json @@ -490,7 +490,7 @@ "minutesAgo": "Hace 0 minutos | Hace 1 minuto | Hace {n} minutos", "hoursAgo": "Hace 0 horas | Hace 1 hora | Hace {n} horas", "secondsAgo": "Ahora mismo | Hace 1 segundo | Hace {n} segundos", - "lessThanMinuteAgo": "Hace menos de un minuto", + "lessThanMinuteAgo": "hace menos de un minuto", "justNow": "ahora mismo" }, "InstallTemplateJobType": { @@ -581,7 +581,7 @@ }, "failedConnectingToast": { "title": "Fallido", - "content": "La conexión con el servidor ha fallado. Por favor, actualiza la página.", + "content": "No se pudieron restablecer las actualizaciones en tiempo real. Por favor, actualiza para continuar.", "action": "Refrescar página" }, "userSessionExpiredToast": { @@ -670,7 +670,7 @@ "errorWrongFileTypeMessage": "No se puede cargar un archivo de tipo {tipo}" }, "connectingToast": { - "content": "Reconectando con el servidor.", + "content": "Intentando restablecer actualizaciones en tiempo real.", "title": "Reconectando" }, "copyingToast": { @@ -769,7 +769,7 @@ "openRouterModelsLabel": "Modelos habilitados", "openRouterModelsDescription": "Proporciona una lista de [OpenRouter models](https://openrouter.ai/models) separados por comas que pueden ser utilizados en Baserow. (por ejemplo, `openai/gpt-4o,anthropic/claude-3-haiku`)", "openaiBaseUrl": "URL base", - "openaiBaseUrlDescription": "Utiliza la URL base predeterminada de OpenAI de forma predeterminada si está vacía. Opcionalmente puede cambiarse a https://eu.api.openai.com/v1, https://.openai.azure.com, o cualquier otra API compatible con OpenAI." + "openaiBaseUrlDescription": "Utiliza la URL base predeterminada de OpenAI de forma predeterminada si está vacía. Opcionalmente puede cambiarse a https://eu.api.openai.com/v1, https://<your-resource-name>.openai.azure.com, o cualquier otra API compatible con OpenAI." }, "generativeAIWorkspaceSettings": { "title": "Configuración de la IA generativa", @@ -854,7 +854,18 @@ "roleOrJob": "Función o puesto...", "people": "¿Cuántas personas hay en tu equipo?", "country": "País", - "share": "Estoy de acuerdo en compartir esto con el equipo de Baserow" + "share": "Estoy de acuerdo en compartir esto con el equipo de Baserow", + "how": "¿Cómo te enteraste de nosotros?", + "howReviewSite": "Sitio de reseñas / mercado", + "howSearchEngine": "Motor de búsqueda (Google/Bing)", + "howFriend": "De un amigo", + "howColleague": "De un colega", + "howEvent": "Evento o seminario web", + "howOther": "Otro", + "howSocialMedia": "Redes sociales", + "howOnlineAds": "Anuncios en línea", + "howContent": "Contenido (blog/boletín/video)", + "howSales": "Prospección de ventas" }, "colorInput": { "default": "Por defecto" @@ -1051,7 +1062,8 @@ "tables": "Tablas", "fields": "Campos", "rows": "Filas" - } + }, + "empty": "(vacío)" }, "formulaInputContext": { "search": "Buscar", @@ -1060,9 +1072,11 @@ "operators": "Operadores", "useRegularInputModalTitle": "¿Usas entrada regular para este campo?", "useRegularInput": "Usa entrada regular", - "useAdvancedInput": "Usa entrada avanzada", - "useAdvancedInputModalTitle": "¿Usas una entrada avanzada para este campo?", - "modalMessage": "El contenido de tu campo será borrado y no será posible recuperarlo." + "useAdvancedInput": "Cambiar al modo experto", + "useAdvancedInputModalTitle": "¿Cambiar al modo experto?", + "modalMessage": "Cambiar a otro modo borrará la fórmula actual. ¿Estás seguro de que quieres continuar?", + "useSimpleInput": "Cambiar al modo básico", + "useSimpleInputModalTitle": "¿Cambiar al modo básico?" }, "action": { "cancel": "Cancelar", @@ -1073,15 +1087,15 @@ "continue": "Continuar" }, "twoFactorAuthSettings": { - "title": "Autenticación de dos factores (2FA)", - "loadingError": "No se pudo cargar la configuración de autenticación de dos factores (2FA)." + "title": "Autenticación de dos factores", + "loadingError": "No se pudo cargar la configuración de autenticación de dos factores." }, "disableTwoFactorAuth": { - "title": "¿Estás seguro de que quieres desactivar la autenticación de dos factores (2FA)?", + "title": "¿Estás seguro de que quieres desactivar la autenticación de dos factores?", "description": "Tu cuenta perderá una capa adicional de seguridad. Si alguien conoce tu contraseña, tendría la posibilidad de entrar en tu cuenta.", "cancel": "Déjalo encendido", "disable": "Desactiva", - "successTitle": "Se ha desactivado la autenticación de dos factores (2FA)", + "successTitle": "Se ha desactivado la autenticación de dos factores", "errorWrongPasswordTitle": "Contraseña incorrecta", "errorWrongPasswordMessage": "La contraseña introducida no coincide con tu contraseña." }, @@ -1095,20 +1109,20 @@ }, "totpAuthType": { "name": "Aplicación de autenticación", - "description": "Usa una aplicación para obtener códigos de autenticación de dos factores (2FA). Recomendamos usar aplicaciones como Google Authenticator, Authy y Microsoft Authenticator.", - "enabledDescription": "Recibirás los códigos de verificación a través de una aplicación de autenticación. Para configurar otra aplicación o método diferente, simplemente desactiva la autenticación en dos factores (2FA) y configúralo de nuevo.", + "description": "Usa una aplicación para obtener códigos de autenticación de dos factores. Recomendamos usar aplicaciones como Google Authenticator, Authy y Microsoft Authenticator.", + "enabledDescription": "Recibirás los códigos de verificación a través de una aplicación de autenticación. Para configurar otra aplicación o método diferente, simplemente desactiva la autenticación de dos factores y configúralo de nuevo.", "sideLabel": "Recomendado" }, "twoFactorEnabled": { "enabled": "Activado", - "disable": "Deshabilita la autenticación de dos factores (2FA)" + "disable": "Deshabilita la autenticación de dos factores" }, "totpLogin": { "backupCodesTitle": "Ingresa el código de respaldo", "backupCodesDescription": "Inicia sesión con tu código de respaldo de un solo uso.", "authenticate": "Autenticar", "goBack": "Regresar", - "totpTitle": "Autenticación de dos factores (2FA)", + "totpTitle": "Autenticación de dos factores", "totpDescription": "Introduce el código de tu aplicación de autenticación.", "verify": "Verifica", "useBackupCode": "Usa el código de respaldo", @@ -1181,11 +1195,11 @@ "methodsOptionExcludeGet": "Excluir GET" }, "twoFactorAuthEmpty": { - "title": "Aún no has activado 2FA", + "title": "Aún no has activado la autenticación de dos factores", "description": "Añade una capa extra de seguridad a tu cuenta.", - "enable": "Activar 2FA", - "notAllowedTitle": "2FA no activado", - "notAllowedDescription": "Añadir 2FA solo es posible en cuentas basadas en contraseña." + "enable": "Activar la autenticación de dos factores", + "notAllowedTitle": "Autenticación de dos factores no activada", + "notAllowedDescription": "Añadir la autenticación de dos factores sólo es posible en cuentas basadas en contraseña." }, "nodeHelpTooltip": { "exampleLabel": "Ejemplo", @@ -1203,5 +1217,40 @@ "verificationFailedDescription": "El código ingresado no es válido.", "provisioningFailed": "El aprovisionamiento falló", "checkSuccess": "Se habilitó correctamente la autenticación de dos factores" + }, + "emailSettings": { + "successDescription": "Hemos enviado un correo de confirmación a tu nueva dirección. Por favor, revisa tu bandeja de entrada y haz clic en el enlace para completar el cambio de correo.", + "errorEmailExistsMessage": "No se pudo solicitar el cambio de correo electrónico porque ya existe una cuenta con esta dirección de correo electrónico.", + "errorNotAllowedMessage": "No puedes cambiar tu dirección de correo electrónico porque tu cuenta usa autenticación de inicio de sesión único (SSO).", + "errorInvalidPasswordMessage": "No se pudo solicitar el cambio de correo electrónico porque tu contraseña es incorrecta.", + "errorNotAllowedTitle": "Cambio de correo no permitido", + "title": "Cambiar dirección de correo electrónico", + "successTitle": "Correo electrónico de confirmación enviado", + "currentEmailLabel": "Dirección de correo electrónico actual", + "newEmailLabel": "Nueva dirección de correo electrónico", + "submitButton": "Enviar correo electrónico de confirmación", + "errorEmailExistsTitle": "El correo electrónico ya existe", + "passwordLabel": "Contraseña actual", + "errorInvalidPasswordTitle": "Contraseña inválida" + }, + "changeEmail": { + "message": "Tu dirección de correo electrónico ha sido cambiada con éxito. Ahora puedes iniciar sesión en Baserow usando tu nueva dirección de correo electrónico.", + "errorLinkExpiredMessage": "El enlace de cambio de correo ha expirado. Por favor, solicita uno nuevo desde la configuración de tu cuenta.", + "errorEmailExistsMessage": "No se pudo cambiar la dirección de correo porque ya existe una cuenta con esa dirección de correo.", + "errorInvalidLinkMessage": "No se pudo cambiar la dirección de correo electrónico porque el enlace es inválido.", + "errorEmailAlreadyChangedMessage": "La dirección de correo electrónico ya ha sido cambiada a la dirección solicitada.", + "title": "Confirmar cambio de correo electrónico", + "submit": "Confirmar cambio de correo electrónico", + "changed": "Dirección de correo electrónico cambiada", + "errorEmailExistsTitle": "El correo electrónico ya existe", + "errorEmailAlreadyChangedTitle": "El correo electrónico ya ha sido cambiado", + "errorInvalidLinkTitle": "Enlace inválido", + "errorLinkExpiredTitle": "Enlace expirado" + }, + "adminUsers": { + "title": "Usuarios" + }, + "adminWorkspaces": { + "title": "Espacios de trabajo" } } diff --git a/web-frontend/modules/core/locales/fr.json b/web-frontend/modules/core/locales/fr.json index d3ac06ba1d..0ec6a833b6 100644 --- a/web-frontend/modules/core/locales/fr.json +++ b/web-frontend/modules/core/locales/fr.json @@ -1,1207 +1,1256 @@ { - "paginator": { - "page": "Page", - "of": "sur {pages}" - }, - "copied": { - "label": "Copié !" - }, - "sidebarApplication": { - "renameApplication": "Renommer {type}", - "viewTrash": "Voir la corbeille", - "deleteApplication": "Supprimer {type}", - "duplicateApplication": "Dupliquer {type}", - "snapshots": "Sauvegardes", - "rename": "Renommer", - "duplicate": "Dupliquer", - "delete": "Supprimer" - }, - "sidebar": { - "createWorkspace": "Créer un projet", - "inviteOthers": "Envoyer une invitation", - "logoff": "Se déconnecter", - "errorNoWorkspace": "Vous n'avez aucun projet.", - "admin": "Administration", - "dashboard": "Accueil", - "trash": "Corbeille", - "settings": "Mon compte", - "members": "Membres", - "notifications": "Notifications", - "licenses": "Licences", - "addNewWorkspace": "Ajouter un nouveau projet", - "home": "Accueil", - "adminTools": "Administration", - "adminSettings": "Paramètres", - "general": "Général", - "people": "Utilisateurs" - }, - "accountForm": { - "nameLabel": "Votre nom", - "languageLabel": "Langue de l'interface" - }, - "accountSettings": { - "title": "Informations personnelles", - "changedTitle": "Mise à jour", - "changedDescription": "Les informations de votre compte utilisateur ont été mises à jour.", - "submitButton": "Modifier les informations" - }, - "settingsModal": { - "title": "Mon compte" - }, - "passwordSettings": { - "title": "Mise à jour du mot de passe", - "changedTitle": "Mot de passe mis à jour", - "changedDescription": "Votre mot de passe a été mis à jour. La prochaine fois que vous souhaitez vous connecter, vous devrez utiliser le nouveau mot de passe.", - "oldPasswordLabel": "Ancien mot de passe", - "oldPasswordRequiredError": "L'ancien mot de passe est obligatoire.", - "newPasswordLabel": "Nouveau mot de passe", - "repeatNewPasswordLabel": "Répétez le mot de passe", - "repeatNewPasswordMatchError": "Les deux mots de passe ne correspondent pas.", - "submitButton": "Mettre à jour", - "errorInvalidOldPasswordTitle": "Ancien mot de passe invalide", - "errorInvalidOldPasswordMessage": "Impossible de mettre à jour votre mot de passe car votre ancien mot de passe est incorrect." - }, - "error": { - "alreadyExistsTitle": "L'utilisateur existe déjà", - "alreadyExistsMessage": "Un utilisateur avec la même adresse électronique existe déjà.", - "passwordRequired": "Le mot de passe est obligatoire.", - "invalidEmail": "Veuillez entrer une adresse électronique valide.", - "disabledAccountTitle": "Compte désactivé", - "disabledAccountMessage": "Ce compte utilisateur est désactivé.", - "incorrectCredentialTitle": "Identifiants incorrects", - "incorrectCredentialMessage": "L'adresse électronique et/ou le mot de passe sont incorrects.", - "inputRequired": "Ce champ est obligatoire.", - "disabledPasswordProviderTitle": "L'authentification par mot de passe est désactivée.", - "disabledPasswordProviderMessage": "Veuillez utiliser un autre fournisseur d'authentification." - }, - "field": { - "language": "Langue", - "emailAddress": "Adresse électronique", - "name": "Votre nom", - "password": "Mot de passe", - "passwordRepeat": "Répétez votre mot de passe" - }, - "invitationTitle": "Invitation", - "invitationMessage": "{invitedBy} vous a invité·e à rejoindre le projet {workspace}.", - "workspaceForm": { - "nameLabel": "Nom" - }, - "leaveWorkspaceModal": { - "title": "Quitter {workspace}", - "message": "Êtes-vous sûr·e de vouloir quitter le projet {workspace} ? Vous ne serez plus en mesure d'accéder aux applications associées et si vous souhaitez y accéder de nouveau, l'un des administrateurs du projet devra vous envoyer une nouvelle invitation. Si vous quittez un projet, celui-ci ne sera pas supprimé et les autres membres y auront toujours accès. Il n'est pas possible de quitter un projet si vous êtes le dernier administrateur car il se retrouverait alors sans propriétaire.", - "leave": "Quitter le projet" - }, - "dashboardWorkspace": { - "showMembers": "Membres", - "createApplication": "Créer" - }, - "workspaceInvitation": { - "title": "Invitation", - "message": "{by} vous a invité à rejoindre le projet {workspace}.", - "reject": "Refuser", - "accept": "Accepter" - }, - "workspaceMemberModal": { - "membersModalTitle": "Membres de {workspace}", - "userDescription": "{user} - membre depuis {since}", - "invitationDescription": "invité·e depuis {since}", - "sendInvite": "Envoyer l'invitation", - "userAlreadyInWorkspaceTitle": "L'utilisateur est déjà dans le projet.", - "userAlreadyInWorkspaceText": "Il n'est pas possible d'envoyer une invitation à un utilisateur déjà présent dans le projet.", - "userDescriptionPendingDeletion": "{user} - en attente de suppression" - }, - "workspaceInviteForm": { - "invitationFormTitle": "Inviter par email", - "optionalMessagePlaceholder": "Message optionnel", - "errorInvalidEmail": "Veuillez saisir une adresse email valide.", - "errorTooLongMessage": "Les messages sont limités à {amount} caractères.", - "additionalRoles": "Autres rôles" - }, - "workspacesContext": { - "search": "Rechercher", - "noResults": "Aucun résultat", - "createWorkspace": "Créer un projet" - }, - "workspaceContext": { - "renameWorkspace": "Renommer le projet", - "members": "Membres", - "viewTrash": "Voir la corbeille", - "leaveWorkspace": "Quitter le projet", - "deleteWorkspace": "Supprimer le projet", - "auditLog": "Journal d'audit", - "settings": "Paramètres", - "importWorkspace": "Importer", - "exportWorkspace": "Exporter" - }, - "createWorkspaceModal": { - "createNew": "Nouveau projet", - "add": "Ajouter le projet", - "defaultName": "Projet sans nom", - "permissionDeniedTitle": "Permission refusée", - "permissionDeniedBody": "Vous n'avez pas les permissions nécessaires pour créer un nouveau projet." - }, - "templateCategories": { - "search": "Chercher des modèles", - "title": "Modèles" - }, - "templateHeader": { - "use": "Utiliser ce modèle" - }, - "trashSidebar": { - "title": "Corbeille", - "unnamedWorkspace": "Projet sans nom {id}", - "workspaces": "Projets" - }, - "trashContents": { - "message": "Restaurer les éléments supprimés durant les {duration} derniers", - "empty": "Rien n'a été supprimé durant les trois derniers jours.", - "emptyButtonTrashed": "Supprimer {type} définitivement", - "emptyButtonNotTrashed": "Vider la corbeille pour {type}", - "unnamed": "Sans nom {type} {id}" - }, - "trashEmptyModal": { - "titleIsTrashed": "Êtes-vous sûr·e de vouloir supprimer définitivement {name} ?", - "titleIsNotTrashed": "Êtes-vous sûr·e de vouloir vider la corbeille de {name} ?", - "messageIsTrashed": "Cette action va tout supprimer définitivement ainsi que tout son contenu. Vous ne serez plus en mesure de le restaurer.", - "messageIsNotTrashed": "Cette action va supprimer définitivement les éléments listés. Vous ne serez plus en mesure de les restaurer.", - "buttonIsTrashed": "Supprimer définitivement", - "buttonIsNotTrashed": "Vider" - }, - "trashEntry": { - "deletedUser": "Un utilisateur supprimé", - "fromParent": "provenant de {parent}", - "name": "{user} a supprimé {type} {title} {parent}", - "restore": "Restaurer", - "unnamed": "Sans nom {type} {id}", - "andMore": "... et {count} de plus" - }, - "trashModal": { - "emptyTitle": "Aucun projet trouvé", - "emptyMessage": "Vous n'êtes membre d'aucun projet. Les applications comme les bases de données doivent appartenir à un projet, par conséquent vous devez créer un projet afin d'être capable d'en créer.", - "emptyMessageWithoutCreatePermission": "Vous n'êtes membre d'aucun projet. Les applications comme les bases de données doivent appartenir à un projet. Pour les créer, vous devez donc d'abord être invité à un projet par un administrateur." - }, - "uploadViaURLUserFileUpload": { - "title": "À partir d'une URL", - "urlLabel": "URL", - "urlError": "Une URL valide doit être renseignée." - }, - "userFilesModal": { - "title": "En provenance" - }, - "uploadFileUserFileUpload": { - "title": "Envoyer un fichier", - "drop": "Déposez ici", - "clickOrDrop": "Cliquez ou déposez votre fichier ici", - "retry": "Recommencer" - }, - "createApplicationContext": { - "fromTemplate": "À partir d'un modèle", - "fromTemplateDesc": "Démarrer rapidement avec l'un de nos modèles recommandés", - "tableDesc": "Créez un nouvel espace pour gérer des données dans votre base.", - "table": "Table", - "importWorkspaceDesc": "Importer des données existantes à partir d'une instance Baserow.", - "importWorkspace": "Importer" - }, - "applicationForm": { - "nameLabel": "Nom", - "namePlaceholder": "Saisir un nom..." - }, - "connectingNotification": { - "title": "Reconnexion en cours", - "content": "Reconnexion avec le serveur en cours." - }, - "failedConnectingNotification": { - "title": "Échec de connexion", - "content": "La connexion avec le serveur a été interrompue. Merci de rafraîchir la page.", - "action": "Rafraîchir la page" - }, - "restoreNotification": { - "restore": "Restaurer l'élément {type} supprimé" - }, - "errorLayout": { - "notFound": "La page que vous essayez de consulter n'a pas été trouvée. L'URL est incorrecte ou vous n'avez pas les permissions nécessaires pour voir cette page.", - "error": "Une erreur est survenue lors du chargement de la page. Nos développeurs ont été notifiés de ce problème. Veuillez essayer de recharger la page ou retournez à l'accueil.", - "backDashboard": "Retourner à l'accueil", - "backLogin": "Retourner à l'identification", - "wrong": "Une erreur est survenue", - "refresh": "Actualiser la page" - }, - "dashboard": { - "title": "Statistiques", - "alertTitle": "Soutenez-nous !", - "alertText": "En partageant Baserow, vous nous aidez à améliorer le produit et à le rendre plus utile pour vous.", - "tweetContent": "Découvrez {'@'}baserow, une base de données no-code libre, une alternative à Airtable !", - "redditTitle": "Baserow - Une base de données no-code libre", - "noWorkspaceTitle": "Aucun projet", - "noWorkspaceText": "Vous n'êtes membre d'aucun projet. Les applications telles que les bases de données doivent appartenir à un projet, donc pour pouvoir en créer, vous devez créer au moins un projet.", - "createWorkspace": "Créer un projet", - "becomeGithubSponsor": "Devenir sponsor Github", - "starOnGitlab": "Nous aimer sur GitLab", - "shareOnTwitter": "Tweeter à propos de Baserow", - "shareOnReddit": "Partager sur Reddit", - "shareOnFacebook": "Partager sur Facebook", - "shareOnLinkedIn": "Partager sur LinkedIn", - "noWorkspaceTextWithoutCreatePermission": "Vous n'êtes membre d'aucun projet. Les applications comme les bases de données doivent appartenir à un projet. Pour les créer, vous devez donc d'abord être invité à un projet par un administrateur.", - "suggestedTemplates": "Modèles suggérés", - "resources": "Ressources", - "knowledgeBase": "Base de connaissances", - "knowledgeBaseMessage": "Trouvez les réponses à toutes vos questions", - "tutorials": "Tutoriels", - "tutorialsMessage": "Découvrez le potentiel de Baserow", - "apiDocumentation": "Documentation de l'API", - "apiDocumentationMessage": "En savoir plus sur notre code", - "emptyWorkspace": "Ce projet est vide", - "emptyWorkspaceMessage": "Pour commencer, créez une nouvelle base de données ou une nouvelle application.", - "addNew": "Ajouter...", - "noWorkspace": "Aucun projet", - "noWorkspaceDescription": "Pour commencer, créez un nouveau projet", - "starOnGitHub": "Suivez-nous sur GitHub" - }, - "login": { - "title": "Bienvenue", - "forgotPassword": "Oublié ?", - "signUp": "S'inscrire", - "emailPlaceholder": "Entrez votre adresse e-mail..", - "passwordPlaceholder": "Entrez votre mot de passe..", - "signUpText": "Nouveau sur Baserow ?", - "displayPasswordLogin": "Connectez-vous en utilisant votre e-mail et votre mot de passe", - "redirecting": "Redirection vers le service d'authentification..." - }, - "resetPassword": { - "title": "Nouveau mot de passe", - "newPassword": "Nouveau mot de passe", - "repeatNewPassword": "Répétez le mot de passe", - "submit": "Mettre à jour", - "changed": "Mot de passe mis à jour", - "errorInvalidLinkTitle": "Lien invalide", - "errorInvalidLinkMessage": "Il n'est pas possible de réinitialiser le mot de passe car le lien est invalide.", - "errorLinkExpiredTitle": "Lien expiré", - "errorLinkExpiredMessage": "Le lien de réinitialisation de mot de passe a expiré, Veuillez en demander un nouveau.", - "disabled": "La réinitialisation du mot de passe est désactivée", - "disabledMessage": "Il n’est pas possible de réinitialiser le mot de passe car cette fonctionnalité a été désactivé.", - "message": "Vous pouvez maintenant vous connecter à Baserow en utilisant votre nouveau mot de passe." - }, - "signup": { - "headTitle": "Créer un compte", - "title": "Création de compte", - "disabled": "Création de compte désactivée", - "disabledMessage": "Vous ne pouvez pas créer de compte car la création de compte a été désactivée.", - "requireFirstUser": "Bienvenue sur Baserow !", - "requireFirstUserMessage": "Veuillez remplir le formulaire ci-dessous afin de créer le compte administrateur.", - "login": "Login", - "emailPlaceholder": "Entrez votre adresse e-mail..", - "namePlaceholder": "Entrez votre nom..", - "passwordPlaceholder": "Entrez votre mot de passe..", - "passwordRepeatPlaceholder": "Confirmez votre mot de passe..", - "loginText": "Vous avez déjà un compte ?", - "terms": "Conditions d'utilisation", - "agreeTerms": "En créant un compte, vous acceptez : {0} {1} {2}", - "privacyPolicy": "Politique de confidentialité" - }, - "forgotPassword": { - "title": "Mot de passe oublié", - "message": "Veuillez saisir votre adresse et nous vous enverrons un lien pour réinitialiser votre mot de passe.", - "submit": "Envoyer le lien", - "confirmation": "Nous avons envoyé un courriel à {email}, qui contient un lien pour réinitialiser votre mot de passe Baserow.", - "disabled": "Mot de passe oublié désactivé", - "disabledMessage": "Vous ne pouvez pas réinitialiser votre mot de passe car la réinitialisation de mot de passe a été désactivée.", - "loginText": "Vous avez déjà un compte et un mot de passe ?", - "confirmationTitle": "Vérifiez votre adresse courriel", - "goBack": "Retour" - }, - "settings": { - "settingsTitle": "Paramètres", - "baserowInstanceId": "Identifiant de l'instance de Baserow", - "instanceIdDescription": "Cet identifiant permet de désigner de manière unique votre instance de Baserow.", - "accountRestrictions": "Restriction de création de comptes", - "settingAllowResetPasswordName": "Activer la réinitialisation du mot de passe", - "settingAllowResetPasswordDescription": "Par défaut, les utilisateurs peuvent demander un lien de réinitialisation de leur mot de passe.", - "settingAllowResetPasswordWarning": "Veuillez noter que vous vous bloquez également l’accès et que l'accès ne pourra pas être rétabli si vous avait oublié votre mot de passe.", - "settingAllowNewAccountsName": "Autoriser la création de compte", - "settingAllowNewAccountsDescription": "Par défaut, tout les visiteurs peuvent créer un compte sur votre instance de Baserow.", - "enabled": "Autoriser", - "settingAllowSignupsViaWorkspaceInvitationsName": "Autoriser la création de compte sur invitation", - "settingAllowSignupsViaWorkspaceInvitationDescription": "Cette option permet aux utilisateurs invités par d'autres de créer des comptes même si la création de compte à été désactivée de manière globale.", - "userDeletionGraceDelay": "Suppression d'utilisateurs", - "settingUserDeletionGraceDelay": "Délai de grâce avant suppression", - "invalidAccountDeletionGraceDelay": "Cette valeur est obligatoire et doit être un nombre entier positif inférieur à 32000", - "settingUserDeletionGraceDelayDescription": "Il s'agit du nombre de jours sans connexion après lequel un compte planifié pour être supprimé est définitivement supprimé.", - "settingAllowNonStaffCreateWorkspaceOperation": "Autoriser tout le monde à créer de nouveaux projets", - "settingAllowNonStaffCreateWorkspaceOperationDescription": "Par défaut, tout le monde peut créer de nouveaux projets. Désactivez cette option pour permettre uniquement aux collaborateurs de créer de nouveaux projets.", - "settingAllowNonStaffCreateWorkspaceOperationWarning": "Un projet sera automatiquement créé pour les nouveaux utilisateurs s'ils sont administrateurs.", - "settingTrackWorkspaceUsage": "Suivi de l'utilisation du projet", - "settingTrackWorkspaceUsageDescription": "Active un travail nocturne qui compte l'utilisation des lignes et des fichiers par projet, affiché sur la page d'administration du projet premium.", - "maintenance": "Maintenance", - "emailVerificationDescription": "Indique si les adresses électroniques doivent être vérifiées.", - "emailVerificationNoVerification": "Pas de vérification", - "emailVerificationRecommended": "Recommandée", - "emailVerificationEnforced": "Obligatoire", - "userSettings": "Utilisateur", - "emailVerification": "Vérification de l'adresse électronique", - "baserowVersion": "Version de Baserow", - "baserowVersionDescription": "Le numéro de version de cette instance.", - "settingsVerifyImportSignature": "Vérifier la signature de l'importation", - "settingsVerifyImportSignatureDescription": "Lorsqu'elle est activée, la signature des données importées est vérifiée afin de s'assurer que les données n'ont pas été altérées." - }, - "copyingNotification": { - "title": "Copie en cours...", - "content": "Préparation des données" - }, - "undoRedoNotification": { - "undoingTitle": "Annulation en cours...", - "undoingText": "Annuler votre action", - "undoneTitle": "Annulée", - "undoneText": "Cette action est annulée", - "noMoreUndo": "Plus d'action à annuler", - "skippingUndoDueToError": "L'annulation a échoué en raison d'une erreur inconnue, celle-ci est ignorée.", - "redoingTitle": "En cours de rétablissement...", - "redoingText": "Rétablir votre action", - "redoneTitle": "Rétablie", - "redoneText": "Cette action est rétablie", - "noMoreRedo": "Plus d'action à rétablir", - "skippingRedoDueToError": "Le rétablissement à échoué en raison d'une erreur inconnue. Celui-ci est ignoré.", - "failed": "Échec" - }, - "AuthorizationErrorNotification": { - "content": "Vous ne semblez pas avoir la permission de visualiser cette ressource.", - "action": "Rafraîchir la page", - "title": "Erreur d’autorisation" - }, - "formSidebar": { - "actions": { - "addAll": "Ajouter tout", - "removeAll": "Enlever tout", - "addField": "Ajouter un champ" - }, - "fieldsDescription": "Tous les champs sont dans le formulaire.", - "prefillInfoLink": "Pré-remplir les valeurs dynamiquement", - "modal": { - "title": "Pré-remplir ou masquer les champs dynamiquement", - "descriptionPartOne": "Les formulaires peuvent être préremplis afin d'aider l'utilisateur à remplir le formulaire plus rapidement.", - "descriptionPartTwo": "Tous les champs qui sont disponibles dans le formulaire peuvent être pré-remplis.", - "howToPrefill": { - "title": "Comment pré-remplir un formulaire", - "description": "Si vous souhaitez pré-remplir un formulaire, vous pouvez le faire via des paramètres de requête ajoutés à l'url publique du formulaire. Ces paramètres de requête sont préfixés par `prefill` pour éviter toute collision avec d'éventuels futurs paramètres de requête." - }, - "format": { - "title": "Format", - "description": "Le format des paramètres de la requête est le suivant :", - "codeSnippet": "?prefill_<field_name>=<value>" - }, - "example": { - "title": "Exemple", - "description": "Dans l'exemple ci-dessous, nous souhaitons pré-remplir un champ appelé `Name` avec la valeur de `Mike`", - "codeSnippet": "?prefill_Name=Mike" - }, - "spaces": { - "title": "Espaces", - "description": "Les espaces dans le nom du champ sont remplacés par `+` pour éviter tout problème avec le paramètre de requête.", - "codeSnippet": "?prefill_my+field=Mike" - }, - "multipleValues": { - "title": "Valeurs multiples", - "description": "Si vous voulez pré-remplir plusieurs champs, vous pouvez le faire en ajoutant un `,` entre les valeurs.", - "codeSnippet": "?prefill_multi+select=Mike,John" - }, - "specialFieldTypes": { - "title": "Types de champs spéciaux", - "description": "En général, la valeur de pré-remplissage est la même que la valeur du champ. Mais il existe quelques exceptions où la valeur est traduite en une valeur différente.", - "ratingField": { - "title": "Champ de notation", - "description": "Un champ d'évaluation accepte un nombre pour indiquer le nombre d'étoiles à remplir.", - "codeSnippet": "?prefill_rating=3" + "paginator": { + "page": "Page", + "of": "sur {pages}" + }, + "copied": { + "label": "Copié !" + }, + "sidebarApplication": { + "renameApplication": "Renommer {type}", + "viewTrash": "Voir la corbeille", + "deleteApplication": "Supprimer {type}", + "duplicateApplication": "Dupliquer {type}", + "snapshots": "Sauvegardes", + "rename": "Renommer", + "duplicate": "Dupliquer", + "delete": "Supprimer" + }, + "sidebar": { + "createWorkspace": "Créer un projet", + "inviteOthers": "Envoyer une invitation", + "logoff": "Se déconnecter", + "errorNoWorkspace": "Vous n'avez aucun projet.", + "admin": "Administration", + "dashboard": "Accueil", + "trash": "Corbeille", + "settings": "Mon compte", + "members": "Membres", + "notifications": "Notifications", + "licenses": "Licences", + "addNewWorkspace": "Ajouter un nouveau projet", + "home": "Accueil", + "adminTools": "Administration", + "adminSettings": "Paramètres", + "general": "Général", + "people": "Utilisateurs" + }, + "accountForm": { + "nameLabel": "Votre nom", + "languageLabel": "Langue de l'interface" + }, + "accountSettings": { + "title": "Informations personnelles", + "changedTitle": "Mise à jour", + "changedDescription": "Les informations de votre compte utilisateur ont été mises à jour.", + "submitButton": "Modifier les informations" + }, + "settingsModal": { + "title": "Mon compte" + }, + "passwordSettings": { + "title": "Mise à jour du mot de passe", + "changedTitle": "Mot de passe mis à jour", + "changedDescription": "Votre mot de passe a été mis à jour. La prochaine fois que vous souhaitez vous connecter, vous devrez utiliser le nouveau mot de passe.", + "oldPasswordLabel": "Ancien mot de passe", + "oldPasswordRequiredError": "L'ancien mot de passe est obligatoire.", + "newPasswordLabel": "Nouveau mot de passe", + "repeatNewPasswordLabel": "Répétez le mot de passe", + "repeatNewPasswordMatchError": "Les deux mots de passe ne correspondent pas.", + "submitButton": "Mettre à jour", + "errorInvalidOldPasswordTitle": "Ancien mot de passe invalide", + "errorInvalidOldPasswordMessage": "Impossible de mettre à jour votre mot de passe car votre ancien mot de passe est incorrect." + }, + "error": { + "alreadyExistsTitle": "L'utilisateur existe déjà", + "alreadyExistsMessage": "Un utilisateur avec la même adresse électronique existe déjà.", + "passwordRequired": "Le mot de passe est obligatoire.", + "invalidEmail": "Veuillez entrer une adresse électronique valide.", + "disabledAccountTitle": "Compte désactivé", + "disabledAccountMessage": "Ce compte utilisateur est désactivé.", + "incorrectCredentialTitle": "Identifiants incorrects", + "incorrectCredentialMessage": "L'adresse électronique et/ou le mot de passe sont incorrects.", + "inputRequired": "Ce champ est obligatoire.", + "disabledPasswordProviderTitle": "L'authentification par mot de passe est désactivée.", + "disabledPasswordProviderMessage": "Veuillez utiliser un autre fournisseur d'authentification." + }, + "field": { + "language": "Langue", + "emailAddress": "Adresse électronique", + "name": "Votre nom", + "password": "Mot de passe", + "passwordRepeat": "Répétez votre mot de passe" + }, + "invitationTitle": "Invitation", + "invitationMessage": "{invitedBy} vous a invité·e à rejoindre le projet {workspace}.", + "workspaceForm": { + "nameLabel": "Nom" + }, + "leaveWorkspaceModal": { + "title": "Quitter {workspace}", + "message": "Êtes-vous sûr·e de vouloir quitter le projet {workspace} ? Vous ne serez plus en mesure d'accéder aux applications associées et si vous souhaitez y accéder de nouveau, l'un des administrateurs du projet devra vous envoyer une nouvelle invitation. Si vous quittez un projet, celui-ci ne sera pas supprimé et les autres membres y auront toujours accès. Il n'est pas possible de quitter un projet si vous êtes le dernier administrateur car il se retrouverait alors sans propriétaire.", + "leave": "Quitter le projet" + }, + "dashboardWorkspace": { + "showMembers": "Membres", + "createApplication": "Créer" + }, + "workspaceInvitation": { + "title": "Invitation", + "message": "{by} vous a invité à rejoindre le projet {workspace}.", + "reject": "Refuser", + "accept": "Accepter" + }, + "workspaceMemberModal": { + "membersModalTitle": "Membres de {workspace}", + "userDescription": "{user} - membre depuis {since}", + "invitationDescription": "invité·e depuis {since}", + "sendInvite": "Envoyer l'invitation", + "userAlreadyInWorkspaceTitle": "L'utilisateur est déjà dans le projet.", + "userAlreadyInWorkspaceText": "Il n'est pas possible d'envoyer une invitation à un utilisateur déjà présent dans le projet.", + "userDescriptionPendingDeletion": "{user} - en attente de suppression" + }, + "workspaceInviteForm": { + "invitationFormTitle": "Inviter par email", + "optionalMessagePlaceholder": "Message optionnel", + "errorInvalidEmail": "Veuillez saisir une adresse email valide.", + "errorTooLongMessage": "Les messages sont limités à {amount} caractères.", + "additionalRoles": "Autres rôles" + }, + "workspacesContext": { + "search": "Rechercher", + "noResults": "Aucun résultat", + "createWorkspace": "Créer un projet" + }, + "workspaceContext": { + "renameWorkspace": "Renommer le projet", + "members": "Membres", + "viewTrash": "Voir la corbeille", + "leaveWorkspace": "Quitter le projet", + "deleteWorkspace": "Supprimer le projet", + "auditLog": "Journal d'audit", + "settings": "Paramètres", + "importWorkspace": "Importer", + "exportWorkspace": "Exporter" + }, + "createWorkspaceModal": { + "createNew": "Nouveau projet", + "add": "Ajouter le projet", + "defaultName": "Projet sans nom", + "permissionDeniedTitle": "Permission refusée", + "permissionDeniedBody": "Vous n'avez pas les permissions nécessaires pour créer un nouveau projet." + }, + "templateCategories": { + "search": "Chercher des modèles", + "title": "Modèles" + }, + "templateHeader": { + "use": "Utiliser ce modèle" + }, + "trashSidebar": { + "title": "Corbeille", + "unnamedWorkspace": "Projet sans nom {id}", + "workspaces": "Projets" + }, + "trashContents": { + "message": "Restaurer les éléments supprimés durant les {duration} derniers", + "empty": "Rien n'a été supprimé durant les trois derniers jours.", + "emptyButtonTrashed": "Supprimer {type} définitivement", + "emptyButtonNotTrashed": "Vider la corbeille pour {type}", + "unnamed": "Sans nom {type} {id}" + }, + "trashEmptyModal": { + "titleIsTrashed": "Êtes-vous sûr·e de vouloir supprimer définitivement {name} ?", + "titleIsNotTrashed": "Êtes-vous sûr·e de vouloir vider la corbeille de {name} ?", + "messageIsTrashed": "Cette action va tout supprimer définitivement ainsi que tout son contenu. Vous ne serez plus en mesure de le restaurer.", + "messageIsNotTrashed": "Cette action va supprimer définitivement les éléments listés. Vous ne serez plus en mesure de les restaurer.", + "buttonIsTrashed": "Supprimer définitivement", + "buttonIsNotTrashed": "Vider" + }, + "trashEntry": { + "deletedUser": "Un utilisateur supprimé", + "fromParent": "provenant de {parent}", + "name": "{user} a supprimé {type} {title} {parent}", + "restore": "Restaurer", + "unnamed": "Sans nom {type} {id}", + "andMore": "... et {count} de plus" + }, + "trashModal": { + "emptyTitle": "Aucun projet trouvé", + "emptyMessage": "Vous n'êtes membre d'aucun projet. Les applications comme les bases de données doivent appartenir à un projet, par conséquent vous devez créer un projet afin d'être capable d'en créer.", + "emptyMessageWithoutCreatePermission": "Vous n'êtes membre d'aucun projet. Les applications comme les bases de données doivent appartenir à un projet. Pour les créer, vous devez donc d'abord être invité à un projet par un administrateur." + }, + "uploadViaURLUserFileUpload": { + "title": "À partir d'une URL", + "urlLabel": "URL", + "urlError": "Une URL valide doit être renseignée." + }, + "userFilesModal": { + "title": "En provenance" + }, + "uploadFileUserFileUpload": { + "title": "Envoyer un fichier", + "drop": "Déposez ici", + "clickOrDrop": "Cliquez ou déposez votre fichier ici", + "retry": "Recommencer" + }, + "createApplicationContext": { + "fromTemplate": "À partir d'un modèle", + "fromTemplateDesc": "Démarrer rapidement avec l'un de nos modèles recommandés", + "tableDesc": "Créez un nouvel espace pour gérer des données dans votre base.", + "table": "Table", + "importWorkspaceDesc": "Importer des données existantes à partir d'une instance Baserow.", + "importWorkspace": "Importer" + }, + "applicationForm": { + "nameLabel": "Nom", + "namePlaceholder": "Saisir un nom..." + }, + "connectingNotification": { + "title": "Reconnexion en cours", + "content": "Reconnexion avec le serveur en cours." + }, + "failedConnectingNotification": { + "title": "Échec de connexion", + "content": "La connexion avec le serveur a été interrompue. Merci de rafraîchir la page.", + "action": "Rafraîchir la page" + }, + "restoreNotification": { + "restore": "Restaurer l'élément {type} supprimé" + }, + "errorLayout": { + "notFound": "La page que vous essayez de consulter n'a pas été trouvée. L'URL est incorrecte ou vous n'avez pas les permissions nécessaires pour voir cette page.", + "error": "Une erreur est survenue lors du chargement de la page. Nos développeurs ont été notifiés de ce problème. Veuillez essayer de recharger la page ou retournez à l'accueil.", + "backDashboard": "Retourner à l'accueil", + "backLogin": "Retourner à l'identification", + "wrong": "Une erreur est survenue", + "refresh": "Actualiser la page" + }, + "dashboard": { + "title": "Statistiques", + "alertTitle": "Soutenez-nous !", + "alertText": "En partageant Baserow, vous nous aidez à améliorer le produit et à le rendre plus utile pour vous.", + "tweetContent": "Découvrez {'@'}baserow, une base de données no-code libre, une alternative à Airtable !", + "redditTitle": "Baserow - Une base de données no-code libre", + "noWorkspaceTitle": "Aucun projet", + "noWorkspaceText": "Vous n'êtes membre d'aucun projet. Les applications telles que les bases de données doivent appartenir à un projet, donc pour pouvoir en créer, vous devez créer au moins un projet.", + "createWorkspace": "Créer un projet", + "becomeGithubSponsor": "Devenir sponsor Github", + "starOnGitlab": "Nous aimer sur GitLab", + "shareOnTwitter": "Tweeter à propos de Baserow", + "shareOnReddit": "Partager sur Reddit", + "shareOnFacebook": "Partager sur Facebook", + "shareOnLinkedIn": "Partager sur LinkedIn", + "noWorkspaceTextWithoutCreatePermission": "Vous n'êtes membre d'aucun projet. Les applications comme les bases de données doivent appartenir à un projet. Pour les créer, vous devez donc d'abord être invité à un projet par un administrateur.", + "suggestedTemplates": "Modèles suggérés", + "resources": "Ressources", + "knowledgeBase": "Base de connaissances", + "knowledgeBaseMessage": "Trouvez les réponses à toutes vos questions", + "tutorials": "Tutoriels", + "tutorialsMessage": "Découvrez le potentiel de Baserow", + "apiDocumentation": "Documentation de l'API", + "apiDocumentationMessage": "En savoir plus sur notre code", + "emptyWorkspace": "Ce projet est vide", + "emptyWorkspaceMessage": "Pour commencer, créez une nouvelle base de données ou une nouvelle application.", + "addNew": "Ajouter...", + "noWorkspace": "Aucun projet", + "noWorkspaceDescription": "Pour commencer, créez un nouveau projet", + "starOnGitHub": "Suivez-nous sur GitHub" + }, + "login": { + "title": "Bienvenue", + "forgotPassword": "Oublié ?", + "signUp": "S'inscrire", + "emailPlaceholder": "Entrez votre adresse e-mail..", + "passwordPlaceholder": "Entrez votre mot de passe..", + "signUpText": "Nouveau sur Baserow ?", + "displayPasswordLogin": "Connectez-vous en utilisant votre e-mail et votre mot de passe", + "redirecting": "Redirection vers le service d'authentification..." + }, + "resetPassword": { + "title": "Nouveau mot de passe", + "newPassword": "Nouveau mot de passe", + "repeatNewPassword": "Répétez le mot de passe", + "submit": "Mettre à jour", + "changed": "Mot de passe mis à jour", + "errorInvalidLinkTitle": "Lien invalide", + "errorInvalidLinkMessage": "Il n'est pas possible de réinitialiser le mot de passe car le lien est invalide.", + "errorLinkExpiredTitle": "Lien expiré", + "errorLinkExpiredMessage": "Le lien de réinitialisation de mot de passe a expiré, Veuillez en demander un nouveau.", + "disabled": "La réinitialisation du mot de passe est désactivée", + "disabledMessage": "Il n’est pas possible de réinitialiser le mot de passe car cette fonctionnalité a été désactivé.", + "message": "Vous pouvez maintenant vous connecter à Baserow en utilisant votre nouveau mot de passe." + }, + "signup": { + "headTitle": "Créer un compte", + "title": "Création de compte", + "disabled": "Création de compte désactivée", + "disabledMessage": "Vous ne pouvez pas créer de compte car la création de compte a été désactivée.", + "requireFirstUser": "Bienvenue sur Baserow !", + "requireFirstUserMessage": "Veuillez remplir le formulaire ci-dessous afin de créer le compte administrateur.", + "login": "Login", + "emailPlaceholder": "Entrez votre adresse e-mail..", + "namePlaceholder": "Entrez votre nom..", + "passwordPlaceholder": "Entrez votre mot de passe..", + "passwordRepeatPlaceholder": "Confirmez votre mot de passe..", + "loginText": "Vous avez déjà un compte ?", + "terms": "Conditions d'utilisation", + "agreeTerms": "En créant un compte, vous acceptez : {0} {1} {2}", + "privacyPolicy": "Politique de confidentialité" + }, + "forgotPassword": { + "title": "Mot de passe oublié", + "message": "Veuillez saisir votre adresse et nous vous enverrons un lien pour réinitialiser votre mot de passe.", + "submit": "Envoyer le lien", + "confirmation": "Nous avons envoyé un courriel à {email}, qui contient un lien pour réinitialiser votre mot de passe Baserow.", + "disabled": "Mot de passe oublié désactivé", + "disabledMessage": "Vous ne pouvez pas réinitialiser votre mot de passe car la réinitialisation de mot de passe a été désactivée.", + "loginText": "Vous avez déjà un compte et un mot de passe ?", + "confirmationTitle": "Vérifiez votre adresse courriel", + "goBack": "Retour" + }, + "settings": { + "settingsTitle": "Paramètres", + "baserowInstanceId": "Identifiant de l'instance de Baserow", + "instanceIdDescription": "Cet identifiant permet de désigner de manière unique votre instance de Baserow.", + "accountRestrictions": "Restriction de création de comptes", + "settingAllowResetPasswordName": "Activer la réinitialisation du mot de passe", + "settingAllowResetPasswordDescription": "Par défaut, les utilisateurs peuvent demander un lien de réinitialisation de leur mot de passe.", + "settingAllowResetPasswordWarning": "Veuillez noter que vous vous bloquez également l’accès et que l'accès ne pourra pas être rétabli si vous avait oublié votre mot de passe.", + "settingAllowNewAccountsName": "Autoriser la création de compte", + "settingAllowNewAccountsDescription": "Par défaut, tout les visiteurs peuvent créer un compte sur votre instance de Baserow.", + "enabled": "Autoriser", + "settingAllowSignupsViaWorkspaceInvitationsName": "Autoriser la création de compte sur invitation", + "settingAllowSignupsViaWorkspaceInvitationDescription": "Cette option permet aux utilisateurs invités par d'autres de créer des comptes même si la création de compte à été désactivée de manière globale.", + "userDeletionGraceDelay": "Suppression d'utilisateurs", + "settingUserDeletionGraceDelay": "Délai de grâce avant suppression", + "invalidAccountDeletionGraceDelay": "Cette valeur est obligatoire et doit être un nombre entier positif inférieur à 32000", + "settingUserDeletionGraceDelayDescription": "Il s'agit du nombre de jours sans connexion après lequel un compte planifié pour être supprimé est définitivement supprimé.", + "settingAllowNonStaffCreateWorkspaceOperation": "Autoriser tout le monde à créer de nouveaux projets", + "settingAllowNonStaffCreateWorkspaceOperationDescription": "Par défaut, tout le monde peut créer de nouveaux projets. Désactivez cette option pour permettre uniquement aux collaborateurs de créer de nouveaux projets.", + "settingAllowNonStaffCreateWorkspaceOperationWarning": "Un projet sera automatiquement créé pour les nouveaux utilisateurs s'ils sont administrateurs.", + "settingTrackWorkspaceUsage": "Suivi de l'utilisation du projet", + "settingTrackWorkspaceUsageDescription": "Active un travail nocturne qui compte l'utilisation des lignes et des fichiers par projet, affiché sur la page d'administration du projet premium.", + "maintenance": "Maintenance", + "emailVerificationDescription": "Indique si les adresses électroniques doivent être vérifiées.", + "emailVerificationNoVerification": "Pas de vérification", + "emailVerificationRecommended": "Recommandée", + "emailVerificationEnforced": "Obligatoire", + "userSettings": "Utilisateur", + "emailVerification": "Vérification de l'adresse électronique", + "baserowVersion": "Version de Baserow", + "baserowVersionDescription": "Le numéro de version de cette instance.", + "settingsVerifyImportSignature": "Vérifier la signature de l'importation", + "settingsVerifyImportSignatureDescription": "Lorsqu'elle est activée, la signature des données importées est vérifiée afin de s'assurer que les données n'ont pas été altérées." + }, + "copyingNotification": { + "title": "Copie en cours...", + "content": "Préparation des données" + }, + "undoRedoNotification": { + "undoingTitle": "Annulation en cours...", + "undoingText": "Annuler votre action", + "undoneTitle": "Annulée", + "undoneText": "Cette action est annulée", + "noMoreUndo": "Plus d'action à annuler", + "skippingUndoDueToError": "L'annulation a échoué en raison d'une erreur inconnue, celle-ci est ignorée.", + "redoingTitle": "En cours de rétablissement...", + "redoingText": "Rétablir votre action", + "redoneTitle": "Rétablie", + "redoneText": "Cette action est rétablie", + "noMoreRedo": "Plus d'action à rétablir", + "skippingRedoDueToError": "Le rétablissement à échoué en raison d'une erreur inconnue. Celui-ci est ignoré.", + "failed": "Échec" + }, + "AuthorizationErrorNotification": { + "content": "Vous ne semblez pas avoir la permission de visualiser cette ressource.", + "action": "Rafraîchir la page", + "title": "Erreur d’autorisation" + }, + "formSidebar": { + "actions": { + "addAll": "Ajouter tout", + "removeAll": "Enlever tout", + "addField": "Ajouter un champ" }, - "linkRowField": { - "title": "Lien vers une table", - "description": "Un champ de ligne de lien peut accepter la valeur qui s'affiche dans la liste déroulante de sélection.", - "codeSnippet": "?prefill_link+row=Mike" + "fieldsDescription": "Tous les champs sont dans le formulaire.", + "prefillInfoLink": "Pré-remplir les valeurs dynamiquement", + "modal": { + "title": "Pré-remplir ou masquer les champs dynamiquement", + "descriptionPartOne": "Les formulaires peuvent être préremplis afin d'aider l'utilisateur à remplir le formulaire plus rapidement.", + "descriptionPartTwo": "Tous les champs qui sont disponibles dans le formulaire peuvent être pré-remplis.", + "howToPrefill": { + "title": "Comment pré-remplir un formulaire", + "description": "Si vous souhaitez pré-remplir un formulaire, vous pouvez le faire via des paramètres de requête ajoutés à l'url publique du formulaire. Ces paramètres de requête sont préfixés par `prefill` pour éviter toute collision avec d'éventuels futurs paramètres de requête." + }, + "format": { + "title": "Format", + "description": "Le format des paramètres de la requête est le suivant :", + "codeSnippet": "?prefill_<field_name>=<value>" + }, + "example": { + "title": "Exemple", + "description": "Dans l'exemple ci-dessous, nous souhaitons pré-remplir un champ appelé `Name` avec la valeur de `Mike`", + "codeSnippet": "?prefill_Name=Mike" + }, + "spaces": { + "title": "Espaces", + "description": "Les espaces dans le nom du champ sont remplacés par `+` pour éviter tout problème avec le paramètre de requête.", + "codeSnippet": "?prefill_my+field=Mike" + }, + "multipleValues": { + "title": "Valeurs multiples", + "description": "Si vous voulez pré-remplir plusieurs champs, vous pouvez le faire en ajoutant un `,` entre les valeurs.", + "codeSnippet": "?prefill_multi+select=Mike,John" + }, + "specialFieldTypes": { + "title": "Types de champs spéciaux", + "description": "En général, la valeur de pré-remplissage est la même que la valeur du champ. Mais il existe quelques exceptions où la valeur est traduite en une valeur différente.", + "ratingField": { + "title": "Champ de notation", + "description": "Un champ d'évaluation accepte un nombre pour indiquer le nombre d'étoiles à remplir.", + "codeSnippet": "?prefill_rating=3" + }, + "linkRowField": { + "title": "Lien vers une table", + "description": "Un champ de ligne de lien peut accepter la valeur qui s'affiche dans la liste déroulante de sélection.", + "codeSnippet": "?prefill_link+row=Mike" + }, + "selectField": { + "title": "Champ de sélection unique / sélection multiple", + "description": "Un champ de sélection unique peut accepter la valeur qui s'affiche dans la liste déroulante de sélection. Il en va de même pour le champ de sélection multiple, mais il peut également accepter plusieurs valeurs.", + "codeSnippet": "?prefill_single+select=Mike" + }, + "dateField": { + "title": "Champ Date", + "description": "Un champ de date peut accepter une date dans les formats suivants et utilisera le format de date du champ pour analyser la date.", + "codeSnippet": "\n// Standards\nISO_8601\n\n// General formats\n'YYYY-MM-DD',\n'YYYY-MM-DD hh:mm A',\n'YYYY-MM-DD HH:mm',\n\n// EU\n'DD/MM/YYYY', \n'DD/MM/YYYY hh:mm A', \n'DD/MM/YYYY HH:mm'\n\n// US\n'MM/DD/YYYY', \n'MM/DD/YYYY hh:mm A', \n'MM/DD/YYYY HH:mm'" + } + }, + "howToHide": { + "title": "Comment masquer un champ", + "description": "Si vous souhaitez masquer un champ dynamiquement, vous pouvez le faire via des paramètres de requête ajouté à l'URL publique du formulaire. Ces paramètres de requête doivent être préfixés par `hide_` pour éviter une collision avec d'autres paramètres." + } }, - "selectField": { - "title": "Champ de sélection unique / sélection multiple", - "description": "Un champ de sélection unique peut accepter la valeur qui s'affiche dans la liste déroulante de sélection. Il en va de même pour le champ de sélection multiple, mais il peut également accepter plusieurs valeurs.", - "codeSnippet": "?prefill_single+select=Mike" + "prefillOrHideInfoLink": "Pré-remplir ou masquer dynamiquement", + "notifyUserOnSubmit": "Recevoir une notification lors de la soumission" + }, + "deleteAccountSettings": { + "workspaceNotice": "Les projets sans propriétaires seront être supprimés", + "orphanWorkspaces": "Seront également supprimés définitivement après le délais de grâce", + "password": "Mot de passe", + "passwordConfirm": "Répétez le mot de passe", + "repeatPasswordMatchError": "Ce champ doit correspondre au premier champ de mot de passe.", + "submitButton": "Supprimer le compte", + "errorInvalidPasswordTitle": "Mot de passe invalide", + "errorInvalidPasswordMessage": "Impossible de supprimer votre compte car le mot de passe est invalide.", + "errorUserIsLastAdminMessage": "Impossible de supprimer votre compte car vous êtes le dernier administrateur de cette instance de Baserow.", + "accountDeletedSuccessMessage": "La suppression de votre compte a été programmée.", + "workspaceLoadingError": "La vérification des projets a échouée", + "workspaceLoadingErrorDescription": "La vérifications des projets qui seront supprimés a échouée, veuillez rafraîchir la page.", + "accountDeletedSuccessTitle": "Suppression de compte programmée", + "description": "Vous pouvez programmé la suppression de votre compte en entrant votre mot de passe actuel et en cliquant sur le bouton. Votre compte sera définitivement supprimé après {days} jours. Pendant ce délais, si vous vous connectez de nouveau, la suppression de votre compte sera annulée.", + "orphanWorkspaceMemberCount": "non partagé|partagé avec 1 utilisateur|partagé avec {count} utilisateurs", + "title": "Supprimer le compte", + "workspaceNoticeDescription": "Quand votre compte est définitivement supprimé, tous les projets et leurs données associées pour lesquels vous êtes le dernier administrateur actif sont également supprimés. Les projets suivants sont ceux qui seront supprimés car vous êtes le seul administrateur. Afin d'éviter qu'ils soient supprimés, vous devez donner les droits d'administration à un autre utilisateur avant de supprimer votre compte.", + "errorUserIsLastAdminTitle": "Dernier administrateur" + }, + "pastingNotification": { + "title": "Collage...", + "content": "Préparation des données" + }, + "dashboardSidebar": { + "workspaces": "Projets", + "links": "Liens", + "knowledgeBase": "Base de connaissances", + "userSettings": "Paramètres utilisateur", + "trash": "Corbeille", + "logoff": "Se déconnecter", + "tutorials": "Tutoriels" + }, + "job": { + "stateFailed": "Échec", + "errorJobAlreadyRunningTitle": "Déjà en cours d’exécution", + "errorJobAlreadyRunningDescription": "Une autre tâche d'importation est déjà en cours. Vous devez attendre que celle-ci se termine avant d'en lancer une autre.", + "statePending": "En attente…", + "stateStarted": "Démarré…", + "stateFinished": "Terminé", + "errorJobCannotBeCancelledTitle": "Impossible d'annuler", + "errorJobCannotBeCancelledDescription": "Il n'est pas possible d'annuler le travail car il a déjà été effectué.\nVeuillez supprimer la première sauvegarde ci-dessous pour le supprimer.", + "stateCanceled": "Annulé" + }, + "clearingNotification": { + "content": "Préparation des données", + "title": "Nettoyage..." + }, + "datetime": { + "daysAgo": "Il y a 0 jour | Il y a 1 jour | Il y a {n} jours", + "yearsAgo": "il y a 0 an | il y a 1 an | il y a {n} ans", + "monthsAgo": "il y a 0 mois | il y a 1 mois | il y a {n} mois", + "minutesAgo": "il y a 0 minute | il y a 1 minute | il y a {n} minutes", + "hoursAgo": "Il y a 0 heure | Il y a 1 heure | Il y a {n} heures", + "secondsAgo": "A l'instant | Il y a 1 seconde | Il y a {n} secondes", + "justNow": "à l'instant", + "lessThanMinuteAgo": "il y a moins d'une minute" + }, + "duplicateApplicationJobType": { + "duplicating": "Duplication", + "duplicatedTitle": "Application dupliquée" + }, + "InstallTemplateJobType": { + "installing": "Installation", + "installedTitle": "Modèle installé" + }, + "membersSettings": { + "invitesTable": { + "columns": { + "role": "Rôle par défaut", + "email": "Courriel", + "message": "Message" + }, + "actions": { + "copyEmail": "Copier l’e-mail", + "remove": "Annuler l'invitation" + }, + "title": "{invitesAmount} Invitations en attente dans {workspaceName}" + }, + "membersInviteModal": { + "title": "Inviter des membres du projet", + "submit": "Envoyer une invitation", + "errors": { + "userAlreadyInWorkspace": { + "title": "L’utilisateur est déjà dans le projet.", + "text": "Il n’est pas possible d’envoyer une invitation lorsque l’utilisateur est déjà membre du projet." + } + }, + "helpIconText": "Le rôle sélectionné sera le rôle par défaut des utilisateurs dans ce projet." + }, + "membersTable": { + "actions": { + "remove": "Supprimer du projet", + "copyEmail": "Copier l’e-mail" + }, + "columns": { + "name": "Nom", + "role": "Rôle par défaut", + "email": "Courriel", + "teams": "Équipes", + "highestRole": "Rôle le plus élevé", + "highestRoleHelpText": "Le rôle le plus élevé attribué à cet utilisateur, directement ou par une équipe, sur tout ce qui se trouve dans ce projet", + "highestRoleInstanceHelpText": "Le rôle le plus élevé dont dispose cet utilisateur dans l'instance", + "2fa": "2FA" + }, + "title": "{userAmount} Membres dans {workspaceName}", + "inviteMember": "Inviter un membre" }, - "dateField": { - "title": "Champ Date", - "description": "Un champ de date peut accepter une date dans les formats suivants et utilisera le format de date du champ pour analyser la date.", - "codeSnippet": "\n// Standards\nISO_8601\n\n// General formats\n'YYYY-MM-DD',\n'YYYY-MM-DD hh:mm A',\n'YYYY-MM-DD HH:mm',\n\n// EU\n'DD/MM/YYYY', \n'DD/MM/YYYY hh:mm A', \n'DD/MM/YYYY HH:mm'\n\n// US\n'MM/DD/YYYY', \n'MM/DD/YYYY hh:mm A', \n'MM/DD/YYYY HH:mm'" + "membersTabTitle": "Membres", + "invitesTabTitle": "Invite" + }, + "crudTableSearch": { + "search": "Recherche" + }, + "memberAssignmentModalFooter": { + "invite": "Inviter {count}", + "selectAll": "Sélectionner tout", + "deselectAll": "Désélectionner tout" + }, + "removeFromWorkspaceModal": { + "title": "Confirmer le retrait du projet", + "remove": "Supprimer", + "confirmation": "Voulez-vous vraiment supprimer {name} de {workspaceName} ? Cette action ne peut pas être annulée." + }, + "UserSessionExpiredNotification": { + "title": "Session expirée", + "content": "Vous avez été déconnecté·e car votre jeton d'authentification a expiré. Veuillez vous reconnecter." + }, + "memberSelectionList": { + "searchPlaceholder": "Rechercher …", + "selectedAmountLabel": "{count} sélectionné(s)" + }, + "permissionsUpdatedNotification": { + "title": "Permissions mises à jour", + "content": "Cela pourrait affecter ce à quoi vous avez accès, veuillez recharger la page.", + "action": "Recharger" + }, + "highestPaidRoleField": { + "billable": "Facturable" + }, + "editRoleContext": { + "billableRolesLink": "Documentation sur les rôles facturables", + "additionalRoles": "Autres rôles" + }, + "notificationPanel": { + "title": "Notifications", + "clearAll": "Effacer tout", + "markAllAsRead": "Marquer tout comme lu", + "noNotificationTitle": "Vous n'avez aucune notification", + "noNotification": "Nous vous informerons des mises à jour importantes et à chaque fois que vous serez mentionné sur Baserow.", + "newNotificationsAvailable": "Nouvelles notifications disponibles", + "refresh": "Actualiser" + }, + "clearAllNotificationsConfirmModal": { + "title": "Êtes-vous sûr·e de vouloir supprimer toutes les notifications ?", + "message": "Toutes les notifications seront définitivement supprimées et vous ne serez plus en mesure de les consulter." + }, + "uploadFileDropzone": { + "errorTooManyFilesMessage": "Vous ne pouvez envoyer qu'un seul fichier", + "errorWrongFileTypeTitle": "Type de fichier incorrect", + "errorWrongFileTypeMessage": "Vous ne pouvez pas télécharger un fichier de type {type}", + "drop": "Déposer ici", + "clickOrDrop": "Cliquez ou déposez vos fichiers ici", + "errorTooManyFilesTitle": "Trop de fichiers" + }, + "connectingToast": { + "title": "Reconnexion", + "content": "Rétablissement de la connexion instantanée..." + }, + "failedConnectingToast": { + "title": "Échec", + "content": "La connexion instantanée avec le serveur a été interrompue. Merci de rafraîchir la page pour continuer.", + "action": "Actualiser la page" + }, + "authorizationErrorToast": { + "title": "Erreur d’autorisation", + "content": "Vous ne semblez pas avoir la permission de visualiser cette ressource.", + "action": "Actualiser la page" + }, + "userSessionExpiredToast": { + "content": "Vous avez été déconnecté·e car votre jeton d'authentification a expiré. Veuillez vous reconnecter.", + "title": "Session expirée" + }, + "restoreToast": { + "restore": "Restauration de {type}" + }, + "copyingToast": { + "title": "Copie...", + "content": "Préparation de vos données" + }, + "PastingToast": { + "content": "Préparation de vos données", + "title": "Collage..." + }, + "undoRedoToast": { + "undoneTitle": "Annulée", + "undoneText": "L’action est annulée", + "noMoreUndo": "Plus d’action à annuler", + "undoingText": "Annulation de votre action", + "skippingUndoDueToError": "L’annulation a échoué en raison d’une erreur inconnue, étape ignorée.", + "redoingTitle": "Rétablissement...", + "redoneTitle": "Rétablie", + "redoneText": "L'action est rétablie", + "noMoreRedo": "Plus d’action à rétablir", + "skippingRedoDueToError": "Le rétablissement a échoué en raison d’une erreur inconnue, étape ignorée.", + "failed": "Échec", + "redoingText": "Rétablissement de votre action", + "undoingTitle": "Annulation..." + }, + "permissionsUpdatedToast": { + "content": "Cela pourrait affecter ce à quoi vous avez accès, veuillez recharger la page.", + "action": "Recharger", + "title": "Autorisations mises à jour" + }, + "richTextEditorMentionsList": { + "notFound": "Aucun utilisateur trouvé" + }, + "versionUpgradeNotification": { + "title": "La version {version} est arrivé ! Découvrez les nouveautés." + }, + "clearingToast": { + "title": "Nettoyage...", + "content": "Préparation de vos données" + }, + "integrationCreateEditModal": { + "editTitle": "Modifier l’intégration", + "warningTitle": "Avertissement", + "createTitle": "Nouvelle intégration" + }, + "integrationEditForm": { + "name": "Nom", + "namePlaceholder": "Saisissez le nom de l'intégration..." + }, + "workspaceInvitationCreatedNotification": { + "title": "{sender} vous a invité à rejoindre {workspaceName}", + "deletedUser": "Un utilisateur supprimé" + }, + "dropdown": { + "empty": "Aucune option disponible" + }, + "styleSidePanel": { + "paddingTop": "Espacement haut", + "paddingBottom": "Espacement bas" + }, + "styleBoxForm": { + "paddingError": "La valeur doit être un entier compris entre 0 et 200." + }, + "workspaceInvitationAcceptedNotification": { + "title": "{sender} a accepté votre invitation à rejoindre {workspaceName}", + "deletedUser": "Un utilisateur supprimé" + }, + "workspaceInvitationRejectedNotification": { + "title": "{sender} a rejeté votre invitation à rejoindre {workspaceName}", + "deletedUser": "Un utilisateur supprimé" + }, + "emailNotifications": { + "submitButton": "Mise à jour de la fréquence", + "label": "Mentions, commentaires et autres notifications", + "daily": "Tous les jours", + "title": "Notifications par courriel", + "never": "Jamais", + "weekly": "Chaque semaine", + "description": "Configurez la fréquence d'envoi des courriels dans votre boîte de réception.", + "instant": "Instantanée" + }, + "dataExplorer": { + "emptyText": "Aucune donnée disponible", + "noMatchingNodesText": "Aucun résultat n'a été trouvé.", + "noProvidersText": "Aucun fournisseur de données n'a été trouvé. Pour commencer, vous pouvez, par exemple, ajouter une source de données ou un paramètre de page." + }, + "formulaInputField": { + "errorInvalidFormula": "La formule est invalide.", + "advancedFormulaMode": "Mode formule avancée" + }, + "userPasswordChangedToast": { + "title": "Mot de passe modifié", + "content": "Votre mot de passe a été modifié. Veuillez vous connecter de nouveau." + }, + "integrationDropdown": { + "noIntegrations": "Aucune intégration trouvée.", + "addIntegration": "Ajouter une nouvelle intégration", + "integrationPlaceholder": "Sélectionnez une intégration", + "selectTypeFirst": "Choisir d'abord le type" + }, + "richTextEditorBubbleMenu": { + "bold": "Gras", + "strikethrough": "Barrer", + "italic": "Italique", + "underline": "Souligner", + "link": "Lien", + "linkEditPlaceholder": "URL du lien...", + "linkEditDone": "Valider" + }, + "richTextEditorFloatingMenu": { + "hierarchy": "Hiérarchie", + "lists": "Listes", + "paragraph": "Paragraphe", + "heading1": "Titre 1", + "heading2": "Titre 2", + "heading3": "Titre 3", + "orderedList": "Liste numérotée", + "unorderedList": "Liste à puces", + "code": "Code", + "taskList": "Liste de tâches" + }, + "workspaceSettingsModal": { + "title": "Paramètres du projet" + }, + "workspaceSettingType": { + "generativeAI": "IA générative" + }, + "generativeAIModelType": { + "openaiOrganization": "Organisation (facultatif)", + "ollama": "Ollama", + "openai": "OpenAI", + "openaiApiKeyLabel": "Clé API", + "openaiApiKeyDescription": "Saisissez une clé API OpenAI si vous souhaitez activer l'intégration. [Instructions sur l'obtention d'une clé API] (https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key).", + "openaiModelsLabel": "Modèles activés", + "openaiModelsDescription": "Fournir une liste de [modèles OpenAI] (https://platform.openai.com/docs/models/continuous-model-upgrades) séparés par des virgules qui peuvent être utilisés dans Baserow. (par exemple `gpt-3.5-turbo,gpt-4`)", + "ollamaHostLabel": "Hôte", + "ollamaHostDescription": "Indiquez le nom d'hôte de votre serveur [Ollama] (https://ollama.com/). Celui-ci s'exécute généralement localement sur votre propre serveur.", + "ollamaModelsLabel": "Modèles activés", + "ollamaModelsDescription": "Fournir une liste de [modèles Ollama installés] (https://ollama.com/library) séparés par des virgules. Notez que le modèle doit être téléchargé et installé avant de pouvoir être utilisé. (par exemple `llama2,mistral`)", + "anthropicApiKeyLabel": "Clé d'API", + "anthropicModelsLabel": "Modèles activés", + "anthropicModelsDescription": "Fournissez une liste de [modèles Anthropic](https://docs.anthropic.com/en/docs/about-claude/models) séparés par des virgules que vous souhaitez utilisés dans Baserow. (e.g. `claude-3-5-sonnet-20241022,claude-3-opus-20240229`)", + "mistral": "Mistral", + "mistralApiKeyLabel": "Clé d'API", + "mistralApiKeyDescription": "Fournissez une clé API Mistral si vous souhaitez activer l'intégration. [Instructions sur l'obtention d'une clé API](https://docs.mistral.ai/getting-started/quickstart/).", + "mistralModelsLabel": "Modèles activés", + "mistralModelsDescription": "Fournissez une liste de [modèles Mistral] (https://docs.mistral.ai/getting-started/models/models_overview/) séparés par des virgules qui vous souhaitez utiliser dans Baserow. (par exemple : `mistral-large-latest,mistral-small-latest`)", + "anthropic": "Anthropic", + "anthropicApiKeyDescription": "Fournissez une clé API Anthropic si vous souhaitez activer l'intégration. [Instructions sur l'obtention d'une clé API](https://docs.anthropic.com/en/api/getting-started).", + "openRouterModelsLabel": "Modèles activés", + "openRouter": "OpenRouter", + "openRouterModelsDescription": "Fournissez une liste de [modèles OpenRouter](https://openrouter.ai/models) séparés par des virgules qui peuvent être utilisés dans Baserow. (par exemple `openai/gpt-4o,anthropic/claude-3-haiku`)", + "openRouterApiKeyDescription": "Fournissez une clé API OpenRouter si vous souhaitez activer l'intégration. [Obtenir une clé API](https://openrouter.ai/settings/keys).", + "openRouterApiKeyLabel": "Clé API", + "openRouterOrganization": "Organisation (facultatif)", + "openaiBaseUrl": "URL de base", + "openaiBaseUrlDescription": "Utilise l'URL de base OpenAI par défaut si elle est vide. Elle peut être remplacée par https://eu.api.openai.com/v1, https://<votre-nom-de-ressource>.openai.azure.com, ou toute autre API compatible avec OpenAI." + }, + "generativeAIWorkspaceSettings": { + "title": "Paramètres de l'IA générative", + "changedTitle": "Les paramètres ont été mis à jour", + "changedDescription": "Les paramètres ont été mis à jour et seront désormais utilisés dans ce Projet.", + "submitButton": "Enregistrer", + "description": "Ces paramètres peuvent être utilisés pour définir la configuration de l'IA générative au niveau da Projet. Des fonctionnalités telles que le champ IA peuvent être désactivées parce qu'elles ne disposent pas d'une clé API pour l'un des modèles pris en charge. En fournissant les paramètres ici, vous pouvez activer ces fonctionnalités. Si vous laissez une valeur vide, les paramètres globaux de l'instance sont rétablis par défaut. Notez que tous les utilisateurs du Projet partageront ces paramètres.", + "openSettings": "Ouvrir la configuration", + "hideSettings": "Fermer" + }, + "dashboardVerifyEmail": { + "title": "Veuillez vérifier votre boîte aux lettres et cliquer sur le lien pour vérifier votre adresse électronique.", + "resendConfirmationEmail": "Renvoyer le courriel de confirmation" + }, + "resendEmailVerification": { + "confirmationEmailSentTitle": "Courriel de confirmation envoyé", + "confirmationEmailSentDescription": "Le courriel de confirmation a été envoyé." + }, + "verifyEmailAddress": { + "disabledPasswordProvider": "Le fournisseur d'authentification par mot de passe a été désactivé.", + "confirmation": "Votre adresse électronique a été vérifiée.", + "goToDashboard": "Aller à l'accueil", + "invalidToken": "Le jeton de confirmation n'est pas valide.", + "emailMismatchWarning": "Veuillez noter que l'adresse électronique vérifiée n'appartient pas au compte que vous utilisez actuellement." + }, + "emailNotVerified": { + "title": "Vérification de l'adresse électronique requise", + "description": "Veuillez consulter votre boîte aux lettres et cliquer sur le lien de vérification. Une fois vérifié, votre compte sera activé.", + "resend": "Renvoyer le courriel de confirmation" + }, + "inviteStep": { + "description": "Vous pouvez toujours en ajouter plus tard.", + "collaboratorsLabel": "Collaborateurs", + "title": "Inviter des collaborateurs" + }, + "moreStep": { + "title": "Dites-nous en un peu plus", + "roleOrJob": "Rôle ou titre du poste...", + "people": "Combien de personnes composent votre équipe ?", + "share": "Je suis d'accord pour partager ceci avec l'équipe de Baserow", + "country": "Pays", + "how": "Comment avez-vous entendu parler de nous ?", + "howSearchEngine": "Moteur de recherche (Google/Bing)", + "howSocialMedia": "Médias sociaux", + "howOnlineAds": "Annonces en ligne", + "howContent": "Contenu (blog/newsletter/video)", + "howReviewSite": "Site spécialisé / marketplace", + "howFriend": "D'un ami", + "howColleague": "D'un collègue", + "howEvent": "Événement ou webinaire", + "howSales": "Lors d'une promotion", + "howOther": "Autre" + }, + "teamStep": { + "marketingTeam": "Marketing", + "productAndDesignTeam": "Produit & Design", + "itAndSupportTeam": "Informatique & Support", + "hrAndLegalTeam": "RH & Juridique", + "financeTeam": "Finance", + "creativeProductionTeam": "Production créative", + "title": "Configurons ensemble votre premier Projet !", + "description": "À quelle équipe appartenez-vous ?", + "engineeringTeam": "Ingénieur", + "operationsTeam": "Opérations", + "salesAndAccountManagementTeam": "Ventes et gestion des comptes", + "customerServiceTeam": "Service clientèle", + "manufacturingTeam": "Industrie", + "otherPersonalTeam": "Autre / Personnel" + }, + "onboarding": { + "skip": "Ignorer pour le moment", + "failedTitle": "Une erreur est survenue", + "title": "Assistant de configuration", + "creating": "Création de votre premier projet", + "continue": "Continuer", + "cancel": "Je ne souhaite pas d'aide pour la configuration", + "failedDescription": "La configuration n'est pas totalement terminées, cependant certaines parties ont pu être complétées.", + "failedTryAgain": "Réessayer", + "failedSkip": "Passer l'Assistant de configuration" + }, + "selectAIModelForm": { + "AIType": "Type d'IA", + "AIModel": "Modèle d'IA", + "fileField": "Champ de fichier", + "temperatureLabel": "Température", + "temperatureDescription": "La température d'un LLM, un paramètre défini entre 0 et {max}, ajuste le caractère aléatoire des réponses - les valeurs les plus basses donnent des réponses ciblées, tandis que les valeurs les plus élevées augmentent la créativité." + }, + "workspaceStep": { + "title": "Créez votre Projet", + "workspaceLabel": "Nom du projet" + }, + "colorInput": { + "default": "Défaut" + }, + "imageInput": { + "labelDescription": "Sélectionnez une image...", + "labelButton": "Envoyer" + }, + "dataExplorerNode": { + "showMore": "Afficher plus de répétitions", + "selectNode": "Sélectionner" + }, + "dashboardApplication": { + "createdAt": "créé(e)" + }, + "templateCard": { + "viewMore": "Voir plus" + }, + "exportWorkspaceModal": { + "title": "Exporter", + "description": "Vos données seront exportées sous la forme d'un fichier ZIP, qui pourra être importé dans d'autres instances de Baserow.", + "exportSettings": "Paramètres d'exportation", + "export": "Exporter", + "reset": "Nouvel export", + "cancel": "Annuler", + "download": "Télécharger", + "noExports": "Il n'y a pas d'export pour ce projet.", + "created": "Créé le", + "importingState": "Import en cours", + "exportingState": "Export en cours...", + "exportingTableState": "Export en cours : {table}", + "exportingCreateArchiveState": "Création de l'archive" + }, + "exportWorkspaceForm": { + "onlyStructureLabel": "Exporter uniquement la structure", + "exportSettingsLabel": "Paramètres d'exportation", + "onlyStructureDescription": "Si cette option est activée, seule la structure des applications sera exportée. Les données ne seront pas incluses.", + "selectDataToExport": "Sélectionnez les données à exporter", + "selectAll": "Tout sélectionner", + "deselectAll": "Tout désélectionner" + }, + "importWorkspaceModal": { + "title": "Importer des données", + "upload": "Envoyer", + "cancel": "Annuler", + "close": "Fermer", + "retry": "Réessayer", + "uploading": "envoi…", + "chooseFile": "Choisir un fichier", + "selectApplications": "Sélectionner les données à importer", + "deselectAll": "Désélectionner tout", + "selectAll": "Sélectionner tout", + "applications": "Applications", + "successTitle": "L'importation des données est réussie", + "successMessage": "{count} applications importées", + "signatureVerificationNote": "Il n'est pas possible d'importer un fichier zip à partir d'une source non fiable.", + "invalidResourceTitle": "Ressource invalide", + "invalidResourceMessage": "Le fichier fourni n'est pas une exportation Baserow valide.", + "untrustedPublicKeyTitle": "Signature inconnue", + "untrustedPublicKeyMessage": "Le fichier fourni est signé avec une clé publique non approuvée. Demandez à votre administrateur d'ajouter la clé publique à la liste des clés de confiance ou de désactiver la vérification de la signature pour pouvoir importer ce fichier.", + "description": "Vous pouvez importer des données Baserow existantes en téléchargeant le fichier .zip d'une autre instance Baserow.", + "import": "Importer", + "done": "Valider", + "databases": "Bases de données", + "importingState": "Import en cours...", + "importingTableStructure": "Création en cours : {table}", + "importingTableData": "Import en cours : {table}", + "uploadAndImport": "Télécharger et importer" + }, + "user": { + "isStaff": "Est collaborateur", + "isWorkspaceAdmin": "Est l'administrateur du projet", + "active": "Actif", + "deactivated": "Inactif" + }, + "adminType": { + "dashboard": "Statistiques", + "users": "Utilisateurs", + "workspaces": "Projets" + }, + "workspacesAdminTable": { + "allWorkspaces": "Liste des projets", + "id": "ID", + "name": "Nom", + "members": "Membres", + "applications": "Applications", + "created": "Créé le", + "seatsTaken": "Places occupées", + "storageUsage": "Stockage utilisé (Mo)", + "rowCount": "Nombre de lignes", + "freeUsers": "Utilisateurs gratuits", + "usageHelpText": "Calculé chaque nuit lorsque le paramètre de suivi de l'utilisation des projets est activé" + }, + "editWorkspaceContext": { + "delete": "Supprimer définitivement" + }, + "deleteWorkspaceModal": { + "title": "Supprimer {name}", + "confirmation": "Êtes-vous sûr·e de vouloir supprimer le projet : {name} ?", + "comment": "Le projet va être supprimé définitivement ainsi que ses applications liées. Il est impossible d'annuler cette action.", + "delete": "Supprimer le projet {name}" + }, + "activeUsers": { + "newUsers": "Nouveaux utilisateurs", + "activeUsers": "Utilisateurs actifs" + }, + "usersAdminTable": { + "allUsers": "Liste des utilisateurs", + "id": "ID", + "username": "Identifiant", + "name": "Nom", + "workspaces": "Projets", + "lastLogin": "Dernière connexion", + "dateJoined": "Date d'inscription", + "active": "Actif" + }, + "editUserContext": { + "changePassword": "Modifier le mot de passe", + "delete": "Supprimer définitivement", + "impersonate": "Usurper" + }, + "changePasswordForm": { + "newPassword": "Nouveau mot de passe", + "repeatPassword": "Répétez le mot de passe", + "changePassword": "Mettre à jour le mot de passe", + "error": { + "doesntMatch": "Les deux mots de passe ne correspondent pas." } - }, - "howToHide": { - "title": "Comment masquer un champ", - "description": "Si vous souhaitez masquer un champ dynamiquement, vous pouvez le faire via des paramètres de requête ajouté à l'URL publique du formulaire. Ces paramètres de requête doivent être préfixés par `hide_` pour éviter une collision avec d'autres paramètres." - } - }, - "prefillOrHideInfoLink": "Pré-remplir ou masquer dynamiquement", - "notifyUserOnSubmit": "Recevoir une notification lors de la soumission" - }, - "deleteAccountSettings": { - "workspaceNotice": "Les projets sans propriétaires seront être supprimés", - "orphanWorkspaces": "Seront également supprimés définitivement après le délais de grâce", - "password": "Mot de passe", - "passwordConfirm": "Répétez le mot de passe", - "repeatPasswordMatchError": "Ce champ doit correspondre au premier champ de mot de passe.", - "submitButton": "Supprimer le compte", - "errorInvalidPasswordTitle": "Mot de passe invalide", - "errorInvalidPasswordMessage": "Impossible de supprimer votre compte car le mot de passe est invalide.", - "errorUserIsLastAdminMessage": "Impossible de supprimer votre compte car vous êtes le dernier administrateur de cette instance de Baserow.", - "accountDeletedSuccessMessage": "La suppression de votre compte a été programmée.", - "workspaceLoadingError": "La vérification des projets a échouée", - "workspaceLoadingErrorDescription": "La vérifications des projets qui seront supprimés a échouée, veuillez rafraîchir la page.", - "accountDeletedSuccessTitle": "Suppression de compte programmée", - "description": "Vous pouvez programmé la suppression de votre compte en entrant votre mot de passe actuel et en cliquant sur le bouton. Votre compte sera définitivement supprimé après {days} jours. Pendant ce délais, si vous vous connectez de nouveau, la suppression de votre compte sera annulée.", - "orphanWorkspaceMemberCount": "non partagé|partagé avec 1 utilisateur|partagé avec {count} utilisateurs", - "title": "Supprimer le compte", - "workspaceNoticeDescription": "Quand votre compte est définitivement supprimé, tous les projets et leurs données associées pour lesquels vous êtes le dernier administrateur actif sont également supprimés. Les projets suivants sont ceux qui seront supprimés car vous êtes le seul administrateur. Afin d'éviter qu'ils soient supprimés, vous devez donner les droits d'administration à un autre utilisateur avant de supprimer votre compte.", - "errorUserIsLastAdminTitle": "Dernier administrateur" - }, - "pastingNotification": { - "title": "Collage...", - "content": "Préparation des données" - }, - "dashboardSidebar": { - "workspaces": "Projets", - "links": "Liens", - "knowledgeBase": "Base de connaissances", - "userSettings": "Paramètres utilisateur", - "trash": "Corbeille", - "logoff": "Se déconnecter", - "tutorials": "Tutoriels" - }, - "job": { - "stateFailed": "Échec", - "errorJobAlreadyRunningTitle": "Déjà en cours d’exécution", - "errorJobAlreadyRunningDescription": "Une autre tâche d'importation est déjà en cours. Vous devez attendre que celle-ci se termine avant d'en lancer une autre.", - "statePending": "En attente…", - "stateStarted": "Démarré…", - "stateFinished": "Terminé", - "errorJobCannotBeCancelledTitle": "Impossible d'annuler", - "errorJobCannotBeCancelledDescription": "Il n'est pas possible d'annuler le travail car il a déjà été effectué.\nVeuillez supprimer la première sauvegarde ci-dessous pour le supprimer.", - "stateCanceled": "Annulé" - }, - "clearingNotification": { - "content": "Préparation des données", - "title": "Nettoyage..." - }, - "datetime": { - "daysAgo": "Il y a 0 jour | Il y a 1 jour | Il y a {n} jours", - "yearsAgo": "il y a 0 an | il y a 1 an | il y a {n} ans", - "monthsAgo": "il y a 0 mois | il y a 1 mois | il y a {n} mois", - "minutesAgo": "il y a 0 minute | il y a 1 minute | il y a {n} minutes", - "hoursAgo": "Il y a 0 heure | Il y a 1 heure | Il y a {n} heures", - "secondsAgo": "A l'instant | Il y a 1 seconde | Il y a {n} secondes", - "justNow": "à l'instant", - "lessThanMinuteAgo": "il y a moins d'une minute" - }, - "duplicateApplicationJobType": { - "duplicating": "Duplication", - "duplicatedTitle": "Application dupliquée" - }, - "InstallTemplateJobType": { - "installing": "Installation", - "installedTitle": "Modèle installé" - }, - "membersSettings": { - "invitesTable": { - "columns": { - "role": "Rôle par défaut", - "email": "Courriel", - "message": "Message" - }, - "actions": { - "copyEmail": "Copier l’e-mail", - "remove": "Annuler l'invitation" - }, - "title": "{invitesAmount} Invitations en attente dans {workspaceName}" - }, - "membersInviteModal": { - "title": "Inviter des membres du projet", - "submit": "Envoyer une invitation", - "errors": { - "userAlreadyInWorkspace": { - "title": "L’utilisateur est déjà dans le projet.", - "text": "Il n’est pas possible d’envoyer une invitation lorsque l’utilisateur est déjà membre du projet." + }, + "userForm": { + "fullName": "Nom complet", + "email": "Adresse électronique", + "isActive": "Est actif", + "warning": { + "changeEmail": "Si vous changez l'adresse électronique, l'utilisateur devra désormais utiliser celle-ci pour s'identifier. Ceci doit être signifié à l'utilisateur.", + "inactiveUser": "Un utilisateur inactif n'est plus en mesure de s'identifier.", + "userStaff": "Un collaborateur a accès à la liste des utilisateurs, des projets et peut changer les permissions de tous les utilisateurs." + }, + "error": { + "invalidName": "Veuillez saisir un nom valide, il doit être composé de plus de 2 caractères et moins de 150.", + "invalidEmail": "Veuillez saisir une adresse électronique valide." } - }, - "helpIconText": "Le rôle sélectionné sera le rôle par défaut des utilisateurs dans ce projet." - }, - "membersTable": { - "actions": { - "remove": "Supprimer du projet", - "copyEmail": "Copier l’e-mail" - }, - "columns": { - "name": "Nom", - "role": "Rôle par défaut", - "email": "Courriel", - "teams": "Équipes", - "highestRole": "Rôle le plus élevé", - "highestRoleHelpText": "Le rôle le plus élevé attribué à cet utilisateur, directement ou par une équipe, sur tout ce qui se trouve dans ce projet", - "highestRoleInstanceHelpText": "Le rôle le plus élevé dont dispose cet utilisateur dans l'instance", - "2fa": "2FA" - }, - "title": "{userAmount} Membres dans {workspaceName}", - "inviteMember": "Inviter un membre" - }, - "membersTabTitle": "Membres", - "invitesTabTitle": "Invite" - }, - "crudTableSearch": { - "search": "Recherche" - }, - "memberAssignmentModalFooter": { - "invite": "Inviter {count}", - "selectAll": "Sélectionner tout", - "deselectAll": "Désélectionner tout" - }, - "removeFromWorkspaceModal": { - "title": "Confirmer le retrait du projet", - "remove": "Supprimer", - "confirmation": "Voulez-vous vraiment supprimer {name} de {workspaceName} ? Cette action ne peut pas être annulée." - }, - "UserSessionExpiredNotification": { - "title": "Session expirée", - "content": "Vous avez été déconnecté·e car votre jeton d'authentification a expiré. Veuillez vous reconnecter." - }, - "memberSelectionList": { - "searchPlaceholder": "Rechercher …", - "selectedAmountLabel": "{count} sélectionné(s)" - }, - "permissionsUpdatedNotification": { - "title": "Permissions mises à jour", - "content": "Cela pourrait affecter ce à quoi vous avez accès, veuillez recharger la page.", - "action": "Recharger" - }, - "highestPaidRoleField": { - "billable": "Facturable" - }, - "editRoleContext": { - "billableRolesLink": "Documentation sur les rôles facturables", - "additionalRoles": "Autres rôles" - }, - "notificationPanel": { - "title": "Notifications", - "clearAll": "Effacer tout", - "markAllAsRead": "Marquer tout comme lu", - "noNotificationTitle": "Vous n'avez aucune notification", - "noNotification": "Nous vous informerons des mises à jour importantes et à chaque fois que vous serez mentionné sur Baserow.", - "newNotificationsAvailable": "Nouvelles notifications disponibles", - "refresh": "Actualiser" - }, - "clearAllNotificationsConfirmModal": { - "title": "Êtes-vous sûr·e de vouloir supprimer toutes les notifications ?", - "message": "Toutes les notifications seront définitivement supprimées et vous ne serez plus en mesure de les consulter." - }, - "uploadFileDropzone": { - "errorTooManyFilesMessage": "Vous ne pouvez envoyer qu'un seul fichier", - "errorWrongFileTypeTitle": "Type de fichier incorrect", - "errorWrongFileTypeMessage": "Vous ne pouvez pas télécharger un fichier de type {type}", - "drop": "Déposer ici", - "clickOrDrop": "Cliquez ou déposez vos fichiers ici", - "errorTooManyFilesTitle": "Trop de fichiers" - }, - "connectingToast": { - "title": "Reconnexion", - "content": "Reconnexion au serveur." - }, - "failedConnectingToast": { - "title": "Échec", - "content": "La connexion avec le serveur a été interrompue. Merci de rafraîchir la page.", - "action": "Actualiser la page" - }, - "authorizationErrorToast": { - "title": "Erreur d’autorisation", - "content": "Vous ne semblez pas avoir la permission de visualiser cette ressource.", - "action": "Actualiser la page" - }, - "userSessionExpiredToast": { - "content": "Vous avez été déconnecté·e car votre jeton d'authentification a expiré. Veuillez vous reconnecter.", - "title": "Session expirée" - }, - "restoreToast": { - "restore": "Restauration de {type}" - }, - "copyingToast": { - "title": "Copie...", - "content": "Préparation de vos données" - }, - "PastingToast": { - "content": "Préparation de vos données", - "title": "Collage..." - }, - "undoRedoToast": { - "undoneTitle": "Annulée", - "undoneText": "L’action est annulée", - "noMoreUndo": "Plus d’action à annuler", - "undoingText": "Annulation de votre action", - "skippingUndoDueToError": "L’annulation a échoué en raison d’une erreur inconnue, étape ignorée.", - "redoingTitle": "Rétablissement...", - "redoneTitle": "Rétablie", - "redoneText": "L'action est rétablie", - "noMoreRedo": "Plus d’action à rétablir", - "skippingRedoDueToError": "Le rétablissement a échoué en raison d’une erreur inconnue, étape ignorée.", - "failed": "Échec", - "redoingText": "Rétablissement de votre action", - "undoingTitle": "Annulation..." - }, - "permissionsUpdatedToast": { - "content": "Cela pourrait affecter ce à quoi vous avez accès, veuillez recharger la page.", - "action": "Recharger", - "title": "Autorisations mises à jour" - }, - "richTextEditorMentionsList": { - "notFound": "Aucun utilisateur trouvé" - }, - "versionUpgradeNotification": { - "title": "La version {version} est arrivé ! Découvrez les nouveautés." - }, - "clearingToast": { - "title": "Nettoyage...", - "content": "Préparation de vos données" - }, - "integrationCreateEditModal": { - "editTitle": "Modifier l’intégration", - "warningTitle": "Avertissement", - "createTitle": "Nouvelle intégration" - }, - "integrationEditForm": { - "name": "Nom", - "namePlaceholder": "Saisissez le nom de l'intégration..." - }, - "workspaceInvitationCreatedNotification": { - "title": "{sender} vous a invité à rejoindre {workspaceName}", - "deletedUser": "Un utilisateur supprimé" - }, - "dropdown": { - "empty": "Aucune option disponible" - }, - "styleSidePanel": { - "paddingTop": "Espacement haut", - "paddingBottom": "Espacement bas" - }, - "styleBoxForm": { - "paddingError": "La valeur doit être un entier compris entre 0 et 200." - }, - "workspaceInvitationAcceptedNotification": { - "title": "{sender} a accepté votre invitation à rejoindre {workspaceName}", - "deletedUser": "Un utilisateur supprimé" - }, - "workspaceInvitationRejectedNotification": { - "title": "{sender} a rejeté votre invitation à rejoindre {workspaceName}", - "deletedUser": "Un utilisateur supprimé" - }, - "emailNotifications": { - "submitButton": "Mise à jour de la fréquence", - "label": "Mentions, commentaires et autres notifications", - "daily": "Tous les jours", - "title": "Notifications par courriel", - "never": "Jamais", - "weekly": "Chaque semaine", - "description": "Configurez la fréquence d'envoi des courriels dans votre boîte de réception.", - "instant": "Instantanée" - }, - "dataExplorer": { - "emptyText": "Aucune donnée disponible", - "noMatchingNodesText": "Aucun résultat n'a été trouvé.", - "noProvidersText": "Aucun fournisseur de données n'a été trouvé. Pour commencer, vous pouvez, par exemple, ajouter une source de données ou un paramètre de page." - }, - "formulaInputField": { - "errorInvalidFormula": "La formule est invalide.", - "advancedFormulaMode": "Mode formule avancée" - }, - "userPasswordChangedToast": { - "title": "Mot de passe modifié", - "content": "Votre mot de passe a été modifié. Veuillez vous connecter de nouveau." - }, - "integrationDropdown": { - "noIntegrations": "Aucune intégration trouvée.", - "addIntegration": "Ajouter une nouvelle intégration", - "integrationPlaceholder": "Sélectionnez une intégration", - "selectTypeFirst": "Choisir d'abord le type" - }, - "richTextEditorBubbleMenu": { - "bold": "Gras", - "strikethrough": "Barrer", - "italic": "Italique", - "underline": "Souligner", - "link": "Lien", - "linkEditPlaceholder": "URL du lien...", - "linkEditDone": "Valider" - }, - "richTextEditorFloatingMenu": { - "hierarchy": "Hiérarchie", - "lists": "Listes", - "paragraph": "Paragraphe", - "heading1": "Titre 1", - "heading2": "Titre 2", - "heading3": "Titre 3", - "orderedList": "Liste numérotée", - "unorderedList": "Liste à puces", - "code": "Code", - "taskList": "Liste de tâches" - }, - "workspaceSettingsModal": { - "title": "Paramètres du projet" - }, - "workspaceSettingType": { - "generativeAI": "IA générative" - }, - "generativeAIModelType": { - "openaiOrganization": "Organisation (facultatif)", - "ollama": "Ollama", - "openai": "OpenAI", - "openaiApiKeyLabel": "Clé API", - "openaiApiKeyDescription": "Saisissez une clé API OpenAI si vous souhaitez activer l'intégration. [Instructions sur l'obtention d'une clé API] (https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key).", - "openaiModelsLabel": "Modèles activés", - "openaiModelsDescription": "Fournir une liste de [modèles OpenAI] (https://platform.openai.com/docs/models/continuous-model-upgrades) séparés par des virgules qui peuvent être utilisés dans Baserow. (par exemple `gpt-3.5-turbo,gpt-4`)", - "ollamaHostLabel": "Hôte", - "ollamaHostDescription": "Indiquez le nom d'hôte de votre serveur [Ollama] (https://ollama.com/). Celui-ci s'exécute généralement localement sur votre propre serveur.", - "ollamaModelsLabel": "Modèles activés", - "ollamaModelsDescription": "Fournir une liste de [modèles Ollama installés] (https://ollama.com/library) séparés par des virgules. Notez que le modèle doit être téléchargé et installé avant de pouvoir être utilisé. (par exemple `llama2,mistral`)", - "anthropicApiKeyLabel": "Clé d'API", - "anthropicModelsLabel": "Modèles activés", - "anthropicModelsDescription": "Fournissez une liste de [modèles Anthropic](https://docs.anthropic.com/en/docs/about-claude/models) séparés par des virgules que vous souhaitez utilisés dans Baserow. (e.g. `claude-3-5-sonnet-20241022,claude-3-opus-20240229`)", - "mistral": "Mistral", - "mistralApiKeyLabel": "Clé d'API", - "mistralApiKeyDescription": "Fournissez une clé API Mistral si vous souhaitez activer l'intégration. [Instructions sur l'obtention d'une clé API](https://docs.mistral.ai/getting-started/quickstart/).", - "mistralModelsLabel": "Modèles activés", - "mistralModelsDescription": "Fournissez une liste de [modèles Mistral] (https://docs.mistral.ai/getting-started/models/models_overview/) séparés par des virgules qui vous souhaitez utiliser dans Baserow. (par exemple : `mistral-large-latest,mistral-small-latest`)", - "anthropic": "Anthropic", - "anthropicApiKeyDescription": "Fournissez une clé API Anthropic si vous souhaitez activer l'intégration. [Instructions sur l'obtention d'une clé API](https://docs.anthropic.com/en/api/getting-started).", - "openRouterModelsLabel": "Modèles activés", - "openRouter": "OpenRouter", - "openRouterModelsDescription": "Fournissez une liste de [modèles OpenRouter](https://openrouter.ai/models) séparés par des virgules qui peuvent être utilisés dans Baserow. (par exemple `openai/gpt-4o,anthropic/claude-3-haiku`)", - "openRouterApiKeyDescription": "Fournissez une clé API OpenRouter si vous souhaitez activer l'intégration. [Obtenir une clé API](https://openrouter.ai/settings/keys).", - "openRouterApiKeyLabel": "Clé API", - "openRouterOrganization": "Organisation (facultatif)", - "openaiBaseUrl": "URL de base", - "openaiBaseUrlDescription": "Utilise l'URL de base OpenAI par défaut si elle est vide. Elle peut être remplacée par https://eu.api.openai.com/v1, https://<votre-nom-de-ressource>.openai.azure.com, ou toute autre API compatible avec OpenAI." - }, - "generativeAIWorkspaceSettings": { - "title": "Paramètres de l'IA générative", - "changedTitle": "Les paramètres ont été mis à jour", - "changedDescription": "Les paramètres ont été mis à jour et seront désormais utilisés dans ce Projet.", - "submitButton": "Enregistrer", - "description": "Ces paramètres peuvent être utilisés pour définir la configuration de l'IA générative au niveau da Projet. Des fonctionnalités telles que le champ IA peuvent être désactivées parce qu'elles ne disposent pas d'une clé API pour l'un des modèles pris en charge. En fournissant les paramètres ici, vous pouvez activer ces fonctionnalités. Si vous laissez une valeur vide, les paramètres globaux de l'instance sont rétablis par défaut. Notez que tous les utilisateurs du Projet partageront ces paramètres.", - "openSettings": "Ouvrir la configuration", - "hideSettings": "Fermer" - }, - "dashboardVerifyEmail": { - "title": "Veuillez vérifier votre boîte aux lettres et cliquer sur le lien pour vérifier votre adresse électronique.", - "resendConfirmationEmail": "Renvoyer le courriel de confirmation" - }, - "resendEmailVerification": { - "confirmationEmailSentTitle": "Courriel de confirmation envoyé", - "confirmationEmailSentDescription": "Le courriel de confirmation a été envoyé." - }, - "verifyEmailAddress": { - "disabledPasswordProvider": "Le fournisseur d'authentification par mot de passe a été désactivé.", - "confirmation": "Votre adresse électronique a été vérifiée.", - "goToDashboard": "Aller à l'accueil", - "invalidToken": "Le jeton de confirmation n'est pas valide.", - "emailMismatchWarning": "Veuillez noter que l'adresse électronique vérifiée n'appartient pas au compte que vous utilisez actuellement." - }, - "emailNotVerified": { - "title": "Vérification de l'adresse électronique requise", - "description": "Veuillez consulter votre boîte aux lettres et cliquer sur le lien de vérification. Une fois vérifié, votre compte sera activé.", - "resend": "Renvoyer le courriel de confirmation" - }, - "inviteStep": { - "description": "Vous pouvez toujours en ajouter plus tard.", - "collaboratorsLabel": "Collaborateurs", - "title": "Inviter des collaborateurs" - }, - "moreStep": { - "title": "Dites-nous en un peu plus", - "roleOrJob": "Rôle ou titre du poste...", - "people": "Combien de personnes composent votre équipe ?", - "share": "Je suis d'accord pour partager ceci avec l'équipe de Baserow", - "country": "Pays" - }, - "teamStep": { - "marketingTeam": "Marketing", - "productAndDesignTeam": "Produit & Design", - "itAndSupportTeam": "Informatique & Support", - "hrAndLegalTeam": "RH & Juridique", - "financeTeam": "Finance", - "creativeProductionTeam": "Production créative", - "title": "Configurons ensemble votre premier Projet !", - "description": "À quelle équipe appartenez-vous ?", - "engineeringTeam": "Ingénieur", - "operationsTeam": "Opérations", - "salesAndAccountManagementTeam": "Ventes et gestion des comptes", - "customerServiceTeam": "Service clientèle", - "manufacturingTeam": "Industrie", - "otherPersonalTeam": "Autre / Personnel" - }, - "onboarding": { - "skip": "Ignorer pour le moment", - "failedTitle": "Une erreur est survenue", - "title": "Assistant de configuration", - "creating": "Création de votre premier projet", - "continue": "Continuer", - "cancel": "Je ne souhaite pas d'aide pour la configuration", - "failedDescription": "La configuration n'est pas totalement terminées, cependant certaines parties ont pu être complétées.", - "failedTryAgain": "Réessayer", - "failedSkip": "Passer l'Assistant de configuration" - }, - "selectAIModelForm": { - "AIType": "Type d'IA", - "AIModel": "Modèle d'IA", - "fileField": "Champ de fichier", - "temperatureLabel": "Température", - "temperatureDescription": "La température d'un LLM, un paramètre défini entre 0 et {max}, ajuste le caractère aléatoire des réponses - les valeurs les plus basses donnent des réponses ciblées, tandis que les valeurs les plus élevées augmentent la créativité." - }, - "workspaceStep": { - "title": "Créez votre Projet", - "workspaceLabel": "Nom du projet" - }, - "colorInput": { - "default": "Défaut" - }, - "imageInput": { - "labelDescription": "Sélectionnez une image...", - "labelButton": "Envoyer" - }, - "dataExplorerNode": { - "showMore": "Afficher plus de répétitions", - "selectNode": "Sélectionner" - }, - "dashboardApplication": { - "createdAt": "créé(e)" - }, - "templateCard": { - "viewMore": "Voir plus" - }, - "exportWorkspaceModal": { - "title": "Exporter", - "description": "Vos données seront exportées sous la forme d'un fichier ZIP, qui pourra être importé dans d'autres instances de Baserow.", - "exportSettings": "Paramètres d'exportation", - "export": "Exporter", - "reset": "Nouvel export", - "cancel": "Annuler", - "download": "Télécharger", - "noExports": "Il n'y a pas d'export pour ce projet.", - "created": "Créé le", - "importingState": "Import en cours", - "exportingState": "Export en cours...", - "exportingTableState": "Export en cours : {table}", - "exportingCreateArchiveState": "Création de l'archive" - }, - "exportWorkspaceForm": { - "onlyStructureLabel": "Exporter uniquement la structure", - "exportSettingsLabel": "Paramètres d'exportation", - "onlyStructureDescription": "Si cette option est activée, seule la structure des applications sera exportée. Les données ne seront pas incluses.", - "selectDataToExport": "Sélectionnez les données à exporter", - "selectAll": "Tout sélectionner", - "deselectAll": "Tout désélectionner" - }, - "importWorkspaceModal": { - "title": "Importer des données", - "upload": "Envoyer", - "cancel": "Annuler", - "close": "Fermer", - "retry": "Réessayer", - "uploading": "envoi…", - "chooseFile": "Choisir un fichier", - "selectApplications": "Sélectionner les données à importer", - "deselectAll": "Désélectionner tout", - "selectAll": "Sélectionner tout", - "applications": "Applications", - "successTitle": "L'importation des données est réussie", - "successMessage": "{count} applications importées", - "signatureVerificationNote": "Il n'est pas possible d'importer un fichier zip à partir d'une source non fiable.", - "invalidResourceTitle": "Ressource invalide", - "invalidResourceMessage": "Le fichier fourni n'est pas une exportation Baserow valide.", - "untrustedPublicKeyTitle": "Signature inconnue", - "untrustedPublicKeyMessage": "Le fichier fourni est signé avec une clé publique non approuvée. Demandez à votre administrateur d'ajouter la clé publique à la liste des clés de confiance ou de désactiver la vérification de la signature pour pouvoir importer ce fichier.", - "description": "Vous pouvez importer des données Baserow existantes en téléchargeant le fichier .zip d'une autre instance Baserow.", - "import": "Importer", - "done": "Valider", - "databases": "Bases de données", - "importingState": "Import en cours...", - "importingTableStructure": "Création en cours : {table}", - "importingTableData": "Import en cours : {table}", - "uploadAndImport": "Télécharger et importer" - }, - "user": { - "isStaff": "Est collaborateur", - "isWorkspaceAdmin": "Est l'administrateur du projet", - "active": "Actif", - "deactivated": "Inactif" - }, - "adminType": { - "dashboard": "Statistiques", - "users": "Utilisateurs", - "workspaces": "Projets" - }, - "workspacesAdminTable": { - "allWorkspaces": "Liste des projets", - "id": "ID", - "name": "Nom", - "members": "Membres", - "applications": "Applications", - "created": "Créé le", - "seatsTaken": "Places occupées", - "storageUsage": "Stockage utilisé (Mo)", - "rowCount": "Nombre de lignes", - "freeUsers": "Utilisateurs gratuits", - "usageHelpText": "Calculé chaque nuit lorsque le paramètre de suivi de l'utilisation des projets est activé" - }, - "editWorkspaceContext": { - "delete": "Supprimer définitivement" - }, - "deleteWorkspaceModal": { - "title": "Supprimer {name}", - "confirmation": "Êtes-vous sûr·e de vouloir supprimer le projet : {name} ?", - "comment": "Le projet va être supprimé définitivement ainsi que ses applications liées. Il est impossible d'annuler cette action.", - "delete": "Supprimer le projet {name}" - }, - "activeUsers": { - "newUsers": "Nouveaux utilisateurs", - "activeUsers": "Utilisateurs actifs" - }, - "usersAdminTable": { - "allUsers": "Liste des utilisateurs", - "id": "ID", - "username": "Identifiant", - "name": "Nom", - "workspaces": "Projets", - "lastLogin": "Dernière connexion", - "dateJoined": "Date d'inscription", - "active": "Actif" - }, - "editUserContext": { - "changePassword": "Modifier le mot de passe", - "delete": "Supprimer définitivement", - "impersonate": "Usurper" - }, - "changePasswordForm": { - "newPassword": "Nouveau mot de passe", - "repeatPassword": "Répétez le mot de passe", - "changePassword": "Mettre à jour le mot de passe", - "error": { - "doesntMatch": "Les deux mots de passe ne correspondent pas." - } - }, - "userForm": { - "fullName": "Nom complet", - "email": "Adresse électronique", - "isActive": "Est actif", - "warning": { - "changeEmail": "Si vous changez l'adresse électronique, l'utilisateur devra désormais utiliser celle-ci pour s'identifier. Ceci doit être signifié à l'utilisateur.", - "inactiveUser": "Un utilisateur inactif n'est plus en mesure de s'identifier.", - "userStaff": "Un collaborateur a accès à la liste des utilisateurs, des projets et peut changer les permissions de tous les utilisateurs." }, - "error": { - "invalidName": "Veuillez saisir un nom valide, il doit être composé de plus de 2 caractères et moins de 150.", - "invalidEmail": "Veuillez saisir une adresse électronique valide." + "changeUserPasswordModal": { + "changePassword": "Changer le mot de passe pour {username}" + }, + "deleteUserModal": { + "title": "Supprimer {username}", + "confirmation": "Êtes-vous sûr·e de vouloir supprimer l'utilisateur : {name} ?", + "comment1": "Le compte de l'utilisateur va être supprimé, cependant les projets dont l'utilisateur est membre vont continuer d'exister. Ces projets ne seront pas supprimés même si cet utilisateur est le dernier utilisateur du projet. Supprimer le dernier utilisateur d'un projet interdit à quiconque d'y accéder de nouveau.", + "comment2": "Après avoir supprimé un utilisateur, il sera possible de créer un nouveau compte avec la même adresse email. Si vous souhaitez éviter que l'utilisateur puisse se connecter avec cette adresse, vous pouvez désactiver l'utilisateur plutôt que supprimer son compte.", + "delete": "Supprimer l'utilisateur {username}" + }, + "editUserModal": { + "delete": "Supprimer l'utilisateur", + "edit": "Modifier {username}" + }, + "adminDashboard": { + "title": "Statistiques", + "totals": "Résumé", + "totalUsers": "Nombre d'utilisateur", + "totalWorkspaces": "Nombre de projet", + "totalApplications": "Nombre d'application", + "newUsers": "Nouveaux utilisateurs", + "newUsers24h": "Sur les dernières 24h", + "newUsers7days": "sur les 7 derniers jours", + "newUsers30days": "Sur les 30 derniers jours", + "activeUsers": "Utilisateurs actifs", + "activeUsers24h": "Sur les dernières 24h", + "activeUsers7days": "sur les 7 derniers jours", + "activeUsers30days": "Sur les 30 derniers jours", + "viewAll": "Consulter" + }, + "formGroup": { + "cancelProtectedField": "Annuler la modification", + "protectedField": "Ce champ est protégé. Cliquez pour changer." + }, + "userSourceType": { + "userCountSummary": "{count} utilisateurs ({lastUpdated})" + }, + "colorPickerContext": { + "pickColorPlaceholder": "Ou choisir une couleur prédéfinie" + }, + "guidedTourStep": { + "step": "{step} sur {totalSteps}", + "gotIt": "Compris", + "next": "Suivant", + "back": "Retour" + }, + "welcomeGuidedTourStep": { + "title": "Bienvenue sur Baserow", + "buttonText": "Démarrer la visite", + "content": "Faisons une visite rapide pour vous familiariser avec les principes de base. En quelques clics, vous apprendrez à organiser et à visualiser vos données sans effort" + }, + "controlCenterGuidedTourStep": { + "title": "Votre centre de contrôle Baserow", + "content": "La barre latérale gauche vous aide à gérer votre Projet :\n\n- Accueil - Accédez à votre tableau de bord principal.\n- Notifications - Restez informé des modifications et des mentions.\n- Inviter des membres - Collaborez en ajoutant des membres à votre équipe.\n- Corbeille - Listez et récupérez tous vos éléments supprimés." + }, + "createNewGuidedTourStep": { + "title": "Créer une nouvelle base de données ou une nouvelle application", + "content": "Cliquez sur \"Ajouter...\" pour créer une nouvelle base de données, une nouvelle application ou un nouveau tableau de bord pour votre projet, votre service ou votre équipe." + }, + "mcpEndpointSettings": { + "title": "Serveur MCP", + "createNewTitle": "Créer un endpoint pour serveur MCP", + "backToOverview": "Retour", + "createEndpoint": "Créer un endpoint", + "noEndpointsMessage": "Aucun endpoint pour serveur MCP (Model Context Protocol) n'a été ajouté. Ceux-ci peuvent être utilisés pour intégrer directement un LLM comme Claude, et permettre au LLM d'effectuer des actions directement dans Baserow. Créez un endpoint de serveur pour commencer." + }, + "mcpEndpointForm": { + "nameLabel": "Nom", + "workspaceLabel": "Projet" + }, + "mcpEndpoint": { + "detailLabel": "Plus d'informations", + "reveal": "Révéler l'URL complète", + "warning": "Considérez votre URL MCP comme un mot de passe, car il permet de modifier les données dans Baserow.", + "claudeInstructions": "Trois étapes simples pour démarrer avec Claude Desktop et le MCP de Baserow.\n\n1. Ouvrez les paramètres de Claude Desktop à partir de la barre de navigation (⌘+,).\n1. Allez dans l'onglet \"Develop\", et cliquez sur \"Edit Config\".\n1. Inclure la configuration JSON suivante dans `claude_desktop_config.json`.", + "endpointURLIntro": "L'URL du serveur MCP (Model Context Protocol) peut être ajoutée à tout client qui prend en charge les serveurs MCP. Il s'agit d'un endpoint unique qui donne au LLM un accès direct pour effectuer des actions dans l'espace de travail en votre nom.", + "cursorInstructions": "Trois étapes simples pour démarrer avec Cursor et le MCP de Baserow.\n\n1. Ouvrir les paramètres de Cursor (⇧+⌘+J)\n1. Naviguez vers l'onglet \"MCP\" et cliquez sur \"Add MCP Server\"\n1. Ajouter la configuration JSON suivante.", + "windsurfInstructions": "Deux étapes faciles pour configurer MCP avec Cascase en Windsurf.\n\n1. Naviguez vers Windsurf - Settings -> Advanced Settings ou Command Palette -> Open Windsurf settings page.\n1. Descendez jusqu'à la section Cascade et vous trouverez l'option pour ajouter un nouveau serveur, pour voir les serveurs existants, et un bouton pour voir le fichier de configuration JSON brut `mcp_config.json`. Ajoutez-y ce qui suit :" + }, + "importWorkspaceForm": { + "selectApplicationsToImport": "Sélectionnez les applications à importer" + }, + "workspaceSearch": { + "title": "Recherche", + "searchEverything": "Recherche...", + "searching": "Recherche en cours...", + "welcome": "Recherchez ce que vous souhaitez dans votre projet", + "welcomeSubtitle": "Utilisez le champ de recherche ci-dessus pour trouver des applications, des tables, des champs, etc.", + "navigate": "Voir", + "select": "Sélectionner", + "close": "Fermer", + "types": { + "applications": "Applications", + "tables": "Tables", + "fields": "Colonnes", + "rows": "Lignes" + }, + "noResults": "Aucun résultat trouvé", + "noResultsSubtitle": "Aucun résultat correspondant à \"{searchTerm}\"", + "empty": "(vide)" + }, + "action": { + "cancel": "Annuler", + "submit": "Valider" + }, + "disableTwoFactorAuth": { + "successTitle": "L'authentification à deux facteurs a été désactivée", + "errorWrongPasswordTitle": "Mot de passe erroné", + "errorWrongPasswordMessage": "Le mot de passe saisi ne correspond pas à votre mot de passe.", + "title": "Êtes-vous sûr‑e de vouloir désactiver 2FA ?", + "description": "Votre compte va perdre une couche supplémentaire de sécurité. Si quelqu'un découvre votre mot de passe, ils pourraient être en mesure de se connecter à votre compte.", + "cancel": "Annuler", + "disable": "Désactiver" + }, + "enableTwoFactorOptions": { + "cancel": "Annuler", + "continue": "Continuer" + }, + "saveBackupCode": { + "description": "Si vous perdez l'accès à votre application d'authentification ou à votre téléphone et que vous ne pouvez pas recevoir ou générer des codes d'authentification, vous pouvez utiliser cette sauvegarde. Vous ne pouvez l'utiliser qu'une seule fois. Veillez à le noter ou à le copier dans un endroit sûr afin de pouvoir y accéder sans vous connecter.", + "backupCodes": "Codes de secours", + "copy": "Copier", + "continue": "Continuer", + "backupCodesCopiedTitle": "Copié !", + "backupCodesCopiedMessage": "Codes de secours copiés dans le presse-papiers." + }, + "totpAuthType": { + "name": "App d'authentification", + "description": "Utilisez une application pour obtenir des codes d'authentification à deux facteurs. Vous pouvez, par exemple, utiliser des applications telles que Google Authenticator, Authy et Microsoft Authenticator.", + "enabledDescription": "Vous recevrez des codes de vérification via une application d'authentification. Pour configurer une autre application ou méthode, il vous suffit de désactiver l'option 2FA et de la configurer à nouveau.", + "sideLabel": "Recommandé" + }, + "twoFactorEnabled": { + "enabled": "Activé", + "disable": "Désactiver 2FA" + }, + "totpLogin": { + "backupCodesTitle": "Saisir le code de secours", + "backupCodesDescription": "Connectez-vous avec votre code de secours à usage unique.", + "authenticate": "S'authentifier", + "goBack": "Retour", + "totpTitle": "Authentification à deux facteurs", + "totpDescription": "Saisissez le code de votre application d'authentification.", + "verify": "Vérifier", + "useBackupCode": "Utiliser le code de secours", + "verificationFailed": "Échec de la vérification", + "verificationFailedDescription": "Le code saisie n'est pas correct.", + "loginExpired": "Connexion expirée", + "loginExpiredDescription": "Veuillez indiquer de nouveau votre mot de passe.", + "rateLimit": "Trop de tentatives." + }, + "formulaInputContext": { + "variables": "Variables", + "functions": "Fonctions", + "operators": "Opérateurs", + "search": "Recherche", + "useRegularInputModalTitle": "Utiliser une formule simple ?", + "useRegularInput": "Utiliser une formule simple", + "useAdvancedInput": "Utiliser le mode expert", + "useAdvancedInputModalTitle": "Utiliser le mode expert ?", + "modalMessage": "Le passage à un mode différent supprimera la formule actuelle. Êtes-vous sûr­·e de vouloir continuer ?", + "useSimpleInput": "Retourner en Mode basique", + "useSimpleInputModalTitle": "Retourner en mode basique ?" + }, + "twoFactorAuthSettings": { + "title": "Authentification à deux facteurs", + "loadingError": "Impossible de charger la configuration de l'authentification à deux facteurs." + }, + "coreHTTPTriggerServiceForm": { + "title": "URL du webhook", + "urlVersion": "Version", + "urlVersionPublished": "Public", + "urlVersionTest": "Test", + "copyUrl": "Copier l'URL du Webhook", + "urlCopied": "URL du webhook copiée dans le presse-papiers", + "description": "Ce webhook recevra des requêtes HTTP et déclenchera le scénario avec les données de la requête comme payload.", + "methodsOptionLabel": "Méthodes HTTP autorisées", + "methodsOptionDescription": "Contrôle les méthodes HTTP autorisées pour ce webhook. L'exclusion de GET réduit le risque de déclenchement accidentel du webhook.", + "methodsOptionAll": "Toutes", + "methodsOptionExcludeGet": "Exclure GET" + }, + "twoFactorAuthEmpty": { + "title": "Vous n'avez pas encore activé 2FA", + "description": "Ajoutez une couche de sécurité supplémentaire à votre compte.", + "enable": "Activer 2FA", + "notAllowedTitle": "2FA non activé", + "notAllowedDescription": "L'ajout de 2FA n'est possible que pour les comptes basés sur un mot de passe." + }, + "nodeHelpTooltip": { + "exampleLabel": "Exemple", + "result": "Résultat : {result}" + }, + "enableWithQRCode": { + "scanQRCode": "Scanner un QR code", + "scanQRCodeDescription": "Scannez le code avec une application comme Google Authenticator, Authy ou Microsoft Authenticator.", + "clickToCopy": "Vous pouvez également cliquer ici pour copier le code.", + "secretCopiedTitle": "Secret copié", + "secretCopiedMessage": "Secret TOTP copié dans le presse-papiers.", + "enterCode": "Entrez le code indiqué", + "enterCodeDescription": "Saisissez un code à 6 chiffres affiché par l'application pour confirmer que vous l'avez configuré correctement.", + "verificationFailed": "Échec de la vérification", + "verificationFailedDescription": "Le code saisi n'est pas valide.", + "provisioningFailed": "Échec du provisionnement", + "checkSuccess": "L'authentification à deux facteurs a été activée avec succès" + }, + "twoFactorAuthField": { + "enabled": "Activé", + "disabled": "Désactivé" + }, + "emailSettings": { + "title": "Modifier l'adresse courriel", + "successTitle": "Courriel de confirmation envoyé", + "successDescription": "Nous avons envoyé un courriel de confirmation à votre nouvelle adresse. Veuillez vérifier votre boîte de réception et cliquer sur le lien pour compléter le changement d'adresse.", + "currentEmailLabel": "Adresse courriel actuelle", + "newEmailLabel": "Nouvelle adresse courriel", + "passwordLabel": "Mot de passe actuel", + "submitButton": "Envoyer le courriel de confirmation", + "errorInvalidPasswordTitle": "Mot de passe invalide", + "errorInvalidPasswordMessage": "Vous ne pouvez pas demander de changement d'adresse courriel car votre mot de passe est incorrect.", + "errorEmailExistsTitle": "Courriel existant", + "errorEmailExistsMessage": "Il n'est pas possible de demander le changement d'adresse courriel parce qu'un compte avec cette adresse existe déjà.", + "errorNotAllowedTitle": "Changement de courriel non autorisé", + "errorNotAllowedMessage": "Vous ne pouvez pas modifier votre adresse courriel car votre compte utilise une authentification unique (SSO)." + }, + "changeEmail": { + "title": "Confirmer le changement de courriel", + "submit": "Confirmer le changement", + "changed": "Adresse courriel modifiée", + "message": "Votre adresse courriel a été modifiée avec succès. Vous pouvez maintenant vous connecter à Baserow en utilisant votre nouvelle adresse.", + "errorInvalidLinkTitle": "Lien invalide", + "errorInvalidLinkMessage": "Impossible de changer l'adresse courriel car le lien est invalide.", + "errorLinkExpiredTitle": "Lien expiré", + "errorLinkExpiredMessage": "Le lien de changement de courriel a expiré. Veuillez en générer un nouveau dans les paramètres de votre compte.", + "errorEmailExistsTitle": "Le courriel existe déjà", + "errorEmailExistsMessage": "Impossible de changer l'adresse courriel car un compte avec cette adresse existe déjâ.", + "errorEmailAlreadyChangedTitle": "Courriel déjà changé", + "errorEmailAlreadyChangedMessage": "L'adresse courriel a déjà été remplacée par l'adresse demandée." + }, + "adminUsers": { + "title": "Utilisateurs" + }, + "adminWorkspaces": { + "title": "Projets" } - }, - "changeUserPasswordModal": { - "changePassword": "Changer le mot de passe pour {username}" - }, - "deleteUserModal": { - "title": "Supprimer {username}", - "confirmation": "Êtes-vous sûr·e de vouloir supprimer l'utilisateur : {name} ?", - "comment1": "Le compte de l'utilisateur va être supprimé, cependant les projets dont l'utilisateur est membre vont continuer d'exister. Ces projets ne seront pas supprimés même si cet utilisateur est le dernier utilisateur du projet. Supprimer le dernier utilisateur d'un projet interdit à quiconque d'y accéder de nouveau.", - "comment2": "Après avoir supprimé un utilisateur, il sera possible de créer un nouveau compte avec la même adresse email. Si vous souhaitez éviter que l'utilisateur puisse se connecter avec cette adresse, vous pouvez désactiver l'utilisateur plutôt que supprimer son compte.", - "delete": "Supprimer l'utilisateur {username}" - }, - "editUserModal": { - "delete": "Supprimer l'utilisateur", - "edit": "Modifier {username}" - }, - "adminDashboard": { - "title": "Statistiques", - "totals": "Résumé", - "totalUsers": "Nombre d'utilisateur", - "totalWorkspaces": "Nombre de projet", - "totalApplications": "Nombre d'application", - "newUsers": "Nouveaux utilisateurs", - "newUsers24h": "Sur les dernières 24h", - "newUsers7days": "sur les 7 derniers jours", - "newUsers30days": "Sur les 30 derniers jours", - "activeUsers": "Utilisateurs actifs", - "activeUsers24h": "Sur les dernières 24h", - "activeUsers7days": "sur les 7 derniers jours", - "activeUsers30days": "Sur les 30 derniers jours", - "viewAll": "Consulter" - }, - "formGroup": { - "cancelProtectedField": "Annuler la modification", - "protectedField": "Ce champ est protégé. Cliquez pour changer." - }, - "userSourceType": { - "userCountSummary": "{count} utilisateurs ({lastUpdated})" - }, - "colorPickerContext": { - "pickColorPlaceholder": "Ou choisir une couleur prédéfinie" - }, - "guidedTourStep": { - "step": "{step} sur {totalSteps}", - "gotIt": "Compris", - "next": "Suivant", - "back": "Retour" - }, - "welcomeGuidedTourStep": { - "title": "Bienvenue sur Baserow", - "buttonText": "Démarrer la visite", - "content": "Faisons une visite rapide pour vous familiariser avec les principes de base. En quelques clics, vous apprendrez à organiser et à visualiser vos données sans effort" - }, - "controlCenterGuidedTourStep": { - "title": "Votre centre de contrôle Baserow", - "content": "La barre latérale gauche vous aide à gérer votre Projet :\n\n- Accueil - Accédez à votre tableau de bord principal.\n- Notifications - Restez informé des modifications et des mentions.\n- Inviter des membres - Collaborez en ajoutant des membres à votre équipe.\n- Corbeille - Listez et récupérez tous vos éléments supprimés." - }, - "createNewGuidedTourStep": { - "title": "Créer une nouvelle base de données ou une nouvelle application", - "content": "Cliquez sur \"Ajouter...\" pour créer une nouvelle base de données, une nouvelle application ou un nouveau tableau de bord pour votre projet, votre service ou votre équipe." - }, - "mcpEndpointSettings": { - "title": "Serveur MCP", - "createNewTitle": "Créer un endpoint pour serveur MCP", - "backToOverview": "Retour", - "createEndpoint": "Créer un endpoint", - "noEndpointsMessage": "Aucun endpoint pour serveur MCP (Model Context Protocol) n'a été ajouté. Ceux-ci peuvent être utilisés pour intégrer directement un LLM comme Claude, et permettre au LLM d'effectuer des actions directement dans Baserow. Créez un endpoint de serveur pour commencer." - }, - "mcpEndpointForm": { - "nameLabel": "Nom", - "workspaceLabel": "Projet" - }, - "mcpEndpoint": { - "detailLabel": "Plus d'informations", - "reveal": "Révéler l'URL complète", - "warning": "Considérez votre URL MCP comme un mot de passe, car il permet de modifier les données dans Baserow.", - "claudeInstructions": "Trois étapes simples pour démarrer avec Claude Desktop et le MCP de Baserow.\n\n1. Ouvrez les paramètres de Claude Desktop à partir de la barre de navigation (⌘+,).\n1. Allez dans l'onglet \"Develop\", et cliquez sur \"Edit Config\".\n1. Inclure la configuration JSON suivante dans `claude_desktop_config.json`.", - "endpointURLIntro": "L'URL du serveur MCP (Model Context Protocol) peut être ajoutée à tout client qui prend en charge les serveurs MCP. Il s'agit d'un endpoint unique qui donne au LLM un accès direct pour effectuer des actions dans l'espace de travail en votre nom.", - "cursorInstructions": "Trois étapes simples pour démarrer avec Cursor et le MCP de Baserow.\n\n1. Ouvrir les paramètres de Cursor (⇧+⌘+J)\n1. Naviguez vers l'onglet \"MCP\" et cliquez sur \"Add MCP Server\"\n1. Ajouter la configuration JSON suivante.", - "windsurfInstructions": "Deux étapes faciles pour configurer MCP avec Cascase en Windsurf.\n\n1. Naviguez vers Windsurf - Settings -> Advanced Settings ou Command Palette -> Open Windsurf settings page.\n1. Descendez jusqu'à la section Cascade et vous trouverez l'option pour ajouter un nouveau serveur, pour voir les serveurs existants, et un bouton pour voir le fichier de configuration JSON brut `mcp_config.json`. Ajoutez-y ce qui suit :" - }, - "importWorkspaceForm": { - "selectApplicationsToImport": "Sélectionnez les applications à importer" - }, - "workspaceSearch": { - "title": "Recherche", - "searchEverything": "Recherche...", - "searching": "Recherche en cours...", - "welcome": "Recherchez ce que vous souhaitez dans votre projet", - "welcomeSubtitle": "Utilisez le champ de recherche ci-dessus pour trouver des applications, des tables, des champs, etc.", - "navigate": "Voir", - "select": "Sélectionner", - "close": "Fermer", - "types": { - "applications": "Applications", - "tables": "Tables", - "fields": "Colonnes", - "rows": "Lignes" - }, - "noResults": "Aucun résultat trouvé", - "noResultsSubtitle": "Aucun résultat correspondant à \"{searchTerm}\"" - }, - "action": { - "cancel": "Annuler", - "submit": "Valider" - }, - "disableTwoFactorAuth": { - "successTitle": "L'authentification à deux facteurs a été désactivée", - "errorWrongPasswordTitle": "Mot de passe erroné", - "errorWrongPasswordMessage": "Le mot de passe saisi ne correspond pas à votre mot de passe.", - "title": "Êtes-vous sûr‑e de vouloir désactiver 2FA ?", - "description": "Votre compte va perdre une couche supplémentaire de sécurité. Si quelqu'un découvre votre mot de passe, ils pourraient être en mesure de se connecter à votre compte.", - "cancel": "Annuler", - "disable": "Désactiver" - }, - "enableTwoFactorOptions": { - "cancel": "Annuler", - "continue": "Continuer" - }, - "saveBackupCode": { - "description": "Si vous perdez l'accès à votre application d'authentification ou à votre téléphone et que vous ne pouvez pas recevoir ou générer des codes d'authentification, vous pouvez utiliser cette sauvegarde. Vous ne pouvez l'utiliser qu'une seule fois. Veillez à le noter ou à le copier dans un endroit sûr afin de pouvoir y accéder sans vous connecter.", - "backupCodes": "Codes de secours", - "copy": "Copier", - "continue": "Continuer", - "backupCodesCopiedTitle": "Copié !", - "backupCodesCopiedMessage": "Codes de secours copiés dans le presse-papiers." - }, - "totpAuthType": { - "name": "App d'authentification", - "description": "Utilisez une application pour obtenir des codes d'authentification à deux facteurs. Vous pouvez, par exemple, utiliser des applications telles que Google Authenticator, Authy et Microsoft Authenticator.", - "enabledDescription": "Vous recevrez des codes de vérification via une application d'authentification. Pour configurer une autre application ou méthode, il vous suffit de désactiver l'option 2FA et de la configurer à nouveau.", - "sideLabel": "Recommandé" - }, - "twoFactorEnabled": { - "enabled": "Activé", - "disable": "Désactiver 2FA" - }, - "totpLogin": { - "backupCodesTitle": "Saisir le code de secours", - "backupCodesDescription": "Connectez-vous avec votre code de secours à usage unique.", - "authenticate": "S'authentifier", - "goBack": "Retour", - "totpTitle": "Authentification à deux facteurs", - "totpDescription": "Saisissez le code de votre application d'authentification.", - "verify": "Vérifier", - "useBackupCode": "Utiliser le code de secours", - "verificationFailed": "Échec de la vérification", - "verificationFailedDescription": "Le code saisie n'est pas correct.", - "loginExpired": "Connexion expirée", - "loginExpiredDescription": "Veuillez indiquer de nouveau votre mot de passe.", - "rateLimit": "Trop de tentatives." - }, - "formulaInputContext": { - "variables": "Variables", - "functions": "Fonctions", - "operators": "Opérateurs", - "search": "Recherche", - "useRegularInputModalTitle": "Utiliser une formule simple ?", - "useRegularInput": "Utiliser une formule simple", - "useAdvancedInput": "Utiliser la saisie avancée", - "useAdvancedInputModalTitle": "Utiliser la saisie avancée pour ce champ ?", - "modalMessage": "Le contenu de votre champ sera effacé et il ne sera pas possible de le récupérer." - }, - "twoFactorAuthSettings": { - "title": "Authentification à deux facteurs", - "loadingError": "Impossible de charger la configuration de l'authentification à deux facteurs." - }, - "coreHTTPTriggerServiceForm": { - "title": "URL du webhook", - "urlVersion": "Version", - "urlVersionPublished": "Public", - "urlVersionTest": "Test", - "copyUrl": "Copier l'URL du Webhook", - "urlCopied": "URL du webhook copiée dans le presse-papiers", - "description": "Ce webhook recevra des requêtes HTTP et déclenchera le scénario avec les données de la requête comme payload.", - "methodsOptionLabel": "Méthodes HTTP autorisées", - "methodsOptionDescription": "Contrôle les méthodes HTTP autorisées pour ce webhook. L'exclusion de GET réduit le risque de déclenchement accidentel du webhook.", - "methodsOptionAll": "Toutes", - "methodsOptionExcludeGet": "Exclure GET" - }, - "twoFactorAuthEmpty": { - "title": "Vous n'avez pas encore activé 2FA", - "description": "Ajoutez une couche de sécurité supplémentaire à votre compte.", - "enable": "Activer 2FA", - "notAllowedTitle": "2FA non activé", - "notAllowedDescription": "L'ajout de 2FA n'est possible que pour les comptes basés sur un mot de passe." - }, - "nodeHelpTooltip": { - "exampleLabel": "Exemple", - "result": "Résultat : {result}" - }, - "enableWithQRCode": { - "scanQRCode": "Scanner un QR code", - "scanQRCodeDescription": "Scannez le code avec une application comme Google Authenticator, Authy ou Microsoft Authenticator.", - "clickToCopy": "Vous pouvez également cliquer ici pour copier le code.", - "secretCopiedTitle": "Secret copié", - "secretCopiedMessage": "Secret TOTP copié dans le presse-papiers.", - "enterCode": "Entrez le code indiqué", - "enterCodeDescription": "Saisissez un code à 6 chiffres affiché par l'application pour confirmer que vous l'avez configuré correctement.", - "verificationFailed": "Échec de la vérification", - "verificationFailedDescription": "Le code saisi n'est pas valide.", - "provisioningFailed": "Échec du provisionnement", - "checkSuccess": "L'authentification à deux facteurs a été activée avec succès" - }, - "twoFactorAuthField": { - "enabled": "Activé", - "disabled": "Désactivé" - } } diff --git a/web-frontend/modules/core/locales/ko.json b/web-frontend/modules/core/locales/ko.json index 1c2c5b8666..af08f201a9 100644 --- a/web-frontend/modules/core/locales/ko.json +++ b/web-frontend/modules/core/locales/ko.json @@ -354,11 +354,11 @@ }, "connectingToast": { "title": "재연결 중", - "content": "서버와 재연결 중입니다." + "content": "실시간 업데이트 재구축 시도 중입니다." }, "failedConnectingToast": { "title": "실패", - "content": "서버에 연결하지 못했습니다. 페이지를 새로고침하세요.", + "content": "실시간 업데이트를 다시 설정할 수 없습니다. 계속하려면 페이지를 새로고침하세요.", "action": "페이지 새로고침" }, "authorizationErrorToast": { @@ -550,11 +550,11 @@ "descriptionPartTwo": "양식에서 사용할 수 있는 모든 필드를 미리 채울 수 있습니다.", "howToHide": { "title": "필드를 숨기는 방법", - "description": "필드를 동적으로 숨기려면, 공개 양식 URL에 쿼리 매개변수를 추가할 수 있습니다. 이 쿼리 매개변수는 잠재적인 미래의 쿼리 매개변수와의 충돌을 피하기 위해 `hide_`로 접두어가 붙습니다." + "description": "필드를 동적으로 숨기려면 URL의 공개 값에 쿼리 매개변수를 추가하면 됩니다. 이러한 쿼리 매개변수는 향후 추가될 수 있는 쿼리 매개변수와의 충돌을 방지하기 위해 `hide_` 접두사로 시작합니다." }, "howToPrefill": { "title": "양식을 미리 채우는 방법", - "description": "양식을 데이터로 미리 채우려면, 공개 양식 URL에 쿼리 매개변수를 추가할 수 있습니다. 이 쿼리 매개변수는 잠재적인 미래의 쿼리 매개변수와의 충돌을 피하기 위해 `prefill`로 접두어가 붙습니다." + "description": "양식에 데이터를 미리 채우려면 공개 양식 URL에 쿼리 매개변수를 추가하면 됩니다. 이러한 쿼리 매개변수는 향후 추가될 쿼리 매개변수와의 충돌을 방지하기 위해 `prefill` 접두사로 시작합니다." }, "format": { "title": "형식", @@ -999,7 +999,8 @@ "tables": "테이블", "fields": "필드", "rows": "행" - } + }, + "empty": "(비어 있음)" }, "action": { "cancel": "취소", @@ -1075,9 +1076,11 @@ "search": "검색", "useRegularInputModalTitle": "이 필드에 일반 입력값을 사용하시겠습니까?", "useRegularInput": "일반적인 입력을 사용", - "useAdvancedInput": "고급 입력 사용", - "useAdvancedInputModalTitle": "이 필드에 고급 입력 기능을 사용하시겠습니까?", - "modalMessage": "해당 필드의 내용이 모두 삭제되며 복구할 수 없습니다." + "useAdvancedInput": "전문가 모드로 전환", + "useAdvancedInputModalTitle": "전문가 모드로 전환하시겠습니까?", + "modalMessage": "다른 모드로 전환하면 현재 수식이 삭제됩니다. 계속하시겠습니까?", + "useSimpleInput": "기본 모드로 전환", + "useSimpleInputModalTitle": "기본 모드로 전환하시겠습니까?" }, "twoFactorAuthField": { "enabled": "활성화됨", @@ -1106,5 +1109,40 @@ "verificationFailedDescription": "입력한 코드가 유효하지 않습니다.", "provisioningFailed": "프로비저닝에 실패했습니다", "checkSuccess": "2단계 인증을 성공적으로 활성화했습니다" + }, + "changeEmail": { + "title": "이메일 변경을 확인하세요", + "submit": "이메일 변경을 확인하세요", + "changed": "이메일 주소가 변경되었습니다", + "message": "이메일 주소 변경이 완료되었습니다. 이제 새 이메일 주소로 Baserow에 로그인할 수 있습니다.", + "errorInvalidLinkTitle": "잘못된 링크", + "errorInvalidLinkMessage": "링크가 유효하지 않아 이메일 주소를 변경할 수 없습니다.", + "errorLinkExpiredTitle": "링크가 만료되었습니다", + "errorLinkExpiredMessage": "이메일 주소 변경 링크가 만료되었습니다. 계정 설정에서 새 링크를 요청해 주세요.", + "errorEmailExistsTitle": "이메일이 이미 존재합니다", + "errorEmailExistsMessage": "이미 동일한 이메일 주소를 사용하는 계정이 존재하므로 이메일 주소를 변경할 수 없습니다.", + "errorEmailAlreadyChangedTitle": "이메일 주소가 이미 변경되었습니다", + "errorEmailAlreadyChangedMessage": "이메일 주소는 이미 요청하신 주소로 변경되었습니다." + }, + "adminUsers": { + "title": "사용자" + }, + "adminWorkspaces": { + "title": "작업공간" + }, + "emailSettings": { + "title": "이메일 주소 변경", + "successTitle": "확인 이메일이 발송되었습니다", + "successDescription": "새 이메일 주소로 확인 이메일을 보내드렸습니다. 받은 편지함을 확인하시고 링크를 클릭하여 이메일 주소 변경을 완료해 주세요.", + "currentEmailLabel": "현재 이메일 주소", + "newEmailLabel": "새 이메일 주소", + "passwordLabel": "현재 비밀번호", + "submitButton": "확인 이메일 발송", + "errorInvalidPasswordTitle": "잘못된 비밀번호입니다", + "errorInvalidPasswordMessage": "비밀번호가 잘못되어 이메일 변경을 요청할 수 없습니다.", + "errorEmailExistsTitle": "이메일이 이미 존재합니다", + "errorEmailExistsMessage": "이미 해당 이메일 주소를 사용하는 계정이 존재하므로 이메일 변경을 요청할 수 없습니다.", + "errorNotAllowedTitle": "이메일 변경은 허용되지 않습니다", + "errorNotAllowedMessage": "귀하의 계정은 단일 로그인(SSO) 인증을 사용하고 있으므로 이메일 주소를 변경할 수 없습니다." } } diff --git a/web-frontend/modules/core/locales/nl.json b/web-frontend/modules/core/locales/nl.json index 0babea55a9..b31fadec09 100644 --- a/web-frontend/modules/core/locales/nl.json +++ b/web-frontend/modules/core/locales/nl.json @@ -1,1208 +1,1257 @@ { - "paginator": { - "page": "pagina", - "of": "van {pages}" - }, - "copied": { - "label": "Gekopieerd!" - }, - "sidebarApplication": { - "renameApplication": "Hernoem {type}", - "viewTrash": "Bekijk Prullenbak", - "deleteApplication": "Verwijder {type}", - "duplicateApplication": "Dupliceer {type}", - "snapshots": "Snapshots", - "rename": "Hernoemen", - "duplicate": "Dupliceer", - "delete": "Verwijder" - }, - "sidebar": { - "createWorkspace": "Werkruimte aanmaken", - "inviteOthers": "Nodig anderen uit", - "logoff": "Afmelden", - "errorNoWorkspace": "Je hebt geen werkruimtes.", - "admin": "Beheerder", - "dashboard": "Dashboard", - "trash": "Prullenbak", - "settings": "Instellingen", - "members": "Leden", - "notifications": "Meldingen", - "general": "Algemeen", - "home": "Home", - "people": "Gebruikers", - "addNewWorkspace": "Nieuwe werkruimte toevoegen", - "adminTools": "Beheerprogramma's", - "adminSettings": "Beheerdersinstellingen", - "licenses": "Licenties" - }, - "accountForm": { - "nameLabel": "Je naam", - "languageLabel": "Taal van de interface" - }, - "accountSettings": { - "title": "Account", - "changedTitle": "Gewijzigd", - "changedDescription": "Je accountgegevens zijn gewijzigd.", - "submitButton": "Account bijwerken" - }, - "settingsModal": { - "title": "Instellingen" - }, - "passwordSettings": { - "title": "Wachtwoord wijzigen", - "changedTitle": "Wachtwoord gewijzigd", - "changedDescription": "Je wachtwoord is gewijzigd. De volgende keer dat je wilt inloggen, moet je het nieuwe wachtwoord gebruiken.", - "oldPasswordLabel": "Oud wachtwoord", - "oldPasswordRequiredError": "Oud wachtwoord is een verplicht veld.", - "newPasswordLabel": "Nieuw wachtwoord", - "repeatNewPasswordLabel": "Herhaal nieuw wachtwoord", - "repeatNewPasswordMatchError": "Dit veld moet overeenkomen met je nieuwe wachtwoordveld.", - "submitButton": "Wachtwoord wijzigen", - "errorInvalidOldPasswordTitle": "Ongeldig wachtwoord", - "errorInvalidOldPasswordMessage": "Wachtwoord kon niet veranderd worden omdat je oude wachtwoord ongeldig is." - }, - "error": { - "alreadyExistsTitle": "Gebruiker bestaat al", - "alreadyExistsMessage": "Er bestaat al een gebruiker met het opgegeven e-mailadres.", - "passwordRequired": "Wachtwoord is een verplicht veld.", - "invalidEmail": "Voer een geldig e-mail adres in.", - "disabledAccountTitle": "Account uitgeschakeld", - "disabledAccountMessage": "Dit gebruikersaccount is uitgeschakeld.", - "incorrectCredentialTitle": "Inloggegevens zijn niet correct", - "incorrectCredentialMessage": "Het opgegeven e-mailadres of wachtwoord is niet correct.", - "inputRequired": "Dit is een verplicht veld.", - "disabledPasswordProviderTitle": "Wachtwoordverificatie is uitgeschakeld.", - "disabledPasswordProviderMessage": "Gebruik een andere authenticatie provider." - }, - "field": { - "language": "Taal", - "emailAddress": "E-mailadres", - "name": "Je naam", - "password": "Wachtwoord", - "passwordRepeat": "Herhaal wachtwoord" - }, - "invitationTitle": "Uitnodiging", - "invitationMessage": "{invitedBy} heeft je uitgenodigd om lid te worden van {workspace}.", - "workspaceForm": { - "nameLabel": "Naam" - }, - "leaveWorkspaceModal": { - "title": "Verlaat {workspace}", - "message": "Weet je zeker dat je de werkruimte {workspace} wilt verlaten? Je hebt dan geen toegang meer tot de relevante applicaties. Als je opnieuw toegang wilt krijgen, moet een van de beheerders je opnieuw uitnodigen. Als je de werkruimte verlaat, zal de werkruimte niet worden verwijderd. Alle andere leden zullen er nog steeds toegang toe hebben. Het is niet mogelijk om een werkruimte te verlaten als je de laatste beheerder bent, omdat deze dan niet meer wordt onderhouden.", - "leave": "Verlaat werkruimte" - }, - "dashboardWorkspace": { - "showMembers": "Leden", - "createApplication": "Nieuwe aanmaken" - }, - "workspaceInvitation": { - "title": "Uitnodiging", - "message": "{by} heeft je uitgenodigd om lid te worden van {workspace}.", - "reject": "Weigeren", - "accept": "Accepteren" - }, - "workspaceMemberModal": { - "membersModalTitle": "Leden van {workspace}", - "userDescription": "{user} - lid geworden {since} geleden", - "invitationDescription": "uitgenodigd {since} geleden", - "sendInvite": "Uitnodiging versturen", - "userAlreadyInWorkspaceTitle": "Gebruiker zit al in de werkruimte.", - "userAlreadyInWorkspaceText": "Het is niet mogelijk een uitnodiging te versturen als de gebruiker al lid is van de werkruimte.", - "userDescriptionPendingDeletion": "{user} - in afwachting van verwijdering" - }, - "workspaceInviteForm": { - "invitationFormTitle": "Uitnodigen per e-mail", - "optionalMessagePlaceholder": "Optioneel bericht", - "errorInvalidEmail": "Voer een geldig e-mail adres in.", - "errorTooLongMessage": "Berichten zijn beperkt tot {amount} tekens.", - "additionalRoles": "Extra rollen" - }, - "workspacesContext": { - "search": "Zoek werkruimtes", - "noResults": "Geen resultaten gevonden", - "createWorkspace": "Werkruimte aanmaken" - }, - "workspaceContext": { - "renameWorkspace": "Hernoem werkruimte", - "members": "Leden", - "viewTrash": "Bekijk Prullenbak", - "leaveWorkspace": "Verlaat werkruimte", - "deleteWorkspace": "werkruimte verwijderen", - "auditLog": "Audit log", - "settings": "Instellingen", - "importWorkspace": "Data importeren", - "exportWorkspace": "Data exporteren" - }, - "createWorkspaceModal": { - "createNew": "Nieuwe werkruimte aanmaken", - "add": "werkruimte toevoegen", - "defaultName": "Naamloze werkruimte", - "permissionDeniedTitle": "Toestemming geweigerd", - "permissionDeniedBody": "U heeft niet de vereiste rechten om een nieuwe werkruimte te maken." - }, - "templateCategories": { - "search": "Zoek sjablonen", - "title": "Sjablonen" - }, - "templateHeader": { - "use": "Gebruik deze sjabloon" - }, - "trashSidebar": { - "title": "Prullenbak", - "unnamedWorkspace": "Naamloze werkruimte {id}", - "workspaces": "Werkruimtes" - }, - "trashContents": { - "message": "Herstel items verwijderd in de afgelopen {duration}", - "empty": "Er is niets verwijderd in de afgelopen drie dagen.", - "emptyButtonTrashed": "Verwijder {type} permanent", - "emptyButtonNotTrashed": "Leeg de Prullenbak van dit {type}", - "unnamed": "Naamloos {type} {id}" - }, - "trashEmptyModal": { - "titleIsTrashed": "Weet je zeker dat je {name} permanent wilt verwijderen?", - "titleIsNotTrashed": "Weet je zeker dat je de Prullenbak van {name} wilt legen?", - "messageIsTrashed": "De gehele inhoud van de prullenbak wordt permanent gewist. Dit kan niet ongedaan gemaakt of opgehaald worden.", - "messageIsNotTrashed": "Dit zal de items lijst permanent verwijderen. Herstel of ophalen is dan niet meer mogelijk.", - "buttonIsTrashed": "Permanent verwijderen", - "buttonIsNotTrashed": "Legen" - }, - "trashEntry": { - "deletedUser": "Een verwijderde gebruiker", - "fromParent": "van {parent}", - "name": "{user} heeft {type} {title} {parent} verwijderd", - "restore": "Herstel", - "unnamed": "Naamloos {type} {id}", - "andMore": "... en {count} meer" - }, - "trashModal": { - "emptyTitle": "Geen werkruimtes gevonden", - "emptyMessage": "Je bent geen lid van een werkruimte. Toepassingen zoals databases horen bij een werkruimte, dus om die aan te maken moet je eerst een werkruimte maken.", - "emptyMessageWithoutCreatePermission": "Je bent geen lid van een werkruimte. Toepassingen zoals databases horen bij een werkruimte, dus om ze aan te maken moet je eerst door een beheerder bij een werkruimte worden uitgenodigd." - }, - "uploadViaURLUserFileUpload": { - "title": "Uploaden vanaf een URL", - "urlLabel": "URL", - "urlError": "Een geldige URL is een verplicht veld." - }, - "userFilesModal": { - "title": "Uploaden van" - }, - "uploadFileUserFileUpload": { - "title": "Uploaden vanaf mijn apparaat", - "drop": "Naar hier slepen", - "clickOrDrop": "Klik of sleep je bestanden naar hier", - "retry": "Opnieuw proberen" - }, - "createApplicationContext": { - "fromTemplate": "Van sjabloon", - "table": "Tabel", - "tableDesc": "Maak een nieuwe plaats om gegevens in je database te beheren.", - "fromTemplateDesc": "Begin snel met een van onze aanbevolen templates", - "importWorkspace": "Data importeren", - "importWorkspaceDesc": "Bestaande gegevens van een Baserow instantie toevoegen." - }, - "applicationForm": { - "nameLabel": "Naam", - "namePlaceholder": "Voer de naam in..." - }, - "connectingNotification": { - "title": "Opnieuw verbinden", - "content": "Opnieuw verbinding maken met de server." - }, - "failedConnectingNotification": { - "title": "Mislukt", - "content": "Verbinding met de server is mislukt. Vernieuw de pagina.", - "action": "Pagina vernieuwen" - }, - "restoreNotification": { - "restore": "Herstel verwijderd {type}" - }, - "errorLayout": { - "notFound": "We kunnen de pagina die je zoekt niet vinden. Misschien is de URL niet correct, of misschien heb je geen autorisatie om deze pagina te bekijken.", - "error": "Er is iets misgegaan tijdens het laden van de pagina. Onze ontwikkelaars zijn op de hoogte gebracht van het probleem. Probeer Vernieuwen of ga terug naar het dashboard.", - "backDashboard": "Terug naar dashboard", - "backLogin": "Terug naar inloggen", - "wrong": "Er is iets misgegaan", - "refresh": "Pagina vernieuwen" - }, - "dashboard": { - "title": "Dashboard", - "alertTitle": "We hebben je hulp nodig!", - "alertText": "Als je Baserow nuttig vindt, dan waarderen we het zeer als je ons wilt sponsoren, sterren wilt geven of ons met anderen wilt delen. Door ons te sponsoren op GitHub krijg je vroegtijdige toegang tot de premium functies!", - "tweetContent": "Check {'@'}baserow, een open source no-code database tool en Airtable alternatief!", - "redditTitle": "'Baserow - Een open source no-code database", - "noWorkspaceTitle": "Geen werkruimtes gevonden", - "noWorkspaceText": "Je bent geen lid van een werkruimte. Toepassingen zoals databases horen bij een werkruimte, dus om die te maken moet je eerst een werkruimte aanmaken.", - "createWorkspace": "Werkruimte aanmaken", - "becomeGithubSponsor": "Word een GitHub sponsor", - "starOnGitlab": "Geef ons een ster op Gitlab", - "shareOnTwitter": "Tweet over Baserow", - "shareOnReddit": "Deel op Reddit", - "shareOnFacebook": "Deel op Facebook", - "shareOnLinkedIn": "Deel op LinkedIn", - "noWorkspaceTextWithoutCreatePermission": "Je bent geen lid van een werkruimte. Toepassingen zoals databases horen bij een werkruimte, dus om ze aan te maken moet je eerst door een beheerder bij een werkruimte worden uitgenodigd.", - "apiDocumentation": "API-documentatie", - "apiDocumentationMessage": "Meer informatie over onze code", - "emptyWorkspace": "Deze werkruimte is leeg", - "noWorkspaceDescription": "Begin met het maken van een nieuwe werkruimte", - "suggestedTemplates": "Voorgestelde templates", - "resources": "Bronnen", - "knowledgeBase": "Kennisbank", - "knowledgeBaseMessage": "Vind antwoorden op al je vragen", - "tutorials": "Tutorials", - "tutorialsMessage": "Ontdek het potentieel van Baserow", - "emptyWorkspaceMessage": "Begin met het maken van een nieuwe database of applicatie.", - "addNew": "Nieuwe toevoegen...", - "noWorkspace": "Geen werkruimte", - "starOnGitHub": "Geef een ster op GitHub" - }, - "login": { - "title": "Inloggen", - "forgotPassword": "Wachtwoord vergeten", - "emailPlaceholder": "Voer je e-mailadres in..", - "passwordPlaceholder": "Voer je wachtwoord in.", - "signUpText": "Heb je geen account?", - "signUp": "Aanmelden", - "displayPasswordLogin": "Inloggen met e-mail en wachtwoord", - "redirecting": "Doorsturen naar authenticatie provider..." - }, - "resetPassword": { - "title": "Wachtwoord resetten", - "newPassword": "Nieuw wachtwoord", - "repeatNewPassword": "Herhaal nieuw wachtwoord", - "submit": "Wachtwoord wijzigen", - "changed": "Wachtwoord gewijzigd", - "errorInvalidLinkTitle": "Ongeldige link", - "errorInvalidLinkMessage": "Kon het wachtwoord niet resetten omdat de link ongeldig is.", - "errorLinkExpiredTitle": "Link verlopen", - "errorLinkExpiredMessage": "De link voor het resetten van je wachtwoord is verlopen. Vraag een nieuwe link aan.", - "disabled": "Wachtwoord opnieuw instellen is uitgeschakeld", - "disabledMessage": "Het is niet mogelijk om het wachtwoord te resetten omdat het is uitgeschakeld.", - "message": "Je kunt nu inloggen op Baserow met je nieuwe wachtwoord." - }, - "signup": { - "headTitle": "Nieuw account aanmaken", - "title": "Aanmelden", - "disabled": "Aanmelden is uitgeschakeld", - "disabledMessage": "Het is niet mogelijk om een account aan te maken omdat het is uitgeschakeld.", - "requireFirstUser": "Welkom bij Baserow!", - "requireFirstUserMessage": "Vul het onderstaande formulier in om de admin gebruiker aan te maken.", - "passwordPlaceholder": "Voer je wachtwoord in.", - "namePlaceholder": "Voer je naam in..", - "passwordRepeatPlaceholder": "Bevestig je wachtwoord.", - "loginText": "Heb je al een account?", - "emailPlaceholder": "Voer je e-mailadres in..", - "login": "Inloggen", - "privacyPolicy": "Privacybeleid", - "agreeTerms": "Door een account aan te maken, gaat u akkoord met de {0} {1} {2}", - "terms": "Servicevoorwaarden" - }, - "forgotPassword": { - "title": "Wachtwoord vergeten", - "message": "Vul je e-mailadres in op het formulier. Als we een account vinden, sturen we een e-mail met een link om je wachtwoord te resetten.", - "submit": "Stuur link", - "confirmation": "Als je e-mailadres in onze database voorkomt, ontvangt je binnen enkele minuten op je e-mailadres een link om je wachtwoord opnieuw in te stellen.", - "disabled": "Wachtwoord resetten is uitgeschakeld", - "disabledMessage": "Het is niet mogelijk om een wachtwoord opnieuw in te stellen omdat het is uitgeschakeld.", - "loginText": "Heb je al een account en wachtwoord?", - "confirmationTitle": "Controleer je e-mail", - "goBack": "Ga terug" - }, - "settings": { - "settingsTitle": "Beheerdersinstellingen", - "baserowInstanceId": "Installatie-ID", - "instanceIdDescription": "De installatie-ID is de unieke identificatiecode van je Baserow instantie.", - "accountRestrictions": "Accountbeperkingen", - "settingAllowResetPasswordName": "Wachtwoord opnieuw instellen toestaan", - "settingAllowResetPasswordDescription": "Standaard kunnen gebruikers een link aanvragen om hun wachtwoord te resetten.", - "settingAllowResetPasswordWarning": "Houd er rekening mee dat u zichzelf van het systeem kunt uitsluiten en dat de toegang niet kan worden hersteld als u uw wachtwoord vergeet.", - "settingAllowNewAccountsName": "Toestaan aanmaken van nieuwe accounts", - "settingAllowNewAccountsDescription": "Standaard kan elke gebruiker die je Baserow-domein bezoekt zich aanmelden voor een nieuw account.", - "enabled": "ingeschakeld", - "settingAllowSignupsViaWorkspaceInvitationsName": "Aanmeldingen via werkruimte uitnodigingen toestaan", - "settingAllowSignupsViaWorkspaceInvitationDescription": "Zelfs als het aanmaken van nieuwe accounts is uitgeschakeld, kunnen direct uitgenodigde gebruikers met deze optie toch een account aanmaken.", - "userDeletionGraceDelay": "Gebruiker verwijderen", - "settingUserDeletionGraceDelay": "Respijtperiode", - "settingUserDeletionGraceDelayDescription": "Dit is het aantal dagen zonder login waarna een voor verwijdering geplande account permanent wordt verwijderd.", - "invalidAccountDeletionGraceDelay": "Deze waarde is vereist en moet een positief geheel getal zijn kleiner dan 32000", - "settingAllowNonStaffCreateWorkspaceOperation": "Laat iedereen nieuwe werkruimtes maken", - "settingAllowNonStaffCreateWorkspaceOperationDescription": "Standaard kan iedereen nieuwe werkruimtes aanmaken. Schakel dit uit om alleen staff toe te staan nieuwe werkruimtes aan te maken.", - "settingAllowNonStaffCreateWorkspaceOperationWarning": "Als deze instelling is ingeschakeld, wordt voor nieuwe gebruikers automatisch een werkruimte aangemaakt waarin ze een beheerder zijn, zodat ze voor de facturering als beheerder worden gerapporteerd. Om dit te voorkomen, schakelt u deze instelling uit en nieuw uitgenodigde gebruikers beginnen alleen met de rol waarmee ze zijn uitgenodigd.", - "maintenance": "Onderhoud", - "settingTrackWorkspaceUsage": "Werkruimte gebruik bijhouden", - "settingTrackWorkspaceUsageDescription": "Schakelt een nachtelijke taak in die het rij- en bestandsgebruik per werkruimte telt, weergegeven op de beheerpagina van de premium werkruimte.", - "userSettings": "Gebruiker", - "emailVerification": "E-mail verificatie", - "emailVerificationDescription": "Bepaalt of e-mailadressen moeten worden geverifieerd.", - "emailVerificationNoVerification": "Geen verificatie", - "emailVerificationRecommended": "Aanbevolen", - "emailVerificationEnforced": "Afgedwongen", - "baserowVersionDescription": "Het versienummer van deze instantie.", - "baserowVersion": "Baserow versie", - "settingsVerifyImportSignatureDescription": "Indien ingeschakeld, wordt de handtekening van de geïmporteerde gegevens geverifieerd om er zeker van te zijn dat er niet met de gegevens geknoeid is.", - "settingsVerifyImportSignature": "Verifieer import handtekening" - }, - "copyingNotification": { - "title": "Kopiëren...", - "content": "Uw gegevens voorbereiden" - }, - "undoRedoNotification": { - "undoingTitle": "Ongedaan maken...", - "undoingText": "Je actie ongedaan maken", - "redoneTitle": "Opnieuw gedaan", - "skippingRedoDueToError": "Opnieuw uitvoeren mislukt vanwege onbekende fout, overslaan.", - "redoingTitle": "Opnieuw doen...", - "redoingText": "Je actie overnieuw doen", - "redoneText": "Actie wordt opnieuw gedaan", - "noMoreRedo": "Geen acties meer om opnieuw te doen", - "skippingUndoDueToError": "Ongedaan maken mislukt door onbekende fout, overslaan.", - "failed": "Mislukt", - "undoneText": "Actie is ongedaan gemaakt", - "undoneTitle": "Ongedaan gemaakt", - "noMoreUndo": "Geen acties meer om ongedaan te maken" - }, - "AuthorizationErrorNotification": { - "title": "Autorisatiefout", - "content": "Het lijkt erop dat je niet de rechten hebt om deze bron te zien.", - "action": "Pagina vernieuwen" - }, - "formSidebar": { - "actions": { - "addAll": "Alles toevoegen", - "removeAll": "Alles verwijderen", - "addField": "Veld toevoegen" - }, - "fieldsDescription": "Alle velden staan in het formulier.", - "prefillInfoLink": "Waarden dynamisch vooraf invullen", - "modal": { - "title": "Waarden dynamisch vooraf invullen", - "descriptionPartOne": "Formulieren kunnen vooraf worden ingevuld om de gebruiker te helpen het formulier sneller in te vullen.", - "descriptionPartTwo": "Alle velden die in het formulier beschikbaar zijn, kunnen vooraf worden ingevuld.", - "howToPrefill": { - "title": "Een formulier vooraf invullen", - "description": "Als u een formulier vooraf met gegevens wilt invullen, kunt u dit doen via queryparameters die zijn toegevoegd aan de openbare formulier-URL. Deze queryparameters worden voorafgegaan door 'prefill' om elke botsing met mogelijke toekomstige queryparameters te voorkomen." - }, - "format": { - "title": "Format", - "description": "Het formaat van de queryparameters is als volgt:", - "codeSnippet": "?prefill_<field_name>=<value>" - }, - "example": { - "title": "Voorbeeld", - "description": "In het onderstaande voorbeeld willen we een veld genaamd `Naam` vullen met de waarde `Mike`", - "codeSnippet": "?prefill_Name=Mike" - }, - "spaces": { - "title": "Ruimtes", - "description": "Spaties in de veldnaam worden vervangen door `+` om problemen met de query parameter te voorkomen.", - "codeSnippet": "?prefill_my+field=Mike" - }, - "multipleValues": { - "title": "Meerdere waarden", - "description": "Als u meerdere velden wilt vullen, kunt u dat doen door een `,` tussen de waarden te plaatsen.", - "codeSnippet": "?prefill_multi+select=Mike,John" - }, - "specialFieldTypes": { - "title": "Speciale veldtypes", - "description": "Over het algemeen is de prefill-waarde gelijk aan de waarde van het veld. Maar er zijn enkele uitzonderingen waarbij de waarde wordt vertaald naar een andere waarde.", - "ratingField": { - "title": "Beoordelingsveld", - "description": "Een beoordelingsveld accepteert een getal om aan te geven hoeveel sterren er moeten worden ingevuld.", - "codeSnippet": "?prefill_rating=3" + "paginator": { + "page": "pagina", + "of": "van {pages}" + }, + "copied": { + "label": "Gekopieerd!" + }, + "sidebarApplication": { + "renameApplication": "Hernoem {type}", + "viewTrash": "Bekijk Prullenbak", + "deleteApplication": "Verwijder {type}", + "duplicateApplication": "Dupliceer {type}", + "snapshots": "Snapshots", + "rename": "Hernoemen", + "duplicate": "Dupliceer", + "delete": "Verwijder" + }, + "sidebar": { + "createWorkspace": "Werkruimte aanmaken", + "inviteOthers": "Nodig anderen uit", + "logoff": "Afmelden", + "errorNoWorkspace": "Je hebt geen werkruimtes.", + "admin": "Beheerder", + "dashboard": "Dashboard", + "trash": "Prullenbak", + "settings": "Instellingen", + "members": "Leden", + "notifications": "Meldingen", + "general": "Algemeen", + "home": "Home", + "people": "Gebruikers", + "addNewWorkspace": "Nieuwe werkruimte toevoegen", + "adminTools": "Beheerprogramma's", + "adminSettings": "Beheerdersinstellingen", + "licenses": "Licenties" + }, + "accountForm": { + "nameLabel": "Je naam", + "languageLabel": "Taal van de interface" + }, + "accountSettings": { + "title": "Account", + "changedTitle": "Gewijzigd", + "changedDescription": "Je accountgegevens zijn gewijzigd.", + "submitButton": "Account bijwerken" + }, + "settingsModal": { + "title": "Instellingen" + }, + "passwordSettings": { + "title": "Wachtwoord wijzigen", + "changedTitle": "Wachtwoord gewijzigd", + "changedDescription": "Je wachtwoord is gewijzigd. De volgende keer dat je wilt inloggen, moet je het nieuwe wachtwoord gebruiken.", + "oldPasswordLabel": "Oud wachtwoord", + "oldPasswordRequiredError": "Oud wachtwoord is een verplicht veld.", + "newPasswordLabel": "Nieuw wachtwoord", + "repeatNewPasswordLabel": "Herhaal nieuw wachtwoord", + "repeatNewPasswordMatchError": "Dit veld moet overeenkomen met je nieuwe wachtwoordveld.", + "submitButton": "Wachtwoord wijzigen", + "errorInvalidOldPasswordTitle": "Ongeldig wachtwoord", + "errorInvalidOldPasswordMessage": "Wachtwoord kon niet veranderd worden omdat je oude wachtwoord ongeldig is." + }, + "error": { + "alreadyExistsTitle": "Gebruiker bestaat al", + "alreadyExistsMessage": "Er bestaat al een gebruiker met het opgegeven e-mailadres.", + "passwordRequired": "Wachtwoord is een verplicht veld.", + "invalidEmail": "Voer een geldig e-mail adres in.", + "disabledAccountTitle": "Account uitgeschakeld", + "disabledAccountMessage": "Dit gebruikersaccount is uitgeschakeld.", + "incorrectCredentialTitle": "Inloggegevens zijn niet correct", + "incorrectCredentialMessage": "Het opgegeven e-mailadres of wachtwoord is niet correct.", + "inputRequired": "Dit is een verplicht veld.", + "disabledPasswordProviderTitle": "Wachtwoordverificatie is uitgeschakeld.", + "disabledPasswordProviderMessage": "Gebruik een andere authenticatie provider." + }, + "field": { + "language": "Taal", + "emailAddress": "E-mailadres", + "name": "Je naam", + "password": "Wachtwoord", + "passwordRepeat": "Herhaal wachtwoord" + }, + "invitationTitle": "Uitnodiging", + "invitationMessage": "{invitedBy} heeft je uitgenodigd om lid te worden van {workspace}.", + "workspaceForm": { + "nameLabel": "Naam" + }, + "leaveWorkspaceModal": { + "title": "Verlaat {workspace}", + "message": "Weet je zeker dat je de werkruimte {workspace} wilt verlaten? Je hebt dan geen toegang meer tot de relevante applicaties. Als je opnieuw toegang wilt krijgen, moet een van de beheerders je opnieuw uitnodigen. Als je de werkruimte verlaat, zal de werkruimte niet worden verwijderd. Alle andere leden zullen er nog steeds toegang toe hebben. Het is niet mogelijk om een werkruimte te verlaten als je de laatste beheerder bent, omdat deze dan niet meer wordt onderhouden.", + "leave": "Verlaat werkruimte" + }, + "dashboardWorkspace": { + "showMembers": "Leden", + "createApplication": "Nieuwe aanmaken" + }, + "workspaceInvitation": { + "title": "Uitnodiging", + "message": "{by} heeft je uitgenodigd om lid te worden van {workspace}.", + "reject": "Weigeren", + "accept": "Accepteren" + }, + "workspaceMemberModal": { + "membersModalTitle": "Leden van {workspace}", + "userDescription": "{user} - lid geworden {since} geleden", + "invitationDescription": "uitgenodigd {since} geleden", + "sendInvite": "Uitnodiging versturen", + "userAlreadyInWorkspaceTitle": "Gebruiker zit al in de werkruimte.", + "userAlreadyInWorkspaceText": "Het is niet mogelijk een uitnodiging te versturen als de gebruiker al lid is van de werkruimte.", + "userDescriptionPendingDeletion": "{user} - in afwachting van verwijdering" + }, + "workspaceInviteForm": { + "invitationFormTitle": "Uitnodigen per e-mail", + "optionalMessagePlaceholder": "Optioneel bericht", + "errorInvalidEmail": "Voer een geldig e-mail adres in.", + "errorTooLongMessage": "Berichten zijn beperkt tot {amount} tekens.", + "additionalRoles": "Extra rollen" + }, + "workspacesContext": { + "search": "Zoek werkruimtes", + "noResults": "Geen resultaten gevonden", + "createWorkspace": "Werkruimte aanmaken" + }, + "workspaceContext": { + "renameWorkspace": "Hernoem werkruimte", + "members": "Leden", + "viewTrash": "Bekijk Prullenbak", + "leaveWorkspace": "Verlaat werkruimte", + "deleteWorkspace": "werkruimte verwijderen", + "auditLog": "Audit log", + "settings": "Instellingen", + "importWorkspace": "Data importeren", + "exportWorkspace": "Data exporteren" + }, + "createWorkspaceModal": { + "createNew": "Nieuwe werkruimte aanmaken", + "add": "werkruimte toevoegen", + "defaultName": "Naamloze werkruimte", + "permissionDeniedTitle": "Toestemming geweigerd", + "permissionDeniedBody": "U heeft niet de vereiste rechten om een nieuwe werkruimte te maken." + }, + "templateCategories": { + "search": "Zoek sjablonen", + "title": "Sjablonen" + }, + "templateHeader": { + "use": "Gebruik deze sjabloon" + }, + "trashSidebar": { + "title": "Prullenbak", + "unnamedWorkspace": "Naamloze werkruimte {id}", + "workspaces": "Werkruimtes" + }, + "trashContents": { + "message": "Herstel items verwijderd in de afgelopen {duration}", + "empty": "Er is niets verwijderd in de afgelopen drie dagen.", + "emptyButtonTrashed": "Verwijder {type} permanent", + "emptyButtonNotTrashed": "Leeg de Prullenbak van dit {type}", + "unnamed": "Naamloos {type} {id}" + }, + "trashEmptyModal": { + "titleIsTrashed": "Weet je zeker dat je {name} permanent wilt verwijderen?", + "titleIsNotTrashed": "Weet je zeker dat je de Prullenbak van {name} wilt legen?", + "messageIsTrashed": "De gehele inhoud van de prullenbak wordt permanent gewist. Dit kan niet ongedaan gemaakt of opgehaald worden.", + "messageIsNotTrashed": "Dit zal de items lijst permanent verwijderen. Herstel of ophalen is dan niet meer mogelijk.", + "buttonIsTrashed": "Permanent verwijderen", + "buttonIsNotTrashed": "Legen" + }, + "trashEntry": { + "deletedUser": "Een verwijderde gebruiker", + "fromParent": "van {parent}", + "name": "{user} heeft {type} {title} {parent} verwijderd", + "restore": "Herstel", + "unnamed": "Naamloos {type} {id}", + "andMore": "... en {count} meer" + }, + "trashModal": { + "emptyTitle": "Geen werkruimtes gevonden", + "emptyMessage": "Je bent geen lid van een werkruimte. Toepassingen zoals databases horen bij een werkruimte, dus om die aan te maken moet je eerst een werkruimte maken.", + "emptyMessageWithoutCreatePermission": "Je bent geen lid van een werkruimte. Toepassingen zoals databases horen bij een werkruimte, dus om ze aan te maken moet je eerst door een beheerder bij een werkruimte worden uitgenodigd." + }, + "uploadViaURLUserFileUpload": { + "title": "Uploaden vanaf een URL", + "urlLabel": "URL", + "urlError": "Een geldige URL is een verplicht veld." + }, + "userFilesModal": { + "title": "Uploaden van" + }, + "uploadFileUserFileUpload": { + "title": "Uploaden vanaf mijn apparaat", + "drop": "Naar hier slepen", + "clickOrDrop": "Klik of sleep je bestanden naar hier", + "retry": "Opnieuw proberen" + }, + "createApplicationContext": { + "fromTemplate": "Van sjabloon", + "table": "Tabel", + "tableDesc": "Maak een nieuwe plaats om gegevens in je database te beheren.", + "fromTemplateDesc": "Begin snel met een van onze aanbevolen templates", + "importWorkspace": "Data importeren", + "importWorkspaceDesc": "Bestaande gegevens van een Baserow instantie toevoegen." + }, + "applicationForm": { + "nameLabel": "Naam", + "namePlaceholder": "Voer de naam in..." + }, + "connectingNotification": { + "title": "Opnieuw verbinden", + "content": "Opnieuw verbinding maken met de server." + }, + "failedConnectingNotification": { + "title": "Mislukt", + "content": "Verbinding met de server is mislukt. Vernieuw de pagina.", + "action": "Pagina vernieuwen" + }, + "restoreNotification": { + "restore": "Herstel verwijderd {type}" + }, + "errorLayout": { + "notFound": "We kunnen de pagina die je zoekt niet vinden. Misschien is de URL niet correct, of misschien heb je geen autorisatie om deze pagina te bekijken.", + "error": "Er is iets misgegaan tijdens het laden van de pagina. Onze ontwikkelaars zijn op de hoogte gebracht van het probleem. Probeer Vernieuwen of ga terug naar het dashboard.", + "backDashboard": "Terug naar dashboard", + "backLogin": "Terug naar inloggen", + "wrong": "Er is iets misgegaan", + "refresh": "Pagina vernieuwen" + }, + "dashboard": { + "title": "Dashboard", + "alertTitle": "We hebben je hulp nodig!", + "alertText": "Als je Baserow nuttig vindt, dan waarderen we het zeer als je ons wilt sponsoren, sterren wilt geven of ons met anderen wilt delen. Door ons te sponsoren op GitHub krijg je vroegtijdige toegang tot de premium functies!", + "tweetContent": "Check {'@'}baserow, een open source no-code database tool en Airtable alternatief!", + "redditTitle": "'Baserow - Een open source no-code database", + "noWorkspaceTitle": "Geen werkruimtes gevonden", + "noWorkspaceText": "Je bent geen lid van een werkruimte. Toepassingen zoals databases horen bij een werkruimte, dus om die te maken moet je eerst een werkruimte aanmaken.", + "createWorkspace": "Werkruimte aanmaken", + "becomeGithubSponsor": "Word een GitHub sponsor", + "starOnGitlab": "Geef ons een ster op Gitlab", + "shareOnTwitter": "Tweet over Baserow", + "shareOnReddit": "Deel op Reddit", + "shareOnFacebook": "Deel op Facebook", + "shareOnLinkedIn": "Deel op LinkedIn", + "noWorkspaceTextWithoutCreatePermission": "Je bent geen lid van een werkruimte. Toepassingen zoals databases horen bij een werkruimte, dus om ze aan te maken moet je eerst door een beheerder bij een werkruimte worden uitgenodigd.", + "apiDocumentation": "API-documentatie", + "apiDocumentationMessage": "Meer informatie over onze code", + "emptyWorkspace": "Deze werkruimte is leeg", + "noWorkspaceDescription": "Begin met het maken van een nieuwe werkruimte", + "suggestedTemplates": "Voorgestelde templates", + "resources": "Bronnen", + "knowledgeBase": "Kennisbank", + "knowledgeBaseMessage": "Vind antwoorden op al je vragen", + "tutorials": "Tutorials", + "tutorialsMessage": "Ontdek het potentieel van Baserow", + "emptyWorkspaceMessage": "Begin met het maken van een nieuwe database of applicatie.", + "addNew": "Nieuwe toevoegen...", + "noWorkspace": "Geen werkruimte", + "starOnGitHub": "Geef een ster op GitHub" + }, + "login": { + "title": "Inloggen", + "forgotPassword": "Wachtwoord vergeten", + "emailPlaceholder": "Voer je e-mailadres in..", + "passwordPlaceholder": "Voer je wachtwoord in.", + "signUpText": "Heb je geen account?", + "signUp": "Aanmelden", + "displayPasswordLogin": "Inloggen met e-mail en wachtwoord", + "redirecting": "Doorsturen naar authenticatie provider..." + }, + "resetPassword": { + "title": "Wachtwoord resetten", + "newPassword": "Nieuw wachtwoord", + "repeatNewPassword": "Herhaal nieuw wachtwoord", + "submit": "Wachtwoord wijzigen", + "changed": "Wachtwoord gewijzigd", + "errorInvalidLinkTitle": "Ongeldige link", + "errorInvalidLinkMessage": "Kon het wachtwoord niet resetten omdat de link ongeldig is.", + "errorLinkExpiredTitle": "Link verlopen", + "errorLinkExpiredMessage": "De link voor het resetten van je wachtwoord is verlopen. Vraag een nieuwe link aan.", + "disabled": "Wachtwoord opnieuw instellen is uitgeschakeld", + "disabledMessage": "Het is niet mogelijk om het wachtwoord te resetten omdat het is uitgeschakeld.", + "message": "Je kunt nu inloggen op Baserow met je nieuwe wachtwoord." + }, + "signup": { + "headTitle": "Nieuw account aanmaken", + "title": "Aanmelden", + "disabled": "Aanmelden is uitgeschakeld", + "disabledMessage": "Het is niet mogelijk om een account aan te maken omdat het is uitgeschakeld.", + "requireFirstUser": "Welkom bij Baserow!", + "requireFirstUserMessage": "Vul het onderstaande formulier in om de admin gebruiker aan te maken.", + "passwordPlaceholder": "Voer je wachtwoord in.", + "namePlaceholder": "Voer je naam in..", + "passwordRepeatPlaceholder": "Bevestig je wachtwoord.", + "loginText": "Heb je al een account?", + "emailPlaceholder": "Voer je e-mailadres in..", + "login": "Inloggen", + "privacyPolicy": "Privacybeleid", + "agreeTerms": "Door een account aan te maken, gaat u akkoord met de {0} {1} {2}", + "terms": "Servicevoorwaarden" + }, + "forgotPassword": { + "title": "Wachtwoord vergeten", + "message": "Vul je e-mailadres in op het formulier. Als we een account vinden, sturen we een e-mail met een link om je wachtwoord te resetten.", + "submit": "Stuur link", + "confirmation": "Als je e-mailadres in onze database voorkomt, ontvangt je binnen enkele minuten op je e-mailadres een link om je wachtwoord opnieuw in te stellen.", + "disabled": "Wachtwoord resetten is uitgeschakeld", + "disabledMessage": "Het is niet mogelijk om een wachtwoord opnieuw in te stellen omdat het is uitgeschakeld.", + "loginText": "Heb je al een account en wachtwoord?", + "confirmationTitle": "Controleer je e-mail", + "goBack": "Ga terug" + }, + "settings": { + "settingsTitle": "Beheerdersinstellingen", + "baserowInstanceId": "Installatie-ID", + "instanceIdDescription": "De installatie-ID is de unieke identificatiecode van je Baserow instantie.", + "accountRestrictions": "Accountbeperkingen", + "settingAllowResetPasswordName": "Wachtwoord opnieuw instellen toestaan", + "settingAllowResetPasswordDescription": "Standaard kunnen gebruikers een link aanvragen om hun wachtwoord te resetten.", + "settingAllowResetPasswordWarning": "Houd er rekening mee dat u zichzelf van het systeem kunt uitsluiten en dat de toegang niet kan worden hersteld als u uw wachtwoord vergeet.", + "settingAllowNewAccountsName": "Toestaan aanmaken van nieuwe accounts", + "settingAllowNewAccountsDescription": "Standaard kan elke gebruiker die je Baserow-domein bezoekt zich aanmelden voor een nieuw account.", + "enabled": "ingeschakeld", + "settingAllowSignupsViaWorkspaceInvitationsName": "Aanmeldingen via werkruimte uitnodigingen toestaan", + "settingAllowSignupsViaWorkspaceInvitationDescription": "Zelfs als het aanmaken van nieuwe accounts is uitgeschakeld, kunnen direct uitgenodigde gebruikers met deze optie toch een account aanmaken.", + "userDeletionGraceDelay": "Gebruiker verwijderen", + "settingUserDeletionGraceDelay": "Respijtperiode", + "settingUserDeletionGraceDelayDescription": "Dit is het aantal dagen zonder login waarna een voor verwijdering geplande account permanent wordt verwijderd.", + "invalidAccountDeletionGraceDelay": "Deze waarde is vereist en moet een positief geheel getal zijn kleiner dan 32000", + "settingAllowNonStaffCreateWorkspaceOperation": "Laat iedereen nieuwe werkruimtes maken", + "settingAllowNonStaffCreateWorkspaceOperationDescription": "Standaard kan iedereen nieuwe werkruimtes aanmaken. Schakel dit uit om alleen staff toe te staan nieuwe werkruimtes aan te maken.", + "settingAllowNonStaffCreateWorkspaceOperationWarning": "Als deze instelling is ingeschakeld, wordt voor nieuwe gebruikers automatisch een werkruimte aangemaakt waarin ze een beheerder zijn, zodat ze voor de facturering als beheerder worden gerapporteerd. Om dit te voorkomen, schakelt u deze instelling uit en nieuw uitgenodigde gebruikers beginnen alleen met de rol waarmee ze zijn uitgenodigd.", + "maintenance": "Onderhoud", + "settingTrackWorkspaceUsage": "Werkruimte gebruik bijhouden", + "settingTrackWorkspaceUsageDescription": "Schakelt een nachtelijke taak in die het rij- en bestandsgebruik per werkruimte telt, weergegeven op de beheerpagina van de premium werkruimte.", + "userSettings": "Gebruiker", + "emailVerification": "E-mail verificatie", + "emailVerificationDescription": "Bepaalt of e-mailadressen moeten worden geverifieerd.", + "emailVerificationNoVerification": "Geen verificatie", + "emailVerificationRecommended": "Aanbevolen", + "emailVerificationEnforced": "Afgedwongen", + "baserowVersionDescription": "Het versienummer van deze instantie.", + "baserowVersion": "Baserow versie", + "settingsVerifyImportSignatureDescription": "Indien ingeschakeld, wordt de handtekening van de geïmporteerde gegevens geverifieerd om er zeker van te zijn dat er niet met de gegevens geknoeid is.", + "settingsVerifyImportSignature": "Verifieer import handtekening" + }, + "copyingNotification": { + "title": "Kopiëren...", + "content": "Uw gegevens voorbereiden" + }, + "undoRedoNotification": { + "undoingTitle": "Ongedaan maken...", + "undoingText": "Je actie ongedaan maken", + "redoneTitle": "Opnieuw gedaan", + "skippingRedoDueToError": "Opnieuw uitvoeren mislukt vanwege onbekende fout, overslaan.", + "redoingTitle": "Opnieuw doen...", + "redoingText": "Je actie overnieuw doen", + "redoneText": "Actie wordt opnieuw gedaan", + "noMoreRedo": "Geen acties meer om opnieuw te doen", + "skippingUndoDueToError": "Ongedaan maken mislukt door onbekende fout, overslaan.", + "failed": "Mislukt", + "undoneText": "Actie is ongedaan gemaakt", + "undoneTitle": "Ongedaan gemaakt", + "noMoreUndo": "Geen acties meer om ongedaan te maken" + }, + "AuthorizationErrorNotification": { + "title": "Autorisatiefout", + "content": "Het lijkt erop dat je niet de rechten hebt om deze bron te zien.", + "action": "Pagina vernieuwen" + }, + "formSidebar": { + "actions": { + "addAll": "Alles toevoegen", + "removeAll": "Alles verwijderen", + "addField": "Veld toevoegen" }, - "linkRowField": { - "title": "Link naar tabel veld", - "description": "Een link naar tabel kan de waarde aannemen die in het keuzemenu wordt getoond.", - "codeSnippet": "?prefill_link+row=Mike" + "fieldsDescription": "Alle velden staan in het formulier.", + "prefillInfoLink": "Waarden dynamisch vooraf invullen", + "modal": { + "title": "Waarden dynamisch vooraf invullen", + "descriptionPartOne": "Formulieren kunnen vooraf worden ingevuld om de gebruiker te helpen het formulier sneller in te vullen.", + "descriptionPartTwo": "Alle velden die in het formulier beschikbaar zijn, kunnen vooraf worden ingevuld.", + "howToPrefill": { + "title": "Een formulier vooraf invullen", + "description": "Als u een formulier vooraf met gegevens wilt invullen, kunt u dit doen via queryparameters die zijn toegevoegd aan de openbare formulier-URL. Deze queryparameters worden voorafgegaan door 'prefill' om elke botsing met mogelijke toekomstige queryparameters te voorkomen." + }, + "format": { + "title": "Format", + "description": "Het formaat van de queryparameters is als volgt:", + "codeSnippet": "?prefill_<field_name>=<value>" + }, + "example": { + "title": "Voorbeeld", + "description": "In het onderstaande voorbeeld willen we een veld genaamd `Naam` vullen met de waarde `Mike`", + "codeSnippet": "?prefill_Name=Mike" + }, + "spaces": { + "title": "Ruimtes", + "description": "Spaties in de veldnaam worden vervangen door `+` om problemen met de query parameter te voorkomen.", + "codeSnippet": "?prefill_my+field=Mike" + }, + "multipleValues": { + "title": "Meerdere waarden", + "description": "Als u meerdere velden wilt vullen, kunt u dat doen door een `,` tussen de waarden te plaatsen.", + "codeSnippet": "?prefill_multi+select=Mike,John" + }, + "specialFieldTypes": { + "title": "Speciale veldtypes", + "description": "Over het algemeen is de prefill-waarde gelijk aan de waarde van het veld. Maar er zijn enkele uitzonderingen waarbij de waarde wordt vertaald naar een andere waarde.", + "ratingField": { + "title": "Beoordelingsveld", + "description": "Een beoordelingsveld accepteert een getal om aan te geven hoeveel sterren er moeten worden ingevuld.", + "codeSnippet": "?prefill_rating=3" + }, + "linkRowField": { + "title": "Link naar tabel veld", + "description": "Een link naar tabel kan de waarde aannemen die in het keuzemenu wordt getoond.", + "codeSnippet": "?prefill_link+row=Mike" + }, + "selectField": { + "title": "Enkel selectie / meervoudig selectieveld", + "description": "Een enkelvoudig keuzeveld kan de waarde accepteren die in de keuzelijst wordt getoond. Dat geldt ook voor het veld Meervoudige selectie, maar dat kan ook meerdere waarden accepteren.", + "codeSnippet": "?prefill_single+select=Mike" + }, + "dateField": { + "title": "Datumveld", + "description": "Een datumveld kan een datum in de volgende notaties accepteren en gebruikt de datumnotatie van het veld om de datum te parseren.", + "codeSnippet": "\n// Standards\nISO_8601\n\n// General formats\n'YYYY-MM-DD',\n'YYYY-MM-DD hh:mm A',\n'YYYY-MM-DD HH:mm',\n\n// EU\n'DD/MM/YYYY', \n'DD/MM/YYYY hh:mm A', \n'DD/MM/YYYY HH:mm'\n\n// US\n'MM/DD/YYYY', \n'MM/DD/YYYY hh:mm A', \n'MM/DD/YYYY HH:mm'" + } + }, + "howToHide": { + "title": "Hoe een veld verbergen", + "description": "Als u een veld dynamisch wilt verbergen, kunt u dat doen via query parameters die worden toegevoegd aan de public from url. Deze query parameters worden voorafgegaan door `hide_` om botsing met mogelijke toekomstige query parameters te voorkomen." + } }, - "selectField": { - "title": "Enkel selectie / meervoudig selectieveld", - "description": "Een enkelvoudig keuzeveld kan de waarde accepteren die in de keuzelijst wordt getoond. Dat geldt ook voor het veld Meervoudige selectie, maar dat kan ook meerdere waarden accepteren.", - "codeSnippet": "?prefill_single+select=Mike" + "prefillOrHideInfoLink": "Dynamisch invullen of verbergen", + "notifyUserOnSubmit": "Notificatie ontvangen bij verzenden" + }, + "deleteAccountSettings": { + "orphanWorkspaces": "Zal ook permanent worden verwijderd na de respijtperiode", + "passwordConfirm": "Herhaal wachtwoord", + "repeatPasswordMatchError": "Dit veld moet overeenkomen met het eerste wachtwoordveld.", + "submitButton": "Account verwijderen", + "errorUserIsLastAdminTitle": "Laatste beheerder", + "workspaceLoadingError": "Werkruimtes controle is mislukt", + "workspaceLoadingErrorDescription": "Het controleren van de te verwijderen werkruimtes is mislukt, vernieuw de pagina.", + "description": "U kunt de verwijdering van uw account plannen door uw huidige wachtwoord in te voeren en op de knop te klikken. Uw account zal permanent worden verwijderd na {days} dagen. In de tussentijd, als u opnieuw inlogt, zal de verwijdering van uw account worden geannuleerd.", + "workspaceNotice": "Wees werkruimtes worden verwijderd", + "orphanWorkspaceMemberCount": "gedeeld met niemand|gedeeld met één gebruiker|gedeeld met {count} gebruikers", + "title": "Account verwijderen", + "workspaceNoticeDescription": "Wanneer uw account permanent wordt verwijderd, worden alle werkruimtes en bijbehorende gegevens waarvoor u de laatste actieve gebruiker met beheerdersrechten bent ook verwijderd. De hieronder getoonde werkruimtes worden verwijderd omdat u de enige beheerder bent. Om te voorkomen dat ze worden verwijderd moet u eerst een andere gebruiker adminrechten geven voordat u uw account verwijdert.", + "password": "Wachtwoord", + "errorInvalidPasswordTitle": "Ongeldig wachtwoord", + "errorInvalidPasswordMessage": "Uw account kan niet worden verwijderd omdat uw wachtwoord ongeldig is.", + "errorUserIsLastAdminMessage": "Kan uw account niet verwijderen omdat u de laatste beheerder van deze Baserow instance bent.", + "accountDeletedSuccessTitle": "Verwijdering van account gepland", + "accountDeletedSuccessMessage": "Uw account staat op de planning om verwijderd te worden." + }, + "clearingNotification": { + "title": "Wissen...", + "content": "Voorbereiding van uw gegevens" + }, + "dashboardSidebar": { + "workspaces": "Werkruimtes", + "links": "Links", + "knowledgeBase": "Kennisbank", + "tutorials": "Tutorials", + "userSettings": "Gebruikersinstellingen", + "trash": "Prullenbak", + "logoff": "Uitloggen" + }, + "job": { + "statePending": "Wachten om te beginnen...", + "stateStarted": "Begonnen...", + "stateFinished": "Afgerond", + "stateFailed": "Mislukt", + "errorJobAlreadyRunningTitle": "Al aan de gang", + "errorJobAlreadyRunningDescription": "Er loopt al een andere importjob. U moet wachten tot die klaar is voordat u een andere start.", + "errorJobCannotBeCancelledTitle": "Kan niet annuleren", + "errorJobCannotBeCancelledDescription": "Het is niet mogelijk om de taak te annuleren omdat deze al is voltooid.\nVerwijder de eerste snapshot in de onderstaande lijst om deze te verwijderen.", + "stateCanceled": "Geannuleerd" + }, + "pastingNotification": { + "title": "Plakken...", + "content": "Voorbereiding van uw gegevens" + }, + "datetime": { + "yearsAgo": "0 jaar geleden | 1 jaar geleden | {n} jaar geleden", + "daysAgo": "0 dagen geleden | 1 dag geleden | {n} dagen geleden", + "monthsAgo": "0 maanden geleden | 1 maand geleden | {n} maanden geleden", + "secondsAgo": "Zojuist | 1 seconde geleden | {n} seconden geleden", + "minutesAgo": "0 minuten geleden | 1 minuut geleden | {n} minuten geleden", + "hoursAgo": "0 uur geleden | 1 uur geleden | {n} uur geleden", + "lessThanMinuteAgo": "minder dan een minuut geleden", + "justNow": "zojuist" + }, + "duplicateApplicationJobType": { + "duplicatedTitle": "Applicatie gedupliceerd", + "duplicating": "Dupliceren" + }, + "InstallTemplateJobType": { + "installedTitle": "Template geïnstalleerd", + "installing": "Installeren" + }, + "membersSettings": { + "membersTable": { + "columns": { + "email": "E-mail", + "role": "Rol", + "name": "Naam", + "teams": "Teams", + "highestRole": "Hoogste rol", + "highestRoleHelpText": "De hoogste rol die deze gebruiker rechtstreeks of vanuit een team aan hem is toegekend, op alles in deze werkruimte", + "highestRoleInstanceHelpText": "De hoogste rol die deze gebruiker heeft in de instantie", + "2fa": "2FA" + }, + "actions": { + "copyEmail": "E-mail kopiëren", + "remove": "Verwijderen uit werkruimte" + }, + "title": "{userAmount} Leden in {groupName}", + "inviteMember": "Lid uitnodigen" }, - "dateField": { - "title": "Datumveld", - "description": "Een datumveld kan een datum in de volgende notaties accepteren en gebruikt de datumnotatie van het veld om de datum te parseren.", - "codeSnippet": "\n// Standards\nISO_8601\n\n// General formats\n'YYYY-MM-DD',\n'YYYY-MM-DD hh:mm A',\n'YYYY-MM-DD HH:mm',\n\n// EU\n'DD/MM/YYYY', \n'DD/MM/YYYY hh:mm A', \n'DD/MM/YYYY HH:mm'\n\n// US\n'MM/DD/YYYY', \n'MM/DD/YYYY hh:mm A', \n'MM/DD/YYYY HH:mm'" - } - }, - "howToHide": { - "title": "Hoe een veld verbergen", - "description": "Als u een veld dynamisch wilt verbergen, kunt u dat doen via query parameters die worden toegevoegd aan de public from url. Deze query parameters worden voorafgegaan door `hide_` om botsing met mogelijke toekomstige query parameters te voorkomen." - } - }, - "prefillOrHideInfoLink": "Dynamisch invullen of verbergen", - "notifyUserOnSubmit": "Notificatie ontvangen bij verzenden" - }, - "deleteAccountSettings": { - "orphanWorkspaces": "Zal ook permanent worden verwijderd na de respijtperiode", - "passwordConfirm": "Herhaal wachtwoord", - "repeatPasswordMatchError": "Dit veld moet overeenkomen met het eerste wachtwoordveld.", - "submitButton": "Account verwijderen", - "errorUserIsLastAdminTitle": "Laatste beheerder", - "workspaceLoadingError": "Werkruimtes controle is mislukt", - "workspaceLoadingErrorDescription": "Het controleren van de te verwijderen werkruimtes is mislukt, vernieuw de pagina.", - "description": "U kunt de verwijdering van uw account plannen door uw huidige wachtwoord in te voeren en op de knop te klikken. Uw account zal permanent worden verwijderd na {days} dagen. In de tussentijd, als u opnieuw inlogt, zal de verwijdering van uw account worden geannuleerd.", - "workspaceNotice": "Wees werkruimtes worden verwijderd", - "orphanWorkspaceMemberCount": "gedeeld met niemand|gedeeld met één gebruiker|gedeeld met {count} gebruikers", - "title": "Account verwijderen", - "workspaceNoticeDescription": "Wanneer uw account permanent wordt verwijderd, worden alle werkruimtes en bijbehorende gegevens waarvoor u de laatste actieve gebruiker met beheerdersrechten bent ook verwijderd. De hieronder getoonde werkruimtes worden verwijderd omdat u de enige beheerder bent. Om te voorkomen dat ze worden verwijderd moet u eerst een andere gebruiker adminrechten geven voordat u uw account verwijdert.", - "password": "Wachtwoord", - "errorInvalidPasswordTitle": "Ongeldig wachtwoord", - "errorInvalidPasswordMessage": "Uw account kan niet worden verwijderd omdat uw wachtwoord ongeldig is.", - "errorUserIsLastAdminMessage": "Kan uw account niet verwijderen omdat u de laatste beheerder van deze Baserow instance bent.", - "accountDeletedSuccessTitle": "Verwijdering van account gepland", - "accountDeletedSuccessMessage": "Uw account staat op de planning om verwijderd te worden." - }, - "clearingNotification": { - "title": "Wissen...", - "content": "Voorbereiding van uw gegevens" - }, - "dashboardSidebar": { - "workspaces": "Werkruimtes", - "links": "Links", - "knowledgeBase": "Kennisbank", - "tutorials": "Tutorials", - "userSettings": "Gebruikersinstellingen", - "trash": "Prullenbak", - "logoff": "Uitloggen" - }, - "job": { - "statePending": "Wachten om te beginnen...", - "stateStarted": "Begonnen...", - "stateFinished": "Afgerond", - "stateFailed": "Mislukt", - "errorJobAlreadyRunningTitle": "Al aan de gang", - "errorJobAlreadyRunningDescription": "Er loopt al een andere importjob. U moet wachten tot die klaar is voordat u een andere start.", - "errorJobCannotBeCancelledTitle": "Kan niet annuleren", - "errorJobCannotBeCancelledDescription": "Het is niet mogelijk om de taak te annuleren omdat deze al is voltooid.\nVerwijder de eerste snapshot in de onderstaande lijst om deze te verwijderen.", - "stateCanceled": "Geannuleerd" - }, - "pastingNotification": { - "title": "Plakken...", - "content": "Voorbereiding van uw gegevens" - }, - "datetime": { - "yearsAgo": "0 jaar geleden | 1 jaar geleden | {n} jaar geleden", - "daysAgo": "0 dagen geleden | 1 dag geleden | {n} dagen geleden", - "monthsAgo": "0 maanden geleden | 1 maand geleden | {n} maanden geleden", - "secondsAgo": "Zojuist | 1 seconde geleden | {n} seconden geleden", - "minutesAgo": "0 minuten geleden | 1 minuut geleden | {n} minuten geleden", - "hoursAgo": "0 uur geleden | 1 uur geleden | {n} uur geleden", - "lessThanMinuteAgo": "minder dan een minuut geleden", - "justNow": "zojuist" - }, - "duplicateApplicationJobType": { - "duplicatedTitle": "Applicatie gedupliceerd", - "duplicating": "Dupliceren" - }, - "InstallTemplateJobType": { - "installedTitle": "Template geïnstalleerd", - "installing": "Installeren" - }, - "membersSettings": { - "membersTable": { - "columns": { - "email": "E-mail", - "role": "Rol", + "membersTabTitle": "Leden", + "invitesTable": { + "columns": { + "email": "E-mail", + "message": "Bericht", + "role": "Role" + }, + "title": "{invitesAmount} Uitnodigingen in behandeling in {groupName}", + "actions": { + "copyEmail": "E-mail kopiëren", + "remove": "Uitnodiging annuleren" + } + }, + "membersInviteModal": { + "errors": { + "userAlreadyInWorkspace": { + "title": "Gebruiker zit al in de werkruimtes.", + "text": "Het is niet mogelijk een uitnodiging te sturen wanneer de gebruiker al lid is van de werkruimtes." + } + }, + "submit": "Stuur uitnodiging", + "title": "Werkruimte leden uitnodigen", + "helpIconText": "De geselecteerde rol wordt de standaard rol van de gebruiker in deze werkruimte." + }, + "invitesTabTitle": "Uitnodigingen" + }, + "crudTableSearch": { + "search": "Zoeken" + }, + "removeFromWorkspaceModal": { + "title": "Bevestig verwijdering uit de werkruimte", + "remove": "Verwijderen", + "confirmation": "Weet u zeker dat u {naam} wilt verwijderen uit {workspaceName}? Deze actie kan niet ongedaan worden gemaakt." + }, + "UserSessionExpiredNotification": { + "title": "Sessie verlopen", + "content": "U bent uitgelogd omdat uw authenticatietoken is verlopen. Log opnieuw in." + }, + "memberSelectionList": { + "searchPlaceholder": "Zoek ...", + "selectedAmountLabel": "{count} geselecteerd" + }, + "memberAssignmentModalFooter": { + "invite": "Uitnodigen {count}", + "deselectAll": "Deselecteer alles", + "selectAll": "Selecteer alles" + }, + "permissionsUpdatedNotification": { + "title": "Machtigingen bijgewerkt", + "action": "Herladen", + "content": "Dit kan invloed hebben op waar u toegang toe heeft, gelieve de pagina opnieuw te laden." + }, + "editRoleContext": { + "billableRolesLink": "Documentatie voor factureerbare rollen", + "additionalRoles": "Extra rollen" + }, + "highestPaidRoleField": { + "billable": "Factureerbaar" + }, + "clearAllNotificationsConfirmModal": { + "message": "Alle meldingen worden permanent verwijderd en u kunt ze niet meer zien.", + "title": "Weet je zeker dat je alle meldingen wilt wissen?" + }, + "notificationPanel": { + "title": "Meldingen", + "markAllAsRead": "Alles markeren als gelezen", + "clearAll": "Alles wissen", + "noNotification": "We zullen u op de hoogte brengen van belangrijke updates en wanneer u op Baserow wordt vermeld.", + "noNotificationTitle": "Je hebt geen meldingen", + "newNotificationsAvailable": "Nieuwe meldingen beschikbaar", + "refresh": "Vernieuwen" + }, + "uploadFileDropzone": { + "drop": "Laat hier los", + "clickOrDrop": "Klik of sleep je bestanden naar hier", + "errorTooManyFilesMessage": "Je kunt slechts één bestand uploaden", + "errorWrongFileTypeTitle": "Verkeerd bestandstype", + "errorWrongFileTypeMessage": "Je kunt geen bestand van het type {type} uploaden", + "errorTooManyFilesTitle": "Te veel bestanden" + }, + "connectingToast": { + "title": "Opnieuw verbinden", + "content": "Opnieuw verbinding maken met de server." + }, + "failedConnectingToast": { + "title": "Mislukt", + "content": "Verbinding met de server is mislukt. Vernieuw de pagina.", + "action": "Pagina vernieuwen" + }, + "authorizationErrorToast": { + "content": "Het lijkt erop dat je niet de rechten hebt om deze bron te zien.", + "title": "Autorisatiefout", + "action": "Pagina vernieuwen" + }, + "copyingToast": { + "title": "Kopiëren...", + "content": "Voorbereiding van uw gegevens" + }, + "PastingToast": { + "title": "Plakken...", + "content": "Voorbereiding van uw gegevens" + }, + "clearingToast": { + "title": "Wissen...", + "content": "Voorbereiding van uw gegevens" + }, + "undoRedoToast": { + "noMoreUndo": "Geen acties meer om ongedaan te maken", + "skippingUndoDueToError": "Ongedaan maken mislukt door onbekende fout, overslaan.", + "redoingTitle": "Opnieuw doen...", + "redoingText": "Je actie overnieuw doen", + "redoneTitle": "Opnieuw gedaan", + "redoneText": "Actie is opnieuw gedaan", + "noMoreRedo": "Geen acties meer om opnieuw te doen", + "failed": "Mislukt", + "skippingRedoDueToError": "Opnieuw uitvoeren mislukt vanwege onbekende fout, overslaan.", + "undoingText": "Je actie ongedaan maken", + "undoneText": "Actie is ongedaan gemaakt", + "undoingTitle": "Ongedaan maken...", + "undoneTitle": "Ongedaan gemaakt" + }, + "permissionsUpdatedToast": { + "title": "Machtigingen bijgewerkt", + "content": "Dit kan invloed hebben op waar u toegang toe heeft, gelieve de pagina opnieuw te laden.", + "action": "Herladen" + }, + "integrationCreateEditModal": { + "editTitle": "Integratie bewerken", + "warningTitle": "Waarschuwing", + "createTitle": "Nieuwe integratie" + }, + "integrationEditForm": { + "name": "Naam integratie", + "namePlaceholder": "Voer de integratie naam in..." + }, + "styleSidePanel": { + "paddingTop": "Opvulling bovenkant", + "paddingBottom": "Opvulling onderkant" + }, + "userSessionExpiredToast": { + "title": "Sessie verlopen", + "content": "Je bent uitgelogd omdat uw authenticatie token is verlopen. Log opnieuw in." + }, + "restoreToast": { + "restore": "Herstel verwijderd {type}" + }, + "workspaceInvitationRejectedNotification": { + "title": "{sender} heeft uw uitnodiging om lid te worden van {workspaceName} afgewezen", + "deletedUser": "Een verwijderde gebruiker" + }, + "workspaceInvitationCreatedNotification": { + "title": "{sender} heeft je uitgenodigd om lid te worden van {workspaceName}", + "deletedUser": "Een verwijderde gebruiker" + }, + "dropdown": { + "empty": "Geen items beschikbaar" + }, + "styleBoxForm": { + "paddingError": "De waarde moet een geheel getal zijn tussen 0 en 200." + }, + "workspaceInvitationAcceptedNotification": { + "title": "{sender} heeft uw uitnodiging om lid te worden van {workspaceName} geaccepteerd", + "deletedUser": "Een verwijderde gebruiker" + }, + "richTextEditorMentionsList": { + "notFound": "Geen gebruikers gevonden" + }, + "versionUpgradeNotification": { + "title": "{version} is hier! Bekijk wat er nieuw is." + }, + "emailNotifications": { + "submitButton": "Frequentie bijwerken", + "label": "Vermeldingen, commentaar en andere berichten", + "daily": "Dagelijks", + "title": "E-mail notificaties", + "never": "Nooit", + "weekly": "Wekelijks", + "description": "Configureer de frequentie waarmee e-mails naar uw Postvak IN worden verzonden.", + "instant": "Direct" + }, + "dataExplorer": { + "emptyText": "Geen data gevonden", + "noProvidersText": "Er zijn geen gegevensverstrekkers gevonden. Om te beginnen kun je bijvoorbeeld een gegevensbron of paginaparameter toevoegen.", + "noMatchingNodesText": "Er zijn geen overeenkomende gegevensverstrekkers gevonden." + }, + "formulaInputField": { + "errorInvalidFormula": "De formule is ongeldig.", + "advancedFormulaMode": "Geavanceerde formule-modus" + }, + "userPasswordChangedToast": { + "title": "Wachtwoord veranderd", + "content": "Je wachtwoord is gewijzigd. Log alsjeblieft nogmaals in." + }, + "integrationDropdown": { + "noIntegrations": "Geen integraties gevonden.", + "addIntegration": "Nieuwe integratie toevoegen", + "integrationPlaceholder": "Selecteer een integratie", + "selectTypeFirst": "Kies het type eerst" + }, + "richTextEditorBubbleMenu": { + "underline": "Onderstreep", + "bold": "Vet", + "italic": "Cursief", + "strikethrough": "Doorstreept", + "link": "Link", + "linkEditPlaceholder": "Link URL...", + "linkEditDone": "Klaar" + }, + "richTextEditorFloatingMenu": { + "hierarchy": "Hiërarchie", + "heading1": "Kop 1", + "heading2": "Kop 2", + "heading3": "Kop 3", + "orderedList": "Genummerde lijst", + "unorderedList": "Bullet lijst", + "code": "Code", + "taskList": "Takenlijst", + "lists": "Lijsten", + "paragraph": "Paragraaf" + }, + "workspaceSettingType": { + "generativeAI": "Generatieve AI" + }, + "generativeAIModelType": { + "openai": "OpenAI", + "openaiOrganization": "Organisatie (optioneel)", + "openaiModelsLabel": "Ingeschakelde modellen", + "openaiModelsDescription": "Geef een lijst met door komma's gescheiden [OpenAI-modellen] (https://platform.openai.com/docs/models/continuous-model-upgrades) die kunnen worden gebruikt in Baserow. (bijv. `gpt-3.5-turbo,gpt-4`)", + "ollamaHostLabel": "Host", + "ollamaModelsLabel": "Ingeschakelde modellen", + "openaiApiKeyLabel": "API-sleutel", + "openaiApiKeyDescription": "Geef een OpenAI API-sleutel op als je de integratie wilt inschakelen. [Instructies voor het verkrijgen van een API-sleutel](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key).", + "ollamaHostDescription": "Geef de hostnaam van je [Ollama](https://ollama.com/) server. Deze draait meestal lokaal op je eigen apparaat.", + "ollama": "Ollama", + "ollamaModelsDescription": "Geef een lijst met door komma gescheiden [Ollama geïnstalleerde modellen] (https://ollama.com/library). Het model moet worden gedownload en geïnstalleerd voordat het kan worden gebruikt. (bijvoorbeeld `llama2,mistral`)", + "mistral": "Mistral", + "mistralModelsLabel": "Ingeschakelde modellen", + "anthropic": "Anthropic", + "anthropicApiKeyLabel": "API-sleutel", + "anthropicApiKeyDescription": "Geef een Anthropic API-sleutel op als u de integratie wilt inschakelen. [Instructies voor het verkrijgen van een API-sleutel](https://docs.anthropic.com/en/api/getting-started).", + "anthropicModelsLabel": "Ingeschakelde modellen", + "anthropicModelsDescription": "Geef een lijst van door komma's gescheiden [Anthropic modellen] (https://docs.anthropic.com/en/docs/about-claude/models) die kunnen worden gebruikt in Baserow. (e.g. `claude-3-5-sonnet-20241022,claude-3-opus-20240229`)", + "mistralApiKeyLabel": "API-sleutel", + "mistralModelsDescription": "Geef een lijst met door komma's gescheiden [Mistral modellen] (https://docs.mistral.ai/getting-started/models/models_overview/) die kunnen worden gebruikt in Baserow. (bijv. `mistral-large-latest,mistral-small-latest`)", + "mistralApiKeyDescription": "Geef een Mistral API-sleutel als u de integratie wilt inschakelen. [Instructies voor het verkrijgen van een API-sleutel](https://docs.mistral.ai/getting-started/quickstart/).", + "openRouterApiKeyLabel": "API-sleutel", + "openRouterOrganization": "Organisatie (optioneel)", + "openRouter": "OpenRouter", + "openRouterModelsLabel": "Ingeschakelde modellen", + "openRouterModelsDescription": "Geef een lijst met door komma's gescheiden [OpenRouter modellen] (https://openrouter.ai/models) die kunnen worden gebruikt in Baserow. (bijv. `openai/gpt-4o,anthropic/claude-3-haiku`)", + "openRouterApiKeyDescription": "Geef een OpenRouter API-key op als u de integratie wilt inschakelen. [get an API key](https://openrouter.ai/settings/keys).", + "openaiBaseUrl": "Basis URL", + "openaiBaseUrlDescription": "Gebruikt standaard de OpenAI basis URL als deze leeg is. Kan optioneel worden gewijzigd in https://eu.api.openai.com/v1, https://<uw-bronnaam>.openai.azure.com, of een andere OpenAI-compatibele API." + }, + "generativeAIWorkspaceSettings": { + "title": "Generatieve AI-instellingen", + "submitButton": "Instellingen bijwerken", + "description": "Deze instellingen kunnen worden gebruikt om optioneel generatieve AI-configuratie in te stellen op werkruimte-niveau. Functies zoals het AI-veld kunnen worden uitgeschakeld omdat ze geen API-sleutel hebben voor een van de ondersteunde modellen. Door de instellingen hier op te geven, kun je die functies inschakelen. Als je een waarde leeg laat, wordt deze standaard teruggezet naar de globale instance-instellingen. Let op dat iedereen in de werkruimte deze instellingen deelt.", + "changedTitle": "Instellingen correct bijgewerkt", + "changedDescription": "De instellingen zijn bijgewerkt en worden nu gebruikt in deze werkruimte.", + "openSettings": "Instellingen openen", + "hideSettings": "Instellingen verbergen" + }, + "workspaceSettingsModal": { + "title": "Werkruimte-instellingen" + }, + "selectAIModelForm": { + "AIModel": "AI-model", + "AIType": "AI-type", + "fileField": "Bestandsveld", + "temperatureLabel": "Temperatuur", + "temperatureDescription": "De temperatuur van een LLM, een parameter die ingesteld kan worden tussen 0 en {max}, past de willekeurigheid van reacties aan - lagere waarden leveren gerichte antwoorden op, terwijl hogere waarden de creativiteit verhogen." + }, + "onboarding": { + "title": "Onboarding", + "creating": "Je eerste workspace maken", + "skip": "Voorlopig overslaan", + "failedSkip": "Onboarding overslaan", + "continue": "Ga verder", + "cancel": "Ik wil geen hulp bij het opzetten", + "failedTitle": "Er is iets misgegaan", + "failedDescription": "De onboarding is niet volledig voltooid, hoewel sommige onderdelen misschien wel zijn voltooid.", + "failedTryAgain": "Probeer het nog eens" + }, + "inviteStep": { + "title": "Medewerkers uitnodigen", + "collaboratorsLabel": "Medewerkers", + "description": "Je kunt later altijd meer toevoegen." + }, + "moreStep": { + "people": "Hoeveel mensen zitten er in je team?", + "share": "Ik wil dit graag delen met het Baserow team", + "title": "Vertel ons wat meer", + "roleOrJob": "Rol of functie...", + "country": "Land", + "how": "Hoe heb je over ons gehoord?", + "howSearchEngine": "Zoekmachine (Google/Bing)", + "howSocialMedia": "Social media", + "howOnlineAds": "Online advertenties", + "howContent": "Content (blog/nieuwsbrief/video)", + "howReviewSite": "Reviewsite / marktplaats", + "howFriend": "Via een vriend", + "howColleague": "Via een collega", + "howEvent": "Evenement of webinar", + "howSales": "Benadering door sales", + "howOther": "Anders" + }, + "dashboardVerifyEmail": { + "title": "Controleer je mailbox en klik op de link om je e-mail te verifiëren.", + "resendConfirmationEmail": "Bevestigingsmail opnieuw verzenden" + }, + "verifyEmailAddress": { + "invalidToken": "Geen geldig bevestigingstoken.", + "emailMismatchWarning": "Houd er rekening mee dat het geverifieerde e-mailadres niet hoort bij de account die je momenteel gebruikt.", + "disabledPasswordProvider": "De wachtwoord authenticatie provider is uitgeschakeld.", + "confirmation": "Je e-mailadres is geverifieerd.", + "goToDashboard": "Ga naar het Dashboard" + }, + "emailNotVerified": { + "title": "Verificatie per e-mail vereist", + "description": "Controleer je mailbox en klik op de link om te verifiëren. Na verificatie wordt je account geactiveerd.", + "resend": "Bevestigingsmail opnieuw verzenden" + }, + "resendEmailVerification": { + "confirmationEmailSentTitle": "Bevestigings e-mail verzonden", + "confirmationEmailSentDescription": "De bevestigingsmail is verzonden." + }, + "teamStep": { + "title": "Laten we samen je eerste workspace bouwen!", + "marketingTeam": "Marketing", + "salesAndAccountManagementTeam": "Verkoop & Account Management", + "description": "In welk team zit je?", + "engineeringTeam": "Engineering", + "productAndDesignTeam": "Product & Ontwerp", + "operationsTeam": "Activiteiten", + "hrAndLegalTeam": "HR & Juridisch", + "itAndSupportTeam": "IT & Ondersteuning", + "financeTeam": "Financiën", + "creativeProductionTeam": "Creatieve productie", + "otherPersonalTeam": "Anders / Persoonlijk", + "customerServiceTeam": "Klantenservice", + "manufacturingTeam": "Productie" + }, + "workspaceStep": { + "title": "Creëer je workspace", + "workspaceLabel": "Workspace naam" + }, + "imageInput": { + "labelButton": "Uploaden", + "labelDescription": "Selecteer een afbeelding om te uploaden..." + }, + "colorInput": { + "default": "Standaard" + }, + "dashboardApplication": { + "createdAt": "gemaakt" + }, + "templateCard": { + "viewMore": "Meer bekijken" + }, + "dataExplorerNode": { + "showMore": "Meer herhalingen tonen", + "selectNode": "Selecteer" + }, + "exportWorkspaceModal": { + "exportSettings": "Export instellingen", + "reset": "Begin opnieuw", + "created": "gemaakt", + "cancel": "Annuleren", + "title": "Exporteren", + "description": "Je gegevens worden geëxporteerd als een ZIP-bestand, dat je kunt importeren in een andere Baserow-instantie.", + "export": "Data exporteren", + "download": "Downloaden", + "importingState": "Importeren", + "noExports": "Nog geen exports voor deze werkruimte.", + "exportingState": "Exporteren", + "exportingCreateArchiveState": "Archief aanmaken", + "exportingTableState": "Tabel exporteren: {table}" + }, + "exportWorkspaceForm": { + "exportSettingsLabel": "Export instellingen", + "onlyStructureDescription": "Als ingeschakeld, wordt alleen de structuur van de applicaties geëxporteerd. De data wordt niet meegenomen.", + "onlyStructureLabel": "Alleen structuur exporteren", + "selectDataToExport": "Gegevens selecteren om te exporteren", + "selectAll": "Selecteer alles", + "deselectAll": "Deselecteer alles" + }, + "importWorkspaceModal": { + "title": "Baserow data importeren", + "description": "Je kunt bestaand Baserow data importeren door het .zip-bestand van een andere Baserow instantie te uploaden.", + "upload": "Uploaden", + "cancel": "Annuleren", + "chooseFile": "Kies bestand", + "selectApplications": "Selecteer data om te importeren", + "deselectAll": "Deselecteer alles", + "selectAll": "Selecteer alles", + "databases": "Databases", + "applications": "Applicaties", + "successTitle": "De Baserow data is succesvol geïmporteerd", + "successMessage": "{count} applicaties geïmporteerd", + "signatureVerificationNote": "Het is niet mogelijk om een zipbestand van een onbetrouwbare bron te importeren.", + "import": "Data importeren", + "uploading": "uploaden...", + "done": "Klaar", + "close": "Sluit", + "retry": "Opnieuw proberen", + "invalidResourceTitle": "Ongeldige bron", + "invalidResourceMessage": "Het geleverde bestand is geen geldige Baserow export.", + "untrustedPublicKeyTitle": "Onbetrouwbare handtekening", + "untrustedPublicKeyMessage": "Het geleverde bestand is ondertekend met een onbetrouwbare openbare sleutel. Vraag je beheerder om de openbare sleutel toe te voegen aan de lijst van vertrouwde sleutels of de handtekeningverificatie uit te schakelen om dit bestand te kunnen importeren.", + "importingState": "Importeren", + "importingTableStructure": "Aanmaken: {table}", + "importingTableData": "Gegevens importeren: {tabel}", + "uploadAndImport": "Uploaden en importeren" + }, + "user": { + "isStaff": "Is personeel", + "isWorkspaceAdmin": "Is werkruimte beheerder", + "active": "Ingeschakeld", + "deactivated": "Uitgeschakeld" + }, + "adminType": { + "dashboard": "Dashboard", + "users": "Gebruikers", + "workspaces": "Werkruimtes", + "licenses": "Licenties" + }, + "workspacesAdminTable": { + "allWorkspaces": "Alle werkruimtes", + "id": "ID", + "name": "Naam", + "members": "Leden", + "applications": "Applicaties", + "created": "Aangemaakt", + "seatsTaken": "Plekken bezet", + "usageHelpText": "Wordt 's nachts berekend wanneer de instelling voor het gebruik van werkruimtes is ingeschakeld", + "rowCount": "Aantal rijen", + "freeUsers": "Gratis gebruikers", + "storageUsage": "Opslag gebruikt (MB)" + }, + "editWorkspaceContext": { + "delete": "Permanent verwijderen" + }, + "deleteWorkspaceModal": { + "title": "Verwijder {name}", + "confirmation": "Weet je zeker dat je de werkruimte: {name} wilt verwijderen?", + "comment": "De werkruimte wordt permanent verwijderd, inclusief de bijbehorende applicaties. Het is niet mogelijk deze actie ongedaan te maken.", + "delete": "Werkruimte {name} verwijderen" + }, + "activeUsers": { + "newUsers": "Nieuwe gebruikers", + "activeUsers": "Actieve gebruikers" + }, + "usersAdminTable": { + "allUsers": "Alle gebruikers", + "id": "ID", + "username": "Gebruikersnaam", "name": "Naam", - "teams": "Teams", - "highestRole": "Hoogste rol", - "highestRoleHelpText": "De hoogste rol die deze gebruiker rechtstreeks of vanuit een team aan hem is toegekend, op alles in deze werkruimte", - "highestRoleInstanceHelpText": "De hoogste rol die deze gebruiker heeft in de instantie", - "2fa": "2FA" - }, - "actions": { - "copyEmail": "E-mail kopiëren", - "remove": "Verwijderen uit werkruimte" - }, - "title": "{userAmount} Leden in {groupName}", - "inviteMember": "Lid uitnodigen" - }, - "membersTabTitle": "Leden", - "invitesTable": { - "columns": { + "workspaces": "Werkruimtes", + "lastLogin": "Laatste login", + "dateJoined": "Ingeschreven", + "active": "Ingeschakeld" + }, + "editUserContext": { + "changePassword": "Wachtwoord wijzigen", + "delete": "Permanent verwijderen", + "impersonate": "Imiteer" + }, + "changePasswordForm": { + "newPassword": "Nieuw wachtwoord", + "repeatPassword": "Herhaal wachtwoord", + "changePassword": "Wachtwoord wijzigen", + "error": { + "doesntMatch": "Dit veld moet overeenkomen met je wachtwoordveld." + } + }, + "userForm": { + "fullName": "Volledige naam", "email": "E-mail", - "message": "Bericht", - "role": "Role" - }, - "title": "{invitesAmount} Uitnodigingen in behandeling in {groupName}", - "actions": { - "copyEmail": "E-mail kopiëren", - "remove": "Uitnodiging annuleren" - } - }, - "membersInviteModal": { - "errors": { - "userAlreadyInWorkspace": { - "title": "Gebruiker zit al in de werkruimtes.", - "text": "Het is niet mogelijk een uitnodiging te sturen wanneer de gebruiker al lid is van de werkruimtes." + "isActive": "Is actief", + "warning": { + "changeEmail": "Als het e-mailadres van deze gebruiker wordt gewijzigd, moet hij/zij dit nieuwe e-mailadres gebruiken wanneer hij/zij zich aanmeldt. Dit moet aan de gebruiker worden gecommuniceerd.", + "inactiveUser": "Wanneer een gebruiker als inactief wordt gemarkeerd, kan deze zich niet meer aanmelden.", + "userStaff": "Door de gebruiker personeel te maken, krijgt deze beheerderstoegang tot alle gebruikers en alle werkruimtes, met de mogelijkheid om de eigen personeelsrechten in te trekken." + }, + "error": { + "invalidName": "Voer een geldige volledige naam in. De naam moet langer zijn dan 2 letters en minder dan 150.", + "invalidEmail": "Voer een geldig e-mail adres in." } - }, - "submit": "Stuur uitnodiging", - "title": "Werkruimte leden uitnodigen", - "helpIconText": "De geselecteerde rol wordt de standaard rol van de gebruiker in deze werkruimte." - }, - "invitesTabTitle": "Uitnodigingen" - }, - "crudTableSearch": { - "search": "Zoeken" - }, - "removeFromWorkspaceModal": { - "title": "Bevestig verwijdering uit de werkruimte", - "remove": "Verwijderen", - "confirmation": "Weet u zeker dat u {naam} wilt verwijderen uit {workspaceName}? Deze actie kan niet ongedaan worden gemaakt." - }, - "UserSessionExpiredNotification": { - "title": "Sessie verlopen", - "content": "U bent uitgelogd omdat uw authenticatietoken is verlopen. Log opnieuw in." - }, - "memberSelectionList": { - "searchPlaceholder": "Zoek ...", - "selectedAmountLabel": "{count} geselecteerd" - }, - "memberAssignmentModalFooter": { - "invite": "Uitnodigen {count}", - "deselectAll": "Deselecteer alles", - "selectAll": "Selecteer alles" - }, - "permissionsUpdatedNotification": { - "title": "Machtigingen bijgewerkt", - "action": "Herladen", - "content": "Dit kan invloed hebben op waar u toegang toe heeft, gelieve de pagina opnieuw te laden." - }, - "editRoleContext": { - "billableRolesLink": "Documentatie voor factureerbare rollen", - "additionalRoles": "Extra rollen" - }, - "highestPaidRoleField": { - "billable": "Factureerbaar" - }, - "clearAllNotificationsConfirmModal": { - "message": "Alle meldingen worden permanent verwijderd en u kunt ze niet meer zien.", - "title": "Weet je zeker dat je alle meldingen wilt wissen?" - }, - "notificationPanel": { - "title": "Meldingen", - "markAllAsRead": "Alles markeren als gelezen", - "clearAll": "Alles wissen", - "noNotification": "We zullen u op de hoogte brengen van belangrijke updates en wanneer u op Baserow wordt vermeld.", - "noNotificationTitle": "Je hebt geen meldingen", - "newNotificationsAvailable": "Nieuwe meldingen beschikbaar", - "refresh": "Vernieuwen" - }, - "uploadFileDropzone": { - "drop": "Laat hier los", - "clickOrDrop": "Klik of sleep je bestanden naar hier", - "errorTooManyFilesMessage": "Je kunt slechts één bestand uploaden", - "errorWrongFileTypeTitle": "Verkeerd bestandstype", - "errorWrongFileTypeMessage": "Je kunt geen bestand van het type {type} uploaden", - "errorTooManyFilesTitle": "Te veel bestanden" - }, - "connectingToast": { - "title": "Opnieuw verbinden", - "content": "Opnieuw verbinding maken met de server." - }, - "failedConnectingToast": { - "title": "Mislukt", - "content": "Verbinding met de server is mislukt. Vernieuw de pagina.", - "action": "Pagina vernieuwen" - }, - "authorizationErrorToast": { - "content": "Het lijkt erop dat je niet de rechten hebt om deze bron te zien.", - "title": "Autorisatiefout", - "action": "Pagina vernieuwen" - }, - "copyingToast": { - "title": "Kopiëren...", - "content": "Voorbereiding van uw gegevens" - }, - "PastingToast": { - "title": "Plakken...", - "content": "Voorbereiding van uw gegevens" - }, - "clearingToast": { - "title": "Wissen...", - "content": "Voorbereiding van uw gegevens" - }, - "undoRedoToast": { - "noMoreUndo": "Geen acties meer om ongedaan te maken", - "skippingUndoDueToError": "Ongedaan maken mislukt door onbekende fout, overslaan.", - "redoingTitle": "Opnieuw doen...", - "redoingText": "Je actie overnieuw doen", - "redoneTitle": "Opnieuw gedaan", - "redoneText": "Actie is opnieuw gedaan", - "noMoreRedo": "Geen acties meer om opnieuw te doen", - "failed": "Mislukt", - "skippingRedoDueToError": "Opnieuw uitvoeren mislukt vanwege onbekende fout, overslaan.", - "undoingText": "Je actie ongedaan maken", - "undoneText": "Actie is ongedaan gemaakt", - "undoingTitle": "Ongedaan maken...", - "undoneTitle": "Ongedaan gemaakt" - }, - "permissionsUpdatedToast": { - "title": "Machtigingen bijgewerkt", - "content": "Dit kan invloed hebben op waar u toegang toe heeft, gelieve de pagina opnieuw te laden.", - "action": "Herladen" - }, - "integrationCreateEditModal": { - "editTitle": "Integratie bewerken", - "warningTitle": "Waarschuwing", - "createTitle": "Nieuwe integratie" - }, - "integrationEditForm": { - "name": "Naam integratie", - "namePlaceholder": "Voer de integratie naam in..." - }, - "styleSidePanel": { - "paddingTop": "Opvulling bovenkant", - "paddingBottom": "Opvulling onderkant" - }, - "userSessionExpiredToast": { - "title": "Sessie verlopen", - "content": "Je bent uitgelogd omdat uw authenticatie token is verlopen. Log opnieuw in." - }, - "restoreToast": { - "restore": "Herstel verwijderd {type}" - }, - "workspaceInvitationRejectedNotification": { - "title": "{sender} heeft uw uitnodiging om lid te worden van {workspaceName} afgewezen", - "deletedUser": "Een verwijderde gebruiker" - }, - "workspaceInvitationCreatedNotification": { - "title": "{sender} heeft je uitgenodigd om lid te worden van {workspaceName}", - "deletedUser": "Een verwijderde gebruiker" - }, - "dropdown": { - "empty": "Geen items beschikbaar" - }, - "styleBoxForm": { - "paddingError": "De waarde moet een geheel getal zijn tussen 0 en 200." - }, - "workspaceInvitationAcceptedNotification": { - "title": "{sender} heeft uw uitnodiging om lid te worden van {workspaceName} geaccepteerd", - "deletedUser": "Een verwijderde gebruiker" - }, - "richTextEditorMentionsList": { - "notFound": "Geen gebruikers gevonden" - }, - "versionUpgradeNotification": { - "title": "{version} is hier! Bekijk wat er nieuw is." - }, - "emailNotifications": { - "submitButton": "Frequentie bijwerken", - "label": "Vermeldingen, commentaar en andere berichten", - "daily": "Dagelijks", - "title": "E-mail notificaties", - "never": "Nooit", - "weekly": "Wekelijks", - "description": "Configureer de frequentie waarmee e-mails naar uw Postvak IN worden verzonden.", - "instant": "Direct" - }, - "dataExplorer": { - "emptyText": "Geen data gevonden", - "noProvidersText": "Er zijn geen gegevensverstrekkers gevonden. Om te beginnen kun je bijvoorbeeld een gegevensbron of paginaparameter toevoegen.", - "noMatchingNodesText": "Er zijn geen overeenkomende gegevensverstrekkers gevonden." - }, - "formulaInputField": { - "errorInvalidFormula": "De formule is ongeldig.", - "advancedFormulaMode": "Geavanceerde formule-modus" - }, - "userPasswordChangedToast": { - "title": "Wachtwoord veranderd", - "content": "Je wachtwoord is gewijzigd. Log alsjeblieft nogmaals in." - }, - "integrationDropdown": { - "noIntegrations": "Geen integraties gevonden.", - "addIntegration": "Nieuwe integratie toevoegen", - "integrationPlaceholder": "Selecteer een integratie", - "selectTypeFirst": "Kies het type eerst" - }, - "richTextEditorBubbleMenu": { - "underline": "Onderstreep", - "bold": "Vet", - "italic": "Cursief", - "strikethrough": "Doorstreept", - "link": "Link", - "linkEditPlaceholder": "Link URL...", - "linkEditDone": "Klaar" - }, - "richTextEditorFloatingMenu": { - "hierarchy": "Hiërarchie", - "heading1": "Kop 1", - "heading2": "Kop 2", - "heading3": "Kop 3", - "orderedList": "Genummerde lijst", - "unorderedList": "Bullet lijst", - "code": "Code", - "taskList": "Takenlijst", - "lists": "Lijsten", - "paragraph": "Paragraaf" - }, - "workspaceSettingType": { - "generativeAI": "Generatieve AI" - }, - "generativeAIModelType": { - "openai": "OpenAI", - "openaiOrganization": "Organisatie (optioneel)", - "openaiModelsLabel": "Ingeschakelde modellen", - "openaiModelsDescription": "Geef een lijst met door komma's gescheiden [OpenAI-modellen] (https://platform.openai.com/docs/models/continuous-model-upgrades) die kunnen worden gebruikt in Baserow. (bijv. `gpt-3.5-turbo,gpt-4`)", - "ollamaHostLabel": "Host", - "ollamaModelsLabel": "Ingeschakelde modellen", - "openaiApiKeyLabel": "API-sleutel", - "openaiApiKeyDescription": "Geef een OpenAI API-sleutel op als je de integratie wilt inschakelen. [Instructies voor het verkrijgen van een API-sleutel](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key).", - "ollamaHostDescription": "Geef de hostnaam van je [Ollama](https://ollama.com/) server. Deze draait meestal lokaal op je eigen apparaat.", - "ollama": "Ollama", - "ollamaModelsDescription": "Geef een lijst met door komma gescheiden [Ollama geïnstalleerde modellen] (https://ollama.com/library). Het model moet worden gedownload en geïnstalleerd voordat het kan worden gebruikt. (bijvoorbeeld `llama2,mistral`)", - "mistral": "Mistral", - "mistralModelsLabel": "Ingeschakelde modellen", - "anthropic": "Anthropic", - "anthropicApiKeyLabel": "API-sleutel", - "anthropicApiKeyDescription": "Geef een Anthropic API-sleutel op als u de integratie wilt inschakelen. [Instructies voor het verkrijgen van een API-sleutel](https://docs.anthropic.com/en/api/getting-started).", - "anthropicModelsLabel": "Ingeschakelde modellen", - "anthropicModelsDescription": "Geef een lijst van door komma's gescheiden [Anthropic modellen] (https://docs.anthropic.com/en/docs/about-claude/models) die kunnen worden gebruikt in Baserow. (e.g. `claude-3-5-sonnet-20241022,claude-3-opus-20240229`)", - "mistralApiKeyLabel": "API-sleutel", - "mistralModelsDescription": "Geef een lijst met door komma's gescheiden [Mistral modellen] (https://docs.mistral.ai/getting-started/models/models_overview/) die kunnen worden gebruikt in Baserow. (bijv. `mistral-large-latest,mistral-small-latest`)", - "mistralApiKeyDescription": "Geef een Mistral API-sleutel als u de integratie wilt inschakelen. [Instructies voor het verkrijgen van een API-sleutel](https://docs.mistral.ai/getting-started/quickstart/).", - "openRouterApiKeyLabel": "API-sleutel", - "openRouterOrganization": "Organisatie (optioneel)", - "openRouter": "OpenRouter", - "openRouterModelsLabel": "Ingeschakelde modellen", - "openRouterModelsDescription": "Geef een lijst met door komma's gescheiden [OpenRouter modellen] (https://openrouter.ai/models) die kunnen worden gebruikt in Baserow. (bijv. `openai/gpt-4o,anthropic/claude-3-haiku`)", - "openRouterApiKeyDescription": "Geef een OpenRouter API-key op als u de integratie wilt inschakelen. [get an API key](https://openrouter.ai/settings/keys).", - "openaiBaseUrl": "Basis URL", - "openaiBaseUrlDescription": "Gebruikt standaard de OpenAI basis URL als deze leeg is. Kan optioneel worden gewijzigd in https://eu.api.openai.com/v1, https://<uw-bronnaam>.openai.azure.com, of een andere OpenAI-compatibele API." - }, - "generativeAIWorkspaceSettings": { - "title": "Generatieve AI-instellingen", - "submitButton": "Instellingen bijwerken", - "description": "Deze instellingen kunnen worden gebruikt om optioneel generatieve AI-configuratie in te stellen op werkruimte-niveau. Functies zoals het AI-veld kunnen worden uitgeschakeld omdat ze geen API-sleutel hebben voor een van de ondersteunde modellen. Door de instellingen hier op te geven, kun je die functies inschakelen. Als je een waarde leeg laat, wordt deze standaard teruggezet naar de globale instance-instellingen. Let op dat iedereen in de werkruimte deze instellingen deelt.", - "changedTitle": "Instellingen correct bijgewerkt", - "changedDescription": "De instellingen zijn bijgewerkt en worden nu gebruikt in deze werkruimte.", - "openSettings": "Instellingen openen", - "hideSettings": "Instellingen verbergen" - }, - "workspaceSettingsModal": { - "title": "Werkruimte-instellingen" - }, - "selectAIModelForm": { - "AIModel": "AI-model", - "AIType": "AI-type", - "fileField": "Bestandsveld", - "temperatureLabel": "Temperatuur", - "temperatureDescription": "De temperatuur van een LLM, een parameter die ingesteld kan worden tussen 0 en {max}, past de willekeurigheid van reacties aan - lagere waarden leveren gerichte antwoorden op, terwijl hogere waarden de creativiteit verhogen." - }, - "onboarding": { - "title": "Onboarding", - "creating": "Je eerste workspace maken", - "skip": "Voorlopig overslaan", - "failedSkip": "Onboarding overslaan", - "continue": "Ga verder", - "cancel": "Ik wil geen hulp bij het opzetten", - "failedTitle": "Er is iets misgegaan", - "failedDescription": "De onboarding is niet volledig voltooid, hoewel sommige onderdelen misschien wel zijn voltooid.", - "failedTryAgain": "Probeer het nog eens" - }, - "inviteStep": { - "title": "Medewerkers uitnodigen", - "collaboratorsLabel": "Medewerkers", - "description": "Je kunt later altijd meer toevoegen." - }, - "moreStep": { - "people": "Hoeveel mensen zitten er in je team?", - "share": "Ik wil dit graag delen met het Baserow team", - "title": "Vertel ons wat meer", - "roleOrJob": "Rol of functie...", - "country": "Land" - }, - "dashboardVerifyEmail": { - "title": "Controleer je mailbox en klik op de link om je e-mail te verifiëren.", - "resendConfirmationEmail": "Bevestigingsmail opnieuw verzenden" - }, - "verifyEmailAddress": { - "invalidToken": "Geen geldig bevestigingstoken.", - "emailMismatchWarning": "Houd er rekening mee dat het geverifieerde e-mailadres niet hoort bij de account die je momenteel gebruikt.", - "disabledPasswordProvider": "De wachtwoord authenticatie provider is uitgeschakeld.", - "confirmation": "Je e-mailadres is geverifieerd.", - "goToDashboard": "Ga naar het Dashboard" - }, - "emailNotVerified": { - "title": "Verificatie per e-mail vereist", - "description": "Controleer je mailbox en klik op de link om te verifiëren. Na verificatie wordt je account geactiveerd.", - "resend": "Bevestigingsmail opnieuw verzenden" - }, - "resendEmailVerification": { - "confirmationEmailSentTitle": "Bevestigings e-mail verzonden", - "confirmationEmailSentDescription": "De bevestigingsmail is verzonden." - }, - "teamStep": { - "title": "Laten we samen je eerste workspace bouwen!", - "marketingTeam": "Marketing", - "salesAndAccountManagementTeam": "Verkoop & Account Management", - "description": "In welk team zit je?", - "engineeringTeam": "Engineering", - "productAndDesignTeam": "Product & Ontwerp", - "operationsTeam": "Activiteiten", - "hrAndLegalTeam": "HR & Juridisch", - "itAndSupportTeam": "IT & Ondersteuning", - "financeTeam": "Financiën", - "creativeProductionTeam": "Creatieve productie", - "otherPersonalTeam": "Anders / Persoonlijk", - "customerServiceTeam": "Klantenservice", - "manufacturingTeam": "Productie" - }, - "workspaceStep": { - "title": "Creëer je workspace", - "workspaceLabel": "Workspace naam" - }, - "imageInput": { - "labelButton": "Uploaden", - "labelDescription": "Selecteer een afbeelding om te uploaden..." - }, - "colorInput": { - "default": "Standaard" - }, - "dashboardApplication": { - "createdAt": "gemaakt" - }, - "templateCard": { - "viewMore": "Meer bekijken" - }, - "dataExplorerNode": { - "showMore": "Meer herhalingen tonen", - "selectNode": "Selecteer" - }, - "exportWorkspaceModal": { - "exportSettings": "Export instellingen", - "reset": "Begin opnieuw", - "created": "gemaakt", - "cancel": "Annuleren", - "title": "Exporteren", - "description": "Je gegevens worden geëxporteerd als een ZIP-bestand, dat je kunt importeren in een andere Baserow-instantie.", - "export": "Data exporteren", - "download": "Downloaden", - "importingState": "Importeren", - "noExports": "Nog geen exports voor deze werkruimte.", - "exportingState": "Exporteren", - "exportingCreateArchiveState": "Archief aanmaken", - "exportingTableState": "Tabel exporteren: {table}" - }, - "exportWorkspaceForm": { - "exportSettingsLabel": "Export instellingen", - "onlyStructureDescription": "Als ingeschakeld, wordt alleen de structuur van de applicaties geëxporteerd. De data wordt niet meegenomen.", - "onlyStructureLabel": "Alleen structuur exporteren", - "selectDataToExport": "Gegevens selecteren om te exporteren", - "selectAll": "Selecteer alles", - "deselectAll": "Deselecteer alles" - }, - "importWorkspaceModal": { - "title": "Baserow data importeren", - "description": "Je kunt bestaand Baserow data importeren door het .zip-bestand van een andere Baserow instantie te uploaden.", - "upload": "Uploaden", - "cancel": "Annuleren", - "chooseFile": "Kies bestand", - "selectApplications": "Selecteer data om te importeren", - "deselectAll": "Deselecteer alles", - "selectAll": "Selecteer alles", - "databases": "Databases", - "applications": "Applicaties", - "successTitle": "De Baserow data is succesvol geïmporteerd", - "successMessage": "{count} applicaties geïmporteerd", - "signatureVerificationNote": "Het is niet mogelijk om een zipbestand van een onbetrouwbare bron te importeren.", - "import": "Data importeren", - "uploading": "uploaden...", - "done": "Klaar", - "close": "Sluit", - "retry": "Opnieuw proberen", - "invalidResourceTitle": "Ongeldige bron", - "invalidResourceMessage": "Het geleverde bestand is geen geldige Baserow export.", - "untrustedPublicKeyTitle": "Onbetrouwbare handtekening", - "untrustedPublicKeyMessage": "Het geleverde bestand is ondertekend met een onbetrouwbare openbare sleutel. Vraag je beheerder om de openbare sleutel toe te voegen aan de lijst van vertrouwde sleutels of de handtekeningverificatie uit te schakelen om dit bestand te kunnen importeren.", - "importingState": "Importeren", - "importingTableStructure": "Aanmaken: {table}", - "importingTableData": "Gegevens importeren: {tabel}", - "uploadAndImport": "Uploaden en importeren" - }, - "user": { - "isStaff": "Is personeel", - "isWorkspaceAdmin": "Is werkruimte beheerder", - "active": "Ingeschakeld", - "deactivated": "Uitgeschakeld" - }, - "adminType": { - "dashboard": "Dashboard", - "users": "Gebruikers", - "workspaces": "Werkruimtes", - "licenses": "Licenties" - }, - "workspacesAdminTable": { - "allWorkspaces": "Alle werkruimtes", - "id": "ID", - "name": "Naam", - "members": "Leden", - "applications": "Applicaties", - "created": "Aangemaakt", - "seatsTaken": "Plekken bezet", - "usageHelpText": "Wordt 's nachts berekend wanneer de instelling voor het gebruik van werkruimtes is ingeschakeld", - "rowCount": "Aantal rijen", - "freeUsers": "Gratis gebruikers", - "storageUsage": "Opslag gebruikt (MB)" - }, - "editWorkspaceContext": { - "delete": "Permanent verwijderen" - }, - "deleteWorkspaceModal": { - "title": "Verwijder {name}", - "confirmation": "Weet je zeker dat je de werkruimte: {name} wilt verwijderen?", - "comment": "De werkruimte wordt permanent verwijderd, inclusief de bijbehorende applicaties. Het is niet mogelijk deze actie ongedaan te maken.", - "delete": "Werkruimte {name} verwijderen" - }, - "activeUsers": { - "newUsers": "Nieuwe gebruikers", - "activeUsers": "Actieve gebruikers" - }, - "usersAdminTable": { - "allUsers": "Alle gebruikers", - "id": "ID", - "username": "Gebruikersnaam", - "name": "Naam", - "workspaces": "Werkruimtes", - "lastLogin": "Laatste login", - "dateJoined": "Ingeschreven", - "active": "Ingeschakeld" - }, - "editUserContext": { - "changePassword": "Wachtwoord wijzigen", - "delete": "Permanent verwijderen", - "impersonate": "Imiteer" - }, - "changePasswordForm": { - "newPassword": "Nieuw wachtwoord", - "repeatPassword": "Herhaal wachtwoord", - "changePassword": "Wachtwoord wijzigen", - "error": { - "doesntMatch": "Dit veld moet overeenkomen met je wachtwoordveld." - } - }, - "userForm": { - "fullName": "Volledige naam", - "email": "E-mail", - "isActive": "Is actief", - "warning": { - "changeEmail": "Als het e-mailadres van deze gebruiker wordt gewijzigd, moet hij/zij dit nieuwe e-mailadres gebruiken wanneer hij/zij zich aanmeldt. Dit moet aan de gebruiker worden gecommuniceerd.", - "inactiveUser": "Wanneer een gebruiker als inactief wordt gemarkeerd, kan deze zich niet meer aanmelden.", - "userStaff": "Door de gebruiker personeel te maken, krijgt deze beheerderstoegang tot alle gebruikers en alle werkruimtes, met de mogelijkheid om de eigen personeelsrechten in te trekken." }, - "error": { - "invalidName": "Voer een geldige volledige naam in. De naam moet langer zijn dan 2 letters en minder dan 150.", - "invalidEmail": "Voer een geldig e-mail adres in." - } - }, - "changeUserPasswordModal": { - "changePassword": "Wijzig wachtwoord voor {gebruikersnaam}" - }, - "deleteUserModal": { - "title": "Verwijder {gebruikersnaam}", - "confirmation": "Weet je zeker dat je de gebruiker: {name} wilt verwijderen?", - "comment1": "De gebruikersaccount wordt verwijderd, maar de werkruimtes waar die gebruiker lid van is blijven bestaan. De gebruikers werkruimte wordt niet verwijderd, zelfs als deze gebruiker de laatste gebruiker in de werkruimtes is. Door de laatste gebruiker in een werkruimte te verwijderen kan niemand meer toegang krijgen tot die werkruimte.", - "comment2": "Na het verwijderen van een gebruiker is het mogelijk dat een nieuwe gebruiker zich opnieuw aanmeldt met het e-mailadres van de verwijderde gebruiker. Om ervoor te zorgen dat ze zich niet opnieuw kunnen aanmelden, deactiveer de gebruiker in plaats van deze te verwijderen.", - "delete": "Verwijder gebruiker {gebruikersnaam}" - }, - "editUserModal": { - "delete": "Gebruiker verwijderen", - "edit": "Bewerk { gebruikersnaam }" - }, - "adminDashboard": { - "title": "Dashboard", - "totals": "Totalen", - "totalUsers": "Totaal gebruikers", - "totalWorkspaces": "Totaal werkruimte", - "totalApplications": "Totaal aanvragen", - "newUsers": "Nieuwe gebruikers", - "newUsers24h": "Nieuwe gebruikers laatste 24 uur", - "newUsers7days": "Nieuwe gebruikers laatste 7 dagen", - "newUsers30days": "Nieuwe gebruikers laatste 30 dagen", - "activeUsers": "Actieve gebruikers", - "activeUsers24h": "Actieve gebruikers laatste 24 uur", - "activeUsers7days": "Actieve gebruikers laatste 7 dagen", - "activeUsers30days": "Actieve gebruikers laatste 30 dagen", - "viewAll": "Alles bekijken" - }, - "formGroup": { - "protectedField": "Dit veld is beveiligd. Klik om te wijzigen.", - "cancelProtectedField": "Annuleer verandering" - }, - "userSourceType": { - "userCountSummary": "{count} gebruikers ({lastUpdated})" - }, - "colorPickerContext": { - "pickColorPlaceholder": "Of kies een vooraf gedefinieerde kleur" - }, - "guidedTourStep": { - "step": "{step} van {totalSteps}", - "gotIt": "Ik snap het", - "next": "Volgende", - "back": "Terug" - }, - "welcomeGuidedTourStep": { - "title": "Welkom bij Baserow", - "content": "We geven je een korte rondleiding om je vertrouwd te maken met de basisprincipes. In slechts een paar klikken leer je hoe je je gegevens moeiteloos kunt organiseren en visualiseren", - "buttonText": "Start de rondleiding" - }, - "createNewGuidedTourStep": { - "content": "Klik op \"Nieuw toevoegen...\" om een nieuwe database, applicatie of dashboard in te stellen voor je project, afdeling of team.", - "title": "Een nieuwe database of applicatie maken" - }, - "controlCenterGuidedTourStep": { - "content": "In de linkerzijbalk kun je je werkruimte beheren:\n\n- Home - Toegang tot je hoofddashboard.\n- Meldingen - Blijf op de hoogte van wijzigingen en vermeldingen.\n- Nodig anderen uit - Werk samen door teamleden toe te voegen.\n- Prullenbak - Al je verwijderde items weergeven en herstellen.", - "title": "Jouw Baserow Controle Centrum" - }, - "mcpEndpointSettings": { - "title": "MCP server", - "backToOverview": "Terug", - "noEndpointsMessage": "Er zijn geen MCP (Model Context Protocol) server eindpunten toegevoegd. Deze kunnen worden gebruikt om direct te integreren met een LLM zoals Claude, en de LLM direct acties te laten uitvoeren in Baserow. Maak een server eindpunt om te beginnen.", - "createEndpoint": "Eindpunt maken", - "createNewTitle": "MCP-server eindpunt maken" - }, - "mcpEndpointForm": { - "workspaceLabel": "Werkruimte", - "nameLabel": "Naam" - }, - "mcpEndpoint": { - "reveal": "Volledige URL weergeven", - "warning": "Behandel je MCP URL als een wachtwoord, omdat je hiermee gegevens in Baserow kunt wijzigen.", - "detailLabel": "Meer details", - "claudeInstructions": "Drie eenvoudige stappen om aan de slag te gaan met Claude Desktop en de Baserow MCP.\n\n1. Open de instellingen van Claude Desktop in de navigatiebalk (⌘+,)\n1. Ga naar het tabblad \"Ontwikkelen\" en klik op \"Edit Config\".\n1. Neem de volgende JSON-configuratie op in `claude_desktop_config.json`.", - "windsurfInstructions": "Twee eenvoudige stappen om MCP in te stellen met Cascase in Windsurf.\n\n1. Navigeer naar Windsurf - Settings -> Advanced Settings of Command Palette -> Open Windsurf settings page.\n1. Scroll naar beneden naar de Cascade sectie en je zult de optie vinden om een nieuwe server toe te voegen, bestaande servers te bekijken en een knop om het ruwe JSON config bestand `mcp_config.json` te bekijken. Voeg daar het volgende aan toe:", - "endpointURLIntro": "De MCP (Model Context Protocol) server URL kan worden toegevoegd aan elke client die MCP-servers ondersteunt. Het is een uniek eindpunt dat de LLM directe toegang geeft om namens jou acties uit te voeren in de werkruimte.", - "cursorInstructions": "Drie eenvoudige stappen om aan de slag te gaan met Cursor en het Baserow MCP.\n\n1. Cursorinstellingen openen (⇧+⌘+J)\n1. Navigeer naar het tabblad \"MCP\" en klik op \"Add MCP Server\" (MCP-server toevoegen)\n1. Voeg de volgende JSON-configuratie toe." - }, - "importWorkspaceForm": { - "selectApplicationsToImport": "Applicaties selecteren om te importeren" - }, - "workspaceSearch": { - "title": "Zoek", - "searchEverything": "Zoek...", - "searching": "Zoeken...", - "noResults": "Geen resultaten gevonden", - "noResultsSubtitle": "We konden niets vinden dat overeenkomt met \"{searchTerm}\"", - "welcome": "Doorzoek alles in je werkruimte", - "welcomeSubtitle": "Gebruik het zoekvak hierboven om toepassingen, tabellen, velden en meer te vinden", - "navigate": "Navigatie", - "select": "Selecteer", - "close": "Sluit", - "types": { - "applications": "Applicaties", - "tables": "Tabellen", - "fields": "Velden", - "rows": "Rijen" + "changeUserPasswordModal": { + "changePassword": "Wijzig wachtwoord voor {gebruikersnaam}" + }, + "deleteUserModal": { + "title": "Verwijder {gebruikersnaam}", + "confirmation": "Weet je zeker dat je de gebruiker: {name} wilt verwijderen?", + "comment1": "De gebruikersaccount wordt verwijderd, maar de werkruimtes waar die gebruiker lid van is blijven bestaan. De gebruikers werkruimte wordt niet verwijderd, zelfs als deze gebruiker de laatste gebruiker in de werkruimtes is. Door de laatste gebruiker in een werkruimte te verwijderen kan niemand meer toegang krijgen tot die werkruimte.", + "comment2": "Na het verwijderen van een gebruiker is het mogelijk dat een nieuwe gebruiker zich opnieuw aanmeldt met het e-mailadres van de verwijderde gebruiker. Om ervoor te zorgen dat ze zich niet opnieuw kunnen aanmelden, deactiveer de gebruiker in plaats van deze te verwijderen.", + "delete": "Verwijder gebruiker {gebruikersnaam}" + }, + "editUserModal": { + "delete": "Gebruiker verwijderen", + "edit": "Bewerk { gebruikersnaam }" + }, + "adminDashboard": { + "title": "Dashboard", + "totals": "Totalen", + "totalUsers": "Totaal gebruikers", + "totalWorkspaces": "Totaal werkruimte", + "totalApplications": "Totaal aanvragen", + "newUsers": "Nieuwe gebruikers", + "newUsers24h": "Nieuwe gebruikers laatste 24 uur", + "newUsers7days": "Nieuwe gebruikers laatste 7 dagen", + "newUsers30days": "Nieuwe gebruikers laatste 30 dagen", + "activeUsers": "Actieve gebruikers", + "activeUsers24h": "Actieve gebruikers laatste 24 uur", + "activeUsers7days": "Actieve gebruikers laatste 7 dagen", + "activeUsers30days": "Actieve gebruikers laatste 30 dagen", + "viewAll": "Alles bekijken" + }, + "formGroup": { + "protectedField": "Dit veld is beveiligd. Klik om te wijzigen.", + "cancelProtectedField": "Annuleer verandering" + }, + "userSourceType": { + "userCountSummary": "{count} gebruikers ({lastUpdated})" + }, + "colorPickerContext": { + "pickColorPlaceholder": "Of kies een vooraf gedefinieerde kleur" + }, + "guidedTourStep": { + "step": "{step} van {totalSteps}", + "gotIt": "Ik snap het", + "next": "Volgende", + "back": "Terug" + }, + "welcomeGuidedTourStep": { + "title": "Welkom bij Baserow", + "content": "We geven je een korte rondleiding om je vertrouwd te maken met de basisprincipes. In slechts een paar klikken leer je hoe je je gegevens moeiteloos kunt organiseren en visualiseren", + "buttonText": "Start de rondleiding" + }, + "createNewGuidedTourStep": { + "content": "Klik op \"Nieuw toevoegen...\" om een nieuwe database, applicatie of dashboard in te stellen voor je project, afdeling of team.", + "title": "Een nieuwe database of applicatie maken" + }, + "controlCenterGuidedTourStep": { + "content": "In de linkerzijbalk kun je je werkruimte beheren:\n\n- Home - Toegang tot je hoofddashboard.\n- Meldingen - Blijf op de hoogte van wijzigingen en vermeldingen.\n- Nodig anderen uit - Werk samen door teamleden toe te voegen.\n- Prullenbak - Al je verwijderde items weergeven en herstellen.", + "title": "Jouw Baserow Controle Centrum" + }, + "mcpEndpointSettings": { + "title": "MCP server", + "backToOverview": "Terug", + "noEndpointsMessage": "Er zijn geen MCP (Model Context Protocol) server eindpunten toegevoegd. Deze kunnen worden gebruikt om direct te integreren met een LLM zoals Claude, en de LLM direct acties te laten uitvoeren in Baserow. Maak een server eindpunt om te beginnen.", + "createEndpoint": "Eindpunt maken", + "createNewTitle": "MCP-server eindpunt maken" + }, + "mcpEndpointForm": { + "workspaceLabel": "Werkruimte", + "nameLabel": "Naam" + }, + "mcpEndpoint": { + "reveal": "Volledige URL weergeven", + "warning": "Behandel je MCP URL als een wachtwoord, omdat je hiermee gegevens in Baserow kunt wijzigen.", + "detailLabel": "Meer details", + "claudeInstructions": "Drie eenvoudige stappen om aan de slag te gaan met Claude Desktop en de Baserow MCP.\n\n1. Open de instellingen van Claude Desktop in de navigatiebalk (⌘+,)\n1. Ga naar het tabblad \"Ontwikkelen\" en klik op \"Edit Config\".\n1. Neem de volgende JSON-configuratie op in `claude_desktop_config.json`.", + "windsurfInstructions": "Twee eenvoudige stappen om MCP in te stellen met Cascase in Windsurf.\n\n1. Navigeer naar Windsurf - Settings -> Advanced Settings of Command Palette -> Open Windsurf settings page.\n1. Scroll naar beneden naar de Cascade sectie en je zult de optie vinden om een nieuwe server toe te voegen, bestaande servers te bekijken en een knop om het ruwe JSON config bestand `mcp_config.json` te bekijken. Voeg daar het volgende aan toe:", + "endpointURLIntro": "De MCP (Model Context Protocol) server URL kan worden toegevoegd aan elke client die MCP-servers ondersteunt. Het is een uniek eindpunt dat de LLM directe toegang geeft om namens jou acties uit te voeren in de werkruimte.", + "cursorInstructions": "Drie eenvoudige stappen om aan de slag te gaan met Cursor en het Baserow MCP.\n\n1. Cursorinstellingen openen (⇧+⌘+J)\n1. Navigeer naar het tabblad \"MCP\" en klik op \"Add MCP Server\" (MCP-server toevoegen)\n1. Voeg de volgende JSON-configuratie toe." + }, + "importWorkspaceForm": { + "selectApplicationsToImport": "Applicaties selecteren om te importeren" + }, + "workspaceSearch": { + "title": "Zoek", + "searchEverything": "Zoek...", + "searching": "Zoeken...", + "noResults": "Geen resultaten gevonden", + "noResultsSubtitle": "We konden niets vinden dat overeenkomt met \"{searchTerm}\"", + "welcome": "Doorzoek alles in je werkruimte", + "welcomeSubtitle": "Gebruik het zoekvak hierboven om toepassingen, tabellen, velden en meer te vinden", + "navigate": "Navigatie", + "select": "Selecteer", + "close": "Sluit", + "types": { + "applications": "Applicaties", + "tables": "Tabellen", + "fields": "Velden", + "rows": "Rijen" + }, + "empty": "(leeg)" + }, + "action": { + "cancel": "Annuleren", + "submit": "Verstuur" + }, + "twoFactorAuthSettings": { + "title": "Tweefactorauthenticatie", + "loadingError": "Kon tweefactorconfiguratie niet laden." + }, + "disableTwoFactorAuth": { + "title": "Weet je zeker dat je 2FA wilt uitschakelen?", + "description": "Je account verliest een extra beveiligingslaag. Als iemand achter je wachtwoord komt, kan hij of zij misschien inloggen op je account.", + "cancel": "Laat het aan", + "disable": "Uitschakelen", + "successTitle": "Tweefactorauthenticatie is uitgeschakeld", + "errorWrongPasswordTitle": "Verkeerd wachtwoord", + "errorWrongPasswordMessage": "Het ingevoerde wachtwoord komt niet overeen met uw wachtwoord." + }, + "enableTwoFactorOptions": { + "cancel": "Annuleren", + "continue": "Ga verder" + }, + "saveBackupCode": { + "description": "Als je de toegang tot de authenticator-app of telefoon verliest en geen verificatiecodes kunt ontvangen of genereren, kun je deze back-up gebruiken. Je kunt het maar één keer gebruiken. Zorg ervoor dat je het opschrijft of kopieert naar een veilige plek zodat je het kunt openen zonder in te loggen.", + "backupCodes": "Back-up codes", + "copy": "Kopiëren", + "continue": "Ga verder", + "backupCodesCopiedTitle": "Gekopieerd!", + "backupCodesCopiedMessage": "Back-upcodes gekopieerd naar klembord." + }, + "totpAuthType": { + "name": "Authenticator-app", + "description": "Gebruik een app om tweefactorauthenticatiecodes te krijgen. We raden aan apps te gebruiken zoals Google Authenticator, Authy en Microsoft Authenticator.", + "enabledDescription": "Je ontvangt verificatiecodes via een authenticatie-app. Om een andere app of methode in te stellen, schakel je gewoon 2FA uit en stel je opnieuw in.", + "sideLabel": "Aanbevolen" + }, + "twoFactorEnabled": { + "enabled": "Ingeschakeld", + "disable": "2FA uitschakelen" + }, + "totpLogin": { + "backupCodesTitle": "Back-upcode invoeren", + "backupCodesDescription": "Log in met je eenmalige back-upcode.", + "authenticate": "Authenticeren", + "goBack": "Ga terug", + "totpTitle": "Tweefacturauthenticatie", + "totpDescription": "Voer de code van je authenticator-app in.", + "verify": "Controleer", + "useBackupCode": "Gebruik back-upcode", + "verificationFailed": "Verificatie mislukt", + "verificationFailedDescription": "De ingevoerde code is niet correct.", + "loginExpired": "Inloggen verlopen", + "loginExpiredDescription": "Geef je wachtwoord opnieuw op.", + "rateLimit": "Te veel pogingen." + }, + "formulaInputContext": { + "variables": "Variables", + "functions": "Functies", + "operators": "Operators", + "search": "Zoeken", + "useRegularInputModalTitle": "Normale invoer gebruiken voor dit veld?", + "useRegularInput": "Gebruik regelmatige invoer", + "useAdvancedInput": "Geavanceerde invoer gebruiken", + "useAdvancedInputModalTitle": "Geavanceerde invoer gebruiken voor dit veld?", + "modalMessage": "De inhoud van je veld zal worden gewist en het zal niet mogelijk zijn om het te herstellen.", + "useSimpleInput": "Schakel over naar basismodus", + "useSimpleInputModalTitle": "Overstappen naar basismodus?" + }, + "coreHTTPTriggerServiceForm": { + "title": "Webhook URL", + "urlVersion": "Versie", + "urlVersionPublished": "Gepubliceerd", + "urlVersionTest": "Test", + "copyUrl": "URL webhook kopiëren", + "urlCopied": "Webhook URL gekopieerd naar klembord", + "description": "Deze webhook zal HTP verzoeken ontvangen en de workflow starten met de verzoekgegevens als de lading.", + "methodsOptionLabel": "Toegestane HTTP-methoden", + "methodsOptionDescription": "Bepaalt welke HTTP-methodes zijn toegestaan voor deze webhook. Het uitsluiten van GET vermindert de kans dat de webhook per ongeluk wordt geactiveerd.", + "methodsOptionAll": "Alle", + "methodsOptionExcludeGet": "GET uitsluiten" + }, + "twoFactorAuthEmpty": { + "title": "Je hebt 2FA nog niet ingeschakeld", + "description": "Voeg een extra beveiligingslaag toe aan je account.", + "enable": "2FA inschakelen", + "notAllowedTitle": "2FA niet ingeschakeld", + "notAllowedDescription": "Het toevoegen van 2FA is alleen mogelijk voor accounts met een wachtwoord." + }, + "nodeHelpTooltip": { + "exampleLabel": "Voorbeeld", + "result": "Resultaat: {result}" + }, + "enableWithQRCode": { + "scanQRCode": "QR-code scannen", + "scanQRCodeDescription": "Scan de code met een app zoals Google Authenticator, Authy of Microsoft Authenticator.", + "clickToCopy": "Je kunt ook hier klikken om de code te kopiëren.", + "secretCopiedTitle": "Geheim gekopieerd", + "secretCopiedMessage": "TOTP geheim gekopieerd naar klembord.", + "enterCode": "Voer de getoonde code in", + "enterCodeDescription": "Voer een 6-cijferige code in die door de app wordt getoond om te bevestigen dat je de app correct hebt ingesteld.", + "verificationFailed": "Verificatie mislukt", + "verificationFailedDescription": "De ingevoerde code is ongeldig.", + "provisioningFailed": "Voorziening mislukt", + "checkSuccess": "Tweefactorauthenticatie succesvol ingeschakeld" + }, + "twoFactorAuthField": { + "enabled": "Ingeschakeld", + "disabled": "Uitgeschakeld" + }, + "emailSettings": { + "title": "Verander e-mailadres", + "successTitle": "Bevestigingsmail verstuurd", + "successDescription": "We hebben een bevestigingsmail naar je nieuwe adres gestuurd. Check je inbox en klik op de link om de e-mailwijziging af te ronden.", + "currentEmailLabel": "Huidig e-mailadres", + "newEmailLabel": "Nieuw e-mailadres", + "passwordLabel": "Huidig wachtwoord", + "submitButton": "Bevestigingsmail versturen", + "errorInvalidPasswordTitle": "Ongeldig wachtwoord", + "errorInvalidPasswordMessage": "We konden de e-mailwijziging niet aanvragen omdat je wachtwoord onjuist is.", + "errorEmailExistsTitle": "E-mailadres bestaat al", + "errorEmailExistsMessage": "We konden de e-mailwijziging niet aanvragen omdat er al een account met dit e-mailadres bestaat.", + "errorNotAllowedTitle": "E-mailwijziging niet toegestaan", + "errorNotAllowedMessage": "Je kunt je e-mailadres niet wijzigen omdat je account single sign-on (SSO) gebruikt." + }, + "changeEmail": { + "title": "Bevestig e-mailwijziging", + "submit": "Bevestig e-mailwijziging", + "changed": "E-mailadres gewijzigd", + "message": "Je e-mailadres is succesvol gewijzigd. Je kunt nu inloggen op Baserow met je nieuwe e-mailadres.", + "errorInvalidLinkTitle": "Ongeldige link", + "errorInvalidLinkMessage": "We konden het e-mailadres niet wijzigen omdat de link ongeldig is.", + "errorLinkExpiredTitle": "Link verlopen", + "errorLinkExpiredMessage": "De link om je e-mailadres te wijzigen is verlopen. Vraag in je accountinstellingen een nieuwe aan.", + "errorEmailExistsTitle": "E-mailadres bestaat al", + "errorEmailExistsMessage": "We konden het e-mailadres niet wijzigen omdat er al een account met dit e-mailadres bestaat.", + "errorEmailAlreadyChangedTitle": "E-mailadres al gewijzigd", + "errorEmailAlreadyChangedMessage": "Het e-mailadres is al gewijzigd naar het aangevraagde adres." + }, + "adminUsers": { + "title": "Gebruikers" + }, + "adminWorkspaces": { + "title": "Werkruimtes" } - }, - "action": { - "cancel": "Annuleren", - "submit": "Verstuur" - }, - "twoFactorAuthSettings": { - "title": "Tweefactorauthenticatie", - "loadingError": "Kon tweefactorconfiguratie niet laden." - }, - "disableTwoFactorAuth": { - "title": "Weet je zeker dat je 2FA wilt uitschakelen?", - "description": "Je account verliest een extra beveiligingslaag. Als iemand achter je wachtwoord komt, kan hij of zij misschien inloggen op je account.", - "cancel": "Laat het aan", - "disable": "Uitschakelen", - "successTitle": "Tweefactorauthenticatie is uitgeschakeld", - "errorWrongPasswordTitle": "Verkeerd wachtwoord", - "errorWrongPasswordMessage": "Het ingevoerde wachtwoord komt niet overeen met uw wachtwoord." - }, - "enableTwoFactorOptions": { - "cancel": "Annuleren", - "continue": "Ga verder" - }, - "saveBackupCode": { - "description": "Als je de toegang tot de authenticator-app of telefoon verliest en geen verificatiecodes kunt ontvangen of genereren, kun je deze back-up gebruiken. Je kunt het maar één keer gebruiken. Zorg ervoor dat je het opschrijft of kopieert naar een veilige plek zodat je het kunt openen zonder in te loggen.", - "backupCodes": "Back-up codes", - "copy": "Kopiëren", - "continue": "Ga verder", - "backupCodesCopiedTitle": "Gekopieerd!", - "backupCodesCopiedMessage": "Back-upcodes gekopieerd naar klembord." - }, - "totpAuthType": { - "name": "Authenticator-app", - "description": "Gebruik een app om tweefactorauthenticatiecodes te krijgen. We raden aan apps te gebruiken zoals Google Authenticator, Authy en Microsoft Authenticator.", - "enabledDescription": "Je ontvangt verificatiecodes via een authenticatie-app. Om een andere app of methode in te stellen, schakel je gewoon 2FA uit en stel je opnieuw in.", - "sideLabel": "Aanbevolen" - }, - "twoFactorEnabled": { - "enabled": "Ingeschakeld", - "disable": "2FA uitschakelen" - }, - "totpLogin": { - "backupCodesTitle": "Back-upcode invoeren", - "backupCodesDescription": "Log in met je eenmalige back-upcode.", - "authenticate": "Authenticeren", - "goBack": "Ga terug", - "totpTitle": "Tweefacturauthenticatie", - "totpDescription": "Voer de code van je authenticator-app in.", - "verify": "Controleer", - "useBackupCode": "Gebruik back-upcode", - "verificationFailed": "Verificatie mislukt", - "verificationFailedDescription": "De ingevoerde code is niet correct.", - "loginExpired": "Inloggen verlopen", - "loginExpiredDescription": "Geef je wachtwoord opnieuw op.", - "rateLimit": "Te veel pogingen." - }, - "formulaInputContext": { - "variables": "Variables", - "functions": "Functies", - "operators": "Operators", - "search": "Zoeken", - "useRegularInputModalTitle": "Normale invoer gebruiken voor dit veld?", - "useRegularInput": "Gebruik regelmatige invoer", - "useAdvancedInput": "Geavanceerde invoer gebruiken", - "useAdvancedInputModalTitle": "Geavanceerde invoer gebruiken voor dit veld?", - "modalMessage": "De inhoud van je veld zal worden gewist en het zal niet mogelijk zijn om het te herstellen." - }, - "coreHTTPTriggerServiceForm": { - "title": "Webhook URL", - "urlVersion": "Versie", - "urlVersionPublished": "Gepubliceerd", - "urlVersionTest": "Test", - "copyUrl": "URL webhook kopiëren", - "urlCopied": "Webhook URL gekopieerd naar klembord", - "description": "Deze webhook zal HTP verzoeken ontvangen en de workflow starten met de verzoekgegevens als de lading.", - "methodsOptionLabel": "Toegestane HTTP-methoden", - "methodsOptionDescription": "Bepaalt welke HTTP-methodes zijn toegestaan voor deze webhook. Het uitsluiten van GET vermindert de kans dat de webhook per ongeluk wordt geactiveerd.", - "methodsOptionAll": "Alle", - "methodsOptionExcludeGet": "GET uitsluiten" - }, - "twoFactorAuthEmpty": { - "title": "Je hebt 2FA nog niet ingeschakeld", - "description": "Voeg een extra beveiligingslaag toe aan je account.", - "enable": "2FA inschakelen", - "notAllowedTitle": "2FA niet ingeschakeld", - "notAllowedDescription": "Het toevoegen van 2FA is alleen mogelijk voor accounts met een wachtwoord." - }, - "nodeHelpTooltip": { - "exampleLabel": "Voorbeeld", - "result": "Resultaat: {result}" - }, - "enableWithQRCode": { - "scanQRCode": "QR-code scannen", - "scanQRCodeDescription": "Scan de code met een app zoals Google Authenticator, Authy of Microsoft Authenticator.", - "clickToCopy": "Je kunt ook hier klikken om de code te kopiëren.", - "secretCopiedTitle": "Geheim gekopieerd", - "secretCopiedMessage": "TOTP geheim gekopieerd naar klembord.", - "enterCode": "Voer de getoonde code in", - "enterCodeDescription": "Voer een 6-cijferige code in die door de app wordt getoond om te bevestigen dat je de app correct hebt ingesteld.", - "verificationFailed": "Verificatie mislukt", - "verificationFailedDescription": "De ingevoerde code is ongeldig.", - "provisioningFailed": "Voorziening mislukt", - "checkSuccess": "Tweefactorauthenticatie succesvol ingeschakeld" - }, - "twoFactorAuthField": { - "enabled": "Ingeschakeld", - "disabled": "Uitgeschakeld" - } } diff --git a/web-frontend/modules/core/locales/uk.json b/web-frontend/modules/core/locales/uk.json index 7df47b7b44..b34625f890 100644 --- a/web-frontend/modules/core/locales/uk.json +++ b/web-frontend/modules/core/locales/uk.json @@ -117,13 +117,13 @@ "leave": "Покинути робочий простір" }, "dashboardWorkspace": { - "createApplication": "" + "createApplication": "Створити новий" }, "workspaceInvitation": { - "title": "", - "message": "", - "reject": "", - "accept": "" + "title": "Запрошення", + "message": "{by} запросив(ла) вас приєднатися до {workspace}.", + "reject": "Відхилити", + "accept": "Прийняти" }, "workspaceMemberModal": { "membersModalTitle": "", @@ -135,10 +135,11 @@ "userAlreadyInWorkspaceText": "" }, "workspaceInviteForm": { - "invitationFormTitle": "", - "optionalMessagePlaceholder": "", - "errorInvalidEmail": "", - "errorTooLongMessage": "" + "invitationFormTitle": "Запросити електронною поштою", + "optionalMessagePlaceholder": "Необов’язкове повідомлення", + "errorInvalidEmail": "Будь ласка, введіть дійсну адресу електронної пошти.", + "errorTooLongMessage": "Повідомлення обмежені {amount} символами.", + "additionalRoles": "Додаткові ролі" }, "workspacesContext": { "search": "", @@ -146,77 +147,88 @@ "createWorkspace": "" }, "workspaceContext": { - "renameWorkspace": "", - "members": "", - "viewTrash": "", - "leaveWorkspace": "", - "deleteWorkspace": "" + "renameWorkspace": "Перейменувати робочий простір", + "members": "Учасники", + "viewTrash": "Переглянути кошик", + "leaveWorkspace": "Покинути робочий простір", + "deleteWorkspace": "Видалити робочий простір", + "exportWorkspace": "Експортувати дані", + "importWorkspace": "Імпортувати дані", + "settings": "Налаштування", + "auditLog": "Журнал аудиту" }, "createWorkspaceModal": { - "createNew": "", - "defaultName": "", - "add": "", - "permissionDeniedTitle": "", - "permissionDeniedBody": "" + "createNew": "Створити новий робочий простір", + "defaultName": "Робочий простір без назви", + "add": "Додати робочий простір", + "permissionDeniedTitle": "Доступ заборонено", + "permissionDeniedBody": "У вас немає необхідного дозволу для створення нового робочого простору." }, "templateCategories": { - "search": "", - "title": "" + "search": "Пошук шаблонів", + "title": "Шаблони" }, "templateHeader": { - "use": "" + "use": "Використати цей шаблон" }, "trashSidebar": { "title": "", - "unnamedWorkspace": "" + "unnamedWorkspace": "Робочий простір без назви {id}", + "workspaces": "Робочі простори" }, "trashContents": { - "message": "", - "empty": "", - "emptyButtonTrashed": "", - "emptyButtonNotTrashed": "", - "unnamed": "" + "message": "Відновити видалені елементи за останні {duration}", + "empty": "Протягом останніх трьох днів нічого не було видалено.", + "emptyButtonTrashed": "Назавжди видалити {type}", + "emptyButtonNotTrashed": "Очистити кошик цього {type}", + "unnamed": "{type} без назви {id}" }, "trashEmptyModal": { - "titleIsTrashed": "", - "titleIsNotTrashed": "", - "messageIsTrashed": "", - "messageIsNotTrashed": "", - "buttonIsTrashed": "", - "buttonIsNotTrashed": "" + "titleIsTrashed": "Ви впевнені, що хочете назавжди видалити {name}?", + "titleIsNotTrashed": "Ви впевнені, що хочете очистити кошик {name}?", + "messageIsTrashed": "Це назавжди видалить його та весь його вміст. Після цього їх не можна буде відновити.", + "messageIsNotTrashed": "Це назавжди видалить зазначені елементи. Після цього їх не можна буде відновити.", + "buttonIsTrashed": "Видалити назавжди", + "buttonIsNotTrashed": "Видалити вміст" }, "trashEntry": { - "deletedUser": "", - "fromParent": "", - "name": "", - "restore": "", - "andMore": "", - "unnamed": "" + "deletedUser": "Видалений користувач", + "fromParent": "з {parent}", + "name": "{user} видалив(ла) {type} {title} з {parent}", + "restore": "Відновити", + "andMore": "… і ще {count}", + "unnamed": "{type} без назви {id}" }, "trashModal": { - "emptyTitle": "", - "emptyMessage": "", - "emptyMessageWithoutCreatePermission": "" + "emptyTitle": "Робочі простори не знайдено", + "emptyMessage": "Ви не є учасником жодного робочого простору. Такі додатки, як бази даних, належать до робочого простору, тому для їх створення спочатку потрібно створити робочий простір.", + "emptyMessageWithoutCreatePermission": "Ви не є учасником жодного робочого простору. Такі додатки, як бази даних, належать до робочого простору, тому щоб створювати їх, спершу адміністратор має запросити вас до робочого простору." }, "uploadViaURLUserFileUpload": { - "title": "", - "urlLabel": "", - "urlError": "" + "title": "Завантажити з URL", + "urlLabel": "URL", + "urlError": "Потрібно ввести дійсний URL." }, "userFilesModal": { - "title": "" + "title": "Завантажити з" }, "uploadFileUserFileUpload": { - "title": "", - "drop": "", - "clickOrDrop": "", - "retry": "" + "title": "Завантажити з мого пристрою", + "drop": "Перетягніть сюди", + "clickOrDrop": "Клацніть або перетягніть файли сюди", + "retry": "Спробувати ще раз" }, "createApplicationContext": { - "fromTemplate": "" + "fromTemplate": "З шаблону", + "fromTemplateDesc": "Швидко почніть із одного з наших рекомендованих шаблонів", + "table": "Таблиця", + "tableDesc": "Створіть нове місце для керування даними у вашій базі даних.", + "importWorkspace": "Імпортувати дані", + "importWorkspaceDesc": "Додати наявні дані з іншої інстанції Baserow." }, "applicationForm": { - "nameLabel": "" + "nameLabel": "Назва", + "namePlaceholder": "Введіть назву…" }, "connectingNotification": { "title": "", @@ -272,29 +284,43 @@ "action": "" }, "errorLayout": { - "notFound": "", - "error": "", - "backDashboard": "", - "backLogin": "", - "wrong": "", - "refresh": "" + "notFound": "Сторінку, яку ви шукаєте, не знайдено. Можливо, URL-адреса неправильна або у вас немає прав для перегляду цієї сторінки.", + "error": "Під час завантаження сторінки сталася помилка. Наших розробників уже повідомлено про проблему. Спробуйте оновити сторінку або повернутися до панелі керування.", + "backDashboard": "Назад до панелі керування", + "backLogin": "Повернутися до входу", + "wrong": "Щось пішло не так", + "refresh": "Оновити сторінку" }, "dashboard": { - "title": "", - "alertTitle": "", - "alertText": "", - "tweetContent": "", - "redditTitle": "", + "title": "Дашборд", + "alertTitle": "Нам потрібна ваша допомога!", + "alertText": "Розповідаючи про Baserow, ви допомагаєте нам розвивати продукт і робити його більш корисним для вас.", + "tweetContent": "Зверніть увагу на {'@'}baserow — інструмент для баз даних з відкритим кодом і без програмування, альтернатива Airtable!", + "redditTitle": "'Baserow — база даних з відкритим кодом без програмування", "noWorkspaceTitle": "", "noWorkspaceText": "", "noWorkspaceTextWithoutCreatePermission": "", "createWorkspace": "", - "becomeGithubSponsor": "", + "becomeGithubSponsor": "Підтримайте нас як спонсор на GitHub", "starOnGitlab": "", - "shareOnTwitter": "", - "shareOnReddit": "", - "shareOnFacebook": "", - "shareOnLinkedIn": "" + "shareOnTwitter": "Поділіться твітом про Baserow", + "shareOnReddit": "Поширити на Reddit", + "shareOnFacebook": "Поділитися у Facebook", + "shareOnLinkedIn": "Поділитися у LinkedIn", + "starOnGitHub": "Поставте нам зірку на GitHub", + "suggestedTemplates": "Рекомендовані шаблони", + "resources": "Ресурси", + "knowledgeBase": "Центр знань", + "knowledgeBaseMessage": "Знайдіть відповіді на всі ваші запитання", + "tutorials": "Навчальні матеріали", + "tutorialsMessage": "Дослідіть можливості Baserow", + "apiDocumentation": "Документація API", + "apiDocumentationMessage": "Докладніше про наш код", + "emptyWorkspace": "Цей робочий простір порожній", + "emptyWorkspaceMessage": "Розпочніть, створивши нову базу даних або застосунок.", + "addNew": "Додати новий…", + "noWorkspace": "Немає робочого простору", + "noWorkspaceDescription": "Почніть зі створення нового робочого простору" }, "dashboardSidebar": { "workspaces": "", @@ -306,214 +332,241 @@ "logoff": "" }, "login": { - "title": "", - "emailPlaceholder": "", - "passwordPlaceholder": "", - "forgotPassword": "", - "signUpText": "", - "signUp": "", - "displayPasswordLogin": "", - "redirecting": "" + "title": "З поверненням", + "emailPlaceholder": "Введіть свою електронну адресу..", + "passwordPlaceholder": "Введіть свій пароль..", + "forgotPassword": "Забули?", + "signUpText": "Вперше в Baserow?", + "signUp": "Зареєструватися", + "displayPasswordLogin": "Увійти за допомогою email та пароля", + "redirecting": "Перенаправлення до провайдера автентифікації..." }, "resetPassword": { - "title": "", - "newPassword": "", - "repeatNewPassword": "", - "submit": "", - "changed": "", - "errorInvalidLinkTitle": "", - "errorInvalidLinkMessage": "", - "errorLinkExpiredTitle": "", - "errorLinkExpiredMessage": "", - "disabled": "", - "disabledMessage": "" + "title": "Скинути пароль", + "newPassword": "Новий пароль", + "repeatNewPassword": "Повторіть новий пароль", + "submit": "Змінити пароль", + "changed": "Пароль змінено", + "errorInvalidLinkTitle": "Неправильне посилання", + "errorInvalidLinkMessage": "Не вдалося скинути пароль, оскільки посилання недійсне.", + "errorLinkExpiredTitle": "Термін дії посилання минув", + "errorLinkExpiredMessage": "Термін дії посилання для скидання пароля минув. Будь ласка, запросіть нове.", + "disabled": "Скидання пароля вимкнено", + "disabledMessage": "Скинути пароль неможливо, оскільки цю функцію вимкнено.", + "message": "Тепер ви можете увійти в Baserow, використовуючи новий пароль." }, "signup": { - "headTitle": "", - "title": "", - "disabled": "", - "disabledMessage": "", - "requireFirstUser": "", - "requireFirstUserMessage": "", - "emailPlaceholder": "", - "namePlaceholder": "", - "passwordPlaceholder": "", - "passwordRepeatPlaceholder": "", - "loginText": "", - "login": "" + "headTitle": "Створити обліковий запис", + "title": "Зареєструватися", + "disabled": "Реєстрацію вимкнено", + "disabledMessage": "Неможливо створити обліковий запис, оскільки цю можливість вимкнено.", + "requireFirstUser": "Вітаємо в Baserow!", + "requireFirstUserMessage": "Будь ласка, заповніть форму нижче, щоб створити адміністратора.", + "emailPlaceholder": "Введіть свою електронну адресу..", + "namePlaceholder": "Вкажіть своє ім’я..", + "passwordPlaceholder": "Введіть свій пароль..", + "passwordRepeatPlaceholder": "Підтвердіть свій пароль..", + "loginText": "Вже маєте обліковий запис?", + "login": "Вхід" }, "forgotPassword": { - "title": "", - "message": "", - "submit": "", - "confirmation": "", - "disabled": "", - "disabledMessage": "", - "loginText": "" + "title": "Забули пароль", + "message": "Введіть свою електронну адресу, і ми надішлемо вам посилання для скидання пароля.", + "submit": "Надіслати посилання", + "confirmation": "Ми надіслали лист на адресу {email}, який містить посилання для скидання вашого пароля в Baserow.", + "disabled": "Відновлення пароля вимкнено", + "disabledMessage": "Скинути пароль неможливо, оскільки цю функцію вимкнено.", + "loginText": "Вже маєте обліковий запис і пароль?", + "confirmationTitle": "Перевірте свою електронну пошту", + "goBack": "Повернутися назад" }, "settings": { - "settingsTitle": "", - "baserowInstanceId": "", - "instanceIdDescription": "", - "accountRestrictions": "", - "settingAllowResetPasswordName": "", - "settingAllowResetPasswordDescription": "", - "settingAllowResetPasswordWarning": "", - "settingAllowNewAccountsName": "", - "settingAllowNewAccountsDescription": "", - "settingAllowSignupsViaWorkspaceInvitationsName": "", - "settingAllowSignupsViaWorkspaceInvitationDescription": "", - "settingAllowNonStaffCreateWorkspaceOperation": "", - "settingAllowNonStaffCreateWorkspaceOperationDescription": "", - "settingAllowNonStaffCreateWorkspaceOperationWarning": "", + "settingsTitle": "Налаштування адміністратора", + "baserowInstanceId": "Ідентифікатор інстансу", + "instanceIdDescription": "Ідентифікатор інстансу — це унікальний ідентифікатор вашої копії Baserow.", + "accountRestrictions": "Обмеження облікового запису", + "settingAllowResetPasswordName": "Дозволити скидання пароля", + "settingAllowResetPasswordDescription": "За замовчуванням користувачі можуть запитувати посилання для скидання пароля.", + "settingAllowResetPasswordWarning": "Зверніть увагу, що ви можете втратити доступ до системи, і його неможливо буде відновити, якщо ви забудете пароль.", + "settingAllowNewAccountsName": "Дозволити створення нових облікових записів", + "settingAllowNewAccountsDescription": "За замовчуванням будь-який користувач, який відвідує ваш домен Baserow, може зареєструвати новий обліковий запис.", + "settingAllowSignupsViaWorkspaceInvitationsName": "Дозволити реєстрацію через запрошення до робочого простору", + "settingAllowSignupsViaWorkspaceInvitationDescription": "Навіть якщо створення нових облікових записів вимкнено, ця опція дозволяє безпосередньо запрошеним користувачам усе ж створити обліковий запис.", + "settingAllowNonStaffCreateWorkspaceOperation": "Дозволити всім створювати нові робочі простори", + "settingAllowNonStaffCreateWorkspaceOperationDescription": "За замовчуванням усі можуть створювати нові робочі простори. Вимкніть це, щоб дозволити створювати нові робочі простори лише персоналу.", + "settingAllowNonStaffCreateWorkspaceOperationWarning": "Для нових користувачів автоматично створюватиметься робочий простір, у якому вони будуть адміністраторами.", "userDeletionGraceDelay": "", - "settingUserDeletionGraceDelay": "", - "settingUserDeletionGraceDelayDescription": "", - "invalidAccountDeletionGraceDelay": "", - "enabled": "" + "settingUserDeletionGraceDelay": "Період відстрочки видалення", + "settingUserDeletionGraceDelayDescription": "Це кількість днів без входу, після яких обліковий запис, запланований до видалення, видаляється остаточно.", + "invalidAccountDeletionGraceDelay": "Це значення є обов’язковим і має бути додатним цілим числом, меншим за 32000", + "enabled": "увімкнено", + "baserowVersion": "Версія Baserow", + "baserowVersionDescription": "Номер версії цього інстансу.", + "settingTrackWorkspaceUsage": "Відстежувати використання робочого простору", + "settingTrackWorkspaceUsageDescription": "Увімкнення нічного завдання, яке підраховує використання рядків і файлів для кожного робочого простору; результати відображаються на сторінці адміністратора преміум-робочого простору.", + "userSettings": "Користувач", + "maintenance": "Технічне обслуговування", + "emailVerification": "Підтвердження електронної пошти", + "emailVerificationDescription": "Визначає, чи потрібно підтверджувати електронні адреси.", + "emailVerificationNoVerification": "Без підтвердження", + "emailVerificationRecommended": "Рекомендовано", + "emailVerificationEnforced": "Обов’язково", + "settingsVerifyImportSignature": "Перевіряти підпис імпорту", + "settingsVerifyImportSignatureDescription": "Коли ввімкнено, перевіряється підпис імпортованих даних, щоб переконатися, що їх не було змінено." }, "formSidebar": { "actions": { - "addAll": "", - "removeAll": "", - "addField": "" + "addAll": "Додати все", + "removeAll": "Видалити все", + "addField": "Додати поле" }, - "fieldsDescription": "", - "prefillOrHideInfoLink": "", + "fieldsDescription": "Усі поля є у формі.", + "prefillOrHideInfoLink": "Динамічно заповнювати або приховувати", "modal": { - "title": "", - "descriptionPartOne": "", - "descriptionPartTwo": "", + "title": "Динамічно автозаповнювати або приховувати поля", + "descriptionPartOne": "Попереднє заповнення форм допомагає користувачу швидше їх заповнювати.", + "descriptionPartTwo": "Усі поля, доступні у формі, можна попередньо заповнити.", "howToHide": { - "title": "", - "description": "" + "title": "Як приховати поле", + "description": "Якщо ви хочете динамічно приховати поле, це можна зробити за допомогою параметрів запиту, доданих до публічного посилання форми. Ці параметри мають префікс `hide_`, щоб уникнути конфлікту з можливими майбутніми параметрами запиту." }, "howToPrefill": { - "title": "", - "description": "" + "title": "Як попередньо заповнити форму", + "description": "Якщо ви хочете попередньо заповнити форму даними, це можна зробити за допомогою параметрів запиту, доданих до публічного посилання форми. Ці параметри мають префікс `prefill`, щоб уникнути конфліктів із можливими майбутніми параметрами запиту." }, "format": { - "title": "", - "description": "", - "codeSnippet": "" + "title": "Формат", + "description": "Формат параметрів запиту наведено нижче:", + "codeSnippet": "?prefill_<field_name>=<value>" }, "example": { - "title": "", - "description": "", - "codeSnippet": "" + "title": "Приклад", + "description": "У наведеному прикладі ми хочемо попередньо заповнити поле `Name` значенням `Mike`", + "codeSnippet": "?prefill_Name=Mike" }, "spaces": { - "title": "", - "description": "", - "codeSnippet": "" + "title": "Пробіли", + "description": "Пробіли в назві поля замінюються на `+`, щоб уникнути проблем із параметром запиту.", + "codeSnippet": "?prefill_my+field=Mike" }, "multipleValues": { - "title": "", - "description": "", - "codeSnippet": "" + "title": "Кілька значень", + "description": "Якщо ви хочете попередньо заповнити кілька полів, це можна зробити, додавши `,` між значеннями.", + "codeSnippet": "?prefill_multi+select=Mike,John" }, "specialFieldTypes": { - "title": "", - "description": "", + "title": "Спеціальні типи полів", + "description": "Зазвичай значення для автозаповнення збігається зі значенням поля. Але є деякі випадки, коли значення перетворюється на інше.", "ratingField": { - "title": "", - "description": "", - "codeSnippet": "" + "title": "Поле оцінки", + "description": "Поле оцінки приймає число, яке вказує, скільки зірок має бути заповнено.", + "codeSnippet": "?prefill_rating=3" }, "linkRowField": { - "title": "", - "description": "", - "codeSnippet": "" + "title": "Поле зв’язку рядків", + "description": "Поле зв’язку рядків може приймати значення, яке відображається у випадаючому списку.", + "codeSnippet": "?prefill_link+row=Mike" }, "selectField": { - "title": "", - "description": "", - "codeSnippet": "" + "title": "Поле з одним вибором / кількома виборами", + "description": "Поле з одним вибором може приймати значення, яке відображається у випадаючому списку. Поле з кількома виборами працює так само, але також може приймати кілька значень.", + "codeSnippet": "?prefill_single+select=Mike" }, "dateField": { - "title": "", - "description": "", - "codeSnippet": "" + "title": "Поле дати", + "description": "Поле дати може приймати дату у наступних форматах і використовує формат дати поля для її обробки.", + "codeSnippet": "\n// Стандарти\nISO_8601\n\n// Загальні формати\n'YYYY-MM-DD',\n'YYYY-MM-DD hh:mm A',\n'YYYY-MM-DD HH:mm',\n\n// Європейські формати (EU)\n'DD/MM/YYYY', \n'DD/MM/YYYY hh:mm A',\n'DD/MM/YYYY HH:mm'\n\n// Американські формати (US)\n'MM/DD/YYYY', \n'MM/DD/YYYY hh:mm A',\n'MM/DD/YYYY HH:mm'" } } - } + }, + "notifyUserOnSubmit": "Отримувати сповіщення під час надсилання" }, "job": { - "statePending": "", - "stateStarted": "", - "stateFinished": "", - "stateFailed": "", - "errorJobAlreadyRunningTitle": "", - "errorJobAlreadyRunningDescription": "" + "statePending": "Очікування початку…", + "stateStarted": "Почато…", + "stateFinished": "Виконано", + "stateFailed": "Не вдалося", + "errorJobAlreadyRunningTitle": "Вже запущено", + "errorJobAlreadyRunningDescription": "Інше завдання імпорту вже виконується. Потрібно дочекатися його завершення, перш ніж запускати нове.", + "stateCanceled": "Відмінено", + "errorJobCannotBeCancelledTitle": "Не вдалося скасувати", + "errorJobCannotBeCancelledDescription": "Скасувати завдання неможливо, оскільки воно вже виконане.\nБудь ласка, видаліть перший знімок у списку нижче, щоб його прибрати." }, "datetime": { - "secondsAgo": "", - "minutesAgo": "", - "hoursAgo": "", - "daysAgo": "", - "monthsAgo": "", - "yearsAgo": "" + "secondsAgo": "Щойно | 1 секунду тому | {n} секунд тому", + "minutesAgo": "0 хвилин тому | 1 хвилину тому | {n} хвилин тому", + "hoursAgo": "0 годин тому | 1 годину тому | {n} годин тому", + "daysAgo": "0 днів тому | 1 день тому | {n} днів тому", + "monthsAgo": "0 місяців тому | 1 місяць тому | {n} місяців тому", + "yearsAgo": "0 років тому | 1 рік тому | {n} років тому", + "lessThanMinuteAgo": "менше хвилини тому", + "justNow": "щойно" }, "crudTableSearch": { - "search": "" + "search": "Пошук" }, "membersSettings": { - "membersTabTitle": "", - "invitesTabTitle": "", + "membersTabTitle": "Учасники", + "invitesTabTitle": "Запрошення", "membersTable": { - "title": "", - "inviteMember": "", + "title": "{userAmount} учасників у {workspaceName}", + "inviteMember": "Запросити учасника", "columns": { - "name": "", - "email": "", - "role": "", - "teams": "" + "name": "Назва", + "email": "Електронна пошта", + "role": "Роль за замовчуванням", + "teams": "Команди", + "highestRole": "Найвища роль", + "highestRoleHelpText": "Найвища роль, призначена цьому користувачу безпосередньо або через команду для будь-якого об’єкта в цьому робочому просторі", + "highestRoleInstanceHelpText": "Найвища роль, яку цей користувач має в інстансі", + "2fa": "Двофакторна автентифікація (2FA)" }, "actions": { - "copyEmail": "", - "remove": "" + "copyEmail": "Скопіювати електронну пошту", + "remove": "Видалити з робочого простору" } }, "invitesTable": { - "title": "", + "title": "{invitesAmount} запрошень очікують у {workspaceName}", "columns": { - "email": "", - "message": "", - "role": "" + "email": "Електронна пошта", + "message": "Повідомлення", + "role": "Роль за замовчуванням" }, "actions": { - "copyEmail": "", - "remove": "" + "copyEmail": "Скопіювати електронну пошту", + "remove": "Скасувати запрошення" } }, "membersInviteModal": { - "title": "", - "submit": "", - "helpIconText": "", + "title": "Запросити учасників робочого простору", + "submit": "Надіслати запрошення", + "helpIconText": "Вибрана роль буде роллю користувача за замовчуванням у цьому робочому просторі.", "errors": { "userAlreadyInWorkspace": { - "title": "", - "text": "" + "title": "Користувач уже є в цьому робочому просторі.", + "text": "Неможливо надіслати запрошення, якщо користувач уже є учасником робочого простору." } } } }, "memberSelectionList": { - "searchPlaceholder": "", - "selectedAmountLabel": "" + "searchPlaceholder": "Знайти…", + "selectedAmountLabel": "{count} вибрано" }, "memberAssignmentModalFooter": { - "invite": "", - "deselectAll": "", - "selectAll": "" + "invite": "Запросити {count}", + "deselectAll": "Зняти вибір з усіх", + "selectAll": "Вибрати все" }, "removeFromWorkspaceModal": { - "title": "", - "confirmation": "", - "remove": "" + "title": "Підтвердити видалення з робочого простору", + "confirmation": "Ви впевнені, що хочете видалити {name} з {workspaceName}? Цю дію неможливо скасувати.", + "remove": "Вилучити" }, "editRoleContext": { - "billableRolesLink": "" + "billableRolesLink": "Документація щодо платних ролей", + "additionalRoles": "Додаткові ролі" }, "workspaceSearch": { "title": "Пошук", @@ -531,7 +584,8 @@ "tables": "Таблиці", "fields": "Поля", "rows": "Рядки" - } + }, + "empty": "(порожньо)" }, "action": { "cancel": "Скасувати", @@ -602,7 +656,16 @@ }, "formulaInputContext": { "useRegularInput": "Використовувати звичайний ввід", - "useAdvancedInput": "Використовувати розширений ввід" + "useAdvancedInput": "Перейти до експертного режиму", + "variables": "Змінні", + "functions": "Функції", + "operators": "Оператори", + "search": "Пошук", + "useRegularInputModalTitle": "Використовувати звичайне поле введення для цього поля?", + "useSimpleInput": "Перейти до базового режиму", + "useSimpleInputModalTitle": "Перейти до базового режиму?", + "useAdvancedInputModalTitle": "Перейти до експертного режиму?", + "modalMessage": "Перехід до іншого режиму очистить поточну формулу. Ви впевнені, що хочете продовжити?" }, "importWorkspaceModal": { "title": "Імпортувати дані Baserow", @@ -616,7 +679,21 @@ "retry": "Спробувати ще раз", "uploading": "Завантаження...", "chooseFile": "Виберіть файл", - "selectApplications": "Select data to import" + "selectApplications": "Select data to import", + "deselectAll": "Зняти виділення всіх", + "selectAll": "Вибрати все", + "databases": "Бази даних", + "applications": "Додатки", + "successTitle": "Дані Baserow успішно імпортовано", + "successMessage": "Імпортовано {count} додатків", + "signatureVerificationNote": "Не можна імпортувати ZIP-файл із ненадійного джерела.", + "invalidResourceTitle": "Недійсний ресурс", + "invalidResourceMessage": "Наданий файл не є дійсним експортом Baserow.", + "untrustedPublicKeyTitle": "Недовірений підпис", + "untrustedPublicKeyMessage": "Наданий файл підписано недовіреним публічним ключем. Попросіть адміністратора додати цей публічний ключ до списку довірених ключів або вимкнути перевірку підпису, щоб мати змогу імпортувати цей файл.", + "importingState": "Імпорт...", + "importingTableStructure": "Створення: {table}", + "importingTableData": "Імпорт даних: {table}" }, "exportWorkspaceModal": { "title": "Експорт", @@ -639,5 +716,511 @@ "deselectAll": "Скасувати вибір всіх", "onlyStructureLabel": "Експортувати тільки структуру", "onlyStructureDescription": "Якщо увімкнено, буде експортовано лише структуру додатків. Дані не будуть включені." + }, + "emailSettings": { + "title": "Змінити адресу електронної пошти", + "successTitle": "Лист із підтвердженням надіслано", + "successDescription": "Ми надіслали лист із підтвердженням на вашу нову адресу. Будь ласка, перевірте свою поштову скриньку та натисніть на посилання, щоб завершити зміну електронної адреси.", + "currentEmailLabel": "Поточна адреса електронної пошти", + "newEmailLabel": "Нова адреса електронної пошти", + "passwordLabel": "Поточний пароль", + "submitButton": "Надіслати лист із підтвердженням", + "errorInvalidPasswordTitle": "Невірний пароль", + "errorInvalidPasswordMessage": "Не вдалося надіслати запит на зміну електронної адреси, оскільки пароль невірний.", + "errorEmailExistsTitle": "Така електронна адреса вже використовується", + "errorEmailExistsMessage": "Не вдалося надіслати запит на зміну електронної адреси, оскільки обліковий запис із цією електронною адресою вже існує.", + "errorNotAllowedTitle": "Зміну електронної адреси не дозволено", + "errorNotAllowedMessage": "Ви не можете змінити адресу електронної пошти, оскільки ваш обліковий запис використовує автентифікацію єдиного входу (SSO)." + }, + "importWorkspaceForm": { + "selectApplicationsToImport": "Виберіть додатки для імпорту" + }, + "dashboardVerifyEmail": { + "title": "Будь ласка, перевірте свою поштову скриньку та натисніть на посилання, щоб підтвердити свою електронну адресу.", + "resendConfirmationEmail": "Надіслати лист із підтвердженням повторно" + }, + "resendEmailVerification": { + "confirmationEmailSentTitle": "Лист із підтвердженням надіслано", + "confirmationEmailSentDescription": "Лист із підтвердженням було надіслано." + }, + "verifyEmailAddress": { + "confirmation": "Вашу електронну адресу підтверджено.", + "goToDashboard": "Перейти до панелі керування", + "invalidToken": "Недійсний токен підтвердження.", + "disabledPasswordProvider": "Провайдер автентифікації за паролем вимкнено.", + "emailMismatchWarning": "Зверніть увагу, що підтверджена електронна адреса не належить до облікового запису, який ви наразі використовуєте." + }, + "emailNotVerified": { + "title": "Потрібне підтвердження електронної адреси", + "description": "Будь ласка, перевірте свою поштову скриньку та натисніть на посилання для підтвердження. Після підтвердження ваш обліковий запис буде активовано.", + "resend": "Надіслати лист із підтвердженням повторно" + }, + "workspaceSettingsModal": { + "title": "Налаштування робочого простору" + }, + "workspaceSettingType": { + "generativeAI": "Генеративний штучний інтелект" + }, + "generativeAIModelType": { + "openai": "OpenAI", + "openaiApiKeyLabel": "Ключ API", + "openaiApiKeyDescription": "Вкажіть ключ API OpenAI, якщо хочете увімкнути інтеграцію. Інструкції з отримання ключа API. [Інструкції з отримання ключа API](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key).", + "openaiOrganization": "Організація (необов’язково)", + "openaiModelsLabel": "Увімкнені моделі", + "openaiModelsDescription": "Вкажіть список [моделей OpenAI](https://platform.openai.com/docs/models/continuous-model-upgrades), які можна використовувати в Baserow (наприклад: 'gpt-3.5-turbo,gpt-4').", + "openaiBaseUrl": "Базова URL-адреса", + "openaiBaseUrlDescription": "За замовчуванням використовується стандартна базова URL-адреса OpenAI, якщо поле порожнє. За потреби її можна змінити на https://eu.api.openai.com/v1, https://<your-resource-name>.openai.azure.com, або будь-який інший API, сумісний з OpenAI.", + "anthropic": "Anthropic", + "anthropicApiKeyLabel": "Ключ API", + "anthropicApiKeyDescription": "Вкажіть ключ API Anthropic, якщо хочете увімкнути інтеграцію. [Інструкції з отримання ключа API](https://docs.anthropic.com/en/api/getting-started).", + "anthropicModelsLabel": "Увімкнені моделі", + "anthropicModelsDescription": "Вкажіть список [моделей Anthropic](https://docs.anthropic.com/en/docs/about-claude/models), які можна використовувати в Baserow (наприклад: 'claude-3-5-sonnet-20241022,claude-3-opus-20240229' )", + "mistral": "Mistral", + "mistralApiKeyLabel": "Ключ API", + "mistralApiKeyDescription": "Вкажіть ключ API Mistral, якщо хочете увімкнути інтеграцію. [Інструкції з отримання ключа API](https://docs.mistral.ai/getting-started/quickstart/).", + "mistralModelsLabel": "Увімкнені моделі", + "mistralModelsDescription": "Вкажіть список [моделей Mistral](https://docs.mistral.ai/getting-started/models/models_overview/), які можна використовувати в Baserow (наприклад: 'mistral-large-latest,mistral-small-latest' )", + "ollama": "Ollama", + "ollamaHostLabel": "Хост", + "ollamaHostDescription": "Вкажіть ім’я хоста вашого сервера [Ollama](https://ollama.com/). Зазвичай він працює локально на вашому пристрої.", + "ollamaModelsLabel": "Увімкнені моделі", + "ollamaModelsDescription": "Вкажіть список [встановлених моделей Ollama](https://ollama.com/library). Зверніть увагу, що модель має бути попередньо завантажена та встановлена перед використанням (наприклад: 'llama2,mistral' )", + "openRouter": "OpenRouter", + "openRouterApiKeyLabel": "Ключ API", + "openRouterApiKeyDescription": "Вкажіть ключ API OpenRouter, якщо хочете увімкнути інтеграцію. [Отримати ключ API](https://openrouter.ai/settings/keys).", + "openRouterOrganization": "Організація (необов’язково)", + "openRouterModelsLabel": "Увімкнені моделі", + "openRouterModelsDescription": "Вкажіть список [моделей OpenRouter](https://openrouter.ai/models, які можна використовувати в Baserow. (наприклад: 'openai/gpt-4o,anthropic/claude-3-haiku' )" + }, + "generativeAIWorkspaceSettings": { + "title": "Налаштування генеративного ШІ", + "description": "Ці налаштування можна використовувати для додаткового налаштування генеративного ШІ на рівні робочого простору. Такі функції, як поле ШІ, можуть бути вимкнені через відсутність ключа API для однієї з підтримуваних моделей. Вказавши налаштування тут, ви зможете увімкнути ці функції. Якщо залишити значення порожнім, буде використано глобальні налаштування інстанції. Зверніть увагу, що всі учасники робочого простору використовуватимуть спільні налаштування.", + "changedTitle": "Налаштування успішно оновлено", + "changedDescription": "Налаштування оновлено, і тепер вони використовуватимуться в цьому робочому просторі.", + "submitButton": "Змінити налаштування", + "openSettings": "Відкрити налаштування", + "hideSettings": "Приховати налаштування" + }, + "uploadFileDropzone": { + "drop": "Перетягніть сюди", + "clickOrDrop": "Клацніть або перетягніть сюди файли", + "errorTooManyFilesTitle": "Занадто багато файлів", + "errorTooManyFilesMessage": "Можна завантажити лише один файл", + "errorWrongFileTypeTitle": "Неправильний тип файлу", + "errorWrongFileTypeMessage": "Ви не можете завантажити файл типу {type}" + }, + "connectingToast": { + "title": "Повторне підключення", + "content": "Спроба відновити оновлення в режимі реального часу." + }, + "failedConnectingToast": { + "title": "Не вдалося", + "content": "Не вдалося відновити оновлення в режимі реального часу. Будь ласка, оновіть сторінку, щоб продовжити.", + "action": "Оновити сторінку" + }, + "authorizationErrorToast": { + "title": "Помилка авторизації", + "content": "Схоже, у вас немає дозволу на перегляд цього ресурсу.", + "action": "Оновити сторінку" + }, + "userSessionExpiredToast": { + "title": "Термін дії сесії минув", + "content": "Ви вийшли через прострочений токен автентифікації. Повторно увійдіть у систему." + }, + "userPasswordChangedToast": { + "title": "Пароль змінено", + "content": "Ваш пароль було змінено. Будь ласка, увійдіть у систему ще раз." + }, + "restoreToast": { + "restore": "Відновити видалений {type}" + }, + "copyingToast": { + "title": "Копіювання…", + "content": "Підготовка ваших даних" + }, + "PastingToast": { + "title": "Вставлення…", + "content": "Підготовка ваших даних" + }, + "clearingToast": { + "title": "Очищення…", + "content": "Підготовка ваших даних" + }, + "undoRedoToast": { + "undoingTitle": "Скасування…", + "undoingText": "Скасування вашої дії", + "undoneTitle": "Дію скасовано", + "undoneText": "Дію відмінено", + "noMoreUndo": "Більше немає дій для скасування", + "skippingUndoDueToError": "Скасування завершилося невдачею через невідому помилку, пропускаємо дію.", + "redoingTitle": "Повторюємо...", + "redoingText": "Повторюємо вашу дію", + "redoneTitle": "Повторено", + "redoneText": "Дію повторено", + "noMoreRedo": "Більше немає дій для повторення", + "skippingRedoDueToError": "Повторення не вдалося через невідому помилку, пропускаємо.", + "failed": "Не вдалося" + }, + "permissionsUpdatedToast": { + "title": "Права доступу оновлено", + "content": "Це може вплинути на ваш доступ, будь ласка, перезавантажте сторінку.", + "action": "Перезавантажити" + }, + "dashboardApplication": { + "createdAt": "створено" + }, + "templateCard": { + "viewMore": "Переглянути більше" + }, + "changeEmail": { + "title": "Підтвердити зміну електронної адреси", + "submit": "Підтвердити зміну електронної адреси", + "changed": "Електронну адресу змінено", + "message": "Вашу електронну адресу успішно змінено. Тепер ви можете увійти в Baserow, використовуючи нову електронну адресу.", + "errorInvalidLinkTitle": "Неправильне посилання", + "errorInvalidLinkMessage": "Не вдалося змінити електронну адресу, оскільки посилання недійсне.", + "errorLinkExpiredTitle": "Термін дії посилання минув", + "errorLinkExpiredMessage": "Термін дії посилання для зміни електронної адреси минув. Будь ласка, запросіть нове в налаштуваннях облікового запису.", + "errorEmailExistsTitle": "Електронна адреса вже існує", + "errorEmailExistsMessage": "Не вдалося змінити електронну адресу, оскільки обліковий запис із цією адресою вже існує.", + "errorEmailAlreadyChangedTitle": "Електронну адресу вже змінено", + "errorEmailAlreadyChangedMessage": "Електронну адресу вже змінено на запитану адресу." + }, + "highestPaidRoleField": { + "billable": "Платний" + }, + "integrationCreateEditModal": { + "createTitle": "Нова інтеграція", + "editTitle": "Редагувати інтеграцію", + "warningTitle": "Попередження" + }, + "integrationEditForm": { + "name": "Назва", + "namePlaceholder": "Введіть назву інтеграції…" + }, + "integrationDropdown": { + "addIntegration": "Додати нову інтеграцію", + "noIntegrations": "Інтеграцій не знайдено.", + "selectTypeFirst": "Спочатку оберіть тип", + "integrationPlaceholder": "Виберіть інтеграцію" + }, + "dropdown": { + "empty": "Немає доступних елементів" + }, + "richTextEditorMentionsList": { + "notFound": "Користувачів не знайдено" + }, + "workspaceInvitationAcceptedNotification": { + "title": "{sender} прийняв ваше запрошення приєднатися до {workspaceName}", + "deletedUser": "Видалений користувач" + }, + "workspaceInvitationRejectedNotification": { + "title": "{sender} відхилив ваше запрошення приєднатися до {workspaceName}", + "deletedUser": "Видалений користувач" + }, + "workspaceInvitationCreatedNotification": { + "title": "{sender} запросив вас приєднатися до {workspaceName}", + "deletedUser": "Видалений користувач" + }, + "versionUpgradeNotification": { + "title": "{version} вже тут! Дізнайтеся, що нового." + }, + "emailNotifications": { + "title": "Сповіщення електронною поштою", + "label": "Згадки, коментарі та інші сповіщення", + "description": "Налаштуйте частоту надсилання електронних листів до вашої скриньки.", + "instant": "Миттєво", + "daily": "Щоденно", + "weekly": "Щотижнево", + "never": "Ніколи", + "submitButton": "Частота оновлень" + }, + "formulaInputField": { + "errorInvalidFormula": "Формула недійсна.", + "advancedFormulaMode": "Розширений режим формул" + }, + "dataExplorer": { + "noMatchingNodesText": "Збігів не знайдено.", + "noProvidersText": "Постачальників даних не знайдено. Щоб розпочати, ви можете, наприклад, додати джерело даних або параметр сторінки." + }, + "dataExplorerNode": { + "showMore": "Показати більше повторень", + "selectNode": "Вибрати" + }, + "richTextEditorBubbleMenu": { + "bold": "Жирний", + "italic": "Курсив", + "underline": "Підкреслення", + "strikethrough": "Закреслений текст", + "link": "Посилання", + "linkEditPlaceholder": "Адреса посилання…", + "linkEditDone": "Готово" + }, + "richTextEditorFloatingMenu": { + "hierarchy": "Ієрархія", + "lists": "Списки", + "paragraph": "Абзац", + "heading1": "Заголовок 1", + "heading2": "Заголовок 2", + "heading3": "Заголовок 3", + "orderedList": "Нумерований список", + "unorderedList": "Маркований список", + "code": "Код", + "taskList": "Список завдань" + }, + "selectAIModelForm": { + "AIType": "Тип ШІ", + "AIModel": "Модель ШІ", + "fileField": "Поле файлу", + "temperatureLabel": "Температура", + "temperatureDescription": "Температура LLM — це параметр у діапазоні від 0 до {max}, який визначає випадковість відповідей: нижчі значення дають більш зосереджені відповіді, а вищі підвищують креативність." + }, + "onboarding": { + "title": "Ознайомлення", + "creating": "Створення вашого першого робочого простору", + "continue": "Продовжити", + "skip": "Пропустити наразі", + "cancel": "Я не хочу допомоги з налаштуванням", + "failedTitle": "Щось пішло не так", + "failedDescription": "Процес ознайомлення не було повністю завершено, хоча деякі його частини могли бути виконані.", + "failedTryAgain": "Спробувати ще раз", + "failedSkip": "Пропустити ознайомлення" + }, + "moreStep": { + "title": "Розкажіть нам трохи більше", + "how": "Як ви дізналися про нас?", + "howSearchEngine": "Пошукова система (Google/Bing)", + "howSocialMedia": "Соціальні мережі", + "howOnlineAds": "Онлайн-реклама", + "howContent": "Контент (блог/розсилка/відео)", + "howReviewSite": "Сайт з відгуками / маркетплейс", + "howFriend": "Від друга", + "howColleague": "Від колеги", + "howEvent": "Подія або вебінар", + "howSales": "Звернення від відділу продажів", + "howOther": "Інше", + "country": "Країна", + "share": "Я не заперечую проти надання цієї інформації команді Baserow" + }, + "teamStep": { + "description": "У якій команді ви працюєте?", + "marketingTeam": "Маркетинг", + "productAndDesignTeam": "Продукт і дизайн", + "engineeringTeam": "Відділ розробки", + "operationsTeam": "Операційна діяльність", + "itAndSupportTeam": "ІТ та підтримка", + "hrAndLegalTeam": "HR та юридичний відділ", + "financeTeam": "Фінансовий відділ", + "creativeProductionTeam": "Креативне виробництво", + "salesAndAccountManagementTeam": "Продажі та управління акаунтами", + "customerServiceTeam": "Служба підтримки клієнтів", + "manufacturingTeam": "Виробництво", + "otherPersonalTeam": "Інше / Особисте" + }, + "colorInput": { + "default": "За замовчуванням" + }, + "colorPickerContext": { + "pickColorPlaceholder": "Або виберіть попередньо визначений колір" + }, + "imageInput": { + "labelDescription": "Виберіть зображення для завантаження…", + "labelButton": "Завантажити" + }, + "user": { + "isStaff": "Є співробітником", + "isWorkspaceAdmin": "Є адміністратором робочого простору", + "active": "Активний", + "deactivated": "Деактивовано" + }, + "adminType": { + "dashboard": "Панель керування", + "users": "Користувачі", + "workspaces": "Робочі простори" + }, + "workspacesAdminTable": { + "allWorkspaces": "Усі робочі простори", + "id": "Ідентифікатор", + "name": "Назва", + "members": "Учасники", + "applications": "Застосунки", + "created": "Створено", + "rowCount": "Кількість рядків", + "freeUsers": "Безкоштовні користувачі", + "seatsTaken": "Зайняті місця", + "storageUsage": "Використано пам’яті (МБ)", + "usageHelpText": "Обчислюється щовечора, коли увімкнено відстеження використання робочого простору" + }, + "editWorkspaceContext": { + "delete": "Видалити назавжди" + }, + "deleteWorkspaceModal": { + "title": "Видалити {name}", + "confirmation": "Ви впевнені, що хочете видалити робочий простір: {name}?", + "comment": "Робочий простір буде видалено назавжди, разом із усіма пов’язаними додатками. Скасувати цю дію неможливо.", + "delete": "Видалити робочий простір {name}" + }, + "activeUsers": { + "newUsers": "Нові користувачі", + "activeUsers": "Активні користувачі" + }, + "usersAdminTable": { + "allUsers": "Усі користувачі", + "username": "Ім’я користувача", + "name": "Ім’я", + "workspaces": "Робочі простори", + "lastLogin": "Останній вхід", + "dateJoined": "Зареєстрований", + "active": "Активний" + }, + "editUserContext": { + "changePassword": "Змінити пароль", + "delete": "Видалити назавжди", + "impersonate": "Увійти від імені" + }, + "changePasswordForm": { + "newPassword": "Новий пароль", + "repeatPassword": "Повторіть пароль", + "changePassword": "Змінити пароль", + "error": { + "doesntMatch": "Це поле має відповідати вашому полю пароля." + } + }, + "userForm": { + "fullName": "Повне ім’я", + "email": "Електронна пошта", + "isActive": "Активний", + "warning": { + "changeEmail": "Зміна адреси електронної пошти цього користувача означає, що під час входу він повинен використовувати нову адресу електронної пошти. Про це необхідно повідомити цього користувача.", + "inactiveUser": "Коли користувача позначено як неактивного, йому заборонено входити в систему.", + "userStaff": "Надання користувачу статусу співробітника надає йому адміністративний доступ до всіх користувачів, усіх робочих просторів і можливість відкликати власні права співробітника." + }, + "error": { + "invalidName": "Будь ласка, введіть коректне повне ім’я: воно має містити більше ніж 2 символи і менше ніж 150.", + "invalidEmail": "Будь ласка, введіть дійсну адресу електронної пошти." + } + }, + "changeUserPasswordModal": { + "changePassword": "Змінити пароль для {username}" + }, + "deleteUserModal": { + "title": "Видалити {username}", + "confirmation": "Ви впевнені, що хочете видалити користувача: {name}?", + "comment1": "Обліковий запис користувача буде видалено, однак робочі простори, учасником яких є цей користувач, продовжать існувати. Робочий простір користувача не буде видалено, навіть якщо цей користувач є останнім користувачем у робочому просторі. Видалення останнього користувача в робочому просторі унеможливлює доступ до цього робочого простору для будь-кого.", + "comment2": "Після видалення користувача новий користувач зможе знову зареєструватися, використовуючи адресу електронної пошти видаленого користувача. Щоб запобігти повторній реєстрації, замість видалення деактивуйте користувача.", + "delete": "Видалити користувача {username}" + }, + "editUserModal": { + "delete": "Видалити користувача", + "edit": "Редагувати { username }" + }, + "twoFactorAuthField": { + "enabled": "Увімкнено", + "disabled": "Вимкнено" + }, + "adminDashboard": { + "title": "Панель керування", + "totals": "Підсумки", + "totalUsers": "Усього користувачів", + "totalWorkspaces": "Усього робочих просторів", + "totalApplications": "Усього застосунків", + "newUsers": "Нові користувачі", + "newUsers24h": "Нові користувачі за останні 24 години", + "newUsers7days": "Нові користувачі за останні 7 днів", + "newUsers30days": "Нові користувачі за останні 30 днів", + "activeUsers": "Активні користувачі", + "activeUsers24h": "Активні користувачі за останні 24 години", + "activeUsers7days": "Активні користувачі за останні 7 днів", + "activeUsers30days": "Активні користувачі за останні 30 днів", + "viewAll": "Переглянути всі" + }, + "formGroup": { + "protectedField": "Це поле захищене. Натисніть, щоб змінити.", + "cancelProtectedField": "Скасувати зміну" + }, + "userSourceType": { + "userCountSummary": "{count} користувачів ({lastUpdated})" + }, + "guidedTourStep": { + "step": "Крок {step} із {totalSteps}", + "gotIt": "Зрозуміло", + "next": "Далі", + "back": "Назад" + }, + "welcomeGuidedTourStep": { + "title": "Ласкаво просимо до Baserow", + "content": "Давайте здійснимо коротку екскурсію, щоб ознайомити вас з основами. Усього за кілька кліків ви навчитеся легко організовувати та візуалізувати свої дані", + "buttonText": "Розпочати екскурсію" + }, + "controlCenterGuidedTourStep": { + "title": "Ваш центр керування Baserow", + "content": "Ліва бічна панель допомагає керувати вашим робочим простором:\n\n- Головна — доступ до вашої основної панелі керування.\n- Сповіщення — будьте в курсі змін і згадок.\n- Запросити учасників — співпрацюйте, додаючи членів команди.\n- Кошик — перегляд і відновлення всіх видалених елементів." + }, + "createNewGuidedTourStep": { + "title": "Створити нову базу даних або застосунок", + "content": "Натисніть «Додати нове…», щоб створити нову базу даних, застосунок або панель керування для вашого проєкту, відділу чи команди." + }, + "mcpEndpointSettings": { + "title": "Сервер MCP", + "createEndpoint": "Створити кінцеву точку", + "createNewTitle": "Створити кінцеву точку сервера MCP", + "backToOverview": "Назад", + "noEndpointsMessage": "Жодних кінцевих точок сервера MCP (Model Context Protocol) не додано. Їх можна використовувати для прямої інтеграції з LLM, наприклад Claude, щоб модель могла виконувати дії безпосередньо в Baserow. Створіть кінцеву точку сервера, щоб розпочати." + }, + "mcpEndpointForm": { + "nameLabel": "Назва", + "workspaceLabel": "Робочий простір" + }, + "mcpEndpoint": { + "detailLabel": "Детальніше", + "endpointURLIntro": "URL сервера MCP (Model Context Protocol) можна додати до будь-якого клієнта, що підтримує сервери MCP. Це унікальна кінцева точка, яка надає LLM прямий доступ для виконання дій у робочому просторі від вашого імені.", + "reveal": "Показати повний URL", + "warning": "Ставтеся до свого URL MCP як до пароля, оскільки він дає можливість змінювати дані в Baserow.", + "claudeInstructions": "Три прості кроки, щоб розпочати роботу з Claude Desktop і Baserow MCP.\n\n1. Відкрийте налаштування Claude Desktop через панель навігації. (⌘+,)\n2. Перейдіть на вкладку «Розробка» і натисніть «Редагувати конфігурацію».\n3. Додайте наступну JSON-конфігурацію до файлу `claude_desktop_config.json`.", + "cursorInstructions": "Три прості кроки, щоб розпочати роботу з Cursor і Baserow MCP.\n\n1. Відкрийте налаштування Cursor (⇧+⌘+J)\n2. Перейдіть на вкладку «MCP» і натисніть «Додати MCP-сервер»\n3. Додайте наступну JSON-конфігурацію.", + "windsurfInstructions": "Два прості кроки, щоб налаштувати MCP з Cascade у Windsurf.\n\n1. Перейдіть до Windsurf → Settings → Advanced Settings або відкрийте Command Palette → Open Windsurf settings page.\n2. Прокрутіть до розділу Cascade — там ви знайдете можливість додати новий сервер, переглянути наявні сервери та кнопку для перегляду сирого JSON-файлу конфігурації mcp_config.json. Додайте до нього таке:" + }, + "coreHTTPTriggerServiceForm": { + "title": "Посилання вебхука", + "urlVersion": "Версія", + "urlVersionPublished": "Опубліковано", + "urlVersionTest": "Тест", + "copyUrl": "Скопіювати посилання вебхука", + "urlCopied": "Посилання вебхука скопійовано в буфер обміну", + "description": "Цей вебхук отримуватиме HTTP-запити та запускатиме робочий процес, передаючи дані запиту як корисне навантаження (payload).", + "methodsOptionLabel": "Дозволені HTTP-методи", + "methodsOptionDescription": "Визначає, які HTTP-методи дозволені для цього вебхука. Виключення методу GET зменшує ймовірність випадкового спрацювання вебхука.", + "methodsOptionAll": "Всі", + "methodsOptionExcludeGet": "Виключити GET" + }, + "twoFactorAuthEmpty": { + "title": "Ви ще не ввімкнули двофакторну автентифікацію (2FA)", + "description": "Додайте додатковий рівень безпеки до свого облікового запису.", + "enable": "Увімкнути 2FA", + "notAllowedTitle": "2FA не ввімкнено", + "notAllowedDescription": "Додавання 2FA можливе лише для облікових записів із входом за паролем." + }, + "nodeHelpTooltip": { + "exampleLabel": "Приклад", + "result": "Результат: {result}" + }, + "enableWithQRCode": { + "scanQRCode": "Скануйте QR-код", + "scanQRCodeDescription": "Відскануйте код за допомогою такого застосунку, як Google Authenticator, Authy або Microsoft Authenticator.", + "clickToCopy": "Або натисніть тут, щоб скопіювати код.", + "secretCopiedTitle": "Секретний ключ скопійовано", + "secretCopiedMessage": "Секрет TOTP скопійовано в буфер обміну.", + "enterCode": "Введіть показаний код", + "enterCodeDescription": "Введіть 6-значний код, показаний у застосунку, щоб підтвердити, що ви налаштували його правильно.", + "verificationFailed": "Помилка перевірки", + "verificationFailedDescription": "Введений код недійсний.", + "provisioningFailed": "Помилка налаштування", + "checkSuccess": "Двофакторну автентифікацію успішно ввімкнено" + }, + "adminUsers": { + "title": "Користувачі" + }, + "adminWorkspaces": { + "title": "Робочі простори" } } diff --git a/web-frontend/modules/dashboard/locales/es.json b/web-frontend/modules/dashboard/locales/es.json index 0967ef424b..61d09e653b 100644 --- a/web-frontend/modules/dashboard/locales/es.json +++ b/web-frontend/modules/dashboard/locales/es.json @@ -1 +1,47 @@ -{} +{ + "dashboard": { + "descriptionPlaceholder": "Descripción" + }, + "dashboardHeader": { + "doneEditing": "Edición completada" + }, + "emptyDashboard": { + "title": "Este tablero no tiene ningún widget", + "subtitle": "Empieza añadiendo uno.", + "addWidget": "Añadir widget" + }, + "dashboardHeaderMenuItems": { + "editMode": "Modo de edición" + }, + "createWidgetModal": { + "title": "Añadir nuevo widget" + }, + "widget": { + "fixConfiguration": "Corregir la configuración" + }, + "summaryWidget": { + "name": "Resumen" + }, + "emptyDashboardSidebar": { + "title": "Ningún elemento seleccionado", + "message": "Haz clic en uno de los elementos para ver los detalles." + }, + "widgetSettings": { + "title": "Título", + "description": "Descripción" + }, + "aggregateRowsDataSourceForm": { + "data": "Datos", + "sourceFieldLabel": "Fuente", + "viewFieldLabel": "Ver", + "notSelected": "No seleccionado", + "aggregationFieldLabel": "Campo", + "aggregationTypeLabel": "Resumen" + }, + "widgetContext": { + "delete": "Eliminar" + }, + "trashType": { + "widget": "widget" + } +} diff --git a/web-frontend/modules/dashboard/locales/fr.json b/web-frontend/modules/dashboard/locales/fr.json index 0967ef424b..9641e5a8eb 100644 --- a/web-frontend/modules/dashboard/locales/fr.json +++ b/web-frontend/modules/dashboard/locales/fr.json @@ -1 +1,47 @@ -{} +{ + "dashboard": { + "descriptionPlaceholder": "Description" + }, + "dashboardHeader": { + "doneEditing": "Edition terminée" + }, + "emptyDashboard": { + "title": "Ce tableau de bord n'a aucun widget", + "subtitle": "Commencez par en ajouter un.", + "addWidget": "Ajouter un widget" + }, + "dashboardHeaderMenuItems": { + "editMode": "Mode édition" + }, + "createWidgetModal": { + "title": "Ajouter un nouveau widget" + }, + "widget": { + "fixConfiguration": "Corriger la configuration" + }, + "summaryWidget": { + "name": "Résumé" + }, + "emptyDashboardSidebar": { + "title": "Aucun élément sélectionné", + "message": "Cliquez sur l'un des éléments pour voir les détails." + }, + "widgetSettings": { + "title": "Titre", + "description": "Description" + }, + "aggregateRowsDataSourceForm": { + "data": "Données", + "sourceFieldLabel": "Source", + "viewFieldLabel": "Vue", + "notSelected": "Non sélectionné", + "aggregationFieldLabel": "Colonne", + "aggregationTypeLabel": "Résumé" + }, + "widgetContext": { + "delete": "Supprimer" + }, + "trashType": { + "widget": "widget" + } +} diff --git a/web-frontend/modules/dashboard/locales/ko.json b/web-frontend/modules/dashboard/locales/ko.json index 2653ae5cb9..4d461d246d 100644 --- a/web-frontend/modules/dashboard/locales/ko.json +++ b/web-frontend/modules/dashboard/locales/ko.json @@ -1,11 +1,47 @@ { - "dashboard": { - "descriptionPlaceholder": "설명" - }, - "dashboardHeader": { - "doneEditing": "편집 완료" - }, - "dashboardHeaderMenuItems": { - "editMode": "편집 모드" - } + "dashboard": { + "descriptionPlaceholder": "설명" + }, + "dashboardHeader": { + "doneEditing": "편집 완료" + }, + "dashboardHeaderMenuItems": { + "editMode": "편집 모드" + }, + "emptyDashboard": { + "title": "이 대시보드에는 위젯이 없습니다", + "subtitle": "하나를 추가하여 시작해 보세요.", + "addWidget": "위젯 추가" + }, + "createWidgetModal": { + "title": "새 위젯 추가" + }, + "widget": { + "fixConfiguration": "구성 수정" + }, + "summaryWidget": { + "name": "개요" + }, + "emptyDashboardSidebar": { + "title": "선택된 요소가 없습니다", + "message": "각 요소를 클릭하면 자세한 내용을 볼 수 있습니다." + }, + "widgetSettings": { + "title": "제목", + "description": "설명" + }, + "aggregateRowsDataSourceForm": { + "data": "데이터", + "sourceFieldLabel": "소스", + "viewFieldLabel": "뷰", + "notSelected": "선택되지 않음", + "aggregationFieldLabel": "필드", + "aggregationTypeLabel": "개요" + }, + "widgetContext": { + "delete": "삭제" + }, + "trashType": { + "widget": "위젯" + } } diff --git a/web-frontend/modules/dashboard/locales/nl.json b/web-frontend/modules/dashboard/locales/nl.json index 0967ef424b..f2d0326e5a 100644 --- a/web-frontend/modules/dashboard/locales/nl.json +++ b/web-frontend/modules/dashboard/locales/nl.json @@ -1 +1,47 @@ -{} +{ + "dashboard": { + "descriptionPlaceholder": "Beschrijving" + }, + "dashboardHeader": { + "doneEditing": "Klaar met aanpassen" + }, + "emptyDashboard": { + "title": "Dit dashboard heeft geen widgets", + "subtitle": "Ga aan de slag door er één toe te voegen.", + "addWidget": "Widget toevoegen" + }, + "dashboardHeaderMenuItems": { + "editMode": "Bewerkmodus" + }, + "createWidgetModal": { + "title": "Nieuwe widget toevoegen" + }, + "widget": { + "fixConfiguration": "Configuratie oplossen" + }, + "summaryWidget": { + "name": "Samenvatting" + }, + "emptyDashboardSidebar": { + "title": "Geen element geselecteerd", + "message": "Klik op één van de elementen om details te zien." + }, + "widgetSettings": { + "title": "Titel", + "description": "Beschrijving" + }, + "aggregateRowsDataSourceForm": { + "data": "Gegevens", + "sourceFieldLabel": "Bron", + "viewFieldLabel": "Weergave", + "notSelected": "Niet geselecteerd", + "aggregationFieldLabel": "Veld", + "aggregationTypeLabel": "Samenvatting" + }, + "widgetContext": { + "delete": "Verwijderen" + }, + "trashType": { + "widget": "widget" + } +} diff --git a/web-frontend/modules/dashboard/locales/uk.json b/web-frontend/modules/dashboard/locales/uk.json new file mode 100644 index 0000000000..4578069e32 --- /dev/null +++ b/web-frontend/modules/dashboard/locales/uk.json @@ -0,0 +1,47 @@ +{ + "dashboard": { + "descriptionPlaceholder": "Опис" + }, + "dashboardHeader": { + "doneEditing": "Редагування завершено" + }, + "emptyDashboard": { + "addWidget": "Додати віджет", + "title": "На цій панелі керування немає віджетів", + "subtitle": "Почніть, додавши один." + }, + "dashboardHeaderMenuItems": { + "editMode": "Режим редагування" + }, + "createWidgetModal": { + "title": "Додати новий віджет" + }, + "widget": { + "fixConfiguration": "Виправити налаштування" + }, + "summaryWidget": { + "name": "Підсумок" + }, + "emptyDashboardSidebar": { + "title": "Елемент не вибрано", + "message": "Клацніть на один із елементів, щоб переглянути деталі." + }, + "widgetSettings": { + "title": "Назва елемента", + "description": "Опис" + }, + "aggregateRowsDataSourceForm": { + "data": "Дані", + "sourceFieldLabel": "Джерело", + "viewFieldLabel": "Вигляд", + "notSelected": "Не вибрано", + "aggregationFieldLabel": "Поле", + "aggregationTypeLabel": "Підсумок" + }, + "widgetContext": { + "delete": "Видалити" + }, + "trashType": { + "widget": "Віджет" + } +} diff --git a/web-frontend/modules/database/components/row/RowEditFieldFile.vue b/web-frontend/modules/database/components/row/RowEditFieldFile.vue index 2615c4feea..362f788a99 100644 --- a/web-frontend/modules/database/components/row/RowEditFieldFile.vue +++ b/web-frontend/modules/database/components/row/RowEditFieldFile.vue @@ -36,6 +36,7 @@ {{ $t('rowEditFieldFile.addFile') }} diff --git a/web-frontend/modules/database/components/row/RowEditFieldMultipleCollaborators.vue b/web-frontend/modules/database/components/row/RowEditFieldMultipleCollaborators.vue index 538e7902b0..962c3a9ec9 100644 --- a/web-frontend/modules/database/components/row/RowEditFieldMultipleCollaborators.vue +++ b/web-frontend/modules/database/components/row/RowEditFieldMultipleCollaborators.vue @@ -28,7 +28,7 @@ - + {{ $t('rowEditFieldMultipleCollaborators.addCollaborator') }} diff --git a/web-frontend/modules/database/components/row/RowEditFieldMultipleSelect.vue b/web-frontend/modules/database/components/row/RowEditFieldMultipleSelect.vue index 0c2a857ef0..805b6cd859 100644 --- a/web-frontend/modules/database/components/row/RowEditFieldMultipleSelect.vue +++ b/web-frontend/modules/database/components/row/RowEditFieldMultipleSelect.vue @@ -20,7 +20,7 @@ - + {{ $t('rowEditFieldMultipleSelect.addOption') }} diff --git a/web-frontend/modules/database/components/table/Table.vue b/web-frontend/modules/database/components/table/Table.vue index f01505aeeb..c252cbbbe8 100644 --- a/web-frontend/modules/database/components/table/Table.vue +++ b/web-frontend/modules/database/components/table/Table.vue @@ -614,11 +614,7 @@ export default { notifyIf(error) } } - if ( - Object.prototype.hasOwnProperty.call(this.$refs, 'view') && - // TODO crash here can't convert undefined to object - Object.prototype.hasOwnProperty.call(this.$refs.view, 'refresh') - ) { + if (typeof this.$refs.view?.refresh === 'function') { await this.$refs.view.refresh() } // Before the callback is called, mark the table as not refreshing anymore, so diff --git a/web-frontend/modules/database/components/view/gallery/GalleryView.vue b/web-frontend/modules/database/components/view/gallery/GalleryView.vue index cdd99bb48b..152f8c8bd8 100644 --- a/web-frontend/modules/database/components/view/gallery/GalleryView.vue +++ b/web-frontend/modules/database/components/view/gallery/GalleryView.vue @@ -374,7 +374,7 @@ export default { }, beforeUnmount() { if (this.resizeObserver !== null) { - this.resizeObserver.unobserve(this.$el) + this.resizeObserver.disconnect() } if (this.$refs.scroll) { this.$refs.scroll.removeEventListener('scroll', this.scrollEvent) diff --git a/web-frontend/modules/database/components/view/grid/GridView.vue b/web-frontend/modules/database/components/view/grid/GridView.vue index bebf063e38..7b9475f585 100644 --- a/web-frontend/modules/database/components/view/grid/GridView.vue +++ b/web-frontend/modules/database/components/view/grid/GridView.vue @@ -671,7 +671,7 @@ export default { }, beforeUnmount() { if (this.resizeObserver !== null) { - this.resizeObserver.unobserve(this.$el) + this.resizeObserver.disconnect() } window.removeEventListener('keydown', this.keyDownEvent) window.removeEventListener('copy', this.copySelection) diff --git a/web-frontend/modules/database/components/view/grid/GridViewSection.vue b/web-frontend/modules/database/components/view/grid/GridViewSection.vue index e4e279ed13..45ee41ffe5 100644 --- a/web-frontend/modules/database/components/view/grid/GridViewSection.vue +++ b/web-frontend/modules/database/components/view/grid/GridViewSection.vue @@ -594,7 +594,7 @@ export default { beforeUnmount() { const sectionElement = this.$refs.section if (this.resizeObserver !== null) { - this.resizeObserver.unobserve(sectionElement) + this.resizeObserver.disconnect() } if (this.horizontalScrollEvent !== null) { sectionElement.removeEventListener('scroll', this.horizontalScrollEvent) diff --git a/web-frontend/modules/database/locales/de.json b/web-frontend/modules/database/locales/de.json index 60c041e7ba..25e6db2945 100644 --- a/web-frontend/modules/database/locales/de.json +++ b/web-frontend/modules/database/locales/de.json @@ -1,976 +1,976 @@ { - "webhookModal": { - "title": "{name} Webhooks", - "createWebhook": "Webhook erstellen", - "backToList": "Zurück zur Liste" - }, - "deleteWebhookModal": { - "title": "Löschen {webhookName}", - "deleteButton": "Webhook löschen", - "body": "Sind Sie sicher, dass Sie diesen Webhook löschen wollen? Sie werden ihn später nicht wiederherstellen können." - }, - "webhookList": { - "noWebhooksMessage": "Sie haben noch keine Webhooks erstellt. Webhooks können verwendet werden, um Systeme von Drittanbietern zu informieren, wenn eine Zeile in Baserow erstellt, aktualisiert oder gelöscht wurde." - }, - "testWebhookModal": { - "title": "Test Webhook", - "unreachable": "Server unerreichbar" - }, - "webhookForm": { - "inputLabels": { - "name": "Name", - "value": "Wert", - "requestMethod": "Methode", - "url": "URL", - "userFieldNames": "Namen der Benutzerfelder", - "events": "Welche Ereignisse sollen diesen Webhook auslösen?", - "headers": "Zusätzliche Überschriften", - "example": "Beispiel Nutzlast" - }, - "errors": { - "urlField": "Muss eine gültige URL sein, die mit \"https://\" oder \"http://\" beginnt.", - "invalidHeaders": "Eine der Kopfzeilen ist ungültig." - }, - "checkbox": { - "sendUserFieldNames": "Feldname anstelle von id verwenden" - }, - "radio": { - "allEvents": "Schick mir alles", - "customEvents": "Ich möchte einzelne Ereignisse auswählen" - }, - "triggerButton": "Test-Webhook auslösen", - "deactivated": { - "title": "Webhook ist deaktiviert", - "content": "Dieser Webhook wurde deaktiviert, weil zu viele aufeinanderfolgende Fehler aufgetreten sind. Bitte überprüfen Sie das Aufrufprotokoll für weitere Details. Klicken Sie auf die Schaltfläche unten, um ihn wieder zu aktivieren. Vergessen Sie nicht, den Webhook nach dem Aktivieren zu speichern.", - "activate": "Aktivierung" - }, - "deprecatedEventType": { - "description": "Dieser Webhook empfängt keine Informationen über alle geänderten Zeilen auf einmal. Bitte konvertieren Sie ihn in den Ereignistyp \"Batch\". Dadurch wird die JSON-Nutzlast in ein Format geändert, das mehrere Zeilen enthält.", - "title": "Veralteter Ereignistyp", - "convert": "Konvertieren" - }, - "triggerWhenFieldsHaveChanged": "Löse aus, wenn Felder verändert wurden", - "helpTriggerWhenFieldsHaveChanged": "Wird nur ausgelöst, wenn sich der Zellwert der gewählten Felder verändert." - }, - "webhook": { - "details": "Details", - "lastCall": "Letzter Aufruf: {lastCallTime}", - "noCalls": "Keine Aufrufe getätigt", - "callLog": "Aufrufprotokoll", - "triggerDescription": "Auslöser bei jedem Ereignis | Auslöser bei {count} Ereignis | Auslöser bei {count} Ereignissen" - }, - "createWebhook": { - "errorTableWebhookMaxLimitExceededTitle": "Maximale Webhooks überschritten", - "errorTableWebhookMaxLimitExceededDescription": "Der Webhook kann nicht erstellt werden, da die maximale Anzahl von Webhooks pro Tabelle überschritten wurde." - }, - "sidebar": { - "viewAPI": "API-Dokumente anzeigen", - "createTable": "Neue Tabelle" - }, - "sidebarItem": { - "exportTable": "Exportieren der Tabelle", - "webhooks": "Webhooks", - "lastSynced": "Zuletzt synchronisiert", - "notSynced": "nicht sychnronisiert", - "sync": "Tabelle synchronisieren", - "updateSyncConfig": "Sync-Konfiguration aktualisieren" - }, - "apiToken": { - "create": "erstellen", - "read": "lesen", - "update": "Aktualisierung", - "delete": "löschen", - "tokenPrefix": "Wertmarke:", - "viewAPIDocs": "API-Dokumentation anzeigen", - "generateNewToken": "Neues Token generieren", - "showOrHide": "Das Token ein- oder ausblenden", - "copyToClipboard": "In die Zwischenablage kopieren", - "showDatabases": "Datenbanken anzeigen" - }, - "apiTokenSettings": { - "title": "Datenbank-Token", - "createToken": "Token erstellen", - "noTokensMessage": "Sie haben noch kein Datenbank-Token erstellt. Sie können Datenbank-Tokens verwenden, um sich bei den REST-API-Endpunkten zu authentifizieren, wo Sie Zeilen erstellen, lesen, aktualisieren und löschen können. Es ist möglich, Berechtigungen auf Tabellenebene festzulegen.", - "hasFullPermissions": "Hat volle Berechtigung, auch für alle Kinder.", - "hasOnlySelectedPermissions": "Hat nur Berechtigungen für die ausgewählten Kinder.", - "noPermissions": "Hat keine Berechtigungen.", - "createNewTitle": "Neues Datenbank-Token erstellen", - "backToOverview": "Zurück zur Übersicht" - }, - "apiTokenForm": { - "nameLabel": "Name", - "workspaceLabel": "Arbeitsbereich" - }, - "apiDocsSelectDatabase": { - "needOneDatabase": "Sie müssen mindestens eine Datenbank haben, um die API-Dokumentation anzuzeigen." - }, - "apiDocsExample": { - "requestSample": "Beispiel anfordern", - "responseSample": "Antwortbeispiel", - "userFieldNames": "Namen der Benutzerfelder" - }, - "apiDocsParameter": { - "optional": "Optional", - "defaultValue": "Standardwert: {value}" - }, - "apiDocsTableGetRow": { - "description": "Holt eine einzelne Zeile {Name}.", - "rowId": "Der eindeutige Bezeichner der angeforderten Zeile." - }, - "apiDocsErrors": { - "errorCode": "Fehlercode", - "name": "Name", - "description": "Beschreibung", - "okDescription": "Anfrage erfolgreich abgeschlossen.", - "badRequestDescription": "Die Anfrage enthält ungültige Werte oder das JSON konnte nicht interpretiert werden.", - "unauthorizedDescription": "Wenn Sie versuchen, auf einen Endpunkt ohne ein gültiges Datenbank-Token zuzugreifen.", - "notFoundDescription": "Zeile oder Tabelle wird nicht gefunden.", - "requestEntityTooLargeDescription": "Die Anfrage hat die maximal zulässige Größe der Nutzdaten überschritten.", - "internalErrorDescription": "Der Server ist auf eine unerwartete Bedingung gestoßen.", - "badGatewayDescription": "Baserow wird neu gestartet oder ein unerwarteter Ausfall ist im Gange.", - "unavailableDescription": "Der Server konnte Ihre Anfrage nicht rechtzeitig bearbeiten." - }, - "apiDocsTableFields": { - "tableTitle": "{name} Tabelle", - "tableId": "Die ID dieser Tabelle lautet:", - "description": "Jede Zeile in der Tabelle {name} enthält die folgenden Felder.", - "id": "ID", - "name": "Name", - "type": "Typ", - "compatibleFilters": "Kompatible Filter" - }, - "apiDocsTableListRows": { - "description": "Um Zeilen in der Tabelle *{name}* aufzulisten, muss eine `GET`-Anfrage an den Endpunkt *{name}* gestellt werden. Die Antwort ist paginiert und standardmäßig wird die erste Seite zurückgegeben. Die richtige Seite kann durch Angabe der Abfrageparameter \"page\" und \"size\" abgerufen werden.", - "page": "Legt fest, welche Seite von Zeilen zurückgegeben werden soll.", - "size": "Legt fest, wie viele Zeilen pro Seite zurückgegeben werden sollen.", - "userFieldNames": "Wenn der GET-Parameter \"user_field_names\" vorhanden ist und dessen Inhalt einem dieser Werte entspricht (`y`, `yes`, `true`, `t`, `on`, `1`, oder eine leere Zeichenfolge), sind die von diesem Endpunkt zurückgegebenen Feldnamen die tatsächlichen Namen der Felder.\n\nWenn der GET-Parameter \"user_field_names\" nicht angegeben wird oder nicht einem der oben angegebenen Werte entspricht, lauten alle zurückgegebenen Feldnamen \"field_\", gefolgt von der ID des Feldes. Zum Beispiel bezieht sich \"field_1\" auf das Feld mit der ID \"1\".\n\n Wenn `user_field_names` gesetzt ist, ändert sich außerdem das Verhalten der anderen GET-Parameter `order_by`, `include` und `exclude`. Sie erwarten stattdessen kommagetrennte Listen mit den tatsächlichen Feldnamen.", - "search": "Wenn angegeben, werden nur Zeilen mit Daten zurückgegeben, die der Suchanfrage entsprechen.", - "orderBy": "Optional können die Zeilen nach durch Komma getrennten Feldern geordnet werden. Standardmäßig oder wenn einem Feld ein '+' vorangestellt wird, ist es aufsteigend (A-Z) geordnet, aber durch Voranstellen eines '-' kann es absteigend (Z-A) geordnet werden.\n #### Mit`user_field_names`:\n\n `order_by`sollte eine durch ein Komma getrennte Liste der Feldnamen sein, nach denen geordnet werden soll. Wenn Sie beispielsweise den folgenden GET-Parameter angeben: `order_by=My Field,-My Field 2`, werden die Zeilen nach dem Feld mit der Bezeichnung `My Field`in aufsteigender Reihenfolge geordnet. Wenn einige Felder denselben Wert haben, wird diese Teilmenge nach dem Feld `My Field 2` in absteigender Reihenfolge geordnet.\n\n Stellen Sie sicher, dass Feldern, deren Namen mit einem `+` oder `-` beginnen, ausdrücklich ein weiteres `+` oder `-` vorangestellt wird. Z.B.`+-Name`.\n\n\n Feldnamen, die Kommas enthalten, müssen in Anführungszeichen eingeschlossen werden: `\"Name ,\"`. Wenn Feldnamen Anführungszeichen enthalten, müssen sie mit dem Zeichen `\\` geschützt werden. Beispiel: `Name `.\n\n#### Ohne `user_field_names`:\n\n `order_by` sollte eine durch das Komma getrennte Liste von `field_` sein, gefolgt von der ID des Feldes, nach dem geordnet werden soll. Wenn Sie zum Beispiel den folgenden GET-Parameter angeben: `order_by=field_1,-field_2`, werden die Zeilen nach `field_1` in aufsteigender Reihenfolge geordnet. Wenn einige Felder denselben Wert haben, wird diese Teilmenge nach `field_2` in absteigender Reihenfolge geordnet.", - "filter": "Die Zeilen können optional mit denselben Ansichtsfiltern gefiltert werden, die auch für die Ansichten verfügbar sind. Es können mehrere Filter angewandt werden, wenn sie das gleiche Format haben. Die Variablen `field` und `filter` geben an, wie bzw. wo der Filter angewendet werden soll.\n\n#### Mit `user_field_names`:\n\nWenn Sie zum Beispiel optional den folgenden GET-Parameter angeben: `filter__Name__equal=test`, werden nur Zeilen zurückgegeben, in denen der Wert von `Name` gleich 'test' ist. Diese Methode ist abwärtskompatibel und prüft gegen `field_id`, wenn sie am Namen fehlschlägt.\n\n#### Ohne `user_field_names`:\n\nWenn Sie zum Beispiel optional den folgenden GET-Parameter angeben: `filter__field_1__equal=test`, werden nur Zeilen zurückgegeben, bei denen der Wert von `field_1` gleich 'test' ist.\n\nBitte beachten Sie, dass dieser Parameter ignoriert wird, wenn der Parameter filters angegeben wird. ", - "filterLink": "Eine Liste mit allen Filtern finden Sie hier.", - "filterType": "- `AND`: Gibt an, dass die Zeilen allen angegebenen Filtern entsprechen müssen.\n- `OR`: Gibt an, dass die Zeilen nur einem der Filter entsprechen müssen.\n\n Dies funktioniert nur, wenn zwei oder mehr Filter vorhanden sind.", - "include": "Alle Felder werden standardmäßig in die Antwort aufgenommen. Sie können eine Teilmenge der einzuschließenden Felder auswählen, indem Sie den Abfrageparameter include angeben.\n\n #### Mit `user_field_names`:\n\n Include\" sollte eine durch das Komma getrennte Liste von Feldnamen sein, die in die Ergebnisse aufgenommen werden sollen. Wenn Sie zum Beispiel den folgenden GET-Parameter angeben: `include=My Field,-My Field 2`, dann werden nur diese Felder eingeschlossen (es sei denn, sie werden ausdrücklich ausgeschlossen).\n\n Der Name des Feldes, das die Felder enthält, muss mit einem Hinweis versehen werden: `name ,'. Enthält der Feldname Schrägstriche, so müssen diese unter Verwendung des Zeichens `\\` geschützt werden. Ex : `Name \\'.\n\n #### Ohne `user_field_names`:\n\n `include` sollte eine durch das Komma getrennte Liste von `field_` sein, gefolgt von der ID des Feldes, das in die Ergebnisse aufgenommen werden soll. Zum Beispiel: Wenn Sie den folgenden GET-Parameter `include=field_1,field_2` angeben, werden nur die Felder mit der ID `1` und der ID `2` einbezogen (es sei denn, sie werden ausdrücklich ausgeschlossen).", - "exclude": "Alle Felder werden standardmäßig in die Antwort aufgenommen. Sie können eine Untergruppe von Feldern auswählen, die ausgeschlossen werden sollen, indem Sie den Abfrageparameter exclude angeben.\n\n #### Mit \"user_field_names\":\n\n`exclude` sollte eine durch das Komma getrennte Liste von Feldern sein, die von den Ergebnissen ausgeschlossen werden sollen. Wenn Sie zum Beispiel den folgenden GET-Parameter angeben: `exclude=My Field,-My Field 2` dann werden diese Felder ausgeschlossen.\n\n Der Name des Feldes, das die Felder enthält, muss mit einem Hinweis versehen sein: \"name,\". Wenn der Feldname Schrägstriche enthält, müssen diese ebenfalls mit dem Zeichen \"name\" geschützt werden. Ex : `name\\\"`.\n\n #### Ohne `user_field_names`:\n\n `exclude` sollte eine durch das Komma getrennte Liste von `field_` sein, gefolgt von der ID des Feldes, das von den Ergebnissen ausgeschlossen werden soll. Zum Beispiel: Wenn Sie den folgenden GET-Parameter `exclude=field_1,field_2` angeben, werden die Felder mit der id `1` und id `2` ausgeschlossen.", - "viewId": "Standardmäßig werden keine Filter und Sortierungen außerhalb der in den Abfrageparametern definierten angewendet. Sie können die Filter und Sortierungen einer Ansicht hinzufügen, indem Sie deren `id` im GET-Parameter `view_id` angeben. Wenn Sie z. B. den folgenden GET-Parameter angeben: \"view_id=1\", werden die in der Ansicht mit der ID \"1\" definierten Filter und Sortierungen angewandt. Sie können die `view_id` im Kontextmenü einer beliebigen Ansicht finden. Es ist die Zahl in Klammern hinter dem Namen der Ansicht. \n\n #### Mit `filter__{field}__{filter}` \n\n Es werden sowohl der im Abfrageparameter angegebene Filter als auch die in der Ansicht definierten Filter angewendet.\n\n #### Mit `order_by` \n\n Wenn `order_by` angegeben wird, wird die in der Ansicht definierte Sortierung ignoriert.", - "filtersBuilder": "Öffnet den Filter-Parameter-Builder", - "filters": "Die Zeilen können optional mit denselben Ansichtsfiltern gefiltert werden, die auch für die Ansichten verfügbar sind. Dieser Parameter akzeptiert eine serialisierte JSON-Zeichenkette, die den Filterbaum enthält, der auf diese Ansicht anzuwenden ist. Der Filterbaum ist eine verschachtelte Struktur, die die anzuwendenden Filter enthält. \n\n#### Mit `user_field_names`:\n\nEin Beispiel für einen gültigen Filterbaum ist der Folgende: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": \\\"Name\\\", \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`.\n\n#### Ohne `user_field_names`:\n\nWenn Sie zum Beispiel optional den folgenden GET-Parameter angeben: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": 1, \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`\n\nBitte beachten Sie, dass bei Angabe dieses Parameters alle anderen `filter__{field}__{filter}` ignoriert werden, ebenso wie der Parameter \\\"filter_type\\\".", - "join": "Ermöglicht die Abfrage von Feldwerten aus einer Zieltabelle über vorhandene Verknüpfungszeilenfelder. Der Parametername muss der Name eines bestehenden Link-Zeilenfeldes sein, gefolgt von __join. Der Wert sollte eine Liste von Feldnamen sein, für die zusätzliche Werte abgefragt werden sollen. Sie können ein oder mehrere Zielfelder angeben. Es ist nicht möglich, den Wert eines Link-Zeilenfeldes in der Zieltabelle zu suchen.\n\n #### Mit `user_field_names`:\n\n `join` sollte eine durch Komma getrennte Liste von Feldnamen sein, die in die Ergebnisse aufgenommen werden sollen. Zum Beispiel: Wenn Sie den folgenden GET-Parameter `LinkRowField__join=MyField,MyField2` angeben, werden die Werte von `MyField` und `My Field2` in der durch `LinkRowField` verknüpften Tabelle in die Antwort aufgenommen.\n\n#### Ohne `user_field_names`:\n\n `join` sollte eine durch Komma getrennte Liste von `field_` sein, gefolgt von der ID des Feldes, das in die Ergebnisse aufgenommen werden soll. Zum Beispiel: Wenn Sie den folgenden GET-Parameter angeben: `field_1__join=field_2,field_3`, werden die Werte von `field_2` und `field_3` in der mit `field_1` verknüpften Tabelle in die Antwort aufgenommen." - }, - "apiDocsIntro": { - "intro": "Die Datenbank {name} bietet eine einfache Möglichkeit, die Daten in ein beliebiges externes System zu integrieren. Die API folgt der REST-Semantik, verwendet JSON zur Kodierung von Objekten und stützt sich auf Standard-HTTP-Codes sowie maschinen- und menschenlesbare Fehler zur Signalisierung von Operationsergebnissen.", - "autoDocDescription": "Diese Dokumentation wird automatisch auf der Grundlage der in Ihrer Datenbank vorhandenen Tabellen und Felder erstellt. Wenn Sie Änderungen an Ihrer Datenbank, Ihren Tabellen oder Feldern vornehmen, kann es sein, dass sich auch die API-Schnittstelle geändert hat. Stellen Sie daher sicher, dass Sie Ihre API-Implementierung entsprechend aktualisieren.", - "databaseId": "Die ID dieser Datenbank lautet:", - "jsClient": "JavaScript-Beispiel API-Client:", - "pythonClient": "Python-Beispiel API-Client:" - }, - "apiDocsTableListFields": { - "description": "Um Felder der Tabelle {name} aufzulisten, muss eine `GET`-Anfrage an den Endpunkt {name} fields gestellt werden. Es ist nur möglich, die Felder aufzulisten, wenn das Datenbank-Token Lese-, Erstellungs- oder Aktualisierungsberechtigungen hat.", - "resultFieldProperties": "Eigenschaften des Ergebnisfeldes", - "id": "Primärschlüssel des Feldes. Kann verwendet werden, um den Namen der Datenbankspalte durch Hinzufügen des Präfixes `field_` zu generieren.", - "name": "Name des Feldes.", - "tableId": "Zugehörige Tabelle id.", - "order": "Reihenfolge der Felder in der Tabelle. 0 für das erste Feld.", - "primary": "Gibt an, wenn das Feld ein Primärfeld ist. Wenn `true`, kann das Feld nicht gelöscht werden und der Wert sollte die gesamte Zeile repräsentieren.", - "type": "Für dieses Feld definierter Typ.", - "extraProps": "Einige zusätzliche Eigenschaften werden hier nicht beschrieben, da sie typspezifisch sind.", - "readOnly": "Zeigt an, ob das Feld ein schreibgeschütztes Feld ist. Wenn \"true\", kann der Wert der Zelle nicht aktualisiert werden.", - "descriptionField": "Feldbeschreibung" - }, - "apiDocsTableDeleteRow": { - "description": "Löscht eine vorhandene {name} Zeile.", - "rowId": "Der eindeutige Bezeichner der Zeile, die gelöscht werden muss." - }, - "apiDocsTableMoveRow": { - "description": "Verschiebt eine vorhandene Zeile {name} vor eine andere Zeile. Wenn keine `before_id` angegeben wird, dann wird die Zeile an das Ende der Tabelle verschoben.", - "rowId": "Verschiebt die mit dem Wert verbundene Zeile.", - "before": "Verschiebt die Zeile mit der angegebenen `row_id` vor die Zeile mit dem angegebenen Wert. Wenn nicht angegeben, wird die Zeile an das Ende verschoben." - }, - "apiDocsTableUpdateRow": { - "description": "Aktualisiert eine vorhandene {name} Zeile.", - "rowId": "Der eindeutige Bezeichner der Zeile, die aktualisiert werden muss.", - "before": "Wenn angegeben, wird die neu erstellte Zeile vor der Zeile mit der angegebenen id positioniert." - }, - "apiDocsTableCreateRow": { - "description": "Erstellen Sie eine neue {name} Zeile.", - "before": "Wenn angegeben, wird die neu erstellte Zeile vor der Zeile mit der angegebenen id positioniert." - }, - "apiDocsAuth": { - "description": "Baserow verwendet eine einfache tokenbasierte Authentifizierung. Sie müssen mindestens ein Datenbank-Token in Ihrem {settingsLink} erzeugen, um die unten beschriebenen Endpunkte zu verwenden. Es ist möglich, per Token Berechtigungen zum Erstellen, Lesen, Aktualisieren und Löschen bis zur Tabellenebene zu vergeben. Sie können sich bei der API authentifizieren, indem Sie Ihren Token im HTTP-Authorization Bearer Token Header angeben. Alle API-Anfragen müssen authentifiziert sein und über HTTPS erfolgen.", - "settingsLink": "Einstellungen" - }, - "apiDocsFilters": { - "filter": "Filter", - "exampleValue": "Beispielwert", - "example": "Volles Beispiel", - "field": "feld {name}", - "deprecated": "veraltet" - }, - "fieldTextSubForm": { - "placeholder": "Standardtext" - }, - "fieldSingleSelectSubForm": { - "optionsLabel": "Optionen" - }, - "fieldSingleSelectDropdown": { - "notFound": "Option nicht gefunden" - }, - "fieldDateSubForm": { - "dateFormatLabel": "Datumsformat", - "dateFormatEuropean": "Europäisch", - "dateFormatUS": "US", - "dateFormatISO": "ISO", - "includeTimeLabel": "Zeit einbeziehen", - "timeFormatLabel": "Zeitformat", - "24Hour": "24 Stunden", - "12Hour": "12 Stunden", - "showTimezoneLabel": "Zeitzone anzeigen", - "forceTimezoneLabel": "Legen Sie die Zeitzone für alle Mitarbeiter fest", - "forceTimezoneValue": "Zeitzone", - "addTimezoneOffsetLabel": "Werte umrechnen ({utcOffsetDiff} Minuten hinzufügen)", - "subTimezoneOffsetLabel": "Werte umrechnen ({utcOffsetDiff} Minuten subtrahieren)" - }, - "fieldLinkRowSubForm": { - "noTable": "Sie benötigen mindestens eine weitere Tabelle in derselben Datenbank, auf die Sie verweisen können.", - "selectTableLabel": "Wählen Sie eine Tabelle für die Verknüpfung", - "hasRelatedFieldLabel": "Verknüpftes Feld in verknüpfter Tabelle erstellen", - "limitToView": "Auswahl auf Ansicht beschränken", - "limitToViewDescription": "Beachten Sie, dass dies nur visuell ist. Es ist immer noch möglich, Beziehungen außerhalb der Ansicht über die Bezugstabelle oder API herzustellen." - }, - "fieldSelectOptions": { - "add": "Eine Option hinzufügen" - }, - "fieldNumberSubForm": { - "typeLabel": "Typ der Nummer", - "integer": "Integer", - "decimal": "Dezimal", - "decimalPlacesLabel": "Dezimalstellen", - "allowNegative": "Negativ zulassen", - "separatorLabel": "Tausender- und Dezimaltrennzeichen", - "prefixPlaceholder": "Präfix", - "suffixPlaceholder": "Suffix", - "prefixAndSuffixLabel": "Präfix / Suffix", - "spaceComma": "Leerzeichen, Komma (1 000 000,00)", - "spacePeriod": "Leerzeichen, Punkt (1 000 000.00)", - "commaPeriod": "Komma, Leerzeichen (1,000,000.00)", - "periodComma": "Punkt, Komma (1.000.000,00)", - "noFormatting": "Keine Formatierung" - }, - "fieldContext": { - "editField": "Feld bearbeiten", - "deleteField": "Feld löschen", - "hideField": "Feld ausblenden", - "showField": "Feld anzeigen", - "changePrimaryField": "Primäres Feld ändern" - }, - "fieldForm": { - "name": "Name", - "fieldAlreadyExists": "Ein Feld mit diesem Namen existiert bereits.", - "nameNotAllowed": "Dieser Feldname ist nicht zulässig.", - "nameTooLong": "Der Name dieses Feldes ist zu lang.", - "description": "Beschreibung", - "addDescription": "Beschreibung hinzufügen" - }, - "fieldLookupSubForm": { - "noTable": "Sie benötigen mindestens ein Verknüpfungszeilenfeld, um ein Nachschlagefeld zu erstellen.", - "selectThroughFieldLabel": "Wählen Sie ein Link-Zeilenfeld", - "selectTargetFieldLabel": "Wählen Sie ein Feld zum Nachschlagen" - }, - "fieldFormulaNumberSubForm": { - "typeLabel": "Typ der Nummer", - "integer": "Integer", - "decimal": "Dezimal", - "decimalPlacesLabel": "Dezimalstellen", - "allowNegative": "Negativ zulassen" - }, - "fieldRatingSubForm": { - "maxValue": "Max", - "color": "Farbe", - "style": "Stil" - }, - "rowCreateModal": { - "addField": "Feld hinzufügen" - }, - "selectRowContent": { - "search": "Zeilen suchen" - }, - "rowEditModal": { - "addField": "Feld hinzufügen", - "showHiddenFields": "Ausgeblendete Felder anzeigen", - "hideHiddenFields": "Versteckte Felder ausblenden" - }, - "rowEditFieldMultipleSelect": { - "addOption": "Wähle eine Option" - }, - "rowEditFieldFile": { - "addFile": "Eine Datei hinzufügen", - "sizes": { - "0": "Bytes", - "1": "KB", - "2": "MB", - "3": "GB", - "4": "TB", - "5": "PB" - } - }, - "rowEditFieldLinkRow": { - "addLink": "Wählen Sie einen Link" - }, - "tableCSVImporter": { - "chooseFileLabel": "CSV-Datei auswählen", - "chooseFileDescription": "Sie können eine vorhandene CSV-Datei importieren, indem Sie die .CSV-Datei mit den Tabellendaten hochladen. Mit den meisten Tabellenkalkulationsprogrammen können Sie Ihre Kalkulationstabelle als CSV-Datei exportieren.", - "chooseFile": "CSV-Datei auswählen", - "columnSeparator": "Spaltentrenner", - "recordSeparator": "Datensatz-Trennzeichen", - "unitSeparator": "Elementarteiler", - "encoding": "Kodierung", - "firstRowHeader": "Erste Zeile ist Kopfzeile", - "limitFileSize": "Die maximale Dateigröße beträgt {limit}MB.", - "limitError": "Es ist nicht möglich, mehr als {limit} Zeilen zu importieren.", - "emptyCSV": "Diese CSV-Datei ist leer." - }, - "tableForm": { - "name": "Name" - }, - "tableXMLImporter": { - "fileLabel": "XML-Datei auswählen", - "fileDescription": "Sie können eine bestehende XML-Datei importieren, indem Sie die XML-Datei mit tabellarischen Daten hochladen, d.h.:", - "chooseButton": "XML-Datei auswählen", - "processingError": "Bei der Verarbeitung von XML ist ein Fehler aufgetreten: {errors}", - "emptyError": "Diese XML-Datei ist leer.", - "limitFileSize": "Die maximale Dateigröße beträgt {limit}MB.", - "limitError": "Es ist nicht möglich, mehr als {limit} Zeilen zu importieren." - }, - "tableJSONImporter": { - "fileLabel": "JSON-Datei auswählen", - "fileDescription": "Sie können eine vorhandene JSON-Datei importieren, indem Sie die .json-Datei mit tabellarischen Daten hochladen, d.h.:", - "chooseButton": "JSON-Datei auswählen", - "encodingLabel": "Kodierung", - "processingError": "Beim Analysieren von JSON ist ein Fehler aufgetreten: {error}", - "arrayError": "Die JSON-Datei ist kein Arrangement.", - "emptyError": "Diese JSON-Datei ist leer.", - "limitFileSize": "Die maximale Dateigröße beträgt {limit}MB.", - "limitError": "Es ist nicht möglich, mehr als {limit} Zeilen zu importieren." - }, - "tablePasteImporter": { - "pasteLabel": "Einfügen der Tabellendaten", - "pasteDescription": "Sie können die Zellen aus einer Kalkulationstabelle kopieren und unten einfügen.", - "firstRowHeader": "Erste Zeile ist Kopfzeile", - "limitError": "Es ist nicht möglich, mehr als {limit} Zeilen zu importieren." - }, - "importFileModal": { - "title": "Neue Tabelle erstellen", - "importLabel": "Möchten Sie vorhandene Daten importieren?", - "newTable": "Beginnen Sie mit einer neuen Tabelle", - "addButton": "Tabelle hinzufügen", - "uploading": "Hochladen...", - "preparing": "Daten werden vorbereitet...", - "importError": "Beim Dateiimport ist etwas schief gelaufen", - "statePreValidation": "Validierung von Daten...", - "stateCreateTable": "Tabelle wird erstellt...", - "reportMessage": "Die folgenden Zeilenindizes konnten nicht importiert werden:", - "additionalImportTitle": "In {table} importieren", - "showTable": "Tabelle anzeigen", - "importButton": "Importieren", - "openCreatedTable": "Erstellte Tabelle öffnen", - "showReport": "Fehlerbericht anzeigen", - "stateRowCreation": "Importieren...", - "fieldMappingTitle": "Feldzuordnung", - "fieldMappingDescription": "Wir haben die Spalten der Baserow-Felder in Ihrer Tabelle automatisch zugewiesen. Sie können sie unten ändern. Jede nicht kompatible Zelle bleibt nach dem Import leer.", - "selectImportMessage": "Bitte wählen Sie die zu importierenden Daten aus.", - "reportTitleSuccess": "Import erfolgreich, aber...", - "reportTitleFailure": "Fehlerhafte Zeilen", - "filePreview": "Vorschau des Dateiinhalts", - "importPreview": "Importvorschau", - "changeImporterType": "Importtyp ändern", - "defaultName": "Tabelle" - }, - "formulaAdvancedEditContext": { - "textAreaFormulaInputPlaceholder": "Klicken Sie zum Bearbeiten der Formel", - "fields": "Felder", - "functions": "Funktionen", - "operators": "Operatoren", - "fieldType": "Ein {type} Feld" - }, - "fieldFormulaInitialSubForm": { - "formulaInputPlaceholder": "Klicken Sie zum Bearbeiten der Formel", - "refreshFormulaOptions": "Formeloptionen aktualisieren" - }, - "formulaFieldItemDescription": { - "syntax": "Syntax", - "examples": "Beispiele" - }, - "viewSearchContext": { - "searchInRows": "Suche in allen Zeilen", - "hideNotMatching": "nicht übereinstimmende Zeilen ausblenden" - }, - "viewsContext": { - "searchView": "Suchen nach Ansichten", - "noViews": "Keine Ansichten gefunden", - "collaborative": "Kollaborativ" - }, - "viewFilterTypeLinkRow": { - "unnamed": "unbenannte Zeile {value}", - "choose": "Reihe auswählen" - }, - "viewFilterContext": { - "addFilter": "Filter hinzufügen", - "disableAllFilters": "alle deaktiviert", - "noFilterTitle": "Sie haben noch keinen Filter erstellt", - "noFilterText": "Mit Hilfe von Filtern können Sie Zeilen anzeigen, die auf Ihre Bedingungen zutreffen.", - "where": "Wo", - "and": "Und", - "or": "Oder", - "relatedFieldNotFound": "Das zugehörige Feld wurde nicht gefunden.", - "filterTypeNotFound": "Der Filtertyp ist nicht kompatibel.", - "noCompatibleFilterTypesErrorTitle": "Keine kompatiblen Filtertypen", - "noCompatibleFilterTypesErrorMessage": "Keines Ihrer Felder hat einen kompatiblen Filtertyp", - "addFilterGroup": "Filtergruppe hinzufügen" - }, - "viewFilterTypeFileTypeDropdown": { - "image": "Bild", - "document": "Dokument" - }, - "createViewModal": { - "createNew": "Neue {Ansicht} erstellen", - "add": "Hinzufügen {view}" - }, - "shareViewLink": { - "shareView": "{viewTypeSharingLinkName} teilen", - "shareViewTitle": "Sie haben die Ansicht noch nicht geteilt", - "sharedViewTitle": "Dieser {ViewTypeSharingLinkName} ist derzeit über einen privaten Link freigegeben", - "sharedViewDescription": "Personen, die den Link haben, können den {ViewTypeSharingLinkName} sehen.", - "disableLink": "Freigegebenen Link deaktivieren", - "generateNewUrl": "neue Url generieren", - "copyURL": "URL kopieren", - "DisablePassword": "Zugriff ist passwortgeschützt", - "EnablePassword": "Beschränken Sie den Zugriff mit einem Passwort", - "ChangePassword": "Ändern", - "createPrivateLink": "Einen privaten Link erstellen", - "shareViewText": "Ein privater, gemeinsam nutzbarer Link erlaubt es jedem, die Daten in dieser Ansicht zu sehen.", - "notSharedYetText": "Erlauben Sie jedem, die Daten in dieser Ansicht zu sehen, oder synchronisieren Sie Ereignisse mit Ihrem externen Kalender." - }, - "viewSortContext": { - "noSortTitle": "Sie haben noch keine Sortierungen erstellt", - "noSortText": "Mit Sortierungen können Sie Zeilen nach einem Feld sortieren.", - "sortBy": "Sortieren nach", - "thenBy": "Dann durch", - "addSort": "ein Feld zum Sortieren auswählen" - }, - "viewSort": { - "sort": "Sortieren | 1 Sortieren | {count} Sortiert" - }, - "viewRotateSlugModal": { - "title": "URL aktualisieren", - "refreshWarning": "Sind Sie sicher, dass Sie die URL von {viewName} aktualisieren möchten? Nach der Aktualisierung wird eine neue URL generiert und es ist nicht möglich, über die alte URL auf {viewTypeSharingLinkName} zuzugreifen. Alle Personen, für die Sie die URL freigegeben haben, können nicht mehr auf {viewTypeSharingLinkName} zugreifen.", - "generateNewURL": "Neue URL generieren" - }, - "viewFieldsContext": { - "coverField": "Coverfeld", - "noCover": "Kein Cover", - "search": "Felder durchsuchen", - "hideAll": "Alle ausblenden", - "showAll": "Alle anzeigen" - }, - "viewFilterTypeBoolean": { - "selected": "Ausgewählte" - }, - "viewFilter": { - "filter": "Filter | 1 Filter | {count} Filters", - "hasAllValuesEqual": "hat alle Werte gleich", - "hasValueHigherThanOrEqual": "hat einen Wert größer oder gleich", - "hasValueLowerThan": "hat einen Wert kleiner als", - "hasValueLowerThanOrEqual": "hat einen Wert kleiner oder gleich", - "hasNotValueHigherThan": "hat keinen Wert größer als", - "hasValueHigherThan": "hat einen Wert größer als", - "hasNotValueHigherThanOrEqual": "hat keinen Wert größer oder gleich", - "hasNotValueLowerThan": "hat keinen Wert kleiner als", - "hasNotValueLowerThanOrEqual": "hat keinen Wert kleiner oder gleich" - }, - "viewContext": { - "exportView": "Ansicht exportieren", - "renameView": "Ansicht umbenennen", - "deleteView": "Ansicht löschen", - "webhooks": "Webhooks", - "duplicateView": "Ansicht duplizieren", - "importFile": "Datei importieren", - "toCollaborative": "Zu Kollaborativ", - "toPersonal": "Zu Persönlich" - }, - "deleteViewModal": { - "title": "Löschen {name}", - "description": "Sind Sie sicher, dass Sie die Ansicht {name} löschen möchten? Die Tabellendaten bleiben erhalten, aber die Filter, Sortierungen und Feldbreiten, die mit der Ansicht verbunden sind, werden gelöscht.", - "delete": "Ansicht löschen" - }, - "viewForm": { - "name": "Name", - "whoCanEdit": "Wer kann bearbeiten" - }, - "galleryViewHeader": { - "customizeCards": "Karten individuell gestalten" - }, - "gridViewHide": { - "hideField": "Felder ausblenden | 1 verstecktes Feld | {count} versteckte Felder" - }, - "gridViewFieldType": { - "createFilter": "Filter erstellen", - "sortField": "Sortieren", - "hideField": "Feld ausblenden", - "insertLeft": "Links einfügen", - "insertRight": "Rechts einfügen", - "duplicate": "Feld duplizieren", - "dataSyncField": "Das Feld ist schreibgeschützt und Teil des Datenabgleichs der Tabelle." - }, - "gridViewRow": { - "rowNotMatchingFilters": "Zeile entspricht nicht den Filtern", - "rowNotMatchingSearch": "Zeile stimmt nicht mit Suche überein", - "rowHasMoved": "Zeile hat sich verschoben" - }, - "gridView": { - "insertRowAbove": "Zeile oben einfügen", - "insertRowBelow": "Zeile unten einfügen", - "enlargeRow": "Zeile vergrößern", - "deleteRow": "Zeile löschen", - "rowCount": "Keine Zeilen | 1 Zeile | {count} Zeilen", - "selectRow": "Zeile auswählen", - "duplicateRow": "Zeile duplizieren", - "deleteRows": "Zeilen löschen", - "copyCells": "Zellen kopieren", - "hiddenRowsInsertedTitle": "Zeilen hinzugefügt", - "hiddenRowsInsertedMessage": "{number} neu hinzugefügte Zeilen wurden hinzugefügt, sind aber wegen der aktiven Filter nicht sichtbar.", - "tooManyItemsDescription": "Es ist nicht möglich, mehr als {limit} Zeilen auf einmal zu aktualisieren, also wurde nur die erste Zeile aktualisiert.", - "copyRowURL": "Zeilen-URL kopieren", - "copiedRowURL": "Zeilen-URL kopiert", - "copiedRowURLMessage": "Die URL aus Zeile {id} wurde in die Zwischenablage kopiert.", - "tooManyItemsTitle": "Zu viele Elemente", - "AIValuesGenerationErrorTitle": "Werterstellung mittels KI fehlgeschlagen", - "AIValuesGenerationErrorMessage": "Bitte überprüfen Sie Ihren API_KEY und das ausgewählte Modell.", - "generateCellsValues": "Mit KI Werte generieren", - "copyCellsWithHeader": "Zellen mit Kopfbereich kopieren" - }, - "gridViewFieldLinkRow": { - "unnamed": "unbenannte Zeile {value}" - }, - "gridViewIdentifierOptions": { - "id": "Spalten Identifikator", - "count": "Spalten Position" - }, - "previewAny": { - "externalWarning": "Wenn Sie Ihre Datei über einen externen Dienst öffnen, wird Ihre Datei auf dessen Servern veröffentlicht." - }, - "exportTableModal": { - "failedTitle": "Export fehlgeschlagen", - "failedDescription": "Der Export ist aufgrund eines Serverfehlers fehlgeschlagen.", - "cancelledTitle": "Export abgebrochen", - "cancelledDescription": "Die Exportaktion wurde abgebrochen.", - "title": "{name} exportieren" - }, - "exporterTypeChoices": { - "formatLabel": "In welches Format möchten Sie exportieren?" - }, - "exportTableForm": { - "viewLabel": "Wählen Sie die zu exportierende Ansicht aus:", - "typeError": "Kein Exporttyp verfügbar, bitte wählen Sie eine andere Ansicht oder eine ganze Tabelle." - }, - "exportTableLoadingBar": { - "export": "Exportieren", - "download": "Herunterladen" - }, - "exportTableDropdown": { - "exportEntireTable": "Gesamte Tabelle exportieren" - }, - "tableCSVExporter": { - "columnSeparatorLabel": "Spaltentrenner", - "recordSeparator": "Datensatz-Trennzeichen", - "unitSeparator": "Teilgruppentrennzeichen", - "encodingLabel": "Kodierung", - "firstRowIsHeaderLabel": "Erste Zeile ist Kopfzeile", - "includeHeader": "Feldnamen als Überschrift einfügen" - }, - "apiDocsDatabase": { - "pageTitle": "{name} Datenbank-API-Dokumentation", - "back": "Zurück zum Dashboard", - "openDatabase": "Datenbank öffnen" - }, - "apiDocsComponent": { - "title": "REST API", - "intro": "Nachdem Sie Ihr Datenbankschema und Ihren API-Schlüssel im {settingsLink} erstellt haben, bietet Ihre Baserow-Datenbank eigene REST-API-Endpunkte zum Erstellen, Lesen, Aktualisieren und Löschen von Zeilen.", - "settings": "Einstellungen", - "selectApplicationTitle": "Für welche Datenbank möchten Sie die Dokumentation sehen?", - "signIn": "Anmelden, um zu starten", - "back": "Zurück zum Dashboard" - }, - "viewAggregationType": { - "min": "Min", - "max": "Max", - "earliestDate": "Frühestes Datum", - "checkedCount": "Geprüft", - "notCheckedCount": "Ungeprüft", - "checkedPercentage": "Prozent markiert", - "notCheckedPercentage": "Prozentsatz nicht geprüft", - "earliestDateShort": "Früheste", - "latestDate": "Letztes Datum", - "latestDateShort": "Letztes", - "uniqueCount": "Eindeutig", - "sum": "Summe", - "median": "Median", - "stdDev": "Standardabweichung", - "variance": "Varianz", - "average": "Durchschnitt", - "stdDevShort": "Std Abw", - "emptyCount": "(Leer)", - "notEmptyCount": "Gefüllt", - "emptyPercentage": "Prozent leer", - "notEmptyPercentage": "Prozent gefüllt", - "count": "Anzahl" - }, - "databaseForm": { - "importLabel": "Möchten Sie vorhandene Daten importieren?", - "emptyLabel": "Neu anfangen", - "airtableLabel": "Importieren von Airtable (beta)" - }, - "importFromAirtable": { - "airtableShareLinkTitle": "Teilen Sie einen Link zu Ihrer Basis", - "airtableShareLinkBeta": "Beachten Sie, dass sich diese Funktion noch in Beta befindet. Ihre Tabellen, Felder (außer formula, lookup, und count) und Daten werden importiert. Ihre Views werden nicht importiert.", - "airtableShareLinkPaste": "Den Link hier einfügen", - "importButtonLabel": "Importieren von Airtable", - "openButtonLabel": "Importierte Datenbank öffnen", - "importError": "Etwas ist schief gelaufen", - "statePending": "Warten", - "stateFailed": "Fehlgeschlagen", - "stateFinished": "Abgeschlossen", - "stateDownloadingBase": "Herunterladen das Baseschemas", - "stateConverting": "Konvertierung zu Baserow", - "stateDownloadingFiles": "Herunterladen von Dateien", - "stateImporting": "Importieren", - "stateImportingTable": "Tabelle importieren {table}", - "airtableShareLinkDescription": "Um Ihre Airtable Base zu importieren, müssen Sie einen Link zu Ihrer gesamten Base haben. Klicken Sie in Airtable auf die \"Share\" taste in der oberen rechten Ecke, nachdem Sie Ihre Base geöffnet haben. Danach müssen Sie die Option \"Access to base\" wählen. Im modal drücken Sie auf \"Create a shared link to the whole base\" und dann auf \"Private read-only link\". Kopieren Sie den Link und fügen Sie ihn in das unten stehende Feld ein.", - "errorJobAlreadyRunningTitle": "Schon läuft", - "errorJobAlreadyRunningDescription": "Ein weiterer Importauftrag ist bereits in Arbeit. Sie müssen abwarten, bis dieser Vorgang abgeschlossen ist, bevor Sie einen weiteren beginnen.", - "linkError": "Der Link sollte wie folgt aussehen: https://airtable.com/shrxxxxxxxxxxxxxxx" - }, - "chooseSingleSelectField": { - "addSelectField": "Einzelnes Auswahlfeld hinzufügen", - "warningWhenNothingToChooseOrCreate": "Es gibt keine einzelnen Auswahlfelder, aus denen Sie auswählen können, und Sie haben keine Berechtigung, eines zu erstellen." - }, - "shareViewEnablePasswordModal": { - "newPasswordTitle": "Geben Sie ein Passwort ein", - "changePasswordSave": "Passwort ändern", - "newPasswordSave": "Passwort setzen", - "changePasswordTitle": "Passwort ändern", - "changePasswordDescription": "Durch das Ändern des Passworts funktioniert das vorherige nicht mehr. Dieses Passwort wird verschlüsselt gespeichert.", - "newPasswordDescription": "Der öffentliche Link ist erst nach Eingabe des Passworts zugänglich. Dieses Passwort wird verschlüsselt gespeichert." - }, - "shareViewDisablePasswordModal": { - "title": "Passwortschutz deaktivieren", - "description": "Möchten Sie den Passwortschutz für diesen öffentlichen Link wirklich deaktivieren? Durch die Deaktivierung wird das Passwort gelöscht und kann nicht wiederhergestellt werden", - "disable": "Deaktivieren" - }, - "publicViewAuthLogin": { - "title": "Diese Seite ist passwortgeschützt", - "enter": "Eingeben", - "error": { - "incorrectPasswordTitle": "Falsches Passwort", - "incorrectPasswordText": "Das angegebene Passwort ist falsch." - }, - "description": "Geben Sie das richtige Passwort ein, um auf die Seite zuzugreifen." - }, - "viewDecoratorContext": { - "addDecorator": "Verzierung hinzufügen" - }, - "viewDecorator": { - "decorator": "Farbe | 1 Farbe | {count} Farben" - }, - "apiDocsTableUpdateRows": { - "description": "Aktualisiert bestehende {name} Zeilen.", - "id": "Die Zeilen-ID." - }, - "apiDocsTableCreateRows": { - "before": "Falls angegeben, werden die neu erstellten Zeilen vor der Zeile mit der angegebenen id positioniert.", - "description": "Neue Zeilen {name} erstellen." - }, - "importer": { - "loading": "Datei wird geladen", - "decoding": "Dekodierung von Daten", - "inProgress": "In Arbeit...", - "parsing": "Analysieren von Daten", - "preparing": "Aufbereitung der Daten", - "fieldDefaultName": "Feld {count}" - }, - "apiDocsTableDeleteRows": { - "description": "Löscht die vorhandenen Zeilen {name}.", - "items": "Ein Array von Zeilennummern, die gelöscht werden sollen." - }, - "formViewMeta": { - "includeRowId": "Verwenden Sie {row_id}, um die neu erstellte Zeilen-ID in die URL aufzunehmen." - }, - "databaseDashboardSidebarLinks": { - "apiDocumentation": "API-Dokumentation" - }, - "formViewField": { - "required": "erforderlich", - "showWhenMatchingConditions": "anzeigen, wenn die Bedingungen erfüllt sind", - "addCondition": "Bedingung hinzufügen", - "descriptionPlaceholder": "Beschreibung", - "addConditionGroup": "Bedingungsgruppe hinzufügen", - "showFieldAs": "Feld anzeigen als" - }, - "duplicateFieldContext": { - "duplicate": "Feld duplizieren", - "cloneData": "Daten kopieren", - "soon": "In Kürze verfügbar", - "readOnlyField": "Die Zellenwerte werden automatisch ausgefüllt." - }, - "snapshotsModal": { - "descriptionLimits": "Sie können maximal {n} Snapshots pro Arbeitsbereich haben. | Sie können maximal {n} Snapshots pro Arbeitsbereich haben. | Sie können maximal {n} Snapshots pro Arbeitsbereich haben.", - "createLabel": "Erstelle einen neuen Snapshot", - "description": "Snapshots sind eine vollständige Kopie von {applicationTypeName} zu dem Zeitpunkt, an dem sie erstellt wurde. Bei der Wiederherstellung wird ein Duplikat dieser Daten erstellt. Snapshots werden nach einem Jahr automatisch gelöscht.", - "create": "Snapshot erstellen", - "snapshotRestoredErrorTitle": "Ein Fehler ist aufgetreten", - "title": "snapshots", - "snapshotRestoredErrorMessage": "Der Snapshot konnte nicht wiederhergestellt werden. Bitte versuchen Sie es später noch einmal.", - "snapshotDeletedErrorTitle": "Fehler aufgetreten", - "snapshotDeletedErrorMessage": "Der Snapshot konnte nicht gelöscht werden. Bitte versuchen Sie es später noch einmal.", - "limitReached": "Das Limit der maximalen Snapshots wurde erreicht.", - "snapshot": "Snapshot", - "importingState": "Erstellen", - "reset": "Erstellen eines weiteren" - }, - "snapshotListItem": { - "created": "erstellt", - "restore": "wiederherstellen", - "delete": "Löschen" - }, - "deleteSnapshotModal": { - "title": "Snapshot löschen", - "content": "Sind Sie sicher, dass Sie den Snapshot {name} dauerhaft löschen möchten?", - "confirm": "Löschen" - }, - "duplicateTableJobType": { - "duplicating": "Duplizieren", - "duplicatedTitle": "Tabelle dupliziert", - "name": "Tabelle duplizieren" - }, - "formViewModePreviewForm": { - "titlePlaceholder": "Titel", - "descriptionPlaceholder": "Beschreibung", - "addCoverImage": "Ein Titelbild hinzufügen", - "addLogo": "Ein Logo hinzufügen", - "noFields": "Dieses Formular hat noch keine Felder. Klicken Sie auf ein Feld in der linken Seitenleiste, um eines hinzuzufügen." - }, - "apiDocsUploadFile": { - "description": "Lädt eine Datei auf Baserow hoch, indem der Dateiinhalt direkt hochgeladen wird. Es wird ein Multipart `file` erwartet, der den Inhalt der Datei enthält. Die Antwort kann dann zum [Hochladen einer Datei in eine Zeile]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row) verwendet werden.", - "file": "Der `file` Multipart, der den Dateiinhalt enthält." - }, - "table": { - "chooseView": "Ansicht wählen", - "adjacentRow": { - "notification": { - "notFound": { - "previous": { - "title": "Keine Zeilen mehr", - "message": "Es gibt keine vorherige Zeile" - }, - "next": { - "message": "Es gibt keine nächste Zeile", - "title": "Keine Zeilen mehr" - } + "webhookModal": { + "title": "{name} Webhooks", + "createWebhook": "Webhook erstellen", + "backToList": "Zurück zur Liste" + }, + "deleteWebhookModal": { + "title": "Löschen {webhookName}", + "deleteButton": "Webhook löschen", + "body": "Sind Sie sicher, dass Sie diesen Webhook löschen wollen? Sie werden ihn später nicht wiederherstellen können." + }, + "webhookList": { + "noWebhooksMessage": "Sie haben noch keine Webhooks erstellt. Webhooks können verwendet werden, um Systeme von Drittanbietern zu informieren, wenn eine Zeile in Baserow erstellt, aktualisiert oder gelöscht wurde." + }, + "testWebhookModal": { + "title": "Test Webhook", + "unreachable": "Server unerreichbar" + }, + "webhookForm": { + "inputLabels": { + "name": "Name", + "value": "Wert", + "requestMethod": "Methode", + "url": "URL", + "userFieldNames": "Namen der Benutzerfelder", + "events": "Welche Ereignisse sollen diesen Webhook auslösen?", + "headers": "Zusätzliche Überschriften", + "example": "Beispiel Nutzlast" }, - "error": { - "title": "Fehler aufgetreten", - "message": "Beim Abrufen der angrenzenden Zeile ist ein Fehler aufgetreten" - } - }, - "toast": { - "notFound": { - "previous": { - "message": "Es gibt keine vorherige Zeile", - "title": "Keine Zeilen mehr" - }, - "next": { - "title": "Keine Zeilen mehr", - "message": "Es gibt keine nächste Zeile" - } + "errors": { + "urlField": "Muss eine gültige URL sein, die mit \"https://\" oder \"http://\" beginnt.", + "invalidHeaders": "Eine der Kopfzeilen ist ungültig." + }, + "checkbox": { + "sendUserFieldNames": "Feldname anstelle von id verwenden" + }, + "radio": { + "allEvents": "Schick mir alles", + "customEvents": "Ich möchte einzelne Ereignisse auswählen" + }, + "triggerButton": "Test-Webhook auslösen", + "deactivated": { + "title": "Webhook ist deaktiviert", + "content": "Dieser Webhook wurde deaktiviert, weil zu viele aufeinanderfolgende Fehler aufgetreten sind. Bitte überprüfen Sie das Aufrufprotokoll für weitere Details. Klicken Sie auf die Schaltfläche unten, um ihn wieder zu aktivieren. Vergessen Sie nicht, den Webhook nach dem Aktivieren zu speichern.", + "activate": "Aktivierung" }, + "deprecatedEventType": { + "description": "Dieser Webhook empfängt keine Informationen über alle geänderten Zeilen auf einmal. Bitte konvertieren Sie ihn in den Ereignistyp \"Batch\". Dadurch wird die JSON-Nutzlast in ein Format geändert, das mehrere Zeilen enthält.", + "title": "Veralteter Ereignistyp", + "convert": "Konvertieren" + }, + "triggerWhenFieldsHaveChanged": "Löse aus, wenn Felder verändert wurden", + "helpTriggerWhenFieldsHaveChanged": "Wird nur ausgelöst, wenn sich der Zellwert der gewählten Felder verändert." + }, + "webhook": { + "details": "Details", + "lastCall": "Letzter Aufruf: {lastCallTime}", + "noCalls": "Keine Aufrufe getätigt", + "callLog": "Aufrufprotokoll", + "triggerDescription": "Auslöser bei jedem Ereignis | Auslöser bei {count} Ereignis | Auslöser bei {count} Ereignissen" + }, + "createWebhook": { + "errorTableWebhookMaxLimitExceededTitle": "Maximale Webhooks überschritten", + "errorTableWebhookMaxLimitExceededDescription": "Der Webhook kann nicht erstellt werden, da die maximale Anzahl von Webhooks pro Tabelle überschritten wurde." + }, + "sidebar": { + "viewAPI": "API-Dokumente anzeigen", + "createTable": "Neue Tabelle" + }, + "sidebarItem": { + "exportTable": "Exportieren der Tabelle", + "webhooks": "Webhooks", + "lastSynced": "Zuletzt synchronisiert", + "notSynced": "nicht sychnronisiert", + "sync": "Tabelle synchronisieren", + "updateSyncConfig": "Sync-Konfiguration aktualisieren" + }, + "apiToken": { + "create": "erstellen", + "read": "lesen", + "update": "Aktualisierung", + "delete": "löschen", + "tokenPrefix": "Wertmarke:", + "viewAPIDocs": "API-Dokumentation anzeigen", + "generateNewToken": "Neues Token generieren", + "showOrHide": "Das Token ein- oder ausblenden", + "copyToClipboard": "In die Zwischenablage kopieren", + "showDatabases": "Datenbanken anzeigen" + }, + "apiTokenSettings": { + "title": "Datenbank-Token", + "createToken": "Token erstellen", + "noTokensMessage": "Sie haben noch kein Datenbank-Token erstellt. Sie können Datenbank-Tokens verwenden, um sich bei den REST-API-Endpunkten zu authentifizieren, wo Sie Zeilen erstellen, lesen, aktualisieren und löschen können. Es ist möglich, Berechtigungen auf Tabellenebene festzulegen.", + "hasFullPermissions": "Hat volle Berechtigung, auch für alle Kinder.", + "hasOnlySelectedPermissions": "Hat nur Berechtigungen für die ausgewählten Kinder.", + "noPermissions": "Hat keine Berechtigungen.", + "createNewTitle": "Neues Datenbank-Token erstellen", + "backToOverview": "Zurück zur Übersicht" + }, + "apiTokenForm": { + "nameLabel": "Name", + "workspaceLabel": "Arbeitsbereich" + }, + "apiDocsSelectDatabase": { + "needOneDatabase": "Sie müssen mindestens eine Datenbank haben, um die API-Dokumentation anzuzeigen." + }, + "apiDocsExample": { + "requestSample": "Beispiel anfordern", + "responseSample": "Antwortbeispiel", + "userFieldNames": "Namen der Benutzerfelder" + }, + "apiDocsParameter": { + "optional": "Optional", + "defaultValue": "Standardwert: {value}" + }, + "apiDocsTableGetRow": { + "description": "Holt eine einzelne Zeile {Name}.", + "rowId": "Der eindeutige Bezeichner der angeforderten Zeile." + }, + "apiDocsErrors": { + "errorCode": "Fehlercode", + "name": "Name", + "description": "Beschreibung", + "okDescription": "Anfrage erfolgreich abgeschlossen.", + "badRequestDescription": "Die Anfrage enthält ungültige Werte oder das JSON konnte nicht interpretiert werden.", + "unauthorizedDescription": "Wenn Sie versuchen, auf einen Endpunkt ohne ein gültiges Datenbank-Token zuzugreifen.", + "notFoundDescription": "Zeile oder Tabelle wird nicht gefunden.", + "requestEntityTooLargeDescription": "Die Anfrage hat die maximal zulässige Größe der Nutzdaten überschritten.", + "internalErrorDescription": "Der Server ist auf eine unerwartete Bedingung gestoßen.", + "badGatewayDescription": "Baserow wird neu gestartet oder ein unerwarteter Ausfall ist im Gange.", + "unavailableDescription": "Der Server konnte Ihre Anfrage nicht rechtzeitig bearbeiten." + }, + "apiDocsTableFields": { + "tableTitle": "{name} Tabelle", + "tableId": "Die ID dieser Tabelle lautet:", + "description": "Jede Zeile in der Tabelle {name} enthält die folgenden Felder.", + "id": "ID", + "name": "Name", + "type": "Typ", + "compatibleFilters": "Kompatible Filter" + }, + "apiDocsTableListRows": { + "description": "Um Zeilen in der Tabelle *{name}* aufzulisten, muss eine `GET`-Anfrage an den Endpunkt *{name}* gestellt werden. Die Antwort ist paginiert und standardmäßig wird die erste Seite zurückgegeben. Die richtige Seite kann durch Angabe der Abfrageparameter \"page\" und \"size\" abgerufen werden.", + "page": "Legt fest, welche Seite von Zeilen zurückgegeben werden soll.", + "size": "Legt fest, wie viele Zeilen pro Seite zurückgegeben werden sollen.", + "userFieldNames": "Wenn der GET-Parameter \"user_field_names\" vorhanden ist und dessen Inhalt einem dieser Werte entspricht (`y`, `yes`, `true`, `t`, `on`, `1`, oder eine leere Zeichenfolge), sind die von diesem Endpunkt zurückgegebenen Feldnamen die tatsächlichen Namen der Felder.\n\nWenn der GET-Parameter \"user_field_names\" nicht angegeben wird oder nicht einem der oben angegebenen Werte entspricht, lauten alle zurückgegebenen Feldnamen \"field_\", gefolgt von der ID des Feldes. Zum Beispiel bezieht sich \"field_1\" auf das Feld mit der ID \"1\".\n\n Wenn `user_field_names` gesetzt ist, ändert sich außerdem das Verhalten der anderen GET-Parameter `order_by`, `include` und `exclude`. Sie erwarten stattdessen kommagetrennte Listen mit den tatsächlichen Feldnamen.", + "search": "Wenn angegeben, werden nur Zeilen mit Daten zurückgegeben, die der Suchanfrage entsprechen.", + "orderBy": "Optional können die Zeilen nach durch Komma getrennten Feldern geordnet werden. Standardmäßig oder wenn einem Feld ein '+' vorangestellt wird, ist es aufsteigend (A-Z) geordnet, aber durch Voranstellen eines '-' kann es absteigend (Z-A) geordnet werden.\n #### Mit`user_field_names`:\n\n `order_by`sollte eine durch ein Komma getrennte Liste der Feldnamen sein, nach denen geordnet werden soll. Wenn Sie beispielsweise den folgenden GET-Parameter angeben: `order_by=My Field,-My Field 2`, werden die Zeilen nach dem Feld mit der Bezeichnung `My Field`in aufsteigender Reihenfolge geordnet. Wenn einige Felder denselben Wert haben, wird diese Teilmenge nach dem Feld `My Field 2` in absteigender Reihenfolge geordnet.\n\n Stellen Sie sicher, dass Feldern, deren Namen mit einem `+` oder `-` beginnen, ausdrücklich ein weiteres `+` oder `-` vorangestellt wird. Z.B.`+-Name`.\n\n\n Feldnamen, die Kommas enthalten, müssen in Anführungszeichen eingeschlossen werden: `\"Name ,\"`. Wenn Feldnamen Anführungszeichen enthalten, müssen sie mit dem Zeichen `\\` geschützt werden. Beispiel: `Name `.\n\n#### Ohne `user_field_names`:\n\n `order_by` sollte eine durch das Komma getrennte Liste von `field_` sein, gefolgt von der ID des Feldes, nach dem geordnet werden soll. Wenn Sie zum Beispiel den folgenden GET-Parameter angeben: `order_by=field_1,-field_2`, werden die Zeilen nach `field_1` in aufsteigender Reihenfolge geordnet. Wenn einige Felder denselben Wert haben, wird diese Teilmenge nach `field_2` in absteigender Reihenfolge geordnet.", + "filter": "Die Zeilen können optional mit denselben Ansichtsfiltern gefiltert werden, die auch für die Ansichten verfügbar sind. Es können mehrere Filter angewandt werden, wenn sie das gleiche Format haben. Die Variablen `field` und `filter` geben an, wie bzw. wo der Filter angewendet werden soll.\n\n#### Mit `user_field_names`:\n\nWenn Sie zum Beispiel optional den folgenden GET-Parameter angeben: `filter__Name__equal=test`, werden nur Zeilen zurückgegeben, in denen der Wert von `Name` gleich 'test' ist. Diese Methode ist abwärtskompatibel und prüft gegen `field_id`, wenn sie am Namen fehlschlägt.\n\n#### Ohne `user_field_names`:\n\nWenn Sie zum Beispiel optional den folgenden GET-Parameter angeben: `filter__field_1__equal=test`, werden nur Zeilen zurückgegeben, bei denen der Wert von `field_1` gleich 'test' ist.\n\nBitte beachten Sie, dass dieser Parameter ignoriert wird, wenn der Parameter filters angegeben wird. ", + "filterLink": "Eine Liste mit allen Filtern finden Sie hier.", + "filterType": "- `AND`: Gibt an, dass die Zeilen allen angegebenen Filtern entsprechen müssen.\n- `OR`: Gibt an, dass die Zeilen nur einem der Filter entsprechen müssen.\n\n Dies funktioniert nur, wenn zwei oder mehr Filter vorhanden sind.", + "include": "Alle Felder werden standardmäßig in die Antwort aufgenommen. Sie können eine Teilmenge der einzuschließenden Felder auswählen, indem Sie den Abfrageparameter include angeben.\n\n #### Mit `user_field_names`:\n\n Include\" sollte eine durch das Komma getrennte Liste von Feldnamen sein, die in die Ergebnisse aufgenommen werden sollen. Wenn Sie zum Beispiel den folgenden GET-Parameter angeben: `include=My Field,-My Field 2`, dann werden nur diese Felder eingeschlossen (es sei denn, sie werden ausdrücklich ausgeschlossen).\n\n Der Name des Feldes, das die Felder enthält, muss mit einem Hinweis versehen werden: `name ,'. Enthält der Feldname Schrägstriche, so müssen diese unter Verwendung des Zeichens `\\` geschützt werden. Ex : `Name \\'.\n\n #### Ohne `user_field_names`:\n\n `include` sollte eine durch das Komma getrennte Liste von `field_` sein, gefolgt von der ID des Feldes, das in die Ergebnisse aufgenommen werden soll. Zum Beispiel: Wenn Sie den folgenden GET-Parameter `include=field_1,field_2` angeben, werden nur die Felder mit der ID `1` und der ID `2` einbezogen (es sei denn, sie werden ausdrücklich ausgeschlossen).", + "exclude": "Alle Felder werden standardmäßig in die Antwort aufgenommen. Sie können eine Untergruppe von Feldern auswählen, die ausgeschlossen werden sollen, indem Sie den Abfrageparameter exclude angeben.\n\n #### Mit \"user_field_names\":\n\n`exclude` sollte eine durch das Komma getrennte Liste von Feldern sein, die von den Ergebnissen ausgeschlossen werden sollen. Wenn Sie zum Beispiel den folgenden GET-Parameter angeben: `exclude=My Field,-My Field 2` dann werden diese Felder ausgeschlossen.\n\n Der Name des Feldes, das die Felder enthält, muss mit einem Hinweis versehen sein: \"name,\". Wenn der Feldname Schrägstriche enthält, müssen diese ebenfalls mit dem Zeichen \"name\" geschützt werden. Ex : `name\\\"`.\n\n #### Ohne `user_field_names`:\n\n `exclude` sollte eine durch das Komma getrennte Liste von `field_` sein, gefolgt von der ID des Feldes, das von den Ergebnissen ausgeschlossen werden soll. Zum Beispiel: Wenn Sie den folgenden GET-Parameter `exclude=field_1,field_2` angeben, werden die Felder mit der id `1` und id `2` ausgeschlossen.", + "viewId": "Standardmäßig werden keine Filter und Sortierungen außerhalb der in den Abfrageparametern definierten angewendet. Sie können die Filter und Sortierungen einer Ansicht hinzufügen, indem Sie deren `id` im GET-Parameter `view_id` angeben. Wenn Sie z. B. den folgenden GET-Parameter angeben: \"view_id=1\", werden die in der Ansicht mit der ID \"1\" definierten Filter und Sortierungen angewandt. Sie können die `view_id` im Kontextmenü einer beliebigen Ansicht finden. Es ist die Zahl in Klammern hinter dem Namen der Ansicht. \n\n #### Mit `filter__{field}__{filter}` \n\n Es werden sowohl der im Abfrageparameter angegebene Filter als auch die in der Ansicht definierten Filter angewendet.\n\n #### Mit `order_by` \n\n Wenn `order_by` angegeben wird, wird die in der Ansicht definierte Sortierung ignoriert.", + "filtersBuilder": "Öffnet den Filter-Parameter-Builder", + "filters": "Die Zeilen können optional mit denselben Ansichtsfiltern gefiltert werden, die auch für die Ansichten verfügbar sind. Dieser Parameter akzeptiert eine serialisierte JSON-Zeichenkette, die den Filterbaum enthält, der auf diese Ansicht anzuwenden ist. Der Filterbaum ist eine verschachtelte Struktur, die die anzuwendenden Filter enthält. \n\n#### Mit `user_field_names`:\n\nEin Beispiel für einen gültigen Filterbaum ist der Folgende: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": \\\"Name\\\", \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`.\n\n#### Ohne `user_field_names`:\n\nWenn Sie zum Beispiel optional den folgenden GET-Parameter angeben: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": 1, \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`\n\nBitte beachten Sie, dass bei Angabe dieses Parameters alle anderen `filter__{field}__{filter}` ignoriert werden, ebenso wie der Parameter \\\"filter_type\\\".", + "join": "Ermöglicht die Abfrage von Feldwerten aus einer Zieltabelle über vorhandene Verknüpfungszeilenfelder. Der Parametername muss der Name eines bestehenden Link-Zeilenfeldes sein, gefolgt von __join. Der Wert sollte eine Liste von Feldnamen sein, für die zusätzliche Werte abgefragt werden sollen. Sie können ein oder mehrere Zielfelder angeben. Es ist nicht möglich, den Wert eines Link-Zeilenfeldes in der Zieltabelle zu suchen.\n\n #### Mit `user_field_names`:\n\n `join` sollte eine durch Komma getrennte Liste von Feldnamen sein, die in die Ergebnisse aufgenommen werden sollen. Zum Beispiel: Wenn Sie den folgenden GET-Parameter `LinkRowField__join=MyField,MyField2` angeben, werden die Werte von `MyField` und `My Field2` in der durch `LinkRowField` verknüpften Tabelle in die Antwort aufgenommen.\n\n#### Ohne `user_field_names`:\n\n `join` sollte eine durch Komma getrennte Liste von `field_` sein, gefolgt von der ID des Feldes, das in die Ergebnisse aufgenommen werden soll. Zum Beispiel: Wenn Sie den folgenden GET-Parameter angeben: `field_1__join=field_2,field_3`, werden die Werte von `field_2` und `field_3` in der mit `field_1` verknüpften Tabelle in die Antwort aufgenommen." + }, + "apiDocsIntro": { + "intro": "Die Datenbank {name} bietet eine einfache Möglichkeit, die Daten in ein beliebiges externes System zu integrieren. Die API folgt der REST-Semantik, verwendet JSON zur Kodierung von Objekten und stützt sich auf Standard-HTTP-Codes sowie maschinen- und menschenlesbare Fehler zur Signalisierung von Operationsergebnissen.", + "autoDocDescription": "Diese Dokumentation wird automatisch auf der Grundlage der in Ihrer Datenbank vorhandenen Tabellen und Felder erstellt. Wenn Sie Änderungen an Ihrer Datenbank, Ihren Tabellen oder Feldern vornehmen, kann es sein, dass sich auch die API-Schnittstelle geändert hat. Stellen Sie daher sicher, dass Sie Ihre API-Implementierung entsprechend aktualisieren.", + "databaseId": "Die ID dieser Datenbank lautet:", + "jsClient": "JavaScript-Beispiel API-Client:", + "pythonClient": "Python-Beispiel API-Client:" + }, + "apiDocsTableListFields": { + "description": "Um Felder der Tabelle {name} aufzulisten, muss eine `GET`-Anfrage an den Endpunkt {name} fields gestellt werden. Es ist nur möglich, die Felder aufzulisten, wenn das Datenbank-Token Lese-, Erstellungs- oder Aktualisierungsberechtigungen hat.", + "resultFieldProperties": "Eigenschaften des Ergebnisfeldes", + "id": "Primärschlüssel des Feldes. Kann verwendet werden, um den Namen der Datenbankspalte durch Hinzufügen des Präfixes `field_` zu generieren.", + "name": "Name des Feldes.", + "tableId": "Zugehörige Tabelle id.", + "order": "Reihenfolge der Felder in der Tabelle. 0 für das erste Feld.", + "primary": "Gibt an, wenn das Feld ein Primärfeld ist. Wenn `true`, kann das Feld nicht gelöscht werden und der Wert sollte die gesamte Zeile repräsentieren.", + "type": "Für dieses Feld definierter Typ.", + "extraProps": "Einige zusätzliche Eigenschaften werden hier nicht beschrieben, da sie typspezifisch sind.", + "readOnly": "Zeigt an, ob das Feld ein schreibgeschütztes Feld ist. Wenn \"true\", kann der Wert der Zelle nicht aktualisiert werden.", + "descriptionField": "Feldbeschreibung" + }, + "apiDocsTableDeleteRow": { + "description": "Löscht eine vorhandene {name} Zeile.", + "rowId": "Der eindeutige Bezeichner der Zeile, die gelöscht werden muss." + }, + "apiDocsTableMoveRow": { + "description": "Verschiebt eine vorhandene Zeile {name} vor eine andere Zeile. Wenn keine `before_id` angegeben wird, dann wird die Zeile an das Ende der Tabelle verschoben.", + "rowId": "Verschiebt die mit dem Wert verbundene Zeile.", + "before": "Verschiebt die Zeile mit der angegebenen `row_id` vor die Zeile mit dem angegebenen Wert. Wenn nicht angegeben, wird die Zeile an das Ende verschoben." + }, + "apiDocsTableUpdateRow": { + "description": "Aktualisiert eine vorhandene {name} Zeile.", + "rowId": "Der eindeutige Bezeichner der Zeile, die aktualisiert werden muss.", + "before": "Wenn angegeben, wird die neu erstellte Zeile vor der Zeile mit der angegebenen id positioniert." + }, + "apiDocsTableCreateRow": { + "description": "Erstellen Sie eine neue {name} Zeile.", + "before": "Wenn angegeben, wird die neu erstellte Zeile vor der Zeile mit der angegebenen id positioniert." + }, + "apiDocsAuth": { + "description": "Baserow verwendet eine einfache tokenbasierte Authentifizierung. Sie müssen mindestens ein Datenbank-Token in Ihrem {settingsLink} erzeugen, um die unten beschriebenen Endpunkte zu verwenden. Es ist möglich, per Token Berechtigungen zum Erstellen, Lesen, Aktualisieren und Löschen bis zur Tabellenebene zu vergeben. Sie können sich bei der API authentifizieren, indem Sie Ihren Token im HTTP-Authorization Bearer Token Header angeben. Alle API-Anfragen müssen authentifiziert sein und über HTTPS erfolgen.", + "settingsLink": "Einstellungen" + }, + "apiDocsFilters": { + "filter": "Filter", + "exampleValue": "Beispielwert", + "example": "Volles Beispiel", + "field": "feld {name}", + "deprecated": "veraltet" + }, + "fieldTextSubForm": { + "placeholder": "Standardtext" + }, + "fieldSingleSelectSubForm": { + "optionsLabel": "Optionen" + }, + "fieldSingleSelectDropdown": { + "notFound": "Option nicht gefunden" + }, + "fieldDateSubForm": { + "dateFormatLabel": "Datumsformat", + "dateFormatEuropean": "Europäisch", + "dateFormatUS": "US", + "dateFormatISO": "ISO", + "includeTimeLabel": "Zeit einbeziehen", + "timeFormatLabel": "Zeitformat", + "24Hour": "24 Stunden", + "12Hour": "12 Stunden", + "showTimezoneLabel": "Zeitzone anzeigen", + "forceTimezoneLabel": "Legen Sie die Zeitzone für alle Mitarbeiter fest", + "forceTimezoneValue": "Zeitzone", + "addTimezoneOffsetLabel": "Werte umrechnen ({utcOffsetDiff} Minuten hinzufügen)", + "subTimezoneOffsetLabel": "Werte umrechnen ({utcOffsetDiff} Minuten subtrahieren)" + }, + "fieldLinkRowSubForm": { + "noTable": "Sie benötigen mindestens eine weitere Tabelle in derselben Datenbank, auf die Sie verweisen können.", + "selectTableLabel": "Wählen Sie eine Tabelle für die Verknüpfung", + "hasRelatedFieldLabel": "Verknüpftes Feld in verknüpfter Tabelle erstellen", + "limitToView": "Auswahl auf Ansicht beschränken", + "limitToViewDescription": "Beachten Sie, dass dies nur visuell ist. Es ist immer noch möglich, Beziehungen außerhalb der Ansicht über die Bezugstabelle oder API herzustellen." + }, + "fieldSelectOptions": { + "add": "Eine Option hinzufügen" + }, + "fieldNumberSubForm": { + "typeLabel": "Typ der Nummer", + "integer": "Integer", + "decimal": "Dezimal", + "decimalPlacesLabel": "Dezimalstellen", + "allowNegative": "Negativ zulassen", + "separatorLabel": "Tausender- und Dezimaltrennzeichen", + "prefixPlaceholder": "Präfix", + "suffixPlaceholder": "Suffix", + "prefixAndSuffixLabel": "Präfix / Suffix", + "spaceComma": "Leerzeichen, Komma (1 000 000,00)", + "spacePeriod": "Leerzeichen, Punkt (1 000 000.00)", + "commaPeriod": "Komma, Leerzeichen (1,000,000.00)", + "periodComma": "Punkt, Komma (1.000.000,00)", + "noFormatting": "Keine Formatierung" + }, + "fieldContext": { + "editField": "Feld bearbeiten", + "deleteField": "Feld löschen", + "hideField": "Feld ausblenden", + "showField": "Feld anzeigen", + "changePrimaryField": "Primäres Feld ändern" + }, + "fieldForm": { + "name": "Name", + "fieldAlreadyExists": "Ein Feld mit diesem Namen existiert bereits.", + "nameNotAllowed": "Dieser Feldname ist nicht zulässig.", + "nameTooLong": "Der Name dieses Feldes ist zu lang.", + "description": "Beschreibung", + "addDescription": "Beschreibung hinzufügen" + }, + "fieldLookupSubForm": { + "noTable": "Sie benötigen mindestens ein Verknüpfungszeilenfeld, um ein Nachschlagefeld zu erstellen.", + "selectThroughFieldLabel": "Wählen Sie ein Link-Zeilenfeld", + "selectTargetFieldLabel": "Wählen Sie ein Feld zum Nachschlagen" + }, + "fieldFormulaNumberSubForm": { + "typeLabel": "Typ der Nummer", + "integer": "Integer", + "decimal": "Dezimal", + "decimalPlacesLabel": "Dezimalstellen", + "allowNegative": "Negativ zulassen" + }, + "fieldRatingSubForm": { + "maxValue": "Max", + "color": "Farbe", + "style": "Stil" + }, + "rowCreateModal": { + "addField": "Feld hinzufügen" + }, + "selectRowContent": { + "search": "Zeilen suchen" + }, + "rowEditModal": { + "addField": "Feld hinzufügen", + "showHiddenFields": "Ausgeblendete Felder anzeigen", + "hideHiddenFields": "Versteckte Felder ausblenden" + }, + "rowEditFieldMultipleSelect": { + "addOption": "Wähle eine Option" + }, + "rowEditFieldFile": { + "addFile": "Eine Datei hinzufügen", + "sizes": { + "0": "Bytes", + "1": "KB", + "2": "MB", + "3": "GB", + "4": "TB", + "5": "PB" + } + }, + "rowEditFieldLinkRow": { + "addLink": "Wählen Sie einen Link" + }, + "tableCSVImporter": { + "chooseFileLabel": "CSV-Datei auswählen", + "chooseFileDescription": "Sie können eine vorhandene CSV-Datei importieren, indem Sie die .CSV-Datei mit den Tabellendaten hochladen. Mit den meisten Tabellenkalkulationsprogrammen können Sie Ihre Kalkulationstabelle als CSV-Datei exportieren.", + "chooseFile": "CSV-Datei auswählen", + "columnSeparator": "Spaltentrenner", + "recordSeparator": "Datensatz-Trennzeichen", + "unitSeparator": "Elementarteiler", + "encoding": "Kodierung", + "firstRowHeader": "Erste Zeile ist Kopfzeile", + "limitFileSize": "Die maximale Dateigröße beträgt {limit}MB.", + "limitError": "Es ist nicht möglich, mehr als {limit} Zeilen zu importieren.", + "emptyCSV": "Diese CSV-Datei ist leer." + }, + "tableForm": { + "name": "Name" + }, + "tableXMLImporter": { + "fileLabel": "XML-Datei auswählen", + "fileDescription": "Sie können eine bestehende XML-Datei importieren, indem Sie die XML-Datei mit tabellarischen Daten hochladen, d.h.:", + "chooseButton": "XML-Datei auswählen", + "processingError": "Bei der Verarbeitung von XML ist ein Fehler aufgetreten: {errors}", + "emptyError": "Diese XML-Datei ist leer.", + "limitFileSize": "Die maximale Dateigröße beträgt {limit}MB.", + "limitError": "Es ist nicht möglich, mehr als {limit} Zeilen zu importieren." + }, + "tableJSONImporter": { + "fileLabel": "JSON-Datei auswählen", + "fileDescription": "Sie können eine vorhandene JSON-Datei importieren, indem Sie die .json-Datei mit tabellarischen Daten hochladen, d.h.:", + "chooseButton": "JSON-Datei auswählen", + "encodingLabel": "Kodierung", + "processingError": "Beim Analysieren von JSON ist ein Fehler aufgetreten: {error}", + "arrayError": "Die JSON-Datei ist kein Arrangement.", + "emptyError": "Diese JSON-Datei ist leer.", + "limitFileSize": "Die maximale Dateigröße beträgt {limit}MB.", + "limitError": "Es ist nicht möglich, mehr als {limit} Zeilen zu importieren." + }, + "tablePasteImporter": { + "pasteLabel": "Einfügen der Tabellendaten", + "pasteDescription": "Sie können die Zellen aus einer Kalkulationstabelle kopieren und unten einfügen.", + "firstRowHeader": "Erste Zeile ist Kopfzeile", + "limitError": "Es ist nicht möglich, mehr als {limit} Zeilen zu importieren." + }, + "importFileModal": { + "title": "Neue Tabelle erstellen", + "importLabel": "Möchten Sie vorhandene Daten importieren?", + "newTable": "Beginnen Sie mit einer neuen Tabelle", + "addButton": "Tabelle hinzufügen", + "uploading": "Hochladen...", + "preparing": "Daten werden vorbereitet...", + "importError": "Beim Dateiimport ist etwas schief gelaufen", + "statePreValidation": "Validierung von Daten...", + "stateCreateTable": "Tabelle wird erstellt...", + "reportMessage": "Die folgenden Zeilenindizes konnten nicht importiert werden:", + "additionalImportTitle": "In {table} importieren", + "showTable": "Tabelle anzeigen", + "importButton": "Importieren", + "openCreatedTable": "Erstellte Tabelle öffnen", + "showReport": "Fehlerbericht anzeigen", + "stateRowCreation": "Importieren...", + "fieldMappingTitle": "Feldzuordnung", + "fieldMappingDescription": "Wir haben die Spalten der Baserow-Felder in Ihrer Tabelle automatisch zugewiesen. Sie können sie unten ändern. Jede nicht kompatible Zelle bleibt nach dem Import leer.", + "selectImportMessage": "Bitte wählen Sie die zu importierenden Daten aus.", + "reportTitleSuccess": "Import erfolgreich, aber...", + "reportTitleFailure": "Fehlerhafte Zeilen", + "filePreview": "Vorschau des Dateiinhalts", + "importPreview": "Importvorschau", + "changeImporterType": "Importtyp ändern", + "defaultName": "Tabelle" + }, + "formulaAdvancedEditContext": { + "textAreaFormulaInputPlaceholder": "Klicken Sie zum Bearbeiten der Formel", + "fields": "Felder", + "functions": "Funktionen", + "operators": "Operatoren", + "fieldType": "Ein {type} Feld" + }, + "fieldFormulaInitialSubForm": { + "formulaInputPlaceholder": "Klicken Sie zum Bearbeiten der Formel", + "refreshFormulaOptions": "Formeloptionen aktualisieren" + }, + "formulaFieldItemDescription": { + "syntax": "Syntax", + "examples": "Beispiele" + }, + "viewSearchContext": { + "searchInRows": "Suche in allen Zeilen", + "hideNotMatching": "nicht übereinstimmende Zeilen ausblenden" + }, + "viewsContext": { + "searchView": "Suchen nach Ansichten", + "noViews": "Keine Ansichten gefunden", + "collaborative": "Kollaborativ" + }, + "viewFilterTypeLinkRow": { + "unnamed": "unbenannte Zeile {value}", + "choose": "Reihe auswählen" + }, + "viewFilterContext": { + "addFilter": "Filter hinzufügen", + "disableAllFilters": "alle deaktiviert", + "noFilterTitle": "Sie haben noch keinen Filter erstellt", + "noFilterText": "Mit Hilfe von Filtern können Sie Zeilen anzeigen, die auf Ihre Bedingungen zutreffen.", + "where": "Wo", + "and": "Und", + "or": "Oder", + "relatedFieldNotFound": "Das zugehörige Feld wurde nicht gefunden.", + "filterTypeNotFound": "Der Filtertyp ist nicht kompatibel.", + "noCompatibleFilterTypesErrorTitle": "Keine kompatiblen Filtertypen", + "noCompatibleFilterTypesErrorMessage": "Keines Ihrer Felder hat einen kompatiblen Filtertyp", + "addFilterGroup": "Filtergruppe hinzufügen" + }, + "viewFilterTypeFileTypeDropdown": { + "image": "Bild", + "document": "Dokument" + }, + "createViewModal": { + "createNew": "Neue {Ansicht} erstellen", + "add": "Hinzufügen {view}" + }, + "shareViewLink": { + "shareView": "{viewTypeSharingLinkName} teilen", + "shareViewTitle": "Sie haben die Ansicht noch nicht geteilt", + "sharedViewTitle": "Dieser {ViewTypeSharingLinkName} ist derzeit über einen privaten Link freigegeben", + "sharedViewDescription": "Personen, die den Link haben, können den {ViewTypeSharingLinkName} sehen.", + "disableLink": "Freigegebenen Link deaktivieren", + "generateNewUrl": "neue Url generieren", + "copyURL": "URL kopieren", + "DisablePassword": "Zugriff ist passwortgeschützt", + "EnablePassword": "Beschränken Sie den Zugriff mit einem Passwort", + "ChangePassword": "Ändern", + "createPrivateLink": "Einen privaten Link erstellen", + "shareViewText": "Ein privater, gemeinsam nutzbarer Link erlaubt es jedem, die Daten in dieser Ansicht zu sehen.", + "notSharedYetText": "Erlauben Sie jedem, die Daten in dieser Ansicht zu sehen, oder synchronisieren Sie Ereignisse mit Ihrem externen Kalender." + }, + "viewSortContext": { + "noSortTitle": "Sie haben noch keine Sortierungen erstellt", + "noSortText": "Mit Sortierungen können Sie Zeilen nach einem Feld sortieren.", + "sortBy": "Sortieren nach", + "thenBy": "Dann durch", + "addSort": "ein Feld zum Sortieren auswählen" + }, + "viewSort": { + "sort": "Sortieren | 1 Sortieren | {count} Sortiert" + }, + "viewRotateSlugModal": { + "title": "URL aktualisieren", + "refreshWarning": "Sind Sie sicher, dass Sie die URL von {viewName} aktualisieren möchten? Nach der Aktualisierung wird eine neue URL generiert und es ist nicht möglich, über die alte URL auf {viewTypeSharingLinkName} zuzugreifen. Alle Personen, für die Sie die URL freigegeben haben, können nicht mehr auf {viewTypeSharingLinkName} zugreifen.", + "generateNewURL": "Neue URL generieren" + }, + "viewFieldsContext": { + "coverField": "Coverfeld", + "noCover": "Kein Cover", + "search": "Felder durchsuchen", + "hideAll": "Alle ausblenden", + "showAll": "Alle anzeigen" + }, + "viewFilterTypeBoolean": { + "selected": "Ausgewählte" + }, + "viewFilter": { + "filter": "Filter | 1 Filter | {count} Filters", + "hasAllValuesEqual": "hat alle Werte gleich", + "hasValueHigherThanOrEqual": "hat einen Wert größer oder gleich", + "hasValueLowerThan": "hat einen Wert kleiner als", + "hasValueLowerThanOrEqual": "hat einen Wert kleiner oder gleich", + "hasNotValueHigherThan": "hat keinen Wert größer als", + "hasValueHigherThan": "hat einen Wert größer als", + "hasNotValueHigherThanOrEqual": "hat keinen Wert größer oder gleich", + "hasNotValueLowerThan": "hat keinen Wert kleiner als", + "hasNotValueLowerThanOrEqual": "hat keinen Wert kleiner oder gleich" + }, + "viewContext": { + "exportView": "Ansicht exportieren", + "renameView": "Ansicht umbenennen", + "deleteView": "Ansicht löschen", + "webhooks": "Webhooks", + "duplicateView": "Ansicht duplizieren", + "importFile": "Datei importieren", + "toCollaborative": "Zu Kollaborativ", + "toPersonal": "Zu Persönlich" + }, + "deleteViewModal": { + "title": "Löschen {name}", + "description": "Sind Sie sicher, dass Sie die Ansicht {name} löschen möchten? Die Tabellendaten bleiben erhalten, aber die Filter, Sortierungen und Feldbreiten, die mit der Ansicht verbunden sind, werden gelöscht.", + "delete": "Ansicht löschen" + }, + "viewForm": { + "name": "Name", + "whoCanEdit": "Wer kann bearbeiten" + }, + "galleryViewHeader": { + "customizeCards": "Karten individuell gestalten" + }, + "gridViewHide": { + "hideField": "Felder ausblenden | 1 verstecktes Feld | {count} versteckte Felder" + }, + "gridViewFieldType": { + "createFilter": "Filter erstellen", + "sortField": "Sortieren", + "hideField": "Feld ausblenden", + "insertLeft": "Links einfügen", + "insertRight": "Rechts einfügen", + "duplicate": "Feld duplizieren", + "dataSyncField": "Das Feld ist schreibgeschützt und Teil des Datenabgleichs der Tabelle." + }, + "gridViewRow": { + "rowNotMatchingFilters": "Zeile entspricht nicht den Filtern", + "rowNotMatchingSearch": "Zeile stimmt nicht mit Suche überein", + "rowHasMoved": "Zeile hat sich verschoben" + }, + "gridView": { + "insertRowAbove": "Zeile oben einfügen", + "insertRowBelow": "Zeile unten einfügen", + "enlargeRow": "Zeile vergrößern", + "deleteRow": "Zeile löschen", + "rowCount": "Keine Zeilen | 1 Zeile | {count} Zeilen", + "selectRow": "Zeile auswählen", + "duplicateRow": "Zeile duplizieren", + "deleteRows": "Zeilen löschen", + "copyCells": "Zellen kopieren", + "hiddenRowsInsertedTitle": "Zeilen hinzugefügt", + "hiddenRowsInsertedMessage": "{number} neu hinzugefügte Zeilen wurden hinzugefügt, sind aber wegen der aktiven Filter nicht sichtbar.", + "tooManyItemsDescription": "Es ist nicht möglich, mehr als {limit} Zeilen auf einmal zu aktualisieren, also wurde nur die erste Zeile aktualisiert.", + "copyRowURL": "Zeilen-URL kopieren", + "copiedRowURL": "Zeilen-URL kopiert", + "copiedRowURLMessage": "Die URL aus Zeile {id} wurde in die Zwischenablage kopiert.", + "tooManyItemsTitle": "Zu viele Elemente", + "AIValuesGenerationErrorTitle": "Werterstellung mittels KI fehlgeschlagen", + "AIValuesGenerationErrorMessage": "Bitte überprüfen Sie Ihren API_KEY und das ausgewählte Modell.", + "generateCellsValues": "Mit KI Werte generieren", + "copyCellsWithHeader": "Zellen mit Kopfbereich kopieren" + }, + "gridViewFieldLinkRow": { + "unnamed": "unbenannte Zeile {value}" + }, + "gridViewIdentifierOptions": { + "id": "Spalten Identifikator", + "count": "Spalten Position" + }, + "previewAny": { + "externalWarning": "Wenn Sie Ihre Datei über einen externen Dienst öffnen, wird Ihre Datei auf dessen Servern veröffentlicht." + }, + "exportTableModal": { + "failedTitle": "Export fehlgeschlagen", + "failedDescription": "Der Export ist aufgrund eines Serverfehlers fehlgeschlagen.", + "cancelledTitle": "Export abgebrochen", + "cancelledDescription": "Die Exportaktion wurde abgebrochen.", + "title": "{name} exportieren" + }, + "exporterTypeChoices": { + "formatLabel": "In welches Format möchten Sie exportieren?" + }, + "exportTableForm": { + "viewLabel": "Wählen Sie die zu exportierende Ansicht aus:", + "typeError": "Kein Exporttyp verfügbar, bitte wählen Sie eine andere Ansicht oder eine ganze Tabelle." + }, + "exportTableLoadingBar": { + "export": "Exportieren", + "download": "Herunterladen" + }, + "exportTableDropdown": { + "exportEntireTable": "Gesamte Tabelle exportieren" + }, + "tableCSVExporter": { + "columnSeparatorLabel": "Spaltentrenner", + "recordSeparator": "Datensatz-Trennzeichen", + "unitSeparator": "Teilgruppentrennzeichen", + "encodingLabel": "Kodierung", + "firstRowIsHeaderLabel": "Erste Zeile ist Kopfzeile", + "includeHeader": "Feldnamen als Überschrift einfügen" + }, + "apiDocsDatabase": { + "pageTitle": "{name} Datenbank-API-Dokumentation", + "back": "Zurück zum Dashboard", + "openDatabase": "Datenbank öffnen" + }, + "apiDocsComponent": { + "title": "REST API", + "intro": "Nachdem Sie Ihr Datenbankschema und Ihren API-Schlüssel im {settingsLink} erstellt haben, bietet Ihre Baserow-Datenbank eigene REST-API-Endpunkte zum Erstellen, Lesen, Aktualisieren und Löschen von Zeilen.", + "settings": "Einstellungen", + "selectApplicationTitle": "Für welche Datenbank möchten Sie die Dokumentation sehen?", + "signIn": "Anmelden, um zu starten", + "back": "Zurück zum Dashboard" + }, + "viewAggregationType": { + "min": "Min", + "max": "Max", + "earliestDate": "Frühestes Datum", + "checkedCount": "Geprüft", + "notCheckedCount": "Ungeprüft", + "checkedPercentage": "Prozent markiert", + "notCheckedPercentage": "Prozentsatz nicht geprüft", + "earliestDateShort": "Früheste", + "latestDate": "Letztes Datum", + "latestDateShort": "Letztes", + "uniqueCount": "Eindeutig", + "sum": "Summe", + "median": "Median", + "stdDev": "Standardabweichung", + "variance": "Varianz", + "average": "Durchschnitt", + "stdDevShort": "Std Abw", + "emptyCount": "(Leer)", + "notEmptyCount": "Gefüllt", + "emptyPercentage": "Prozent leer", + "notEmptyPercentage": "Prozent gefüllt", + "count": "Anzahl" + }, + "databaseForm": { + "importLabel": "Möchten Sie vorhandene Daten importieren?", + "emptyLabel": "Neu anfangen", + "airtableLabel": "Importieren von Airtable (beta)" + }, + "importFromAirtable": { + "airtableShareLinkTitle": "Teilen Sie einen Link zu Ihrer Basis", + "airtableShareLinkBeta": "Beachten Sie, dass sich diese Funktion noch in Beta befindet. Ihre Tabellen, Felder (außer formula, lookup, und count) und Daten werden importiert. Ihre Views werden nicht importiert.", + "airtableShareLinkPaste": "Den Link hier einfügen", + "importButtonLabel": "Importieren von Airtable", + "openButtonLabel": "Importierte Datenbank öffnen", + "importError": "Etwas ist schief gelaufen", + "statePending": "Warten", + "stateFailed": "Fehlgeschlagen", + "stateFinished": "Abgeschlossen", + "stateDownloadingBase": "Herunterladen das Baseschemas", + "stateConverting": "Konvertierung zu Baserow", + "stateDownloadingFiles": "Herunterladen von Dateien", + "stateImporting": "Importieren", + "stateImportingTable": "Tabelle importieren {table}", + "airtableShareLinkDescription": "Um Ihre Airtable Base zu importieren, müssen Sie einen Link zu Ihrer gesamten Base haben. Klicken Sie in Airtable auf die \"Share\" taste in der oberen rechten Ecke, nachdem Sie Ihre Base geöffnet haben. Danach müssen Sie die Option \"Access to base\" wählen. Im modal drücken Sie auf \"Create a shared link to the whole base\" und dann auf \"Private read-only link\". Kopieren Sie den Link und fügen Sie ihn in das unten stehende Feld ein.", + "errorJobAlreadyRunningTitle": "Schon läuft", + "errorJobAlreadyRunningDescription": "Ein weiterer Importauftrag ist bereits in Arbeit. Sie müssen abwarten, bis dieser Vorgang abgeschlossen ist, bevor Sie einen weiteren beginnen.", + "linkError": "Der Link sollte wie folgt aussehen: https://airtable.com/shrxxxxxxxxxxxxxxx" + }, + "chooseSingleSelectField": { + "addSelectField": "Einzelnes Auswahlfeld hinzufügen", + "warningWhenNothingToChooseOrCreate": "Es gibt keine einzelnen Auswahlfelder, aus denen Sie auswählen können, und Sie haben keine Berechtigung, eines zu erstellen." + }, + "shareViewEnablePasswordModal": { + "newPasswordTitle": "Geben Sie ein Passwort ein", + "changePasswordSave": "Passwort ändern", + "newPasswordSave": "Passwort setzen", + "changePasswordTitle": "Passwort ändern", + "changePasswordDescription": "Durch das Ändern des Passworts funktioniert das vorherige nicht mehr. Dieses Passwort wird verschlüsselt gespeichert.", + "newPasswordDescription": "Der öffentliche Link ist erst nach Eingabe des Passworts zugänglich. Dieses Passwort wird verschlüsselt gespeichert." + }, + "shareViewDisablePasswordModal": { + "title": "Passwortschutz deaktivieren", + "description": "Möchten Sie den Passwortschutz für diesen öffentlichen Link wirklich deaktivieren? Durch die Deaktivierung wird das Passwort gelöscht und kann nicht wiederhergestellt werden", + "disable": "Deaktivieren" + }, + "publicViewAuthLogin": { + "title": "Diese Seite ist passwortgeschützt", + "enter": "Eingeben", "error": { - "title": "Ein Fehler ist aufgetreten", - "message": "Beim Abrufen der angrenzenden Zeile ist ein Fehler aufgetreten" + "incorrectPasswordTitle": "Falsches Passwort", + "incorrectPasswordText": "Das angegebene Passwort ist falsch." + }, + "description": "Geben Sie das richtige Passwort ein, um auf die Seite zuzugreifen." + }, + "viewDecoratorContext": { + "addDecorator": "Verzierung hinzufügen" + }, + "viewDecorator": { + "decorator": "Farbe | 1 Farbe | {count} Farben" + }, + "apiDocsTableUpdateRows": { + "description": "Aktualisiert bestehende {name} Zeilen.", + "id": "Die Zeilen-ID." + }, + "apiDocsTableCreateRows": { + "before": "Falls angegeben, werden die neu erstellten Zeilen vor der Zeile mit der angegebenen id positioniert.", + "description": "Neue Zeilen {name} erstellen." + }, + "importer": { + "loading": "Datei wird geladen", + "decoding": "Dekodierung von Daten", + "inProgress": "In Arbeit...", + "parsing": "Analysieren von Daten", + "preparing": "Aufbereitung der Daten", + "fieldDefaultName": "Feld {count}" + }, + "apiDocsTableDeleteRows": { + "description": "Löscht die vorhandenen Zeilen {name}.", + "items": "Ein Array von Zeilennummern, die gelöscht werden sollen." + }, + "formViewMeta": { + "includeRowId": "Verwenden Sie {row_id}, um die neu erstellte Zeilen-ID in die URL aufzunehmen." + }, + "databaseDashboardSidebarLinks": { + "apiDocumentation": "API-Dokumentation" + }, + "formViewField": { + "required": "erforderlich", + "showWhenMatchingConditions": "anzeigen, wenn die Bedingungen erfüllt sind", + "addCondition": "Bedingung hinzufügen", + "descriptionPlaceholder": "Beschreibung", + "addConditionGroup": "Bedingungsgruppe hinzufügen", + "showFieldAs": "Feld anzeigen als" + }, + "duplicateFieldContext": { + "duplicate": "Feld duplizieren", + "cloneData": "Daten kopieren", + "soon": "In Kürze verfügbar", + "readOnlyField": "Die Zellenwerte werden automatisch ausgefüllt." + }, + "snapshotsModal": { + "descriptionLimits": "Sie können maximal {n} Snapshots pro Arbeitsbereich haben. | Sie können maximal {n} Snapshots pro Arbeitsbereich haben. | Sie können maximal {n} Snapshots pro Arbeitsbereich haben.", + "createLabel": "Erstelle einen neuen Snapshot", + "description": "Snapshots sind eine vollständige Kopie von {applicationTypeName} zu dem Zeitpunkt, an dem sie erstellt wurde. Bei der Wiederherstellung wird ein Duplikat dieser Daten erstellt. Snapshots werden nach einem Jahr automatisch gelöscht.", + "create": "Snapshot erstellen", + "snapshotRestoredErrorTitle": "Ein Fehler ist aufgetreten", + "title": "snapshots", + "snapshotRestoredErrorMessage": "Der Snapshot konnte nicht wiederhergestellt werden. Bitte versuchen Sie es später noch einmal.", + "snapshotDeletedErrorTitle": "Fehler aufgetreten", + "snapshotDeletedErrorMessage": "Der Snapshot konnte nicht gelöscht werden. Bitte versuchen Sie es später noch einmal.", + "limitReached": "Das Limit der maximalen Snapshots wurde erreicht.", + "snapshot": "Snapshot", + "importingState": "Erstellen", + "reset": "Erstellen eines weiteren" + }, + "snapshotListItem": { + "created": "erstellt", + "restore": "wiederherstellen", + "delete": "Löschen" + }, + "deleteSnapshotModal": { + "title": "Snapshot löschen", + "content": "Sind Sie sicher, dass Sie den Snapshot {name} dauerhaft löschen möchten?", + "confirm": "Löschen" + }, + "duplicateTableJobType": { + "duplicating": "Duplizieren", + "duplicatedTitle": "Tabelle dupliziert", + "name": "Tabelle duplizieren" + }, + "formViewModePreviewForm": { + "titlePlaceholder": "Titel", + "descriptionPlaceholder": "Beschreibung", + "addCoverImage": "Ein Titelbild hinzufügen", + "addLogo": "Ein Logo hinzufügen", + "noFields": "Dieses Formular hat noch keine Felder. Klicken Sie auf ein Feld in der linken Seitenleiste, um eines hinzuzufügen." + }, + "apiDocsUploadFile": { + "description": "Lädt eine Datei auf Baserow hoch, indem der Dateiinhalt direkt hochgeladen wird. Es wird ein Multipart `file` erwartet, der den Inhalt der Datei enthält. Die Antwort kann dann zum [Hochladen einer Datei in eine Zeile]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row) verwendet werden.", + "file": "Der `file` Multipart, der den Dateiinhalt enthält." + }, + "table": { + "chooseView": "Ansicht wählen", + "adjacentRow": { + "notification": { + "notFound": { + "previous": { + "title": "Keine Zeilen mehr", + "message": "Es gibt keine vorherige Zeile" + }, + "next": { + "message": "Es gibt keine nächste Zeile", + "title": "Keine Zeilen mehr" + } + }, + "error": { + "title": "Fehler aufgetreten", + "message": "Beim Abrufen der angrenzenden Zeile ist ein Fehler aufgetreten" + } + }, + "toast": { + "notFound": { + "previous": { + "message": "Es gibt keine vorherige Zeile", + "title": "Keine Zeilen mehr" + }, + "next": { + "title": "Keine Zeilen mehr", + "message": "Es gibt keine nächste Zeile" + } + }, + "error": { + "title": "Ein Fehler ist aufgetreten", + "message": "Beim Abrufen der angrenzenden Zeile ist ein Fehler aufgetreten" + } + } } - } + }, + "fieldmultipleCollaboratorsDropdown": { + "notFound": "Mitarbeiter nicht gefunden" + }, + "formViewHeader": { + "preview": "Vorschau", + "mode": "Modus", + "fields": "Felder" + }, + "apiDocsUploadFileViaURL": { + "description": "Lädt eine Datei in Baserow hoch, indem es sie von der angegebenen URL herunterlädt. Die Antwort kann dann zum [Hochladen einer Datei in eine Zeile]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row) verwendet werden.", + "url": "Die URL, die Baserow in Ihrem Namen herunterladen und hochladen soll." + }, + "rowEditFieldMultipleCollaborators": { + "addCollaborator": "Wählen Sie einen Mitarbeiter" + }, + "gridViewFieldFile": { + "dropFileHere": "Dateien hier ablegen", + "dropHere": "Hier ablegen" + }, + "formViewModeType": { + "form": "Formular", + "formDescription": "Alle Felder sind sichtbar und vertikal gestapelt." + }, + "fileField": { + "errorEmptyFileNameMessage": "Sie können keinen leeren Namen für eine Datei angeben.", + "errorEmptyFileNameTitle": "Ungültiger Dateiname" + }, + "gridViewRowsAddContext": { + "title": "Mehrere Zeilen erstellen", + "choice": "Fügen Sie {rowAmountChoice} Zeilen hinzu" + }, + "viewOwnershipType": { + "personal": "Persönlich", + "collaborative": "Kollaborativ" + }, + "fieldSelectThroughFieldSubForm": { + "noTable": "Sie benötigen mindestens einen Link zum Tabellenfeld, um dieses Feld zu erstellen.", + "selectThroughFieldLabel": "Wählen Sie eine Verknüpfung zum Tabellenfeld aus" + }, + "fieldRollupSubForm": { + "selectTargetFieldLabel": "Wählen Sie ein Feld aus, für das ein Rollup durchgeführt werden soll", + "label": "Rollup-Funktion" + }, + "viewGroupByContext": { + "noGroupByText": "Zeilen nach einem Feld gruppieren.", + "groupBy": "Gruppieren nach", + "thenBy": "dann nach", + "addGroupBy": "Wählen Sie ein Feld, nach dem gruppiert werden soll", + "noGroupByTitle": "Sie haben noch keine Gruppierungen erstellt" + }, + "viewGroupBy": { + "groupBy": "Gruppieren | Gruppieren nach 1 Feld | Gruppieren nach {count} Feldern" + }, + "apiDocsFiltersBuilderModal": { + "userFieldNames": "Benutzerfeld-Namen", + "queryParameter": "Abfrageparameter", + "json": "JSON", + "title": "Filter-Parameter-Builder" + }, + "rowHistorySidebar": { + "name": "Historie", + "empty": "Noch keine Änderungen. Sie können alle Änderungen an dieser Zeile hier verfolgen.", + "you": "Sie" + }, + "fieldDurationSubForm": { + "durationFormatLabel": "Format der Dauer" + }, + "viewFieldConditionsForm": { + "addCondition": "Bedingung hinzufügen", + "addConditionGroup": "Bedingungsgruppe hinzufügen" + }, + "fieldCollaboratorSubForm": { + "notifyUserWhenAdded": "Benutzer beim Hinzufügen benachrichtigen" + }, + "collaboratorAddedToRowNotification": { + "title": "{sender} hat Sie dem {fieldName} in Zeile {rowId} in {tableName} zugewiesen", + "deletedUser": "Gelöschter Benutzer" + }, + "formSubmittedNotification": { + "title": "{formName} wurde in Tabelle {tableName} abgesendet:", + "moreValues": "0 | und 1 weiteres Feld. | und {count} weitere Felder." + }, + "fieldLongTextSubForm": { + "enableRichTextFormatting": "Rich-Text-Formatierung aktivieren" + }, + "rowHistoryFieldPassword": { + "passwordSet": "Das Passwort wurde festgelegt", + "passwordUpdated": "Das Passwort wurde aktualisiert", + "passwordDeleted": "Das Passwort wurde entfernt" + }, + "dataProviderTypes": { + "fieldsName": "Felder" + }, + "databaseScratchTrackStep": { + "teamsRow3": "Marketing", + "tasks": "Aufgaben", + "tasksRow1": "Logo-Redesign", + "tasksRow2": "E-Mail versenden", + "tasksRow3": "Blogpost schreiben", + "campaigns": "Kampagnen", + "tableName": "Tabellenname", + "productsRow2": "Kundenbefragung", + "productsRow3": "Bezahlte Anzeigenkampagne", + "teams": "Teams", + "teamsRow1": "Verkauf", + "teamsRow2": "Personalwesen", + "campaignsRow1": "Sommerschlussverkauf", + "campaignsRow2": "Treueprämien", + "title": "Was möchten Sie verfolgen?", + "campaignsRow3": "Marken-Relaunch", + "productsRow1": "Rebranding-Website", + "description": "Wählen Sie aus gängigen Anwendungsfällen oder erstellen Sie Ihre eigenen.", + "addYourOwn": "Erstellen Sie Ihren eigenen", + "rowName": "Zeilenname", + "thisIncludes": "Das beinhaltet:", + "projects": "Projekte" + }, + "fieldPasswordSubForm": { + "description": "Es ist noch nicht möglich, direkt etwas mit dem Passwortfeld zu tun. Dieses wird nur von der Benutzerauthentifizierung im Application Builder verwendet." + }, + "rowEditFieldPassword": { + "setPassword": "Passwort festlegen" + }, + "databaseImportStep": { + "title": "Importieren Sie Ihre Daten", + "description": "Verschieben Sie Ihre Daten mit nur wenigen Klicks in Baserow.", + "tableNameLabel": "Tabellenname" + }, + "databaseStep": { + "scratch": "Von Grund auf", + "import": "Aus einer Datei", + "title": "Erstellen Sie Ihre erste Datenbank", + "airtable": "Von Airtable", + "databaseNameLabel": "Datenbankname", + "description": "Lassen Sie uns wissen, woran Sie gerade arbeiten." + }, + "userMentionInRichTextFieldNotification": { + "deletedUser": "Ein gelöschter Benutzer", + "title": "{sender} hat Sie in Feld {fieldName} aus Zeile {rowId} in {tableName} erwähnt" + }, + "ViewFilterTypeDateUpgradeToMultiStep": { + "migrateButtonText": "Umstellung auf mehrstufigen Datumsfilter", + "migrateButtonTooltip": "Neuer Filter verfügbar. Zum Aktualisieren anklicken. Er funktioniert genauso." + }, + "createTableModal": { + "title": "Neue Tabelle anlegen", + "defaultName": "Tabelle", + "importLabel": "Möchten Sie bestehende Daten importieren?", + "newTable": "Starten Sie mit einer neuen Tabelle" + }, + "createTable": { + "showTable": "Tabelle anzeigen", + "addButton": "Tabelle hinzufügen", + "uploading": "Lade hoch...", + "preparing": "Bereite Daten vor...", + "importError": "Beim Import der Datei ist etwas schiefgelaufen", + "stateRowCreation": "Importiere...", + "statePreValidation": "Prüfe Daten...", + "stateCreateTable": "Erstelle Tabelle..." + }, + "importErrorReport": { + "reportTitleSuccess": "Import war erfolgreich, allerdings...", + "reportMessage": "Die folgenden Zeilenindizes konnten nicht importiert werden:", + "reportTitleFailure": "Fehlgeschlagene Zeilen" + }, + "formViewMetaControls": { + "showMessage": "Eine Nachricht anzeigen", + "theMessage": "Die Nachricht", + "theURL": "Die URL", + "whenSubmittedLabel": "Wenn das Formular abgeschickt wurde", + "urlRedirect": "Weiterleiten zu einer URL" + }, + "createViewLink": { + "inCompatibleWithDataSync": "Dieser Ansichtstyp ist nicht mit einer Datenabgleichs-Tabelle kompatibel." } - }, - "fieldmultipleCollaboratorsDropdown": { - "notFound": "Mitarbeiter nicht gefunden" - }, - "formViewHeader": { - "preview": "Vorschau", - "mode": "Modus", - "fields": "Felder" - }, - "apiDocsUploadFileViaURL": { - "description": "Lädt eine Datei in Baserow hoch, indem es sie von der angegebenen URL herunterlädt. Die Antwort kann dann zum [Hochladen einer Datei in eine Zeile]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row) verwendet werden.", - "url": "Die URL, die Baserow in Ihrem Namen herunterladen und hochladen soll." - }, - "rowEditFieldMultipleCollaborators": { - "addCollaborator": "Wählen Sie einen Mitarbeiter" - }, - "gridViewFieldFile": { - "dropFileHere": "Dateien hier ablegen", - "dropHere": "Hier ablegen" - }, - "formViewModeType": { - "form": "Formular", - "formDescription": "Alle Felder sind sichtbar und vertikal gestapelt." - }, - "fileField": { - "errorEmptyFileNameMessage": "Sie können keinen leeren Namen für eine Datei angeben.", - "errorEmptyFileNameTitle": "Ungültiger Dateiname" - }, - "gridViewRowsAddContext": { - "title": "Mehrere Zeilen erstellen", - "choice": "Fügen Sie {rowAmountChoice} Zeilen hinzu" - }, - "viewOwnershipType": { - "personal": "Persönlich", - "collaborative": "Kollaborativ" - }, - "fieldSelectThroughFieldSubForm": { - "noTable": "Sie benötigen mindestens einen Link zum Tabellenfeld, um dieses Feld zu erstellen.", - "selectThroughFieldLabel": "Wählen Sie eine Verknüpfung zum Tabellenfeld aus" - }, - "fieldRollupSubForm": { - "selectTargetFieldLabel": "Wählen Sie ein Feld aus, für das ein Rollup durchgeführt werden soll", - "label": "Rollup-Funktion" - }, - "viewGroupByContext": { - "noGroupByText": "Zeilen nach einem Feld gruppieren.", - "groupBy": "Gruppieren nach", - "thenBy": "dann nach", - "addGroupBy": "Wählen Sie ein Feld, nach dem gruppiert werden soll", - "noGroupByTitle": "Sie haben noch keine Gruppierungen erstellt" - }, - "viewGroupBy": { - "groupBy": "Gruppieren | Gruppieren nach 1 Feld | Gruppieren nach {count} Feldern" - }, - "apiDocsFiltersBuilderModal": { - "userFieldNames": "Benutzerfeld-Namen", - "queryParameter": "Abfrageparameter", - "json": "JSON", - "title": "Filter-Parameter-Builder" - }, - "rowHistorySidebar": { - "name": "Historie", - "empty": "Noch keine Änderungen. Sie können alle Änderungen an dieser Zeile hier verfolgen.", - "you": "Sie" - }, - "fieldDurationSubForm": { - "durationFormatLabel": "Format der Dauer" - }, - "viewFieldConditionsForm": { - "addCondition": "Bedingung hinzufügen", - "addConditionGroup": "Bedingungsgruppe hinzufügen" - }, - "fieldCollaboratorSubForm": { - "notifyUserWhenAdded": "Benutzer beim Hinzufügen benachrichtigen" - }, - "collaboratorAddedToRowNotification": { - "title": "{sender} hat Sie dem {fieldName} in Zeile {rowId} in {tableName} zugewiesen", - "deletedUser": "Gelöschter Benutzer" - }, - "formSubmittedNotification": { - "title": "{formName} wurde in Tabelle {tableName} abgesendet:", - "moreValues": "0 | und 1 weiteres Feld. | und {count} weitere Felder." - }, - "fieldLongTextSubForm": { - "enableRichTextFormatting": "Rich-Text-Formatierung aktivieren" - }, - "rowHistoryFieldPassword": { - "passwordSet": "Das Passwort wurde festgelegt", - "passwordUpdated": "Das Passwort wurde aktualisiert", - "passwordDeleted": "Das Passwort wurde entfernt" - }, - "dataProviderTypes": { - "fieldsName": "Felder" - }, - "databaseScratchTrackStep": { - "teamsRow3": "Marketing", - "tasks": "Aufgaben", - "tasksRow1": "Logo-Redesign", - "tasksRow2": "E-Mail versenden", - "tasksRow3": "Blogpost schreiben", - "campaigns": "Kampagnen", - "tableName": "Tabellenname", - "productsRow2": "Kundenbefragung", - "productsRow3": "Bezahlte Anzeigenkampagne", - "teams": "Teams", - "teamsRow1": "Verkauf", - "teamsRow2": "Personalwesen", - "campaignsRow1": "Sommerschlussverkauf", - "campaignsRow2": "Treueprämien", - "title": "Was möchten Sie verfolgen?", - "campaignsRow3": "Marken-Relaunch", - "productsRow1": "Rebranding-Website", - "description": "Wählen Sie aus gängigen Anwendungsfällen oder erstellen Sie Ihre eigenen.", - "addYourOwn": "Erstellen Sie Ihren eigenen", - "rowName": "Zeilenname", - "thisIncludes": "Das beinhaltet:", - "projects": "Projekte" - }, - "fieldPasswordSubForm": { - "description": "Es ist noch nicht möglich, direkt etwas mit dem Passwortfeld zu tun. Dieses wird nur von der Benutzerauthentifizierung im Application Builder verwendet." - }, - "rowEditFieldPassword": { - "setPassword": "Passwort festlegen" - }, - "databaseImportStep": { - "title": "Importieren Sie Ihre Daten", - "description": "Verschieben Sie Ihre Daten mit nur wenigen Klicks in Baserow.", - "tableNameLabel": "Tabellenname" - }, - "databaseStep": { - "scratch": "Von Grund auf", - "import": "Aus einer Datei", - "title": "Erstellen Sie Ihre erste Datenbank", - "airtable": "Von Airtable", - "databaseNameLabel": "Datenbankname", - "description": "Lassen Sie uns wissen, woran Sie gerade arbeiten." - }, - "userMentionInRichTextFieldNotification": { - "deletedUser": "Ein gelöschter Benutzer", - "title": "{sender} hat Sie in Feld {fieldName} aus Zeile {rowId} in {tableName} erwähnt" - }, - "ViewFilterTypeDateUpgradeToMultiStep": { - "migrateButtonText": "Umstellung auf mehrstufigen Datumsfilter", - "migrateButtonTooltip": "Neuer Filter verfügbar. Zum Aktualisieren anklicken. Er funktioniert genauso." - }, - "createTableModal": { - "title": "Neue Tabelle anlegen", - "defaultName": "Tabelle", - "importLabel": "Möchten Sie bestehende Daten importieren?", - "newTable": "Starten Sie mit einer neuen Tabelle" - }, - "createTable": { - "showTable": "Tabelle anzeigen", - "addButton": "Tabelle hinzufügen", - "uploading": "Lade hoch...", - "preparing": "Bereite Daten vor...", - "importError": "Beim Import der Datei ist etwas schiefgelaufen", - "stateRowCreation": "Importiere...", - "statePreValidation": "Prüfe Daten...", - "stateCreateTable": "Erstelle Tabelle..." - }, - "importErrorReport": { - "reportTitleSuccess": "Import war erfolgreich, allerdings...", - "reportMessage": "Die folgenden Zeilenindizes konnten nicht importiert werden:", - "reportTitleFailure": "Fehlgeschlagene Zeilen" - }, - "formViewMetaControls": { - "showMessage": "Eine Nachricht anzeigen", - "theMessage": "Die Nachricht", - "theURL": "Die URL", - "whenSubmittedLabel": "Wenn das Formular abgeschickt wurde", - "urlRedirect": "Weiterleiten zu einer URL" - }, - "createViewLink": { - "inCompatibleWithDataSync": "Dieser Ansichtstyp ist nicht mit einer Datenabgleichs-Tabelle kompatibel." - } } diff --git a/web-frontend/modules/database/locales/es.json b/web-frontend/modules/database/locales/es.json index 90002b997c..ad98a5f816 100644 --- a/web-frontend/modules/database/locales/es.json +++ b/web-frontend/modules/database/locales/es.json @@ -28,7 +28,7 @@ "example": "Ejemplo de carga útil" }, "errors": { - "urlField": "Este campo es obligatorio y debe ser una URL válida.", + "urlField": "Debe ser una URL válida que empiece con 'https://' o 'http://'.", "invalidHeaders": "Uno de los encabezados no es válido." }, "checkbox": { @@ -151,10 +151,11 @@ "filterType": "- `Y`: Indica que las filas deben coincidir con todos los filtros proporcionados.\n- `OR`: Indica que las filas solo tienen que coincidir con uno de los filtros.\n\n Esto funciona solo si se proporcionan dos o más filtros.", "include": "Todos los campos se incluyen en la respuesta de forma predeterminada. Puede seleccionar un subconjunto de campos para incluir proporcionando el parámetro de consulta de inclusión.\n\n #### Con `user_field_names`:\n\n `include` debe ser una lista separada por comas de nombres de campos que se incluirán en los resultados. Por ejemplo, si proporciona el siguiente parámetro GET: `include=My Field,-My Field 2`, solo se incluirán esos campos (a menos que se excluyan explícitamente).\n\n El nombre de los campos que contienen comas debe estar entre comillas: `\"Nombre,\"`. Si los nombres de los campos contienen comillas, deben escaparse con el carácter `\\`. Ej: `Nombre\\\"`.\n\n #### Sin `user_field_names`:\n\n `include` debe ser una lista separada por comas de `field_` seguida de la identificación del campo para incluir en los resultados. Por ejemplo: si proporciona el siguiente parámetro GET `exclude=field_1,field_2`, los campos con id `1` e id `2` solo se incluirán esos campos (a menos que se excluyan explícitamente).", "exclude": "Todos los campos se incluyen en la respuesta de forma predeterminada. Puede seleccionar un subconjunto de campos para excluir proporcionando el parámetro de consulta de exclusión.\n\n #### Con `user_field_names`:\n\n `excluir` debe ser una lista separada por comas de nombres de campos que se excluirán de los resultados. Por ejemplo, si proporciona el siguiente parámetro GET: `exclude=My Field,-My Field 2`, esos campos se excluirán.\n\n El nombre de los campos que contienen comas debe estar entre comillas: `\"Nombre,\"`. Si los nombres de los campos contienen comillas, deben escaparse con el carácter `\\`. Ej: `Nombre\\\"`.\n\n #### Sin `user_field_names`:\n\n `exclude` debe ser una lista separada por comas de `field_` seguida de la identificación del campo para excluir de los resultados. Por ejemplo: si proporciona el siguiente parámetro GET `exclude=field_1,field_2`, los campos con id `1` e id `2` se excluirán.", - "viewId": "Por defecto, no se aplica ningún filtro ni ordenación fuera de los definidos en los parámetros. Puedes añadir los filtros y ordenaciones de una vista proporcionando su `id` en el parámetro GET `view_id`. Por ejemplo, si proporcionas el siguiente parámetro GET `view_id=1`, se aplicarán los filtros y ordenaciones definidos en la vista con id `1`. Puede encontrar el `view_id` en el menú contextual de cualquier vista. Es el número entre paréntesis detrás del nombre de la vista. \n\n#### Con `filtro__{campo}__{filtro}`\n\nSe aplicará tanto el filtro proporcionado en el parámetro de consulta como los filtros definidos en la vista.\n\n#### Con `order_by`\n\nSi se proporciona `order_by` se ignorará la ordenación definida en la vista.", + "viewId": "Por defecto, no se aplica ningún filtro ni ordenación fuera de los definidos en los parámetros. Puedes añadir los filtros y ordenaciones de una vista proporcionando su `id` en el parámetro GET `view_id`. Por ejemplo, si proporcionas el siguiente parámetro GET `view_id=1`, se aplicarán los filtros y ordenaciones definidos en la vista con id `1`. Puede encontrar el `view_id` en el menú contextual de cualquier vista. Es el número entre paréntesis detrás del nombre de la vista. \n\n#### Con `filter__{'{'}field{'}'}__{'{'}filter{'}'}`\n\nSe aplicará tanto el filtro proporcionado en el parámetro de consulta como los filtros definidos en la vista.\n\n#### Con `order_by`\n\nSi se proporciona `order_by` se ignorará la ordenación definida en la vista.", "filtersBuilder": "Abrir el creador de parámetros de filtros", "filters": "Las filas se pueden filtrar opcionalmente utilizando los mismos filtros de vista que están disponibles para las vistas. Este parámetro acepta una cadena serializada JSON que contiene el árbol de filtros a aplicar a esta vista. El árbol de filtros es una estructura anidada que contiene los filtros que deben aplicarse. \n\n#### Con `nombres_campo_usuario`:\n\nUn ejemplo de árbol de filtros válido es el siguiente: `{'{'}\"filter_type\": \"AND\", \"filters\": [{'{'}\"field\": \"Name\", \"type\": \"equal\", \"value\": \"test\"{'}'}]{'}'}`.\n\n#### Sin `nombres_campo_usuario`:\n\nPor ejemplo, si proporcionas opcionalmente el siguiente parámetro GET: `{'{'}\"filter_type\": \"AND\", \"filters\": [{'{'}\"field\": 1, \"type\": \"equal\", \"value\": \"test\"{'}'}]{'}'}`.\n\nTen en cuenta que si proporcionas este parámetro, se ignorarán todos los demás `filter__{'{'}field{'}'}__{'{'}filter{'}'}`, así como el parámetro tipo_filtro.", - "join": "Permite solicitar una búsqueda de valores de campo de una tabla de destino a través de campos de fila de vínculo existentes. El nombre del parámetro debe ser el nombre de un campo de fila de vínculo existente, seguido de __join. El valor debe ser una lista de nombres de campos para los que deseamos buscar valores adicionales. Puede proporcionar uno o varios campos de destino. No es posible buscar un valor de un campo de fila de vínculo en la tabla de destino.\n\n #### Con `user_field_names`:\n\n `join` debe ser una lista separada por comas de nombres de campos que se incluirán en los resultados. Por ejemplo: si proporciona el siguiente parámetro GET `LinkRowField__join=MyField,MyField2`, los valores de `MyField` y `My Field2` en la tabla vinculada por `LinkRowField` se incluirán en la respuesta.\n\n#### Sin `user_field_names`:\n\n `join` debe ser una lista separada por comas de `field_` seguida del id del campo que se incluirá en los resultados. Por ejemplo: si proporciona el siguiente parámetro GET `field_1__join=field_2,field_3`, los valores de `field_2` y `field_3` en la tabla vinculada por `field_1` se incluirán en la respuesta." + "join": "Permite solicitar una búsqueda de valores de campo de una tabla de destino a través de campos de fila de vínculo existentes. El nombre del parámetro debe ser el nombre de un campo de fila de vínculo existente, seguido de __join. El valor debe ser una lista de nombres de campos para los que deseamos buscar valores adicionales. Puede proporcionar uno o varios campos de destino. No es posible buscar un valor de un campo de fila de vínculo en la tabla de destino.\n\n #### Con `user_field_names`:\n\n `join` debe ser una lista separada por comas de nombres de campos que se incluirán en los resultados. Por ejemplo: si proporciona el siguiente parámetro GET `LinkRowField__join=MyField,MyField2`, los valores de `MyField` y `My Field2` en la tabla vinculada por `LinkRowField` se incluirán en la respuesta.\n\n#### Sin `user_field_names`:\n\n `join` debe ser una lista separada por comas de `field_` seguida del id del campo que se incluirá en los resultados. Por ejemplo: si proporciona el siguiente parámetro GET `field_1__join=field_2,field_3`, los valores de `field_2` y `field_3` en la tabla vinculada por `field_1` se incluirán en la respuesta.", + "test": "`{'{'}\"filter_type\": \"AND\", \"filters\": [{'{'}\"field\": \"Nombre\", \"type\": \"equal\", \"value\": \"prueba\"{'}'}]{'}'}" }, "apiDocsIntro": { "intro": "La base de datos {name} proporciona una manera fácil de integrar los datos con cualquier sistema externo. La API sigue la semántica REST, utiliza JSON para codificar objetos y se basa en códigos HTTP estándar, errores de lectura humana y mecánica para señalar los resultados de las operaciones.", @@ -517,7 +518,7 @@ }, "viewForm": { "name": "Nombre", - "whoCanEdit": "Quién puede editarlo" + "whoCanEdit": "¿Quién puede editar esta vista?" }, "galleryViewHeader": { "customizeCards": "Personalizar tarjetas" @@ -864,7 +865,8 @@ }, "viewOwnershipType": { "collaborative": "Colabora", - "personal": "Personal" + "personal": "Personal", + "collaborativeDescription": "Todos pueden ver todos los datos y cambiar las propiedades si tienen los permisos." }, "gridViewRowsAddContext": { "title": "Crear varias filas", @@ -952,7 +954,8 @@ "databaseImportStep": { "tableNameLabel": "Nombre de la tabla", "title": "Importa tus datos", - "description": "Mueve tus datos a Baserow, en sólo unos clics." + "description": "Mueve tus datos a Baserow, en sólo unos clics.", + "tableNamePrefill": "Tabla de {name}" }, "databaseScratchTrackStep": { "title": "¿Qué te gustaría seguir?", @@ -985,7 +988,9 @@ "scratch": "Esbozo", "import": "Archivo", "airtable": "Airtable", - "template": "Plantilla" + "template": "Plantilla", + "databaseNamePrefill": "Base de datos de {name}", + "workspaceName": "Espacio de trabajo de {name}" }, "ViewFilterTypeDateUpgradeToMultiStep": { "migrateButtonText": "Migrar al filtro de fecha de varios pasos", diff --git a/web-frontend/modules/database/locales/fr.json b/web-frontend/modules/database/locales/fr.json index 2dbfa45dd1..0eeddec51f 100644 --- a/web-frontend/modules/database/locales/fr.json +++ b/web-frontend/modules/database/locales/fr.json @@ -1,1192 +1,1197 @@ { - "webhookModal": { - "title": "Webhooks de {name}", - "createWebhook": "Ajouter un webhook", - "backToList": "Retour à la liste" - }, - "deleteWebhookModal": { - "title": "Supprimer {webhookName}", - "deleteButton": "Supprimer le webhook", - "body": "Êtes-vous sûr·e de vouloir supprimer ce webhook ? Vous ne serez plus en mesure de le restaurer par la suite." - }, - "webhookList": { - "noWebhooksMessage": "Vous n'avez pas encore créé de webhook. Les webhooks peuvent être utilisés afin d'informer un système tiers quand une ligne a été créée, modifiée, supprimée dans Baserow." - }, - "testWebhookModal": { - "title": "Test du webhook", - "unreachable": "Serveur inaccessible" - }, - "webhookForm": { - "inputLabels": { - "name": "Nom", - "value": "Valeur", - "requestMethod": "Méthode", - "url": "URL", - "userFieldNames": "Noms des champs", - "events": "Quels événements déclenchent ce webhook ?", - "headers": "Entêtes additionels", - "example": "Example de requête" - }, - "errors": { - "urlField": "Doit être une URL commençant par « https:// » ou « http:// ».", - "invalidHeaders": "Un des entête est invalide." - }, - "checkbox": { - "sendUserFieldNames": "Utiliser les noms de champ plutôt que les identifiants" - }, - "radio": { - "allEvents": "Tous les événements", - "customEvents": "Choisir les événements" - }, - "triggerButton": "Tester le webhook", - "deactivated": { - "title": "Le webhook est désactivé", - "content": "Ce webhook a été désactivé car il produisait trop d'échecs consécutifs. Veuillez vérifier l'historique des appels pour plus d'information. Cliquez sur le bouton ci-dessous pour l'activer de nouveau. Pensez à enregistrer le webhook avant de l'activer.", - "activate": "Activer" - }, - "deprecatedEventType": { - "convert": "Convertir", - "title": "Type d'événement obsolète", - "description": "Ce webhook ne reçoit pas d'informations sur les lignes modifiées en une seule opération. Veuillez le convertir en un type d'événement de type lot. Cette opération modifie le contenu JSON pour un format qui permet de contenir plusieurs lignes." - }, - "triggerWhenFieldsHaveChanged": "Déclencher en cas de modification des champs", - "helpTriggerWhenFieldsHaveChanged": "Ne sera déclenché que si la valeur de la cellule des champs choisis change." - }, - "webhook": { - "details": "détails", - "lastCall": "Dernier déclenchement : {lastCallTime}", - "noCalls": "Jamais déclenché", - "callLog": "Historique des appels", - "triggerDescription": "Déclenché par tous les événements | Déclenché par un événement | Déclenché par {count} événements" - }, - "createWebhook": { - "errorTableWebhookMaxLimitExceededTitle": "Nombre maximum de webhook dépassé", - "errorTableWebhookMaxLimitExceededDescription": "Vous ne pouvez pas créer de webhook car le nombre maximum de webhook par table a été atteint." - }, - "sidebar": { - "viewAPI": "Documentation de l'API", - "createTable": "Nouvelle table" - }, - "sidebarItem": { - "exportTable": "Exporter la table", - "webhooks": "Webhooks", - "notSynced": "non synchronisé", - "lastSynced": "Dernière synchronisation", - "sync": "Synchroniser la table", - "updateSyncConfig": "Mettre à jour la configuration de la synchronisation" - }, - "apiToken": { - "create": "créer", - "read": "lire", - "update": "modifier", - "delete": "supprimer", - "tokenPrefix": "Jeton :", - "viewAPIDocs": "Documentation de l'API", - "generateNewToken": "Générer un nouveau jeton", - "showOrHide": "Montrer ou masquer le jeton", - "copyToClipboard": "Copier dans le presse-papier", - "showDatabases": "Afficher le détail" - }, - "apiTokenSettings": { - "title": "Jetons d'accès à la base", - "createToken": "Créer un jeton", - "noTokensMessage": "Vous n'avez pas encore créé de jeton d'accès. Vous pouvez utiliser les jetons d'accès à la base pour vous authentifier auprès de l'API REST qui vous permet de créer, lire, modifier et supprimer des lignes. Il est possible de définir des permissions différentes pour chaque table.", - "hasFullPermissions": "Toutes les permissions, pour les enfants également.", - "hasOnlySelectedPermissions": "Uniquement les permissions sélectionnées pour les enfants.", - "noPermissions": "Aucune permission.", - "createNewTitle": "Créer un nouveau jeton", - "backToOverview": "Retour" - }, - "apiTokenForm": { - "nameLabel": "Nom", - "workspaceLabel": "Projet" - }, - "apiDocsSelectDatabase": { - "needOneDatabase": "Vous devez avoir au moins une base de données afin de consulter la documentation de l'API." - }, - "apiDocsExample": { - "requestSample": "Example de requête", - "responseSample": "Example de réponse", - "userFieldNames": "Nom des champs utilisateur" - }, - "apiDocsParameter": { - "optional": "optionnel", - "defaultValue": "Valeur par défaut : {value}" - }, - "apiDocsTableGetRow": { - "description": "Retourne une ligne de la table {name}.", - "rowId": "L'identifiant unique de la ligne demandée." - }, - "apiDocsErrors": { - "errorCode": "Code", - "name": "Nom", - "description": "Description", - "okDescription": "La requête a été executée avec succès.", - "badRequestDescription": "La requête contient des valeurs invalides ou le contenu JSON n'a pas pu être décodé.", - "unauthorizedDescription": "Le jeton d'authentification utilisé est invalide.", - "notFoundDescription": "La ligne ou la table n'a pas été trouvée.", - "requestEntityTooLargeDescription": "La taille du contenu de la requête dépasse la taille maximale autorisée.", - "internalErrorDescription": "Le serveur a rencontré une erreur interne inatendue.", - "badGatewayDescription": "Baserow est en cours de démarrage ou une interruption du service est en cours.", - "unavailableDescription": "Le serveur n'a pas répondu dans les délais impartis." - }, - "apiDocsTableFields": { - "tableTitle": "Table {name}", - "tableId": "L'identifiant de cette table est :", - "description": "Chaque ligne dans la table « {name} » contient les champs décrits ci-dessous.", - "id": "ID", - "name": "Nom", - "type": "Type", - "compatibleFilters": "Filtres compatibles" - }, - "apiDocsTableListRows": { - "description": "Afin de lister les lignes de la table *{name}* une requête de type `GET` doit être envoyée au point d'accès de la table *{name}*. La réponse est paginée et par défault la première page est retournée. La page désirée peut-être récupérée en définissant les paramètres de requête `page` et `size`.", - "page": "Permet de choisir la page.", - "size": "Permet de définir le nombre de ligne par page.", - "userFieldNames": "Quand la valeur fournie pour le paramètre GET `user_field_names` est une des valeur suivante : `y`, `yes`, `true`, `t`, `on`, `1`, ou `\"\"`, les noms des champs du résultat seront ceux définis par l'utilisateur.\n\nSi le paramêtre `user_field_names` n'est pas défini ou n'est pas l'une des valeurs citées plus haut, alors les noms des champs seront `field_` suivis par l'identifiant du champ. Par exemple `field_1` fait référence au champ avec l'identifiant `1`.\n\n De plus, quand `user_field_names` est défini, vous devez également fournir les noms définis par l'utilisateur pour les paramètres `order_by`, `include` et `exclude`.", - "search": "Quand ce paramètre est défini, seules les lignes qui satisfont la recherche seront retournées.", - "orderBy": "Ce paramètre permet d'ordonner les lignes du résultat à l'aide d'une liste de champs séparés par une virgule. Par défaut ou s'il est préfixé par un `+` un champ est ordonné par ordre croissant (A-Z), en le préfixant par un `-` il sera ordonné par ordre décroissant (Z-A).\n\n #### Avec `user_field_names` :\n\n `order_by` doit être une liste de noms définis par l'utilisateur des champs sur lesquels s'appuient l'ordre séparés par des virgules. Par exemple si vous fournissez la valeur suivante `order_by=Mon champ,-Mon champ 2` les lignes seront ordonnées par le champ appelé `Mon champ` par ordre croissant. Si certaines lignes ont la même valeur pour `Mon champ` ce sous ensemble sera ordonné par la valeur du champ `Mon champ 2` par ordre décroissant.\n\n Assurez vous que les champs qui commencent par un `+` ou un `-` soit explicitement préfixés par un autre `+` ou `-`. Ex : `+-Nom`.\n\n Le nom des champs contenant des virgules doit être entouré par des guillemets : `\"Nom ,\"`. Si le nom des champs contient des guillemets, ceux-ci doivent être protégés en utilisant le caractère `\\`. Ex : `Nom \\\"`.\n\n #### Sans `user_field_names` :\n\n `order_by` doit être une liste de `field_` suivi par l'identifiant du champ à ordonner, séparés par des virgules. Par exemple si vous fournissez la valeur suivante pour ce paramètre `order_by=field_1,-field_2` les lignes seront ordonnées par le champ `field_1` par ordre croissant. Si certaines lignes ont la même valeur pour ce champ, ce sous ensemble sera ordonné par la valeur du champ `field_2` par ordre décroissant.", - "filter": "Ce paramètre permet de filtrer les lignes avec les même filtres que ceux disponibles pour les vues. Plusieurs filtres peuvent être définis simultanéement s'il suivent le même format. La variable `field` permet d'indiquer le champ à filtrer, tandis que `filter` permet de choiser le type de filtre.\n\n#### Avec l'option `user_field_names` :\n\nPar exemple si vous utilisez la valeur suivante : `filter__Nom__equal=test`, seule les lignes pour lesquelles la valeur du champ nommé `Nom` est égale à *test* seront retournées. Cette méthode est rétro-compatible et test également en utilisant `field_id` si le test échoue pour le champ `Nom`.\n\n#### Sans l'option `user_field_names` :\n\nPar exemple si vous utilisez la valeur suivante : `filter__field_1__equal=test`, seule les lignes pour lesquelles la valeur du champ `field_1` est égale à *test* seront retournées.\n\nVeuillez notez que si le paramètre `filters` est fournie, ce paramètre sera ignoré. ", - "filterLink": "Une liste des filtres disponibles peut être consultée ici.", - "filterType": "- `AND` : indique que les lignes doivent satisfaire tous les filtres définis.\n- `OR` : indique que les lignes doivent satisfaire au moins l'un des filtres définis pour être retournées.\n\n Cela fonctionne uniquement quand au moins 2 filtres sont définis.", - "include": "Par défaut, tous les champs de la table sont retournés. Vous pouvez définir le sous ensemble des champs qui seront dans les résultats en fournissant une valeur pour ce paramètre.\n\n#### Avec `user_field_names` :\n\n`include` doit être une liste des noms définis par l'utilisateur des champs que vous souhaitez conserver, séparés par une virgule. Par exemple, si vous fournissez la valeur suivante `include=Mon champ,-Mon champ 2` alors seul ces champs seront retournés dans les résultats (sauf si vous les avez explicitement exclus avec le paramètre suivant).\n\nLe nom des champs contenant des virgules doit être entouré par des guillemets : `\"Nom ,\"`. Si le nom des champs contient des guillemets, ceux-ci doivent être protégés en utilisant le caractère `\\`. Ex : `Nom \\\"`.\n\n#### Sans `user_field_names` :\n\n`include` doit être une liste de `field_` suivis par l'identifiant d'un champ à inclure dans le résultat, séparé par des virgules. Par exemple, si vous fournissez la valeur suivante `include=field_1,field_2` alors les champs d'identifiant `1` et `2` seront les champs présents dans le résultat (sauf si vous les avez explicitement exclus avec le paramètre suivant).", - "exclude": "Par défaut, tous les champs de la table sont retournés dans les résultats. Vous pouvez choisir un sous ensemble de champs qui seront exclus des résultats en définissant une valeur pour ce paramètre.\n\n#### Avec `user_field_names` :\n\n`exclude` doit être une liste des noms définis par l'utilisateur des champs que vous souhaitez exclure, séparés par une virgule. Par exemple, si vous fournissez la valeur suivante : `exclude=Mon champ,-Mon champ 2` alors ces deux champs seront exclus des résultats.\n\nLe nom des champs contenant des virgules doit être entouré par des guillemets : `\"Nom ,\"`. Si le nom des champs contient des guillemets, ceux-ci doivent être protégés en utilisant le caractère `\\`. Ex : `Nom \\\"`.\n\n#### Sans `user_field_names` :\n\n`exclude` doit être une liste de `field_` suivis par l'identifiant d'un champ à exclure du résultat, séparé par des virgules. Par exemple, si vous fournissez la valeur suivante : `exclude=field_1,field_2` alors les champs avec l'identifiant `1` et `2` seront exclus.", - "viewId": "Par défaut, aucun des filtres et tris autres que ceux définis dans les paramètres de la requête ne sont appliqués. Vous pouvez définir les filtres et les tris d'une vue en fournissant son `id` dans le paramètre GET `view_id`. Par exemple, si vous fournissez le paramètre GET suivant `view_id=1`, les filtres et les tris définis dans la vue avec l'id `1` seront appliqués. Vous pouvez trouver le `view_id` dans le menu contextuel d'une vue donnée. Il s'agit du nombre entre parenthèses derrière le nom de la vue. \n\n #### Avec `filter__{field}__{filter}` \n\n Le filtre fourni dans le paramètre de la requête et les filtres définis dans la vue seront appliqués.\n\n #### Avec `order_by` \n\n Si `order_by` est fourni, le tri défini dans la vue sera ignoré.", - "filtersBuilder": "Ouvrir le générateur de filtres", - "filters": "Les lignes peuvent être filtrées en utilisant les mêmes filtres que ceux disponibles pour les vues. Ce paramètre accepte une chaîne sérialisée en JSON contenant l'arbre de filtre à appliquer pour cette vue. L'arbre de filtre est une structure imbriquée contenant les filtres qui doivent être appliqués.\\n\\n#### Avec `user_field_names` :\\n\\nUn exemple d'arbre de filtre valide est le suivant : `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": \\\"Name\\\", \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`.\\n\\n#### Sans `user_field_names` :\\n\\nPar exemple, si vous fournissez le paramètre GET suivant : `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": 1, \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`\\n\\nVeuillez noter que si ce paramètre est fourni, tous les autres `filter__{'{'}field{'}'}__{'{'}filter{'}'}` seront ignorés, ainsi que le paramètre `filter_type`.", - "join": "Permet de consulter les valeurs des champs d'une table liée par l'intermédiaire des champs de lien de la table courante. Le nom du paramètre doit être le nom d'un champ de lien existant, suivi de `__join`. La valeur doit être une liste de noms de champs pour lesquels vous souhaiter inclure les valeurs. Vous pouvez fournir un ou plusieurs champs cibles. Il n'est pas possible de rechercher la valeur d'un champ de lien dans la table liée.\n\n #### Avec `user_field_names` :\n\n `join` doit être une liste de noms de champs séparés par des virgules à inclure dans les résultats. Par exemple, si vous fournissez le paramètre GET suivant `LinkRowField__join=MyField,MyField2`, les valeurs de `MyField` et `My Field2` dans la table liée par `LinkRowField` seront incluses dans la réponse.\n\n#### Sans `user_field_names` :\n\n `join` doit être une liste de `field_` séparés par des virgules, suivi de l'identifiant du champ à inclure dans les résultats. Par exemple, si vous fournissez le paramètre GET suivant `field_1__join=field_2,field_3` alors les valeurs de `field_2` et `field_3` dans la table liée par `field_1` seront incluses dans la réponse." - }, - "apiDocsIntro": { - "intro": "L'API de la base {name} offre un moyen simple d'intégrer des données provenant d'un système externe. L'API suit les principes d'architecture REST, utilise le format JSON pour encoder les données, s'appuie sur les codes HTTP standards et propose des messages d'erreurs à la fois techniques mais également lisibles par les humains pour signaler les dysfonctionnements.", - "autoDocDescription": "Cette documentation est générée automatiquement à partir des table et des champs disponibles dans votre basse de données. Si vous effectuez des modifications sur la base, les tables ou bien sur les champs des tables, cela peut également modifier l'API. Par conséquent, assurez-vous de mettre à jour les clients de votre API dans ce cas.", - "databaseId": "L´identifiant de la base est :", - "jsClient": "Exemple JavaScript de la requête d'API :", - "pythonClient": "Exemple en Python de la requête d'API :" - }, - "apiDocsTableListFields": { - "description": "Afin de lister les champs de la table {name} une requête de type {get} doit être envoyé auprès du point d'accès des champs de celle-ci. Le jeton d'authentification doit avoir les droits de création, modification et suppression afin de pouvoir lister les champs de la table.", - "resultFieldProperties": "Propriétés des champs de la réponse", - "id": "Clé primaire du champ. Permet de générer le nom de la colonne en base de données en ajoutant le prefix `field_`.", - "name": "Nom du champ.", - "tableId": "ID de table associée.", - "order": "Ordre du champ dans la table. 0 est pour le premier champ.", - "primary": "Indique si le champ est une clé primaire. Si la valeur est `true` le champ ne peut être effacé et ses valeurs doivent représenter la ligne entière.", - "type": "Type défini pour ce champ.", - "extraProps": "Certaines propriétés ne sont pas décrites ici car elles sont spécifiques au type de champ concerné.", - "readOnly": "Indique si le champ est un champ de lecture uniquement. Si oui, il n'est pas possible de mettre à jour la valeur de la cellule.", - "descriptionField": "Description du champ" - }, - "apiDocsTableDeleteRow": { - "description": "Supprime une ligne de la table *{name}*.", - "rowId": "L'identifiant unique de la ligne à supprimer." - }, - "apiDocsTableMoveRow": { - "description": "Déplace une ligne existante de la table *{name}* avant une autre ligne. Si le paramètre `before_id` n'est pas fourni, la ligne est déplacée à la fin de la table.", - "rowId": "Identifiant unique de la ligne à déplacer.", - "before": "Permet de définir l'identifiant de la ligne avant laquelle la ligne choisie doit être déplacée. Si aucune valeur n'est fournie, la ligne est déplacée à la fin de la table." - }, - "apiDocsTableUpdateRow": { - "description": "Modifie une ligne existante de la table {name}.", - "rowId": "L'identifiant unique de la ligne à modifier.", - "before": "Si un identifiant de ligne est fourni, la ligne sera placée avant la ligne portant cet identifiant." - }, - "apiDocsTableCreateRow": { - "description": "Créé une nouvelle ligne pour la table {name}.", - "before": "Si ce paramètre est fourni, la nouvelle ligne sera positionnée avant la ligne portant l'identifiant fourni." - }, - "apiDocsAuth": { - "description": "Baserow utilise un système d'authentification simple par jeton. Vous devez générer au moins un jeton d'authentification dans votre {settingsLink} afin d'utiliser les API suivantes. Il est possible de définir des droits de création, lecture, modification et suppression par table et ce pour chaque jeton. Pour vous authentifier, fournissez le jeton via l'entête HTTP « Authorization » de la requête. Tous les appels à l'API doivent être authentifiés et réalisés via le protocole sécurisé HTTPS.", - "settingsLink": "compte" - }, - "apiDocsFilters": { - "filter": "Filtre", - "exampleValue": "Exemple", - "example": "Exemple complet", - "field": "La valeur {name}", - "deprecated": "obsolète" - }, - "fieldTextSubForm": { - "placeholder": "Texte par défault" - }, - "fieldSingleSelectSubForm": { - "optionsLabel": "Options", - "defaultOptionLabel": "Option par défaut" - }, - "fieldSingleSelectDropdown": { - "notFound": "Option manquante" - }, - "fieldDateSubForm": { - "dateFormatLabel": "Format de date", - "dateFormatEuropean": "Européen", - "dateFormatUS": "Américain", - "dateFormatISO": "ISO", - "includeTimeLabel": "Inclure l'heure", - "timeFormatLabel": "Format de l'heure", - "24Hour": "24 heures", - "12Hour": "12 heures", - "showTimezoneLabel": "Afficher le fuseau horaire", - "forceTimezoneLabel": "Définir le fuseau horaire pour tous les collaborateurs", - "forceTimezoneValue": "Fuseau horaire", - "addTimezoneOffsetLabel": "Convertir les valeurs (ajouter {utcOffsetDiff} minutes)", - "subTimezoneOffsetLabel": "Convertir les valeurs (soustraire {utcOffsetDiff} minutes)" - }, - "fieldLinkRowSubForm": { - "noTable": "Vous devez créer au moins une autre table dans la même base de données pour pouvoir créer un lien.", - "selectTableLabel": "Sélectionnez une table", - "hasRelatedFieldLabel": "Créer un champ rapporté", - "limitToView": "Limiter la sélection à la vue", - "limitToViewDescription": "Notez que ceci n'est que visuel. Il est encore possible de faire des relations en dehors de la vue via la table ou l'API.", - "allowMultipleRelations": "Autoriser les relations multiples" - }, - "fieldSelectOptions": { - "add": "Ajouter une option" - }, - "fieldNumberSubForm": { - "typeLabel": "Type numérique", - "integer": "Entier", - "decimal": "Décimal", - "decimalPlacesLabel": "Précision", - "allowNegative": "Autoriser les nombres négatifs", - "separatorLabel": "Séparateur de milliers et de décimales", - "prefixPlaceholder": "Préfixe", - "suffixPlaceholder": "Suffixe", - "prefixAndSuffixLabel": "Préfixe / suffixe", - "spaceComma": "Espace, virgule (1 000 000,00)", - "spacePeriod": "Espace, point (1 000 000.00)", - "commaPeriod": "Virgule, point (1,000,000.00)", - "periodComma": "Point, virgule (1.000.000,00)", - "noFormatting": "Pas de formatage", - "defaultValuePlaceholder": "Saisir une valeur par défaut", - "defaultValueLabel": "Valeur par défaut" - }, - "fieldContext": { - "editField": "Modifier le champ", - "deleteField": "Supprimer le champ", - "hideField": "Masquer le champ", - "showField": "Afficher le champ", - "changePrimaryField": "Changer le champ primaire" - }, - "fieldForm": { - "name": "Nom", - "fieldAlreadyExists": "Un champ avec ce nom existe déjà.", - "nameNotAllowed": "Ce nom de champ n'est pas autorisé.", - "nameTooLong": "Ce nom de champ est trop long.", - "description": "Description", - "addDescription": "Ajouter une description", - "dbIndex": "Index", - "dbIndexError": "Ce type de champ ne peut pas avoir d'index. Veuillez le supprimer avant d'enregistrer ou de modifier le type de champ.", - "dbIndexDescription": "L'indexation peut améliorer considérablement les performances de filtrage, mais ralentit les opérations de création, de mise à jour et de suppression.", - "defaultValueDisabledByConstraint": "Impossible de définir une valeur par défaut avec une contrainte d'unicité", - "dbIndexDisabledTooltip": "L'indexation n'est pas disponible pour ce type de champ." - }, - "fieldLookupSubForm": { - "noTable": "Vous devez créer au moins une autre table dans la même base de données pour pouvoir créer un lien.", - "selectThroughFieldLabel": "Sélectionnez le lien vers la table", - "selectTargetFieldLabel": "Sélectionnez le champ à rapporter" - }, - "fieldFormulaNumberSubForm": { - "typeLabel": "Type numérique", - "integer": "Entier", - "decimal": "Décimal", - "decimalPlacesLabel": "Précision", - "allowNegative": "Autoriser les nombres négatifs" - }, - "fieldRatingSubForm": { - "maxValue": "Max", - "color": "Couleur", - "style": "Style" - }, - "rowCreateModal": { - "addField": "Ajouter un champ" - }, - "selectRowContent": { - "search": "Rechercher dans la table", - "hideFields": "Masquer les champs" - }, - "rowEditModal": { - "addField": "Ajouter un champ", - "showHiddenFields": "Afficher les champs masqués", - "hideHiddenFields": "Masquer les champs cachés" - }, - "rowEditFieldMultipleSelect": { - "addOption": "Choisir une option" - }, - "rowEditFieldFile": { - "addFile": "Ajouter un fichier", - "sizes": { - "0": "Octet(s)", - "1": "Ko", - "2": "Mo", - "3": "Go", - "4": "To", - "5": "Po" - } - }, - "rowEditFieldLinkRow": { - "addLink": "Choisir un lien", - "keepOnlyOneValue": "Ne conserver qu'une seule valeur. Ce champ ne supporte qu'une seule relation. La valeur est sauvegardée s'il ne reste qu'une seule relation." - }, - "tableCSVImporter": { - "chooseFileLabel": "Choisissez un fichier CSV", - "chooseFileDescription": "Vous pouvez importer un CSV existant en envoyant un fichier .CSV avec des données tabulaires. La plupart des tableurs sont capables de réaliser un export au format CSV.", - "chooseFile": "Choisir un fichier CSV", - "columnSeparator": "Sép. de colonne", - "recordSeparator": "Sép. d'enregistrement", - "unitSeparator": "séparateur d'unité", - "encoding": "Encodage", - "firstRowHeader": "La première ligne est l'entête", - "limitFileSize": "La taille maximum du fichier est de {limit}Mo.", - "limitError": "Il n'est pas possible d'importer plus de {limit} lignes.", - "emptyCSV": "Ce fichier CSV est vide." - }, - "tableForm": { - "name": "Nom" - }, - "tableXMLImporter": { - "fileLabel": "Choisissez un fichier XML", - "fileDescription": "Vous pouvez importer un XML existant en envoyant un fichier .XML contenant des données tabulaires, c'est-à-dire :", - "chooseButton": "Choisir un fichier XML", - "processingError": "Une erreur est survenue lors du traitement du XML : {errors}", - "emptyError": "Ce fichier XML est vide.", - "limitFileSize": "La taille maximum du fichier est de {limit}Mo.", - "limitError": "Il n'est pas possible d'importer plus de {limit} lignes." - }, - "tableJSONImporter": { - "fileLabel": "Choisissez un fichier JSON", - "fileDescription": "Vous pouvez importer un JSON existant en envoyant un fichier .json contenant des données tabulaires, c'est-à-dire :", - "chooseButton": "Choisir un fichier JSON", - "encodingLabel": "Encodage", - "processingError": "Une erreur est survenue lors du traitement du JSON : {error}", - "arrayError": "Ce fichier JSON n'est pas un tableau.", - "emptyError": "Ce fichier JSON est vide.", - "limitFileSize": "La taille maximum de fichier est de {limit}Mo.", - "limitError": "Il n'est pas possible d'importer plus de {limit} lignes." - }, - "tablePasteImporter": { - "pasteLabel": "Collez les données tabulaires", - "pasteDescription": "Vous pouvez copier les lignes provenant d'un tableur et les coller ci-dessous.", - "firstRowHeader": "La première ligne est l'entête", - "limitError": "Il n'est pas possible d'importer plus de {limit} lignes." - }, - "importFileModal": { - "title": "Créer une nouvelle table", - "importLabel": "Souhaitez-vous importer des données existantes ?", - "newTable": "Commencer avec une table vide", - "addButton": "Ajouter la table", - "preparing": "Préparation des données...", - "showReport": "Afficher le rapport d'erreur", - "reportTitleFailure": "Lignes en échec", - "importError": "Un problème est survenu lors de l'import du fichier", - "uploading": "Envoi…", - "reportTitleSuccess": "Import réussi mais...", - "openCreatedTable": "Ouvrir la table créée", - "stateRowCreation": "Import en cours…", - "reportMessage": "Les numéro de ligne suivants n'ont pas pu être importés :", - "statePreValidation": "Validation des données...", - "stateCreateTable": "Création de la table...", - "fieldMappingTitle": "Correspondance des champs", - "showTable": "Afficher la table", - "additionalImportTitle": "Importer dans {table}", - "importButton": "Importer", - "fieldMappingDescription": "Nous avons automatiquement fait la correspondance entre les colonnes du fichier et les champs Baserow dans votre table. Vous pouvez les modifier ci-dessous. Toute cellule incompatible avec le type du champ sélectionné restera vide après l'importation.", - "selectImportMessage": "Veuillez sélectionner les données à importer.", - "filePreview": "Aperçu du contenu du fichier", - "importPreview": "Aperçu de l'import", - "changeImporterType": "Modifier le type d'importation", - "defaultName": "Table", - "useUpsertField": "Mettre à jour les lignes si elles existent déjà", - "upsertTooltip": "Faire correspondre les lignes existantes à l'aide d'un champ unique pour remplacer les données par les valeurs importées." - }, - "formulaAdvancedEditContext": { - "textAreaFormulaInputPlaceholder": "Cliquez pour éditer la formule", - "fields": "Champs", - "functions": "Fonctions", - "operators": "Operateurs", - "fieldType": "Un champ de type {type}" - }, - "fieldFormulaInitialSubForm": { - "formulaInputPlaceholder": "Cliquez pour éditer la formule", - "refreshFormulaOptions": "Rafraichir les options" - }, - "formulaFieldItemDescription": { - "syntax": "Syntaxe", - "examples": "Exemples" - }, - "viewSearchContext": { - "searchInRows": "Chercher dans toute la table", - "hideNotMatching": "cacher les lignes sans résultat" - }, - "viewsContext": { - "searchView": "Recherche", - "noViews": "Aucune vue trouvée", - "collaborative": "Collaboratif" - }, - "viewFilterTypeLinkRow": { - "unnamed": "Ligne sans nom {value}", - "choose": "Choisissez une ligne" - }, - "viewFilterContext": { - "addFilter": "Ajouter un filtre", - "disableAllFilters": "Tous désactivés", - "noFilterTitle": "Vous n'avez pas encore définit de filtre", - "noFilterText": "Les filtres permettent de voir uniquement les lignes qui correspondent à vos critères.", - "where": "Quand", - "and": "Et", - "or": "Ou", - "filterTypeNotFound": "Le filtre n'est pas compatible.", - "relatedFieldNotFound": "Le champ associé n'a pas était trouvé.", - "noCompatibleFilterTypesErrorTitle": "Aucun filtre compatible", - "noCompatibleFilterTypesErrorMessage": "Aucun de vos champs n'a de filtre compatible", - "addFilterGroup": "Ajouter un groupe de filtres" - }, - "viewFilterTypeFileTypeDropdown": { - "image": "Image", - "document": "Document" - }, - "createViewModal": { - "createNew": "Créer une vue {view}", - "add": "Ajouter {view}" - }, - "shareViewLink": { - "shareView": "Partager {viewTypeSharingLinkName}", - "shareViewTitle": "Vous n'avez pas encore partagé la vue", - "sharedViewTitle": "Actuellement, {viewTypeSharingLinkName} est partagé·e via un lien privé", - "sharedViewDescription": "Les personnes possédant le lien peuvent voir {viewTypeSharingLinkName}.", - "disableLink": "Désactiver le lien de partage", - "generateNewUrl": "générer un nouveau lien", - "copyURL": "copier le lien", - "EnablePassword": "Restreindre l'accès avec un mot de passe", - "DisablePassword": "L'accès est protégé par un mot de passe", - "ChangePassword": "Changer", - "shareViewText": "Le lien de partage permet à quiconque de consulter les données dans cette vue.", - "shareViewLinkTitle": "Créer un lien privé", - "notSharedYetText": "Permettre à quiconque de consulter les données de cette vue ou de synchroniser les événements avec un calendrier externe.", - "createPrivateLink": "Créer un lien privé" - }, - "viewSortContext": { - "noSortTitle": "Vous n'avez configuré aucun tri", - "noSortText": "Le tri vous permet d'ordonner les lignes selon la valeur d'un champ.", - "sortBy": "Trier par", - "thenBy": "Puis par", - "addSort": "Ajouter un tri" - }, - "viewSort": { - "sort": "Tri | 1 Tri | {count} Tris" - }, - "viewRotateSlugModal": { - "title": "Mettre à jour le lien", - "refreshWarning": "Êtes-vous sûr·e de vouloir mettre à jour le lien vers {viewTypeSharingLinkName} {viewName} ? Après la mise à jour, il ne sera plus possible de consulter {viewTypeSharingLinkName} via l'ancien lien. Les personnes possédant le lien ne seront plus en mesure d'accéder à la page affichant {viewTypeSharingLinkName}.", - "generateNewURL": "Générer une nouvelle URL" - }, - "viewFieldsContext": { - "coverField": "Image d'en-tête", - "noCover": "Pas d'en-tête", - "search": "Chercher un champ", - "hideAll": "Masquer tout", - "showAll": "Afficher tout" - }, - "viewFilterTypeBoolean": { - "selected": "Sélectionné" - }, - "viewFilter": { - "filter": "Filtre | 1 Filtre | {count} Filtres", - "hasAllValuesEqual": "a toutes les valeurs égales", - "hasValueHigherThan": "a une valeur supérieure à", - "hasValueHigherThanOrEqual": "a une valeur supérieure ou égale à", - "hasNotValueLowerThanOrEqual": "n'a pas une valeur inférieure ou égale à", - "hasValueLowerThan": "a une valeur inférieure à", - "hasValueLowerThanOrEqual": "a une valeur inférieure ou égale à", - "hasNotValueHigherThan": "n'a pas une valeur supérieure à", - "hasNotValueHigherThanOrEqual": "n'a pas une valeur supérieure ou égale à", - "hasNotValueLowerThan": "n'a pas une valeur inférieure à" - }, - "viewContext": { - "exportView": "Exporter la vue", - "renameView": "Renommer la vue", - "deleteView": "Supprimer la vue", - "webhooks": "Webhooks", - "duplicateView": "Dupliquer la vue", - "importFile": "Importer un fichier", - "toPersonal": "Vers Personnelle", - "toCollaborative": "Vers Collaborative" - }, - "deleteViewModal": { - "title": "Supprimer la vue {name}", - "description": "Êtes-vous sur·e de vouloir supprimer la vue {name} ? Les données seront préservées, mais les filtres, tris et largeurs des champs associés à la vue seront supprimés.", - "delete": "Supprimer la vue" - }, - "viewForm": { - "name": "Nom", - "whoCanEdit": "Qui peut modifier" - }, - "galleryViewHeader": { - "customizeCards": "Configurer les cartes" - }, - "gridViewHide": { - "hideField": "Cacher les champs | 1 champ caché | {count} champs cachés" - }, - "gridViewFieldType": { - "createFilter": "Définir un filtre", - "sortField": "Trier", - "hideField": "Cacher un champ", - "insertRight": "Insérer à droite", - "insertLeft": "Insérer à gauche", - "duplicate": "Dupliquer le champ", - "dataSyncField": "Le champ est en lecture seule et fait partie de la synchronisation des données de la table.", - "noWriteValues": "Les modifications de ce champ sont limitées.", - "dataSyncFieldTwoWaySync": "Le champ est synchronisé avec la synchronisation des données de la table." - }, - "gridViewRow": { - "rowNotMatchingFilters": "La ligne est filtrée", - "rowNotMatchingSearch": "La ligne ne contient pas le terme recherché", - "rowHasMoved": "La ligne est déplacée" - }, - "gridView": { - "insertRowAbove": "Insérer au dessus", - "insertRowBelow": "Insérer en dessous", - "enlargeRow": "Afficher la ligne", - "deleteRow": "Supprimer la ligne", - "rowCount": "Acune ligne | 1 ligne | {count} lignes", - "duplicateRow": "Dupliquer la ligne", - "selectRow": "Sélectionner la ligne", - "copyCells": "Copier les cellules", - "deleteRows": "Supprimer les lignes", - "hiddenRowsInsertedTitle": "Lignes ajoutées", - "hiddenRowsInsertedMessage": "{number} nouvelles lignes ont été ajoutées, mais ne sont pas visibles en raison des filtres actifs.", - "copiedRowURLMessage": "L'URL de la ligne {id} a été copiée.", - "copiedRowURL": "URL de la ligne copiée", - "copyRowURL": "Copier l'URL de la ligne", - "tooManyItemsTitle": "Trop d'éléments", - "tooManyItemsDescription": "Il n'est pas possible de mettre à jour plus de {limit} lignes à la fois, c'est pourquoi seule la première a été mise à jour.", - "generateCellsValues": "Générer des valeurs avec l'IA", - "AIValuesGenerationErrorTitle": "La génération de valeur par l'IA a échoué", - "AIValuesGenerationErrorMessage": "Veuillez vérifier votre API_KEY et le modèle sélectionné.", - "copyCellsWithHeader": "Copier les cellules avec l'en-tête", - "generateAllAiValues": "Générer toutes les valeurs" - }, - "gridViewFieldLinkRow": { - "unnamed": "Ligne sans nom {value}", - "keepOnlyOneValue": "Ne conserver qu'une seule valeur" - }, - "gridViewIdentifierOptions": { - "id": "Identifiant de ligne", - "count": "Compte" - }, - "previewAny": { - "externalWarning": "Ouvrir un fichier via un service externe expose votre fichier à leurs serveurs." - }, - "exportTableModal": { - "failedTitle": "L'export a échoué", - "failedDescription": "L'export n'a pas pu aboutir en raison d'une erreur serveur.", - "cancelledTitle": "Export annulé", - "cancelledDescription": "L'export a été annulé.", - "title": "Exporter {name}" - }, - "exporterTypeChoices": { - "formatLabel": "Vers quel format souhaitez-vous réaliser l'export ?" - }, - "exportTableForm": { - "viewLabel": "Sélectionnez la vue à exporter :", - "typeError": "Aucun export disponible, veuillez sélectionner une autre vue ou la table complète." - }, - "exportTableLoadingBar": { - "export": "Exporter", - "download": "Télécharger" - }, - "exportTableDropdown": { - "exportEntireTable": "Exporter la table entière" - }, - "tableCSVExporter": { - "columnSeparatorLabel": "Séparateur de colonne", - "recordSeparator": "Sép. d'enregistrement", - "unitSeparator": "Sép. d'unité", - "encodingLabel": "Encodage", - "firstRowIsHeaderLabel": "La première ligne contient l'entête", - "includeHeader": "Inclure les noms de champs comme en-tête" - }, - "apiDocsDatabase": { - "pageTitle": "Documentation de l'API de la base {name}", - "back": "Retour à l'accueil", - "openDatabase": "Voir la base de données" - }, - "apiDocsComponent": { - "title": "API REST", - "intro": "Après avoir créé votre base de données et une clé d'API dans votre {settingsLink} Baserow fourni ses propres API REST pour créer, lire, mettre à jour et supprimer des lignes.", - "settings": "compte", - "selectApplicationTitle": "Choisissez une base de donnée :", - "signIn": "S'identifier pour commencer", - "back": "Retourner à l'accueil" - }, - "viewAggregationType": { - "checkedCount": "Cochées", - "notCheckedCount": "Non cochées", - "checkedPercentage": "Pourcentage de cochées", - "notCheckedPercentage": "Pourcentage de non cochées", - "min": "Min", - "max": "Max", - "earliestDate": "Première date", - "earliestDateShort": "Début", - "latestDate": "Dernière date", - "latestDateShort": "Fin", - "uniqueCount": "Unique", - "sum": "Somme", - "average": "Moyenne", - "median": "Médiane", - "stdDev": "Écart type", - "stdDevShort": "Écart type", - "variance": "Variance", - "notEmptyPercentage": "Pourcentage de renseignées", - "notEmptyCount": "Renseignées", - "emptyCount": "(Vides)", - "emptyPercentage": "Pourcentage de vides", - "count": "Compter", - "distribution": "Distribution", - "othersCount": "Autres" - }, - "databaseForm": { - "importLabel": "Souhaitez-vous importer des données existantes ?", - "airtableLabel": "Importer à partir d'Airtable", - "emptyLabel": "Base de donnée vierge" - }, - "importFromAirtable": { - "airtableShareLinkTitle": "Partager un lien vers votre Base", - "airtableShareLinkDescription": "Pour importer une base Airtable, vous devez au préalable créer un lien de partage de la base que vous souhaitez copier. Dans Airtable cliquez sur le bouton « share » dans le coin en haut à droite après avoir ouvert votre base. Ensuite, vous devez choisir l'option « Share via link ». Dans la fenêtre modale qui s'ouvre puis cliquez sur le bouton « Share publicly » et enfin cliquez sur « Enable shared base link ». Copiez alors le lien publique généré et collez-le dans le champ suivant.", - "airtableShareLinkBeta": "Cette fonctionnalité importera la plupart des données, mais il existe des incompatibilités. Un tableau nommé \"Rapport d'importation Airtable\" sera donc créé et contiendra la liste des éléments qui n'ont pas été importés ou qui ont été partiellement importés.", - "airtableShareLinkPaste": "Collez le lien ici", - "importButtonLabel": "Importer à partir de Airtable", - "openButtonLabel": "Ouvrir la base importée", - "importError": "Une erreur est survenue", - "statePending": "En attente", - "stateFailed": "Échec", - "stateFinished": "Terminé", - "stateDownloadingBase": "Téléchargement du schéma de la base", - "stateConverting": "Conversion vers Baserow", - "stateDownloadingFiles": "Téléchargement des fichiers", - "stateImporting": "Import en cours", - "stateImportingTable": "Import de la table {table}", - "errorJobAlreadyRunningTitle": "Déjà en cours", - "errorJobAlreadyRunningDescription": "Une autre tâche est déjà en cours. Vous devez attendre que celle-ci finisse avant d'en démarrer une autre.", - "linkError": "Le lien devrait ressembler à : https://airtable.com/shrxxxxxxxxxxxxxx", - "skipFilesHelper": "Une base Airtable contenant de nombreux fichiers peut ralentir l'importation. L'activation de cette option permet d'ignorer l'importation des fichiers.", - "skipFiles": "Ne pas importer les fichiers", - "sessionDescription": "Si l'importation répond par « The Airtable base requires authentication. », il se peut que les paramètres organisationnels d'Airtable empêchent l'accès à la base Airtable sans authentification préalable. Pour ce faire, la session et la signature doivent être extraites manuellement. Visitez l'URL de la base partagée publiquement dans votre navigateur et connectez-vous, si nécessaire. Cliquez sur le menu de l'application en cliquant dans le coin supérieur droit -> « Plus d'outils » -> « Outils du développeur ». Ouvrez l'onglet « Application » (dans Firefox « Stockage ») et cliquez sur « https://airtable.com ». Trouvez maintenant les valeurs des cookies « __Host-airtable-session » et « __Host-airtable-session.sig », et collez-les dans les entrées ci-dessous.", - "useSession": "Authentification de la session", - "useSessionHelper": "Utilisez cette option si la base partagée publiquement nécessite une authentification.", - "sessionLabel": "Cookie de session (__Host-airtable-session)", - "sessionSignatureLabel": "Cookie de signature de session (__Host-airtable-session.sig)" - }, - "chooseSingleSelectField": { - "addSelectField": "Ajouter une liste déroulante", - "warningWhenNothingToChooseOrCreate": "Il n’y a pas de champ de sélection unique disponible et vous n’avez pas les permissions nécessaires pour en créer un." - }, - "viewDecorator": { - "decorator": "Couleur | 1 Couleur | {count} Couleurs" - }, - "shareViewEnablePasswordModal": { - "newPasswordTitle": "Entrez un mot de passe", - "newPasswordDescription": "Le lien public ne sera accessible qu'après avoir saisi le mot de passe. Ce mot de passe sera enregistré de manière cryptée.", - "newPasswordSave": "Enregistrer le mot de passe", - "changePasswordTitle": "Modifier le mot de passe", - "changePasswordDescription": "En changeant le mot de passe, le précédent ne fonctionnera plus. Ce mot de passe sera enregistré de manière cryptée.", - "changePasswordSave": "Modifier le mot de passe" - }, - "viewDecoratorContext": { - "addDecorator": "Ajouter un décorateur" - }, - "shareViewDisablePasswordModal": { - "title": "Désactiver la protection par mot de passe", - "disable": "Désactiver", - "description": "Êtes-vous sûr de vouloir désactiver la protection par mot de passe de ce lien public ? En le désactivant, le mot de passe sera supprimé et il ne sera plus possible de le récupérer." - }, - "publicViewAuthLogin": { - "title": "Cette page est protégée par un mot de passe", - "enter": "Valider", - "error": { - "incorrectPasswordText": "Le mot de passe fourni est invalide.", - "incorrectPasswordTitle": "Mot de passe invalide" - }, - "description": "Saisissez un mot de passe valide pour accéder à la page." - }, - "apiDocsTableDeleteRows": { - "description": "Supprime les lignes {name} existantes.", - "items": "Un tableau d'identifiants de lignes qui doivent être supprimées." - }, - "apiDocsTableUpdateRows": { - "id": "L'identifiant de la ligne.", - "description": "Mettre à jour les lignes {name} existantes." - }, - "apiDocsTableCreateRows": { - "description": "Créer de nouvelles lignes {name}.", - "before": "Si il est fourni, les lignes nouvellement créées seront positionnées avant la ligne avec l’identifiant spécifié." - }, - "importer": { - "loading": "Chargement du fichier", - "decoding": "Décodage", - "inProgress": "En cours…", - "preparing": "Préparation", - "parsing": "Analyse des données", - "fieldDefaultName": "Champ {count}" - }, - "databaseDashboardSidebarLinks": { - "apiDocumentation": "Documentation de l'API" - }, - "formViewMeta": { - "includeRowId": "Utilisez {row_id} pour inclure l'identifiant de la ligne a créer dans l'URL." - }, - "formViewField": { - "required": "obligatoire", - "showWhenMatchingConditions": "afficher lorsque les conditions sont remplies", - "addCondition": "Ajouter une condition", - "descriptionPlaceholder": "Description", - "addConditionGroup": "Ajouter un groupe de conditions", - "showFieldAs": "Afficher le champ comme", - "includeAllSelectOptionsHelper": "Choisissez les options qui doivent être incluses dans le formulaire à l'aide de cette liste déroulante", - "noSelectOptions": "Il n'y a pas d'options disponibles.", - "includeAllSelectOptions": "inclure toutes les options sélectionnées", - "noCollaboratorsAvailable": "Il n'y a pas de collaborateurs disponibles.", - "cannotSumitValues": "Ce champ est en lecture seule et ne sera pas affiché dans le formulaire." - }, - "duplicateFieldContext": { - "duplicate": "Dupliquer le champ", - "cloneData": "Copier les données", - "soon": "Bientôt disponible", - "readOnlyField": "Les valeurs des cellules seront remplies automatiquement." - }, - "snapshotsModal": { - "title": "sauvegardes", - "snapshotRestoredErrorMessage": "La sauvegarde n'a pas pu être restaurée. Veuillez réessayer plus tard.", - "description": "Les sauvegardes sont une copie complète de votre {applicationTypeName} au moment où elles ont été créés. Une duplication des données sera créée lors de la restauration. Les sauvegardes sont automatiquement supprimées après un an.", - "descriptionLimits": "Vous pouvez avoir un maximum de 0 sauvegarde par projet. | Vous pouvez avoir un maximum de 1 sauvegarde par projet. | Vous pouvez avoir un maximum de {n} sauvegardes par projet.", - "createLabel": "Créer une nouvelle sauvegarde", - "create": "Créer une sauvegarde", - "snapshotDeletedErrorTitle": "Une erreur est survenue", - "snapshotDeletedErrorMessage": "La sauvegarde n'a pas pu être supprimée. Veuillez réessayer plus tard.", - "limitReached": "La limite du nombre maximum de sauvegardes a été atteinte.", - "snapshot": "Sauvegarde", - "importingState": "En cours de création", - "snapshotRestoredErrorTitle": "Une erreur s'est produite", - "reset": "Créer une autre", - "cancel": "Annuler", - "noSnapshots": "Il n'y a pas encore de sauvegarde pour cette application.", - "nameAlreadyExists": "Une sauvegarde portant ce nom existe déjà." - }, - "deleteSnapshotModal": { - "content": "Êtes-vous sûr·e de vouloir supprimer définitivement la sauvegarde {nom} ?", - "confirm": "Supprimer", - "title": "Supprimer la sauvegarde" - }, - "snapshotListItem": { - "restore": "restaurer", - "delete": "supprimer", - "created": "créée" - }, - "rowEditFieldMultipleCollaborators": { - "addCollaborator": "Choisir un collaborateur" - }, - "gridViewFieldFile": { - "dropHere": "Déposer ici", - "dropFileHere": "Déposez les fichiers ici" - }, - "formViewHeader": { - "preview": "Aperçu", - "mode": "Mode", - "fields": "Champs" - }, - "formViewModePreviewForm": { - "addCoverImage": "Ajouter une image d'entête", - "noFields": "Ce formulaire ne comporte aucun champ. Cliquez sur un champ dans la barre latérale gauche pour en ajouter un.", - "addLogo": "Ajouter un logo", - "titlePlaceholder": "Titre", - "descriptionPlaceholder": "Description", - "noFieldsContent": "Cliquez sur un champ dans la barre latérale gauche pour en ajouter un.", - "noFieldsTitle": "Ce formulaire n'a pas de champs" - }, - "table": { - "chooseView": "Choisir la vue", - "adjacentRow": { - "notification": { - "notFound": { - "next": { - "message": "Il n'y a pas de ligne suivante", - "title": "Plus de rangées" - }, - "previous": { - "title": "Plus de lignes", - "message": "Il n’y a pas de ligne précédente" - } + "webhookModal": { + "title": "Webhooks de {name}", + "createWebhook": "Ajouter un webhook", + "backToList": "Retour à la liste" + }, + "deleteWebhookModal": { + "title": "Supprimer {webhookName}", + "deleteButton": "Supprimer le webhook", + "body": "Êtes-vous sûr·e de vouloir supprimer ce webhook ? Vous ne serez plus en mesure de le restaurer par la suite." + }, + "webhookList": { + "noWebhooksMessage": "Vous n'avez pas encore créé de webhook. Les webhooks peuvent être utilisés afin d'informer un système tiers quand une ligne a été créée, modifiée, supprimée dans Baserow." + }, + "testWebhookModal": { + "title": "Test du webhook", + "unreachable": "Serveur inaccessible" + }, + "webhookForm": { + "inputLabels": { + "name": "Nom", + "value": "Valeur", + "requestMethod": "Méthode", + "url": "URL", + "userFieldNames": "Noms des champs", + "events": "Quels événements déclenchent ce webhook ?", + "headers": "Entêtes additionels", + "example": "Example de requête" }, - "error": { - "message": "Une erreur s’est produite lors de la récupération de la ligne adjacente", - "title": "Une erreur s'est produite" - } - }, - "toast": { - "notFound": { - "previous": { - "message": "Il n’y a pas de ligne précédente", - "title": "Plus de ligne" - }, - "next": { - "title": "Plus de ligne", - "message": "Il n’y a pas de ligne suivante" - } + "errors": { + "urlField": "Doit être une URL valide commençant par « https:// » ou « http:// ».", + "invalidHeaders": "Un des entête est invalide." + }, + "checkbox": { + "sendUserFieldNames": "Utiliser les noms de champ plutôt que les identifiants" + }, + "radio": { + "allEvents": "Tous les événements", + "customEvents": "Choisir les événements" }, + "triggerButton": "Tester le webhook", + "deactivated": { + "title": "Le webhook est désactivé", + "content": "Ce webhook a été désactivé car il produisait trop d'échecs consécutifs. Veuillez vérifier l'historique des appels pour plus d'information. Cliquez sur le bouton ci-dessous pour l'activer de nouveau. Pensez à enregistrer le webhook avant de l'activer.", + "activate": "Activer" + }, + "deprecatedEventType": { + "convert": "Convertir", + "title": "Type d'événement obsolète", + "description": "Ce webhook ne reçoit pas d'informations sur les lignes modifiées en une seule opération. Veuillez le convertir en un type d'événement de type lot. Cette opération modifie le contenu JSON pour un format qui permet de contenir plusieurs lignes." + }, + "triggerWhenFieldsHaveChanged": "Déclencher en cas de modification des champs", + "helpTriggerWhenFieldsHaveChanged": "Ne sera déclenché que si la valeur de la cellule des champs choisis change." + }, + "webhook": { + "details": "détails", + "lastCall": "Dernier déclenchement : {lastCallTime}", + "noCalls": "Jamais déclenché", + "callLog": "Historique des appels", + "triggerDescription": "Déclenché par tous les événements | Déclenché par un événement | Déclenché par {count} événements" + }, + "createWebhook": { + "errorTableWebhookMaxLimitExceededTitle": "Nombre maximum de webhook dépassé", + "errorTableWebhookMaxLimitExceededDescription": "Vous ne pouvez pas créer de webhook car le nombre maximum de webhook par table a été atteint." + }, + "sidebar": { + "viewAPI": "Documentation de l'API", + "createTable": "Nouvelle table" + }, + "sidebarItem": { + "exportTable": "Exporter la table", + "webhooks": "Webhooks", + "notSynced": "non synchronisé", + "lastSynced": "Dernière synchronisation", + "sync": "Synchroniser la table", + "updateSyncConfig": "Mettre à jour la configuration de la synchronisation" + }, + "apiToken": { + "create": "créer", + "read": "lire", + "update": "modifier", + "delete": "supprimer", + "tokenPrefix": "Jeton :", + "viewAPIDocs": "Documentation de l'API", + "generateNewToken": "Générer un nouveau jeton", + "showOrHide": "Montrer ou masquer le jeton", + "copyToClipboard": "Copier dans le presse-papier", + "showDatabases": "Afficher le détail" + }, + "apiTokenSettings": { + "title": "Jetons d'accès à la base", + "createToken": "Créer un jeton", + "noTokensMessage": "Vous n'avez pas encore créé de jeton d'accès. Vous pouvez utiliser les jetons d'accès à la base pour vous authentifier auprès de l'API REST qui vous permet de créer, lire, modifier et supprimer des lignes. Il est possible de définir des permissions différentes pour chaque table.", + "hasFullPermissions": "Toutes les permissions, pour les enfants également.", + "hasOnlySelectedPermissions": "Uniquement les permissions sélectionnées pour les enfants.", + "noPermissions": "Aucune permission.", + "createNewTitle": "Créer un nouveau jeton", + "backToOverview": "Retour" + }, + "apiTokenForm": { + "nameLabel": "Nom", + "workspaceLabel": "Projet" + }, + "apiDocsSelectDatabase": { + "needOneDatabase": "Vous devez avoir au moins une base de données afin de consulter la documentation de l'API." + }, + "apiDocsExample": { + "requestSample": "Example de requête", + "responseSample": "Example de réponse", + "userFieldNames": "Nom des champs utilisateur" + }, + "apiDocsParameter": { + "optional": "optionnel", + "defaultValue": "Valeur par défaut : {value}" + }, + "apiDocsTableGetRow": { + "description": "Retourne une ligne de la table {name}.", + "rowId": "L'identifiant unique de la ligne demandée." + }, + "apiDocsErrors": { + "errorCode": "Code", + "name": "Nom", + "description": "Description", + "okDescription": "La requête a été executée avec succès.", + "badRequestDescription": "La requête contient des valeurs invalides ou le contenu JSON n'a pas pu être décodé.", + "unauthorizedDescription": "Le jeton d'authentification utilisé est invalide.", + "notFoundDescription": "La ligne ou la table n'a pas été trouvée.", + "requestEntityTooLargeDescription": "La taille du contenu de la requête dépasse la taille maximale autorisée.", + "internalErrorDescription": "Le serveur a rencontré une erreur interne inatendue.", + "badGatewayDescription": "Baserow est en cours de démarrage ou une interruption du service est en cours.", + "unavailableDescription": "Le serveur n'a pas répondu dans les délais impartis." + }, + "apiDocsTableFields": { + "tableTitle": "Table {name}", + "tableId": "L'identifiant de cette table est :", + "description": "Chaque ligne dans la table « {name} » contient les champs décrits ci-dessous.", + "id": "ID", + "name": "Nom", + "type": "Type", + "compatibleFilters": "Filtres compatibles" + }, + "apiDocsTableListRows": { + "description": "Afin de lister les lignes de la table *{name}* une requête de type `GET` doit être envoyée au point d'accès de la table *{name}*. La réponse est paginée et par défault la première page est retournée. La page désirée peut-être récupérée en définissant les paramètres de requête `page` et `size`.", + "page": "Permet de choisir la page.", + "size": "Permet de définir le nombre de ligne par page.", + "userFieldNames": "Quand la valeur fournie pour le paramètre GET `user_field_names` est une des valeur suivante : `y`, `yes`, `true`, `t`, `on`, `1`, ou `\"\"`, les noms des champs du résultat seront ceux définis par l'utilisateur.\n\nSi le paramêtre `user_field_names` n'est pas défini ou n'est pas l'une des valeurs citées plus haut, alors les noms des champs seront `field_` suivis par l'identifiant du champ. Par exemple `field_1` fait référence au champ avec l'identifiant `1`.\n\n De plus, quand `user_field_names` est défini, vous devez également fournir les noms définis par l'utilisateur pour les paramètres `order_by`, `include` et `exclude`.", + "search": "Quand ce paramètre est défini, seules les lignes qui satisfont la recherche seront retournées.", + "orderBy": "Ce paramètre permet d'ordonner les lignes du résultat à l'aide d'une liste de champs séparés par une virgule. Par défaut ou s'il est préfixé par un `+` un champ est ordonné par ordre croissant (A-Z), en le préfixant par un `-` il sera ordonné par ordre décroissant (Z-A).\n\n #### Avec `user_field_names` :\n\n `order_by` doit être une liste de noms définis par l'utilisateur des champs sur lesquels s'appuient l'ordre séparés par des virgules. Par exemple si vous fournissez la valeur suivante `order_by=Mon champ,-Mon champ 2` les lignes seront ordonnées par le champ appelé `Mon champ` par ordre croissant. Si certaines lignes ont la même valeur pour `Mon champ` ce sous ensemble sera ordonné par la valeur du champ `Mon champ 2` par ordre décroissant.\n\n Assurez vous que les champs qui commencent par un `+` ou un `-` soit explicitement préfixés par un autre `+` ou `-`. Ex : `+-Nom`.\n\n Le nom des champs contenant des virgules doit être entouré par des guillemets : `\"Nom ,\"`. Si le nom des champs contient des guillemets, ceux-ci doivent être protégés en utilisant le caractère `\\`. Ex : `Nom \\\"`.\n\n #### Sans `user_field_names` :\n\n `order_by` doit être une liste de `field_` suivi par l'identifiant du champ à ordonner, séparés par des virgules. Par exemple si vous fournissez la valeur suivante pour ce paramètre `order_by=field_1,-field_2` les lignes seront ordonnées par le champ `field_1` par ordre croissant. Si certaines lignes ont la même valeur pour ce champ, ce sous ensemble sera ordonné par la valeur du champ `field_2` par ordre décroissant.", + "filter": "Ce paramètre permet de filtrer les lignes avec les même filtres que ceux disponibles pour les vues. Plusieurs filtres peuvent être définis simultanéement s'il suivent le même format. La variable `field` permet d'indiquer le champ à filtrer, tandis que `filter` permet de choiser le type de filtre.\n\n#### Avec l'option `user_field_names` :\n\nPar exemple si vous utilisez la valeur suivante : `filter__Nom__equal=test`, seule les lignes pour lesquelles la valeur du champ nommé `Nom` est égale à *test* seront retournées. Cette méthode est rétro-compatible et test également en utilisant `field_id` si le test échoue pour le champ `Nom`.\n\n#### Sans l'option `user_field_names` :\n\nPar exemple si vous utilisez la valeur suivante : `filter__field_1__equal=test`, seule les lignes pour lesquelles la valeur du champ `field_1` est égale à *test* seront retournées.\n\nVeuillez notez que si le paramètre `filters` est fournie, ce paramètre sera ignoré. ", + "filterLink": "Une liste des filtres disponibles peut être consultée ici.", + "filterType": "- `AND` : indique que les lignes doivent satisfaire tous les filtres définis.\n- `OR` : indique que les lignes doivent satisfaire au moins l'un des filtres définis pour être retournées.\n\n Cela fonctionne uniquement quand au moins 2 filtres sont définis.", + "include": "Par défaut, tous les champs de la table sont retournés. Vous pouvez définir le sous ensemble des champs qui seront dans les résultats en fournissant une valeur pour ce paramètre.\n\n#### Avec `user_field_names` :\n\n`include` doit être une liste des noms définis par l'utilisateur des champs que vous souhaitez conserver, séparés par une virgule. Par exemple, si vous fournissez la valeur suivante `include=Mon champ,-Mon champ 2` alors seul ces champs seront retournés dans les résultats (sauf si vous les avez explicitement exclus avec le paramètre suivant).\n\nLe nom des champs contenant des virgules doit être entouré par des guillemets : `\"Nom ,\"`. Si le nom des champs contient des guillemets, ceux-ci doivent être protégés en utilisant le caractère `\\`. Ex : `Nom \\\"`.\n\n#### Sans `user_field_names` :\n\n`include` doit être une liste de `field_` suivis par l'identifiant d'un champ à inclure dans le résultat, séparé par des virgules. Par exemple, si vous fournissez la valeur suivante `include=field_1,field_2` alors les champs d'identifiant `1` et `2` seront les champs présents dans le résultat (sauf si vous les avez explicitement exclus avec le paramètre suivant).", + "exclude": "Par défaut, tous les champs de la table sont retournés dans les résultats. Vous pouvez choisir un sous ensemble de champs qui seront exclus des résultats en définissant une valeur pour ce paramètre.\n\n#### Avec `user_field_names` :\n\n`exclude` doit être une liste des noms définis par l'utilisateur des champs que vous souhaitez exclure, séparés par une virgule. Par exemple, si vous fournissez la valeur suivante : `exclude=Mon champ,-Mon champ 2` alors ces deux champs seront exclus des résultats.\n\nLe nom des champs contenant des virgules doit être entouré par des guillemets : `\"Nom ,\"`. Si le nom des champs contient des guillemets, ceux-ci doivent être protégés en utilisant le caractère `\\`. Ex : `Nom \\\"`.\n\n#### Sans `user_field_names` :\n\n`exclude` doit être une liste de `field_` suivis par l'identifiant d'un champ à exclure du résultat, séparé par des virgules. Par exemple, si vous fournissez la valeur suivante : `exclude=field_1,field_2` alors les champs avec l'identifiant `1` et `2` seront exclus.", + "viewId": "Par défaut, aucun des filtres et tris autres que ceux définis dans les paramètres de la requête ne sont appliqués. Vous pouvez définir les filtres et les tris d'une vue en fournissant son `id` dans le paramètre GET `view_id`. Par exemple, si vous fournissez le paramètre GET suivant `view_id=1`, les filtres et les tris définis dans la vue avec l'id `1` seront appliqués. Vous pouvez trouver le `view_id` dans le menu contextuel d'une vue donnée. Il s'agit du nombre entre parenthèses derrière le nom de la vue. \n\n #### Avec `filter__{'{'}field{'}'}__{'{'}filter{'}'}` \n\n Le filtre fourni dans le paramètre de la requête et les filtres définis dans la vue seront appliqués.\n\n #### Avec `order_by` \n\n Si `order_by` est fourni, le tri défini dans la vue sera ignoré.", + "filtersBuilder": "Ouvrir le générateur de filtres", + "filters": "Les lignes peuvent être filtrées en utilisant les mêmes filtres que ceux disponibles pour les vues. Ce paramètre accepte une chaîne sérialisée en JSON contenant l'arbre de filtre à appliquer pour cette vue. L'arbre de filtre est une structure imbriquée contenant les filtres qui doivent être appliqués.\n\n#### Avec `user_field_names` :\n\nUn exemple d'arbre de filtre valide est le suivant : `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": \\\"Name\\\", \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`.\n\n#### Sans `user_field_names` :\\n\\nPar exemple, si vous fournissez le paramètre GET suivant : `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": 1, \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`\n\nVeuillez noter que si ce paramètre est fourni, tous les autres `filter__{'{'}field{'}'}__{'{'}filter{'}'}` seront ignorés, ainsi que le paramètre `filter_type`.", + "join": "Permet de consulter les valeurs des champs d'une table liée par l'intermédiaire des champs de lien de la table courante. Le nom du paramètre doit être le nom d'un champ de lien existant, suivi de `__join`. La valeur doit être une liste de noms de champs pour lesquels vous souhaiter inclure les valeurs. Vous pouvez fournir un ou plusieurs champs cibles. Il n'est pas possible de rechercher la valeur d'un champ de lien dans la table liée.\n\n #### Avec `user_field_names` :\n\n `join` doit être une liste de noms de champs séparés par des virgules à inclure dans les résultats. Par exemple, si vous fournissez le paramètre GET suivant `LinkRowField__join=MyField,MyField2`, les valeurs de `MyField` et `My Field2` dans la table liée par `LinkRowField` seront incluses dans la réponse.\n\n#### Sans `user_field_names` :\n\n `join` doit être une liste de `field_` séparés par des virgules, suivi de l'identifiant du champ à inclure dans les résultats. Par exemple, si vous fournissez le paramètre GET suivant `field_1__join=field_2,field_3` alors les valeurs de `field_2` et `field_3` dans la table liée par `field_1` seront incluses dans la réponse.", + "test": "`{'{'}\"filter_type\": \"AND\", \"filters\": [{'{'}\"field\": \"Name\", \"type\": \"equal\", \"value\": \"test\"{'}'}]{'}'}" + }, + "apiDocsIntro": { + "intro": "L'API de la base {name} offre un moyen simple d'intégrer des données provenant d'un système externe. L'API suit les principes d'architecture REST, utilise le format JSON pour encoder les données, s'appuie sur les codes HTTP standards et propose des messages d'erreurs à la fois techniques mais également lisibles par les humains pour signaler les dysfonctionnements.", + "autoDocDescription": "Cette documentation est générée automatiquement à partir des table et des champs disponibles dans votre basse de données. Si vous effectuez des modifications sur la base, les tables ou bien sur les champs des tables, cela peut également modifier l'API. Par conséquent, assurez-vous de mettre à jour les clients de votre API dans ce cas.", + "databaseId": "L´identifiant de la base est :", + "jsClient": "Exemple JavaScript de la requête d'API :", + "pythonClient": "Exemple en Python de la requête d'API :" + }, + "apiDocsTableListFields": { + "description": "Afin de lister les champs de la table {name} une requête de type {get} doit être envoyé auprès du point d'accès des champs de celle-ci. Le jeton d'authentification doit avoir les droits de création, modification et suppression afin de pouvoir lister les champs de la table.", + "resultFieldProperties": "Propriétés des champs de la réponse", + "id": "Clé primaire du champ. Permet de générer le nom de la colonne en base de données en ajoutant le prefix `field_`.", + "name": "Nom du champ.", + "tableId": "ID de table associée.", + "order": "Ordre du champ dans la table. 0 est pour le premier champ.", + "primary": "Indique si le champ est une clé primaire. Si la valeur est `true` le champ ne peut être effacé et ses valeurs doivent représenter la ligne entière.", + "type": "Type défini pour ce champ.", + "extraProps": "Certaines propriétés ne sont pas décrites ici car elles sont spécifiques au type de champ concerné.", + "readOnly": "Indique si le champ est un champ de lecture uniquement. Si oui, il n'est pas possible de mettre à jour la valeur de la cellule.", + "descriptionField": "Description du champ" + }, + "apiDocsTableDeleteRow": { + "description": "Supprime une ligne de la table *{name}*.", + "rowId": "L'identifiant unique de la ligne à supprimer." + }, + "apiDocsTableMoveRow": { + "description": "Déplace une ligne existante de la table *{name}* avant une autre ligne. Si le paramètre `before_id` n'est pas fourni, la ligne est déplacée à la fin de la table.", + "rowId": "Identifiant unique de la ligne à déplacer.", + "before": "Permet de définir l'identifiant de la ligne avant laquelle la ligne choisie doit être déplacée. Si aucune valeur n'est fournie, la ligne est déplacée à la fin de la table." + }, + "apiDocsTableUpdateRow": { + "description": "Modifie une ligne existante de la table {name}.", + "rowId": "L'identifiant unique de la ligne à modifier.", + "before": "Si un identifiant de ligne est fourni, la ligne sera placée avant la ligne portant cet identifiant." + }, + "apiDocsTableCreateRow": { + "description": "Créé une nouvelle ligne pour la table {name}.", + "before": "Si ce paramètre est fourni, la nouvelle ligne sera positionnée avant la ligne portant l'identifiant fourni." + }, + "apiDocsAuth": { + "description": "Baserow utilise un système d'authentification simple par jeton. Vous devez générer au moins un jeton d'authentification dans votre {settingsLink} afin d'utiliser les API suivantes. Il est possible de définir des droits de création, lecture, modification et suppression par table et ce pour chaque jeton. Pour vous authentifier, fournissez le jeton via l'entête HTTP « Authorization » de la requête. Tous les appels à l'API doivent être authentifiés et réalisés via le protocole sécurisé HTTPS.", + "settingsLink": "compte" + }, + "apiDocsFilters": { + "filter": "Filtre", + "exampleValue": "Exemple", + "example": "Exemple complet", + "field": "La valeur {name}", + "deprecated": "obsolète" + }, + "fieldTextSubForm": { + "placeholder": "Texte par défault" + }, + "fieldSingleSelectSubForm": { + "optionsLabel": "Options", + "defaultOptionLabel": "Option par défaut" + }, + "fieldSingleSelectDropdown": { + "notFound": "Option manquante" + }, + "fieldDateSubForm": { + "dateFormatLabel": "Format de date", + "dateFormatEuropean": "Européen", + "dateFormatUS": "Américain", + "dateFormatISO": "ISO", + "includeTimeLabel": "Inclure l'heure", + "timeFormatLabel": "Format de l'heure", + "24Hour": "24 heures", + "12Hour": "12 heures", + "showTimezoneLabel": "Afficher le fuseau horaire", + "forceTimezoneLabel": "Définir le fuseau horaire pour tous les collaborateurs", + "forceTimezoneValue": "Fuseau horaire", + "addTimezoneOffsetLabel": "Convertir les valeurs (ajouter {utcOffsetDiff} minutes)", + "subTimezoneOffsetLabel": "Convertir les valeurs (soustraire {utcOffsetDiff} minutes)" + }, + "fieldLinkRowSubForm": { + "noTable": "Vous devez créer au moins une autre table dans la même base de données pour pouvoir créer un lien.", + "selectTableLabel": "Sélectionnez une table", + "hasRelatedFieldLabel": "Créer un champ rapporté", + "limitToView": "Limiter la sélection à la vue", + "limitToViewDescription": "Notez que ceci n'est que visuel. Il est encore possible de faire des relations en dehors de la vue via la table ou l'API.", + "allowMultipleRelations": "Autoriser les relations multiples" + }, + "fieldSelectOptions": { + "add": "Ajouter une option" + }, + "fieldNumberSubForm": { + "typeLabel": "Type numérique", + "integer": "Entier", + "decimal": "Décimal", + "decimalPlacesLabel": "Précision", + "allowNegative": "Autoriser les nombres négatifs", + "separatorLabel": "Séparateur de milliers et de décimales", + "prefixPlaceholder": "Préfixe", + "suffixPlaceholder": "Suffixe", + "prefixAndSuffixLabel": "Préfixe / suffixe", + "spaceComma": "Espace, virgule (1 000 000,00)", + "spacePeriod": "Espace, point (1 000 000.00)", + "commaPeriod": "Virgule, point (1,000,000.00)", + "periodComma": "Point, virgule (1.000.000,00)", + "noFormatting": "Pas de formatage", + "defaultValuePlaceholder": "Saisir une valeur par défaut", + "defaultValueLabel": "Valeur par défaut" + }, + "fieldContext": { + "editField": "Modifier le champ", + "deleteField": "Supprimer le champ", + "hideField": "Masquer le champ", + "showField": "Afficher le champ", + "changePrimaryField": "Changer le champ primaire" + }, + "fieldForm": { + "name": "Nom", + "fieldAlreadyExists": "Un champ avec ce nom existe déjà.", + "nameNotAllowed": "Ce nom de champ n'est pas autorisé.", + "nameTooLong": "Ce nom de champ est trop long.", + "description": "Description", + "addDescription": "Ajouter une description", + "dbIndex": "Index", + "dbIndexError": "Ce type de champ ne peut pas avoir d'index. Veuillez le supprimer avant d'enregistrer ou de modifier le type de champ.", + "dbIndexDescription": "L'indexation peut améliorer considérablement les performances de filtrage, mais ralentit les opérations de création, de mise à jour et de suppression.", + "defaultValueDisabledByConstraint": "Impossible de définir une valeur par défaut avec une contrainte d'unicité", + "dbIndexDisabledTooltip": "L'indexation n'est pas disponible pour ce type de champ." + }, + "fieldLookupSubForm": { + "noTable": "Vous devez créer au moins une autre table dans la même base de données pour pouvoir créer un lien.", + "selectThroughFieldLabel": "Sélectionnez le lien vers la table", + "selectTargetFieldLabel": "Sélectionnez le champ à rapporter" + }, + "fieldFormulaNumberSubForm": { + "typeLabel": "Type numérique", + "integer": "Entier", + "decimal": "Décimal", + "decimalPlacesLabel": "Précision", + "allowNegative": "Autoriser les nombres négatifs" + }, + "fieldRatingSubForm": { + "maxValue": "Max", + "color": "Couleur", + "style": "Style" + }, + "rowCreateModal": { + "addField": "Ajouter un champ" + }, + "selectRowContent": { + "search": "Rechercher dans la table", + "hideFields": "Masquer les champs" + }, + "rowEditModal": { + "addField": "Ajouter un champ", + "showHiddenFields": "Afficher les champs masqués", + "hideHiddenFields": "Masquer les champs cachés" + }, + "rowEditFieldMultipleSelect": { + "addOption": "Choisir une option" + }, + "rowEditFieldFile": { + "addFile": "Ajouter un fichier", + "sizes": { + "0": "Octet(s)", + "1": "Ko", + "2": "Mo", + "3": "Go", + "4": "To", + "5": "Po" + } + }, + "rowEditFieldLinkRow": { + "addLink": "Choisir un lien", + "keepOnlyOneValue": "Ne conserver qu'une seule valeur. Ce champ ne supporte qu'une seule relation. La valeur est sauvegardée s'il ne reste qu'une seule relation." + }, + "tableCSVImporter": { + "chooseFileLabel": "Choisissez un fichier CSV", + "chooseFileDescription": "Vous pouvez importer un CSV existant en envoyant un fichier .CSV avec des données tabulaires. La plupart des tableurs sont capables de réaliser un export au format CSV.", + "chooseFile": "Choisir un fichier CSV", + "columnSeparator": "Sép. de colonne", + "recordSeparator": "Sép. d'enregistrement", + "unitSeparator": "séparateur d'unité", + "encoding": "Encodage", + "firstRowHeader": "La première ligne est l'entête", + "limitFileSize": "La taille maximum du fichier est de {limit}Mo.", + "limitError": "Il n'est pas possible d'importer plus de {limit} lignes.", + "emptyCSV": "Ce fichier CSV est vide." + }, + "tableForm": { + "name": "Nom" + }, + "tableXMLImporter": { + "fileLabel": "Choisissez un fichier XML", + "fileDescription": "Vous pouvez importer un XML existant en envoyant un fichier .XML contenant des données tabulaires, c'est-à-dire :", + "chooseButton": "Choisir un fichier XML", + "processingError": "Une erreur est survenue lors du traitement du XML : {errors}", + "emptyError": "Ce fichier XML est vide.", + "limitFileSize": "La taille maximum du fichier est de {limit}Mo.", + "limitError": "Il n'est pas possible d'importer plus de {limit} lignes." + }, + "tableJSONImporter": { + "fileLabel": "Choisissez un fichier JSON", + "fileDescription": "Vous pouvez importer un JSON existant en envoyant un fichier .json contenant des données tabulaires, c'est-à-dire :", + "chooseButton": "Choisir un fichier JSON", + "encodingLabel": "Encodage", + "processingError": "Une erreur est survenue lors du traitement du JSON : {error}", + "arrayError": "Ce fichier JSON n'est pas un tableau.", + "emptyError": "Ce fichier JSON est vide.", + "limitFileSize": "La taille maximum de fichier est de {limit}Mo.", + "limitError": "Il n'est pas possible d'importer plus de {limit} lignes." + }, + "tablePasteImporter": { + "pasteLabel": "Collez les données tabulaires", + "pasteDescription": "Vous pouvez copier les lignes provenant d'un tableur et les coller ci-dessous.", + "firstRowHeader": "La première ligne est l'entête", + "limitError": "Il n'est pas possible d'importer plus de {limit} lignes." + }, + "importFileModal": { + "title": "Créer une nouvelle table", + "importLabel": "Souhaitez-vous importer des données existantes ?", + "newTable": "Commencer avec une table vide", + "addButton": "Ajouter la table", + "preparing": "Préparation des données...", + "showReport": "Afficher le rapport d'erreur", + "reportTitleFailure": "Lignes en échec", + "importError": "Un problème est survenu lors de l'import du fichier", + "uploading": "Envoi…", + "reportTitleSuccess": "Import réussi mais...", + "openCreatedTable": "Ouvrir la table créée", + "stateRowCreation": "Import en cours…", + "reportMessage": "Les numéro de ligne suivants n'ont pas pu être importés :", + "statePreValidation": "Validation des données...", + "stateCreateTable": "Création de la table...", + "fieldMappingTitle": "Correspondance des champs", + "showTable": "Afficher la table", + "additionalImportTitle": "Importer dans {table}", + "importButton": "Importer", + "fieldMappingDescription": "Nous avons automatiquement fait la correspondance entre les colonnes du fichier et les champs Baserow dans votre table. Vous pouvez les modifier ci-dessous. Toute cellule incompatible avec le type du champ sélectionné restera vide après l'importation.", + "selectImportMessage": "Veuillez sélectionner les données à importer.", + "filePreview": "Aperçu du contenu du fichier", + "importPreview": "Aperçu de l'import", + "changeImporterType": "Modifier le type d'importation", + "defaultName": "Table", + "useUpsertField": "Mettre à jour les lignes si elles existent déjà", + "upsertTooltip": "Faire correspondre les lignes existantes à l'aide d'un champ unique pour remplacer les données par les valeurs importées." + }, + "formulaAdvancedEditContext": { + "textAreaFormulaInputPlaceholder": "Cliquez pour éditer la formule", + "fields": "Champs", + "functions": "Fonctions", + "operators": "Operateurs", + "fieldType": "Un champ de type {type}" + }, + "fieldFormulaInitialSubForm": { + "formulaInputPlaceholder": "Cliquez pour éditer la formule", + "refreshFormulaOptions": "Rafraichir les options" + }, + "formulaFieldItemDescription": { + "syntax": "Syntaxe", + "examples": "Exemples" + }, + "viewSearchContext": { + "searchInRows": "Chercher dans toute la table", + "hideNotMatching": "cacher les lignes sans résultat" + }, + "viewsContext": { + "searchView": "Recherche", + "noViews": "Aucune vue trouvée", + "collaborative": "Collaboratif" + }, + "viewFilterTypeLinkRow": { + "unnamed": "Ligne sans nom {value}", + "choose": "Choisissez une ligne" + }, + "viewFilterContext": { + "addFilter": "Ajouter un filtre", + "disableAllFilters": "Tous désactivés", + "noFilterTitle": "Vous n'avez pas encore définit de filtre", + "noFilterText": "Les filtres permettent de voir uniquement les lignes qui correspondent à vos critères.", + "where": "Quand", + "and": "Et", + "or": "Ou", + "filterTypeNotFound": "Le filtre n'est pas compatible.", + "relatedFieldNotFound": "Le champ associé n'a pas était trouvé.", + "noCompatibleFilterTypesErrorTitle": "Aucun filtre compatible", + "noCompatibleFilterTypesErrorMessage": "Aucun de vos champs n'a de filtre compatible", + "addFilterGroup": "Ajouter un groupe de filtres" + }, + "viewFilterTypeFileTypeDropdown": { + "image": "Image", + "document": "Document" + }, + "createViewModal": { + "createNew": "Créer une vue {view}", + "add": "Ajouter {view}" + }, + "shareViewLink": { + "shareView": "Partager {viewTypeSharingLinkName}", + "shareViewTitle": "Vous n'avez pas encore partagé la vue", + "sharedViewTitle": "Actuellement, {viewTypeSharingLinkName} est partagé·e via un lien privé", + "sharedViewDescription": "Les personnes possédant le lien peuvent voir {viewTypeSharingLinkName}.", + "disableLink": "Désactiver le lien de partage", + "generateNewUrl": "générer un nouveau lien", + "copyURL": "copier le lien", + "EnablePassword": "Restreindre l'accès avec un mot de passe", + "DisablePassword": "L'accès est protégé par un mot de passe", + "ChangePassword": "Changer", + "shareViewText": "Le lien de partage permet à quiconque de consulter les données dans cette vue.", + "shareViewLinkTitle": "Créer un lien privé", + "notSharedYetText": "Permettre à quiconque de consulter les données de cette vue ou de synchroniser les événements avec un calendrier externe.", + "createPrivateLink": "Créer un lien privé" + }, + "viewSortContext": { + "noSortTitle": "Vous n'avez configuré aucun tri", + "noSortText": "Le tri vous permet d'ordonner les lignes selon la valeur d'un champ.", + "sortBy": "Trier par", + "thenBy": "Puis par", + "addSort": "Ajouter un tri" + }, + "viewSort": { + "sort": "Tri | 1 Tri | {count} Tris" + }, + "viewRotateSlugModal": { + "title": "Mettre à jour le lien", + "refreshWarning": "Êtes-vous sûr·e de vouloir mettre à jour le lien vers {viewTypeSharingLinkName} {viewName} ? Après la mise à jour, il ne sera plus possible de consulter {viewTypeSharingLinkName} via l'ancien lien. Les personnes possédant le lien ne seront plus en mesure d'accéder à la page affichant {viewTypeSharingLinkName}.", + "generateNewURL": "Générer une nouvelle URL" + }, + "viewFieldsContext": { + "coverField": "Image d'en-tête", + "noCover": "Pas d'en-tête", + "search": "Chercher un champ", + "hideAll": "Masquer tout", + "showAll": "Afficher tout" + }, + "viewFilterTypeBoolean": { + "selected": "Sélectionné" + }, + "viewFilter": { + "filter": "Filtre | 1 Filtre | {count} Filtres", + "hasAllValuesEqual": "a toutes les valeurs égales", + "hasValueHigherThan": "a une valeur supérieure à", + "hasValueHigherThanOrEqual": "a une valeur supérieure ou égale à", + "hasNotValueLowerThanOrEqual": "n'a pas une valeur inférieure ou égale à", + "hasValueLowerThan": "a une valeur inférieure à", + "hasValueLowerThanOrEqual": "a une valeur inférieure ou égale à", + "hasNotValueHigherThan": "n'a pas une valeur supérieure à", + "hasNotValueHigherThanOrEqual": "n'a pas une valeur supérieure ou égale à", + "hasNotValueLowerThan": "n'a pas une valeur inférieure à" + }, + "viewContext": { + "exportView": "Exporter la vue", + "renameView": "Renommer la vue", + "deleteView": "Supprimer la vue", + "webhooks": "Webhooks", + "duplicateView": "Dupliquer la vue", + "importFile": "Importer un fichier", + "toPersonal": "Vers Personnelle", + "toCollaborative": "Vers Collaborative" + }, + "deleteViewModal": { + "title": "Supprimer la vue {name}", + "description": "Êtes-vous sur·e de vouloir supprimer la vue {name} ? Les données seront préservées, mais les filtres, tris et largeurs des champs associés à la vue seront supprimés.", + "delete": "Supprimer la vue" + }, + "viewForm": { + "name": "Nom", + "whoCanEdit": "Qui peut modifier cette vue ?" + }, + "galleryViewHeader": { + "customizeCards": "Configurer les cartes" + }, + "gridViewHide": { + "hideField": "Cacher les champs | 1 champ caché | {count} champs cachés" + }, + "gridViewFieldType": { + "createFilter": "Définir un filtre", + "sortField": "Trier", + "hideField": "Cacher un champ", + "insertRight": "Insérer à droite", + "insertLeft": "Insérer à gauche", + "duplicate": "Dupliquer le champ", + "dataSyncField": "Le champ est en lecture seule et fait partie de la synchronisation des données de la table.", + "noWriteValues": "Les modifications de ce champ sont limitées.", + "dataSyncFieldTwoWaySync": "Le champ est synchronisé avec la synchronisation des données de la table." + }, + "gridViewRow": { + "rowNotMatchingFilters": "La ligne est filtrée", + "rowNotMatchingSearch": "La ligne ne contient pas le terme recherché", + "rowHasMoved": "La ligne est déplacée" + }, + "gridView": { + "insertRowAbove": "Insérer au dessus", + "insertRowBelow": "Insérer en dessous", + "enlargeRow": "Afficher la ligne", + "deleteRow": "Supprimer la ligne", + "rowCount": "Acune ligne | 1 ligne | {count} lignes", + "duplicateRow": "Dupliquer la ligne", + "selectRow": "Sélectionner la ligne", + "copyCells": "Copier les cellules", + "deleteRows": "Supprimer les lignes", + "hiddenRowsInsertedTitle": "Lignes ajoutées", + "hiddenRowsInsertedMessage": "{number} nouvelles lignes ont été ajoutées, mais ne sont pas visibles en raison des filtres actifs.", + "copiedRowURLMessage": "L'URL de la ligne {id} a été copiée.", + "copiedRowURL": "URL de la ligne copiée", + "copyRowURL": "Copier l'URL de la ligne", + "tooManyItemsTitle": "Trop d'éléments", + "tooManyItemsDescription": "Il n'est pas possible de mettre à jour plus de {limit} lignes à la fois, c'est pourquoi seule la première a été mise à jour.", + "generateCellsValues": "Générer des valeurs avec l'IA", + "AIValuesGenerationErrorTitle": "La génération de valeur par l'IA a échoué", + "AIValuesGenerationErrorMessage": "Veuillez vérifier votre API_KEY et le modèle sélectionné.", + "copyCellsWithHeader": "Copier les cellules avec l'en-tête", + "generateAllAiValues": "Générer toutes les valeurs" + }, + "gridViewFieldLinkRow": { + "unnamed": "Ligne sans nom {value}", + "keepOnlyOneValue": "Ne conserver qu'une seule valeur" + }, + "gridViewIdentifierOptions": { + "id": "Identifiant de ligne", + "count": "Compte" + }, + "previewAny": { + "externalWarning": "Ouvrir un fichier via un service externe expose votre fichier à leurs serveurs." + }, + "exportTableModal": { + "failedTitle": "L'export a échoué", + "failedDescription": "L'export n'a pas pu aboutir en raison d'une erreur serveur.", + "cancelledTitle": "Export annulé", + "cancelledDescription": "L'export a été annulé.", + "title": "Exporter {name}" + }, + "exporterTypeChoices": { + "formatLabel": "Vers quel format souhaitez-vous réaliser l'export ?" + }, + "exportTableForm": { + "viewLabel": "Sélectionnez la vue à exporter :", + "typeError": "Aucun export disponible, veuillez sélectionner une autre vue ou la table complète." + }, + "exportTableLoadingBar": { + "export": "Exporter", + "download": "Télécharger" + }, + "exportTableDropdown": { + "exportEntireTable": "Exporter la table entière" + }, + "tableCSVExporter": { + "columnSeparatorLabel": "Séparateur de colonne", + "recordSeparator": "Sép. d'enregistrement", + "unitSeparator": "Sép. d'unité", + "encodingLabel": "Encodage", + "firstRowIsHeaderLabel": "La première ligne contient l'entête", + "includeHeader": "Inclure les noms de champs comme en-tête" + }, + "apiDocsDatabase": { + "pageTitle": "Documentation de l'API de la base {name}", + "back": "Retour à l'accueil", + "openDatabase": "Voir la base de données" + }, + "apiDocsComponent": { + "title": "API REST", + "intro": "Après avoir créé votre base de données et une clé d'API dans votre {settingsLink} Baserow fourni ses propres API REST pour créer, lire, mettre à jour et supprimer des lignes.", + "settings": "compte", + "selectApplicationTitle": "Choisissez une base de donnée :", + "signIn": "S'identifier pour commencer", + "back": "Retourner à l'accueil" + }, + "viewAggregationType": { + "checkedCount": "Cochées", + "notCheckedCount": "Non cochées", + "checkedPercentage": "Pourcentage de cochées", + "notCheckedPercentage": "Pourcentage de non cochées", + "min": "Min", + "max": "Max", + "earliestDate": "Première date", + "earliestDateShort": "Début", + "latestDate": "Dernière date", + "latestDateShort": "Fin", + "uniqueCount": "Unique", + "sum": "Somme", + "average": "Moyenne", + "median": "Médiane", + "stdDev": "Écart type", + "stdDevShort": "Écart type", + "variance": "Variance", + "notEmptyPercentage": "Pourcentage de renseignées", + "notEmptyCount": "Renseignées", + "emptyCount": "(Vides)", + "emptyPercentage": "Pourcentage de vides", + "count": "Compter", + "distribution": "Distribution", + "othersCount": "Autres" + }, + "databaseForm": { + "importLabel": "Souhaitez-vous importer des données existantes ?", + "airtableLabel": "Importer à partir d'Airtable", + "emptyLabel": "Base de donnée vierge" + }, + "importFromAirtable": { + "airtableShareLinkTitle": "Partager un lien vers votre Base", + "airtableShareLinkDescription": "Pour importer une base Airtable, vous devez au préalable créer un lien de partage de la base que vous souhaitez copier. Dans Airtable cliquez sur le bouton « share » dans le coin en haut à droite après avoir ouvert votre base. Ensuite, vous devez choisir l'option « Share via link ». Dans la fenêtre modale qui s'ouvre puis cliquez sur le bouton « Share publicly » et enfin cliquez sur « Enable shared base link ». Copiez alors le lien publique généré et collez-le dans le champ suivant.", + "airtableShareLinkBeta": "Cette fonctionnalité importera la plupart des données, mais il existe des incompatibilités. Un tableau nommé \"Rapport d'importation Airtable\" sera donc créé et contiendra la liste des éléments qui n'ont pas été importés ou qui ont été partiellement importés.", + "airtableShareLinkPaste": "Collez le lien ici", + "importButtonLabel": "Importer à partir de Airtable", + "openButtonLabel": "Ouvrir la base importée", + "importError": "Une erreur est survenue", + "statePending": "En attente", + "stateFailed": "Échec", + "stateFinished": "Terminé", + "stateDownloadingBase": "Téléchargement du schéma de la base", + "stateConverting": "Conversion vers Baserow", + "stateDownloadingFiles": "Téléchargement des fichiers", + "stateImporting": "Import en cours", + "stateImportingTable": "Import de la table {table}", + "errorJobAlreadyRunningTitle": "Déjà en cours", + "errorJobAlreadyRunningDescription": "Une autre tâche est déjà en cours. Vous devez attendre que celle-ci finisse avant d'en démarrer une autre.", + "linkError": "Le lien devrait ressembler à : https://airtable.com/shrxxxxxxxxxxxxxx", + "skipFilesHelper": "Une base Airtable contenant de nombreux fichiers peut ralentir l'importation. L'activation de cette option permet d'ignorer l'importation des fichiers.", + "skipFiles": "Ne pas importer les fichiers", + "sessionDescription": "Si l'importation répond par « The Airtable base requires authentication. », il se peut que les paramètres organisationnels d'Airtable empêchent l'accès à la base Airtable sans authentification préalable. Pour ce faire, la session et la signature doivent être extraites manuellement. Visitez l'URL de la base partagée publiquement dans votre navigateur et connectez-vous, si nécessaire. Cliquez sur le menu de l'application en cliquant dans le coin supérieur droit -> « Plus d'outils » -> « Outils du développeur ». Ouvrez l'onglet « Application » (dans Firefox « Stockage ») et cliquez sur « https://airtable.com ». Trouvez maintenant les valeurs des cookies « __Host-airtable-session » et « __Host-airtable-session.sig », et collez-les dans les entrées ci-dessous.", + "useSession": "Authentification de la session", + "useSessionHelper": "Utilisez cette option si la base partagée publiquement nécessite une authentification.", + "sessionLabel": "Cookie de session (__Host-airtable-session)", + "sessionSignatureLabel": "Cookie de signature de session (__Host-airtable-session.sig)" + }, + "chooseSingleSelectField": { + "addSelectField": "Ajouter une liste déroulante", + "warningWhenNothingToChooseOrCreate": "Il n’y a pas de champ de sélection unique disponible et vous n’avez pas les permissions nécessaires pour en créer un." + }, + "viewDecorator": { + "decorator": "Couleur | 1 Couleur | {count} Couleurs" + }, + "shareViewEnablePasswordModal": { + "newPasswordTitle": "Entrez un mot de passe", + "newPasswordDescription": "Le lien public ne sera accessible qu'après avoir saisi le mot de passe. Ce mot de passe sera enregistré de manière cryptée.", + "newPasswordSave": "Enregistrer le mot de passe", + "changePasswordTitle": "Modifier le mot de passe", + "changePasswordDescription": "En changeant le mot de passe, le précédent ne fonctionnera plus. Ce mot de passe sera enregistré de manière cryptée.", + "changePasswordSave": "Modifier le mot de passe" + }, + "viewDecoratorContext": { + "addDecorator": "Ajouter un décorateur" + }, + "shareViewDisablePasswordModal": { + "title": "Désactiver la protection par mot de passe", + "disable": "Désactiver", + "description": "Êtes-vous sûr de vouloir désactiver la protection par mot de passe de ce lien public ? En le désactivant, le mot de passe sera supprimé et il ne sera plus possible de le récupérer." + }, + "publicViewAuthLogin": { + "title": "Cette page est protégée par un mot de passe", + "enter": "Valider", "error": { - "message": "Une erreur s’est produite lors de la récupération de la ligne adjacente", - "title": "Une erreur est survenue" + "incorrectPasswordText": "Le mot de passe fourni est invalide.", + "incorrectPasswordTitle": "Mot de passe invalide" + }, + "description": "Saisissez un mot de passe valide pour accéder à la page." + }, + "apiDocsTableDeleteRows": { + "description": "Supprime les lignes {name} existantes.", + "items": "Un tableau d'identifiants de lignes qui doivent être supprimées." + }, + "apiDocsTableUpdateRows": { + "id": "L'identifiant de la ligne.", + "description": "Mettre à jour les lignes {name} existantes." + }, + "apiDocsTableCreateRows": { + "description": "Créer de nouvelles lignes {name}.", + "before": "Si il est fourni, les lignes nouvellement créées seront positionnées avant la ligne avec l’identifiant spécifié." + }, + "importer": { + "loading": "Chargement du fichier", + "decoding": "Décodage", + "inProgress": "En cours…", + "preparing": "Préparation", + "parsing": "Analyse des données", + "fieldDefaultName": "Champ {count}" + }, + "databaseDashboardSidebarLinks": { + "apiDocumentation": "Documentation de l'API" + }, + "formViewMeta": { + "includeRowId": "Utilisez {row_id} pour inclure l'identifiant de la ligne a créer dans l'URL." + }, + "formViewField": { + "required": "obligatoire", + "showWhenMatchingConditions": "afficher lorsque les conditions sont remplies", + "addCondition": "Ajouter une condition", + "descriptionPlaceholder": "Description", + "addConditionGroup": "Ajouter un groupe de conditions", + "showFieldAs": "Afficher le champ comme", + "includeAllSelectOptionsHelper": "Choisissez les options qui doivent être incluses dans le formulaire à l'aide de cette liste déroulante", + "noSelectOptions": "Il n'y a pas d'options disponibles.", + "includeAllSelectOptions": "inclure toutes les options sélectionnées", + "noCollaboratorsAvailable": "Il n'y a pas de collaborateurs disponibles.", + "cannotSumitValues": "Ce champ est en lecture seule et ne sera pas affiché dans le formulaire." + }, + "duplicateFieldContext": { + "duplicate": "Dupliquer le champ", + "cloneData": "Copier les données", + "soon": "Bientôt disponible", + "readOnlyField": "Les valeurs des cellules seront remplies automatiquement." + }, + "snapshotsModal": { + "title": "sauvegardes", + "snapshotRestoredErrorMessage": "La sauvegarde n'a pas pu être restaurée. Veuillez réessayer plus tard.", + "description": "Les sauvegardes sont une copie complète de votre {applicationTypeName} au moment où elles ont été créés. Une duplication des données sera créée lors de la restauration. Les sauvegardes sont automatiquement supprimées après un an.", + "descriptionLimits": "Vous pouvez avoir un maximum de 0 sauvegarde par projet. | Vous pouvez avoir un maximum de 1 sauvegarde par projet. | Vous pouvez avoir un maximum de {n} sauvegardes par projet.", + "createLabel": "Créer une nouvelle sauvegarde", + "create": "Créer une sauvegarde", + "snapshotDeletedErrorTitle": "Une erreur est survenue", + "snapshotDeletedErrorMessage": "La sauvegarde n'a pas pu être supprimée. Veuillez réessayer plus tard.", + "limitReached": "La limite du nombre maximum de sauvegardes a été atteinte.", + "snapshot": "Sauvegarde", + "importingState": "En cours de création", + "snapshotRestoredErrorTitle": "Une erreur s'est produite", + "reset": "Créer une autre", + "cancel": "Annuler", + "noSnapshots": "Il n'y a pas encore de sauvegarde pour cette application.", + "nameAlreadyExists": "Une sauvegarde portant ce nom existe déjà." + }, + "deleteSnapshotModal": { + "content": "Êtes-vous sûr·e de vouloir supprimer définitivement la sauvegarde {nom} ?", + "confirm": "Supprimer", + "title": "Supprimer la sauvegarde" + }, + "snapshotListItem": { + "restore": "restaurer", + "delete": "supprimer", + "created": "créée" + }, + "rowEditFieldMultipleCollaborators": { + "addCollaborator": "Choisir un collaborateur" + }, + "gridViewFieldFile": { + "dropHere": "Déposer ici", + "dropFileHere": "Déposez les fichiers ici" + }, + "formViewHeader": { + "preview": "Aperçu", + "mode": "Mode", + "fields": "Champs" + }, + "formViewModePreviewForm": { + "addCoverImage": "Ajouter une image d'entête", + "noFields": "Ce formulaire ne comporte aucun champ. Cliquez sur un champ dans la barre latérale gauche pour en ajouter un.", + "addLogo": "Ajouter un logo", + "titlePlaceholder": "Titre", + "descriptionPlaceholder": "Description", + "noFieldsContent": "Cliquez sur un champ dans la barre latérale gauche pour en ajouter un.", + "noFieldsTitle": "Ce formulaire n'a pas de champs" + }, + "table": { + "chooseView": "Choisir la vue", + "adjacentRow": { + "notification": { + "notFound": { + "next": { + "message": "Il n'y a pas de ligne suivante", + "title": "Plus de rangées" + }, + "previous": { + "title": "Plus de lignes", + "message": "Il n’y a pas de ligne précédente" + } + }, + "error": { + "message": "Une erreur s’est produite lors de la récupération de la ligne adjacente", + "title": "Une erreur s'est produite" + } + }, + "toast": { + "notFound": { + "previous": { + "message": "Il n’y a pas de ligne précédente", + "title": "Plus de ligne" + }, + "next": { + "title": "Plus de ligne", + "message": "Il n’y a pas de ligne suivante" + } + }, + "error": { + "message": "Une erreur s’est produite lors de la récupération de la ligne adjacente", + "title": "Une erreur est survenue" + } + } } - } + }, + "fieldmultipleCollaboratorsDropdown": { + "notFound": "Collaborateur non trouvé" + }, + "formViewModeType": { + "formDescription": "Tous les champs sont visibles et empilés verticalement.", + "form": "Formulaire" + }, + "duplicateTableJobType": { + "duplicating": "Duplication", + "duplicatedTitle": "Table dupliquée", + "name": "Duplication d'une table" + }, + "apiDocsUploadFile": { + "description": "Envoi un fichier sur Baserow en envoyant directement le contenu du fichier. Un section multipart `file` contenant le contenu du fichier est attendu dans la requête. La réponse peut ensuite être utilisée pour [associer un fichier à une ligne]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", + "file": "La section multipart `file` contenant le contenu du fichier." + }, + "apiDocsUploadFileViaURL": { + "description": "Envoi un fichier sur Baserow en le téléchargeant depuis l'URL fournie. La réponse peut ensuite être utilisée pour [associer un fichier à une ligne]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", + "url": "L'URL que vous souhaitez que Baserow télécharge et enregistre en votre nom." + }, + "fileField": { + "errorEmptyFileNameTitle": "Nom du fichier invalide", + "errorEmptyFileNameMessage": "Vous ne pouvez pas définir un nom de fichier vide." + }, + "gridViewRowsAddContext": { + "title": "Créer plusieurs lignes", + "choice": "Ajouter les {rowAmountChoice} lignes" + }, + "viewOwnershipType": { + "collaborative": "Collaboratif", + "personal": "Personnel", + "collaborativeDescription": "Tout le monde peut voir toutes les données et changer les colonnes si elles ou ils en ont les permissions." + }, + "fieldRollupSubForm": { + "label": "Fonction de cumul", + "selectTargetFieldLabel": "Sélectionner un champ à cumuler" + }, + "fieldSelectThroughFieldSubForm": { + "noTable": "Vous avez besoin d’au moins un champ de type « lien vers une table » pour créer ce champ.", + "selectThroughFieldLabel": "Sélectionner un champ « lien vers une table »" + }, + "apiDocsFiltersBuilderModal": { + "userFieldNames": "Noms de champs utilisateur", + "json": "JSON", + "title": "Générateur de filtres", + "queryParameter": "Paramètre de requête" + }, + "viewGroupBy": { + "groupBy": "Grouper | Regroupé par 1 champ | Regroupé par {count} champs" + }, + "rowHistorySidebar": { + "you": "Vous", + "name": "Historique", + "empty": "Aucun changement pour l'instant. Vous pourrez suivre les modifications apportées à cette ligne ici.", + "updated": "a mis à jour cette ligne", + "submitted": "a soumis cette ligne", + "restored": "a restauré cette ligne", + "createdUndo": "a annulé la création d'une ligne", + "updatedUndo": "a annulé la mise à jour de lignes", + "deletedUndo": "a annulé la suppression d'une ligne", + "created": "a créé cette ligne", + "deleted": "a supprimé cette ligne" + }, + "viewGroupByContext": { + "groupBy": "Grouper par", + "thenBy": "Puis par", + "addGroupBy": "choisissez un champ de regroupement", + "noGroupByTitle": "Vous n'avez créé aucun groupe", + "noGroupByText": "Regroupez les lignes par un champ." + }, + "collaboratorAddedToRowNotification": { + "title": "{sender} vous a assigné à {fieldName} dans la ligne {rowId} de la table {tableName}", + "deletedUser": "Un utilisateur supprimé", + "unknownUser": "Un utilisateur inconnu" + }, + "fieldCollaboratorSubForm": { + "notifyUserWhenAdded": "Notifier l'utilisateur lorsqu'il est ajouté" + }, + "viewFieldConditionsForm": { + "addCondition": "Ajouter une condition", + "addConditionGroup": "Ajouter un groupe de conditions" + }, + "formSubmittedNotification": { + "title": "{formName} a été soumis dans la table {tableName} :", + "moreValues": "0 | et 1 champ supplémentaire. | et {count} champs supplémentaires." + }, + "fieldDurationSubForm": { + "durationFormatLabel": "Format de la durée" + }, + "fieldLongTextSubForm": { + "enableRichTextFormatting": "Activer la mise en forme riche du texte" + }, + "rowEditFieldPassword": { + "setPassword": "Définir le mot de passe" + }, + "rowHistoryFieldPassword": { + "passwordSet": "Le mot de passe a été défini", + "passwordDeleted": "Le mot de passe a été supprimé", + "passwordUpdated": "Le mot de passe a été mis à jour" + }, + "fieldPasswordSubForm": { + "description": "Le champ du mot de passe peut également être utilisé pour l'authentification de l'utilisateur dans une application.", + "allowEndpointAuthentication": "Autoriser l'authentification des endpoints de l'API", + "allowEndpointAuthenticationHelp": "Cela expose un endpoint où l'ID de la ligne et le mot de passe peuvent être vérifiés s'ils sont corrects. Cela permet d'utiliser Baserow comme backend d'authentification." + }, + "dataProviderTypes": { + "fieldsName": "Champs" + }, + "userMentionInRichTextFieldNotification": { + "deletedUser": "Un utilisateur a été supprimé", + "title": "{sender} vous a mentionné dans le champ {fieldName} de la ligne {rowId} de la table {tableName}" + }, + "databaseScratchTrackStep": { + "teamsRow3": "Marketing", + "title": "Qu'aimeriez-vous suivre ?", + "description": "Choisissez parmi les cas d'utilisation les plus courants ou créez le vôtre.", + "addYourOwn": "Ajouter votre propre cas", + "projects": "Projets", + "rowName": "Nom de la ligne", + "thisIncludes": "Cela comprend :", + "productsRow1": "Refonte de site web", + "productsRow2": "Recherche de clients", + "productsRow3": "Campagne publicitaire payante", + "teamsRow1": "Ventes", + "teamsRow2": "RH", + "tasksRow1": "Refonte du logo", + "campaignsRow2": "Récompenses de fidélité", + "tasksRow2": "Envoyer un courriel", + "tasksRow3": "Rédiger un article de blog", + "campaigns": "Campagnes", + "campaignsRow1": "Soldes d'été", + "campaignsRow3": "Relance d'une marque", + "tableName": "Nom de la table", + "teams": "Équipes", + "tasks": "Tâches" + }, + "databaseImportStep": { + "title": "Importez vos données", + "description": "Transférez vos données vers Baserow en quelques clics.", + "tableNameLabel": "Nom de la table", + "tableNamePrefill": "Table de {name}" + }, + "databaseStep": { + "title": "Créez votre première base de données", + "description": "Sélectionnez où vous souhaitez commencer :", + "scratch": "À partir de rien", + "databaseNameLabel": "Nom de la base de données", + "import": "À partir d'un fichier", + "airtable": "À partir d'Airtable", + "template": "À partir d'un modèle", + "databaseNamePrefill": "Base de données de {name}", + "workspaceName": "Projet de {name}" + }, + "ViewFilterTypeDateUpgradeToMultiStep": { + "migrateButtonText": "Migrer vers un filtre de date riche", + "migrateButtonTooltip": "Nouveau filtre disponible. Cliquez pour mettre à jour. Le fonctionnement est similaire." + }, + "formViewMetaControls": { + "theMessage": "Le message", + "theURL": "L'URL", + "whenSubmittedLabel": "Lorsque le formulaire est soumis", + "showMessage": "Afficher un message", + "urlRedirect": "Rediriger vers l'URL" + }, + "databaseDashboardResourceLinks": { + "title": "Documentation de l'API", + "description": "En savoir plus sur notre code" + }, + "changePrimaryFieldModal": { + "title": "Changer le champ primaire", + "change": "Changer", + "primaryFieldLabel": "Champ primaire", + "existingPrimary": "\"{name}\" est actuellement le champ primaire." + }, + "databaseScratchTrackFieldsStep": { + "title": "Choisissez des champs pour chaque ligne", + "description": "Choisissez jusqu'à {selectedFieldsLimitCount} champs. Vous pourrez en ajouter ultérieurement.", + "fieldNumber": "Nombre", + "fieldEmail": "Courriel", + "fieldRating": "Evaluation", + "fieldCategory": "Catégorie", + "fieldKickoffDate": "Date du kickoff", + "fieldNotes": "Notes", + "fieldRole": "Rôle", + "projectsCategoryDevelopment": "Développement", + "fieldDueDate": "Date d'échéance", + "fieldBudget": "Budget", + "fieldCompleted": "Complété", + "fieldPhone": "Téléphone", + "fieldActive": "Actif", + "fieldEstimatedDays": "Nombre de jours estimés", + "teamsRoleDeveloper": "Développeur", + "customFieldsDescriptionRow2": "Vitae justo eget magna fermentum iaculis eu non diam.", + "fieldStartDate": "Date de début", + "fieldEndDate": "Date de fin", + "projectsCategoryDesign": "Design", + "projectsCategoryMarketing": "Marketing", + "projectsNotesRow1": "Acme recherche une refonte complète de son site web selon les lignes directrices suivantes.", + "projectsNotesRow2": "Rechercher si les utilisateurs actuels de Soylent sont intéressés par un nouveau portail d'utilisateurs.", + "projectsNotesRow3": "Je me demande si cela vaut la peine de le faire après le boycott des publicités sur Facebook. Des études montrent que les campagnes publicitaires payantes sont de moins en moins efficaces.", + "teamsRoleDesigner": "Designer", + "tasksDetailsRow2": "La structure est un peu étrange, il se peut donc que nous devions adapter le plan du site ici également.", + "teamsRoleMarketer": "Marketer", + "tasksDetailsRow1": "Le logo doit être amélioré pour rendre le CTA plus clair.", + "tasksDetailsRow3": "Le nouveau pied de page doit contenir nos coordonnées ainsi qu'un petit (mais clair) CTA.", + "campaignsDetailsRow1": "Faites le plein d'économies avec nos soldes d'été, qui proposent des réductions imbattables sur tous vos produits préférés !", + "campaignsDetailsRow2": "Stimulez la fidélisation et l'engagement de vos clients grâce à notre programme de fidélisation, conçu pour récompenser vos clients les plus fidèles.", + "campaignsDetailsRow3": "Revitalisez votre entreprise et captivez votre public grâce à une relance dynamique de votre marque qui s'aligne parfaitement sur les tendances actuelles du marché et les désirs des clients.", + "customFieldsDescriptionRow1": "Turpis massa tincidunt dui ut ornare lectus sit amet est.", + "customFieldsDescriptionRow3": "Convallis tellus id interdum velit laoreet id donec ultrices tincidunt.", + "fieldName": "Nom", + "fieldType": "Type de champ", + "fieldDescription": "Description", + "fieldDetails": "Détails", + "fieldDate": "Date", + "fieldBoolean": "Terminé", + "fieldDuration": "Durée", + "fieldUrl": "URL" + }, + "createTableModal": { + "title": "Créer une nouvelle table", + "defaultName": "Table", + "importLabel": "Souhaitez vous importer des données existantes ?", + "newTable": "Démarrer avec une nouvelle table" + }, + "createTable": { + "showTable": "afficher la table", + "uploading": "Envoi…", + "preparing": "Préparation des données...", + "stateRowCreation": "Import en cours...", + "statePreValidation": "Validation des données...", + "stateCreateTable": "Création d'une table...", + "addButton": "Ajouter une table", + "importError": "Un problème est survenu lors de l'import du fichier" + }, + "importErrorReport": { + "reportTitleFailure": "Lignes en erreur", + "reportTitleSuccess": "Importation réussie mais...", + "reportMessage": "Les index de ligne suivants n'ont pas pu être importés :" + }, + "dataSyncType": { + "icalCalendar": "Synchronisation du flux iCal", + "postgresql": "Synchroniser une table PostgreSQL", + "syncError": "Erreur de synchronisation" + }, + "createDataSync": { + "next": "Suivant", + "fields": "Sélectionnez les champs que vous souhaitez synchroniser", + "create": "Créer et synchroniser une table", + "error": "Un problème s'est produit lors de la synchronisation", + "autoAddLabel": "Ajout automatique de nouvelles propriétés", + "autoAddHelper": "Ajoute et synchronise automatiquement les propriétés nouvellement disponibles de la source de données dans la table Baserow. Notez que pour que cela fonctionne, toutes les propriétés doivent être synchronisées.", + "twoWaySyncLabel": "Synchronisation bidirectionnelle" + }, + "syncTableModal": { + "sync": "Synchroniser la table", + "hide": "Cacher", + "description": "Cette table est liée à une synchronisation de données. Lorsque vous cliquez sur le bouton de synchronisation, les données sont synchronisées avec la source. Au cours de ce processus, un verrou est placé sur les lignes mises à jour, ce qui peut ralentir temporairement les demandes d'API ou les modifications de la table.", + "title": "Synchroniser {name}" + }, + "gridViewRowHeight": { + "name": "Hauteur", + "small": "Petite", + "medium": "Moyenne", + "large": "Grande" + }, + "createViewLink": { + "inCompatibleWithDataSync": "Ce type de vue n'est pas compatible avec une table de synchronisation des données." + }, + "iCalCalendarDataSync": { + "name": "URL iCal", + "description": "Le calendrier iCal se synchronise automatiquement avec les entrées du fichier de calendrier de l'URL. Elle ne prend en charge que le type de fichier ICS (Internet Calendar and Scheduling)." + }, + "postgreSQLDataSync": { + "host": "Hôte", + "schema": "Schéma", + "table": "Table", + "sslMode": "Mode SSL", + "description": "Synchronise une table PostgreSQL avec une table Baserow en fonction des informations fournies ci-dessous. Notez que lorsque la synchronisation démarre, elle sélectionne toutes les lignes de la table fournie. Même si Baserow n'accède à la table qu'en lecture, nous recommandons fortement de limiter l'utilisateur configué à une lecture seule.", + "database": "Base de données", + "port": "Port", + "username": "Identifiant", + "password": "Mot de passe" + }, + "configureDataSyncSettings": { + "title": "Modifier la synchronisation des données", + "syncTable": "Synchroniser lors de l'enregistrement" + }, + "configureDataSyncModal": { + "title": "Synchronisation des données", + "syncedFields": "Champs synchronisés", + "syncSettings": "Paramètres de synchronisation" + }, + "configureDataSyncVisibleFields": { + "title": "Modifier les champs synchronisés", + "fields": "Champs synchronisés", + "syncTable": "Synchroniser lors de l'enregistrement" + }, + "viewFieldConditionItem": { + "filterMisconfigured": "Le champ auquel ce filtre est associé a été supprimé." + }, + "webhookPayloadTooLargeNotification": { + "body": "La charge utile pour le webhook {name} avec l'ID d'événement {event_id} était trop importante. Le contenu a été divisé en plusieurs lots, mais les données dépassant la limite de {batch_limit} ont été rejetées." + }, + "webhookDeactivatedNotification": { + "body": "Le webhook {name} a été désactivé car il a échoué trop de fois consécutivement." + }, + "tablesGuidedTourStep": { + "title": "Configurer des tables", + "content": "Les tables permettent de stocker vos informations de manière ordonnée. Créez une nouvelle table dans votre base de données pour commencer à structurer vos données." + }, + "addFieldGuidedTourStep": { + "title": "Personnaliser vos données", + "content": "Cliquez sur \"+\" pour ajouter de nouveaux champs (colonnes). Choisissez parmi différents types de champs pour saisir précisément ce qui est le plus important pour votre projet." + }, + "createViewGuidedTourStep": { + "title": "Personnalisez vos vues", + "content": "Créez des vues personnalisées comme la vue tabulaire, calendrier, kanban ou galerie pour visualiser vos données exactement comment vous le souhaitez." + }, + "createFormViewGuidedTourStep": { + "title": "Créer un formulaire", + "content": "Créez rapidement des formulaires à partir de vos tables pour y collecter directement les réponses, rationalisant la collecte de données." + }, + "viewOptionsGuidedTourStep": { + "title": "Voir les options", + "content": "Cliquez sur les trois points situés à côté de la vue pour exporter, importer, dupliquer et configurer un webhook." + }, + "filterSortGroupGuidedTourStep": { + "title": "Trouvez et organisez vos données", + "content": "Localisez rapidement les informations en filtrant et en triant vos lignes. Regroupez instantanément les données par champ pour visualiser clairement les schémas et simplifier votre travail." + }, + "fieldBooleanSubForm": { + "defaultValue": "Par défaut" + }, + "apiDocsListTables": { + "listTables": "Lister toutes les tables", + "listTablesDescription": "Ce point d'accès ne fonctionne qu'en combinaison avec l'authentification par jeton. Il répertorie toutes les tables pour lesquelles le jeton a un accès de création, de lecture, de mise à jour ou de suppression." + }, + "fieldMultipleSelectSubForm": { + "defaultOptionsLabel": "Options par défaut", + "optionsLabel": "Options" + }, + "apiDocsPasswordFieldAuthentication": { + "title": "{name} authentification", + "description": "Vérifie si le mot de passe et la ligne fournis correspondent à ce qui est stocké dans la cellule.", + "fieldId": "L'identifiant du champ dans lequel le mot de passe doit être vérifié.", + "rowId": "L'ID de ligne où vérifier le mot de passe.", + "password": "Le mot de passe qui doit être vérifié s'il est correct." + }, + "fieldRules": { + "errorTitle": "Erreur lors du traitement des règles du champ", + "ruleDoesNotExist": "La règle n'existe pas", + "ruleTypeDoesNotExist": "Le type de règle n'existe pas", + "ruleAlreadyExists": "La règle existe déjà" } - }, - "fieldmultipleCollaboratorsDropdown": { - "notFound": "Collaborateur non trouvé" - }, - "formViewModeType": { - "formDescription": "Tous les champs sont visibles et empilés verticalement.", - "form": "Formulaire" - }, - "duplicateTableJobType": { - "duplicating": "Duplication", - "duplicatedTitle": "Table dupliquée", - "name": "Duplication d'une table" - }, - "apiDocsUploadFile": { - "description": "Envoi un fichier sur Baserow en envoyant directement le contenu du fichier. Un section multipart `file` contenant le contenu du fichier est attendu dans la requête. La réponse peut ensuite être utilisée pour [associer un fichier à une ligne]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", - "file": "La section multipart `file` contenant le contenu du fichier." - }, - "apiDocsUploadFileViaURL": { - "description": "Envoi un fichier sur Baserow en le téléchargeant depuis l'URL fournie. La réponse peut ensuite être utilisée pour [associer un fichier à une ligne]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", - "url": "L'URL que vous souhaitez que Baserow télécharge et enregistre en votre nom." - }, - "fileField": { - "errorEmptyFileNameTitle": "Nom du fichier invalide", - "errorEmptyFileNameMessage": "Vous ne pouvez pas définir un nom de fichier vide." - }, - "gridViewRowsAddContext": { - "title": "Créer plusieurs lignes", - "choice": "Ajouter les {rowAmountChoice} lignes" - }, - "viewOwnershipType": { - "collaborative": "Collaboratif", - "personal": "Personnel" - }, - "fieldRollupSubForm": { - "label": "Fonction de cumul", - "selectTargetFieldLabel": "Sélectionner un champ à cumuler" - }, - "fieldSelectThroughFieldSubForm": { - "noTable": "Vous avez besoin d’au moins un champ de type « lien vers une table » pour créer ce champ.", - "selectThroughFieldLabel": "Sélectionner un champ « lien vers une table »" - }, - "apiDocsFiltersBuilderModal": { - "userFieldNames": "Noms de champs utilisateur", - "json": "JSON", - "title": "Générateur de filtres", - "queryParameter": "Paramètre de requête" - }, - "viewGroupBy": { - "groupBy": "Grouper | Regroupé par 1 champ | Regroupé par {count} champs" - }, - "rowHistorySidebar": { - "you": "Vous", - "name": "Historique", - "empty": "Aucun changement pour l'instant. Vous pourrez suivre les modifications apportées à cette ligne ici.", - "updated": "a mis à jour cette ligne", - "submitted": "a soumis cette ligne", - "restored": "a restauré cette ligne", - "createdUndo": "a annulé la création d'une ligne", - "updatedUndo": "a annulé la mise à jour de lignes", - "deletedUndo": "a annulé la suppression d'une ligne", - "created": "a créé cette ligne", - "deleted": "a supprimé cette ligne" - }, - "viewGroupByContext": { - "groupBy": "Grouper par", - "thenBy": "Puis par", - "addGroupBy": "choisissez un champ de regroupement", - "noGroupByTitle": "Vous n'avez créé aucun groupe", - "noGroupByText": "Regroupez les lignes par un champ." - }, - "collaboratorAddedToRowNotification": { - "title": "{sender} vous a assigné à {fieldName} dans la ligne {rowId} de la table {tableName}", - "deletedUser": "Un utilisateur supprimé", - "unknownUser": "Un utilisateur inconnu" - }, - "fieldCollaboratorSubForm": { - "notifyUserWhenAdded": "Notifier l'utilisateur lorsqu'il est ajouté" - }, - "viewFieldConditionsForm": { - "addCondition": "Ajouter une condition", - "addConditionGroup": "Ajouter un groupe de conditions" - }, - "formSubmittedNotification": { - "title": "{formName} a été soumis dans la table {tableName} :", - "moreValues": "0 | et 1 champ supplémentaire. | et {count} champs supplémentaires." - }, - "fieldDurationSubForm": { - "durationFormatLabel": "Format de la durée" - }, - "fieldLongTextSubForm": { - "enableRichTextFormatting": "Activer la mise en forme riche du texte" - }, - "rowEditFieldPassword": { - "setPassword": "Définir le mot de passe" - }, - "rowHistoryFieldPassword": { - "passwordSet": "Le mot de passe a été défini", - "passwordDeleted": "Le mot de passe a été supprimé", - "passwordUpdated": "Le mot de passe a été mis à jour" - }, - "fieldPasswordSubForm": { - "description": "Le champ du mot de passe peut également être utilisé pour l'authentification de l'utilisateur dans une application.", - "allowEndpointAuthentication": "Autoriser l'authentification des endpoints de l'API", - "allowEndpointAuthenticationHelp": "Cela expose un endpoint où l'ID de la ligne et le mot de passe peuvent être vérifiés s'ils sont corrects. Cela permet d'utiliser Baserow comme backend d'authentification." - }, - "dataProviderTypes": { - "fieldsName": "Champs" - }, - "userMentionInRichTextFieldNotification": { - "deletedUser": "Un utilisateur a été supprimé", - "title": "{sender} vous a mentionné dans le champ {fieldName} de la ligne {rowId} de la table {tableName}" - }, - "databaseScratchTrackStep": { - "teamsRow3": "Marketing", - "title": "Qu'aimeriez-vous suivre ?", - "description": "Choisissez parmi les cas d'utilisation les plus courants ou créez le vôtre.", - "addYourOwn": "Ajouter votre propre cas", - "projects": "Projets", - "rowName": "Nom de la ligne", - "thisIncludes": "Cela comprend :", - "productsRow1": "Refonte de site web", - "productsRow2": "Recherche de clients", - "productsRow3": "Campagne publicitaire payante", - "teamsRow1": "Ventes", - "teamsRow2": "RH", - "tasksRow1": "Refonte du logo", - "campaignsRow2": "Récompenses de fidélité", - "tasksRow2": "Envoyer un courriel", - "tasksRow3": "Rédiger un article de blog", - "campaigns": "Campagnes", - "campaignsRow1": "Soldes d'été", - "campaignsRow3": "Relance d'une marque", - "tableName": "Nom de la table", - "teams": "Équipes", - "tasks": "Tâches" - }, - "databaseImportStep": { - "title": "Importez vos données", - "description": "Transférez vos données vers Baserow en quelques clics.", - "tableNameLabel": "Nom de la table" - }, - "databaseStep": { - "title": "Créez votre première base de données", - "description": "Sélectionnez où vous souhaitez commencer :", - "scratch": "À partir de rien", - "databaseNameLabel": "Nom de la base de données", - "import": "À partir d'un fichier", - "airtable": "À partir d'Airtable", - "template": "À partir d'un modèle" - }, - "ViewFilterTypeDateUpgradeToMultiStep": { - "migrateButtonText": "Migrer vers un filtre de date riche", - "migrateButtonTooltip": "Nouveau filtre disponible. Cliquez pour mettre à jour. Le fonctionnement est similaire." - }, - "formViewMetaControls": { - "theMessage": "Le message", - "theURL": "L'URL", - "whenSubmittedLabel": "Lorsque le formulaire est soumis", - "showMessage": "Afficher un message", - "urlRedirect": "Rediriger vers l'URL" - }, - "databaseDashboardResourceLinks": { - "title": "Documentation de l'API", - "description": "En savoir plus sur notre code" - }, - "changePrimaryFieldModal": { - "title": "Changer le champ primaire", - "change": "Changer", - "primaryFieldLabel": "Champ primaire", - "existingPrimary": "\"{name}\" est actuellement le champ primaire." - }, - "databaseScratchTrackFieldsStep": { - "title": "Choisissez des champs pour chaque ligne", - "description": "Choisissez jusqu'à {selectedFieldsLimitCount} champs. Vous pourrez en ajouter ultérieurement.", - "fieldNumber": "Nombre", - "fieldEmail": "Courriel", - "fieldRating": "Evaluation", - "fieldCategory": "Catégorie", - "fieldKickoffDate": "Date du kickoff", - "fieldNotes": "Notes", - "fieldRole": "Rôle", - "projectsCategoryDevelopment": "Développement", - "fieldDueDate": "Date d'échéance", - "fieldBudget": "Budget", - "fieldCompleted": "Complété", - "fieldPhone": "Téléphone", - "fieldActive": "Actif", - "fieldEstimatedDays": "Nombre de jours estimés", - "teamsRoleDeveloper": "Développeur", - "customFieldsDescriptionRow2": "Vitae justo eget magna fermentum iaculis eu non diam.", - "fieldStartDate": "Date de début", - "fieldEndDate": "Date de fin", - "projectsCategoryDesign": "Design", - "projectsCategoryMarketing": "Marketing", - "projectsNotesRow1": "Acme recherche une refonte complète de son site web selon les lignes directrices suivantes.", - "projectsNotesRow2": "Rechercher si les utilisateurs actuels de Soylent sont intéressés par un nouveau portail d'utilisateurs.", - "projectsNotesRow3": "Je me demande si cela vaut la peine de le faire après le boycott des publicités sur Facebook. Des études montrent que les campagnes publicitaires payantes sont de moins en moins efficaces.", - "teamsRoleDesigner": "Designer", - "tasksDetailsRow2": "La structure est un peu étrange, il se peut donc que nous devions adapter le plan du site ici également.", - "teamsRoleMarketer": "Marketer", - "tasksDetailsRow1": "Le logo doit être amélioré pour rendre le CTA plus clair.", - "tasksDetailsRow3": "Le nouveau pied de page doit contenir nos coordonnées ainsi qu'un petit (mais clair) CTA.", - "campaignsDetailsRow1": "Faites le plein d'économies avec nos soldes d'été, qui proposent des réductions imbattables sur tous vos produits préférés !", - "campaignsDetailsRow2": "Stimulez la fidélisation et l'engagement de vos clients grâce à notre programme de fidélisation, conçu pour récompenser vos clients les plus fidèles.", - "campaignsDetailsRow3": "Revitalisez votre entreprise et captivez votre public grâce à une relance dynamique de votre marque qui s'aligne parfaitement sur les tendances actuelles du marché et les désirs des clients.", - "customFieldsDescriptionRow1": "Turpis massa tincidunt dui ut ornare lectus sit amet est.", - "customFieldsDescriptionRow3": "Convallis tellus id interdum velit laoreet id donec ultrices tincidunt.", - "fieldName": "Nom", - "fieldType": "Type de champ", - "fieldDescription": "Description", - "fieldDetails": "Détails", - "fieldDate": "Date", - "fieldBoolean": "Terminé", - "fieldDuration": "Durée", - "fieldUrl": "URL" - }, - "createTableModal": { - "title": "Créer une nouvelle table", - "defaultName": "Table", - "importLabel": "Souhaitez vous importer des données existantes ?", - "newTable": "Démarrer avec une nouvelle table" - }, - "createTable": { - "showTable": "afficher la table", - "uploading": "Envoi…", - "preparing": "Préparation des données...", - "stateRowCreation": "Import en cours...", - "statePreValidation": "Validation des données...", - "stateCreateTable": "Création d'une table...", - "addButton": "Ajouter une table", - "importError": "Un problème est survenu lors de l'import du fichier" - }, - "importErrorReport": { - "reportTitleFailure": "Lignes en erreur", - "reportTitleSuccess": "Importation réussie mais...", - "reportMessage": "Les index de ligne suivants n'ont pas pu être importés :" - }, - "dataSyncType": { - "icalCalendar": "Synchronisation du flux iCal", - "postgresql": "Synchroniser une table PostgreSQL", - "syncError": "Erreur de synchronisation" - }, - "createDataSync": { - "next": "Suivant", - "fields": "Sélectionnez les champs que vous souhaitez synchroniser", - "create": "Créer et synchroniser une table", - "error": "Un problème s'est produit lors de la synchronisation", - "autoAddLabel": "Ajout automatique de nouvelles propriétés", - "autoAddHelper": "Ajoute et synchronise automatiquement les propriétés nouvellement disponibles de la source de données dans la table Baserow. Notez que pour que cela fonctionne, toutes les propriétés doivent être synchronisées.", - "twoWaySyncLabel": "Synchronisation bidirectionnelle" - }, - "syncTableModal": { - "sync": "Synchroniser la table", - "hide": "Cacher", - "description": "Cette table est liée à une synchronisation de données. Lorsque vous cliquez sur le bouton de synchronisation, les données sont synchronisées avec la source. Au cours de ce processus, un verrou est placé sur les lignes mises à jour, ce qui peut ralentir temporairement les demandes d'API ou les modifications de la table.", - "title": "Synchroniser {name}" - }, - "gridViewRowHeight": { - "name": "Hauteur", - "small": "Petite", - "medium": "Moyenne", - "large": "Grande" - }, - "createViewLink": { - "inCompatibleWithDataSync": "Ce type de vue n'est pas compatible avec une table de synchronisation des données." - }, - "iCalCalendarDataSync": { - "name": "URL iCal", - "description": "Le calendrier iCal se synchronise automatiquement avec les entrées du fichier de calendrier de l'URL. Elle ne prend en charge que le type de fichier ICS (Internet Calendar and Scheduling)." - }, - "postgreSQLDataSync": { - "host": "Hôte", - "schema": "Schéma", - "table": "Table", - "sslMode": "Mode SSL", - "description": "Synchronise une table PostgreSQL avec une table Baserow en fonction des informations fournies ci-dessous. Notez que lorsque la synchronisation démarre, elle sélectionne toutes les lignes de la table fournie. Même si Baserow n'accède à la table qu'en lecture, nous recommandons fortement de limiter l'utilisateur configué à une lecture seule.", - "database": "Base de données", - "port": "Port", - "username": "Identifiant", - "password": "Mot de passe" - }, - "configureDataSyncSettings": { - "title": "Modifier la synchronisation des données", - "syncTable": "Synchroniser lors de l'enregistrement" - }, - "configureDataSyncModal": { - "title": "Synchronisation des données", - "syncedFields": "Champs synchronisés", - "syncSettings": "Paramètres de synchronisation" - }, - "configureDataSyncVisibleFields": { - "title": "Modifier les champs synchronisés", - "fields": "Champs synchronisés", - "syncTable": "Synchroniser lors de l'enregistrement" - }, - "viewFieldConditionItem": { - "filterMisconfigured": "Le champ auquel ce filtre est associé a été supprimé." - }, - "webhookPayloadTooLargeNotification": { - "body": "La charge utile pour le webhook {name} avec l'ID d'événement {event_id} était trop importante. Le contenu a été divisé en plusieurs lots, mais les données dépassant la limite de {batch_limit} ont été rejetées." - }, - "webhookDeactivatedNotification": { - "body": "Le webhook {name} a été désactivé car il a échoué trop de fois consécutivement." - }, - "tablesGuidedTourStep": { - "title": "Configurer des tables", - "content": "Les tables permettent de stocker vos informations de manière ordonnée. Créez une nouvelle table dans votre base de données pour commencer à structurer vos données." - }, - "addFieldGuidedTourStep": { - "title": "Personnaliser vos données", - "content": "Cliquez sur \"+\" pour ajouter de nouveaux champs (colonnes). Choisissez parmi différents types de champs pour saisir précisément ce qui est le plus important pour votre projet." - }, - "createViewGuidedTourStep": { - "title": "Personnalisez vos vues", - "content": "Créez des vues personnalisées comme la vue tabulaire, calendrier, kanban ou galerie pour visualiser vos données exactement comment vous le souhaitez." - }, - "createFormViewGuidedTourStep": { - "title": "Créer un formulaire", - "content": "Créez rapidement des formulaires à partir de vos tables pour y collecter directement les réponses, rationalisant la collecte de données." - }, - "viewOptionsGuidedTourStep": { - "title": "Voir les options", - "content": "Cliquez sur les trois points situés à côté de la vue pour exporter, importer, dupliquer et configurer un webhook." - }, - "filterSortGroupGuidedTourStep": { - "title": "Trouvez et organisez vos données", - "content": "Localisez rapidement les informations en filtrant et en triant vos lignes. Regroupez instantanément les données par champ pour visualiser clairement les schémas et simplifier votre travail." - }, - "fieldBooleanSubForm": { - "defaultValue": "Par défaut" - }, - "apiDocsListTables": { - "listTables": "Lister toutes les tables", - "listTablesDescription": "Ce point d'accès ne fonctionne qu'en combinaison avec l'authentification par jeton. Il répertorie toutes les tables pour lesquelles le jeton a un accès de création, de lecture, de mise à jour ou de suppression." - }, - "fieldMultipleSelectSubForm": { - "defaultOptionsLabel": "Options par défaut", - "optionsLabel": "Options" - }, - "apiDocsPasswordFieldAuthentication": { - "title": "{name} authentification", - "description": "Vérifie si le mot de passe et la ligne fournis correspondent à ce qui est stocké dans la cellule.", - "fieldId": "L'identifiant du champ dans lequel le mot de passe doit être vérifié.", - "rowId": "L'ID de ligne où vérifier le mot de passe.", - "password": "Le mot de passe qui doit être vérifié s'il est correct." - }, - "fieldRules": { - "errorTitle": "Erreur lors du traitement des règles du champ", - "ruleDoesNotExist": "La règle n'existe pas", - "ruleTypeDoesNotExist": "Le type de règle n'existe pas", - "ruleAlreadyExists": "La règle existe déjà" - } } diff --git a/web-frontend/modules/database/locales/it.json b/web-frontend/modules/database/locales/it.json index e0fc6f3c01..45f9bdf844 100644 --- a/web-frontend/modules/database/locales/it.json +++ b/web-frontend/modules/database/locales/it.json @@ -1,1012 +1,1048 @@ { - "webhookModal": { - "title": "Webhook {name}", - "createWebhook": "Crea webhook", - "backToList": "Torna all'elenco" - }, - "deleteWebhookModal": { - "title": "Elimina {webhookName}", - "deleteButton": "Elimina webhook", - "body": "Sei sicuro di voler eliminare questo webhook? Non sarà più possibile ripristinarlo." - }, - "webhookList": { - "noWebhooksMessage": "Non hai ancora creato nessun webhook. I webhook possono essere usati per informare sistemi di terze parti quando una riga in Baserow è stata creata, aggiornata o eliminata." - }, - "testWebhookModal": { - "title": "Testa webhook", - "unreachable": "Server non raggiungibile" - }, - "webhookForm": { - "inputLabels": { - "name": "Nome", - "value": "Valore", - "requestMethod": "Metodo", - "url": "URL", - "userFieldNames": "Nomi campo utente", - "events": "Quali eventi devono attivare questo webhook?", - "headers": "Header aggiuntivi", - "example": "Esempio di carico utile" - }, - "errors": { - "urlField": "Deve essere un URL valido che inizia con 'http://' o 'https://'.", - "invalidHeaders": "Uno degli header non è valido." - }, - "checkbox": { - "sendUserFieldNames": "Usa il nome del campo invece dell'id" - }, - "radio": { - "allEvents": "Mandami tutto", - "customEvents": "Lasciami selezionare eventi individuali" - }, - "triggerButton": "Attiva test webhook", - "deactivated": { - "title": "Webhook disattivato", - "content": "Questo webhook è stato disattivato a causa di troppi fallimenti consecutivi. Controlla il registro delle chiamate per maggiori dettagli. Clicca sul pulsante qui sotto per attivarlo di nuovo. Non dimenticare di salvare il webhook dopo averlo attivato.", - "activate": "Attiva" - }, - "deprecatedEventType": { - "convert": "Converti", - "title": "Tipo di evento deprecato", - "description": "Questo webhook non viene richiamato se più righe vengono modificate contemporaneamente tramite chiamata batch. Per favore, utilizza l'evento di tipo batch opportuno. Questo tipo di evento utilizza un formato adatto per inviare righe multiple nel corpo del messaggio." - }, - "helpTriggerWhenFieldsHaveChanged": "Verrà attivato solamente se uno dei campi cambia.", - "triggerWhenFieldsHaveChanged": "Attivato quando un campo cambia" - }, - "webhook": { - "details": "dettagli", - "lastCall": "Ultima chiamata: {lastCallTime}", - "noCalls": "Nessuna chiamata effettuata", - "callLog": "Registro chiamate", - "triggerDescription": "Attivazione su ogni evento | Attivazione su {count} eventi | Attivazione su {count} eventi" - }, - "createWebhook": { - "errorTableWebhookMaxLimitExceededTitle": "Massimo di webhook superato", - "errorTableWebhookMaxLimitExceededDescription": "Impossibile creare il webhook perché è stato superato il numero massimo di webhook per tabella." - }, - "sidebar": { - "viewAPI": "Vedi documenti API", - "createTable": "Crea tabella" - }, - "sidebarItem": { - "exportTable": "Esporta tabella", - "webhooks": "Webhooks", - "notSynced": "Non sincronizzato", - "lastSynced": "Ultima sincronizzazione", - "sync": "Sincronizza tabella" - }, - "apiToken": { - "create": "crea", - "read": "leggi", - "update": "aggiorna", - "delete": "elimina", - "tokenPrefix": "Token:", - "viewAPIDocs": "Vedi documentazione API", - "generateNewToken": "Genera nuovo token", - "showOrHide": "Mostra o nascondi token", - "copyToClipboard": "Copia negli appunti", - "showDatabases": "mostra database" - }, - "apiTokenSettings": { - "title": "Database Token", - "createToken": "Crea token", - "noTokensMessage": "Non hai ancora creato un Database token. Puoi usare i Database token per autenticarti con gli endpoint REST per creare, leggere, aggiornare ed eliminare le righe. È possibile impostare i permessi a livello di tabella.", - "hasFullPermissions": "Ha autorizzazioni complete, anche per tutti i bambini.", - "hasOnlySelectedPermissions": "Ha solo le autorizzazioni per i bambini selezionati.", - "noPermissions": "Non ha autorizzazioni.", - "createNewTitle": "Crea nuovo Database token", - "backToOverview": "Torna alla panoramica" - }, - "apiTokenForm": { - "nameLabel": "Nome", - "workspaceLabel": "Progetto" - }, - "apiDocsSelectDatabase": { - "needOneDatabase": "È necessario avere almeno un database per visualizzare la documentazione API." - }, - "apiDocsExample": { - "requestSample": "Esempio di richiesta", - "responseSample": "Esempio di risposta", - "userFieldNames": "Nomi campo utente" - }, - "apiDocsParameter": { - "optional": "facoltativo", - "defaultValue": "Predefinito: {value}" - }, - "apiDocsTableGetRow": { - "description": "Recupera una singola riga {name}.", - "rowId": "L'identificatore univoco della riga richiesta." - }, - "apiDocsErrors": { - "errorCode": "Codice di errore", - "name": "Nome", - "description": "Descrizione", - "okDescription": "Richiesta eseguita.", - "badRequestDescription": "La richiesta contiene valori non validi o il JSON non può essere analizzato.", - "unauthorizedDescription": "Quando si cerca di accedere a un endpoint senza un Database token valido.", - "notFoundDescription": "Riga o tabella non trovate.", - "requestEntityTooLargeDescription": "La richiesta ha superato la dimensione massima consentita del carico utile.", - "internalErrorDescription": "Il server ha incontrato una condizione inaspettata.", - "badGatewayDescription": "Baserow si sta riavviando o si sta verificando un'interruzione imprevista.", - "unavailableDescription": "Il server non ha potuto elaborare la tua richiesta in tempo." - }, - "apiDocsTableFields": { - "tableTitle": "Tabella {name}", - "tableId": "L'ID di questa tabella è:", - "description": "Ogni riga della tabella {name} contiene i seguenti campi.", - "id": "ID", - "name": "Nome", - "type": "Tipo", - "compatibleFilters": "Filtri compatibili" - }, - "apiDocsTableListRows": { - "description": "Per elencare le righe della tabella *{name}* si deve fare una richiesta `GET` all'endpoint *{name}*. La risposta è paginata e per default viene restituita la prima pagina. La pagina corretta può essere recuperata fornendo i parametri di query `page` e `size`.", - "page": "Definisce quale pagina di righe deve essere restituita.", - "size": "Definisce quante righe devono essere restituite per pagina.", - "userFieldNames": "Quando viene fornito un valore qualsiasi per il parametro GET `user_field_names`, allora i nomi campo restituiti da questo endpoint saranno i nomi reali dei campi.\n\nSe il parametro GET `user_field_names` non viene fornito, allora tutti i nomi campo restituiti saranno `field_` seguito dall'id del campo. Ad esempio `field_1` si riferisce al campo con un id di `1`.\n\nInoltre, quando `user_field_names` è impostato, allora il comportamento degli altri parametri GET `order_by`, `include` e `exclude` cambia. Si aspettano invece elenchi separati da virgole di nomi campo effettivi.", - "search": "Se fornito, saranno restituite solo le righe con i dati che corrispondono alla query di ricerca.", - "orderBy": "Opzionalmente le righe possono essere ordinate per campi separati da virgola. Per default o se preceduto da un '+' un campo è ordinato in ordine ascendente (A-Z), ma precedendo il campo con un '-' può essere ordinato in ordine discendente (Z-A).\n\n#### Con `user_field_names`:\n\n`order_by` deve essere un elenco separato da virgole dei nomi campo per cui ordinare. Ad esempio se fornisci il seguente parametro GET `order_by=My Field,-My Field 2` le righe saranno ordinate per il campo chiamato `My Field` in ordine crescente. Se alcuni campi hanno lo stesso valore, quel sottoinsieme sarà ordinato dal campo chiamato `My Field 2` in ordine decrescente.\n\nAssicurati che i campi con nomi che iniziano con un `+` o `-` siano esplicitamente preceduti da un altro `+` o `-`. Ad esempio `+-Nome`.\n\nIl nome dei campi che contengono virgole deve essere circondato da virgolette: `\"Name ,\"`. Se i nomi dei campi contengono virgolette, allora devono essere evasi usando il carattere `\\`. Es: `Name \\\"`.\n\n#### Senza `nomi_di_campo_utente`:\n\n`order_by` dovrebbe essere un elenco separato da virgole di `field_` seguito dall'id del campo per cui ordinare. Ad esempio se fornisci il seguente parametro GET `order_by=field_1,-field_2` le righe saranno ordinate per `field_1` in ordine crescente. Se alcuni campi hanno lo stesso valore, quel sottoinsieme sarà ordinato per `field_2` in ordine decrescente.", - "filter": "Le righe possono opzionalmente essere filtrate per gli stessi filtri disponibili per le viste. Possono essere forniti più filtri, se seguono lo stesso formato. Le variabili `field` e `filter` indicano come filtrare e il valore indica dove filtrare.\n\nAd esempio se si fornisce il seguente parametro GET `filter__field_1__equal=test` allora saranno restituite solo le righe in cui il valore di field_1 è uguale a test. ", - "filterLink": "Qui puoi trovare un elenco di tutti i filtri.", - "filterType": "- `AND`: indica che le righe devono corrispondere a tutti i filtri forniti.\n- `OR`: indica che le righe devono corrispondere solo a uno dei filtri.\n\nQuesto funziona solo se vengono forniti due o più filtri.", - "include": "Tutti i campi sono inclusi nella risposta per impostazione predefinita. Si può selezionare un sottoinsieme di campi da includere, fornendo il parametro di query include.\n\n#### Con `user_field_names`:\n\n`include` deve essere un elenco separato da virgole di nomi campo da includere nei risultati. Ad esempio se si fornisce il seguente parametro GET: `include=My Field,-My Field 2` allora solo quei campi saranno inclusi (a meno che non siano esplicitamente esclusi).\n\nIl nome dei campi che contengono virgole deve essere circondato da virgolette: `\"Name ,\"`. Se i nomi campo contengono virgolette, allora devono essere evasi usando il carattere `\\`. Es: `Name \\\"`.\n\n#### Senza `user_field_names`:\n\n`include` deve essere un elenco separato da virgole di `field_` seguito dall'id del campo da includere nei risultati. Ad esempio: se si fornisce il seguente parametro GET `exclude=field_1,field_2` allora i campi con id `1` e id `2` saranno i soli inclusi (a meno che non siano esplicitamente esclusi).", - "exclude": "Tutti i campi sono inclusi nella risposta per impostazione predefinita. Si può selezionare un sottoinsieme di campi da escludere, fornendo il parametro di query exclude.\n\n #### Con `user_field_names`:\n\n `exclude` deve essere un elenco separato da virgole di nomi campo da escludere dai risultati. As esempio se si fornisce il seguente parametro GET: `exclude=My Field,-My Field 2` allora quei campi saranno esclusi.\n\n Il nome dei campi che contengono virgole deve essere circondato da virgolette: `\"Name ,\"`. Se i nomi dei campi contengono virgolette, allora devono essere evasi usando il carattere ```. Es: `Name \\\"`.\n\n #### Senza `nomi_di_campo_utente`:\n\n `exclude` deve essere un elenco separato da virgole di `field_` seguito dall'id del campo da escludere dai risultati. Ad esempio: Se fornisci il seguente parametro GET `exclude=field_1,field_2` allora i campi con id `1` e id `2` saranno esclusi.", - "viewId": "Di default nessuno dei filtri o ordinamenti fuori da quelli definiti nei parametri query del URL verrà applicato. Puoi aggiungere filtri e ordinamenti fornendo i relativi `id` come parametro GET per il parametro `view_id`. Per esempio, scrivendo `view_id=1` allora verranno utilizzati i filtri e l'ordinamento della vista con `id` 1. Puoi trovare l'id della vista nel menu di modifica della singola vista. L'id è il numero tra parentesi dopo il nome.\n\n #### With `filter__{field}__{filter}` \n\n Verranno applicati sia il filtro fornito nei parametri query del URL che quello impostato nella vista. \n\n #### With `order_by` \n\n Se viene fornito uno specifico `order_by`, l'ordinamento impostato nella vista viene ignorato.", - "filtersBuilder": "Apri il tool per preparare i tuoi filtri", - "filters": "Facoltativamente, le righe possono essere filtrate utilizzando gli stessi filtri di visualizzazione disponibili per le visualizzazioni. Questo parametro accetta una stringa serializzata JSON contenente l'albero dei filtri da applicare a questa vista. L'albero dei filtri è una struttura nidificata contenente i filtri che devono essere applicati.\\n\\n#### Con `user_field_names`:\\n\\nUn esempio di albero di filtri valido è il seguente: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": \\\"Name\\\", \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`.\\n\\n#### Senza `user_field_names`:\\n\\nAd esempio, se fornisci facoltativamente il seguente parametro GET: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": 1, \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`\\n\\nTieni presente che se viene fornito questo parametro, tutti gli altri `filter__{field}__{filter}` verranno ignorati, così come il parametro filter_type." - }, - "apiDocsIntro": { - "intro": "Il database {name} fornisce un modo semplice per integrare i dati con qualsiasi sistema esterno. L'API segue la semantica REST, usa JSON per codificare gli oggetti e si basa su codici HTTP standard, errori leggibili dalla macchina e dall'uomo per segnalare i risultati delle operazioni.", - "autoDocDescription": "Questa documentazione viene generata automaticamente in base alle tabelle e ai campi che si trovano nel tuo database. Se si apportano modifiche al database, alla tabella o ai campi, è possibile che anche l'interfaccia API cambi. Pertanto, assicurati di aggiornare la tua implementazione API di conseguenza.", - "databaseId": "L'ID di questo database è:", - "jsClient": "Client API di esempio in Javascript:", - "pythonClient": "Client API di esempio in Python:" - }, - "apiDocsTableListFields": { - "description": "Per elencare i campi della tabella {name} si deve fare una richiesta `GET` ai campi endpoint {name}. È possibile elencare i campi solo se il Database token ha le autorizzazioni di lettura, creazione o aggiornamento.", - "resultFieldProperties": "Proprietà del campo risultati", - "id": "Chiave primaria del campo. Può essere usato per generare il nome della colonna del database aggiungendo il prefisso `field_`.", - "name": "Nome campo.", - "tableId": "Id tabella relativa.", - "order": "Ordine dei campi nella tabella. 0 per il primo campo.", - "primary": "Indica se il campo è un campo primario. Se `true`, il campo non può essere eliminato e il valore deve rappresentare l'intera riga.", - "type": "Tipo definito per questo campo.", - "extraProps": "Alcune proprietà extra non sono descritte qui perché sono specifiche del tipo.", - "readOnly": "Indica se un campo e in sola lettura. Se vero, non è possibile modificare il valore delle cella.", - "descriptionField": "Descrizione campo" - }, - "apiDocsTableDeleteRow": { - "description": "Elimina una riga esistente {nome}.", - "rowId": "L'identificatore univoco della riga che deve essere eliminata." - }, - "apiDocsTableMoveRow": { - "description": "Sposta una riga esistente {nome} prima di un'altra riga. Se non viene fornito alcun `before_id`, allora la riga verrà spostata alla fine della tabella.", - "rowId": "Sposta la riga relativa al valore.", - "before": "Sposta la riga relativa al dato `row_id` prima della riga relativa al valore fornito. Se non viene fornito, la riga verrà spostata alla fine." - }, - "apiDocsTableUpdateRow": { - "description": "Aggiorna una riga esistente {name}.", - "rowId": "L'identificatore univoco della riga che deve essere aggiornata.", - "before": "Se fornito, la riga appena creata sarà posizionata prima della riga con l'id fornito." - }, - "apiDocsTableCreateRow": { - "description": "Crea una nuova riga {name}.", - "before": "Se fornito, la riga appena creata sarà posizionata prima della riga con l'id fornito." - }, - "apiDocsAuth": { - "description": "Baserow usa una semplice autenticazione basata su token. È necessario generare almeno un Database token nel tuo {settingsLink} per utilizzare gli endpoint descritti di seguito. È possibile dare autorizzazioni di creazione, lettura, aggiornamento ed eliminazione per token fino al livello di tabella. Puoi autenticarti all'API fornendo il tuo token API nell'header del token del portatore di autorizzazione HTTP. Tutte le richieste alle API devono essere autenticate e fatte su HTTPS.", - "settingsLink": "impostazioni" - }, - "apiDocsFilters": { - "filter": "Filtra", - "exampleValue": "Esempio di valore", - "example": "Esempio completo", - "field": "campo {name}", - "deprecated": "deprecato" - }, - "fieldTextSubForm": { - "placeholder": "Testo predefinito" - }, - "fieldSingleSelectSubForm": { - "optionsLabel": "Opzioni" - }, - "fieldSingleSelectDropdown": { - "notFound": "Opzione non trovata" - }, - "fieldDateSubForm": { - "dateFormatLabel": "Formato data", - "dateFormatEuropean": "Europeo", - "dateFormatUS": "USA", - "dateFormatISO": "ISO", - "includeTimeLabel": "Includi ora", - "timeFormatLabel": "Formato ora", - "24Hour": "24 ore", - "12Hour": "12 ore", - "addTimezoneOffsetLabel": "Converti i dati (aggiungi {utcOffsetDiff} minuti)", - "subTimezoneOffsetLabel": "Converti i dati (sottrai {utcOffsetDiff} minuti)", - "showTimezoneLabel": "Mostra fuso orario", - "forceTimezoneLabel": "Imposta un fuso orario per tutti i collaboratori", - "forceTimezoneValue": "Fuso orario" - }, - "fieldLinkRowSubForm": { - "noTable": "Serve almeno un'altra tabella nello stesso database a cui collegarsi.", - "selectTableLabel": "Seleziona una tabella a cui collegarsi", - "hasRelatedFieldLabel": "Crea relazione nella tabella collegata", - "limitToView": "Limita la selezione ad una vista", - "limitToViewDescription": "Nota che questo è solo visuale. E' ancora possibile creare relazioni al di fuori della vista tramite API." - }, - "fieldSelectOptions": { - "add": "Aggiungi un'opzione" - }, - "fieldNumberSubForm": { - "typeLabel": "Tipo di numero", - "integer": "Intero", - "decimal": "Decimale", - "decimalPlacesLabel": "Posizioni decimali", - "allowNegative": "Consenti negativi" - }, - "fieldContext": { - "editField": "Modifica campo", - "deleteField": "Elimina campo", - "hideField": "Nascondi campo", - "showField": "Mostra campo", - "changePrimaryField": "Cambia la chiave primaria" - }, - "fieldForm": { - "name": "Nome", - "fieldAlreadyExists": "Un campo con questo nome esiste già.", - "nameNotAllowed": "Il nome di questo campo non è consentito.", - "nameTooLong": "Il nome di questo campo è troppo lungo.", - "description": "Descrizione", - "addDescription": "Aggiungi descrizione" - }, - "fieldLookupSubForm": { - "noTable": "Serve almeno un campo riga di collegamento per creare un campo di ricerca.", - "selectThroughFieldLabel": "Seleziona un campo riga di collegamento", - "selectTargetFieldLabel": "Seleziona un campo da cercare" - }, - "fieldFormulaNumberSubForm": { - "typeLabel": "Tipo di numero", - "integer": "Intero", - "decimal": "Decimale", - "decimalPlacesLabel": "Posizioni decimali", - "allowNegative": "Consenti negativi" - }, - "fieldRatingSubForm": { - "maxValue": "Massimo", - "color": "Colore", - "style": "Stile" - }, - "rowCreateModal": { - "addField": "Aggiungi campo" - }, - "selectRowContent": { - "search": "Righe di ricerca" - }, - "rowEditModal": { - "addField": "Aggiungi campo", - "showHiddenFields": "Mostra campi nascosti", - "hideHiddenFields": "Nascondi campi nascosti" - }, - "rowEditFieldMultipleSelect": { - "addOption": "Scegli una opzione" - }, - "rowEditFieldFile": { - "addFile": "Aggiungi un file", - "sizes": { - "0": "Byte", - "1": "KB", - "2": "MB", - "3": "GB", - "4": "TB", - "5": "PB" - } - }, - "rowEditFieldLinkRow": { - "addLink": "Scegli un collegamento" - }, - "tableCSVImporter": { - "chooseFileLabel": "Scegli file CSV", - "chooseFileDescription": "Puoi importare un CSV esistente caricando il file .CSV con i dati tabellari. La maggior parte delle applicazioni per fogli di calcolo ti permetterà di esportare un foglio di calcolo come file .CSV.", - "chooseFile": "Scegli file CSV", - "columnSeparator": "Separatore colonne", - "recordSeparator": "separatore registro", - "unitSeparator": "separatore unità", - "encoding": "Codifica", - "firstRowHeader": "La prima riga è l'intestazione", - "limitFileSize": "La dimensione massima del file è {limit}MB.", - "limitError": "Non è possibile importare più di {limit} righe.", - "emptyCSV": "Il file CSV è vuoto." - }, - "tableForm": { - "name": "Nome" - }, - "tableXMLImporter": { - "fileLabel": "Scegli file XML", - "fileDescription": "È possibile importare un XML esistente caricando il file .XML con i dati tabulari, cioè:", - "chooseButton": "Scegli file XML", - "processingError": "Errore verificatosi durante l'elaborazione dell'XML: {errors}", - "emptyError": "Questo file XML è vuoto.", - "limitFileSize": "La dimensione massima del file è {limit}MB.", - "limitError": "Non è possibile importare più di {limit} righe." - }, - "tableJSONImporter": { - "fileLabel": "Scegli file JSON", - "fileDescription": "È possibile importare un file JSON esistente caricando il file .json con dati tabulari, cioè:", - "chooseButton": "Scegli file JSON", - "encodingLabel": "Codifica", - "processingError": "Errore verificatosi durante l'analisi del JSON: {error}", - "arrayError": "Il file JSON non è una matrice.", - "emptyError": "Questo file JSON è vuoto.", - "limitFileSize": "La dimensione massima del file è {limit}MB.", - "limitError": "Non è possibile importare più di {limit} righe." - }, - "tablePasteImporter": { - "pasteLabel": "Incolla i dati della tabella", - "pasteDescription": "Puoi copiare le celle da un foglio di calcolo e incollarle qui sotto.", - "firstRowHeader": "La prima riga è l'intestazione", - "limitError": "Non è possibile importare più di {limit} righe." - }, - "importFileModal": { - "title": "Crea nuova tabella", - "importLabel": "Vuoi importare i dati esistenti?", - "newTable": "Inizia con una nuova tabella", - "addButton": "Aggiungi tabella", - "reportTitleFailure": "Righe con errori", - "uploading": "Caricando...", - "openCreatedTable": "Apri la tabella creata", - "preparing": "Preparando i dati...", - "importError": "Qualcosa è andato storto durante l'import dei dati", - "showReport": "Mostra report errori", - "statePreValidation": "Validando i dati...", - "reportMessage": "Le seguenti righe non possono essere importate:", - "stateRowCreation": "Importando...", - "reportTitleSuccess": "Import riuscito ma...", - "stateCreateTable": "Creando la tabella...", - "additionalImportTitle": "Importa in {table}", - "showTable": "mostra tabella", - "fieldMappingDescription": "Abbiamo provato a mappare automaticamente le tue colonne nei nostri formati. Puoi modificarli qui sotto. Ogni formato incompatibile rimarrà vuoto al termine dell'importazione.", - "fieldMappingTitle": "Rimappa i campi", - "importButton": "Importa", - "selectImportMessage": "Per favore scegli i dati da importare.", - "filePreview": "Anteprima contenuto file", - "importPreview": "Anteprima dei dati che verranno importati", - "changeImporterType": "Cambia tipo di importazione", - "defaultName": "Tabella" - }, - "formulaAdvancedEditContext": { - "textAreaFormulaInputPlaceholder": "Clicca per modificare la formula", - "fields": "Campi", - "functions": "Funzioni", - "operators": "Operatori", - "fieldType": "Un campo {type}" - }, - "fieldFormulaInitialSubForm": { - "formulaInputPlaceholder": "Clicca per modificare la formula", - "refreshFormulaOptions": "Aggiorna opzioni formula" - }, - "formulaFieldItemDescription": { - "syntax": "Sintassi", - "examples": "Esempi" - }, - "viewSearchContext": { - "searchInRows": "Cerca in tutte le righe", - "hideNotMatching": "nascondi righe non corrispondenti" - }, - "viewsContext": { - "searchView": "Viste di ricerca", - "noViews": "Nessuna vista trovata", - "collaborative": "Collaborativa" - }, - "viewFilterTypeLinkRow": { - "unnamed": "righe senza nome {value}", - "choose": "Scegli riga" - }, - "viewFilterContext": { - "addFilter": "Aggiungi filtro", - "disableAllFilters": "tutti disabilitati", - "noFilterTitle": "Non hai ancora creato un filtro", - "noFilterText": "I filtri ti permettono di mostrare le righe che corrispondono alle condizioni.", - "where": "Dove", - "and": "E", - "or": "O", - "relatedFieldNotFound": "Il campo relativo non è stato trovato.", - "filterTypeNotFound": "Il tipo di filtro è incompatibile.", - "noCompatibleFilterTypesErrorMessage": "Nessuno dei campi ha filtri compatibili", - "noCompatibleFilterTypesErrorTitle": "Nessun filtro compatibile", - "addFilterGroup": "Aggiungi gruppo di filtri" - }, - "viewFilterTypeFileTypeDropdown": { - "image": "immagine", - "document": "documento" - }, - "createViewModal": { - "createNew": "Crea nuova {view}", - "add": "Aggiungi {view}" - }, - "shareViewLink": { - "shareView": "Condividi {viewTypeSharingLinkName}", - "shareViewTitle": "Non hai ancora condiviso questa vista", - "sharedViewTitle": "Questo {viewTypeSharingLinkName} è attualmente condiviso tramite un link privato", - "sharedViewDescription": "Le persone che hanno il link possono vedere il {viewTypeSharingLinkName}.", - "disableLink": "Disabilita link condiviso", - "generateNewUrl": "genera nuovo url", - "copyURL": "copia URL", - "EnablePassword": "Limita l'accesso con una password", - "DisablePassword": "L'accesso è protetto da password", - "ChangePassword": "Modifica", - "shareViewText": "Un link pubblico permette a chiunque di vedere i dati in questa vista.", - "createPrivateLink": "Crea un link pubblico", - "notSharedYetText": "Permetti a chiunque di vedere i dati in questa vista o sincornizza gli eventi con una applicazione esterna" - }, - "viewSortContext": { - "noSortTitle": "Non hai ancora creato un ordinamento", - "noSortText": "Gli ordinamenti permettono di ordinare le righe per un campo.", - "sortBy": "Ordina per", - "thenBy": "Poi per", - "addSort": "scegli un campo per il quale ordinare" - }, - "viewSort": { - "sort": "Ordinamento | 1 Ordinamento | {count} Ordinamenti" - }, - "viewRotateSlugModal": { - "title": "Aggiorna URL", - "refreshWarning": "Sei sicuro di voler aggiornare l'URL di {viewName}? Dopo averlo fatto, verrà generato un nuovo URL e non sarà possibile accedere a {viewTypeSharingLinkName} tramite il vecchio URL. Tutti quelli con cui hai condiviso l'URL non saranno in grado di accedere a {viewTypeSharingLinkName}.", - "generateNewURL": "Genera nuovo URL" - }, - "viewFieldsContext": { - "coverField": "Campo di copertina", - "noCover": "Nessuna copertina", - "search": "Campi di ricerca", - "hideAll": "Nascondi tutti", - "showAll": "Mostra tutti" - }, - "viewFilterTypeBoolean": { - "selected": "Selezionato" - }, - "viewFilter": { - "filter": "Filtro | 1 Filtro | {count} Filtri" - }, - "viewContext": { - "exportView": "Esporta vista", - "renameView": "Rinomina vista", - "webhooks": "Webhook", - "deleteView": "Elimina vista", - "duplicateView": "Duplica vista", - "importFile": "Importa file", - "toCollaborative": "A collaborativa", - "toPersonal": "A personale" - }, - "deleteViewModal": { - "title": "Elimina {name}", - "description": "Sei sicuro di voler eliminare la vista {name}? I dati della tabella saranno conservati, ma i filtri, gli ordinamenti e le larghezze dei campi relativi alla vista saranno eliminati.", - "delete": "Elimina vista" - }, - "viewForm": { - "name": "Nome", - "whoCanEdit": "Chi può modificare" - }, - "galleryViewHeader": { - "customizeCards": "Personalizza schede" - }, - "gridViewHide": { - "hideField": "Nascondi campi | 1 campo nascosto | {count} campi nascosti" - }, - "gridViewFieldType": { - "insertLeft": "Inserisci a sinistra", - "insertRight": "Inserisci a destra", - "createFilter": "Crea filtro", - "sortField": "Ordina", - "hideField": "Nascondi campo", - "duplicate": "Duplica campo" - }, - "gridViewRow": { - "rowNotMatchingFilters": "La riga non corrisponde ai filtri", - "rowNotMatchingSearch": "La riga non corrisponde alla ricerca", - "rowHasMoved": "Riga spostata" - }, - "gridView": { - "insertRowAbove": "Inserisci riga sopra", - "insertRowBelow": "Inserisci riga sotto", - "enlargeRow": "Allarga riga", - "deleteRow": "Elimina riga", - "rowCount": "Nessuna riga | 1 riga | {conteggio} righe", - "duplicateRow": "Duplica riga", - "selectRow": "Seleziona riga", - "deleteRows": "Elimina righe", - "copyCells": "Copia celle", - "hiddenRowsInsertedMessage": "{number} nuove righe sono state aggiunte, ma non sono visibili a causa dei filtri attivi.", - "hiddenRowsInsertedTitle": "Righe aggiunte", - "copiedRowURLMessage": "La riga {id} è stata copiata nella tua clipboard.", - "copiedRowURL": "URL di riga copiato", - "copyRowURL": "Copia URL di riga", - "generateCellsValues": "Genera valori con IA", - "AIValuesGenerationErrorTitle": "Generazione del valore IA fallita", - "AIValuesGenerationErrorMessage": "Per favore controlla la tua chiave API e verifica il modello selezionato.", - "tooManyItemsDescription": "Non è possible aggiornare più di {limit} righe alla volta, per cui abbiamo aggiornato solo le prime.", - "tooManyItemsTitle": "Troppi oggetti" - }, - "gridViewFieldLinkRow": { - "unnamed": "riga senza nome {value}" - }, - "gridViewIdentifierOptions": { - "id": "Id riga", - "count": "Conteggio" - }, - "previewAny": { - "externalWarning": "L'apertura del file tramite un servizio esterno espone il file ai server di tale servizio." - }, - "exportTableModal": { - "failedTitle": "Esportazione non riuscita", - "failedDescription": "L'esportazione non è riuscita a causa di un errore del server.", - "cancelledTitle": "Esportazione annullata", - "cancelledDescription": "L'esportazione è stata annullata." - }, - "exporterTypeChoices": { - "formatLabel": "In quale formato vuoi esportare?" - }, - "exportTableForm": { - "viewLabel": "Seleziona la vista da esportare:", - "typeError": "Nessun tipo di esportatore disponibile, seleziona un'altra vista o un'intera tabella." - }, - "exportTableLoadingBar": { - "export": "Esporta", - "download": "Scarica" - }, - "exportTableDropdown": { - "exportEntireTable": "Esporta intera tabella" - }, - "tableCSVExporter": { - "columnSeparatorLabel": "Separatore colonne", - "recordSeparator": "separatore registro", - "unitSeparator": "separatore unità", - "encodingLabel": "Codifica", - "firstRowIsHeaderLabel": "La prima riga è l'intestazione" - }, - "apiDocsDatabase": { - "pageTitle": "Documentazione API del database {name}", - "back": "Torna alla dashboard", - "openDatabase": "apri database" - }, - "apiDocsComponent": { - "title": "API REST", - "intro": "Dopo aver creato lo schema di database e la chiave API nel {settingsLink}, il database Baserow fornisce i propri endpoint API REST per creare, leggere, aggiornare ed eliminare le righe.", - "settings": "impostazioni", - "selectApplicationTitle": "Per quale database vuoi vedere la documentazione?", - "signIn": "Registrati per iniziare", - "back": "Torna alla dashboard" - }, - "viewAggregationType": { - "emptyCount": "Vuoto", - "notEmptyCount": "Non vuoto", - "emptyPercentage": "Percentuale vuota", - "notEmptyPercentage": "Percentuale non vuoti", - "checkedCount": "Selezionato", - "notCheckedCount": "Non selezionato", - "checkedPercentage": "Percentuale selezionata", - "notCheckedPercentage": "Percentuale non selezionata", - "min": "Minimo", - "max": "Massimo", - "earliestDate": "Prima data", - "earliestDateShort": "Prima", - "latestDate": "Ultima data", - "latestDateShort": "Ultima", - "uniqueCount": "Unico", - "sum": "Somma", - "average": "Media", - "median": "Mediano", - "stdDev": "Deviazione standard", - "stdDevShort": "Dev std", - "variance": "Variazione", - "count": "Conteggio" - }, - "databaseForm": { - "importLabel": "Vuoi importare i dati esistenti?", - "emptyLabel": "Inizia da zero", - "airtableLabel": "Importa da Airtable (beta)" - }, - "importFromAirtable": { - "airtableShareLinkTitle": "Condividi link al tuo Base", - "airtableShareLinkDescription": "Per importare il tuo base Airtable, devi avere un link condiviso a tutto il base. In Airtable, clicca sul pulsante di condivisione in alto a destra dopo aver aperto il base. Dopodiché, devi scegliere l'opzione \"Accesso al base\". Nel modale di condivisione puoi cliccare su \"Crea un link condiviso a tutto il base\" e poi su \"Link privato di sola lettura\". Copia il link pubblico e incollalo nell'input sottostante.", - "airtableShareLinkBeta": "Nota che questa funzione è in beta: le tabelle, i campi (eccetto formula, ricerca e conteggio) e i dati saranno importati, le viste non saranno importate.", - "airtableShareLinkPaste": "Incolla il link qui", - "importButtonLabel": "Importa da Airtable", - "openButtonLabel": "Apri database importato", - "importError": "Si è verificato un errore", - "statePending": "In attesa di iniziare", - "stateFailed": "Non riuscito", - "stateFinished": "Concluso", - "stateDownloadingBase": "Download schema base in corso", - "stateConverting": "Conversione a Baserow in corso", - "stateDownloadingFiles": "Download file in corso", - "stateImporting": "Importazione in corso", - "stateImportingTable": "Importazione tabella {table} in corso", - "errorJobAlreadyRunningTitle": "Già in esecuzione", - "errorJobAlreadyRunningDescription": "Un altro lavoro di importazione è già in esecuzione. Devi aspettare che finisca prima di iniziarne un altro.", - "linkError": "Il link dovrebbe essere nel formato: https://airtable.com/shrxxxxxxxxxxxxxx" - }, - "viewDecorator": { - "decorator": "Colore | 1 Colore | {count} Colori" - }, - "chooseSingleSelectField": { - "addSelectField": "Aggiungi selezione singola", - "warningWhenNothingToChooseOrCreate": "Non ci sono campi a selezione singola da scegliere e tu non hai i permessi per crearne uno." - }, - "viewDecoratorContext": { - "addDecorator": "Aggiungi colorazione" - }, - "shareViewEnablePasswordModal": { - "newPasswordTitle": "Inserisci una password", - "newPasswordSave": "Imposta una password", - "changePasswordTitle": "Modifica password", - "newPasswordDescription": "Il link pubblico sarà accessibile solo inserendo la password corretta. Questa password verrà salvata cifrata.", - "changePasswordDescription": "Modificando la password, la precedente smetterà di funzionare. La password verrà salvata cifrata.", - "changePasswordSave": "Modifica password" - }, - "shareViewDisablePasswordModal": { - "title": "Rimuovi la protezione con password", - "disable": "Disabilita", - "description": "Sei sicuro di voler eliminare la protezione tramite password per questo link pubblico? Se confermi, la password verrà eliminata e non sarà possibile ripristinarla" - }, - "publicViewAuthLogin": { - "title": "Questa pagina è protetta da password", - "description": "Inserisci la password corretta per accedere alla pagina.", - "enter": "Accedi", - "error": { - "incorrectPasswordTitle": "Password sbagliata", - "incorrectPasswordText": "La password inserita non è corretta." - } - }, - "apiDocsTableDeleteRows": { - "description": "Elimina righe esistenti {name}.", - "items": "Una lista di ID di right che verranno eliminate." - }, - "importer": { - "loading": "Caricamento file", - "decoding": "Decodificando i dati", - "parsing": "Analizzando i dati", - "preparing": "Preparando i dati", - "inProgress": "In corso...", - "fieldDefaultName": "Campi {count}" - }, - "apiDocsTableCreateRows": { - "description": "Crea nuove {name} righe.", - "before": "Se fornito, le nuove righe verranno inserite prima di questo id di riga." - }, - "apiDocsTableUpdateRows": { - "description": "Aggiorna righe esistenti {name}.", - "id": "L'Id di riga." - }, - "databaseDashboardSidebarLinks": { - "apiDocumentation": "Documentazione API" - }, - "duplicateFieldContext": { - "cloneData": "Copia i dati", - "soon": "Presto disponibile", - "duplicate": "Duplica campo", - "readOnlyField": "I valori delle celle verranno riempiti automaticamente." - }, - "formViewField": { - "required": "richiesto", - "showWhenMatchingConditions": "mostra quando le condizioni sono soddisfatte", - "addCondition": "Aggiungi condizione", - "descriptionPlaceholder": "Descrizione", - "addConditionGroup": "Aggiungi gruppo di condizioni", - "showFieldAs": "Mostra campo come" - }, - "formViewMeta": { - "includeRowId": "Usa {row_id} per includere l'id di riga nel tuo URL." - }, - "snapshotsModal": { - "title": "snapshot", - "description": "Gli snapshot sono copie esatte del/della tuo/tua {applicationTypeName} prese al momento in cui sono vengono create. Al momento del ripristino, verrà creato un clone dei dati originali. Gli snapshot vengono cancellati automaticamente dopo un anno.", - "createLabel": "Crea uno snapshot", - "snapshotRestoredErrorTitle": "Errore", - "snapshotRestoredErrorMessage": "Lo snapshot non può essere ripristinato. Riprova più tardi.", - "snapshotDeletedErrorTitle": "Errore", - "snapshotDeletedErrorMessage": "Lo snapshot non può essere eliminato. Riprova più tardi.", - "limitReached": "Il limite massimo di snapshot è stato raggiunto.", - "snapshot": "Snapshot", - "importingState": "Creando", - "reset": "Creane un'altro", - "descriptionLimits": "Puoi avere un massimo di {n} snapshot per progetto. | Puoi avere un massimo di {n} snapshot per progetto. | Puoi avere un massimo di {n} snapshot per progetto.", - "create": "Crea uno snapshot", - "cancel": "Cancella", - "noSnapshots": "Nessuno snapshot per questa applicazione." - }, - "deleteSnapshotModal": { - "title": "Elimina snapshot", - "content": "Sei sicuro di voler eliminare definitivamente lo snapshot {name}?", - "confirm": "Elimina" - }, - "snapshotListItem": { - "restore": "ripristina", - "delete": "elimina", - "created": "creato" - }, - "fieldmultipleCollaboratorsDropdown": { - "notFound": "Collaboratore non trovato" - }, - "formViewHeader": { - "mode": "Modalità", - "preview": "Anteprima", - "fields": "Campi" - }, - "formViewModePreviewForm": { - "addCoverImage": "Aggiungi un'immagine di copertina", - "addLogo": "Aggiungi un logo", - "noFields": "Questo form non contiene campi. Clicca su un campo nella barra laterale di sinistra per aggiungerne uno.", - "titlePlaceholder": "Titolo", - "descriptionPlaceholder": "Descrizione" - }, - "rowEditFieldMultipleCollaborators": { - "addCollaborator": "Scegli un collaboratore" - }, - "formViewModeType": { - "formDescription": "Tutti i campi sono visibili verticalmente uno dopo l'altro.", - "form": "Form" - }, - "table": { - "chooseView": "Scegli vista", - "adjacentRow": { - "notification": { - "error": { - "title": "Errore imprevisto", - "message": "Si è verificato un errore imprevisto nel tentativo di caricare la riga adiacente" + "webhookModal": { + "title": "Webhook {name}", + "createWebhook": "Crea webhook", + "backToList": "Torna all'elenco" + }, + "deleteWebhookModal": { + "title": "Elimina {webhookName}", + "deleteButton": "Elimina webhook", + "body": "Sei sicuro di voler eliminare questo webhook? Non sarà più possibile ripristinarlo." + }, + "webhookList": { + "noWebhooksMessage": "Non hai ancora creato nessun webhook. I webhook possono essere usati per informare sistemi di terze parti quando una riga in Baserow è stata creata, aggiornata o eliminata." + }, + "testWebhookModal": { + "title": "Testa webhook", + "unreachable": "Server non raggiungibile" + }, + "webhookForm": { + "inputLabels": { + "name": "Nome", + "value": "Valore", + "requestMethod": "Metodo", + "url": "URL", + "userFieldNames": "Nomi campo utente", + "events": "Quali eventi devono attivare questo webhook?", + "headers": "Header aggiuntivi", + "example": "Esempio di payload" + }, + "errors": { + "urlField": "Deve essere un URL valido che inizia con 'https://' o 'http://'.", + "invalidHeaders": "Uno degli header non è valido." + }, + "checkbox": { + "sendUserFieldNames": "Usa il nome del campo invece dell'id" + }, + "radio": { + "allEvents": "Mandami tutto", + "customEvents": "Lasciami selezionare eventi individuali" + }, + "triggerButton": "Attiva webhook di test", + "deactivated": { + "title": "Il Webhook è disattivato", + "content": "Questo webhook è stato disattivato a causa di troppi fallimenti consecutivi. Controlla il registro delle chiamate per maggiori dettagli. Clicca sul pulsante qui sotto per attivarlo di nuovo. Non dimenticare di salvare il webhook dopo averlo attivato.", + "activate": "Attiva" }, - "notFound": { - "next": { - "title": "Nessuna riga", - "message": "Non sono presenti altre righe" - }, - "previous": { - "title": "Nessuna riga successiva", - "message": "Non è presente nessuna riga precedente" - } + "deprecatedEventType": { + "convert": "Converti", + "title": "Tipo di evento deprecato", + "description": "Questo webhook non viene richiamato se più righe vengono modificate contemporaneamente tramite chiamata batch. Per favore, utilizza l'evento di tipo batch opportuno. Questo tipo di evento utilizza un formato adatto per inviare righe multiple nel corpo del messaggio." + }, + "helpTriggerWhenFieldsHaveChanged": "Verrà attivato solo se il valore della cella dei campi scelti cambia.", + "triggerWhenFieldsHaveChanged": "Attivato alla modifica dei campi" + }, + "webhook": { + "details": "dettagli", + "lastCall": "Ultima chiamata: {lastCallTime}", + "noCalls": "Nessuna chiamata effettuata", + "callLog": "Registro chiamate", + "triggerDescription": "Attivazione su ogni evento | Attivazione su {count} eventi | Attivazione su {count} eventi" + }, + "createWebhook": { + "errorTableWebhookMaxLimitExceededTitle": "Limite massimo di webhook superato", + "errorTableWebhookMaxLimitExceededDescription": "Impossibile creare il webhook perché è stato superato il numero massimo di webhook per tabella." + }, + "sidebar": { + "viewAPI": "Vedi documentazione API", + "createTable": "Crea tabella" + }, + "sidebarItem": { + "exportTable": "Esporta tabella", + "webhooks": "Webhooks", + "notSynced": "Non sincronizzato", + "lastSynced": "Ultima sincronizzazione", + "sync": "Sincronizza tabella", + "updateSyncConfig": "Aggiorna la configurazione di sincronizzazione" + }, + "apiToken": { + "create": "crea", + "read": "leggi", + "update": "aggiorna", + "delete": "elimina", + "tokenPrefix": "Token:", + "viewAPIDocs": "Vedi documentazione API", + "generateNewToken": "Genera nuovo token", + "showOrHide": "Mostra o nascondi token", + "copyToClipboard": "Copia negli appunti", + "showDatabases": "mostra database" + }, + "apiTokenSettings": { + "title": "Database Token", + "createToken": "Crea token", + "noTokensMessage": "Non hai ancora creato un Database token. Puoi usare i Database token per autenticarti con gli endpoint REST per creare, leggere, aggiornare ed eliminare le righe. È possibile impostare i permessi a livello di tabella.", + "hasFullPermissions": "Ha autorizzazioni complete, anche per tutti i bambini.", + "hasOnlySelectedPermissions": "Ha solo le autorizzazioni per i bambini selezionati.", + "noPermissions": "Non ha autorizzazioni.", + "createNewTitle": "Crea nuovo Database token", + "backToOverview": "Torna alla panoramica" + }, + "apiTokenForm": { + "nameLabel": "Nome", + "workspaceLabel": "Progetto" + }, + "apiDocsSelectDatabase": { + "needOneDatabase": "È necessario avere almeno un database per visualizzare la documentazione API." + }, + "apiDocsExample": { + "requestSample": "Esempio di richiesta", + "responseSample": "Esempio di risposta", + "userFieldNames": "Nomi campo utente" + }, + "apiDocsParameter": { + "optional": "facoltativo", + "defaultValue": "Predefinito: {value}" + }, + "apiDocsTableGetRow": { + "description": "Recupera una singola riga {name}.", + "rowId": "L'identificatore univoco della riga richiesta." + }, + "apiDocsErrors": { + "errorCode": "Codice di errore", + "name": "Nome", + "description": "Descrizione", + "okDescription": "Richiesta eseguita.", + "badRequestDescription": "La richiesta contiene valori non validi o il JSON non può essere analizzato.", + "unauthorizedDescription": "Quando si cerca di accedere a un endpoint senza un Database token valido.", + "notFoundDescription": "Riga o tabella non trovate.", + "requestEntityTooLargeDescription": "La richiesta ha superato la dimensione massima consentita del carico utile.", + "internalErrorDescription": "Il server ha incontrato una condizione inaspettata.", + "badGatewayDescription": "Baserow si sta riavviando o si sta verificando un'interruzione imprevista.", + "unavailableDescription": "Il server non ha potuto elaborare la tua richiesta in tempo." + }, + "apiDocsTableFields": { + "tableTitle": "Tabella {name}", + "tableId": "L'ID di questa tabella è:", + "description": "Ogni riga della tabella {name} contiene i seguenti campi.", + "id": "ID", + "name": "Nome", + "type": "Tipo", + "compatibleFilters": "Filtri compatibili" + }, + "apiDocsTableListRows": { + "description": "Per elencare le righe della tabella *{name}* si deve fare una richiesta `GET` all'endpoint *{name}*. La risposta è paginata e per default viene restituita la prima pagina. La pagina corretta può essere recuperata fornendo i parametri di query `page` e `size`.", + "page": "Definisce quale pagina di righe deve essere restituita.", + "size": "Definisce quante righe devono essere restituite per pagina.", + "userFieldNames": "Quando viene fornito un valore qualsiasi per il parametro GET `user_field_names`, allora i nomi campo restituiti da questo endpoint saranno i nomi reali dei campi.\n\nSe il parametro GET `user_field_names` non viene fornito, allora tutti i nomi campo restituiti saranno `field_` seguito dall'id del campo. Ad esempio `field_1` si riferisce al campo con un id di `1`.\n\nInoltre, quando `user_field_names` è impostato, allora il comportamento degli altri parametri GET `order_by`, `include` e `exclude` cambia. Si aspettano invece elenchi separati da virgole di nomi campo effettivi.", + "search": "Se fornito, saranno restituite solo le righe con i dati che corrispondono alla query di ricerca.", + "orderBy": "Opzionalmente le righe possono essere ordinate per campi separati da virgola. Per default o se preceduto da un '+' un campo è ordinato in ordine ascendente (A-Z), ma precedendo il campo con un '-' può essere ordinato in ordine discendente (Z-A).\n\n#### Con `user_field_names`:\n\n`order_by` deve essere un elenco separato da virgole dei nomi campo per cui ordinare. Ad esempio se fornisci il seguente parametro GET `order_by=My Field,-My Field 2` le righe saranno ordinate per il campo chiamato `My Field` in ordine crescente. Se alcuni campi hanno lo stesso valore, quel sottoinsieme sarà ordinato dal campo chiamato `My Field 2` in ordine decrescente.\n\nAssicurati che i campi con nomi che iniziano con un `+` o `-` siano esplicitamente preceduti da un altro `+` o `-`. Ad esempio `+-Nome`.\n\nIl nome dei campi che contengono virgole deve essere circondato da virgolette: `\"Name ,\"`. Se i nomi dei campi contengono virgolette, allora devono essere evasi usando il carattere `\\`. Es: `Name \\\"`.\n\n#### Senza `nomi_di_campo_utente`:\n\n`order_by` dovrebbe essere un elenco separato da virgole di `field_` seguito dall'id del campo per cui ordinare. Ad esempio se fornisci il seguente parametro GET `order_by=field_1,-field_2` le righe saranno ordinate per `field_1` in ordine crescente. Se alcuni campi hanno lo stesso valore, quel sottoinsieme sarà ordinato per `field_2` in ordine decrescente.", + "filter": "Le righe possono opzionalmente essere filtrate per gli stessi filtri disponibili per le viste. Possono essere forniti più filtri, se seguono lo stesso formato. Le variabili `field` e `filter` indicano come filtrare e il valore indica dove filtrare.\n\nAd esempio se si fornisce il seguente parametro GET `filter__field_1__equal=test` allora saranno restituite solo le righe in cui il valore di field_1 è uguale a test. ", + "filterLink": "Qui puoi trovare un elenco di tutti i filtri.", + "filterType": "- `AND`: indica che le righe devono corrispondere a tutti i filtri forniti.\n- `OR`: indica che le righe devono corrispondere solo a uno dei filtri.\n\nQuesto funziona solo se vengono forniti due o più filtri.", + "include": "Tutti i campi sono inclusi nella risposta per impostazione predefinita. Si può selezionare un sottoinsieme di campi da includere, fornendo il parametro di query include.\n\n#### Con `user_field_names`:\n\n`include` deve essere un elenco separato da virgole di nomi campo da includere nei risultati. Ad esempio se si fornisce il seguente parametro GET: `include=My Field,-My Field 2` allora solo quei campi saranno inclusi (a meno che non siano esplicitamente esclusi).\n\nIl nome dei campi che contengono virgole deve essere circondato da virgolette: `\"Name ,\"`. Se i nomi campo contengono virgolette, allora devono essere evasi usando il carattere `\\`. Es: `Name \\\"`.\n\n#### Senza `user_field_names`:\n\n`include` deve essere un elenco separato da virgole di `field_` seguito dall'id del campo da includere nei risultati. Ad esempio: se si fornisce il seguente parametro GET `exclude=field_1,field_2` allora i campi con id `1` e id `2` saranno i soli inclusi (a meno che non siano esplicitamente esclusi).", + "exclude": "Tutti i campi sono inclusi nella risposta per impostazione predefinita. Si può selezionare un sottoinsieme di campi da escludere, fornendo il parametro di query exclude.\n\n #### Con `user_field_names`:\n\n `exclude` deve essere un elenco separato da virgole di nomi campo da escludere dai risultati. As esempio se si fornisce il seguente parametro GET: `exclude=My Field,-My Field 2` allora quei campi saranno esclusi.\n\n Il nome dei campi che contengono virgole deve essere circondato da virgolette: `\"Name ,\"`. Se i nomi dei campi contengono virgolette, allora devono essere evasi usando il carattere ```. Es: `Name \\\"`.\n\n #### Senza `nomi_di_campo_utente`:\n\n `exclude` deve essere un elenco separato da virgole di `field_` seguito dall'id del campo da escludere dai risultati. Ad esempio: Se fornisci il seguente parametro GET `exclude=field_1,field_2` allora i campi con id `1` e id `2` saranno esclusi.", + "viewId": "Di default nessuno dei filtri o ordinamenti fuori da quelli definiti nei parametri query del URL verrà applicato. Puoi aggiungere filtri e ordinamenti fornendo i relativi `id` come parametro GET per il parametro `view_id`. Per esempio, scrivendo `view_id=1` allora verranno utilizzati i filtri e l'ordinamento della vista con `id` 1. Puoi trovare l'id della vista nel menu di modifica della singola vista. L'id è il numero tra parentesi dopo il nome.\n\n #### With `filter__{field}__{filter}` \n\n Verranno applicati sia il filtro fornito nei parametri query del URL che quello impostato nella vista. \n\n #### With `order_by` \n\n Se viene fornito uno specifico `order_by`, l'ordinamento impostato nella vista viene ignorato.", + "filtersBuilder": "Apri il tool per preparare i tuoi filtri", + "filters": "Facoltativamente, le righe possono essere filtrate utilizzando gli stessi filtri di visualizzazione disponibili per le visualizzazioni. Questo parametro accetta una stringa serializzata JSON contenente l'albero dei filtri da applicare a questa vista. L'albero dei filtri è una struttura nidificata contenente i filtri che devono essere applicati.\\n\\n#### Con `user_field_names`:\\n\\nUn esempio di albero di filtri valido è il seguente: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": \\\"Name\\\", \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`.\\n\\n#### Senza `user_field_names`:\\n\\nAd esempio, se fornisci facoltativamente il seguente parametro GET: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": 1, \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`\\n\\nTieni presente che se viene fornito questo parametro, tutti gli altri `filter__{field}__{filter}` verranno ignorati, così come il parametro filter_type." + }, + "apiDocsIntro": { + "intro": "Il database {name} fornisce un modo semplice per integrare i dati con qualsiasi sistema esterno. L'API segue la semantica REST, usa JSON per codificare gli oggetti e si basa su codici HTTP standard, errori leggibili dalla macchina e dall'uomo per segnalare i risultati delle operazioni.", + "autoDocDescription": "Questa documentazione viene generata automaticamente in base alle tabelle e ai campi che si trovano nel tuo database. Se si apportano modifiche al database, alla tabella o ai campi, è possibile che anche l'interfaccia API cambi. Pertanto, assicurati di aggiornare la tua implementazione API di conseguenza.", + "databaseId": "L'ID di questo database è:", + "jsClient": "Client API di esempio in Javascript:", + "pythonClient": "Client API di esempio in Python:" + }, + "apiDocsTableListFields": { + "description": "Per elencare i campi della tabella {name} si deve fare una richiesta `GET` ai campi endpoint {name}. È possibile elencare i campi solo se il Database token ha le autorizzazioni di lettura, creazione o aggiornamento.", + "resultFieldProperties": "Proprietà del campo risultati", + "id": "Chiave primaria del campo. Può essere usato per generare il nome della colonna del database aggiungendo il prefisso `field_`.", + "name": "Nome campo.", + "tableId": "Id tabella relativa.", + "order": "Ordine dei campi nella tabella. 0 per il primo campo.", + "primary": "Indica se il campo è un campo primario. Se `true`, il campo non può essere eliminato e il valore deve rappresentare l'intera riga.", + "type": "Tipo definito per questo campo.", + "extraProps": "Alcune proprietà extra non sono descritte qui perché sono specifiche del tipo.", + "readOnly": "Indica se un campo e in sola lettura. Se vero, non è possibile modificare il valore delle cella.", + "descriptionField": "Descrizione campo" + }, + "apiDocsTableDeleteRow": { + "description": "Elimina una riga esistente {nome}.", + "rowId": "L'identificatore univoco della riga che deve essere eliminata." + }, + "apiDocsTableMoveRow": { + "description": "Sposta una riga esistente {nome} prima di un'altra riga. Se non viene fornito alcun `before_id`, allora la riga verrà spostata alla fine della tabella.", + "rowId": "Sposta la riga relativa al valore.", + "before": "Sposta la riga relativa al dato `row_id` prima della riga relativa al valore fornito. Se non viene fornito, la riga verrà spostata alla fine." + }, + "apiDocsTableUpdateRow": { + "description": "Aggiorna una riga esistente {name}.", + "rowId": "L'identificatore univoco della riga che deve essere aggiornata.", + "before": "Se fornito, la riga appena creata sarà posizionata prima della riga con l'id fornito." + }, + "apiDocsTableCreateRow": { + "description": "Crea una nuova riga {name}.", + "before": "Se fornito, la riga appena creata sarà posizionata prima della riga con l'id fornito." + }, + "apiDocsAuth": { + "description": "Baserow usa una semplice autenticazione basata su token. È necessario generare almeno un Database token nel tuo {settingsLink} per utilizzare gli endpoint descritti di seguito. È possibile dare autorizzazioni di creazione, lettura, aggiornamento ed eliminazione per token fino al livello di tabella. Puoi autenticarti all'API fornendo il tuo token API nell'header del token del portatore di autorizzazione HTTP. Tutte le richieste alle API devono essere autenticate e fatte su HTTPS.", + "settingsLink": "impostazioni" + }, + "apiDocsFilters": { + "filter": "Filtra", + "exampleValue": "Esempio di valore", + "example": "Esempio completo", + "field": "campo {name}", + "deprecated": "deprecato" + }, + "fieldTextSubForm": { + "placeholder": "Testo predefinito" + }, + "fieldSingleSelectSubForm": { + "optionsLabel": "Opzioni", + "defaultOptionLabel": "Opzione predefinita" + }, + "fieldSingleSelectDropdown": { + "notFound": "Opzione non trovata" + }, + "fieldDateSubForm": { + "dateFormatLabel": "Formato data", + "dateFormatEuropean": "Europeo", + "dateFormatUS": "USA", + "dateFormatISO": "ISO", + "includeTimeLabel": "Includi ora", + "timeFormatLabel": "Formato ora", + "24Hour": "24 ore", + "12Hour": "12 ore", + "addTimezoneOffsetLabel": "Converti i dati (aggiungi {utcOffsetDiff} minuti)", + "subTimezoneOffsetLabel": "Converti i dati (sottrai {utcOffsetDiff} minuti)", + "showTimezoneLabel": "Mostra fuso orario", + "forceTimezoneLabel": "Imposta un fuso orario per tutti i collaboratori", + "forceTimezoneValue": "Fuso orario" + }, + "fieldLinkRowSubForm": { + "noTable": "Serve almeno un'altra tabella nello stesso database a cui collegarsi.", + "selectTableLabel": "Seleziona una tabella a cui collegarsi", + "hasRelatedFieldLabel": "Crea relazione nella tabella collegata", + "limitToView": "Limita la selezione ad una vista", + "limitToViewDescription": "Nota che questo è solo visuale. E' ancora possibile creare relazioni al di fuori della vista tramite API.", + "allowMultipleRelations": "Consenti relazioni multiple" + }, + "fieldSelectOptions": { + "add": "Aggiungi un'opzione" + }, + "fieldNumberSubForm": { + "typeLabel": "Tipo di numero", + "integer": "Intero", + "decimal": "Decimale", + "decimalPlacesLabel": "Posizioni decimali", + "allowNegative": "Consenti negativi", + "separatorLabel": "Separatore delle migliaia e dei decimali", + "prefixPlaceholder": "Prefisso", + "suffixPlaceholder": "Suffisso", + "prefixAndSuffixLabel": "Prefisso / suffisso", + "spaceComma": "Spazio, virgola (1 000 000,00)", + "spacePeriod": "Spazio, punto (1 000 000.00)", + "commaPeriod": "Virgola, punto (1,000,000.00)", + "periodComma": "Punto, virgola (1.000.000,00)", + "noFormatting": "Nessuna formattazione", + "defaultValueLabel": "Valore predefinito", + "defaultValuePlaceholder": "Inserisci un valore predefinito" + }, + "fieldContext": { + "editField": "Modifica campo", + "deleteField": "Elimina campo", + "hideField": "Nascondi campo", + "showField": "Mostra campo", + "changePrimaryField": "Cambia la chiave primaria" + }, + "fieldForm": { + "name": "Nome", + "fieldAlreadyExists": "Un campo con questo nome esiste già.", + "nameNotAllowed": "Il nome di questo campo non è consentito.", + "nameTooLong": "Il nome di questo campo è troppo lungo.", + "description": "Descrizione", + "addDescription": "Aggiungi descrizione", + "dbIndex": "Indice", + "dbIndexError": "Questo tipo di campo non può avere un indice. Per favore rimuovilo prima di salvare oppure modifica il tipo di campo.", + "dbIndexDescription": "L'indicizzazione può migliorare in modo significativo le prestazioni del filtro, ma rallenta le operazioni di creazione, aggiornamento e cancellazione." + }, + "fieldLookupSubForm": { + "noTable": "Serve almeno un campo riga di collegamento per creare un campo di ricerca.", + "selectThroughFieldLabel": "Seleziona un campo riga di collegamento", + "selectTargetFieldLabel": "Seleziona un campo da cercare" + }, + "fieldFormulaNumberSubForm": { + "typeLabel": "Tipo di numero", + "integer": "Intero", + "decimal": "Decimale", + "decimalPlacesLabel": "Posizioni decimali", + "allowNegative": "Consenti negativi" + }, + "fieldRatingSubForm": { + "maxValue": "Massimo", + "color": "Colore", + "style": "Stile" + }, + "rowCreateModal": { + "addField": "Aggiungi campo" + }, + "selectRowContent": { + "search": "Righe di ricerca" + }, + "rowEditModal": { + "addField": "Aggiungi campo", + "showHiddenFields": "Mostra campi nascosti", + "hideHiddenFields": "Nascondi campi nascosti" + }, + "rowEditFieldMultipleSelect": { + "addOption": "Scegli una opzione" + }, + "rowEditFieldFile": { + "addFile": "Aggiungi un file", + "sizes": { + "0": "Byte", + "1": "KB", + "2": "MB", + "3": "GB", + "4": "TB", + "5": "PB" } - }, - "toast": { + }, + "rowEditFieldLinkRow": { + "addLink": "Scegli un collegamento" + }, + "tableCSVImporter": { + "chooseFileLabel": "Scegli file CSV", + "chooseFileDescription": "Puoi importare un CSV esistente caricando il file .CSV con i dati tabellari. La maggior parte delle applicazioni per fogli di calcolo ti permetterà di esportare un foglio di calcolo come file .CSV.", + "chooseFile": "Scegli file CSV", + "columnSeparator": "Separatore colonne", + "recordSeparator": "separatore registro", + "unitSeparator": "separatore unità", + "encoding": "Codifica", + "firstRowHeader": "La prima riga è l'intestazione", + "limitFileSize": "La dimensione massima del file è {limit}MB.", + "limitError": "Non è possibile importare più di {limit} righe.", + "emptyCSV": "Il file CSV è vuoto." + }, + "tableForm": { + "name": "Nome" + }, + "tableXMLImporter": { + "fileLabel": "Scegli file XML", + "fileDescription": "È possibile importare un XML esistente caricando il file .XML con i dati tabulari, cioè:", + "chooseButton": "Scegli file XML", + "processingError": "Errore verificatosi durante l'elaborazione dell'XML: {errors}", + "emptyError": "Questo file XML è vuoto.", + "limitFileSize": "La dimensione massima del file è {limit}MB.", + "limitError": "Non è possibile importare più di {limit} righe." + }, + "tableJSONImporter": { + "fileLabel": "Scegli file JSON", + "fileDescription": "È possibile importare un file JSON esistente caricando il file .json con dati tabulari, cioè:", + "chooseButton": "Scegli file JSON", + "encodingLabel": "Codifica", + "processingError": "Errore verificatosi durante l'analisi del JSON: {error}", + "arrayError": "Il file JSON non è una matrice.", + "emptyError": "Questo file JSON è vuoto.", + "limitFileSize": "La dimensione massima del file è {limit}MB.", + "limitError": "Non è possibile importare più di {limit} righe." + }, + "tablePasteImporter": { + "pasteLabel": "Incolla i dati della tabella", + "pasteDescription": "Puoi copiare le celle da un foglio di calcolo e incollarle qui sotto.", + "firstRowHeader": "La prima riga è l'intestazione", + "limitError": "Non è possibile importare più di {limit} righe." + }, + "importFileModal": { + "title": "Crea nuova tabella", + "importLabel": "Vuoi importare i dati esistenti?", + "newTable": "Inizia con una nuova tabella", + "addButton": "Aggiungi tabella", + "reportTitleFailure": "Righe con errori", + "uploading": "Caricando...", + "openCreatedTable": "Apri la tabella creata", + "preparing": "Preparando i dati...", + "importError": "Qualcosa è andato storto durante l'import dei dati", + "showReport": "Mostra report errori", + "statePreValidation": "Validando i dati...", + "reportMessage": "Le seguenti righe non possono essere importate:", + "stateRowCreation": "Importando...", + "reportTitleSuccess": "Import riuscito ma...", + "stateCreateTable": "Creando la tabella...", + "additionalImportTitle": "Importa in {table}", + "showTable": "mostra tabella", + "fieldMappingDescription": "Abbiamo provato a mappare automaticamente le tue colonne nei nostri formati. Puoi modificarli qui sotto. Ogni formato incompatibile rimarrà vuoto al termine dell'importazione.", + "fieldMappingTitle": "Rimappa i campi", + "importButton": "Importa", + "selectImportMessage": "Per favore scegli i dati da importare.", + "filePreview": "Anteprima contenuto file", + "importPreview": "Anteprima dei dati che verranno importati", + "changeImporterType": "Cambia tipo di importazione", + "defaultName": "Tabella" + }, + "formulaAdvancedEditContext": { + "textAreaFormulaInputPlaceholder": "Clicca per modificare la formula", + "fields": "Campi", + "functions": "Funzioni", + "operators": "Operatori", + "fieldType": "Un campo {type}" + }, + "fieldFormulaInitialSubForm": { + "formulaInputPlaceholder": "Clicca per modificare la formula", + "refreshFormulaOptions": "Aggiorna opzioni formula" + }, + "formulaFieldItemDescription": { + "syntax": "Sintassi", + "examples": "Esempi" + }, + "viewSearchContext": { + "searchInRows": "Cerca in tutte le righe", + "hideNotMatching": "nascondi righe non corrispondenti" + }, + "viewsContext": { + "searchView": "Viste di ricerca", + "noViews": "Nessuna vista trovata", + "collaborative": "Collaborativa" + }, + "viewFilterTypeLinkRow": { + "unnamed": "righe senza nome {value}", + "choose": "Scegli riga" + }, + "viewFilterContext": { + "addFilter": "Aggiungi filtro", + "disableAllFilters": "tutti disabilitati", + "noFilterTitle": "Non hai ancora creato un filtro", + "noFilterText": "I filtri ti permettono di mostrare le righe che corrispondono alle condizioni.", + "where": "Dove", + "and": "E", + "or": "O", + "relatedFieldNotFound": "Il campo relativo non è stato trovato.", + "filterTypeNotFound": "Il tipo di filtro è incompatibile.", + "noCompatibleFilterTypesErrorMessage": "Nessuno dei campi ha filtri compatibili", + "noCompatibleFilterTypesErrorTitle": "Nessun filtro compatibile", + "addFilterGroup": "Aggiungi gruppo di filtri" + }, + "viewFilterTypeFileTypeDropdown": { + "image": "immagine", + "document": "documento" + }, + "createViewModal": { + "createNew": "Crea nuova {view}", + "add": "Aggiungi {view}" + }, + "shareViewLink": { + "shareView": "Condividi {viewTypeSharingLinkName}", + "shareViewTitle": "Non hai ancora condiviso questa vista", + "sharedViewTitle": "Questo {viewTypeSharingLinkName} è attualmente condiviso tramite un link privato", + "sharedViewDescription": "Le persone che hanno il link possono vedere il {viewTypeSharingLinkName}.", + "disableLink": "Disabilita link condiviso", + "generateNewUrl": "genera nuovo url", + "copyURL": "copia URL", + "EnablePassword": "Limita l'accesso con una password", + "DisablePassword": "L'accesso è protetto da password", + "ChangePassword": "Modifica", + "shareViewText": "Un link pubblico permette a chiunque di vedere i dati in questa vista.", + "createPrivateLink": "Crea un link pubblico", + "notSharedYetText": "Permetti a chiunque di vedere i dati in questa vista o sincornizza gli eventi con una applicazione esterna" + }, + "viewSortContext": { + "noSortTitle": "Non hai ancora creato un ordinamento", + "noSortText": "Gli ordinamenti permettono di ordinare le righe per un campo.", + "sortBy": "Ordina per", + "thenBy": "Poi per", + "addSort": "scegli un campo per il quale ordinare" + }, + "viewSort": { + "sort": "Ordinamento | 1 Ordinamento | {count} Ordinamenti" + }, + "viewRotateSlugModal": { + "title": "Aggiorna URL", + "refreshWarning": "Sei sicuro di voler aggiornare l'URL di {viewName}? Dopo averlo fatto, verrà generato un nuovo URL e non sarà possibile accedere a {viewTypeSharingLinkName} tramite il vecchio URL. Tutti quelli con cui hai condiviso l'URL non saranno in grado di accedere a {viewTypeSharingLinkName}.", + "generateNewURL": "Genera nuovo URL" + }, + "viewFieldsContext": { + "coverField": "Campo di copertina", + "noCover": "Nessuna copertina", + "search": "Campi di ricerca", + "hideAll": "Nascondi tutti", + "showAll": "Mostra tutti" + }, + "viewFilterTypeBoolean": { + "selected": "Selezionato" + }, + "viewFilter": { + "filter": "Filtro | 1 Filtro | {count} Filtri" + }, + "viewContext": { + "exportView": "Esporta vista", + "renameView": "Rinomina vista", + "webhooks": "Webhook", + "deleteView": "Elimina vista", + "duplicateView": "Duplica vista", + "importFile": "Importa file", + "toCollaborative": "A collaborativa", + "toPersonal": "A personale" + }, + "deleteViewModal": { + "title": "Elimina {name}", + "description": "Sei sicuro di voler eliminare la vista {name}? I dati della tabella saranno conservati, ma i filtri, gli ordinamenti e le larghezze dei campi relativi alla vista saranno eliminati.", + "delete": "Elimina vista" + }, + "viewForm": { + "name": "Nome", + "whoCanEdit": "Chi può modificare" + }, + "galleryViewHeader": { + "customizeCards": "Personalizza schede" + }, + "gridViewHide": { + "hideField": "Nascondi campi | 1 campo nascosto | {count} campi nascosti" + }, + "gridViewFieldType": { + "insertLeft": "Inserisci a sinistra", + "insertRight": "Inserisci a destra", + "createFilter": "Crea filtro", + "sortField": "Ordina", + "hideField": "Nascondi campo", + "duplicate": "Duplica campo" + }, + "gridViewRow": { + "rowNotMatchingFilters": "La riga non corrisponde ai filtri", + "rowNotMatchingSearch": "La riga non corrisponde alla ricerca", + "rowHasMoved": "Riga spostata" + }, + "gridView": { + "insertRowAbove": "Inserisci riga sopra", + "insertRowBelow": "Inserisci riga sotto", + "enlargeRow": "Allarga riga", + "deleteRow": "Elimina riga", + "rowCount": "Nessuna riga | 1 riga | {conteggio} righe", + "duplicateRow": "Duplica riga", + "selectRow": "Seleziona riga", + "deleteRows": "Elimina righe", + "copyCells": "Copia celle", + "hiddenRowsInsertedMessage": "{number} nuove righe sono state aggiunte, ma non sono visibili a causa dei filtri attivi.", + "hiddenRowsInsertedTitle": "Righe aggiunte", + "copiedRowURLMessage": "La riga {id} è stata copiata nella tua clipboard.", + "copiedRowURL": "URL di riga copiato", + "copyRowURL": "Copia URL di riga", + "generateCellsValues": "Genera valori con IA", + "AIValuesGenerationErrorTitle": "Generazione del valore IA fallita", + "AIValuesGenerationErrorMessage": "Per favore controlla la tua chiave API e verifica il modello selezionato.", + "tooManyItemsDescription": "Non è possible aggiornare più di {limit} righe alla volta, per cui abbiamo aggiornato solo le prime.", + "tooManyItemsTitle": "Troppi oggetti" + }, + "gridViewFieldLinkRow": { + "unnamed": "riga senza nome {value}" + }, + "gridViewIdentifierOptions": { + "id": "Id riga", + "count": "Conteggio" + }, + "previewAny": { + "externalWarning": "L'apertura del file tramite un servizio esterno espone il file ai server di tale servizio." + }, + "exportTableModal": { + "failedTitle": "Esportazione non riuscita", + "failedDescription": "L'esportazione non è riuscita a causa di un errore del server.", + "cancelledTitle": "Esportazione annullata", + "cancelledDescription": "L'esportazione è stata annullata." + }, + "exporterTypeChoices": { + "formatLabel": "In quale formato vuoi esportare?" + }, + "exportTableForm": { + "viewLabel": "Seleziona la vista da esportare:", + "typeError": "Nessun tipo di esportatore disponibile, seleziona un'altra vista o un'intera tabella." + }, + "exportTableLoadingBar": { + "export": "Esporta", + "download": "Scarica" + }, + "exportTableDropdown": { + "exportEntireTable": "Esporta intera tabella" + }, + "tableCSVExporter": { + "columnSeparatorLabel": "Separatore colonne", + "recordSeparator": "separatore registro", + "unitSeparator": "separatore unità", + "encodingLabel": "Codifica", + "firstRowIsHeaderLabel": "La prima riga è l'intestazione" + }, + "apiDocsDatabase": { + "pageTitle": "Documentazione API del database {name}", + "back": "Torna alla dashboard", + "openDatabase": "apri database" + }, + "apiDocsComponent": { + "title": "API REST", + "intro": "Dopo aver creato lo schema di database e la chiave API nel {settingsLink}, il database Baserow fornisce i propri endpoint API REST per creare, leggere, aggiornare ed eliminare le righe.", + "settings": "impostazioni", + "selectApplicationTitle": "Per quale database vuoi vedere la documentazione?", + "signIn": "Registrati per iniziare", + "back": "Torna alla dashboard" + }, + "viewAggregationType": { + "emptyCount": "Vuoto", + "notEmptyCount": "Non vuoto", + "emptyPercentage": "Percentuale vuota", + "notEmptyPercentage": "Percentuale non vuoti", + "checkedCount": "Selezionato", + "notCheckedCount": "Non selezionato", + "checkedPercentage": "Percentuale selezionata", + "notCheckedPercentage": "Percentuale non selezionata", + "min": "Minimo", + "max": "Massimo", + "earliestDate": "Prima data", + "earliestDateShort": "Prima", + "latestDate": "Ultima data", + "latestDateShort": "Ultima", + "uniqueCount": "Unico", + "sum": "Somma", + "average": "Media", + "median": "Mediano", + "stdDev": "Deviazione standard", + "stdDevShort": "Dev std", + "variance": "Variazione", + "count": "Conteggio" + }, + "databaseForm": { + "importLabel": "Vuoi importare i dati esistenti?", + "emptyLabel": "Inizia da zero", + "airtableLabel": "Importa da Airtable (beta)" + }, + "importFromAirtable": { + "airtableShareLinkTitle": "Condividi link al tuo Base", + "airtableShareLinkDescription": "Per importare il tuo base Airtable, devi avere un link condiviso a tutto il base. In Airtable, clicca sul pulsante di condivisione in alto a destra dopo aver aperto il base. Dopodiché, devi scegliere l'opzione \"Accesso al base\". Nel modale di condivisione puoi cliccare su \"Crea un link condiviso a tutto il base\" e poi su \"Link privato di sola lettura\". Copia il link pubblico e incollalo nell'input sottostante.", + "airtableShareLinkBeta": "Nota che questa funzione è in beta: le tabelle, i campi (eccetto formula, ricerca e conteggio) e i dati saranno importati, le viste non saranno importate.", + "airtableShareLinkPaste": "Incolla il link qui", + "importButtonLabel": "Importa da Airtable", + "openButtonLabel": "Apri database importato", + "importError": "Si è verificato un errore", + "statePending": "In attesa di iniziare", + "stateFailed": "Non riuscito", + "stateFinished": "Concluso", + "stateDownloadingBase": "Download schema base in corso", + "stateConverting": "Conversione a Baserow in corso", + "stateDownloadingFiles": "Download file in corso", + "stateImporting": "Importazione in corso", + "stateImportingTable": "Importazione tabella {table} in corso", + "errorJobAlreadyRunningTitle": "Già in esecuzione", + "errorJobAlreadyRunningDescription": "Un altro lavoro di importazione è già in esecuzione. Devi aspettare che finisca prima di iniziarne un altro.", + "linkError": "Il link dovrebbe essere nel formato: https://airtable.com/shrxxxxxxxxxxxxxx" + }, + "viewDecorator": { + "decorator": "Colore | 1 Colore | {count} Colori" + }, + "chooseSingleSelectField": { + "addSelectField": "Aggiungi selezione singola", + "warningWhenNothingToChooseOrCreate": "Non ci sono campi a selezione singola da scegliere e tu non hai i permessi per crearne uno." + }, + "viewDecoratorContext": { + "addDecorator": "Aggiungi colorazione" + }, + "shareViewEnablePasswordModal": { + "newPasswordTitle": "Inserisci una password", + "newPasswordSave": "Imposta una password", + "changePasswordTitle": "Modifica password", + "newPasswordDescription": "Il link pubblico sarà accessibile solo inserendo la password corretta. Questa password verrà salvata cifrata.", + "changePasswordDescription": "Modificando la password, la precedente smetterà di funzionare. La password verrà salvata cifrata.", + "changePasswordSave": "Modifica password" + }, + "shareViewDisablePasswordModal": { + "title": "Rimuovi la protezione con password", + "disable": "Disabilita", + "description": "Sei sicuro di voler eliminare la protezione tramite password per questo link pubblico? Se confermi, la password verrà eliminata e non sarà possibile ripristinarla" + }, + "publicViewAuthLogin": { + "title": "Questa pagina è protetta da password", + "description": "Inserisci la password corretta per accedere alla pagina.", + "enter": "Accedi", "error": { - "message": "C'è stato un errore nella richiesta", - "title": "Errore imprevisto" - }, - "notFound": { - "previous": { - "title": "Nessun altra riga", - "message": "Non c'e una riga precedente" - }, - "next": { - "title": "Nessun altra riga", - "message": "Non c'è una riga successiva" - } + "incorrectPasswordTitle": "Password sbagliata", + "incorrectPasswordText": "La password inserita non è corretta." } - } + }, + "apiDocsTableDeleteRows": { + "description": "Elimina righe esistenti {name}.", + "items": "Una lista di ID di right che verranno eliminate." + }, + "importer": { + "loading": "Caricamento file", + "decoding": "Decodificando i dati", + "parsing": "Analizzando i dati", + "preparing": "Preparando i dati", + "inProgress": "In corso...", + "fieldDefaultName": "Campi {count}" + }, + "apiDocsTableCreateRows": { + "description": "Crea nuove {name} righe.", + "before": "Se fornito, le nuove righe verranno inserite prima di questo id di riga." + }, + "apiDocsTableUpdateRows": { + "description": "Aggiorna righe esistenti {name}.", + "id": "L'Id di riga." + }, + "databaseDashboardSidebarLinks": { + "apiDocumentation": "Documentazione API" + }, + "duplicateFieldContext": { + "cloneData": "Copia i dati", + "soon": "Presto disponibile", + "duplicate": "Duplica campo", + "readOnlyField": "I valori delle celle verranno riempiti automaticamente." + }, + "formViewField": { + "required": "richiesto", + "showWhenMatchingConditions": "mostra quando le condizioni sono soddisfatte", + "addCondition": "Aggiungi condizione", + "descriptionPlaceholder": "Descrizione", + "addConditionGroup": "Aggiungi gruppo di condizioni", + "showFieldAs": "Mostra campo come" + }, + "formViewMeta": { + "includeRowId": "Usa {row_id} per includere l'id di riga nel tuo URL." + }, + "snapshotsModal": { + "title": "snapshot", + "description": "Gli snapshot sono copie esatte del/della tuo/tua {applicationTypeName} prese al momento in cui sono vengono create. Al momento del ripristino, verrà creato un clone dei dati originali. Gli snapshot vengono cancellati automaticamente dopo un anno.", + "createLabel": "Crea uno snapshot", + "snapshotRestoredErrorTitle": "Errore", + "snapshotRestoredErrorMessage": "Lo snapshot non può essere ripristinato. Riprova più tardi.", + "snapshotDeletedErrorTitle": "Errore", + "snapshotDeletedErrorMessage": "Lo snapshot non può essere eliminato. Riprova più tardi.", + "limitReached": "Il limite massimo di snapshot è stato raggiunto.", + "snapshot": "Snapshot", + "importingState": "Creando", + "reset": "Creane un'altro", + "descriptionLimits": "Puoi avere un massimo di {n} snapshot per progetto. | Puoi avere un massimo di {n} snapshot per progetto. | Puoi avere un massimo di {n} snapshot per progetto.", + "create": "Crea uno snapshot", + "cancel": "Cancella", + "noSnapshots": "Nessuno snapshot per questa applicazione." + }, + "deleteSnapshotModal": { + "title": "Elimina snapshot", + "content": "Sei sicuro di voler eliminare definitivamente lo snapshot {name}?", + "confirm": "Elimina" + }, + "snapshotListItem": { + "restore": "ripristina", + "delete": "elimina", + "created": "creato" + }, + "fieldmultipleCollaboratorsDropdown": { + "notFound": "Collaboratore non trovato" + }, + "formViewHeader": { + "mode": "Modalità", + "preview": "Anteprima", + "fields": "Campi" + }, + "formViewModePreviewForm": { + "addCoverImage": "Aggiungi un'immagine di copertina", + "addLogo": "Aggiungi un logo", + "noFields": "Questo form non contiene campi. Clicca su un campo nella barra laterale di sinistra per aggiungerne uno.", + "titlePlaceholder": "Titolo", + "descriptionPlaceholder": "Descrizione" + }, + "rowEditFieldMultipleCollaborators": { + "addCollaborator": "Scegli un collaboratore" + }, + "formViewModeType": { + "formDescription": "Tutti i campi sono visibili verticalmente uno dopo l'altro.", + "form": "Form" + }, + "table": { + "chooseView": "Scegli vista", + "adjacentRow": { + "notification": { + "error": { + "title": "Errore imprevisto", + "message": "Si è verificato un errore imprevisto nel tentativo di caricare la riga adiacente" + }, + "notFound": { + "next": { + "title": "Nessuna riga", + "message": "Non sono presenti altre righe" + }, + "previous": { + "title": "Nessuna riga successiva", + "message": "Non è presente nessuna riga precedente" + } + } + }, + "toast": { + "error": { + "message": "C'è stato un errore nella richiesta", + "title": "Errore imprevisto" + }, + "notFound": { + "previous": { + "title": "Nessun altra riga", + "message": "Non c'e una riga precedente" + }, + "next": { + "title": "Nessun altra riga", + "message": "Non c'è una riga successiva" + } + } + } + } + }, + "gridViewFieldFile": { + "dropHere": "Trascina qui", + "dropFileHere": "Tracina file qui" + }, + "duplicateTableJobType": { + "duplicatedTitle": "Tabella duplicata", + "duplicating": "Duplicando", + "name": "Duplica tabella" + }, + "apiDocsUploadFile": { + "description": "Carica un file su Baserow. Deve essere carico come `file multipart`. La risposta può essere per [caricare un file in una riga] ({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", + "file": "Il `file` multipart contenente il contenuto del file." + }, + "apiDocsUploadFileViaURL": { + "description": "Carica un file su Baserow fornendo un URL da cui scaricarlo. La risposta può essere usata per [caricare un file in una riga]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", + "url": "L'URL ad cui Baserow scaricherà il file per salvarlo tra i tuoi file." + }, + "fileField": { + "errorEmptyFileNameMessage": "Non puoi impostare un nome vuoto.", + "errorEmptyFileNameTitle": "Nome file invalido" + }, + "viewOwnershipType": { + "collaborative": "Collaborativa", + "personal": "Personale" + }, + "gridViewRowsAddContext": { + "title": "Crea più righe", + "choice": "Aggiungi {rowAmountChoice} righe" + }, + "fieldSelectThroughFieldSubForm": { + "selectThroughFieldLabel": "Seleziona il campo \"Collega a tabella\"", + "noTable": "Devi avere almeno un campo di tipo \"Collega a tabella\" per creare questo campo." + }, + "fieldRollupSubForm": { + "selectTargetFieldLabel": "Scegli un campo di rollup", + "label": "Funzione di rollup" + }, + "apiDocsFiltersBuilderModal": { + "userFieldNames": "Usa il nome dei campi", + "json": "JSON", + "title": "Prepara i tuoi filtri", + "queryParameter": "Parametro query" + }, + "viewGroupBy": { + "groupBy": "Gruppo | Raggruppato su 1 campo | Raggruppato su {count} campi" + }, + "rowHistorySidebar": { + "you": "Tu", + "name": "Registro modifiche", + "empty": "Nessuna modifica finora. Qui troverai le modifiche fatte a questa riga." + }, + "viewGroupByContext": { + "groupBy": "Raggruppa", + "thenBy": "Poi per", + "addGroupBy": "Scegli un campo con cui raggruppare", + "noGroupByTitle": "Non hai ancora creato nessun groupp", + "noGroupByText": "Raggruppa righe per campo." + }, + "collaboratorAddedToRowNotification": { + "title": "{sender} ti ha assegnato a {fieldName} nella riga {rowId} della tabella {tableName}", + "deletedUser": "Un utente rimosso" + }, + "fieldCollaboratorSubForm": { + "notifyUserWhenAdded": "Notifica gli utenti quando vengono aggiunti" + }, + "viewFieldConditionsForm": { + "addCondition": "Aggiungi condizione", + "addConditionGroup": "Aggiungi gruppo" + }, + "fieldPasswordSubForm": { + "description": "Non è ancora possibile fare nulla direttamente con il campo password, questo viene utilizzato solo dall'autenticazione dell'utente nell'application builder." + }, + "rowHistoryFieldPassword": { + "passwordSet": "La password è stata impostata", + "passwordUpdated": "La password è stata aggiornata", + "passwordDeleted": "La password è stata eliminata" + }, + "userMentionInRichTextFieldNotification": { + "deletedUser": "Un utente rimosso", + "title": "{sender} ti ha menzionato nel campo {fieldName} della riga {rowId} in {tableName}" + }, + "rowEditFieldPassword": { + "setPassword": "Imposta password" + }, + "dataProviderTypes": { + "fieldsName": "Campi" + }, + "fieldDurationSubForm": { + "durationFormatLabel": "Formato della durata" + }, + "formSubmittedNotification": { + "moreValues": "0 | e 1 ulteriore campo. | e {count} ulteriori campi.", + "title": "{formName} è stato inviato nella tabella {tableName}:" + }, + "fieldLongTextSubForm": { + "enableRichTextFormatting": "Abilita la formattazione RTF" + }, + "databaseScratchTrackStep": { + "rowName": "Nome riga", + "campaignsRow3": "Rilancio del brand", + "description": "Scegli da uno dei nostri esempi, o creane uno tu.", + "thisIncludes": "Includi:", + "projects": "Progetti", + "productsRow2": "Ricerca clienti", + "productsRow3": "Campagna ad a pagamento", + "teams": "Squadre", + "teamsRow1": "Vendite", + "teamsRow2": "HR", + "tasksRow1": "Redesign del logo aziendale", + "campaignsRow1": "Vendita estiva", + "campaignsRow2": "Premi fedeltà", + "addYourOwn": "Aggiungi il tuo", + "tableName": "Nome tabella", + "title": "Cosa ti piacerebbe creare?", + "productsRow1": "Cambio nome sito", + "teamsRow3": "Marketing", + "tasks": "Compiti", + "tasksRow2": "Invia email", + "tasksRow3": "Scrivi un post per il blog", + "campaigns": "Campagne" + }, + "databaseImportStep": { + "description": "Carica i tuoi dati in Baserow in pochi click.", + "title": "Importa i tuoi dati", + "tableNameLabel": "Nome tabella" + }, + "databaseStep": { + "title": "Crea il tuo primo database", + "description": "Raccontaci su cosa stai lavorando.", + "databaseNameLabel": "Nome database", + "scratch": "Dall'inizio", + "airtable": "Da Airtable", + "import": "Da file" + }, + "ViewFilterTypeDateUpgradeToMultiStep": { + "migrateButtonText": "Usa i nuovi filtri per le date", + "migrateButtonTooltip": "Abbiamo introdotto nuovi filtri per le date. Clicca per aggiornare. Il risultato è lo stesso, le potenzialità sono molte di più." + }, + "createTableModal": { + "defaultName": "Tabella", + "newTable": "Inizia con una nuova tabella", + "title": "Crea una nuova tabella", + "importLabel": "Vuoi importare dati esistenti?" + }, + "createTable": { + "showTable": "mostra tabella", + "importError": "Qualcosa é andato storto durante l'import", + "stateRowCreation": "Importando...", + "statePreValidation": "Validando i dati...", + "addButton": "Aggiungi tabella", + "uploading": "Caricamento...", + "preparing": "Preparando i dati...", + "stateCreateTable": "Creando la tabella..." + }, + "importErrorReport": { + "reportTitleFailure": "Righe con errori", + "reportTitleSuccess": "Import riuscito con successo ma...", + "reportMessage": "Le seguenti righe non sono state importate a causa di errori:" + }, + "createViewLink": { + "inCompatibleWithDataSync": "Questa vista non è compatibile con una tabella sincronizzata." + }, + "databaseScratchTrackFieldsStep": { + "fieldDate": "Data", + "fieldBoolean": "Finito", + "fieldRating": "Rating", + "fieldKickoffDate": "Data di inizio", + "fieldBudget": "Budget", + "fieldNotes": "Note", + "fieldRole": "Ruolo", + "fieldEstimatedDays": "Giorni stimati", + "fieldStartDate": "Data di inizio", + "fieldEndDate": "Data di fine", + "projectsCategoryDesign": "Design", + "projectsCategoryDevelopment": "Sviluppo", + "projectsCategoryMarketing": "Marketing", + "teamsRoleDesigner": "Designer", + "teamsRoleDeveloper": "Sviluppatore", + "teamsRoleMarketer": "Marketer", + "customFieldsDescriptionRow1": "Turpis massa tincidunt dui ut ornare lectus sit amet est.", + "customFieldsDescriptionRow2": "Vitae justo eget magna fermentum iaculis eu non diam.", + "customFieldsDescriptionRow3": "Convallis tellus id interdum velit laoreet id donec ultrices tincidunt.", + "fieldDuration": "Durata", + "fieldPhone": "Telefono", + "fieldActive": "Attivo", + "fieldUrl": "URL", + "fieldEmail": "Email", + "fieldDueDate": "Data di fine", + "fieldCompleted": "Completato", + "fieldDetails": "Dettagli", + "fieldNumber": "Numero", + "title": "Scegli i campi per ogni riga", + "fieldName": "Nome", + "fieldType": "Tipo di campo", + "fieldDescription": "Descrizione", + "fieldCategory": "categoria" + }, + "dataSyncType": { + "icalCalendar": "Sincronizza iCal" + }, + "iCalCalendarDataSync": { + "name": "URL iCal", + "description": "La sincronizzazione iCal importerà automaticamente tutti gli eventi dal tuo calendario in Baserow. Supporta solo il formato ICS (Internet Calendar and Scheduling)." + }, + "createDataSync": { + "next": "Avanti", + "create": "Crea e sincronizza la tabella", + "error": "Qualcosa è andato storto durante l'importazione", + "fields": "Seleziona i campi che vuoi importare" + }, + "syncTableModal": { + "title": "Sincronizza {name}", + "sync": "Sincronizza tabella", + "hide": "Nascondi", + "description": "Questa tabella viene sincronizzata automaticamente quando clicchi sul pulsante apposito. Durante il processo, le chiamate API per questa tabella potrebbero subire rallentamenti." + }, + "gridViewRowHeight": { + "name": "Altezza", + "large": "Grande", + "small": "Piccolo", + "medium": "Medio" + }, + "changePrimaryFieldModal": { + "change": "Cambia", + "primaryFieldLabel": "Campo primario", + "title": "Cambia il campo primario", + "existingPrimary": "\"{name}\" è ora usato come campo primario." + }, + "apiDocsPasswordFieldAuthentication": { + "title": "Autenticazione {name}", + "description": "Verifica se la password fornita e la riga corrispondono a quanto memorizzato nella cella.", + "fieldId": "L'ID del campo in cui verificare la password.", + "rowId": "L'ID della riga in cui verificare la password.", + "password": "La password che deve essere verificata se corretto." + }, + "apiDocsListTables": { + "listTables": "Elenca tutte le tabelle", + "listTablesDescription": "Questo endpoint funziona solo in combinazione al token di autenticazione. Elenca tutte le tabelle alle quali il token ha creato, letto, aggiornato o eliminato l'accesso." + }, + "fieldMultipleSelectSubForm": { + "optionsLabel": "Opzioni", + "defaultOptionsLabel": "Opzioni predefinite" + }, + "fieldBooleanSubForm": { + "defaultValue": "Predefinito" } - }, - "gridViewFieldFile": { - "dropHere": "Trascina qui", - "dropFileHere": "Tracina file qui" - }, - "duplicateTableJobType": { - "duplicatedTitle": "Tabella duplicata", - "duplicating": "Duplicando" - }, - "apiDocsUploadFile": { - "description": "Carica un file su Baserow. Deve essere carico come `file multipart`. La risposta può essere per [caricare un file in una riga] ({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", - "file": "Il `file` multipart contenente il contenuto del file." - }, - "apiDocsUploadFileViaURL": { - "description": "Carica un file su Baserow fornendo un URL da cui scaricarlo. La risposta può essere usata per [caricare un file in una riga]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", - "url": "L'URL ad cui Baserow scaricherà il file per salvarlo tra i tuoi file." - }, - "fileField": { - "errorEmptyFileNameMessage": "Non puoi impostare un nome vuoto.", - "errorEmptyFileNameTitle": "Nome file invalido" - }, - "viewOwnershipType": { - "collaborative": "Collaborativa", - "personal": "Personale" - }, - "gridViewRowsAddContext": { - "title": "Crea più righe", - "choice": "Aggiungi {rowAmountChoice} righe" - }, - "fieldSelectThroughFieldSubForm": { - "selectThroughFieldLabel": "Seleziona il campo \"Collega a tabella\"", - "noTable": "Devi avere almeno un campo di tipo \"Collega a tabella\" per creare questo campo." - }, - "fieldRollupSubForm": { - "selectTargetFieldLabel": "Scegli un campo di rollup", - "label": "Funzione di rollup" - }, - "apiDocsFiltersBuilderModal": { - "userFieldNames": "Usa il nome dei campi", - "json": "JSON", - "title": "Prepara i tuoi filtri", - "queryParameter": "Parametro query" - }, - "viewGroupBy": { - "groupBy": "Gruppo | Raggruppato su 1 campo | Raggruppato su {count} campi" - }, - "rowHistorySidebar": { - "you": "Tu", - "name": "Registro modifiche", - "empty": "Nessuna modifica finora. Qui troverai le modifiche fatte a questa riga." - }, - "viewGroupByContext": { - "groupBy": "Raggruppa", - "thenBy": "Poi per", - "addGroupBy": "Scegli un campo con cui raggruppare", - "noGroupByTitle": "Non hai ancora creato nessun groupp", - "noGroupByText": "Raggruppa righe per campo." - }, - "collaboratorAddedToRowNotification": { - "title": "{sender} ti ha assegnato a {fieldName} nella riga {rowId} della tabella {tableName}", - "deletedUser": "Un utente rimosso" - }, - "fieldCollaboratorSubForm": { - "notifyUserWhenAdded": "Notifica gli utenti quando vengono aggiunti" - }, - "viewFieldConditionsForm": { - "addCondition": "Aggiungi condizione", - "addConditionGroup": "Aggiungi gruppo" - }, - "fieldPasswordSubForm": { - "description": "Non è ancora possibile fare nulla direttamente con il campo password, questo viene utilizzato solo dall'autenticazione dell'utente nell'application builder." - }, - "rowHistoryFieldPassword": { - "passwordSet": "La password è stata impostata", - "passwordUpdated": "La password è stata aggiornata", - "passwordDeleted": "La password è stata eliminata" - }, - "userMentionInRichTextFieldNotification": { - "deletedUser": "Un utente rimosso", - "title": "{sender} ti ha menzionato nel campo {fieldName} della riga {rowId} in {tableName}" - }, - "rowEditFieldPassword": { - "setPassword": "Imposta password" - }, - "dataProviderTypes": { - "fieldsName": "Campi" - }, - "fieldDurationSubForm": { - "durationFormatLabel": "Formato della durata" - }, - "formSubmittedNotification": { - "moreValues": "0 | e 1 ulteriore campo. | e {count} ulteriori campi.", - "title": "{formName} è stato inviato nella tabella {tableName}:" - }, - "fieldLongTextSubForm": { - "enableRichTextFormatting": "Abilita la formattazione RTF" - }, - "databaseScratchTrackStep": { - "rowName": "Nome riga", - "campaignsRow3": "Rilancio del brand", - "description": "Scegli da uno dei nostri esempi, o creane uno tu.", - "thisIncludes": "Includi:", - "projects": "Progetti", - "productsRow2": "Ricerca clienti", - "productsRow3": "Campagna ad a pagamento", - "teams": "Squadre", - "teamsRow1": "Vendite", - "teamsRow2": "HR", - "tasksRow1": "Redesign del logo aziendale", - "campaignsRow1": "Vendita estiva", - "campaignsRow2": "Premi fedeltà", - "addYourOwn": "Aggiungi il tuo", - "tableName": "Nome tabella", - "title": "Cosa ti piacerebbe creare?", - "productsRow1": "Cambio nome sito", - "teamsRow3": "Marketing", - "tasks": "Compiti", - "tasksRow2": "Invia email", - "tasksRow3": "Scrivi un post per il blog", - "campaigns": "Campagne" - }, - "databaseImportStep": { - "description": "Carica i tuoi dati in Baserow in pochi click.", - "title": "Importa i tuoi dati", - "tableNameLabel": "Nome tabella" - }, - "databaseStep": { - "title": "Crea il tuo primo database", - "description": "Raccontaci su cosa stai lavorando.", - "databaseNameLabel": "Nome database", - "scratch": "Dall'inizio", - "airtable": "Da Airtable", - "import": "Da file" - }, - "ViewFilterTypeDateUpgradeToMultiStep": { - "migrateButtonText": "Usa i nuovi filtri per le date", - "migrateButtonTooltip": "Abbiamo introdotto nuovi filtri per le date. Clicca per aggiornare. Il risultato è lo stesso, le potenzialità sono molte di più." - }, - "createTableModal": { - "defaultName": "Tabella", - "newTable": "Inizia con una nuova tabella", - "title": "Crea una nuova tabella", - "importLabel": "Vuoi importare dati esistenti?" - }, - "createTable": { - "showTable": "mostra tabella", - "importError": "Qualcosa é andato storto durante l'import", - "stateRowCreation": "Importando...", - "statePreValidation": "Validando i dati...", - "addButton": "Aggiungi tabella", - "uploading": "Caricamento...", - "preparing": "Preparando i dati...", - "stateCreateTable": "Creando la tabella..." - }, - "importErrorReport": { - "reportTitleFailure": "Righe con errori", - "reportTitleSuccess": "Import riuscito con successo ma...", - "reportMessage": "Le seguenti righe non sono state importate a causa di errori:" - }, - "createViewLink": { - "inCompatibleWithDataSync": "Questa vista non è compatibile con una tabella sincronizzata." - }, - "databaseScratchTrackFieldsStep": { - "fieldDate": "Data", - "fieldBoolean": "Finito", - "fieldRating": "Rating", - "fieldKickoffDate": "Data di inizio", - "fieldBudget": "Budget", - "fieldNotes": "Note", - "fieldRole": "Ruolo", - "fieldEstimatedDays": "Giorni stimati", - "fieldStartDate": "Data di inizio", - "fieldEndDate": "Data di fine", - "projectsCategoryDesign": "Design", - "projectsCategoryDevelopment": "Sviluppo", - "projectsCategoryMarketing": "Marketing", - "teamsRoleDesigner": "Designer", - "teamsRoleDeveloper": "Sviluppatore", - "teamsRoleMarketer": "Marketer", - "customFieldsDescriptionRow1": "Turpis massa tincidunt dui ut ornare lectus sit amet est.", - "customFieldsDescriptionRow2": "Vitae justo eget magna fermentum iaculis eu non diam.", - "customFieldsDescriptionRow3": "Convallis tellus id interdum velit laoreet id donec ultrices tincidunt.", - "fieldDuration": "Durata", - "fieldPhone": "Telefono", - "fieldActive": "Attivo", - "fieldUrl": "URL", - "fieldEmail": "Email", - "fieldDueDate": "Data di fine", - "fieldCompleted": "Completato", - "fieldDetails": "Dettagli", - "fieldNumber": "Numero", - "title": "Scegli i campi per ogni riga", - "fieldName": "Nome", - "fieldType": "Tipo di campo", - "fieldDescription": "Descrizione", - "fieldCategory": "categoria" - }, - "dataSyncType": { - "icalCalendar": "Sincronizza iCal" - }, - "iCalCalendarDataSync": { - "name": "URL iCal", - "description": "La sincronizzazione iCal importerà automaticamente tutti gli eventi dal tuo calendario in Baserow. Supporta solo il formato ICS (Internet Calendar and Scheduling)." - }, - "createDataSync": { - "next": "Avanti", - "create": "Crea e sincronizza la tabella", - "error": "Qualcosa è andato storto durante l'importazione", - "fields": "Seleziona i campi che vuoi importare" - }, - "syncTableModal": { - "title": "Sincronizza {name}", - "sync": "Sincronizza tabella", - "hide": "Nascondi", - "description": "Questa tabella viene sincronizzata automaticamente quando clicchi sul pulsante apposito. Durante il processo, le chiamate API per questa tabella potrebbero subire rallentamenti." - }, - "gridViewRowHeight": { - "name": "Altezza", - "large": "Grande", - "small": "Piccolo", - "medium": "Medio" - }, - "changePrimaryFieldModal": { - "change": "Cambia", - "primaryFieldLabel": "Campo primario", - "title": "Cambia il campo primario", - "existingPrimary": "\"{name}\" è ora usato come campo primario." - } } diff --git a/web-frontend/modules/database/locales/ko.json b/web-frontend/modules/database/locales/ko.json index 11fabdf57c..ba988edff7 100644 --- a/web-frontend/modules/database/locales/ko.json +++ b/web-frontend/modules/database/locales/ko.json @@ -152,9 +152,10 @@ "filterType": "- `AND`: 제공된 모든 필터와 일치해야 함을 나타냅니다.\n- `OR`: 필터 중 하나와만 일치하면 됨을 나타냅니다.\n\n 이는 두 개 이상의 필터가 제공된 경우에만 작동합니다.", "include": "기본적으로 모든 필드가 응답에 포함됩니다. include 쿼리 매개변수를 제공하여 포함할 필드의 하위 집합을 선택할 수 있습니다.\n\n #### `user_field_names` 사용 시:\n\n `include`는 결과에 포함할 필드 이름의 쉼표로 구분된 목록이어야 합니다. 예를 들어 다음 GET 매개변수를 제공하는 경우: `include=My Field,-My Field 2` 해당 필드만 포함됩니다(명시적으로 제외되지 않은 경우).\n\n 쉼표를 포함하는 필드 이름은 따옴표로 묶어야 합니다: `\"Name ,\"`. 필드 이름에 따옴표가 포함된 경우 `\\` 문자를 사용하여 이스케이프해야 합니다. 예: `Name \\\"`.\n\n #### `user_field_names` 없이:\n\n `include`는 결과에 포함할 필드의 ID 뒤에 `field_`가 오는 쉼표로 구분된 목록이어야 합니다. 예를 들어 다음 GET 매개변수를 제공하는 경우 `include=field_1,field_2` ID가 `1` 및 `2`인 필드만 포함됩니다(명시적으로 제외되지 않은 경우).", "exclude": "기본적으로 모든 필드가 응답에 포함됩니다. exclude 쿼리 매개변수를 제공하여 제외할 필드의 하위 집합을 선택할 수 있습니다.\n\n #### `user_field_names` 사용 시:\n\n `exclude`는 결과에서 제외할 필드 이름의 쉼표로 구분된 목록이어야 합니다. 예를 들어 다음 GET 매개변수를 제공하는 경우: `exclude=My Field,-My Field 2` 해당 필드가 제외됩니다.\n\n 쉼표를 포함하는 필드 이름은 따옴표로 묶어야 합니다: `\"Name ,\"`. 필드 이름에 따옴표가 포함된 경우 `\\` 문자를 사용하여 이스케이프해야 합니다. 예: `Name \\\"`.\n\n #### `user_field_names` 없이:\n\n `exclude`는 결과에서 제외할 필드의 ID 뒤에 `field_`가 오는 쉼표로 구분된 목록이어야 합니다. 예를 들어 다음 GET 매개변수를 제공하는 경우 `exclude=field_1,field_2` ID가 `1` 및 `2`인 필드가 제외됩니다.", - "viewId": "기본적으로 쿼리 매개변수에 정의된 것 외의 필터와 정렬은 적용되지 않습니다. `view_id` GET 매개변수에 해당 뷰의 `id`를 제공하여 뷰의 필터와 정렬을 추가할 수 있습니다. 예를 들어 다음 GET 매개변수를 제공하는 경우 `view_id=1` ID가 `1`인 뷰에 정의된 필터와 정렬이 적용됩니다. `view_id`는 주어진 뷰의 컨텍스트 메뉴에서 찾을 수 있습니다. 뷰 이름 뒤의 괄호 안에 있는 숫자입니다. \n\n #### `filter__{field}__{filter}` 사용 시 \n\n 쿼리 매개변수에 제공된 필터와 뷰에 정의된 필터가 모두 적용됩니다.\n\n #### `order_by` 사용 시 \n\n `order_by`가 제공되면 뷰에 정의된 정렬은 무시됩니다.", + "viewId": "기본적으로 쿼리 매개변수에 정의된 필터 및 정렬 외의 다른 필터 및 정렬은 적용되지 않습니다. 뷰의 `view_id` GET 매개변수에 해당 뷰의 `id`를 제공하여 뷰에 필터 및 정렬을 추가할 수 있습니다. 예를 들어, `view_id=1`과 같은 GET 매개변수를 제공하면 `view_id`가 `1`인 뷰에 정의된 필터 및 정렬이 적용됩니다. `view_id`는 모든 뷰의 컨텍스트 메뉴에서 확인할 수 있으며, 뷰 이름 뒤에 괄호 안에 있는 숫자입니다.\n\n#### `filter__{'{'}field{'}'}__{'{'}filter{'}'}` 사용 시\n\n쿼리 매개변수에 제공된 필터와 뷰에 정의된 필터가 모두 적용됩니다.\n\n#### `order_by` 사용 시\n\n`order_by`가 제공되면 뷰에 정의된 정렬은 무시됩니다.", "filtersBuilder": "필터 매개변수 빌더 열기", - "join": "기존의 링크 행 필드를 통해 대상 테이블에서 필드 값을 조회하도록 요청할 수 있습니다. 매개변수 이름은 기존의 링크 행 필드 이름 뒤에 __join이 와야 합니다. 값은 추가로 조회하려는 필드 이름의 목록이어야 합니다. 하나 이상의 대상 필드를 제공할 수 있습니다. 대상 테이블에서 링크 행 필드의 값을 조회하는 것은 불가능합니다.\n\n #### `user_field_names` 사용 시:\n\n `join`은 결과에 포함할 필드 이름의 쉼표로 구분된 목록이어야 합니다. 예를 들어 다음 GET 매개변수를 제공하는 경우 `LinkRowField__join=MyField,MyField2` `LinkRowField`로 연결된 테이블에서 `MyField`와 `My Field2`의 값이 응답에 포함됩니다.\n\n#### `user_field_names` 없이:\n\n `join`은 결과에 포함할 필드의 ID 뒤에 `field_`가 오는 쉼표로 구분된 목록이어야 합니다. 예를 들어 다음 GET 매개변수를 제공하는 경우 `field_1__join=field_2,field_3` `field_1`로 연결된 테이블에서 `field_2`와 `field_3`의 값이 응답에 포함됩니다." + "join": "기존의 링크 행 필드를 통해 대상 테이블에서 필드 값을 조회하도록 요청할 수 있습니다. 매개변수 이름은 기존의 링크 행 필드 이름 뒤에 __join이 와야 합니다. 값은 추가로 조회하려는 필드 이름의 목록이어야 합니다. 하나 이상의 대상 필드를 제공할 수 있습니다. 대상 테이블에서 링크 행 필드의 값을 조회하는 것은 불가능합니다.\n\n #### `user_field_names` 사용 시:\n\n `join`은 결과에 포함할 필드 이름의 쉼표로 구분된 목록이어야 합니다. 예를 들어 다음 GET 매개변수를 제공하는 경우 `LinkRowField__join=MyField,MyField2` `LinkRowField`로 연결된 테이블에서 `MyField`와 `My Field2`의 값이 응답에 포함됩니다.\n\n#### `user_field_names` 없이:\n\n `join`은 결과에 포함할 필드의 ID 뒤에 `field_`가 오는 쉼표로 구분된 목록이어야 합니다. 예를 들어 다음 GET 매개변수를 제공하는 경우 `field_1__join=field_2,field_3` `field_1`로 연결된 테이블에서 `field_2`와 `field_3`의 값이 응답에 포함됩니다.", + "test": "`{'{'}\"filter_type\": \"그리고\", \"필터\": [{'{'}\"필드\": \"이름\", \"유형\": \"일치\", \"값\": \"테스트\"{'}'}]{'}'}" }, "apiDocsIntro": { "intro": "{name} 데이터베이스는 데이터를 외부 시스템과 통합하는 쉬운 방법을 제공합니다. API는 REST 의미론을 따르고, 객체를 인코딩하기 위해 JSON을 사용하며, 표준 HTTP 코드, 기계 및 사람이 읽을 수 있는 오류를 통해 작업 결과를 나타냅니다.", @@ -182,7 +183,7 @@ }, "apiDocsTableDeleteRows": { "description": "기존 {name} 행들을 삭제합니다.", - "items": "삭제할 행 ID의 배열입니다." + "items": "삭제해야 할 행 ID 배열입니다." }, "apiDocsTableMoveRow": { "description": "기존 {name} 행을 다른 행 앞에 이동합니다. `before_id`가 제공되지 않으면 행은 테이블의 끝으로 이동합니다.", @@ -200,19 +201,19 @@ "apiDocsTableUpdateRow": { "description": "기존 {name} 행을 업데이트합니다.", "rowId": "업데이트해야 하는 행의 고유 식별자입니다.", - "before": "제공된 경우 새로 생성된 행은 제공된 ID의 행 앞에 배치됩니다." + "before": "제공된 ID가 있는 경우, 새로 생성된 행은 해당 ID를 가진 행 앞에 배치됩니다." }, "apiDocsTableUpdateRows": { "description": "기존 {name} 행들을 업데이트합니다.", - "id": "행 ID입니다." + "id": "행 ID." }, "apiDocsTableCreateRow": { "description": "새로운 {name} 행을 생성합니다.", - "before": "제공된 경우 새로 생성된 행은 제공된 ID의 행 앞에 배치됩니다." + "before": "제공된 ID가 있는 경우, 새로 생성된 행은 해당 ID를 가진 행 앞에 배치됩니다." }, "apiDocsTableCreateRows": { "description": "새로운 {name} 행들을 생성합니다.", - "before": "제공된 경우 새로 생성된 행들은 제공된 ID의 행 앞에 배치됩니다." + "before": "제공된 ID가 있는 경우, 새로 생성된 행은 해당 ID를 가진 행 앞에 배치됩니다." }, "apiDocsAuth": { "description": "Baserow는 간단한 토큰 기반 인증을 사용합니다. 아래에 설명된 엔드포인트를 사용하려면 {settingsLink}에서 최소한 하나의 데이터베이스 토큰을 생성해야 합니다. 토큰당 테이블 수준까지 생성, 읽기, 업데이트 및 삭제 권한을 부여할 수 있습니다. HTTP 인증 베어러 토큰 헤더에 토큰을 제공하여 API에 인증할 수 있습니다. 모든 API 요청은 인증되어야 하며 HTTPS를 통해 이루어져야 합니다.", @@ -253,7 +254,7 @@ "showTimezoneLabel": "시간대 표시", "forceTimezoneLabel": "모든 협업자에게 시간대 설정", "forceTimezoneValue": "시간대", - "addTimezoneOffsetLabel": "값 변환 (UTC 오프셋 {utcOffsetDiff}분 추가)", + "addTimezoneOffsetLabel": "값 변환 ({utcOffsetDiff}분 추가)", "subTimezoneOffsetLabel": "값 변환 (UTC 오프셋 {utcOffsetDiff}분 빼기)", "timeFormatLabel": "시간 형식", "24Hour": "24시간", @@ -623,11 +624,12 @@ }, "viewForm": { "name": "이름", - "whoCanEdit": "누가 편집할 수 있나요" + "whoCanEdit": "누가 이 뷰를 편집할 수 있나요?" }, "viewOwnershipType": { "collaborative": "협업", - "personal": "개인" + "personal": "개인", + "collaborativeDescription": "권한이 있는 사람은 누구나 모든 데이터를 보고 속성을 변경할 수 있습니다." }, "galleryViewHeader": { "customizeCards": "카드 맞춤 설정" diff --git a/web-frontend/modules/database/locales/nl.json b/web-frontend/modules/database/locales/nl.json index ba20bc7ab9..d3c8daf155 100644 --- a/web-frontend/modules/database/locales/nl.json +++ b/web-frontend/modules/database/locales/nl.json @@ -1,1192 +1,1197 @@ { - "webhookModal": { - "title": "{name} webhooks", - "createWebhook": "Webhook aanmaken", - "backToList": "Terug naar lijst" - }, - "deleteWebhookModal": { - "title": "Verwijder {webhookName}", - "deleteButton": "Webhook verwijderen", - "body": "Weet je zeker dat je deze webhook wilt verwijderen? Je kunt deze dan later niet meer herstellen." - }, - "webhookList": { - "noWebhooksMessage": "Je hebt nog geen webhooks aangemaakt. Webhooks kunnen worden gebruikt om systemen van derden te informeren wanneer een rij in Baserow is aangemaakt, bijgewerkt of verwijderd." - }, - "testWebhookModal": { - "title": "Test webhook", - "unreachable": "Server onbereikbaar" - }, - "webhookForm": { - "inputLabels": { - "name": "Naam", - "value": "Waarde", - "requestMethod": "Methode", - "url": "URL", - "userFieldNames": "Veldnamen gebruikers", - "events": "Welke gebeurtenissen moet deze webhook initiëren?", - "headers": "Extra kopteksten", - "example": "Voorbeeld werkbelasting" - }, - "errors": { - "urlField": "Dit veld is verplicht en moet een geldige url zijn.", - "invalidHeaders": "Een van de headers is ongeldig." - }, - "checkbox": { - "sendUserFieldNames": "Gebruik veldnaam in plaats van id" - }, - "radio": { - "allEvents": "Stuur me alles", - "customEvents": "Laat me afzonderlijke gebeurtenissen selecteren" - }, - "triggerButton": "Activeren bij test webhook", - "deactivated": { - "title": "Webhook is uitgeschakeld", - "content": "Deze webhook is uitgeschakeld omdat er te veel opeenvolgende mislukkingen zijn geweest. Controleer het call log voor meer details. Klik op de knop hieronder om de webhook weer te activeren. Vergeet niet om de webhook op te slaan na het activeren.", - "activate": "Activeren" - }, - "deprecatedEventType": { - "title": "Verouderd gebeurtenistype", - "description": "Deze webhook ontvangt geen informatie over alle gewijzigde rijen tegelijk. Converteer het naar een batch-stijl evenement type. Dit verandert de JSON body payload naar een formaat dat meerdere rijen bevat.", - "convert": "Omzetten" - }, - "triggerWhenFieldsHaveChanged": "Voer uit wanneer velden zijn veranderd", - "helpTriggerWhenFieldsHaveChanged": "Wordt alleen uitgevoerd als de celwaarde van de gekozen velden verandert." - }, - "webhook": { - "details": "details", - "lastCall": "Laatste oproep: {lastCallTime}", - "noCalls": "Geen oproepen gedaan", - "callLog": "Call log", - "triggerDescription": "Activeren bij elke event | Activeren bij {count} events | Activeren bij {count} events" - }, - "createWebhook": { - "errorTableWebhookMaxLimitExceededTitle": "Max webhooks overschreden", - "errorTableWebhookMaxLimitExceededDescription": "Kan de webhook niet aanmaken omdat het maximum aantal webhooks per tabel overschreden is." - }, - "sidebar": { - "viewAPI": "API Documenten bekijken", - "createTable": "Tabel aanmaken" - }, - "sidebarItem": { - "exportTable": "Tabel exporteren", - "webhooks": "Webhooks", - "lastSynced": "Laatst gesynchroniseerd", - "notSynced": "niet gesynchroniseerd", - "sync": "Sync tabel", - "updateSyncConfig": "Sync-configuratie bijwerken" - }, - "apiToken": { - "create": "aanmaken", - "read": "lezen", - "update": "bijwerken", - "delete": "verwijderen", - "tokenPrefix": "Token:", - "viewAPIDocs": "API-documentatie bekijken", - "generateNewToken": "Nieuw token genereren", - "showOrHide": "Het token tonen of verbergen", - "copyToClipboard": "Naar klembord kopiëren", - "showDatabases": "databanken tonen" - }, - "apiTokenSettings": { - "title": "Persoonlijke API tokens", - "createToken": "Token aanmaken", - "noTokensMessage": "Je hebt nog geen API token aangemaakt. Je kunt API tokens gebruiken om te authenticeren voor de REST API endpoints waar je rijen kunt aanmaken, lezen, bijwerken en verwijderen. Het is mogelijk om rechten in te stellen op tabelniveau.", - "hasFullPermissions": "Heeft volledige rechten, ook voor alle kinderen.", - "hasOnlySelectedPermissions": "Heeft alleen rechten op de geselecteerde kinderen.", - "noPermissions": "Heeft geen rechten.", - "createNewTitle": "Nieuw API token aanmaken", - "backToOverview": "Terug naar overzicht" - }, - "apiTokenForm": { - "nameLabel": "Naam", - "workspaceLabel": "Werkruimte" - }, - "apiDocsSelectDatabase": { - "needOneDatabase": "Je moet ten minste één databank hebben om de API documentatie te kunnen bekijken." - }, - "apiDocsExample": { - "requestSample": "Voorbeeld aanvraag", - "responseSample": "Voorbeeld respons", - "userFieldNames": "Veldnamen gebruikers" - }, - "apiDocsParameter": { - "optional": "optioneel", - "defaultValue": "Standaard: {value}" - }, - "apiDocsTableGetRow": { - "description": "Haal een enkele rij {name} op.", - "rowId": "De unieke identifier van de rij die wordt opgevraagd." - }, - "apiDocsErrors": { - "errorCode": "Foutcode", - "name": "Naam", - "description": "Beschrijving", - "okDescription": "Verzoek succesvol afgerond.", - "badRequestDescription": "Het verzoek bevat ongeldige waarden, of de JSON kon niet worden geparseerd.", - "unauthorizedDescription": "Wanneer je een eindpunt probeert te benaderen zonder geldig token.", - "notFoundDescription": "Rij of tabel is niet gevonden.", - "requestEntityTooLargeDescription": "Het verzoek overschreed de maximaal toegestane omvang van de werkbelasting.", - "internalErrorDescription": "De server heeft een onverwachte situatie aangetroffen.", - "badGatewayDescription": "Baserow is op dit moment aan het herstarten of er is een onverwachte uitval.", - "unavailableDescription": "De server kon je verzoek niet op tijd verwerken." - }, - "apiDocsTableFields": { - "tableTitle": "{name} tabel", - "tableId": "De ID van deze tabel is:", - "description": "Elke rij in de {name} tabel bevat de volgende velden.", - "id": "ID", - "name": "Naam", - "type": "Type", - "compatibleFilters": "Compatibele filters" - }, - "apiDocsTableListRows": { - "description": "Om rijen in de *{name}* tabel op te sommen moet een `GET` verzoek worden gedaan aan het *{name}* eindpunt. Het antwoord is gepagineerd en standaard wordt de eerste pagina geretourneerd. De juiste pagina kan worden opgehaald door de `page` en `size` query parameters mee te geven.", - "page": "Bepaalt welke pagina met rijen moet worden geretourneerd.", - "size": "Bepaalt hoeveel rijen per pagina moeten worden geretourneerd.", - "userFieldNames": "Wanneer een waarde wordt opgegeven voor de `user_field_names` GET parameter, dan zullen de veldnamen die worden geretourneerd door dit eindpunt de werkelijke namen van de velden zijn.\n\n Als de `user_field_names` GET parameter niet wordt opgegeven, dan zullen alle geretourneerde veldnamen `field_` zijn, gevolgd door de id van het veld. Bijvoorbeeld `field_1` verwijst naar het veld met de id `1`.\n\n Daarnaast verandert het gedrag van de andere GET parameters `order_by`, `include` en `exclude`, als `user_field_names` is ingesteld. Zij verwachten in plaats daarvan door komma's gescheiden lijsten met de werkelijke veldnamen.", - "search": "Indien opgegeven worden alleen rijen geretourneerd met gegevens die overeenkomen met de zoekopdracht.", - "orderBy": "Optioneel kunnen de rijen worden geordend op velden gescheiden door komma's. Standaard, of indien voorafgegaan door een '+', wordt een veld geordend in oplopende (A-Z) volgorde. Door het veld vooraf te laten gaan door een '-' kan het ook in aflopende (Z-A) volgorde worden geordend.\n\n#### Met `user_field_names`:\n\n`order_by` moet een door komma's gescheiden lijst van de veldnamen zijn om op te ordenen. Als je bijvoorbeeld de volgende GET parameter `order_by=My Field,-My Field 2` opgeeft, worden de rijen geordend op het veld genaamd `My Field` in oplopende volgorde. Als sommige velden dezelfde waarde hebben, wordt die sub-set geordend op het veld genaamd `My Field 2` in aflopende volgorde.\n\nZorg ervoor dat velden met namen die beginnen met een `+` of `-` expliciet worden voorafgegaan door een andere `+` of `-`. Bijv. `+-Name`\n\n#### Zonder `user_field_names`:\n\n`order_by` moet een door komma's gescheiden lijst van `field_` zijn, gevolgd door de id van het veld waarop gerangschikt moet worden. Als u bijvoorbeeld de volgende GET parameter `order_by=field_1,-field_2` opgeeft, zullen de rijen gerangschikt worden op `field_1` in oplopende volgorde. Als sommige velden dezelfde waarde hebben, zal die sub-set gerangschikt worden op `field_2` in aflopende volgorde.", - "filter": "De rijen kunnen optioneel worden gefilterd met dezelfde filters die beschikbaar zijn voor de weergaven. Meerdere filters kunnen worden opgegeven als ze hetzelfde formaat volgen. De `field` en `filter` variabelen geven aan hoe er gefilterd moet worden en de waarde geeft aan waarop er gefilterd moet worden.\n\n Als je bijvoorbeeld de volgende GET parameter `filter__field_1__equal=test` opgeeft, dan zullen alleen rijen worden geretourneerd waar de waarde van field_1 gelijk is aan test.", - "filterLink": "Een lijst van alle filters is hier beschikbaar.", - "filterType": "- `AND`: Geeft aan dat de rijen aan alle opgegeven filters moeten voldoen.\n- `OR`: Geeft aan dat de rijen slechts aan één van de filters hoeven te voldoen.\n\n Dit werkt alleen als er twee of meer filters zijn opgegeven.", - "include": "Alle velden worden standaard opgenomen in het antwoord. U kunt een sub-set van velden selecteren om op te nemen door de include query parameter op te geven.\n\n#### Met `user_field_names`:\n\n`include` moet een door komma's gescheiden lijst zijn van veldnamen die moeten worden opgenomen in de resultaten. Als u bijvoorbeeld de volgende GET-parameter opgeeft: `include=My Field,-My Field 2` dan zullen alleen die velden worden opgenomen (tenzij ze expliciet zijn uitgesloten)\n\n#### Zonder `user_field_names`:\n\n`include` moet een door komma's gescheiden lijst zijn van `field_` gevolgd door de id van het veld dat moet worden meegenomen in de resultaten. Bijvoorbeeld: Als je de volgende GET parameter `exclude=field_1,field_2` opgeeft, dan worden alleen de velden met id `1` en id `2`meegenomen (tenzij ze expliciet worden uitgesloten).", - "exclude": "Alle velden worden standaard opgenomen in het antwoord. Je kunt een sub-set van velden selecteren voor uitsluiting door de exclude query parameter op te geven.\n\n#### Met `user_field_names`:\n\n`exclude` moet een door komma's gescheiden lijst zijn van veldnamen die moeten worden uitgesloten van de resultaten. Als je bijvoorbeeld de volgende GET-parameter opgeeft: `exclude=My Field,-My Field 2` dan zullen die velden worden uitgesloten\n\n#### Zonder `user_field_names`:\n\n`exclude` moet een door komma's gescheiden lijst zijn van `field_` gevolgd door het id van het veld dat moet worden uitgesloten van de resultaten. Bijvoorbeeld: Als je de volgende GET parameter `exclude=field_1,field_2` opgeeft, dan worden de velden met id `1` en id `2` uitgesloten.", - "viewId": "Standaard worden geen filters en sorteringen toegepast die buiten de query parameters zijn gedefinieerd. U kunt de filters en sorteringen van een view toevoegen door zijn `id` in de `view_id` GET parameter op te geven. Bijvoorbeeld, als u de volgende GET parameter `view_id=1` opgeeft, dan zullen de filters en sorteringen die zijn gedefinieerd in de view met id `1` worden toegepast. U kunt de `view_id` vinden in het context menu van een gegeven view. Het is het getal tussen haakjes achter de view naam. \n\n #### Met `filter__{field}__{filter}` \n\n Zowel het filter dat in de query parameter is opgegeven als de filters die in de view zijn gedefinieerd zullen worden toegepast.\n\n #### Met `order_by` \n\n Als `order_by` wordt meegegeven dan zal de sortering gedefinieerd in de view worden genegeerd.", - "filtersBuilder": "Open filters parameter bouwer", - "filters": "Rijen kunnen optioneel worden gefilterd met dezelfde weergavefilters die beschikbaar zijn voor de weergaven. Deze parameter accepteert een JSON geserialiseerde string met de filterboom die moet worden toegepast op deze weergave. De filterboom is een geneste structuur die de filters bevat die moeten worden toegepast. \\n\\n#### Met `user_field_names`:\\n\\nEen voorbeeld van een geldige filterboom is de volgende: `{'{'}\"filter_type\":\"AND\",\"filters\": [{'{'}\"veld\":\"Naam\",\"type\":\"gelijk\",\"waarde\":\"test\"{'}'}]{'}'}.\\n\\n#### Zonder `user_field_names`:\\n\\nAls je bijvoorbeeld optioneel de volgende GET-parameter opgeeft: `{'{'}{'{'}'filter_type': 'AND', 'filters': [{'{'}{'{'}'veld': 1, 'type': 'equal', 'value': 'test'{'}'}{'}'}{'}'}]{'}'}{'}'}`\\n\\nHoud er rekening mee dat als deze parameter wordt opgegeven, alle andere `filter__{field}__{filter}` worden genegeerd, evenals de filter_type parameter.", - "join": "Maakt het mogelijk om een lookup aan te vragen van veldwaarden uit een doeltabel via bestaande linkrijvelden. De parameternaam moet de naam zijn van een bestaand veld in een linkrij, gevolgd door __join. De waarde moet een lijst met veldnamen zijn waarvoor we extra waarden willen opzoeken. Je kunt één of meerdere doelvelden opgeven. Het is niet mogelijk om een waarde van een veld in een linkrij in de doeltabel op te zoeken.\n\n #### Met `user_field_names`:\n\n `join` moet een door komma's gescheiden lijst zijn van veldnamen die in de resultaten moeten worden opgenomen. Bijvoorbeeld: Als je de volgende GET-parameter `LinkRowField__join=MyField,MyField2` opgeeft, dan worden de waarden van `MyField` en `My Field2` in de door `LinkRowField` gekoppelde tabel opgenomen in de respons .\n\n#### Zonder `user_field_names`:\n\n `join` moet een door komma's gescheiden lijst zijn van `field_` gevolgd door het id van het veld dat in de resultaten moet worden opgenomen. Bijvoorbeeld: Als u de volgende GET-parameter `field_1__join=field_2,field_3` opgeeft, dan worden de waarden van `field_2` en `field_3` in de tabel die is gekoppeld door `field_1` opgenomen in de respons." - }, - "apiDocsIntro": { - "intro": "De {name} database biedt een gemakkelijke manier om de gegevens te integreren met elk extern systeem. De API volgt REST semantiek, gebruikt JSON om objecten te coderen, en is gebaseerd op standaard HTTP codes, machineleesbare en door mensen leesbare fouten om operatie-uitkomsten te signaleren.", - "autoDocDescription": "Deze documentatie wordt automatisch gegenereerd op basis van de tabellen en velden in je database. Als je wijzigingen aanbrengt in je database, tabel of velden kan het zijn dat ook de API interface is gewijzigd. Zorg er daarom voor dat je je API implementatie dienovereenkomstig bijwerkt.", - "databaseId": "De ID van deze database is:", - "jsClient": "Javascript voorbeeld API client:", - "pythonClient": "Python voorbeeld API client:" - }, - "apiDocsTableListFields": { - "description": "Om velden van de {name} tabel op te sommen moet een `GET` verzoek gedaan worden aan het eindpunt van de {name} velden. Het is alleen mogelijk om de velden op te sommen als het token rechten geeft voor lezen, aanmaken of bijwerken.", - "resultFieldProperties": "Eigenschappen resultaatveld", - "id": "Field primary key (veld met primaire sleutel). Kan worden gebruikt om de database kolomnaam te genereren door het voorvoegsel `field_` toe te voegen.", - "name": "Naam van het veld.", - "tableId": "Verwante tabel id.", - "order": "Volgorde van de velden in de tabel. 0 voor het eerste veld.", - "primary": "Geeft aan of het veld een primair veld is. Indien `waar` (true) kan het veld niet worden verwijderd en moet de waarde de hele rij vertegenwoordigen.", - "type": "Type gedefinieerd voor dit veld.", - "extraProps": "Sommige extra eigenschappen worden hier niet beschreven omdat ze type-specifiek zijn.", - "readOnly": "Geeft aan of het veld een alleen-lezen veld is. Indien waar, is het niet mogelijk de celwaarde bij te werken.", - "descriptionField": "Veldbeschrijving" - }, - "apiDocsTableDeleteRow": { - "description": "Verwijdert een bestaande {name} rij.", - "rowId": "De unieke identifier van de rij die moet worden verwijderd." - }, - "apiDocsTableMoveRow": { - "description": "Verplaatst een bestaande {name} rij voor een andere rij. Als er geen `before_id` is opgegeven, dan wordt de rij verplaatst naar het einde van de tabel.", - "rowId": "Verplaatst de rij gerelateerd aan de waarde.", - "before": "Verplaatst de rij gerelateerd aan de opgegeven `rij_id` voor de rij gerelateerd aan de opgegeven waarde. Indien niet opgegeven, dan wordt de rij naar het einde verplaatst." - }, - "apiDocsTableUpdateRow": { - "description": "Werkt een bestaande rij {name} bij.", - "rowId": "De unieke identifier van de rij die moet worden bijgewerkt.", - "before": "Indien opgegeven dan zal de nieuw aangemaakte rij voor de rij met het opgegeven id geplaatst worden." - }, - "apiDocsTableCreateRow": { - "description": "Maak een nieuwe {name} rij.", - "before": "Indien opgegeven dan zal de nieuw aangemaakte rij voor de rij met het opgegeven id geplaatst worden." - }, - "apiDocsAuth": { - "description": "Baserow gebruikt een eenvoudige authenticatie op basis van een token. Je moet ten minste één API token in je {settingsLink} genereren om de hieronder beschreven eindpunten te kunnen gebruiken. Het is mogelijk om per token rechten te geven voor lezen, aanmaken, bijwerken en verwijderen tot op tabelniveau. Je kunt je bij de API authenticeren door je API-token op te geven in de HTTP 'authorisation bearer' token header. Alle API-verzoeken moeten worden geauthenticeerd en over HTTPS worden gedaan.", - "settingsLink": "instellingen" - }, - "apiDocsFilters": { - "filter": "Filter", - "exampleValue": "Voorbeeldwaarde", - "example": "Volledig voorbeeld", - "field": "veld {name}", - "deprecated": "verouderd" - }, - "fieldTextSubForm": { - "placeholder": "Standaard tekst" - }, - "fieldSingleSelectSubForm": { - "optionsLabel": "Opties", - "defaultOptionLabel": "Standaardoptie" - }, - "fieldSingleSelectDropdown": { - "notFound": "Optie niet gevonden" - }, - "fieldDateSubForm": { - "dateFormatLabel": "Datum formaat", - "dateFormatEuropean": "Europees", - "dateFormatUS": "VS", - "dateFormatISO": "ISO", - "includeTimeLabel": "Tijd invoegen", - "timeFormatLabel": "Tijdformaat", - "24Hour": "24 uur", - "12Hour": "12 uur", - "showTimezoneLabel": "Toon tijdzone", - "forceTimezoneLabel": "Tijdzone instellen voor alle bijdragers", - "forceTimezoneValue": "Tijdzone", - "addTimezoneOffsetLabel": "Waarden converteren ({utcOffsetDiff} minuten toevoegen)", - "subTimezoneOffsetLabel": "Converteer waarden (trek {utcOffsetDiff} minuten af)" - }, - "fieldLinkRowSubForm": { - "noTable": "Je hebt minstens één andere tabel in dezelfde database nodig om naar te linken.", - "selectTableLabel": "Selecteer een tabel om naar te linken", - "hasRelatedFieldLabel": "Maak gerelateerd veld", - "limitToView": "Selectie beperken tot weergave", - "limitToViewDescription": "Merk op dat dit alleen visueel is. Het is nog steeds mogelijk om relaties te leggen buiten de weergave via de gerelateerde tabel of API.", - "allowMultipleRelations": "Meerdere relaties toestaan" - }, - "fieldSelectOptions": { - "add": "Een optie toevoegen" - }, - "fieldNumberSubForm": { - "typeLabel": "Nummertype", - "integer": "Heel getal", - "decimal": "Decimaal", - "decimalPlacesLabel": "Decimale plaatsen", - "allowNegative": "Sta negatief toe", - "separatorLabel": "Duizendtallen en decimaalscheidingsteken", - "suffixPlaceholder": "Achtervoegsel", - "prefixAndSuffixLabel": "Voorvoegsel / achtervoegsel", - "spaceComma": "Spatie, komma (1 000 000,00)", - "spacePeriod": "Spatie, punt (1 000 000.00)", - "commaPeriod": "Komma, punt (1,000,000.00)", - "periodComma": "Punt, komma (1.000.000,00)", - "prefixPlaceholder": "Voorvoegsel", - "noFormatting": "Geen opmaak", - "defaultValueLabel": "Standaardwaarde", - "defaultValuePlaceholder": "Voer een standaardwaarde in" - }, - "fieldContext": { - "editField": "Veld bewerken", - "deleteField": "Veld verwijderen", - "hideField": "Veld verbergen", - "showField": "Toon veld", - "changePrimaryField": "Primair veld wijzigen" - }, - "fieldForm": { - "name": "Naam", - "fieldAlreadyExists": "Een veld met deze naam bestaat al.", - "nameNotAllowed": "Deze veldnaam is niet toegestaan.", - "nameTooLong": "Deze veldnaam is te lang.", - "addDescription": "Beschrijving toevoegen", - "description": "Beschrijving", - "dbIndex": "Index", - "dbIndexError": "Dit veldtype kan geen index hebben. Verwijder deze voordat u het veldtype opslaat of wijzigt.", - "dbIndexDescription": "Indexeren kan de filterprestaties aanzienlijk verbeteren, maar vertraagt het maken, bijwerken en verwijderen.", - "defaultValueDisabledByConstraint": "Kan geen standaardwaarde instellen met een unieke beperking", - "dbIndexDisabledTooltip": "Indexering is niet beschikbaar voor dit veldtype." - }, - "fieldLookupSubForm": { - "noTable": "Je hebt minstens één link-rij veld nodig om een lookup veld te maken.", - "selectThroughFieldLabel": "Selecteer een link-rij veld", - "selectTargetFieldLabel": "Selecteer een veld om op te zoeken met lookup" - }, - "fieldFormulaNumberSubForm": { - "typeLabel": "Nummertype", - "integer": "Heel getal", - "decimal": "Decimaal", - "decimalPlacesLabel": "Decimale plaatsen", - "allowNegative": "Sta negatief toe" - }, - "fieldRatingSubForm": { - "maxValue": "Max", - "color": "Kleur", - "style": "Stijl" - }, - "rowCreateModal": { - "addField": "veld toevoegen" - }, - "selectRowContent": { - "search": "Zoek rijen", - "hideFields": "Velden verbergen" - }, - "rowEditModal": { - "addField": "veld toevoegen", - "showHiddenFields": "Verborgen velden weergeven", - "hideHiddenFields": "Verborgen velden verbergen" - }, - "rowEditFieldMultipleSelect": { - "addOption": "Een andere optie toevoegen" - }, - "rowEditFieldFile": { - "addFile": "Een bestand toevoegen", - "sizes": { - "0": "Bytes", - "1": "KB", - "2": "MB", - "3": "GB", - "4": "TB", - "5": "PB" - } - }, - "rowEditFieldLinkRow": { - "addLink": "Nog een link toevoegen", - "keepOnlyOneValue": "Bewaar slechts één waarde. Dit veld ondersteunt slechts één relatie. De waarde wordt bewaard als er nog maar één relatie is." - }, - "tableCSVImporter": { - "chooseFileLabel": "Kies CSV-bestand", - "chooseFileDescription": "Je kunt een bestaand CSV-bestand importeren door het .CSV-bestand met gegevens in tabelvorm te uploaden. Met de meeste spreadsheetprogramma's kun je een spreadsheet als .CSV-bestand exporteren.", - "chooseFile": "Kies CSV-bestand", - "columnSeparator": "Kolomscheidingsteken", - "recordSeparator": "record-scheidingsteken", - "unitSeparator": "unit-scheidingsteken", - "encoding": "Codering", - "firstRowHeader": "Eerste rij is header", - "limitFileSize": "De maximale bestandsgrootte is {limit}MB.", - "limitError": "Het is niet mogelijk om meer dan {limit} rijen te importeren.", - "emptyCSV": "Dit CSV-bestand is leeg." - }, - "tableForm": { - "name": "Naam" - }, - "tableXMLImporter": { - "fileLabel": "Kies XML-bestand", - "fileDescription": "Je kunt een bestaande XML importeren door het .XML-bestand met gegevens in tabelvorm te uploaden, d.w.z:", - "chooseButton": "Kies XML-bestand", - "processingError": "Er is een fout opgetreden tijdens het verwerken van XML: {errors}", - "emptyError": "Dit XML-bestand is leeg.", - "limitFileSize": "De maximale bestandsgrootte is {limit}MB.", - "limitError": "Het is niet mogelijk om meer dan {limit} rijen te importeren." - }, - "tableJSONImporter": { - "fileLabel": "Kies JSON bestand", - "fileDescription": "Je kunt een bestaand JSON-bestand importeren door het .json-bestand met gegevens in tabelvorm te uploaden, d.w.z:", - "chooseButton": "Kies JSON bestand", - "encodingLabel": "Codering", - "processingError": "Er is een fout opgetreden tijdens het parsen van JSON: {error}", - "arrayError": "Het JSON-bestand is geen array.", - "emptyError": "Dit JSON-bestand is leeg.", - "limitFileSize": "De maximale bestandsgrootte is {limit}MB.", - "limitError": "Het is niet mogelijk om meer dan {limit} rijen te importeren." - }, - "tablePasteImporter": { - "pasteLabel": "Plak de tabeldata", - "pasteDescription": "Je kunt de cellen uit een spreadsheet kopiëren en ze hieronder plakken.", - "firstRowHeader": "Eerste rij is header", - "limitError": "Het is niet mogelijk om meer dan {limit} rijen te importeren." - }, - "importFileModal": { - "title": "Nieuwe tabel maken", - "importLabel": "Wil je bestaande gegevens importeren?", - "newTable": "Begin met een nieuwe tabel", - "addButton": "Tabel toevoegen", - "uploading": "Uploaden...", - "preparing": "Voorbereiden van data...", - "showReport": "Foutrapport tonen", - "reportTitleFailure": "Mislukte rijen", - "openCreatedTable": "Open aangemaakte tabel", - "reportTitleSuccess": "Import succesvol, maar...", - "importError": "Er is iets misgegaan tijdens het importeren van het bestand", - "stateRowCreation": "Importeren...", - "reportMessage": "De volgende rij indexen konden niet worden geïmporteerd:", - "stateCreateTable": "Tabel maken...", - "statePreValidation": "Valideren van gegevens...", - "additionalImportTitle": "Importeren in {table}", - "showTable": "toon tabel", - "importButton": "Importeren", - "fieldMappingTitle": "Veld vertaling", - "fieldMappingDescription": "Wij hebben de kolommen van de Baserow-velden in uw tabel automatisch toegewezen. U kunt ze hieronder wijzigen. Elke niet-compatibele cel zal leeg blijven na de import.", - "selectImportMessage": "Selecteer gegevens om te importeren.", - "filePreview": "Voorbeeld van bestandsinhoud", - "importPreview": "Importvoorbeeld", - "changeImporterType": "Importtype wijzigen", - "defaultName": "Tabel", - "useUpsertField": "Rijen bijwerken als ze al bestaan", - "upsertTooltip": "Overeenkomen met bestaande rijen met behulp van een uniek veld om gegevens met geïmporteerde waarden te overschrijven." - }, - "formulaAdvancedEditContext": { - "textAreaFormulaInputPlaceholder": "Klik om de formule te bewerken", - "fields": "Velden", - "functions": "Functies", - "operators": "Operators", - "fieldType": "Een {type} veld" - }, - "fieldFormulaInitialSubForm": { - "formulaInputPlaceholder": "Klik om de formule te bewerken", - "refreshFormulaOptions": "Formule-opties vernieuwen" - }, - "formulaFieldItemDescription": { - "syntax": "Syntax", - "examples": "Voorbeelden" - }, - "viewSearchContext": { - "searchInRows": "Zoeken in alle rijen", - "hideNotMatching": "verberg rijen die niet overeenkomen" - }, - "viewsContext": { - "searchView": "Zoek weergaven", - "noViews": "Geen weergaven gevonden", - "collaborative": "Samenwerkend" - }, - "viewFilterTypeLinkRow": { - "unnamed": "onbenoemde rij {value}", - "choose": "Kies rij" - }, - "viewFilterContext": { - "addFilter": "Filter toevoegen", - "disableAllFilters": "alle filters uitgeschakeld", - "noFilterTitle": "Je hebt nog geen filter aangemaakt", - "noFilterText": "Met filters kun je rijen tonen die aan je voorwaarden voldoen.", - "where": "Waar", - "and": "En", - "or": "Of", - "relatedFieldNotFound": "Het gerelateerde veld is niet gevonden.", - "filterTypeNotFound": "Het filtertype is niet compatibel.", - "noCompatibleFilterTypesErrorTitle": "Geen compatibele filtertypes", - "noCompatibleFilterTypesErrorMessage": "Geen van uw velden heeft een compatibel filtertype", - "addFilterGroup": "Filtergroep toevoegen" - }, - "viewFilterTypeFileTypeDropdown": { - "image": "afbeelding", - "document": "document" - }, - "createViewModal": { - "createNew": "Nieuwe {view} aanmaken", - "add": "{view} toevoegen" - }, - "shareViewLink": { - "shareView": "Deel {viewTypeSharingLinkName}", - "shareViewTitle": "Maak een deelbare privé-link naar de {viewTypeSharingLinkName}", - "sharedViewTitle": "Deze {viewTypeSharingLinkName} wordt momenteel gedeeld via een privé-link", - "sharedViewDescription": "Mensen die de link hebben kunnen de {viewTypeSharingLinkName} zien.", - "disableLink": "gedeelde link uitschakelen", - "generateNewUrl": "nieuwe url genereren", - "copyURL": "URL kopiëren", - "ChangePassword": "Verander", - "EnablePassword": "Toegang beperken met een wachtwoord", - "DisablePassword": "Toegang is beveiligd met een wachtwoord", - "shareViewText": "Met een privé-deelbare link kan iedereen de gegevens in deze weergave bekijken.", - "shareViewLinkTitle": "Een privé link maken", - "notSharedYetText": "Laat iedereen de gegevens in deze weergave zien of sync gebeurtenissen met je externe agenda.", - "createPrivateLink": "Een privé link maken" - }, - "viewSortContext": { - "noSortTitle": "Je hebt nog geen sortering", - "noSortText": "Met sorteren kun je rijen op een veld sorteren.", - "sortBy": "Sorteer op", - "thenBy": "Dan op", - "addSort": "kies een veld om op te sorteren" - }, - "viewSort": { - "sort": "Sorteren | 1 Sorteren | {count} Sorteren" - }, - "viewRotateSlugModal": { - "title": "URL vernieuwen", - "refreshWarning": "Weet je zeker dat je de URL van {viewName} wilt vernieuwen? Na het vernieuwen wordt een nieuwe URL gegenereerd. Het is dan niet mogelijk om de {viewTypeSharingLinkName} via de oude URL te benaderen. Iedereen waarmee je de URL gedeeld heeft, is dan niet in staat om de {viewTypeSharingLinkName} te benaderen.", - "generateNewURL": "Nieuwe URL genereren" - }, - "viewFieldsContext": { - "coverField": "Voorbladveld", - "noCover": "Geen voorblad", - "search": "Zoekvelden", - "hideAll": "Alles verbergen", - "showAll": "Alles tonen" - }, - "viewFilterTypeBoolean": { - "selected": "Geselecteerd" - }, - "viewFilter": { - "filter": "Filter | 1 Filter | {count} Filters", - "hasAllValuesEqual": "heeft alle waarden gelijk", - "hasNotValueHigherThan": "geen hogere waarde heeft dan", - "hasNotValueHigherThanOrEqual": "heeft geen waarde hoger dan of gelijk aan", - "hasValueLowerThan": "heeft een waarde lager dan", - "hasValueLowerThanOrEqual": "heeft waarde lager dan of gelijk aan", - "hasValueHigherThanOrEqual": "heeft een waarde hoger dan of gelijk aan", - "hasNotValueLowerThan": "geen lagere waarde heeft dan", - "hasValueHigherThan": "heeft een waarde hoger dan", - "hasNotValueLowerThanOrEqual": "geen waarde heeft die lager is dan of gelijk is aan" - }, - "viewContext": { - "exportView": "Weergave exporteren", - "renameView": "Weergave hernoemen", - "deleteView": "Weergave verwijderen", - "webhooks": "Webhooks", - "duplicateView": "View dupliceren", - "importFile": "Bestand importeren", - "toPersonal": "Naar persoonlijk", - "toCollaborative": "Naar gedeeld" - }, - "deleteViewModal": { - "title": "Verwijder {name}", - "description": "Weet je zeker dat je de weergave {name} wilt verwijderen? De tabelgegevens blijven bewaard, maar de filters, sorteringen en veldbreedtes met betrekking tot de weergave worden verwijderd.", - "delete": "Weergave verwijderen" - }, - "viewForm": { - "name": "Naam", - "whoCanEdit": "Wie kan bewerken" - }, - "galleryViewHeader": { - "customizeCards": "Kaarten aanpassen" - }, - "gridViewHide": { - "hideField": "Velden verbergen | 1 verborgen veld | {count} verborgen velden" - }, - "gridViewFieldType": { - "createFilter": "Filter maken", - "sortField": "Sorteren", - "hideField": "Veld verbergen", - "insertLeft": "Links invoegen", - "insertRight": "Rechts invoegen", - "duplicate": "Dupliceer veld", - "dataSyncField": "Het veld is alleen-lezen en maakt deel uit van de data sync van de tabel.", - "noWriteValues": "Wijzigingen in dit veld zijn beperkt.", - "dataSyncFieldTwoWaySync": "Het veld wordt gesynchroniseerd met de gegevenssynchronisatie van de tabel." - }, - "gridViewRow": { - "rowNotMatchingFilters": "Rij komt niet overeen met filters", - "rowNotMatchingSearch": "Rij komt niet overeen met zoekopdracht", - "rowHasMoved": "Rij is verplaatst" - }, - "gridView": { - "insertRowAbove": "Rij hierboven invoegen", - "insertRowBelow": "Voeg rij hieronder in", - "enlargeRow": "Vergroot rij", - "deleteRow": "Rij verwijderen", - "rowCount": "Geen rijen | 1 rij | {count} rijen", - "duplicateRow": "Rij dupliceren", - "selectRow": "Rij selecteren", - "deleteRows": "Rijen verwijderen", - "copyCells": "Kopieer cellen", - "hiddenRowsInsertedMessage": "{number} nieuw toegevoegde rijen zijn toegevoegd, maar zijn niet zichtbaar vanwege de actieve filters.", - "hiddenRowsInsertedTitle": "Rijen toegevoegd", - "copiedRowURLMessage": "De URL van rij {id} is gekopieerd naar je klembord.", - "copiedRowURL": "Rij URL gekopieerd.", - "copyRowURL": "URL van rij kopiëren", - "tooManyItemsTitle": "Te veel items", - "tooManyItemsDescription": "Het is niet mogelijk om meer dan {limit} rijen tegelijk bij te werken, dus we hebben alleen de eerste bijgewerkt.", - "generateCellsValues": "Genereer waardes met AI", - "AIValuesGenerationErrorTitle": "AI-waardegeneratie mislukt", - "AIValuesGenerationErrorMessage": "Controleer alsjeblieft je API_KEY en controleer het geselecteerde model.", - "copyCellsWithHeader": "Cellen met koptekst kopiëren", - "generateAllAiValues": "Genereer alle AI-waarden" - }, - "gridViewFieldLinkRow": { - "unnamed": "onbenoemde rij {value}", - "keepOnlyOneValue": "Slechts één waarde behouden" - }, - "gridViewIdentifierOptions": { - "id": "Rij identificatie", - "count": "Tellen" - }, - "previewAny": { - "externalWarning": "Als je een bestand opent via een externe dienst, wordt je bestand blootgesteld aan hun servers." - }, - "exportTableModal": { - "failedTitle": "Export mislukt", - "failedDescription": "De export is mislukt door een serverfout.", - "cancelledTitle": "Export Geannuleerd", - "cancelledDescription": "De export werd geannuleerd.", - "title": "Exporteer {name}" - }, - "exporterTypeChoices": { - "formatLabel": "Naar welk formaat wil je exporteren?" - }, - "exportTableForm": { - "viewLabel": "Selecteer de weergave die je wil exporteren:", - "typeError": "Geen exporttype beschikbaar, kies een andere weergave of een volledige tabel." - }, - "exportTableLoadingBar": { - "export": "Exporteren", - "download": "Downloaden" - }, - "exportTableDropdown": { - "exportEntireTable": "Volledige tabel exporteren" - }, - "tableCSVExporter": { - "columnSeparatorLabel": "Kolomscheidingsteken", - "recordSeparator": "record-scheidingsteken", - "unitSeparator": "unit-scheidingsteken", - "encodingLabel": "Codering", - "firstRowIsHeaderLabel": "Eerste rij is header", - "includeHeader": "Veldnamen opnemen als koptekst" - }, - "apiDocsDatabase": { - "pageTitle": "{name} database API documentatie", - "back": "Terug naar dashboard", - "openDatabase": "open databank" - }, - "apiDocsComponent": { - "title": "REST-API", - "intro": "Nadat je je databankschema en API-sleutel hebt aangemaakt in de {settingsLink}, biedt je Baserow database zijn eigen REST API endpoints voor het aanmaken, lezen, bijwerken en verwijderen van rijen.", - "settings": "instellingen", - "selectApplicationTitle": "Voor welke database wilt je de documentatie zien?", - "signIn": "Log in om te beginnen", - "back": "Terug naar dashboard" - }, - "viewAggregationType": { - "emptyCount": "Leeg", - "notEmptyCount": "Gevuld", - "emptyPercentage": "Percentage leeg", - "notEmptyPercentage": "Percentage gevuld", - "latestDate": "Laatste datum", - "checkedPercentage": "Percentage aan", - "sum": "Som", - "earliestDateShort": "Vroegste", - "min": "Min", - "max": "Max", - "latestDateShort": "Laatste", - "uniqueCount": "Uniek", - "average": "Gemiddelde", - "variance": "Variantie", - "checkedCount": "Aangevinkt", - "notCheckedPercentage": "Percentage uit", - "notCheckedCount": "Uitgevinkt", - "earliestDate": "Vroegste datum", - "median": "Mediaan", - "stdDev": "Standaardafwijking", - "stdDevShort": "Std dev", - "count": "Tellen", - "distribution": "Distributie", - "othersCount": "Anderen" - }, - "databaseForm": { - "importLabel": "Wilt u bestaande gegevens importeren?", - "emptyLabel": "Begin leeg", - "airtableLabel": "Importeren uit Airtable (beta)" - }, - "importFromAirtable": { - "airtableShareLinkTitle": "Deel een link naar je Base", - "airtableShareLinkDescription": "Om uw Airtable basis te importeren, moet u een gedeelde link hebben naar uw volledige basis. In Airtable, klik op de share knop in de rechter bovenhoek na het openen van uw basis. Daarna moet u de optie \"Access to base\" kiezen. In de share-modal kunt u klikken op de \"Create a shared link to the whole base\" knop en vervolgens op \"Private read-only link\". Kopieer de publieke link en plak deze in de onderstaande invoer.", - "airtableShareLinkBeta": "Houd er rekening mee dat deze functie in bèta is, uw tabellen, velden (behalve formule, opzoeken en tellen) en gegevens worden geïmporteerd. Uw weergaven worden niet geïmporteerd.", - "airtableShareLinkPaste": "Plak de link hier", - "importButtonLabel": "Importeren uit Airtable", - "openButtonLabel": "Geïmporteerde database openen", - "importError": "Er is iets fout gegaan", - "statePending": "Wachten om te beginnen", - "stateFailed": "Mislukt", - "stateFinished": "Afgerond", - "stateDownloadingBase": "Basisschema downloaden", - "stateConverting": "Omzetten naar Baserow", - "stateDownloadingFiles": "Bestanden downloaden", - "stateImporting": "Importeren", - "stateImportingTable": "Importeren van tabel {table}", - "errorJobAlreadyRunningTitle": "Al bezig", - "errorJobAlreadyRunningDescription": "Er loopt al een andere import taak. U moet wachten tot die klaar is voordat u een andere start.", - "linkError": "De link moet er als volgt uitzien: https://airtable.com/shrxxxxxxxxxxxxxx", - "skipFiles": "Bestanden importeren overslaan", - "skipFilesHelper": "Een Airtable base met veel bestanden kan het importeren vertragen. Als je dit inschakelt, wordt het importeren van de bestanden overgeslagen.", - "sessionLabel": "Sessiecookie (__Host-airtable-session)", - "sessionDescription": "Als de import antwoordt met \"The Airtable base requires authentication.\", dan kan het zijn dat de organisatorische instellingen in Airtable de toegang tot de Airtable-basis verhinderen zonder eerst te authenticeren. Om dit te doen, moeten de sessie en handtekening handmatig worden geëxtraheerd. Bezoek de URL van de publiekelijk gedeelde basis in uw browser en meld u aan, indien nodig. Klik op het applicatiemenu door in de rechterbovenhoek te klikken -> \"More tools\" -> \"Developer tools\"\". Open het tabblad \"Toepassing\" (in Firefox \"Opslag\") en klik op \"https://airtable.com\". Zoek nu de cookiewaarden \"__Host-airtable-session\" en \"__Host-airtable-session.sig\" en plak deze in de onderstaande ingangen.", - "useSession": "Sessie-authenticatie", - "useSessionHelper": "Gebruik dit als de publiekelijk gedeelde basis verificatie vereist.", - "sessionSignatureLabel": "Cookie voor sessiehandtekening (__Host-airtable-session.sig)" - }, - "chooseSingleSelectField": { - "addSelectField": "enkelvoudig keuzeveld toevoegen", - "warningWhenNothingToChooseOrCreate": "Er zijn geen enkele selectie velden om uit te kiezen en u hebt geen machtigingen om er een te maken." - }, - "viewDecorator": { - "decorator": "Kleur | 1 Kleur | {tellen} Kleuren" - }, - "viewDecoratorContext": { - "addDecorator": "decoratie toevoegen" - }, - "shareViewEnablePasswordModal": { - "newPasswordTitle": "Voer een wachtwoord in", - "newPasswordSave": "Stel een wachtwoord in", - "changePasswordTitle": "Wijzig wachtwoord", - "changePasswordDescription": "Door het wachtwoord te wijzigen, zal het vorige niet meer werken. Dit wachtwoord wordt versleuteld opgeslagen.", - "changePasswordSave": "Wijzig wachtwoord", - "newPasswordDescription": "De openbare link is alleen toegankelijk na het invoeren van het wachtwoord. Dit wachtwoord wordt versleuteld opgeslagen." - }, - "shareViewDisablePasswordModal": { - "title": "Wachtwoordbeveiliging uitschakelen", - "description": "Weet u zeker dat u de wachtwoordbeveiliging voor deze openbare link wilt uitschakelen? Door uit te schakelen, wordt het wachtwoord verwijderd en is het niet mogelijk om het te herstellen", - "disable": "Uitschakelen" - }, - "publicViewAuthLogin": { - "title": "Deze pagina is beveiligd met een wachtwoord", - "description": "Voer het juiste wachtwoord in om toegang te krijgen tot de pagina.", - "enter": "Ga naar", - "error": { - "incorrectPasswordTitle": "Onjuist wachtwoord", - "incorrectPasswordText": "Het opgegeven wachtwoord is onjuist." - } - }, - "apiDocsTableDeleteRows": { - "description": "Verwijdert bestaande {name} rijen.", - "items": "Een array van rij-ids die moeten worden verwijderd." - }, - "apiDocsTableUpdateRows": { - "description": "Werkt bestaande {name} rijen bij.", - "id": "De rij id." - }, - "apiDocsTableCreateRows": { - "description": "Maak nieuwe {name} rijen.", - "before": "Indien meegegeven dan zullen de nieuw aangemaakte rijen voor de rij met het meegegeven id geplaatst worden." - }, - "importer": { - "decoding": "Gegevens decoderen", - "loading": "Bestand laden", - "inProgress": "In uitvoering...", - "parsing": "Gegevens parseren", - "preparing": "Gegevens voorbereiden", - "fieldDefaultName": "Veld {count}" - }, - "databaseDashboardSidebarLinks": { - "apiDocumentation": "API-documentatie" - }, - "formViewField": { - "required": "verplicht", - "showWhenMatchingConditions": "tonen wanneer aan de voorwaarden is voldaan", - "addCondition": "Voorwaarde toevoegen", - "descriptionPlaceholder": "Beschrijving", - "addConditionGroup": "Voorwaarde groep toevoegen", - "showFieldAs": "Toon veld als", - "includeAllSelectOptionsHelper": "Kies de keuzes die in het formulier moeten worden opgenomen met behulp van deze dropdown", - "noSelectOptions": "Er zijn geen keuzes beschikbaar.", - "includeAllSelectOptions": "inclusief alle keuzes", - "noCollaboratorsAvailable": "Er zijn geen medewerkers beschikbaar.", - "cannotSumitValues": "Dit veld is alleen-lezen en wordt niet weergegeven in het formulier." - }, - "duplicateFieldContext": { - "duplicate": "Dupliceer veld", - "cloneData": "Gegevens kopiëren", - "soon": "Binnenkort beschikbaar", - "readOnlyField": "De celwaarden worden automatisch ingevuld." - }, - "formViewMeta": { - "includeRowId": "Gebruik {row_id} om de nieuw aangemaakte rij id in de URL op te nemen." - }, - "snapshotsModal": { - "title": "snapshots", - "description": "Snapshots zijn een volledige kopie van uw database van het moment waarop ze werden aangemaakt. Een duplicaat van die gegevens wordt gemaakt bij het terugzetten. Snapshots worden na een jaar automatisch verwijderd.", - "descriptionLimits": "U kunt een maximum aan {n} snapshots per werkruimte hebben. | U kunt een maximum van {n} snapshot per werkruimte hebben. | U kunt een maximum aan {n} snapshots per werkruimte hebben.", - "reset": "Maak een andere", - "limitReached": "Het limiet van het maximum aantal snapshots is bereikt.", - "snapshotDeletedErrorMessage": "De momentopname kon niet worden verwijderd. probeer het later opnieuw.", - "snapshot": "Snapshot", - "snapshotRestoredErrorTitle": "Fout opgetreden", - "createLabel": "Maak een nieuwe snapshot", - "create": "Snapshot maken", - "snapshotRestoredErrorMessage": "De snapshot kan niet worden hersteld. probeer het later opnieuw.", - "snapshotDeletedErrorTitle": "Fout opgetreden", - "importingState": "Maken", - "cancel": "Annuleren", - "noSnapshots": "Er zijn nog geen snapshots voor deze applicatie.", - "nameAlreadyExists": "Er bestaat al een snapshot met deze naam." - }, - "deleteSnapshotModal": { - "title": "Snapshot verwijderen", - "content": "Weet u zeker dat u momentopname {name} permanent wilt verwijderen?", - "confirm": "Verwijderen" - }, - "snapshotListItem": { - "delete": "verwijderen", - "created": "gemaakt", - "restore": "herstellen" - }, - "table": { - "chooseView": "Kies weergave", - "adjacentRow": { - "notification": { - "notFound": { - "previous": { - "message": "Er is geen vorige rij", - "title": "Geen rijen meer" - }, - "next": { - "title": "Geen rijen meer", - "message": "Er is geen volgende rij" - } + "webhookModal": { + "title": "{name} webhooks", + "createWebhook": "Webhook aanmaken", + "backToList": "Terug naar lijst" + }, + "deleteWebhookModal": { + "title": "Verwijder {webhookName}", + "deleteButton": "Webhook verwijderen", + "body": "Weet je zeker dat je deze webhook wilt verwijderen? Je kunt deze dan later niet meer herstellen." + }, + "webhookList": { + "noWebhooksMessage": "Je hebt nog geen webhooks aangemaakt. Webhooks kunnen worden gebruikt om systemen van derden te informeren wanneer een rij in Baserow is aangemaakt, bijgewerkt of verwijderd." + }, + "testWebhookModal": { + "title": "Test webhook", + "unreachable": "Server onbereikbaar" + }, + "webhookForm": { + "inputLabels": { + "name": "Naam", + "value": "Waarde", + "requestMethod": "Methode", + "url": "URL", + "userFieldNames": "Veldnamen gebruikers", + "events": "Welke gebeurtenissen moet deze webhook initiëren?", + "headers": "Extra kopteksten", + "example": "Voorbeeld werkbelasting" }, - "error": { - "title": "Fout opgetreden", - "message": "Er is een fout opgetreden tijdens het ophalen van de aangrenzende rij" - } - }, - "toast": { - "notFound": { - "next": { - "title": "Geen rijen meer", - "message": "Er is geen volgende rij" - }, - "previous": { - "title": "Geen rijen meer", - "message": "Er is geen vorige rij" - } + "errors": { + "urlField": "Dit veld is verplicht en moet een geldige url zijn.", + "invalidHeaders": "Een van de headers is ongeldig." + }, + "checkbox": { + "sendUserFieldNames": "Gebruik veldnaam in plaats van id" + }, + "radio": { + "allEvents": "Stuur me alles", + "customEvents": "Laat me afzonderlijke gebeurtenissen selecteren" + }, + "triggerButton": "Activeren bij test webhook", + "deactivated": { + "title": "Webhook is uitgeschakeld", + "content": "Deze webhook is uitgeschakeld omdat er te veel opeenvolgende mislukkingen zijn geweest. Controleer het call log voor meer details. Klik op de knop hieronder om de webhook weer te activeren. Vergeet niet om de webhook op te slaan na het activeren.", + "activate": "Activeren" + }, + "deprecatedEventType": { + "title": "Verouderd gebeurtenistype", + "description": "Deze webhook ontvangt geen informatie over alle gewijzigde rijen tegelijk. Converteer het naar een batch-stijl evenement type. Dit verandert de JSON body payload naar een formaat dat meerdere rijen bevat.", + "convert": "Omzetten" }, + "triggerWhenFieldsHaveChanged": "Voer uit wanneer velden zijn veranderd", + "helpTriggerWhenFieldsHaveChanged": "Wordt alleen uitgevoerd als de celwaarde van de gekozen velden verandert." + }, + "webhook": { + "details": "details", + "lastCall": "Laatste oproep: {lastCallTime}", + "noCalls": "Geen oproepen gedaan", + "callLog": "Call log", + "triggerDescription": "Activeren bij elke event | Activeren bij {count} events | Activeren bij {count} events" + }, + "createWebhook": { + "errorTableWebhookMaxLimitExceededTitle": "Max webhooks overschreden", + "errorTableWebhookMaxLimitExceededDescription": "Kan de webhook niet aanmaken omdat het maximum aantal webhooks per tabel overschreden is." + }, + "sidebar": { + "viewAPI": "API Documenten bekijken", + "createTable": "Tabel aanmaken" + }, + "sidebarItem": { + "exportTable": "Tabel exporteren", + "webhooks": "Webhooks", + "lastSynced": "Laatst gesynchroniseerd", + "notSynced": "niet gesynchroniseerd", + "sync": "Sync tabel", + "updateSyncConfig": "Sync-configuratie bijwerken" + }, + "apiToken": { + "create": "aanmaken", + "read": "lezen", + "update": "bijwerken", + "delete": "verwijderen", + "tokenPrefix": "Token:", + "viewAPIDocs": "API-documentatie bekijken", + "generateNewToken": "Nieuw token genereren", + "showOrHide": "Het token tonen of verbergen", + "copyToClipboard": "Naar klembord kopiëren", + "showDatabases": "databanken tonen" + }, + "apiTokenSettings": { + "title": "Persoonlijke API tokens", + "createToken": "Token aanmaken", + "noTokensMessage": "Je hebt nog geen API token aangemaakt. Je kunt API tokens gebruiken om te authenticeren voor de REST API endpoints waar je rijen kunt aanmaken, lezen, bijwerken en verwijderen. Het is mogelijk om rechten in te stellen op tabelniveau.", + "hasFullPermissions": "Heeft volledige rechten, ook voor alle kinderen.", + "hasOnlySelectedPermissions": "Heeft alleen rechten op de geselecteerde kinderen.", + "noPermissions": "Heeft geen rechten.", + "createNewTitle": "Nieuw API token aanmaken", + "backToOverview": "Terug naar overzicht" + }, + "apiTokenForm": { + "nameLabel": "Naam", + "workspaceLabel": "Werkruimte" + }, + "apiDocsSelectDatabase": { + "needOneDatabase": "Je moet ten minste één databank hebben om de API documentatie te kunnen bekijken." + }, + "apiDocsExample": { + "requestSample": "Voorbeeld aanvraag", + "responseSample": "Voorbeeld respons", + "userFieldNames": "Veldnamen gebruikers" + }, + "apiDocsParameter": { + "optional": "optioneel", + "defaultValue": "Standaard: {value}" + }, + "apiDocsTableGetRow": { + "description": "Haal een enkele rij {name} op.", + "rowId": "De unieke identifier van de rij die wordt opgevraagd." + }, + "apiDocsErrors": { + "errorCode": "Foutcode", + "name": "Naam", + "description": "Beschrijving", + "okDescription": "Verzoek succesvol afgerond.", + "badRequestDescription": "Het verzoek bevat ongeldige waarden, of de JSON kon niet worden geparseerd.", + "unauthorizedDescription": "Wanneer je een eindpunt probeert te benaderen zonder geldig token.", + "notFoundDescription": "Rij of tabel is niet gevonden.", + "requestEntityTooLargeDescription": "Het verzoek overschreed de maximaal toegestane omvang van de werkbelasting.", + "internalErrorDescription": "De server heeft een onverwachte situatie aangetroffen.", + "badGatewayDescription": "Baserow is op dit moment aan het herstarten of er is een onverwachte uitval.", + "unavailableDescription": "De server kon je verzoek niet op tijd verwerken." + }, + "apiDocsTableFields": { + "tableTitle": "{name} tabel", + "tableId": "De ID van deze tabel is:", + "description": "Elke rij in de {name} tabel bevat de volgende velden.", + "id": "ID", + "name": "Naam", + "type": "Type", + "compatibleFilters": "Compatibele filters" + }, + "apiDocsTableListRows": { + "description": "Om rijen in de *{name}* tabel op te sommen moet een `GET` verzoek worden gedaan aan het *{name}* eindpunt. Het antwoord is gepagineerd en standaard wordt de eerste pagina geretourneerd. De juiste pagina kan worden opgehaald door de `page` en `size` query parameters mee te geven.", + "page": "Bepaalt welke pagina met rijen moet worden geretourneerd.", + "size": "Bepaalt hoeveel rijen per pagina moeten worden geretourneerd.", + "userFieldNames": "Wanneer een waarde wordt opgegeven voor de `user_field_names` GET parameter, dan zullen de veldnamen die worden geretourneerd door dit eindpunt de werkelijke namen van de velden zijn.\n\n Als de `user_field_names` GET parameter niet wordt opgegeven, dan zullen alle geretourneerde veldnamen `field_` zijn, gevolgd door de id van het veld. Bijvoorbeeld `field_1` verwijst naar het veld met de id `1`.\n\n Daarnaast verandert het gedrag van de andere GET parameters `order_by`, `include` en `exclude`, als `user_field_names` is ingesteld. Zij verwachten in plaats daarvan door komma's gescheiden lijsten met de werkelijke veldnamen.", + "search": "Indien opgegeven worden alleen rijen geretourneerd met gegevens die overeenkomen met de zoekopdracht.", + "orderBy": "Optioneel kunnen de rijen worden geordend op velden gescheiden door komma's. Standaard, of indien voorafgegaan door een '+', wordt een veld geordend in oplopende (A-Z) volgorde. Door het veld vooraf te laten gaan door een '-' kan het ook in aflopende (Z-A) volgorde worden geordend.\n\n#### Met `user_field_names`:\n\n`order_by` moet een door komma's gescheiden lijst van de veldnamen zijn om op te ordenen. Als je bijvoorbeeld de volgende GET parameter `order_by=My Field,-My Field 2` opgeeft, worden de rijen geordend op het veld genaamd `My Field` in oplopende volgorde. Als sommige velden dezelfde waarde hebben, wordt die sub-set geordend op het veld genaamd `My Field 2` in aflopende volgorde.\n\nZorg ervoor dat velden met namen die beginnen met een `+` of `-` expliciet worden voorafgegaan door een andere `+` of `-`. Bijv. `+-Name`\n\n#### Zonder `user_field_names`:\n\n`order_by` moet een door komma's gescheiden lijst van `field_` zijn, gevolgd door de id van het veld waarop gerangschikt moet worden. Als u bijvoorbeeld de volgende GET parameter `order_by=field_1,-field_2` opgeeft, zullen de rijen gerangschikt worden op `field_1` in oplopende volgorde. Als sommige velden dezelfde waarde hebben, zal die sub-set gerangschikt worden op `field_2` in aflopende volgorde.", + "filter": "De rijen kunnen optioneel worden gefilterd met dezelfde filters die beschikbaar zijn voor de weergaven. Meerdere filters kunnen worden opgegeven als ze hetzelfde formaat volgen. De `field` en `filter` variabelen geven aan hoe er gefilterd moet worden en de waarde geeft aan waarop er gefilterd moet worden.\n\n Als je bijvoorbeeld de volgende GET parameter `filter__field_1__equal=test` opgeeft, dan zullen alleen rijen worden geretourneerd waar de waarde van field_1 gelijk is aan test.", + "filterLink": "Een lijst van alle filters is hier beschikbaar.", + "filterType": "- `AND`: Geeft aan dat de rijen aan alle opgegeven filters moeten voldoen.\n- `OR`: Geeft aan dat de rijen slechts aan één van de filters hoeven te voldoen.\n\n Dit werkt alleen als er twee of meer filters zijn opgegeven.", + "include": "Alle velden worden standaard opgenomen in het antwoord. U kunt een sub-set van velden selecteren om op te nemen door de include query parameter op te geven.\n\n#### Met `user_field_names`:\n\n`include` moet een door komma's gescheiden lijst zijn van veldnamen die moeten worden opgenomen in de resultaten. Als u bijvoorbeeld de volgende GET-parameter opgeeft: `include=My Field,-My Field 2` dan zullen alleen die velden worden opgenomen (tenzij ze expliciet zijn uitgesloten)\n\n#### Zonder `user_field_names`:\n\n`include` moet een door komma's gescheiden lijst zijn van `field_` gevolgd door de id van het veld dat moet worden meegenomen in de resultaten. Bijvoorbeeld: Als je de volgende GET parameter `exclude=field_1,field_2` opgeeft, dan worden alleen de velden met id `1` en id `2`meegenomen (tenzij ze expliciet worden uitgesloten).", + "exclude": "Alle velden worden standaard opgenomen in het antwoord. Je kunt een sub-set van velden selecteren voor uitsluiting door de exclude query parameter op te geven.\n\n#### Met `user_field_names`:\n\n`exclude` moet een door komma's gescheiden lijst zijn van veldnamen die moeten worden uitgesloten van de resultaten. Als je bijvoorbeeld de volgende GET-parameter opgeeft: `exclude=My Field,-My Field 2` dan zullen die velden worden uitgesloten\n\n#### Zonder `user_field_names`:\n\n`exclude` moet een door komma's gescheiden lijst zijn van `field_` gevolgd door het id van het veld dat moet worden uitgesloten van de resultaten. Bijvoorbeeld: Als je de volgende GET parameter `exclude=field_1,field_2` opgeeft, dan worden de velden met id `1` en id `2` uitgesloten.", + "viewId": "Standaard worden geen filters en sorteringen toegepast die buiten de query parameters zijn gedefinieerd. U kunt de filters en sorteringen van een view toevoegen door zijn `id` in de `view_id` GET parameter op te geven. Bijvoorbeeld, als u de volgende GET parameter `view_id=1` opgeeft, dan zullen de filters en sorteringen die zijn gedefinieerd in de view met id `1` worden toegepast. U kunt de `view_id` vinden in het context menu van een gegeven view. Het is het getal tussen haakjes achter de view naam. \n\n #### Met `filter__{field}__{filter}` \n\n Zowel het filter dat in de query parameter is opgegeven als de filters die in de view zijn gedefinieerd zullen worden toegepast.\n\n #### Met `order_by` \n\n Als `order_by` wordt meegegeven dan zal de sortering gedefinieerd in de view worden genegeerd.", + "filtersBuilder": "Open filters parameter bouwer", + "filters": "Rijen kunnen optioneel worden gefilterd met dezelfde weergavefilters die beschikbaar zijn voor de weergaven. Deze parameter accepteert een JSON geserialiseerde string met de filterboom die moet worden toegepast op deze weergave. De filterboom is een geneste structuur die de filters bevat die moeten worden toegepast. \\n\\n#### Met `user_field_names`:\\n\\nEen voorbeeld van een geldige filterboom is de volgende: `{'{'}\"filter_type\":\"AND\",\"filters\": [{'{'}\"veld\":\"Naam\",\"type\":\"gelijk\",\"waarde\":\"test\"{'}'}]{'}'}.\\n\\n#### Zonder `user_field_names`:\\n\\nAls je bijvoorbeeld optioneel de volgende GET-parameter opgeeft: `{'{'}{'{'}'filter_type': 'AND', 'filters': [{'{'}{'{'}'veld': 1, 'type': 'equal', 'value': 'test'{'}'}{'}'}{'}'}]{'}'}{'}'}`\\n\\nHoud er rekening mee dat als deze parameter wordt opgegeven, alle andere `filter__{field}__{filter}` worden genegeerd, evenals de filter_type parameter.", + "join": "Maakt het mogelijk om een lookup aan te vragen van veldwaarden uit een doeltabel via bestaande linkrijvelden. De parameternaam moet de naam zijn van een bestaand veld in een linkrij, gevolgd door __join. De waarde moet een lijst met veldnamen zijn waarvoor we extra waarden willen opzoeken. Je kunt één of meerdere doelvelden opgeven. Het is niet mogelijk om een waarde van een veld in een linkrij in de doeltabel op te zoeken.\n\n #### Met `user_field_names`:\n\n `join` moet een door komma's gescheiden lijst zijn van veldnamen die in de resultaten moeten worden opgenomen. Bijvoorbeeld: Als je de volgende GET-parameter `LinkRowField__join=MyField,MyField2` opgeeft, dan worden de waarden van `MyField` en `My Field2` in de door `LinkRowField` gekoppelde tabel opgenomen in de respons .\n\n#### Zonder `user_field_names`:\n\n `join` moet een door komma's gescheiden lijst zijn van `field_` gevolgd door het id van het veld dat in de resultaten moet worden opgenomen. Bijvoorbeeld: Als u de volgende GET-parameter `field_1__join=field_2,field_3` opgeeft, dan worden de waarden van `field_2` en `field_3` in de tabel die is gekoppeld door `field_1` opgenomen in de respons.", + "test": "`{'{'}\"filter_type\": \"AND\", \"filters\": [{'{'}\"field\": \"Name\", \"type\": \"equal\", \"value\": \"test\"{'}'}]{'}'}" + }, + "apiDocsIntro": { + "intro": "De {name} database biedt een gemakkelijke manier om de gegevens te integreren met elk extern systeem. De API volgt REST semantiek, gebruikt JSON om objecten te coderen, en is gebaseerd op standaard HTTP codes, machineleesbare en door mensen leesbare fouten om operatie-uitkomsten te signaleren.", + "autoDocDescription": "Deze documentatie wordt automatisch gegenereerd op basis van de tabellen en velden in je database. Als je wijzigingen aanbrengt in je database, tabel of velden kan het zijn dat ook de API interface is gewijzigd. Zorg er daarom voor dat je je API implementatie dienovereenkomstig bijwerkt.", + "databaseId": "De ID van deze database is:", + "jsClient": "Javascript voorbeeld API client:", + "pythonClient": "Python voorbeeld API client:" + }, + "apiDocsTableListFields": { + "description": "Om velden van de {name} tabel op te sommen moet een `GET` verzoek gedaan worden aan het eindpunt van de {name} velden. Het is alleen mogelijk om de velden op te sommen als het token rechten geeft voor lezen, aanmaken of bijwerken.", + "resultFieldProperties": "Eigenschappen resultaatveld", + "id": "Field primary key (veld met primaire sleutel). Kan worden gebruikt om de database kolomnaam te genereren door het voorvoegsel `field_` toe te voegen.", + "name": "Naam van het veld.", + "tableId": "Verwante tabel id.", + "order": "Volgorde van de velden in de tabel. 0 voor het eerste veld.", + "primary": "Geeft aan of het veld een primair veld is. Indien `waar` (true) kan het veld niet worden verwijderd en moet de waarde de hele rij vertegenwoordigen.", + "type": "Type gedefinieerd voor dit veld.", + "extraProps": "Sommige extra eigenschappen worden hier niet beschreven omdat ze type-specifiek zijn.", + "readOnly": "Geeft aan of het veld een alleen-lezen veld is. Indien waar, is het niet mogelijk de celwaarde bij te werken.", + "descriptionField": "Veldbeschrijving" + }, + "apiDocsTableDeleteRow": { + "description": "Verwijdert een bestaande {name} rij.", + "rowId": "De unieke identifier van de rij die moet worden verwijderd." + }, + "apiDocsTableMoveRow": { + "description": "Verplaatst een bestaande {name} rij voor een andere rij. Als er geen `before_id` is opgegeven, dan wordt de rij verplaatst naar het einde van de tabel.", + "rowId": "Verplaatst de rij gerelateerd aan de waarde.", + "before": "Verplaatst de rij gerelateerd aan de opgegeven `rij_id` voor de rij gerelateerd aan de opgegeven waarde. Indien niet opgegeven, dan wordt de rij naar het einde verplaatst." + }, + "apiDocsTableUpdateRow": { + "description": "Werkt een bestaande rij {name} bij.", + "rowId": "De unieke identifier van de rij die moet worden bijgewerkt.", + "before": "Indien opgegeven dan zal de nieuw aangemaakte rij voor de rij met het opgegeven id geplaatst worden." + }, + "apiDocsTableCreateRow": { + "description": "Maak een nieuwe {name} rij.", + "before": "Indien opgegeven dan zal de nieuw aangemaakte rij voor de rij met het opgegeven id geplaatst worden." + }, + "apiDocsAuth": { + "description": "Baserow gebruikt een eenvoudige authenticatie op basis van een token. Je moet ten minste één API token in je {settingsLink} genereren om de hieronder beschreven eindpunten te kunnen gebruiken. Het is mogelijk om per token rechten te geven voor lezen, aanmaken, bijwerken en verwijderen tot op tabelniveau. Je kunt je bij de API authenticeren door je API-token op te geven in de HTTP 'authorisation bearer' token header. Alle API-verzoeken moeten worden geauthenticeerd en over HTTPS worden gedaan.", + "settingsLink": "instellingen" + }, + "apiDocsFilters": { + "filter": "Filter", + "exampleValue": "Voorbeeldwaarde", + "example": "Volledig voorbeeld", + "field": "veld {name}", + "deprecated": "verouderd" + }, + "fieldTextSubForm": { + "placeholder": "Standaard tekst" + }, + "fieldSingleSelectSubForm": { + "optionsLabel": "Opties", + "defaultOptionLabel": "Standaardoptie" + }, + "fieldSingleSelectDropdown": { + "notFound": "Optie niet gevonden" + }, + "fieldDateSubForm": { + "dateFormatLabel": "Datum formaat", + "dateFormatEuropean": "Europees", + "dateFormatUS": "VS", + "dateFormatISO": "ISO", + "includeTimeLabel": "Tijd invoegen", + "timeFormatLabel": "Tijdformaat", + "24Hour": "24 uur", + "12Hour": "12 uur", + "showTimezoneLabel": "Toon tijdzone", + "forceTimezoneLabel": "Tijdzone instellen voor alle bijdragers", + "forceTimezoneValue": "Tijdzone", + "addTimezoneOffsetLabel": "Waarden converteren ({utcOffsetDiff} minuten toevoegen)", + "subTimezoneOffsetLabel": "Converteer waarden (trek {utcOffsetDiff} minuten af)" + }, + "fieldLinkRowSubForm": { + "noTable": "Je hebt minstens één andere tabel in dezelfde database nodig om naar te linken.", + "selectTableLabel": "Selecteer een tabel om naar te linken", + "hasRelatedFieldLabel": "Maak gerelateerd veld", + "limitToView": "Selectie beperken tot weergave", + "limitToViewDescription": "Merk op dat dit alleen visueel is. Het is nog steeds mogelijk om relaties te leggen buiten de weergave via de gerelateerde tabel of API.", + "allowMultipleRelations": "Meerdere relaties toestaan" + }, + "fieldSelectOptions": { + "add": "Een optie toevoegen" + }, + "fieldNumberSubForm": { + "typeLabel": "Nummertype", + "integer": "Heel getal", + "decimal": "Decimaal", + "decimalPlacesLabel": "Decimale plaatsen", + "allowNegative": "Sta negatief toe", + "separatorLabel": "Duizendtallen en decimaalscheidingsteken", + "suffixPlaceholder": "Achtervoegsel", + "prefixAndSuffixLabel": "Voorvoegsel / achtervoegsel", + "spaceComma": "Spatie, komma (1 000 000,00)", + "spacePeriod": "Spatie, punt (1 000 000.00)", + "commaPeriod": "Komma, punt (1,000,000.00)", + "periodComma": "Punt, komma (1.000.000,00)", + "prefixPlaceholder": "Voorvoegsel", + "noFormatting": "Geen opmaak", + "defaultValueLabel": "Standaardwaarde", + "defaultValuePlaceholder": "Voer een standaardwaarde in" + }, + "fieldContext": { + "editField": "Veld bewerken", + "deleteField": "Veld verwijderen", + "hideField": "Veld verbergen", + "showField": "Toon veld", + "changePrimaryField": "Primair veld wijzigen" + }, + "fieldForm": { + "name": "Naam", + "fieldAlreadyExists": "Een veld met deze naam bestaat al.", + "nameNotAllowed": "Deze veldnaam is niet toegestaan.", + "nameTooLong": "Deze veldnaam is te lang.", + "addDescription": "Beschrijving toevoegen", + "description": "Beschrijving", + "dbIndex": "Index", + "dbIndexError": "Dit veldtype kan geen index hebben. Verwijder deze voordat u het veldtype opslaat of wijzigt.", + "dbIndexDescription": "Indexeren kan de filterprestaties aanzienlijk verbeteren, maar vertraagt het maken, bijwerken en verwijderen.", + "defaultValueDisabledByConstraint": "Kan geen standaardwaarde instellen met een unieke beperking", + "dbIndexDisabledTooltip": "Indexering is niet beschikbaar voor dit veldtype." + }, + "fieldLookupSubForm": { + "noTable": "Je hebt minstens één link-rij veld nodig om een lookup veld te maken.", + "selectThroughFieldLabel": "Selecteer een link-rij veld", + "selectTargetFieldLabel": "Selecteer een veld om op te zoeken met lookup" + }, + "fieldFormulaNumberSubForm": { + "typeLabel": "Nummertype", + "integer": "Heel getal", + "decimal": "Decimaal", + "decimalPlacesLabel": "Decimale plaatsen", + "allowNegative": "Sta negatief toe" + }, + "fieldRatingSubForm": { + "maxValue": "Max", + "color": "Kleur", + "style": "Stijl" + }, + "rowCreateModal": { + "addField": "veld toevoegen" + }, + "selectRowContent": { + "search": "Zoek rijen", + "hideFields": "Velden verbergen" + }, + "rowEditModal": { + "addField": "veld toevoegen", + "showHiddenFields": "Verborgen velden weergeven", + "hideHiddenFields": "Verborgen velden verbergen" + }, + "rowEditFieldMultipleSelect": { + "addOption": "Een andere optie toevoegen" + }, + "rowEditFieldFile": { + "addFile": "Een bestand toevoegen", + "sizes": { + "0": "Bytes", + "1": "KB", + "2": "MB", + "3": "GB", + "4": "TB", + "5": "PB" + } + }, + "rowEditFieldLinkRow": { + "addLink": "Nog een link toevoegen", + "keepOnlyOneValue": "Bewaar slechts één waarde. Dit veld ondersteunt slechts één relatie. De waarde wordt bewaard als er nog maar één relatie is." + }, + "tableCSVImporter": { + "chooseFileLabel": "Kies CSV-bestand", + "chooseFileDescription": "Je kunt een bestaand CSV-bestand importeren door het .CSV-bestand met gegevens in tabelvorm te uploaden. Met de meeste spreadsheetprogramma's kun je een spreadsheet als .CSV-bestand exporteren.", + "chooseFile": "Kies CSV-bestand", + "columnSeparator": "Kolomscheidingsteken", + "recordSeparator": "record-scheidingsteken", + "unitSeparator": "unit-scheidingsteken", + "encoding": "Codering", + "firstRowHeader": "Eerste rij is header", + "limitFileSize": "De maximale bestandsgrootte is {limit}MB.", + "limitError": "Het is niet mogelijk om meer dan {limit} rijen te importeren.", + "emptyCSV": "Dit CSV-bestand is leeg." + }, + "tableForm": { + "name": "Naam" + }, + "tableXMLImporter": { + "fileLabel": "Kies XML-bestand", + "fileDescription": "Je kunt een bestaande XML importeren door het .XML-bestand met gegevens in tabelvorm te uploaden, d.w.z:", + "chooseButton": "Kies XML-bestand", + "processingError": "Er is een fout opgetreden tijdens het verwerken van XML: {errors}", + "emptyError": "Dit XML-bestand is leeg.", + "limitFileSize": "De maximale bestandsgrootte is {limit}MB.", + "limitError": "Het is niet mogelijk om meer dan {limit} rijen te importeren." + }, + "tableJSONImporter": { + "fileLabel": "Kies JSON bestand", + "fileDescription": "Je kunt een bestaand JSON-bestand importeren door het .json-bestand met gegevens in tabelvorm te uploaden, d.w.z:", + "chooseButton": "Kies JSON bestand", + "encodingLabel": "Codering", + "processingError": "Er is een fout opgetreden tijdens het parsen van JSON: {error}", + "arrayError": "Het JSON-bestand is geen array.", + "emptyError": "Dit JSON-bestand is leeg.", + "limitFileSize": "De maximale bestandsgrootte is {limit}MB.", + "limitError": "Het is niet mogelijk om meer dan {limit} rijen te importeren." + }, + "tablePasteImporter": { + "pasteLabel": "Plak de tabeldata", + "pasteDescription": "Je kunt de cellen uit een spreadsheet kopiëren en ze hieronder plakken.", + "firstRowHeader": "Eerste rij is header", + "limitError": "Het is niet mogelijk om meer dan {limit} rijen te importeren." + }, + "importFileModal": { + "title": "Nieuwe tabel maken", + "importLabel": "Wil je bestaande gegevens importeren?", + "newTable": "Begin met een nieuwe tabel", + "addButton": "Tabel toevoegen", + "uploading": "Uploaden...", + "preparing": "Voorbereiden van data...", + "showReport": "Foutrapport tonen", + "reportTitleFailure": "Mislukte rijen", + "openCreatedTable": "Open aangemaakte tabel", + "reportTitleSuccess": "Import succesvol, maar...", + "importError": "Er is iets misgegaan tijdens het importeren van het bestand", + "stateRowCreation": "Importeren...", + "reportMessage": "De volgende rij indexen konden niet worden geïmporteerd:", + "stateCreateTable": "Tabel maken...", + "statePreValidation": "Valideren van gegevens...", + "additionalImportTitle": "Importeren in {table}", + "showTable": "toon tabel", + "importButton": "Importeren", + "fieldMappingTitle": "Veld vertaling", + "fieldMappingDescription": "Wij hebben de kolommen van de Baserow-velden in uw tabel automatisch toegewezen. U kunt ze hieronder wijzigen. Elke niet-compatibele cel zal leeg blijven na de import.", + "selectImportMessage": "Selecteer gegevens om te importeren.", + "filePreview": "Voorbeeld van bestandsinhoud", + "importPreview": "Importvoorbeeld", + "changeImporterType": "Importtype wijzigen", + "defaultName": "Tabel", + "useUpsertField": "Rijen bijwerken als ze al bestaan", + "upsertTooltip": "Overeenkomen met bestaande rijen met behulp van een uniek veld om gegevens met geïmporteerde waarden te overschrijven." + }, + "formulaAdvancedEditContext": { + "textAreaFormulaInputPlaceholder": "Klik om de formule te bewerken", + "fields": "Velden", + "functions": "Functies", + "operators": "Operators", + "fieldType": "Een {type} veld" + }, + "fieldFormulaInitialSubForm": { + "formulaInputPlaceholder": "Klik om de formule te bewerken", + "refreshFormulaOptions": "Formule-opties vernieuwen" + }, + "formulaFieldItemDescription": { + "syntax": "Syntax", + "examples": "Voorbeelden" + }, + "viewSearchContext": { + "searchInRows": "Zoeken in alle rijen", + "hideNotMatching": "verberg rijen die niet overeenkomen" + }, + "viewsContext": { + "searchView": "Zoek weergaven", + "noViews": "Geen weergaven gevonden", + "collaborative": "Samenwerkend" + }, + "viewFilterTypeLinkRow": { + "unnamed": "onbenoemde rij {value}", + "choose": "Kies rij" + }, + "viewFilterContext": { + "addFilter": "Filter toevoegen", + "disableAllFilters": "alle filters uitgeschakeld", + "noFilterTitle": "Je hebt nog geen filter aangemaakt", + "noFilterText": "Met filters kun je rijen tonen die aan je voorwaarden voldoen.", + "where": "Waar", + "and": "En", + "or": "Of", + "relatedFieldNotFound": "Het gerelateerde veld is niet gevonden.", + "filterTypeNotFound": "Het filtertype is niet compatibel.", + "noCompatibleFilterTypesErrorTitle": "Geen compatibele filtertypes", + "noCompatibleFilterTypesErrorMessage": "Geen van uw velden heeft een compatibel filtertype", + "addFilterGroup": "Filtergroep toevoegen" + }, + "viewFilterTypeFileTypeDropdown": { + "image": "afbeelding", + "document": "document" + }, + "createViewModal": { + "createNew": "Nieuwe {view} aanmaken", + "add": "{view} toevoegen" + }, + "shareViewLink": { + "shareView": "Deel {viewTypeSharingLinkName}", + "shareViewTitle": "Maak een deelbare privé-link naar de {viewTypeSharingLinkName}", + "sharedViewTitle": "Deze {viewTypeSharingLinkName} wordt momenteel gedeeld via een privé-link", + "sharedViewDescription": "Mensen die de link hebben kunnen de {viewTypeSharingLinkName} zien.", + "disableLink": "gedeelde link uitschakelen", + "generateNewUrl": "nieuwe url genereren", + "copyURL": "URL kopiëren", + "ChangePassword": "Verander", + "EnablePassword": "Toegang beperken met een wachtwoord", + "DisablePassword": "Toegang is beveiligd met een wachtwoord", + "shareViewText": "Met een privé-deelbare link kan iedereen de gegevens in deze weergave bekijken.", + "shareViewLinkTitle": "Een privé link maken", + "notSharedYetText": "Laat iedereen de gegevens in deze weergave zien of sync gebeurtenissen met je externe agenda.", + "createPrivateLink": "Een privé link maken" + }, + "viewSortContext": { + "noSortTitle": "Je hebt nog geen sortering", + "noSortText": "Met sorteren kun je rijen op een veld sorteren.", + "sortBy": "Sorteer op", + "thenBy": "Dan op", + "addSort": "kies een veld om op te sorteren" + }, + "viewSort": { + "sort": "Sorteren | 1 Sorteren | {count} Sorteren" + }, + "viewRotateSlugModal": { + "title": "URL vernieuwen", + "refreshWarning": "Weet je zeker dat je de URL van {viewName} wilt vernieuwen? Na het vernieuwen wordt een nieuwe URL gegenereerd. Het is dan niet mogelijk om de {viewTypeSharingLinkName} via de oude URL te benaderen. Iedereen waarmee je de URL gedeeld heeft, is dan niet in staat om de {viewTypeSharingLinkName} te benaderen.", + "generateNewURL": "Nieuwe URL genereren" + }, + "viewFieldsContext": { + "coverField": "Voorbladveld", + "noCover": "Geen voorblad", + "search": "Zoekvelden", + "hideAll": "Alles verbergen", + "showAll": "Alles tonen" + }, + "viewFilterTypeBoolean": { + "selected": "Geselecteerd" + }, + "viewFilter": { + "filter": "Filter | 1 Filter | {count} Filters", + "hasAllValuesEqual": "heeft alle waarden gelijk", + "hasNotValueHigherThan": "geen hogere waarde heeft dan", + "hasNotValueHigherThanOrEqual": "heeft geen waarde hoger dan of gelijk aan", + "hasValueLowerThan": "heeft een waarde lager dan", + "hasValueLowerThanOrEqual": "heeft waarde lager dan of gelijk aan", + "hasValueHigherThanOrEqual": "heeft een waarde hoger dan of gelijk aan", + "hasNotValueLowerThan": "geen lagere waarde heeft dan", + "hasValueHigherThan": "heeft een waarde hoger dan", + "hasNotValueLowerThanOrEqual": "geen waarde heeft die lager is dan of gelijk is aan" + }, + "viewContext": { + "exportView": "Weergave exporteren", + "renameView": "Weergave hernoemen", + "deleteView": "Weergave verwijderen", + "webhooks": "Webhooks", + "duplicateView": "View dupliceren", + "importFile": "Bestand importeren", + "toPersonal": "Naar persoonlijk", + "toCollaborative": "Naar gedeeld" + }, + "deleteViewModal": { + "title": "Verwijder {name}", + "description": "Weet je zeker dat je de weergave {name} wilt verwijderen? De tabelgegevens blijven bewaard, maar de filters, sorteringen en veldbreedtes met betrekking tot de weergave worden verwijderd.", + "delete": "Weergave verwijderen" + }, + "viewForm": { + "name": "Naam", + "whoCanEdit": "Wie kan bewerken" + }, + "galleryViewHeader": { + "customizeCards": "Kaarten aanpassen" + }, + "gridViewHide": { + "hideField": "Velden verbergen | 1 verborgen veld | {count} verborgen velden" + }, + "gridViewFieldType": { + "createFilter": "Filter maken", + "sortField": "Sorteren", + "hideField": "Veld verbergen", + "insertLeft": "Links invoegen", + "insertRight": "Rechts invoegen", + "duplicate": "Dupliceer veld", + "dataSyncField": "Het veld is alleen-lezen en maakt deel uit van de data sync van de tabel.", + "noWriteValues": "Wijzigingen in dit veld zijn beperkt.", + "dataSyncFieldTwoWaySync": "Het veld wordt gesynchroniseerd met de gegevenssynchronisatie van de tabel." + }, + "gridViewRow": { + "rowNotMatchingFilters": "Rij komt niet overeen met filters", + "rowNotMatchingSearch": "Rij komt niet overeen met zoekopdracht", + "rowHasMoved": "Rij is verplaatst" + }, + "gridView": { + "insertRowAbove": "Rij hierboven invoegen", + "insertRowBelow": "Voeg rij hieronder in", + "enlargeRow": "Vergroot rij", + "deleteRow": "Rij verwijderen", + "rowCount": "Geen rijen | 1 rij | {count} rijen", + "duplicateRow": "Rij dupliceren", + "selectRow": "Rij selecteren", + "deleteRows": "Rijen verwijderen", + "copyCells": "Kopieer cellen", + "hiddenRowsInsertedMessage": "{number} nieuw toegevoegde rijen zijn toegevoegd, maar zijn niet zichtbaar vanwege de actieve filters.", + "hiddenRowsInsertedTitle": "Rijen toegevoegd", + "copiedRowURLMessage": "De URL van rij {id} is gekopieerd naar je klembord.", + "copiedRowURL": "Rij URL gekopieerd.", + "copyRowURL": "URL van rij kopiëren", + "tooManyItemsTitle": "Te veel items", + "tooManyItemsDescription": "Het is niet mogelijk om meer dan {limit} rijen tegelijk bij te werken, dus we hebben alleen de eerste bijgewerkt.", + "generateCellsValues": "Genereer waardes met AI", + "AIValuesGenerationErrorTitle": "AI-waardegeneratie mislukt", + "AIValuesGenerationErrorMessage": "Controleer alsjeblieft je API_KEY en controleer het geselecteerde model.", + "copyCellsWithHeader": "Cellen met koptekst kopiëren", + "generateAllAiValues": "Genereer alle AI-waarden" + }, + "gridViewFieldLinkRow": { + "unnamed": "onbenoemde rij {value}", + "keepOnlyOneValue": "Slechts één waarde behouden" + }, + "gridViewIdentifierOptions": { + "id": "Rij identificatie", + "count": "Tellen" + }, + "previewAny": { + "externalWarning": "Als je een bestand opent via een externe dienst, wordt je bestand blootgesteld aan hun servers." + }, + "exportTableModal": { + "failedTitle": "Export mislukt", + "failedDescription": "De export is mislukt door een serverfout.", + "cancelledTitle": "Export Geannuleerd", + "cancelledDescription": "De export werd geannuleerd.", + "title": "Exporteer {name}" + }, + "exporterTypeChoices": { + "formatLabel": "Naar welk formaat wil je exporteren?" + }, + "exportTableForm": { + "viewLabel": "Selecteer de weergave die je wil exporteren:", + "typeError": "Geen exporttype beschikbaar, kies een andere weergave of een volledige tabel." + }, + "exportTableLoadingBar": { + "export": "Exporteren", + "download": "Downloaden" + }, + "exportTableDropdown": { + "exportEntireTable": "Volledige tabel exporteren" + }, + "tableCSVExporter": { + "columnSeparatorLabel": "Kolomscheidingsteken", + "recordSeparator": "record-scheidingsteken", + "unitSeparator": "unit-scheidingsteken", + "encodingLabel": "Codering", + "firstRowIsHeaderLabel": "Eerste rij is header", + "includeHeader": "Veldnamen opnemen als koptekst" + }, + "apiDocsDatabase": { + "pageTitle": "{name} database API documentatie", + "back": "Terug naar dashboard", + "openDatabase": "open databank" + }, + "apiDocsComponent": { + "title": "REST-API", + "intro": "Nadat je je databankschema en API-sleutel hebt aangemaakt in de {settingsLink}, biedt je Baserow database zijn eigen REST API endpoints voor het aanmaken, lezen, bijwerken en verwijderen van rijen.", + "settings": "instellingen", + "selectApplicationTitle": "Voor welke database wilt je de documentatie zien?", + "signIn": "Log in om te beginnen", + "back": "Terug naar dashboard" + }, + "viewAggregationType": { + "emptyCount": "Leeg", + "notEmptyCount": "Gevuld", + "emptyPercentage": "Percentage leeg", + "notEmptyPercentage": "Percentage gevuld", + "latestDate": "Laatste datum", + "checkedPercentage": "Percentage aan", + "sum": "Som", + "earliestDateShort": "Vroegste", + "min": "Min", + "max": "Max", + "latestDateShort": "Laatste", + "uniqueCount": "Uniek", + "average": "Gemiddelde", + "variance": "Variantie", + "checkedCount": "Aangevinkt", + "notCheckedPercentage": "Percentage uit", + "notCheckedCount": "Uitgevinkt", + "earliestDate": "Vroegste datum", + "median": "Mediaan", + "stdDev": "Standaardafwijking", + "stdDevShort": "Std dev", + "count": "Tellen", + "distribution": "Distributie", + "othersCount": "Anderen" + }, + "databaseForm": { + "importLabel": "Wilt u bestaande gegevens importeren?", + "emptyLabel": "Begin leeg", + "airtableLabel": "Importeren uit Airtable (beta)" + }, + "importFromAirtable": { + "airtableShareLinkTitle": "Deel een link naar je Base", + "airtableShareLinkDescription": "Om uw Airtable basis te importeren, moet u een gedeelde link hebben naar uw volledige basis. In Airtable, klik op de share knop in de rechter bovenhoek na het openen van uw basis. Daarna moet u de optie \"Access to base\" kiezen. In de share-modal kunt u klikken op de \"Create a shared link to the whole base\" knop en vervolgens op \"Private read-only link\". Kopieer de publieke link en plak deze in de onderstaande invoer.", + "airtableShareLinkBeta": "Houd er rekening mee dat deze functie in bèta is, uw tabellen, velden (behalve formule, opzoeken en tellen) en gegevens worden geïmporteerd. Uw weergaven worden niet geïmporteerd.", + "airtableShareLinkPaste": "Plak de link hier", + "importButtonLabel": "Importeren uit Airtable", + "openButtonLabel": "Geïmporteerde database openen", + "importError": "Er is iets fout gegaan", + "statePending": "Wachten om te beginnen", + "stateFailed": "Mislukt", + "stateFinished": "Afgerond", + "stateDownloadingBase": "Basisschema downloaden", + "stateConverting": "Omzetten naar Baserow", + "stateDownloadingFiles": "Bestanden downloaden", + "stateImporting": "Importeren", + "stateImportingTable": "Importeren van tabel {table}", + "errorJobAlreadyRunningTitle": "Al bezig", + "errorJobAlreadyRunningDescription": "Er loopt al een andere import taak. U moet wachten tot die klaar is voordat u een andere start.", + "linkError": "De link moet er als volgt uitzien: https://airtable.com/shrxxxxxxxxxxxxxx", + "skipFiles": "Bestanden importeren overslaan", + "skipFilesHelper": "Een Airtable base met veel bestanden kan het importeren vertragen. Als je dit inschakelt, wordt het importeren van de bestanden overgeslagen.", + "sessionLabel": "Sessiecookie (__Host-airtable-session)", + "sessionDescription": "Als de import antwoordt met \"The Airtable base requires authentication.\", dan kan het zijn dat de organisatorische instellingen in Airtable de toegang tot de Airtable-basis verhinderen zonder eerst te authenticeren. Om dit te doen, moeten de sessie en handtekening handmatig worden geëxtraheerd. Bezoek de URL van de publiekelijk gedeelde basis in uw browser en meld u aan, indien nodig. Klik op het applicatiemenu door in de rechterbovenhoek te klikken -> \"More tools\" -> \"Developer tools\"\". Open het tabblad \"Toepassing\" (in Firefox \"Opslag\") en klik op \"https://airtable.com\". Zoek nu de cookiewaarden \"__Host-airtable-session\" en \"__Host-airtable-session.sig\" en plak deze in de onderstaande ingangen.", + "useSession": "Sessie-authenticatie", + "useSessionHelper": "Gebruik dit als de publiekelijk gedeelde basis verificatie vereist.", + "sessionSignatureLabel": "Cookie voor sessiehandtekening (__Host-airtable-session.sig)" + }, + "chooseSingleSelectField": { + "addSelectField": "enkelvoudig keuzeveld toevoegen", + "warningWhenNothingToChooseOrCreate": "Er zijn geen enkele selectie velden om uit te kiezen en u hebt geen machtigingen om er een te maken." + }, + "viewDecorator": { + "decorator": "Kleur | 1 Kleur | {tellen} Kleuren" + }, + "viewDecoratorContext": { + "addDecorator": "decoratie toevoegen" + }, + "shareViewEnablePasswordModal": { + "newPasswordTitle": "Voer een wachtwoord in", + "newPasswordSave": "Stel een wachtwoord in", + "changePasswordTitle": "Wijzig wachtwoord", + "changePasswordDescription": "Door het wachtwoord te wijzigen, zal het vorige niet meer werken. Dit wachtwoord wordt versleuteld opgeslagen.", + "changePasswordSave": "Wijzig wachtwoord", + "newPasswordDescription": "De openbare link is alleen toegankelijk na het invoeren van het wachtwoord. Dit wachtwoord wordt versleuteld opgeslagen." + }, + "shareViewDisablePasswordModal": { + "title": "Wachtwoordbeveiliging uitschakelen", + "description": "Weet u zeker dat u de wachtwoordbeveiliging voor deze openbare link wilt uitschakelen? Door uit te schakelen, wordt het wachtwoord verwijderd en is het niet mogelijk om het te herstellen", + "disable": "Uitschakelen" + }, + "publicViewAuthLogin": { + "title": "Deze pagina is beveiligd met een wachtwoord", + "description": "Voer het juiste wachtwoord in om toegang te krijgen tot de pagina.", + "enter": "Ga naar", "error": { - "title": "Fout opgetreden", - "message": "Er is een fout opgetreden tijdens het ophalen van de aangrenzende rij" + "incorrectPasswordTitle": "Onjuist wachtwoord", + "incorrectPasswordText": "Het opgegeven wachtwoord is onjuist." } - } + }, + "apiDocsTableDeleteRows": { + "description": "Verwijdert bestaande {name} rijen.", + "items": "Een array van rij-ids die moeten worden verwijderd." + }, + "apiDocsTableUpdateRows": { + "description": "Werkt bestaande {name} rijen bij.", + "id": "De rij id." + }, + "apiDocsTableCreateRows": { + "description": "Maak nieuwe {name} rijen.", + "before": "Indien meegegeven dan zullen de nieuw aangemaakte rijen voor de rij met het meegegeven id geplaatst worden." + }, + "importer": { + "decoding": "Gegevens decoderen", + "loading": "Bestand laden", + "inProgress": "In uitvoering...", + "parsing": "Gegevens parseren", + "preparing": "Gegevens voorbereiden", + "fieldDefaultName": "Veld {count}" + }, + "databaseDashboardSidebarLinks": { + "apiDocumentation": "API-documentatie" + }, + "formViewField": { + "required": "verplicht", + "showWhenMatchingConditions": "tonen wanneer aan de voorwaarden is voldaan", + "addCondition": "Voorwaarde toevoegen", + "descriptionPlaceholder": "Beschrijving", + "addConditionGroup": "Voorwaarde groep toevoegen", + "showFieldAs": "Toon veld als", + "includeAllSelectOptionsHelper": "Kies de keuzes die in het formulier moeten worden opgenomen met behulp van deze dropdown", + "noSelectOptions": "Er zijn geen keuzes beschikbaar.", + "includeAllSelectOptions": "inclusief alle keuzes", + "noCollaboratorsAvailable": "Er zijn geen medewerkers beschikbaar.", + "cannotSumitValues": "Dit veld is alleen-lezen en wordt niet weergegeven in het formulier." + }, + "duplicateFieldContext": { + "duplicate": "Dupliceer veld", + "cloneData": "Gegevens kopiëren", + "soon": "Binnenkort beschikbaar", + "readOnlyField": "De celwaarden worden automatisch ingevuld." + }, + "formViewMeta": { + "includeRowId": "Gebruik {row_id} om de nieuw aangemaakte rij id in de URL op te nemen." + }, + "snapshotsModal": { + "title": "snapshots", + "description": "Snapshots zijn een volledige kopie van uw database van het moment waarop ze werden aangemaakt. Een duplicaat van die gegevens wordt gemaakt bij het terugzetten. Snapshots worden na een jaar automatisch verwijderd.", + "descriptionLimits": "U kunt een maximum aan {n} snapshots per werkruimte hebben. | U kunt een maximum van {n} snapshot per werkruimte hebben. | U kunt een maximum aan {n} snapshots per werkruimte hebben.", + "reset": "Maak een andere", + "limitReached": "Het limiet van het maximum aantal snapshots is bereikt.", + "snapshotDeletedErrorMessage": "De momentopname kon niet worden verwijderd. probeer het later opnieuw.", + "snapshot": "Snapshot", + "snapshotRestoredErrorTitle": "Fout opgetreden", + "createLabel": "Maak een nieuwe snapshot", + "create": "Snapshot maken", + "snapshotRestoredErrorMessage": "De snapshot kan niet worden hersteld. probeer het later opnieuw.", + "snapshotDeletedErrorTitle": "Fout opgetreden", + "importingState": "Maken", + "cancel": "Annuleren", + "noSnapshots": "Er zijn nog geen snapshots voor deze applicatie.", + "nameAlreadyExists": "Er bestaat al een snapshot met deze naam." + }, + "deleteSnapshotModal": { + "title": "Snapshot verwijderen", + "content": "Weet u zeker dat u momentopname {name} permanent wilt verwijderen?", + "confirm": "Verwijderen" + }, + "snapshotListItem": { + "delete": "verwijderen", + "created": "gemaakt", + "restore": "herstellen" + }, + "table": { + "chooseView": "Kies weergave", + "adjacentRow": { + "notification": { + "notFound": { + "previous": { + "message": "Er is geen vorige rij", + "title": "Geen rijen meer" + }, + "next": { + "title": "Geen rijen meer", + "message": "Er is geen volgende rij" + } + }, + "error": { + "title": "Fout opgetreden", + "message": "Er is een fout opgetreden tijdens het ophalen van de aangrenzende rij" + } + }, + "toast": { + "notFound": { + "next": { + "title": "Geen rijen meer", + "message": "Er is geen volgende rij" + }, + "previous": { + "title": "Geen rijen meer", + "message": "Er is geen vorige rij" + } + }, + "error": { + "title": "Fout opgetreden", + "message": "Er is een fout opgetreden tijdens het ophalen van de aangrenzende rij" + } + } + } + }, + "fieldmultipleCollaboratorsDropdown": { + "notFound": "Medewerker niet gevonden" + }, + "formViewModeType": { + "form": "Formulier", + "formDescription": "Alle velden zijn zichtbaar en verticaal gestapeld." + }, + "formViewHeader": { + "mode": "Modus", + "preview": "Voorbeeld", + "fields": "Velden" + }, + "rowEditFieldMultipleCollaborators": { + "addCollaborator": "Een medewerker toevoegen" + }, + "formViewModePreviewForm": { + "addCoverImage": "Een omslagafbeelding toevoegen", + "addLogo": "Logo toevoegen", + "noFields": "Dit formulier heeft nog geen velden. Klik op een veld in de linker zijbalk om er een toe te voegen.", + "descriptionPlaceholder": "Beschrijving", + "titlePlaceholder": "Titel", + "noFieldsTitle": "Dit formulier heeft geen velden", + "noFieldsContent": "Klik op een veld in de linkerzijbalk om er een toe te voegen." + }, + "gridViewFieldFile": { + "dropHere": "Laat hier los", + "dropFileHere": "Laat bestanden hier los" + }, + "apiDocsUploadFile": { + "file": "De `file` multipart met de inhoud van het bestand.", + "description": "Upload een bestand naar Baserow door de inhoud van het bestand direct te uploaden. Er wordt een `file` multipart verwacht met de inhoud van het bestand. Het antwoord kan vervolgens worden gebruikt om [een bestand naar een rij te uploaden]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row)." + }, + "apiDocsUploadFileViaURL": { + "url": "De URL die Baserow namens u moet downloaden en uploaden.", + "description": "Upload een bestand naar Baserow door het te downloaden van de opgegeven URL. Het antwoord kan vervolgens worden gebruikt om [een bestand naar een rij te uploaden]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row)." + }, + "duplicateTableJobType": { + "duplicatedTitle": "Tabel dupliceerd", + "duplicating": "Dupliceren", + "name": "Dupliceer tabel" + }, + "fileField": { + "errorEmptyFileNameMessage": "U kunt geen lege naam voor een bestand instellen.", + "errorEmptyFileNameTitle": "Ongeldige bestandsnaam" + }, + "viewOwnershipType": { + "collaborative": "Samenwerkend", + "personal": "Persoonlijk", + "collaborativeDescription": "Iedereen kan alle data zien en de eigenschappen veranderen als ze toestemming hebben." + }, + "gridViewRowsAddContext": { + "title": "Maak meerdere rijen", + "choice": "Voeg {rijAmountChoice} rijen toe" + }, + "fieldRollupSubForm": { + "label": "Rollup functie", + "selectTargetFieldLabel": "Selecteer een veld om op te rollen" + }, + "fieldSelectThroughFieldSubForm": { + "noTable": "Je hebt minstens één link naar tabel nodig om dit veld te creëren.", + "selectThroughFieldLabel": "Selecteer een link naar tabel veld" + }, + "apiDocsFiltersBuilderModal": { + "userFieldNames": "Veldnamen gebruikers", + "json": "JSON", + "title": "Filters parameter bouwer", + "queryParameter": "Query-parameters" + }, + "viewGroupBy": { + "groupBy": "Groep | Groep bij 1 veld | Groep per {aantal} velden" + }, + "rowHistorySidebar": { + "you": "Jij", + "name": "Geschiedenis", + "empty": "Nog geen wijzigingen. Wijzigingen in deze rij kun je hier volgen.", + "created": "deze rij is aangemaakt", + "updated": "deze rij is bijgewerkt", + "submitted": "deze rij is ingediend", + "restored": "deze rij is hersteld", + "createdUndo": "rij maken ongedaan maken", + "updatedUndo": "rij update ongedaan maken", + "deletedUndo": "rij verwijderen ongedaan maken", + "deleted": "deze rij is verwijderd" + }, + "viewGroupByContext": { + "groupBy": "Groepeer op", + "thenBy": "Dan door", + "addGroupBy": "kies een veld om op te sorteren", + "noGroupByTitle": "Je hebt nog geen groepen gemaakt", + "noGroupByText": "Groepeer rijen op een veld." + }, + "collaboratorAddedToRowNotification": { + "title": "{sender} heeft u toegewezen aan {fieldName} in rij {rowId} in {tableName}", + "deletedUser": "Een verwijderde gebruiker", + "unknownUser": "Een onbekende gebruiker" + }, + "fieldCollaboratorSubForm": { + "notifyUserWhenAdded": "Gebruiker op de hoogte stellen wanneer toegevoegd" + }, + "viewFieldConditionsForm": { + "addCondition": "Voorwaarde toevoegen", + "addConditionGroup": "Voorwaarde groep toevoegen" + }, + "formSubmittedNotification": { + "title": "{formName} is verstuurd in tabel {tableName}:", + "moreValues": "0 | en nog 1 veld. | en {count} meer velden." + }, + "fieldDurationSubForm": { + "durationFormatLabel": "Duur format" + }, + "fieldPasswordSubForm": { + "description": "Het is nog niet mogelijk om direct iets te doen met het wachtwoordveld, dit wordt alleen gebruikt door de gebruikersauthenticatie in de applicatiebouwer.", + "allowEndpointAuthentication": "API endpoint authenticatie toestaan", + "allowEndpointAuthenticationHelp": "Dit stelt een eindpunt beschikbaar waar de rij-ID en het wachtwoord kunnen worden gecontroleerd op juistheid. Hierdoor kan Baserow worden gebruikt als backend voor authenticatie." + }, + "rowEditFieldPassword": { + "setPassword": "Stel een wachtwoord in" + }, + "rowHistoryFieldPassword": { + "passwordSet": "Het wachtwoord is ingesteld", + "passwordUpdated": "Het wachtwoord is bijgewerkt", + "passwordDeleted": "Het wachtwoord is verwijderd" + }, + "fieldLongTextSubForm": { + "enableRichTextFormatting": "Opmaak met rijke tekst inschakelen" + }, + "dataProviderTypes": { + "fieldsName": "Velden" + }, + "userMentionInRichTextFieldNotification": { + "title": "{sender} heeft u vermeld in veld {fieldName} van rij {rowId} in {tableName}", + "deletedUser": "Een verwijderde gebruiker" + }, + "databaseScratchTrackStep": { + "teamsRow2": "HR", + "addYourOwn": "Voeg je eigen toe", + "tableName": "Tabel naam", + "rowName": "Naam rij", + "projects": "Projecten", + "thisIncludes": "Dit omvat:", + "productsRow1": "Rebranding website", + "productsRow3": "Betaalde advertentiecampagne", + "productsRow2": "Klantonderzoek", + "teams": "Teams", + "teamsRow1": "Verkoop", + "teamsRow3": "Marketing", + "tasksRow3": "Blogbericht schrijven", + "tasks": "Taken", + "tasksRow1": "Logo herontwerp", + "tasksRow2": "Stuur e-mail", + "campaignsRow2": "Loyaliteit beloningen", + "campaigns": "Campagnes", + "campaignsRow1": "Zomer uitverkoop", + "campaignsRow3": "Herlancering merk", + "title": "Wat wil je bijhouden?", + "description": "Kies uit populaire use cases of maak je eigen." + }, + "databaseStep": { + "airtable": "Van Airtable", + "import": "Van bestand", + "title": "Je eerste database maken", + "description": "Laat ons weten waar je aan werkt.", + "databaseNameLabel": "Database naam", + "scratch": "Uit het niets", + "template": "Template", + "databaseNamePrefill": "{name}'s database", + "workspaceName": "{name}'s werkruimte" + }, + "databaseImportStep": { + "description": "Verplaats je gegevens naar Baserow, in slechts een paar klikken.", + "tableNameLabel": "Tabel naam", + "title": "Importeer je gegevens", + "tableNamePrefill": "{name}'s tabel" + }, + "ViewFilterTypeDateUpgradeToMultiStep": { + "migrateButtonText": "Migreren naar meerstaps datumfilter", + "migrateButtonTooltip": "Nieuw filter beschikbaar. Klik om te upgraden. Het werkt hetzelfde." + }, + "formViewMetaControls": { + "whenSubmittedLabel": "Wanneer het formulier is verzonden", + "showMessage": "Een bericht weergeven", + "theURL": "De URL", + "theMessage": "Het bericht", + "urlRedirect": "Doorverwijzen naar URL" + }, + "databaseDashboardResourceLinks": { + "title": "API-documentatie", + "description": "Leer meer over onze code" + }, + "changePrimaryFieldModal": { + "title": "Wijzig het primaire veld", + "change": "Wijzig", + "primaryFieldLabel": "Primair veld", + "existingPrimary": "\"{name}\" is momenteel het primaire veld." + }, + "databaseScratchTrackFieldsStep": { + "campaignsDetailsRow1": "Laat je besparingen oplopen met onze zinderende zomeruitverkoop, met onverslaanbare kortingen op al je favoriete producten!", + "campaignsDetailsRow2": "Verhoog de klantenbinding en -betrokkenheid met ons verleidelijke loyaliteitsbeloningsprogramma, ontworpen om uw meest toegewijde klanten te belonen.", + "campaignsDetailsRow3": "Blaas je bedrijf nieuw leven in en verleid je publiek met een dynamische merkherlancering die perfect aansluit bij de huidige markttrends en klantwensen.", + "customFieldsDescriptionRow1": "Turpis massa tincidunt dui ut ornare lectus sit amet est.", + "customFieldsDescriptionRow2": "Vitae justo eget magna fermentum iaculis eu non diam.", + "customFieldsDescriptionRow3": "Convallis tellus id interdum velit laoreet id donec ultrices tincidunt.", + "title": "Kies velden voor elke rij", + "description": "Kies maximaal {selectedFieldsLimitCount} velden. Je kunt er later meer toevoegen.", + "fieldName": "Naam", + "fieldType": "Type veld", + "fieldDescription": "Beschrijving", + "fieldDetails": "Details", + "fieldNumber": "Nummer", + "fieldDate": "Datum", + "fieldBoolean": "Afgerond", + "fieldDuration": "Duur", + "fieldUrl": "URL", + "fieldEmail": "E-mail", + "projectsCategoryDesign": "Ontwerp", + "projectsNotesRow1": "Acme is op zoek naar een complete rebranding van hun website met de volgende richtlijnen.", + "fieldCategory": "Categorie", + "fieldDueDate": "Vervaldatum", + "fieldBudget": "Budget", + "fieldCompleted": "Voltooid", + "fieldRole": "Rol", + "fieldNotes": "Opmerkingen", + "fieldEstimatedDays": "Geschatte dagen", + "fieldEndDate": "Einddatum", + "projectsCategoryDevelopment": "Ontwikkeling", + "projectsNotesRow3": "Ik vraag me af of dit de moeite waard is na de Facebook-advertentieboycot. Studies tonen aan dat betaalde advertentiecampagnes steeds minder effectief worden.", + "teamsRoleDesigner": "Ontwerper", + "teamsRoleDeveloper": "Ontwikkelaar", + "teamsRoleMarketer": "Marketeer", + "tasksDetailsRow2": "De structuur klopt niet helemaal, dus misschien moeten we de sitemap hier ook aanpassen.", + "fieldRating": "Beoordeling", + "fieldKickoffDate": "Aftrapdatum", + "fieldPhone": "Telefoon", + "fieldActive": "Actief", + "fieldStartDate": "Startdatum", + "projectsCategoryMarketing": "Marketing", + "projectsNotesRow2": "Onderzoek of de huidige gebruikers van Soylent geïnteresseerd zijn in een nieuw gebruikersportaal.", + "tasksDetailsRow1": "Het logo moet worden verbeterd om de CTA duidelijker te maken.", + "tasksDetailsRow3": "De nieuwe voettekst moet onze contactgegevens bevatten en ook een kleine (maar duidelijke) CTA." + }, + "createTableModal": { + "title": "Nieuwe tabel maken", + "importLabel": "Wil je bestaande gegevens importeren?", + "defaultName": "Tabel", + "newTable": "Begin met een nieuwe tabel" + }, + "createTable": { + "showTable": "toon tabel", + "addButton": "Tabel toevoegen", + "uploading": "Uploaden...", + "stateRowCreation": "Importeren...", + "statePreValidation": "Valideren van gegevens...", + "importError": "Er is iets misgegaan tijdens het importeren van het bestand", + "preparing": "Voorbereiden van data...", + "stateCreateTable": "Tabel maken..." + }, + "importErrorReport": { + "reportTitleFailure": "Mislukte rijen", + "reportTitleSuccess": "Import succesvol, maar...", + "reportMessage": "De volgende rij indexen konden'niet worden geïmporteerd:" + }, + "dataSyncType": { + "icalCalendar": "Sync iCal feed", + "syncError": "Sync-fout", + "postgresql": "PostgreSQL tabel synchroniseren" + }, + "iCalCalendarDataSync": { + "name": "iCal URL", + "description": "De iCal kalendersynchronisatie synchroniseert automatisch met de items in het kalenderbestand van de URL. Het ondersteunt alleen het ICS-bestandstype (Internet Calendar and Scheduling)." + }, + "createDataSync": { + "fields": "Selecteer de velden die je wilt synchroniseren", + "create": "Tabel maken en synchroniseren", + "error": "Er is iets misgegaan tijdens de synchronisatie", + "next": "Volgende", + "autoAddLabel": "Automatisch nieuwe eigenschappen toevoegen", + "autoAddHelper": "Voegt automatisch nieuw beschikbare eigenschappen toe aan de tabel en synchroniseert deze. Merk op dat om dit te laten werken, alle eigenschappen gesynchroniseerd moeten zijn.", + "twoWaySyncLabel": "Bidirectionele synchronisatie" + }, + "syncTableModal": { + "title": "Sync {name}", + "sync": "Sync tabel", + "hide": "Verberg", + "description": "Deze tabel is gekoppeld aan een gegevenssynchronisatie. Wanneer je op de sync knop klikt, worden de gegevens gesynchroniseerd met de bron. Tijdens dit proces wordt een slot geplaatst op de bijgewerkte rijen, wat API verzoeken of tabelwijzigingen tijdelijk kan vertragen." + }, + "gridViewRowHeight": { + "name": "Hoogte", + "small": "Klein", + "medium": "Middel", + "large": "Groot" + }, + "createViewLink": { + "inCompatibleWithDataSync": "Dit weergavetype is niet compatibel met een data sync tabel." + }, + "postgreSQLDataSync": { + "host": "Host", + "username": "Gebruikersnaam", + "password": "Wachtwoord", + "database": "Database", + "table": "Tabel", + "sslMode": "SSL-modus", + "schema": "Schema", + "description": "Synchroniseert een PostgreSQL tabel met een Baserow tabel die overeenkomt met de onderstaande gegevens. Let op dat wanneer de synchronisatie start, het alle rijen in de opgegeven tabel zal selecteren. Hoewel Baserow alleen gegevens selecteert, raden we sterk aan om de gebruiker te beperken tot een alleen-lezen verbinding.", + "port": "Poort" + }, + "configureDataSyncModal": { + "title": "Data sync", + "syncedFields": "Gesynchroniseerde velden", + "syncSettings": "Sync instellingen" + }, + "configureDataSyncVisibleFields": { + "fields": "Gesynchroniseerde velden", + "syncTable": "Sync bij opslaan", + "title": "Gesynchroniseerde velden wijzigen" + }, + "configureDataSyncSettings": { + "title": "Verander data sync", + "syncTable": "Sync bij opslaan" + }, + "webhookPayloadTooLargeNotification": { + "body": "De payload voor de {name} webhook met event ID {event_id} was te groot. De inhoud is opgesplitst in meerdere batches, maar gegevens boven de batchnorm van {batch_limit} zijn weggegooid." + }, + "viewFieldConditionItem": { + "filterMisconfigured": "Het veld waaraan deze filter is gekoppeld, is weggegooid." + }, + "webhookDeactivatedNotification": { + "body": "{name} webhook is gedeactiveerd omdat het te vaak achter elkaar faalde." + }, + "createFormViewGuidedTourStep": { + "title": "Een formulier maken", + "content": "Bouw snel formulieren vanuit je tabellen om reacties direct in je tabel te verzamelen, waardoor het verzamelen van gegevens wordt gestroomlijnd." + }, + "tablesGuidedTourStep": { + "content": "Tabellen slaan je informatie netjes op. Maak een nieuwe tabel in je database om te beginnen met het structureren van je gegevens.", + "title": "Tabellen instellen" + }, + "filterSortGroupGuidedTourStep": { + "title": "Je gegevens vinden en organiseren", + "content": "Vind snel informatie door te filteren en sorteren op je rijen. Groepeer direct op één van de velden om patronen duidelijk te visualiseren en je workflows te vereenvoudigen." + }, + "addFieldGuidedTourStep": { + "content": "Klik op \"+\" om nieuwe velden (kolommen) toe te voegen. Kies uit verschillende veldtypes om precies vast te leggen wat belangrijk is voor je project.", + "title": "Je gegevens aanpassen" + }, + "createViewGuidedTourStep": { + "content": "Maak aangepaste weergaven zoals raster, kalender, kanban of galerij om je gegevens precies te visualiseren zoals jij dat wilt.", + "title": "Personaliseer je weergaven" + }, + "viewOptionsGuidedTourStep": { + "title": "Weergave opties", + "content": "Klik op de drie puntjes naast de weergave om een webhook te exporteren, importeren, dupliceren en configureren." + }, + "fieldBooleanSubForm": { + "defaultValue": "Standaard" + }, + "apiDocsListTables": { + "listTables": "Toon alle tabellen", + "listTablesDescription": "Dit eindpunt werkt alleen in combinatie met token authenticatie. Het geeft een overzicht van alle tabellen waartoe het token toegang heeft (maken, lezen, bijwerken of verwijderen)." + }, + "fieldMultipleSelectSubForm": { + "optionsLabel": "Opties", + "defaultOptionsLabel": "Standaardopties" + }, + "apiDocsPasswordFieldAuthentication": { + "title": "{name} authenticatie", + "description": "Controleert of het opgegeven wachtwoord en de rij overeenkomen met wat is opgeslagen in de cel.", + "fieldId": "De veld-ID waarop het wachtwoord moet worden gecontroleerd.", + "rowId": "De rij-ID waarvoor het wachtwoord moet worden gecontroleerd.", + "password": "Het wachtwoord waarvan gecontroleerd moet worden of het correct is." + }, + "fieldRules": { + "errorTitle": "Fout tijdens verwerking veldregel", + "ruleDoesNotExist": "Regel bestaat niet", + "ruleTypeDoesNotExist": "Regeltype bestaat niet", + "ruleAlreadyExists": "Regel bestaat al" } - }, - "fieldmultipleCollaboratorsDropdown": { - "notFound": "Medewerker niet gevonden" - }, - "formViewModeType": { - "form": "Formulier", - "formDescription": "Alle velden zijn zichtbaar en verticaal gestapeld." - }, - "formViewHeader": { - "mode": "Modus", - "preview": "Voorbeeld", - "fields": "Velden" - }, - "rowEditFieldMultipleCollaborators": { - "addCollaborator": "Een medewerker toevoegen" - }, - "formViewModePreviewForm": { - "addCoverImage": "Een omslagafbeelding toevoegen", - "addLogo": "Logo toevoegen", - "noFields": "Dit formulier heeft nog geen velden. Klik op een veld in de linker zijbalk om er een toe te voegen.", - "descriptionPlaceholder": "Beschrijving", - "titlePlaceholder": "Titel", - "noFieldsTitle": "Dit formulier heeft geen velden", - "noFieldsContent": "Klik op een veld in de linkerzijbalk om er een toe te voegen." - }, - "gridViewFieldFile": { - "dropHere": "Laat hier los", - "dropFileHere": "Laat bestanden hier los" - }, - "apiDocsUploadFile": { - "file": "De `file` multipart met de inhoud van het bestand.", - "description": "Upload een bestand naar Baserow door de inhoud van het bestand direct te uploaden. Er wordt een `file` multipart verwacht met de inhoud van het bestand. Het antwoord kan vervolgens worden gebruikt om [een bestand naar een rij te uploaden]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row)." - }, - "apiDocsUploadFileViaURL": { - "url": "De URL die Baserow namens u moet downloaden en uploaden.", - "description": "Upload een bestand naar Baserow door het te downloaden van de opgegeven URL. Het antwoord kan vervolgens worden gebruikt om [een bestand naar een rij te uploaden]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row)." - }, - "duplicateTableJobType": { - "duplicatedTitle": "Tabel dupliceerd", - "duplicating": "Dupliceren", - "name": "Dupliceer tabel" - }, - "fileField": { - "errorEmptyFileNameMessage": "U kunt geen lege naam voor een bestand instellen.", - "errorEmptyFileNameTitle": "Ongeldige bestandsnaam" - }, - "viewOwnershipType": { - "collaborative": "Samenwerkend", - "personal": "Persoonlijk" - }, - "gridViewRowsAddContext": { - "title": "Maak meerdere rijen", - "choice": "Voeg {rijAmountChoice} rijen toe" - }, - "fieldRollupSubForm": { - "label": "Rollup functie", - "selectTargetFieldLabel": "Selecteer een veld om op te rollen" - }, - "fieldSelectThroughFieldSubForm": { - "noTable": "Je hebt minstens één link naar tabel nodig om dit veld te creëren.", - "selectThroughFieldLabel": "Selecteer een link naar tabel veld" - }, - "apiDocsFiltersBuilderModal": { - "userFieldNames": "Veldnamen gebruikers", - "json": "JSON", - "title": "Filters parameter bouwer", - "queryParameter": "Query-parameters" - }, - "viewGroupBy": { - "groupBy": "Groep | Groep bij 1 veld | Groep per {aantal} velden" - }, - "rowHistorySidebar": { - "you": "Jij", - "name": "Geschiedenis", - "empty": "Nog geen wijzigingen. Wijzigingen in deze rij kun je hier volgen.", - "created": "deze rij is aangemaakt", - "updated": "deze rij is bijgewerkt", - "submitted": "deze rij is ingediend", - "restored": "deze rij is hersteld", - "createdUndo": "rij maken ongedaan maken", - "updatedUndo": "rij update ongedaan maken", - "deletedUndo": "rij verwijderen ongedaan maken", - "deleted": "deze rij is verwijderd" - }, - "viewGroupByContext": { - "groupBy": "Groepeer op", - "thenBy": "Dan door", - "addGroupBy": "kies een veld om op te sorteren", - "noGroupByTitle": "Je hebt nog geen groepen gemaakt", - "noGroupByText": "Groepeer rijen op een veld." - }, - "collaboratorAddedToRowNotification": { - "title": "{sender} heeft u toegewezen aan {fieldName} in rij {rowId} in {tableName}", - "deletedUser": "Een verwijderde gebruiker", - "unknownUser": "Een onbekende gebruiker" - }, - "fieldCollaboratorSubForm": { - "notifyUserWhenAdded": "Gebruiker op de hoogte stellen wanneer toegevoegd" - }, - "viewFieldConditionsForm": { - "addCondition": "Voorwaarde toevoegen", - "addConditionGroup": "Voorwaarde groep toevoegen" - }, - "formSubmittedNotification": { - "title": "{formName} is verstuurd in tabel {tableName}:", - "moreValues": "0 | en nog 1 veld. | en {count} meer velden." - }, - "fieldDurationSubForm": { - "durationFormatLabel": "Duur format" - }, - "fieldPasswordSubForm": { - "description": "Het is nog niet mogelijk om direct iets te doen met het wachtwoordveld, dit wordt alleen gebruikt door de gebruikersauthenticatie in de applicatiebouwer.", - "allowEndpointAuthentication": "API endpoint authenticatie toestaan", - "allowEndpointAuthenticationHelp": "Dit stelt een eindpunt beschikbaar waar de rij-ID en het wachtwoord kunnen worden gecontroleerd op juistheid. Hierdoor kan Baserow worden gebruikt als backend voor authenticatie." - }, - "rowEditFieldPassword": { - "setPassword": "Stel een wachtwoord in" - }, - "rowHistoryFieldPassword": { - "passwordSet": "Het wachtwoord is ingesteld", - "passwordUpdated": "Het wachtwoord is bijgewerkt", - "passwordDeleted": "Het wachtwoord is verwijderd" - }, - "fieldLongTextSubForm": { - "enableRichTextFormatting": "Opmaak met rijke tekst inschakelen" - }, - "dataProviderTypes": { - "fieldsName": "Velden" - }, - "userMentionInRichTextFieldNotification": { - "title": "{sender} heeft u vermeld in veld {fieldName} van rij {rowId} in {tableName}", - "deletedUser": "Een verwijderde gebruiker" - }, - "databaseScratchTrackStep": { - "teamsRow2": "HR", - "addYourOwn": "Voeg je eigen toe", - "tableName": "Tabel naam", - "rowName": "Naam rij", - "projects": "Projecten", - "thisIncludes": "Dit omvat:", - "productsRow1": "Rebranding website", - "productsRow3": "Betaalde advertentiecampagne", - "productsRow2": "Klantonderzoek", - "teams": "Teams", - "teamsRow1": "Verkoop", - "teamsRow3": "Marketing", - "tasksRow3": "Blogbericht schrijven", - "tasks": "Taken", - "tasksRow1": "Logo herontwerp", - "tasksRow2": "Stuur e-mail", - "campaignsRow2": "Loyaliteit beloningen", - "campaigns": "Campagnes", - "campaignsRow1": "Zomer uitverkoop", - "campaignsRow3": "Herlancering merk", - "title": "Wat wil je bijhouden?", - "description": "Kies uit populaire use cases of maak je eigen." - }, - "databaseStep": { - "airtable": "Van Airtable", - "import": "Van bestand", - "title": "Je eerste database maken", - "description": "Laat ons weten waar je aan werkt.", - "databaseNameLabel": "Database naam", - "scratch": "Uit het niets", - "template": "Template" - }, - "databaseImportStep": { - "description": "Verplaats je gegevens naar Baserow, in slechts een paar klikken.", - "tableNameLabel": "Tabel naam", - "title": "Importeer je gegevens" - }, - "ViewFilterTypeDateUpgradeToMultiStep": { - "migrateButtonText": "Migreren naar meerstaps datumfilter", - "migrateButtonTooltip": "Nieuw filter beschikbaar. Klik om te upgraden. Het werkt hetzelfde." - }, - "formViewMetaControls": { - "whenSubmittedLabel": "Wanneer het formulier is verzonden", - "showMessage": "Een bericht weergeven", - "theURL": "De URL", - "theMessage": "Het bericht", - "urlRedirect": "Doorverwijzen naar URL" - }, - "databaseDashboardResourceLinks": { - "title": "API-documentatie", - "description": "Leer meer over onze code" - }, - "changePrimaryFieldModal": { - "title": "Wijzig het primaire veld", - "change": "Wijzig", - "primaryFieldLabel": "Primair veld", - "existingPrimary": "\"{name}\" is momenteel het primaire veld." - }, - "databaseScratchTrackFieldsStep": { - "campaignsDetailsRow1": "Laat je besparingen oplopen met onze zinderende zomeruitverkoop, met onverslaanbare kortingen op al je favoriete producten!", - "campaignsDetailsRow2": "Verhoog de klantenbinding en -betrokkenheid met ons verleidelijke loyaliteitsbeloningsprogramma, ontworpen om uw meest toegewijde klanten te belonen.", - "campaignsDetailsRow3": "Blaas je bedrijf nieuw leven in en verleid je publiek met een dynamische merkherlancering die perfect aansluit bij de huidige markttrends en klantwensen.", - "customFieldsDescriptionRow1": "Turpis massa tincidunt dui ut ornare lectus sit amet est.", - "customFieldsDescriptionRow2": "Vitae justo eget magna fermentum iaculis eu non diam.", - "customFieldsDescriptionRow3": "Convallis tellus id interdum velit laoreet id donec ultrices tincidunt.", - "title": "Kies velden voor elke rij", - "description": "Kies maximaal {selectedFieldsLimitCount} velden. Je kunt er later meer toevoegen.", - "fieldName": "Naam", - "fieldType": "Type veld", - "fieldDescription": "Beschrijving", - "fieldDetails": "Details", - "fieldNumber": "Nummer", - "fieldDate": "Datum", - "fieldBoolean": "Afgerond", - "fieldDuration": "Duur", - "fieldUrl": "URL", - "fieldEmail": "E-mail", - "projectsCategoryDesign": "Ontwerp", - "projectsNotesRow1": "Acme is op zoek naar een complete rebranding van hun website met de volgende richtlijnen.", - "fieldCategory": "Categorie", - "fieldDueDate": "Vervaldatum", - "fieldBudget": "Budget", - "fieldCompleted": "Voltooid", - "fieldRole": "Rol", - "fieldNotes": "Opmerkingen", - "fieldEstimatedDays": "Geschatte dagen", - "fieldEndDate": "Einddatum", - "projectsCategoryDevelopment": "Ontwikkeling", - "projectsNotesRow3": "Ik vraag me af of dit de moeite waard is na de Facebook-advertentieboycot. Studies tonen aan dat betaalde advertentiecampagnes steeds minder effectief worden.", - "teamsRoleDesigner": "Ontwerper", - "teamsRoleDeveloper": "Ontwikkelaar", - "teamsRoleMarketer": "Marketeer", - "tasksDetailsRow2": "De structuur klopt niet helemaal, dus misschien moeten we de sitemap hier ook aanpassen.", - "fieldRating": "Beoordeling", - "fieldKickoffDate": "Aftrapdatum", - "fieldPhone": "Telefoon", - "fieldActive": "Actief", - "fieldStartDate": "Startdatum", - "projectsCategoryMarketing": "Marketing", - "projectsNotesRow2": "Onderzoek of de huidige gebruikers van Soylent geïnteresseerd zijn in een nieuw gebruikersportaal.", - "tasksDetailsRow1": "Het logo moet worden verbeterd om de CTA duidelijker te maken.", - "tasksDetailsRow3": "De nieuwe voettekst moet onze contactgegevens bevatten en ook een kleine (maar duidelijke) CTA." - }, - "createTableModal": { - "title": "Nieuwe tabel maken", - "importLabel": "Wil je bestaande gegevens importeren?", - "defaultName": "Tabel", - "newTable": "Begin met een nieuwe tabel" - }, - "createTable": { - "showTable": "toon tabel", - "addButton": "Tabel toevoegen", - "uploading": "Uploaden...", - "stateRowCreation": "Importeren...", - "statePreValidation": "Valideren van gegevens...", - "importError": "Er is iets misgegaan tijdens het importeren van het bestand", - "preparing": "Voorbereiden van data...", - "stateCreateTable": "Tabel maken..." - }, - "importErrorReport": { - "reportTitleFailure": "Mislukte rijen", - "reportTitleSuccess": "Import succesvol, maar...", - "reportMessage": "De volgende rij indexen konden'niet worden geïmporteerd:" - }, - "dataSyncType": { - "icalCalendar": "Sync iCal feed", - "syncError": "Sync-fout", - "postgresql": "PostgreSQL tabel synchroniseren" - }, - "iCalCalendarDataSync": { - "name": "iCal URL", - "description": "De iCal kalendersynchronisatie synchroniseert automatisch met de items in het kalenderbestand van de URL. Het ondersteunt alleen het ICS-bestandstype (Internet Calendar and Scheduling)." - }, - "createDataSync": { - "fields": "Selecteer de velden die je wilt synchroniseren", - "create": "Tabel maken en synchroniseren", - "error": "Er is iets misgegaan tijdens de synchronisatie", - "next": "Volgende", - "autoAddLabel": "Automatisch nieuwe eigenschappen toevoegen", - "autoAddHelper": "Voegt automatisch nieuw beschikbare eigenschappen toe aan de tabel en synchroniseert deze. Merk op dat om dit te laten werken, alle eigenschappen gesynchroniseerd moeten zijn.", - "twoWaySyncLabel": "Bidirectionele synchronisatie" - }, - "syncTableModal": { - "title": "Sync {name}", - "sync": "Sync tabel", - "hide": "Verberg", - "description": "Deze tabel is gekoppeld aan een gegevenssynchronisatie. Wanneer je op de sync knop klikt, worden de gegevens gesynchroniseerd met de bron. Tijdens dit proces wordt een slot geplaatst op de bijgewerkte rijen, wat API verzoeken of tabelwijzigingen tijdelijk kan vertragen." - }, - "gridViewRowHeight": { - "name": "Hoogte", - "small": "Klein", - "medium": "Middel", - "large": "Groot" - }, - "createViewLink": { - "inCompatibleWithDataSync": "Dit weergavetype is niet compatibel met een data sync tabel." - }, - "postgreSQLDataSync": { - "host": "Host", - "username": "Gebruikersnaam", - "password": "Wachtwoord", - "database": "Database", - "table": "Tabel", - "sslMode": "SSL-modus", - "schema": "Schema", - "description": "Synchroniseert een PostgreSQL tabel met een Baserow tabel die overeenkomt met de onderstaande gegevens. Let op dat wanneer de synchronisatie start, het alle rijen in de opgegeven tabel zal selecteren. Hoewel Baserow alleen gegevens selecteert, raden we sterk aan om de gebruiker te beperken tot een alleen-lezen verbinding.", - "port": "Poort" - }, - "configureDataSyncModal": { - "title": "Data sync", - "syncedFields": "Gesynchroniseerde velden", - "syncSettings": "Sync instellingen" - }, - "configureDataSyncVisibleFields": { - "fields": "Gesynchroniseerde velden", - "syncTable": "Sync bij opslaan", - "title": "Gesynchroniseerde velden wijzigen" - }, - "configureDataSyncSettings": { - "title": "Verander data sync", - "syncTable": "Sync bij opslaan" - }, - "webhookPayloadTooLargeNotification": { - "body": "De payload voor de {name} webhook met event ID {event_id} was te groot. De inhoud is opgesplitst in meerdere batches, maar gegevens boven de batchnorm van {batch_limit} zijn weggegooid." - }, - "viewFieldConditionItem": { - "filterMisconfigured": "Het veld waaraan deze filter is gekoppeld, is weggegooid." - }, - "webhookDeactivatedNotification": { - "body": "{name} webhook is gedeactiveerd omdat het te vaak achter elkaar faalde." - }, - "createFormViewGuidedTourStep": { - "title": "Een formulier maken", - "content": "Bouw snel formulieren vanuit je tabellen om reacties direct in je tabel te verzamelen, waardoor het verzamelen van gegevens wordt gestroomlijnd." - }, - "tablesGuidedTourStep": { - "content": "Tabellen slaan je informatie netjes op. Maak een nieuwe tabel in je database om te beginnen met het structureren van je gegevens.", - "title": "Tabellen instellen" - }, - "filterSortGroupGuidedTourStep": { - "title": "Je gegevens vinden en organiseren", - "content": "Vind snel informatie door te filteren en sorteren op je rijen. Groepeer direct op één van de velden om patronen duidelijk te visualiseren en je workflows te vereenvoudigen." - }, - "addFieldGuidedTourStep": { - "content": "Klik op \"+\" om nieuwe velden (kolommen) toe te voegen. Kies uit verschillende veldtypes om precies vast te leggen wat belangrijk is voor je project.", - "title": "Je gegevens aanpassen" - }, - "createViewGuidedTourStep": { - "content": "Maak aangepaste weergaven zoals raster, kalender, kanban of galerij om je gegevens precies te visualiseren zoals jij dat wilt.", - "title": "Personaliseer je weergaven" - }, - "viewOptionsGuidedTourStep": { - "title": "Weergave opties", - "content": "Klik op de drie puntjes naast de weergave om een webhook te exporteren, importeren, dupliceren en configureren." - }, - "fieldBooleanSubForm": { - "defaultValue": "Standaard" - }, - "apiDocsListTables": { - "listTables": "Toon alle tabellen", - "listTablesDescription": "Dit eindpunt werkt alleen in combinatie met token authenticatie. Het geeft een overzicht van alle tabellen waartoe het token toegang heeft (maken, lezen, bijwerken of verwijderen)." - }, - "fieldMultipleSelectSubForm": { - "optionsLabel": "Opties", - "defaultOptionsLabel": "Standaardopties" - }, - "apiDocsPasswordFieldAuthentication": { - "title": "{name} authenticatie", - "description": "Controleert of het opgegeven wachtwoord en de rij overeenkomen met wat is opgeslagen in de cel.", - "fieldId": "De veld-ID waarop het wachtwoord moet worden gecontroleerd.", - "rowId": "De rij-ID waarvoor het wachtwoord moet worden gecontroleerd.", - "password": "Het wachtwoord waarvan gecontroleerd moet worden of het correct is." - }, - "fieldRules": { - "errorTitle": "Fout tijdens verwerking veldregel", - "ruleDoesNotExist": "Regel bestaat niet", - "ruleTypeDoesNotExist": "Regeltype bestaat niet", - "ruleAlreadyExists": "Regel bestaat al" - } } diff --git a/web-frontend/modules/database/locales/pl.json b/web-frontend/modules/database/locales/pl.json index 5399eee149..541dea4202 100644 --- a/web-frontend/modules/database/locales/pl.json +++ b/web-frontend/modules/database/locales/pl.json @@ -1,898 +1,898 @@ { - "webhookModal": { - "title": "Webhooki {name}", - "createWebhook": "Utwórz webhook", - "backToList": "Powrót do listy" - }, - "deleteWebhookModal": { - "title": "Usuń {webhookName}", - "deleteButton": "Usuń webhook", - "body": "Czy na pewno chcesz usunąć ten webhook? Nie będziesz mógł go później przywrócić." - }, - "webhookList": { - "noWebhooksMessage": "Nie utworzyłeś jeszcze żadnych webhooków. Webhooks mogą być używane w celu informowania innych systemów, gdy wiersz w Baserow został utworzony, zaktualizowany lub usunięty." - }, - "testWebhookModal": { - "title": "Przetestuj webhook", - "unreachable": "Serwer nieosiągalny" - }, - "webhookForm": { - "inputLabels": { - "name": "Nazwa", - "value": "Wartość", - "requestMethod": "Metoda", - "url": "Adres URL", - "userFieldNames": "Nazwy pól użytkownika", - "events": "Jakie zdarzenia powinny wyzwalać ten webhook?", - "headers": "Dodatkowe nagłówki", - "example": "Przykładowy ładunek" - }, - "errors": { - "urlField": "To pole jest wymagane i musi być prawidłowym adresem url.", - "invalidHeaders": "Jeden z nagłówków jest nieprawidłowy." - }, - "checkbox": { - "sendUserFieldNames": "Użyj nazwy pola zamiast id" - }, - "radio": { - "allEvents": "Wyślij mi wszystko", - "customEvents": "Pozwól mi wybrać poszczególne wydarzenia" - }, - "triggerButton": "Uruchom webhooka testowego", - "deactivated": { - "title": "Webhook jest nieaktywny", - "content": "Ten webhook został wyłączony, ponieważ wystąpiło zbyt wiele kolejnych niepowodzeń. Proszę sprawdzić dziennik połączeń, aby uzyskać więcej szczegółów. Kliknij na poniższy przycisk, aby aktywować go ponownie. Nie zapomnij zapisać webhooka po aktywacji.", - "activate": "Aktywować" - }, - "deprecatedEventType": { - "title": "Przestarzały typ zdarzenia", - "description": "Ten webhook nie otrzymuje jednocześnie informacji o wszystkich zmienionych wierszach. Przekonwertuj go na typ zdarzenia w stylu wsadowym. Spowoduje to zmianę ładunku treści JSON na format, który zawiera wiele wierszy.", - "convert": "Konwertuj" - }, - "triggerWhenFieldsHaveChanged": "Wyzwalanie po zmianie pól", - "helpTriggerWhenFieldsHaveChanged": "Zostanie uruchomiona tylko wtedy, gdy wartość komórki wybranych pól ulegnie zmianie." - }, - "webhook": { - "details": "szczegóły", - "lastCall": "Ostatnie połączenie: {lastCallTime}", - "noCalls": "Brak połączeń", - "callLog": "Rejestr połączeń", - "triggerDescription": "Wyzwalacze przy każdym zdarzeniu | Wyzwalacze przy {count} zdarzeń | Wyzwalacze przy {count} zdarzeń" - }, - "createWebhook": { - "errorTableWebhookMaxLimitExceededTitle": "Przekroczona maksymalna liczba webhooków", - "errorTableWebhookMaxLimitExceededDescription": "Nie można utworzyć webhooka, ponieważ przekroczono maksymalną ilość webhooków na tabelę." - }, - "sidebar": { - "viewAPI": "Wyświetl dokumentację API", - "createTable": "Nowa tabela" - }, - "sidebarItem": { - "exportTable": "Eksportuj tabelę", - "webhooks": "Webhooki", - "lastSynced": "Ostatnia synchronizacja", - "notSynced": "niezsynchronizowany", - "sync": "Tabela synchronizacji", - "updateSyncConfig": "Zaktualizuj konfigurację synchronizacji" - }, - "apiToken": { - "create": "stwórz", - "read": "czytaj", - "update": "aktualizacja", - "delete": "usuń", - "tokenPrefix": "Token:", - "viewAPIDocs": "Wyświetl dokumentację API", - "generateNewToken": "Wygeneruj nowy token", - "showOrHide": "Pokaż lub ukryj token", - "copyToClipboard": "Kopiuj do schowka", - "showDatabases": "pokaż bazy danych" - }, - "apiTokenSettings": { - "title": "Tokeny bazy danych", - "createToken": "Utwórz token", - "noTokensMessage": "Nie utworzyłeś jeszcze tokena bazy danych. Możesz użyć tokena bazy danych, aby uwierzytelnić się w punktach końcowych REST API, gdzie możesz tworzyć, czytać, aktualizować i usuwać wiersze. Możliwe jest ustawienie uprawnień na poziomie tabeli.", - "hasFullPermissions": "Posiada pełne uprawnienia, również dla wszystkich dzieci.", - "hasOnlySelectedPermissions": "Ma uprawnienia tylko do wybranych dzieci.", - "noPermissions": "Nie ma uprawnień.", - "createNewTitle": "Tworzenie nowego tokena bazy danych", - "backToOverview": "Powrót do przeglądu" - }, - "apiTokenForm": { - "nameLabel": "Nazwa", - "workspaceLabel": "Grupa" - }, - "apiDocsSelectDatabase": { - "needOneDatabase": "Musisz mieć co najmniej jedną bazę danych, aby wyświetlić dokumentację API." - }, - "apiDocsExample": { - "requestSample": "Poproś o próbkę", - "responseSample": "Próbka odpowiedzi", - "userFieldNames": "Nazwy pól użytkownika" - }, - "apiDocsParameter": { - "optional": "opcjonalny", - "defaultValue": "Domyślnie: {value}" - }, - "apiDocsTableGetRow": { - "description": "Pobieranie pojedynczego wiersza {name}.", - "rowId": "Unikatowy identyfikator żądanego wiersza." - }, - "apiDocsErrors": { - "errorCode": "Kod błędu", - "name": "Nazwa", - "description": "Opis", - "okDescription": "Żądanie zakończone pomyślnie.", - "badRequestDescription": "Żądanie zawiera nieprawidłowe wartości lub nie można przeanalizować JSON.", - "unauthorizedDescription": "Gdy próbujesz uzyskać dostęp do punktu końcowego bez ważnego tokena bazy danych.", - "notFoundDescription": "Nie znaleziono wiersza lub tabeli.", - "requestEntityTooLargeDescription": "Żądanie przekroczyło maksymalny dozwolony rozmiar ładunku.", - "internalErrorDescription": "Serwer napotkał nieoczekiwany stan.", - "badGatewayDescription": "Baserow uruchamia się ponownie lub trwa nieoczekiwana awaria.", - "unavailableDescription": "Serwer nie mógł przetworzyć Twojego żądania na czas." - }, - "apiDocsTableFields": { - "tableTitle": "Tabela {name}", - "tableId": "ID tej tabeli to:", - "description": "Każdy wiersz w tabeli {name} zawiera następujące pola.", - "id": "ID", - "name": "Nazwa", - "type": "Typ", - "compatibleFilters": "Kompatybilne filtry" - }, - "apiDocsTableListRows": { - "description": "Aby wyświetlić listę wierszy w tabeli *{name}* należy wykonać żądanie `GET` do punktu końcowego *{name}*. Odpowiedź jest paginowana i domyślnie zwracana jest pierwsza strona. Właściwa strona może zostać pobrana poprzez podanie parametrów zapytania `page` i `size`.", - "page": "Określa, która strona wierszy powinna zostać zwrócona.", - "size": "Określa ile wierszy powinno być zwróconych na stronę.", - "userFieldNames": "Gdy dostarczony jest parametr GET `user_field_names`, a jego wartość jest jedną z następujących: `y`, `yes`, `true`, `t`, `on`, `1` lub pusty ciąg znaków, nazwy pól zwrócone przez ten punkt końcowy będą rzeczywistymi nazwami pól.\n\nJeśli parametr GET `user_field_names` nie zostanie podany lub jeśli nie pasuje do żadnej z powyższych wartości, wówczas wszystkie zwrócone nazwy pól będą miały postać `field_`, po której nastąpi identyfikator pola. Na przykład `field_1` odnosi się do pola o identyfikatorze `1`.\n\n Dodatkowo, gdy ustawiona jest wartość `user_field_names`, zmienia się zachowanie innych parametrów GET `order_by`, `include` i `exclude`. Zamiast tego oczekują one rozdzielonych przecinkami list rzeczywistych nazw pól.", - "search": "Jeśli zostanie podane, zostaną zwrócone tylko wiersze z danymi pasującymi do zapytania.", - "orderBy": "Opcjonalnie wiersze mogą być uporządkowane według pól oddzielonych przecinkiem. Domyślnie lub po poprzedzeniu znakiem '+', pole jest uporządkowane rosnąco (A-Z), ale poprzedzeniu znakiem '-' może być uporządkowane malejąco (Z-A).\n\n #### Z `user_field_names`:\n\n `order_by` powinna być rozdzieloną przecinkami listą nazw pól, po których mają być zamawiane. Na przykład jeśli podasz następujący parametr GET `order_by=My Field,-My Field 2` wiersze zostaną uporządkowane według pola o nazwie `My Field` w porządku rosnącym. Jeśli niektóre pola mają tę samą wartość, ten podzbiór zostanie uporządkowany według pola o nazwie `My Field 2` w porządku malejącym.\n\n Upewnij się, że pola z nazwami zaczynającymi się od `+` lub `-` są wyraźnie poprzedzone innym `+` lub `-`. Np. `+-Name`.\n\n Nazwy pól zawierające przecinki muszą być otoczone cudzysłowami: `Name ,,`''. Jeśli nazwy pól zawierają cudzysłowy, to muszą one zostać usunięte przy użyciu znaku ``. Eg: `Name \\\"`. \n\n#### Bez `user_field_names`:\n\n `order_by` powinno być rozdzieloną przecinkami listą `field_`, po której następuje id pola, po którym ma być złożone zamówienie. Na przykład, jeśli podasz następujący parametr GET `order_by=field_1,-field_2` wiersze zostaną uporządkowane według `field_1` w porządku rosnącym. Jeśli niektóre pola mają tę samą wartość, ten podzbiór zostanie uporządkowany przez `field_2` w porządku malejącym.", - "filter": "Wiersze mogą być opcjonalnie filtrowane przy użyciu tych samych filtrów widoku, które są dostępne dla widoków. Można zastosować wiele filtrów, jeśli mają one ten sam format. Zmienne `field` i `filter` wskazują odpowiednio jak i gdzie zastosować filtr.\n\n#### Z `user_field_names`:\n\nNa przykład, jeśli opcjonalnie podasz następujący parametr GET: `filter__Name__equal=test`, zwrócone zostaną tylko wiersze, w których wartość `Name` jest równa \"test\". Ta metoda jest kompatybilna wstecz i będzie sprawdzać `field_id`, jeśli nie powiedzie się na nazwie.\n\n#### Bez `user_field_names`:\n\nNa przykład, jeśli opcjonalnie podasz następujący parametr GET: `filter__field_1__equal=test`, zwrócone zostaną tylko wiersze, w których wartość `field_1` jest równa 'test'.\n\nNależy pamiętać, że jeśli podano parametr filters, ten parametr zostanie zignorowany. ", - "filterLink": "Listę wszystkich filtrów można znaleźć tutaj.", - "filterType": "- `AND`: Wskazuje, że wiersze muszą pasować do wszystkich podanych filtrów.\n- `OR`: Wskazuje, że wiersze muszą pasować tylko do jednego z filtrów.\n\n Działa to tylko wtedy, gdy podane są dwa lub więcej filtrów.", - "include": "Wszystkie pola są domyślnie zawarte w odpowiedzi. Możesz wybrać podzbiór pól do uwzględnienia poprzez podanie parametru zapytania include.\n\n #### Z `user_field_names`:\n\n `include` powinna być rozdzieloną przecinkami listą nazw pól, które mają być zawarte w wynikach. Na przykład, jeśli podasz następujący parametr GET: `include=My Field,-My Field 2` to tylko te pola zostaną uwzględnione (chyba, że zostaną wyraźnie wykluczone).\n\n Nazwy pól zawierające przecinki muszą być otoczone cudzysłowami: `\"Name ,\"`. Jeśli nazwy pól zawierają cudzysłowy, to muszą one zostać usunięte przy użyciu znaku `\\` . Na przykład: `Name \\\"`.\n\n #### Bez `user_field_names`:\n\n `include` powinno być rozdzieloną przecinkami listą `field_`, po której następuje id pola do uwzględnienia w wynikach. Na przykład: Jeśli podasz następujący parametr GET `exclude=field_1,field_2` to pola o id `1` i id `2` to tylko te pola zostaną uwzględnione (chyba, że zostaną jawnie wykluczone).", - "exclude": "Wszystkie pola są domyślnie zawarte w odpowiedzi. Możesz wybrać podzbiór pól do wykluczenia poprzez podanie parametru zapytania exclude.\n\n #### Z `user_field_names`:\n\n `exclude` powinna być rozdzieloną przecinkami listą nazw pól, które mają być wykluczone z wyników. Na przykład, jeśli podasz następujący parametr GET: `exclude=My Field,-My Field 2` to te pola zostaną wykluczone.\n\n Nazwy pól zawierające przecinki muszą być otoczone cudzysłowami: `\"Name ,\"`. Jeśli nazwy pól zawierają cudzysłowy, to muszą one zostać usunięte przy użyciu znaku `\\`. Na przykład: `Name \\\"`.\n\n #### Bez `user_field_names`:\n\n `exclude` powinno być rozdzieloną przecinkami listą `field_`, po której następuje id pola do wykluczenia z wyników. Na przykład: Jeśli podasz następujący parametr GET `exclude=field_1,field_2` to pola o id `1` i id `2` zostaną wykluczone.", - "viewId": "Domyślnie nie są stosowane filtry i sortowania poza tymi, które zostały zdefiniowane w parametrach zapytania. Możesz dodać filtry i sortowania widoku poprzez podanie jego `id` w parametrze `view_id` GET. Na przykład, jeśli podasz następujący parametr GET `view_id=1` to filtry i sortowania zdefiniowane w widoku o id `1` zostaną zastosowane. Możesz znaleźć `view_id` w menu kontekstowym dowolnego widoku. Jest to liczba w nawiasach za nazwą widoku. \n\n #### Z `filter__{field}__{filter}`. \n\n Zastosowany zostanie zarówno filtr podany w parametrze zapytania, jak i filtry zdefiniowane w widoku.\n\n #### Z `order_by` \n\n Jeśli `order_by` jest podane, sortowanie zdefiniowane w widoku zostanie zignorowane.", - "filtersBuilder": "Otwórz kreator parametrów filtrów", - "filters": "Wiersze mogą być opcjonalnie filtrowane przy użyciu tych samych filtrów widoku, które są dostępne dla widoków. Ten parametr akceptuje serializowany ciąg JSON zawierający drzewo filtrów do zastosowania w tym widoku. Drzewo filtrów jest zagnieżdżoną strukturą zawierającą filtry, które należy zastosować. \\n\\n#### Z `user_field_names`:\\n\\nPrzykład prawidłowego drzewa filtrów jest następujący: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": \\\"Name\\\", \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`.\\n\\n#### Bez `user_field_names`:\\n\\nNa przykład, jeśli opcjonalnie podasz następujący parametr GET: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": 1, \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`\\n\\nNależy pamiętać, że jeśli ten parametr zostanie podany, wszystkie inne `filter__{field}__{filter}` zostaną zignorowane, podobnie jak parametr filter_type.", - "join": "Umożliwia zażądanie wyszukiwania wartości pól z tabeli docelowej poprzez istniejące pola wierszy linków. Nazwa parametru musi być nazwą istniejącego pola wiersza łącza, po którym następuje __join. Wartość powinna być listą nazw pól, dla których chcemy wyszukać dodatkowe wartości. Można podać jedno lub wiele pól docelowych. Nie jest możliwe wyszukanie wartości pola wiersza łącza w tabeli docelowej.\n\n #### Z `user_field_names`:\n\n `join` powinno być rozdzieloną przecinkami listą nazw pól, które mają być uwzględnione w wynikach. Na przykład: Jeśli podasz następujący parametr GET `LinkRowField__join=MyField,MyField2` to wartości `MyField` i `My Field2` w tabeli połączonej przez `LinkRowField` zostaną uwzględnione w odpowiedzi.\n\n#### Bez `user_field_names`:\n\n `join` powinno być rozdzieloną przecinkami listą `field_`, po której następuje identyfikator pola do uwzględnienia w wynikach. Na przykład: Jeśli podasz następujący parametr GET `field_1__join=field_2,field_3` to wartości `field_2` i `field_3` w tabeli połączonej przez `field_1` zostaną uwzględnione w odpowiedzi." - }, - "apiDocsIntro": { - "intro": "Baza danych {name} zapewnia łatwy sposób integracji danych z dowolnym systemem zewnętrznym. API podąża za semantyką REST, używa JSON do kodowania obiektów i opiera się na standardowych kodach HTTP, błędach odczytywanych maszynowo i przez człowieka, aby zasygnalizować wyniki operacji.", - "autoDocDescription": "Ta dokumentacja jest generowana automatycznie na podstawie tabel i pól, które znajdują się w Twojej bazie danych. Jeśli dokonasz zmian w swojej bazie danych, tabeli lub polach, może się okazać, że interfejs API również się zmienił. Dlatego upewnij się, że zaktualizowałeś odpowiednio swoją implementację API.", - "databaseId": "ID tej bazy danych to:", - "jsClient": "Przykładowy klient API w języku JavaScript:", - "pythonClient": "Przykładowy klient API w języku Python:" - }, - "apiDocsTableListFields": { - "description": "Aby wylistować pola tabeli {name} należy wykonać żądanie `GET` do punktu końcowego {name}. Lista pól jest możliwa tylko wtedy, gdy token ma uprawnienia do odczytu, tworzenia lub aktualizacji.", - "resultFieldProperties": "Właściwości pola wynikowego", - "id": "Klucz główny pola. Może zostać użyte do wygenerowania nazwy kolumny w bazie danych poprzez dodanie prefiksu `field_`.", - "name": "Nazwa pola.", - "tableId": "Powiązany identyfikator ID tabeli.", - "order": "Kolejność pól w tabeli. 0 dla pierwszego pola.", - "primary": "Wskazuje czy pole jest polem głównym. Jeśli `true`, pole nie może być usunięte, a wartość powinna reprezentować cały wiersz.", - "type": "Typ zdefiniowany dla tego pola.", - "extraProps": "Niektóre dodatkowe właściwości nie zostały tu opisane, ponieważ są specyficzne dla danego typu.", - "readOnly": "Wskazuje, czy pole jest polem tylko do odczytu. Jeśli ma wartość true, nie można zaktualizować wartości komórki.", - "descriptionField": "Opis pola" - }, - "apiDocsTableDeleteRow": { - "description": "Usuwa istniejący wiersz {name}.", - "rowId": "Unikalny identyfikator wiersza, który ma zostać usunięty." - }, - "apiDocsTableDeleteRows": { - "description": "Usuwa istniejące wiersze {name}.", - "items": "Tablica identyfikatorów wierszy, które powinny zostać usunięte." - }, - "apiDocsTableMoveRow": { - "description": "Przesuwa istniejący wiersz {name} przed inny wiersz. Jeśli nie podano `before_id`, to wiersz zostanie przeniesiony na koniec tabeli.", - "rowId": "Przesuwa wiersz związany z wartością.", - "before": "Przenosi wiersz związany z podanym `row_id` przed wiersz związany z podaną wartością. Jeśli nie podano, to wiersz zostanie przeniesiony na koniec." - }, - "apiDocsTableUpdateRow": { - "description": "Aktualizuje istniejący wiersz {name}.", - "rowId": "Unikatowy identyfikator wiersza, który ma zostać zaktualizowany.", - "before": "Jeśli zostanie podany, nowo utworzony wiersz zostanie umieszczony przed wierszem o podanym identyfikatorze." - }, - "apiDocsTableUpdateRows": { - "description": "Aktualizuje istniejące wiersze {name}.", - "id": "Identyfikator wiersza." - }, - "apiDocsTableCreateRow": { - "description": "Utwórz nowy wiersz {name}.", - "before": "Jeśli zostanie podane, to nowo utworzony wiersz zostanie umieszczony przed wierszem o podanym id." - }, - "apiDocsTableCreateRows": { - "description": "Utwórz nowe wiersze {name}.", - "before": "Jeśli zostanie podane, to nowo utworzone wiersze zostaną umieszczone przed wierszem o podanym id." - }, - "apiDocsAuth": { - "description": "Baserow używa prostego uwierzytelniania opartego na tokenach. Aby korzystać z opisanych poniżej punktów końcowych, musisz wygenerować co najmniej jeden token API w swoim {settingsLink}. Możliwe jest nadawanie uprawnień do tworzenia, odczytu, aktualizacji i usuwania aż do poziomu tabeli na token. Możesz uwierzytelnić się w interfejsie API, podając swój token interfejsu API w nagłówku tokena elementu nośnego autoryzacji HTTP. Wszystkie żądania API muszą być uwierzytelnione i przesłane przez HTTPS.", - "settingsLink": "ustawienia" - }, - "apiDocsFilters": { - "filter": "Filtr", - "exampleValue": "Przykładowa wartość", - "example": "Pełny przykład", - "field": "pole {name}", - "deprecated": "przestarzały" - }, - "fieldTextSubForm": { - "placeholder": "Tekst domyślny" - }, - "fieldSingleSelectSubForm": { - "optionsLabel": "Opcje" - }, - "fieldSingleSelectDropdown": { - "notFound": "Nie znaleziono opcji" - }, - "fieldDateSubForm": { - "dateFormatLabel": "Format daty", - "dateFormatEuropean": "Europejski", - "dateFormatUS": "US", - "dateFormatISO": "ISO", - "includeTimeLabel": "Uwzględnić czas", - "timeFormatLabel": "Format czasu", - "24Hour": "24 godziny", - "12Hour": "12 godzin", - "showTimezoneLabel": "Pokaż strefę czasową", - "forceTimezoneLabel": "Ustaw strefę czasową dla wszystkich współpracowników", - "addTimezoneOffsetLabel": "Przelicz wartości (dodaj {utcOffsetDiff} minut)", - "subTimezoneOffsetLabel": "Przelicz wartości (odejmij {utcOffsetDiff} minut)", - "forceTimezoneValue": "Strefa czasowa" - }, - "fieldLinkRowSubForm": { - "noTable": "Potrzebujesz co najmniej jednej innej tabeli w tej samej bazie danych, aby połączyć się z nią.", - "selectTableLabel": "Wybierz tabelę, do której chcesz utworzyć link", - "hasRelatedFieldLabel": "Utwórz powiązane pole w podlinkowanej tabeli", - "limitToView": "Ogranicz wybór do widoku", - "limitToViewDescription": "Należy pamiętać, że jest to tylko wizualne. Nadal możliwe jest tworzenie relacji poza widokiem za pośrednictwem powiązanej tabeli lub interfejsu API." - }, - "fieldSelectOptions": { - "add": "Dodaj opcję" - }, - "fieldNumberSubForm": { - "typeLabel": "Typ numeru", - "integer": "Liczba całkowita", - "decimal": "Dziesiętny", - "decimalPlacesLabel": "Miejsca dziesiętne", - "allowNegative": "Zezwalaj na negatywne", - "separatorLabel": "Separator tysięcy i dziesiętny", - "prefixPlaceholder": "Prefiks", - "suffixPlaceholder": "Sufiks", - "prefixAndSuffixLabel": "Prefiks / sufiks", - "spaceComma": "Spacja, przecinek (1 000 000,00)", - "spacePeriod": "Spacja, kropka (1 000 000.00)", - "commaPeriod": "Przecinek, kropka (1,000,000.00)", - "periodComma": "Kropka, przecinek (1.000.000,00)", - "noFormatting": "Bez formatowania" - }, - "fieldContext": { - "editField": "Edytuj pole", - "deleteField": "Usuń pole", - "hideField": "Ukryj pole", - "showField": "Pokaż pole", - "changePrimaryField": "Zmień pole podstawowe" - }, - "fieldForm": { - "name": "Nazwa", - "fieldAlreadyExists": "Pole o tej nazwie już istnieje.", - "nameNotAllowed": "Ta nazwa pola nie jest dozwolona.", - "nameTooLong": "Ta nazwa pola jest zbyt długa.", - "description": "Opis", - "addDescription": "Dodaj opis" - }, - "fieldLookupSubForm": { - "noTable": "Aby utworzyć pole odnośnika, potrzebujesz co najmniej jednego pola wiersza linku.", - "selectThroughFieldLabel": "Wybieranie pola wiersza łącza", - "selectTargetFieldLabel": "Wybierz pole do wyszukania" - }, - "fieldFormulaNumberSubForm": { - "typeLabel": "Typ numeru", - "integer": "Liczba całkowita", - "decimal": "Dziesiętny", - "decimalPlacesLabel": "Miejsca dziesiętne", - "allowNegative": "Zezwalaj na negatywne" - }, - "fieldRatingSubForm": { - "maxValue": "Maks.", - "color": "Kolor", - "style": "Styl" - }, - "rowCreateModal": { - "addField": "Dodaj pole" - }, - "selectRowContent": { - "search": "Szukaj wierszy", - "hideFields": "Ukryj pola" - }, - "rowEditModal": { - "addField": "Dodaj pole", - "showHiddenFields": "Pokaż ukryte pola", - "hideHiddenFields": "Ukryj ukryte pola" - }, - "rowEditFieldMultipleSelect": { - "addOption": "Wybierz opcję" - }, - "rowEditFieldFile": { - "addFile": "Dodaj plik", - "sizes": { - "0": "Bajty", - "1": "KB", - "2": "MB", - "3": "GB", - "4": "TB", - "5": "PB" - } - }, - "rowEditFieldLinkRow": { - "addLink": "Wybierz link" - }, - "tableCSVImporter": { - "chooseFileLabel": "Wybierz plik CSV", - "chooseFileDescription": "Możesz zaimportować istniejący CSV, przesyłając plik .CSV z danymi tabelarycznymi. Większość aplikacji arkuszy kalkulacyjnych pozwoli Ci wyeksportować Twój arkusz jako plik .CSV.", - "chooseFile": "Wybierz plik CSV", - "columnSeparator": "Separator kolumn", - "recordSeparator": "separator rekordów", - "unitSeparator": "separator jednostek", - "encoding": "Kodowanie", - "firstRowHeader": "Pierwszy wiersz to nagłówek", - "limitFileSize": "Maksymalny rozmiar pliku to {limit} MB.", - "limitError": "Nie jest możliwe zaimportowanie więcej niż {limit} wierszy.", - "emptyCSV": "Ten plik CSV jest pusty." - }, - "importer": { - "fieldDefaultName": "Pole {liczba}", - "loading": "Ładowanie pliku", - "decoding": "Dekodowanie danych", - "parsing": "Analiza danych", - "preparing": "Przygotowanie danych", - "inProgress": "W trakcie..." - }, - "tableForm": { - "name": "Nazwa" - }, - "tableXMLImporter": { - "fileLabel": "Wybierz plik XML", - "fileDescription": "Istniejący kod XML można zaimportować, przesyłając plik .XML z danymi tabelarycznymi, tj.:", - "chooseButton": "Wybierz plik XML", - "processingError": "Podczas przetwarzania XML wystąpił błąd: {errors}", - "emptyError": "Ten plik XML jest pusty.", - "limitFileSize": "Maksymalna wielkość pliku to {limit}MB.", - "limitError": "Nie można zaimportować więcej niż {limit} wierszy." - }, - "tableJSONImporter": { - "fileLabel": "Wybierz plik JSON", - "fileDescription": "Możesz zaimportować istniejący plik JSON, przesyłając plik .json z danymi tabelarycznymi, tj:", - "chooseButton": "Wybierz plik JSON", - "encodingLabel": "Kodowanie", - "processingError": "Podczas parsowania JSON wystąpił błąd: {error}", - "arrayError": "Plik JSON nie jest tablicą.", - "emptyError": "Ten plik JSON jest pusty.", - "limitFileSize": "Maksymalny rozmiar pliku to {limit}MB.", - "limitError": "Nie jest możliwe zaimportowanie więcej niż {limit} wierszy." - }, - "tablePasteImporter": { - "pasteLabel": "Wklej dane tabeli", - "pasteDescription": "Możesz skopiować komórki z arkusza kalkulacyjnego i wkleić je poniżej.", - "firstRowHeader": "Pierwszy rząd to nagłówek", - "limitError": "Nie jest możliwe zaimportowanie więcej niż {limit} wierszy." - }, - "importFileModal": { - "title": "Utwórz nową tabelę", - "additionalImportTitle": "Importuj do {table}", - "importLabel": "Czy chcesz zaimportować istniejące dane?", - "newTable": "Zacznij od nowej tabeli", - "addButton": "Dodaj tabelę", - "showTable": "pokaż tabelę", - "importButton": "Import", - "uploading": "Przesyłanie...", - "preparing": "Przygotowywanie danych...", - "importError": "Coś poszło nie tak podczas importowania pliku", - "openCreatedTable": "Otwórz utworzoną tabelę", - "showReport": "Pokaż raport o błędach", - "reportTitleFailure": "Nieudane wiersze", - "reportTitleSuccess": "Importowanie powiodło się, ale...", - "reportMessage": "Nie udało się zaimportować następujących indeksów wierszy:", - "stateRowCreation": "Importowanie...", - "statePreValidation": "Weryfikuję dane...", - "stateCreateTable": "Tworzę tabelę...", - "fieldMappingTitle": "Mapowanie pól", - "fieldMappingDescription": "Automatycznie zmapowaliśmy kolumny pól Baserow w Twojej tabeli. Możesz je zmienić poniżej. Każda niezgodna komórka pozostanie pusta po imporcie.", - "selectImportMessage": "Proszę wybrać dane do importu.", - "filePreview": "Podgląd zawartości pliku", - "changeImporterType": "Zmień typ importu", - "importPreview": "Podgląd importu", - "defaultName": "Tabela" - }, - "formulaAdvancedEditContext": { - "textAreaFormulaInputPlaceholder": "Kliknij, aby edytować formułę", - "fields": "Pola", - "functions": "Funkcje", - "operators": "Operatory", - "fieldType": "Pole {type}" - }, - "fieldFormulaInitialSubForm": { - "formulaInputPlaceholder": "Kliknij, aby edytować formułę", - "refreshFormulaOptions": "Odśwież opcje formuł" - }, - "formulaFieldItemDescription": { - "syntax": "Składnia", - "examples": "Przykłady" - }, - "viewSearchContext": { - "searchInRows": "Szukaj we wszystkich wierszach", - "hideNotMatching": "ukryj nie pasujące wiersze" - }, - "viewsContext": { - "searchView": "Wyszukaj widoki", - "noViews": "Nie znaleziono widoków", - "collaborative": "Współpraca" - }, - "viewFilterTypeLinkRow": { - "unnamed": "nienazwany rząd {value}", - "choose": "Wybierz wiersz" - }, - "viewFilterContext": { - "addFilter": "Dodaj filtr", - "disableAllFilters": "wszystkie wyłączone", - "noFilterTitle": "Nie utworzyłeś jeszcze filtra", - "noFilterText": "Filtry umożliwiają pokazanie wierszy spełniających określone warunki.", - "where": "Gdzie", - "and": "I", - "or": "Lub", - "relatedFieldNotFound": "Powiązane pole nie zostało znalezione.", - "filterTypeNotFound": "Niezgodny typ filtra.", - "noCompatibleFilterTypesErrorTitle": "Brak kompatybilnych typów filtrów", - "noCompatibleFilterTypesErrorMessage": "Żadne z twoich pól nie ma kompatybilnych typów filtrów", - "addFilterGroup": "Dodaj grupę filtrów" - }, - "viewFilterTypeFileTypeDropdown": { - "image": "zdjęcie", - "document": "dokument" - }, - "createViewModal": { - "createNew": "Utwórz nowy {view}", - "add": "Dodaj {view}" - }, - "shareViewLink": { - "shareView": "Udostępnij {viewTypeSharingLinkName}", - "shareViewTitle": "Utwórz prywatny link do udostępniania do {viewTypeSharingLinkName}", - "sharedViewTitle": "Ten {viewTypeSharingLinkName} jest obecnie udostępniany za pośrednictwem linku prywatnego", - "sharedViewDescription": "Osoby, które posiadają link mogą zobaczyć {viewTypeSharingLinkName}.", - "disableLink": "wyłącz udostępniony link", - "generateNewUrl": "wygeneruj nowy adres URL", - "copyURL": "skopiuj adres URL", - "EnablePassword": "Ogranicz dostęp za pomocą hasła", - "DisablePassword": "Dostęp jest chroniony hasłem", - "ChangePassword": "Zmień" - }, - "viewSortContext": { - "noSortTitle": "Sortowanie nie zostało jeszcze utworzone", - "noSortText": "Sortowanie pozwala na sortowanie wierszy według pola.", - "sortBy": "Sortuj według", - "thenBy": "Następnie przez", - "addSort": "wybierz pole do sortowania według" - }, - "viewSort": { - "sort": "Sortowanie | 1 Sortowanie | {count} Sortowań" - }, - "viewDecorator": { - "decorator": "Kolor | 1 Kolor | {count} Kolory" - }, - "viewRotateSlugModal": { - "title": "Odśwież URL", - "refreshWarning": "Czy jesteś pewien, że chcesz odświeżyć adres URL {viewName}? Po odświeżeniu zostanie wygenerowany nowy adres URL i nie będzie można uzyskać dostępu do {viewTypeSharingLinkName} za pomocą starego adresu URL. Wszyscy, którym udostępniłeś adres URL, nie będą mogli uzyskać dostępu do {viewTypeSharingLinkName}.", - "generateNewURL": "Wygeneruj nowy adres URL" - }, - "shareViewEnablePasswordModal": { - "newPasswordTitle": "Wprowadź hasło", - "newPasswordDescription": "Link publiczny będzie dostępny tylko po wpisaniu hasła. To hasło zostanie zapisane w postaci zaszyfrowanej.", - "newPasswordSave": "Ustaw hasło", - "changePasswordTitle": "Zmień hasło", - "changePasswordDescription": "Po zmianie hasła poprzednie przestanie działać. To hasło zostanie zapisane w postaci zaszyfrowanej.", - "changePasswordSave": "Zmień hasło" - }, - "shareViewDisablePasswordModal": { - "title": "Wyłącz ochronę hasłem", - "description": "Czy na pewno chcesz wyłączyć ochronę hasłem dla tego publicznego linku? Poprzez wyłączenie, hasło zostanie usunięte i nie będzie możliwe jego odzyskanie", - "disable": "Wyłączyć" - }, - "publicViewAuthLogin": { - "title": "Ta strona jest chroniona hasłem", - "description": "Wprowadź prawidłowe hasło, aby uzyskać dostęp do strony.", - "enter": "Wejść", - "error": { - "incorrectPasswordTitle": "Nieprawidłowe hasło", - "incorrectPasswordText": "Podane hasło jest nieprawidłowe." - } - }, - "viewFieldsContext": { - "coverField": "Pole okładki", - "noCover": "Brak okładki", - "search": "Pola wyszukiwania", - "hideAll": "Ukryj wszystko", - "showAll": "Pokaż wszystko" - }, - "viewFilterTypeBoolean": { - "selected": "Wybrane" - }, - "viewFilter": { - "filter": "Filtr | 1 Filtr | {count} Filtry/ów" - }, - "viewContext": { - "exportView": "Eksportuj widok", - "duplicateView": "Duplikat widoku", - "renameView": "Zmień nazwę widoku", - "webhooks": "Webhooki", - "importFile": "Importuj plik", - "deleteView": "Usunąć widok", - "toPersonal": "Do osobistych", - "toCollaborative": "Do współpracy" - }, - "deleteViewModal": { - "title": "Usuń {name}", - "description": "Czy na pewno chcesz usunąć widok {name}? Dane tabeli zostaną zachowane, ale filtry, sortowania i szerokości pól związane z widokiem zostaną usunięte.", - "delete": "Usuń widok" - }, - "viewForm": { - "name": "Nazwa", - "whoCanEdit": "Kto może edytować" - }, - "galleryViewHeader": { - "customizeCards": "Dostosuj karty" - }, - "gridViewHide": { - "hideField": "Ukryj pola | 1 ukryte pole | {count} ukryte pola" - }, - "gridViewFieldType": { - "insertLeft": "Wstaw z lewej", - "insertRight": "Wstaw z prawej", - "createFilter": "Utwórz filtr", - "duplicate": "Duplikat pola", - "sortField": "Sortuj", - "hideField": "Ukryj pole" - }, - "gridViewRow": { - "rowNotMatchingFilters": "Wiersz nie pasuje do filtrów", - "rowNotMatchingSearch": "Wiersz nie pasuje do wyszukiwania", - "rowHasMoved": "Wiersz został przeniesiony" - }, - "gridView": { - "selectRow": "Wybierz wiersz", - "insertRowAbove": "Wstaw wiersz powyżej", - "insertRowBelow": "Wstaw wiersz poniżej", - "duplicateRow": "Powiel wiersz", - "enlargeRow": "Powiększ wiersz", - "deleteRow": "Usuń wiersz", - "deleteRows": "Usuń wiersze", - "copyCells": "Kopiuj komórki", - "rowCount": "Brak wierszy | 1 wiersz | {count} wierszy", - "hiddenRowsInsertedTitle": "Dodano wiersze", - "hiddenRowsInsertedMessage": "Dodano {number} nowych wierszy, ale nie są one widoczne z powodu aktywnych filtrów.", - "copiedRowURLMessage": "Adres URL wiersza {id} został skopiowany do schowka.", - "copiedRowURL": "Skopiowany adres URL wiersza", - "copyRowURL": "Skopiuj adres URL wiersza", - "generateCellsValues": "Generowanie wartości za pomocą sztucznej inteligencji", - "tooManyItemsDescription": "Nie można zaktualizować więcej niż {limit} wierszy jednocześnie, więc zaktualizowaliśmy tylko pierwszy.", - "tooManyItemsTitle": "Zbyt wiele elementów", - "AIValuesGenerationErrorTitle": "Generowanie wartości AI nie powiodło się", - "AIValuesGenerationErrorMessage": "Sprawdź API_KEY i zweryfikuj wybrany model." - }, - "gridViewFieldFile": { - "dropHere": "Upuść tutaj", - "dropFileHere": "Upuść pliki tutaj" - }, - "gridViewFieldLinkRow": { - "unnamed": "nienazwany wiersz {value}" - }, - "gridViewIdentifierOptions": { - "id": "Identyfikator wiersza", - "count": "Liczba" - }, - "formViewMeta": { - "includeRowId": "Użyj {row_id}, aby dołączyć nowo utworzony id wiersza w adresie URL." - }, - "previewAny": { - "externalWarning": "Otwarcie pliku przez zewnętrzną usługę naraża twój plik na działanie ich serwerów." - }, - "exportTableModal": { - "failedTitle": "Eksport nie powiódł się", - "failedDescription": "Eksport nie powiódł się z powodu błędu serwera.", - "cancelledTitle": "Eksport anulowany", - "cancelledDescription": "Eksport został anulowany." - }, - "exporterTypeChoices": { - "formatLabel": "Do jakiego formatu chcesz wyeksportować?" - }, - "exportTableForm": { - "viewLabel": "Wybierz widok do wyeksportowania:", - "typeError": "Brak dostępnego typu eksportera, wybierz inny widok lub całą tabelę." - }, - "exportTableLoadingBar": { - "export": "Eksport", - "download": "Pobierz" - }, - "exportTableDropdown": { - "exportEntireTable": "Eksportowanie całej tabeli" - }, - "tableCSVExporter": { - "columnSeparatorLabel": "Separator kolumn", - "recordSeparator": "separator rekordów", - "unitSeparator": "separator jednostek", - "encodingLabel": "Kodowanie", - "firstRowIsHeaderLabel": "Pierwszy wiersz to nagłówek" - }, - "apiDocsDatabase": { - "pageTitle": "Dokumentacja API bazy danych {name}", - "back": "Powrót do pulpitu", - "openDatabase": "otwórz bazę danych" - }, - "apiDocsComponent": { - "title": "REST API", - "intro": "Po utworzeniu schematu bazy danych i klucza API w {settingsLink} baza danych Baserow udostępnia własne punkty końcowe REST API do tworzenia, odczytu, aktualizacji i usuwania wierszy.", - "settings": "ustawienia", - "selectApplicationTitle": "Dla jakiej bazy danych chcesz zobaczyć dokumentację?", - "signIn": "Zaloguj się, aby zacząć", - "back": "Powrót do pulpitu" - }, - "viewAggregationType": { - "emptyCount": "Pusty", - "notEmptyCount": "Wypełniony", - "emptyPercentage": "Procent pustego", - "notEmptyPercentage": "Procent wypełnienia", - "checkedCount": "Sprawdzono", - "notCheckedCount": "Niesprawdzony", - "checkedPercentage": "Odsetek skontrolowanych", - "notCheckedPercentage": "Procent Niesprawdzonych", - "min": "Min", - "max": "Max", - "earliestDate": "Najwcześniejsza data", - "earliestDateShort": "Najwcześniej", - "latestDate": "Ostatnia data", - "latestDateShort": "Najnowszy", - "uniqueCount": "Unikalny", - "sum": "Suma", - "average": "Średnia", - "median": "Mediana", - "stdDev": "Odchylenie standardowe", - "stdDevShort": "Odchylenie standardowe", - "variance": "Wariancja" - }, - "databaseForm": { - "importLabel": "Czy chcesz zaimportować istniejące dane?", - "emptyLabel": "Zaczynać od początku", - "airtableLabel": "Importuj z Airtable (beta)" - }, - "importFromAirtable": { - "airtableShareLinkTitle": "Udostępnij link do swojej bazy", - "airtableShareLinkDescription": "Aby zaimportować swoją bazę Airtable, musisz mieć udostępniony link do całej swojej bazy. W Airtable, po otwarciu swojej bazy kliknij w przycisk udostępniania w prawym górnym rogu. Następnie musisz wybrać opcję \"Dostęp do bazy\". W modalu udostępniania możesz kliknąć w przycisk \"Utwórz wspólny link do całej bazy\", a następnie w \"Prywatny link tylko do odczytu\". Skopiuj publiczny link i wklej go w poniższym wpisie.", - "airtableShareLinkBeta": "Pamiętaj, że ta funkcja jest w wersji beta, tabele, pola (z wyjątkiem formuły, wyszukiwania i liczby) oraz dane zostaną zaimportowane. Widoki nie zostaną zaimportowane.", - "airtableShareLinkPaste": "Wklej link tutaj", - "importButtonLabel": "Importuj z Airtable", - "openButtonLabel": "Otwórz importowaną bazę danych", - "importError": "Coś poszło nie tak", - "statePending": "Oczekiwanie na rozpoczęcie", - "stateFailed": "Nie powiodło się", - "stateFinished": "Skończone", - "stateDownloadingBase": "Pobieranie schematu bazy", - "stateConverting": "Konwersja do Baserow", - "stateDownloadingFiles": "Pobieranie plików", - "stateImporting": "Importowanie", - "stateImportingTable": "Importowanie tabeli {table}", - "errorJobAlreadyRunningTitle": "Już działa", - "errorJobAlreadyRunningDescription": "Inne zadanie importu jest już uruchomione. Musisz poczekać na zakończenie tego zadania przed rozpoczęciem kolejnego.", - "linkError": "Link powinien wyglądać tak: https://airtable.com/shrxxxxxxxxxxxxxx" - }, - "chooseSingleSelectField": { - "addSelectField": "Dodaj pojedyncze pole wyboru", - "warningWhenNothingToChooseOrCreate": "Nie ma pojedynczych pól wyboru do wyboru i nie masz uprawnień do ich utworzenia." - }, - "viewDecoratorContext": { - "addDecorator": "Dodaj dekorator" - }, - "databaseDashboardSidebarLinks": { - "apiDocumentation": "Dokumentacja API" - }, - "formViewField": { - "required": "wymagane", - "showWhenMatchingConditions": "pokaż, kiedy warunki są spełnione", - "addCondition": "Dodaj warunek", - "descriptionPlaceholder": "Opis", - "addConditionGroup": "Dodaj grupę warunków", - "showFieldAs": "Pokaż pole jako" - }, - "duplicateFieldContext": { - "duplicate": "Duplikuj pola", - "cloneData": "Skopiuj dane", - "soon": "Dostępne wkrótce", - "readOnlyField": "Wartości komórek zostaną wypełnione automatycznie." - }, - "snapshotsModal": { - "title": "migawki", - "description": "Migawki są pełną kopią danych {applicationTypeName} z momentu ich utworzenia. Podczas przywracania zostanie utworzona duplikacja tych danych. Migawki są automatycznie usuwane po upływie roku.", - "descriptionLimits": "Możesz mieć maksymalnie {n} migawek na obszar roboczy. | Możesz mieć maksymalnie {n} migawek na obszar roboczy. | Możesz mieć maksymalnie {n} migawek na obszar roboczy.", - "createLabel": "Utwórz nową migawkę", - "create": "Utwórz migawkę", - "snapshotRestoredErrorTitle": "Wystąpił błąd", - "snapshotRestoredErrorMessage": "Nie udało się przywrócić migawki. Proszę spróbować ponownie później.", - "snapshotDeletedErrorTitle": "Wystąpił błąd", - "snapshotDeletedErrorMessage": "Migawki nie można usunąć. spróbuj ponownie później.", - "limitReached": "Osiągnięto limit maksymalnej liczby migawek.", - "snapshot": "Migawka", - "importingState": "Tworzenie", - "reset": "Utwórz kolejną" - }, - "deleteSnapshotModal": { - "title": "Usuń migawkę", - "content": "Czy na pewno chcesz trwale usunąć migawkę {name}?", - "confirm": "Usuń" - }, - "snapshotListItem": { - "restore": "przywrócić", - "delete": "usuń", - "created": "utworzono" - }, - "formViewHeader": { - "mode": "Tryb", - "preview": "Podgląd", - "fields": "Pola" - }, - "table": { - "chooseView": "Wybierz widok", - "adjacentRow": { - "notification": { - "notFound": { - "next": { - "title": "Nie ma już rzędów", - "message": "Nie ma następnego wiersza" - }, - "previous": { - "title": "Nigdy więcej wierszy", - "message": "Nie ma poprzedniego wiersza" - } + "webhookModal": { + "title": "Webhooki {name}", + "createWebhook": "Utwórz webhook", + "backToList": "Powrót do listy" + }, + "deleteWebhookModal": { + "title": "Usuń {webhookName}", + "deleteButton": "Usuń webhook", + "body": "Czy na pewno chcesz usunąć ten webhook? Nie będziesz mógł go później przywrócić." + }, + "webhookList": { + "noWebhooksMessage": "Nie utworzyłeś jeszcze żadnych webhooków. Webhooks mogą być używane w celu informowania innych systemów, gdy wiersz w Baserow został utworzony, zaktualizowany lub usunięty." + }, + "testWebhookModal": { + "title": "Przetestuj webhook", + "unreachable": "Serwer nieosiągalny" + }, + "webhookForm": { + "inputLabels": { + "name": "Nazwa", + "value": "Wartość", + "requestMethod": "Metoda", + "url": "Adres URL", + "userFieldNames": "Nazwy pól użytkownika", + "events": "Jakie zdarzenia powinny wyzwalać ten webhook?", + "headers": "Dodatkowe nagłówki", + "example": "Przykładowy ładunek" }, - "error": { - "title": "Wystąpił błąd", - "message": "Wystąpił błąd podczas pobierania sąsiedniego wiersza" - } - }, - "toast": { - "notFound": { - "previous": { - "message": "Nie ma poprzedniego wiersza", - "title": "Nie ma już rzędów" - }, - "next": { - "title": "Nie ma już rzędów", - "message": "Nie ma następnego wiersza" - } + "errors": { + "urlField": "To pole jest wymagane i musi być prawidłowym adresem url.", + "invalidHeaders": "Jeden z nagłówków jest nieprawidłowy." + }, + "checkbox": { + "sendUserFieldNames": "Użyj nazwy pola zamiast id" + }, + "radio": { + "allEvents": "Wyślij mi wszystko", + "customEvents": "Pozwól mi wybrać poszczególne wydarzenia" }, + "triggerButton": "Uruchom webhooka testowego", + "deactivated": { + "title": "Webhook jest nieaktywny", + "content": "Ten webhook został wyłączony, ponieważ wystąpiło zbyt wiele kolejnych niepowodzeń. Proszę sprawdzić dziennik połączeń, aby uzyskać więcej szczegółów. Kliknij na poniższy przycisk, aby aktywować go ponownie. Nie zapomnij zapisać webhooka po aktywacji.", + "activate": "Aktywować" + }, + "deprecatedEventType": { + "title": "Przestarzały typ zdarzenia", + "description": "Ten webhook nie otrzymuje jednocześnie informacji o wszystkich zmienionych wierszach. Przekonwertuj go na typ zdarzenia w stylu wsadowym. Spowoduje to zmianę ładunku treści JSON na format, który zawiera wiele wierszy.", + "convert": "Konwertuj" + }, + "triggerWhenFieldsHaveChanged": "Wyzwalanie po zmianie pól", + "helpTriggerWhenFieldsHaveChanged": "Zostanie uruchomiona tylko wtedy, gdy wartość komórki wybranych pól ulegnie zmianie." + }, + "webhook": { + "details": "szczegóły", + "lastCall": "Ostatnie połączenie: {lastCallTime}", + "noCalls": "Brak połączeń", + "callLog": "Rejestr połączeń", + "triggerDescription": "Wyzwalacze przy każdym zdarzeniu | Wyzwalacze przy {count} zdarzeń | Wyzwalacze przy {count} zdarzeń" + }, + "createWebhook": { + "errorTableWebhookMaxLimitExceededTitle": "Przekroczona maksymalna liczba webhooków", + "errorTableWebhookMaxLimitExceededDescription": "Nie można utworzyć webhooka, ponieważ przekroczono maksymalną ilość webhooków na tabelę." + }, + "sidebar": { + "viewAPI": "Wyświetl dokumentację API", + "createTable": "Nowa tabela" + }, + "sidebarItem": { + "exportTable": "Eksportuj tabelę", + "webhooks": "Webhooki", + "lastSynced": "Ostatnia synchronizacja", + "notSynced": "niezsynchronizowany", + "sync": "Tabela synchronizacji", + "updateSyncConfig": "Zaktualizuj konfigurację synchronizacji" + }, + "apiToken": { + "create": "stwórz", + "read": "czytaj", + "update": "aktualizacja", + "delete": "usuń", + "tokenPrefix": "Token:", + "viewAPIDocs": "Wyświetl dokumentację API", + "generateNewToken": "Wygeneruj nowy token", + "showOrHide": "Pokaż lub ukryj token", + "copyToClipboard": "Kopiuj do schowka", + "showDatabases": "pokaż bazy danych" + }, + "apiTokenSettings": { + "title": "Tokeny bazy danych", + "createToken": "Utwórz token", + "noTokensMessage": "Nie utworzyłeś jeszcze tokena bazy danych. Możesz użyć tokena bazy danych, aby uwierzytelnić się w punktach końcowych REST API, gdzie możesz tworzyć, czytać, aktualizować i usuwać wiersze. Możliwe jest ustawienie uprawnień na poziomie tabeli.", + "hasFullPermissions": "Posiada pełne uprawnienia, również dla wszystkich dzieci.", + "hasOnlySelectedPermissions": "Ma uprawnienia tylko do wybranych dzieci.", + "noPermissions": "Nie ma uprawnień.", + "createNewTitle": "Tworzenie nowego tokena bazy danych", + "backToOverview": "Powrót do przeglądu" + }, + "apiTokenForm": { + "nameLabel": "Nazwa", + "workspaceLabel": "Grupa" + }, + "apiDocsSelectDatabase": { + "needOneDatabase": "Musisz mieć co najmniej jedną bazę danych, aby wyświetlić dokumentację API." + }, + "apiDocsExample": { + "requestSample": "Poproś o próbkę", + "responseSample": "Próbka odpowiedzi", + "userFieldNames": "Nazwy pól użytkownika" + }, + "apiDocsParameter": { + "optional": "opcjonalny", + "defaultValue": "Domyślnie: {value}" + }, + "apiDocsTableGetRow": { + "description": "Pobieranie pojedynczego wiersza {name}.", + "rowId": "Unikatowy identyfikator żądanego wiersza." + }, + "apiDocsErrors": { + "errorCode": "Kod błędu", + "name": "Nazwa", + "description": "Opis", + "okDescription": "Żądanie zakończone pomyślnie.", + "badRequestDescription": "Żądanie zawiera nieprawidłowe wartości lub nie można przeanalizować JSON.", + "unauthorizedDescription": "Gdy próbujesz uzyskać dostęp do punktu końcowego bez ważnego tokena bazy danych.", + "notFoundDescription": "Nie znaleziono wiersza lub tabeli.", + "requestEntityTooLargeDescription": "Żądanie przekroczyło maksymalny dozwolony rozmiar ładunku.", + "internalErrorDescription": "Serwer napotkał nieoczekiwany stan.", + "badGatewayDescription": "Baserow uruchamia się ponownie lub trwa nieoczekiwana awaria.", + "unavailableDescription": "Serwer nie mógł przetworzyć Twojego żądania na czas." + }, + "apiDocsTableFields": { + "tableTitle": "Tabela {name}", + "tableId": "ID tej tabeli to:", + "description": "Każdy wiersz w tabeli {name} zawiera następujące pola.", + "id": "ID", + "name": "Nazwa", + "type": "Typ", + "compatibleFilters": "Kompatybilne filtry" + }, + "apiDocsTableListRows": { + "description": "Aby wyświetlić listę wierszy w tabeli *{name}* należy wykonać żądanie `GET` do punktu końcowego *{name}*. Odpowiedź jest paginowana i domyślnie zwracana jest pierwsza strona. Właściwa strona może zostać pobrana poprzez podanie parametrów zapytania `page` i `size`.", + "page": "Określa, która strona wierszy powinna zostać zwrócona.", + "size": "Określa ile wierszy powinno być zwróconych na stronę.", + "userFieldNames": "Gdy dostarczony jest parametr GET `user_field_names`, a jego wartość jest jedną z następujących: `y`, `yes`, `true`, `t`, `on`, `1` lub pusty ciąg znaków, nazwy pól zwrócone przez ten punkt końcowy będą rzeczywistymi nazwami pól.\n\nJeśli parametr GET `user_field_names` nie zostanie podany lub jeśli nie pasuje do żadnej z powyższych wartości, wówczas wszystkie zwrócone nazwy pól będą miały postać `field_`, po której nastąpi identyfikator pola. Na przykład `field_1` odnosi się do pola o identyfikatorze `1`.\n\n Dodatkowo, gdy ustawiona jest wartość `user_field_names`, zmienia się zachowanie innych parametrów GET `order_by`, `include` i `exclude`. Zamiast tego oczekują one rozdzielonych przecinkami list rzeczywistych nazw pól.", + "search": "Jeśli zostanie podane, zostaną zwrócone tylko wiersze z danymi pasującymi do zapytania.", + "orderBy": "Opcjonalnie wiersze mogą być uporządkowane według pól oddzielonych przecinkiem. Domyślnie lub po poprzedzeniu znakiem '+', pole jest uporządkowane rosnąco (A-Z), ale poprzedzeniu znakiem '-' może być uporządkowane malejąco (Z-A).\n\n #### Z `user_field_names`:\n\n `order_by` powinna być rozdzieloną przecinkami listą nazw pól, po których mają być zamawiane. Na przykład jeśli podasz następujący parametr GET `order_by=My Field,-My Field 2` wiersze zostaną uporządkowane według pola o nazwie `My Field` w porządku rosnącym. Jeśli niektóre pola mają tę samą wartość, ten podzbiór zostanie uporządkowany według pola o nazwie `My Field 2` w porządku malejącym.\n\n Upewnij się, że pola z nazwami zaczynającymi się od `+` lub `-` są wyraźnie poprzedzone innym `+` lub `-`. Np. `+-Name`.\n\n Nazwy pól zawierające przecinki muszą być otoczone cudzysłowami: `Name ,,`''. Jeśli nazwy pól zawierają cudzysłowy, to muszą one zostać usunięte przy użyciu znaku ``. Eg: `Name \\\"`. \n\n#### Bez `user_field_names`:\n\n `order_by` powinno być rozdzieloną przecinkami listą `field_`, po której następuje id pola, po którym ma być złożone zamówienie. Na przykład, jeśli podasz następujący parametr GET `order_by=field_1,-field_2` wiersze zostaną uporządkowane według `field_1` w porządku rosnącym. Jeśli niektóre pola mają tę samą wartość, ten podzbiór zostanie uporządkowany przez `field_2` w porządku malejącym.", + "filter": "Wiersze mogą być opcjonalnie filtrowane przy użyciu tych samych filtrów widoku, które są dostępne dla widoków. Można zastosować wiele filtrów, jeśli mają one ten sam format. Zmienne `field` i `filter` wskazują odpowiednio jak i gdzie zastosować filtr.\n\n#### Z `user_field_names`:\n\nNa przykład, jeśli opcjonalnie podasz następujący parametr GET: `filter__Name__equal=test`, zwrócone zostaną tylko wiersze, w których wartość `Name` jest równa \"test\". Ta metoda jest kompatybilna wstecz i będzie sprawdzać `field_id`, jeśli nie powiedzie się na nazwie.\n\n#### Bez `user_field_names`:\n\nNa przykład, jeśli opcjonalnie podasz następujący parametr GET: `filter__field_1__equal=test`, zwrócone zostaną tylko wiersze, w których wartość `field_1` jest równa 'test'.\n\nNależy pamiętać, że jeśli podano parametr filters, ten parametr zostanie zignorowany. ", + "filterLink": "Listę wszystkich filtrów można znaleźć tutaj.", + "filterType": "- `AND`: Wskazuje, że wiersze muszą pasować do wszystkich podanych filtrów.\n- `OR`: Wskazuje, że wiersze muszą pasować tylko do jednego z filtrów.\n\n Działa to tylko wtedy, gdy podane są dwa lub więcej filtrów.", + "include": "Wszystkie pola są domyślnie zawarte w odpowiedzi. Możesz wybrać podzbiór pól do uwzględnienia poprzez podanie parametru zapytania include.\n\n #### Z `user_field_names`:\n\n `include` powinna być rozdzieloną przecinkami listą nazw pól, które mają być zawarte w wynikach. Na przykład, jeśli podasz następujący parametr GET: `include=My Field,-My Field 2` to tylko te pola zostaną uwzględnione (chyba, że zostaną wyraźnie wykluczone).\n\n Nazwy pól zawierające przecinki muszą być otoczone cudzysłowami: `\"Name ,\"`. Jeśli nazwy pól zawierają cudzysłowy, to muszą one zostać usunięte przy użyciu znaku `\\` . Na przykład: `Name \\\"`.\n\n #### Bez `user_field_names`:\n\n `include` powinno być rozdzieloną przecinkami listą `field_`, po której następuje id pola do uwzględnienia w wynikach. Na przykład: Jeśli podasz następujący parametr GET `exclude=field_1,field_2` to pola o id `1` i id `2` to tylko te pola zostaną uwzględnione (chyba, że zostaną jawnie wykluczone).", + "exclude": "Wszystkie pola są domyślnie zawarte w odpowiedzi. Możesz wybrać podzbiór pól do wykluczenia poprzez podanie parametru zapytania exclude.\n\n #### Z `user_field_names`:\n\n `exclude` powinna być rozdzieloną przecinkami listą nazw pól, które mają być wykluczone z wyników. Na przykład, jeśli podasz następujący parametr GET: `exclude=My Field,-My Field 2` to te pola zostaną wykluczone.\n\n Nazwy pól zawierające przecinki muszą być otoczone cudzysłowami: `\"Name ,\"`. Jeśli nazwy pól zawierają cudzysłowy, to muszą one zostać usunięte przy użyciu znaku `\\`. Na przykład: `Name \\\"`.\n\n #### Bez `user_field_names`:\n\n `exclude` powinno być rozdzieloną przecinkami listą `field_`, po której następuje id pola do wykluczenia z wyników. Na przykład: Jeśli podasz następujący parametr GET `exclude=field_1,field_2` to pola o id `1` i id `2` zostaną wykluczone.", + "viewId": "Domyślnie nie są stosowane filtry i sortowania poza tymi, które zostały zdefiniowane w parametrach zapytania. Możesz dodać filtry i sortowania widoku poprzez podanie jego `id` w parametrze `view_id` GET. Na przykład, jeśli podasz następujący parametr GET `view_id=1` to filtry i sortowania zdefiniowane w widoku o id `1` zostaną zastosowane. Możesz znaleźć `view_id` w menu kontekstowym dowolnego widoku. Jest to liczba w nawiasach za nazwą widoku. \n\n #### Z `filter__{field}__{filter}`. \n\n Zastosowany zostanie zarówno filtr podany w parametrze zapytania, jak i filtry zdefiniowane w widoku.\n\n #### Z `order_by` \n\n Jeśli `order_by` jest podane, sortowanie zdefiniowane w widoku zostanie zignorowane.", + "filtersBuilder": "Otwórz kreator parametrów filtrów", + "filters": "Wiersze mogą być opcjonalnie filtrowane przy użyciu tych samych filtrów widoku, które są dostępne dla widoków. Ten parametr akceptuje serializowany ciąg JSON zawierający drzewo filtrów do zastosowania w tym widoku. Drzewo filtrów jest zagnieżdżoną strukturą zawierającą filtry, które należy zastosować. \\n\\n#### Z `user_field_names`:\\n\\nPrzykład prawidłowego drzewa filtrów jest następujący: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": \\\"Name\\\", \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`.\\n\\n#### Bez `user_field_names`:\\n\\nNa przykład, jeśli opcjonalnie podasz następujący parametr GET: `{'{'}\\\"filter_type\\\": \\\"AND\\\", \\\"filters\\\": [{'{'}\\\"field\\\": 1, \\\"type\\\": \\\"equal\\\", \\\"value\\\": \\\"test\\\"{'}'}]{'}'}`\\n\\nNależy pamiętać, że jeśli ten parametr zostanie podany, wszystkie inne `filter__{field}__{filter}` zostaną zignorowane, podobnie jak parametr filter_type.", + "join": "Umożliwia zażądanie wyszukiwania wartości pól z tabeli docelowej poprzez istniejące pola wierszy linków. Nazwa parametru musi być nazwą istniejącego pola wiersza łącza, po którym następuje __join. Wartość powinna być listą nazw pól, dla których chcemy wyszukać dodatkowe wartości. Można podać jedno lub wiele pól docelowych. Nie jest możliwe wyszukanie wartości pola wiersza łącza w tabeli docelowej.\n\n #### Z `user_field_names`:\n\n `join` powinno być rozdzieloną przecinkami listą nazw pól, które mają być uwzględnione w wynikach. Na przykład: Jeśli podasz następujący parametr GET `LinkRowField__join=MyField,MyField2` to wartości `MyField` i `My Field2` w tabeli połączonej przez `LinkRowField` zostaną uwzględnione w odpowiedzi.\n\n#### Bez `user_field_names`:\n\n `join` powinno być rozdzieloną przecinkami listą `field_`, po której następuje identyfikator pola do uwzględnienia w wynikach. Na przykład: Jeśli podasz następujący parametr GET `field_1__join=field_2,field_3` to wartości `field_2` i `field_3` w tabeli połączonej przez `field_1` zostaną uwzględnione w odpowiedzi." + }, + "apiDocsIntro": { + "intro": "Baza danych {name} zapewnia łatwy sposób integracji danych z dowolnym systemem zewnętrznym. API podąża za semantyką REST, używa JSON do kodowania obiektów i opiera się na standardowych kodach HTTP, błędach odczytywanych maszynowo i przez człowieka, aby zasygnalizować wyniki operacji.", + "autoDocDescription": "Ta dokumentacja jest generowana automatycznie na podstawie tabel i pól, które znajdują się w Twojej bazie danych. Jeśli dokonasz zmian w swojej bazie danych, tabeli lub polach, może się okazać, że interfejs API również się zmienił. Dlatego upewnij się, że zaktualizowałeś odpowiednio swoją implementację API.", + "databaseId": "ID tej bazy danych to:", + "jsClient": "Przykładowy klient API w języku JavaScript:", + "pythonClient": "Przykładowy klient API w języku Python:" + }, + "apiDocsTableListFields": { + "description": "Aby wylistować pola tabeli {name} należy wykonać żądanie `GET` do punktu końcowego {name}. Lista pól jest możliwa tylko wtedy, gdy token ma uprawnienia do odczytu, tworzenia lub aktualizacji.", + "resultFieldProperties": "Właściwości pola wynikowego", + "id": "Klucz główny pola. Może zostać użyte do wygenerowania nazwy kolumny w bazie danych poprzez dodanie prefiksu `field_`.", + "name": "Nazwa pola.", + "tableId": "Powiązany identyfikator ID tabeli.", + "order": "Kolejność pól w tabeli. 0 dla pierwszego pola.", + "primary": "Wskazuje czy pole jest polem głównym. Jeśli `true`, pole nie może być usunięte, a wartość powinna reprezentować cały wiersz.", + "type": "Typ zdefiniowany dla tego pola.", + "extraProps": "Niektóre dodatkowe właściwości nie zostały tu opisane, ponieważ są specyficzne dla danego typu.", + "readOnly": "Wskazuje, czy pole jest polem tylko do odczytu. Jeśli ma wartość true, nie można zaktualizować wartości komórki.", + "descriptionField": "Opis pola" + }, + "apiDocsTableDeleteRow": { + "description": "Usuwa istniejący wiersz {name}.", + "rowId": "Unikalny identyfikator wiersza, który ma zostać usunięty." + }, + "apiDocsTableDeleteRows": { + "description": "Usuwa istniejące wiersze {name}.", + "items": "Tablica identyfikatorów wierszy, które powinny zostać usunięte." + }, + "apiDocsTableMoveRow": { + "description": "Przesuwa istniejący wiersz {name} przed inny wiersz. Jeśli nie podano `before_id`, to wiersz zostanie przeniesiony na koniec tabeli.", + "rowId": "Przesuwa wiersz związany z wartością.", + "before": "Przenosi wiersz związany z podanym `row_id` przed wiersz związany z podaną wartością. Jeśli nie podano, to wiersz zostanie przeniesiony na koniec." + }, + "apiDocsTableUpdateRow": { + "description": "Aktualizuje istniejący wiersz {name}.", + "rowId": "Unikatowy identyfikator wiersza, który ma zostać zaktualizowany.", + "before": "Jeśli zostanie podany, nowo utworzony wiersz zostanie umieszczony przed wierszem o podanym identyfikatorze." + }, + "apiDocsTableUpdateRows": { + "description": "Aktualizuje istniejące wiersze {name}.", + "id": "Identyfikator wiersza." + }, + "apiDocsTableCreateRow": { + "description": "Utwórz nowy wiersz {name}.", + "before": "Jeśli zostanie podane, to nowo utworzony wiersz zostanie umieszczony przed wierszem o podanym id." + }, + "apiDocsTableCreateRows": { + "description": "Utwórz nowe wiersze {name}.", + "before": "Jeśli zostanie podane, to nowo utworzone wiersze zostaną umieszczone przed wierszem o podanym id." + }, + "apiDocsAuth": { + "description": "Baserow używa prostego uwierzytelniania opartego na tokenach. Aby korzystać z opisanych poniżej punktów końcowych, musisz wygenerować co najmniej jeden token API w swoim {settingsLink}. Możliwe jest nadawanie uprawnień do tworzenia, odczytu, aktualizacji i usuwania aż do poziomu tabeli na token. Możesz uwierzytelnić się w interfejsie API, podając swój token interfejsu API w nagłówku tokena elementu nośnego autoryzacji HTTP. Wszystkie żądania API muszą być uwierzytelnione i przesłane przez HTTPS.", + "settingsLink": "ustawienia" + }, + "apiDocsFilters": { + "filter": "Filtr", + "exampleValue": "Przykładowa wartość", + "example": "Pełny przykład", + "field": "pole {name}", + "deprecated": "przestarzały" + }, + "fieldTextSubForm": { + "placeholder": "Tekst domyślny" + }, + "fieldSingleSelectSubForm": { + "optionsLabel": "Opcje" + }, + "fieldSingleSelectDropdown": { + "notFound": "Nie znaleziono opcji" + }, + "fieldDateSubForm": { + "dateFormatLabel": "Format daty", + "dateFormatEuropean": "Europejski", + "dateFormatUS": "US", + "dateFormatISO": "ISO", + "includeTimeLabel": "Uwzględnić czas", + "timeFormatLabel": "Format czasu", + "24Hour": "24 godziny", + "12Hour": "12 godzin", + "showTimezoneLabel": "Pokaż strefę czasową", + "forceTimezoneLabel": "Ustaw strefę czasową dla wszystkich współpracowników", + "addTimezoneOffsetLabel": "Przelicz wartości (dodaj {utcOffsetDiff} minut)", + "subTimezoneOffsetLabel": "Przelicz wartości (odejmij {utcOffsetDiff} minut)", + "forceTimezoneValue": "Strefa czasowa" + }, + "fieldLinkRowSubForm": { + "noTable": "Potrzebujesz co najmniej jednej innej tabeli w tej samej bazie danych, aby połączyć się z nią.", + "selectTableLabel": "Wybierz tabelę, do której chcesz utworzyć link", + "hasRelatedFieldLabel": "Utwórz powiązane pole w podlinkowanej tabeli", + "limitToView": "Ogranicz wybór do widoku", + "limitToViewDescription": "Należy pamiętać, że jest to tylko wizualne. Nadal możliwe jest tworzenie relacji poza widokiem za pośrednictwem powiązanej tabeli lub interfejsu API." + }, + "fieldSelectOptions": { + "add": "Dodaj opcję" + }, + "fieldNumberSubForm": { + "typeLabel": "Typ numeru", + "integer": "Liczba całkowita", + "decimal": "Dziesiętny", + "decimalPlacesLabel": "Miejsca dziesiętne", + "allowNegative": "Zezwalaj na negatywne", + "separatorLabel": "Separator tysięcy i dziesiętny", + "prefixPlaceholder": "Prefiks", + "suffixPlaceholder": "Sufiks", + "prefixAndSuffixLabel": "Prefiks / sufiks", + "spaceComma": "Spacja, przecinek (1 000 000,00)", + "spacePeriod": "Spacja, kropka (1 000 000.00)", + "commaPeriod": "Przecinek, kropka (1,000,000.00)", + "periodComma": "Kropka, przecinek (1.000.000,00)", + "noFormatting": "Bez formatowania" + }, + "fieldContext": { + "editField": "Edytuj pole", + "deleteField": "Usuń pole", + "hideField": "Ukryj pole", + "showField": "Pokaż pole", + "changePrimaryField": "Zmień pole podstawowe" + }, + "fieldForm": { + "name": "Nazwa", + "fieldAlreadyExists": "Pole o tej nazwie już istnieje.", + "nameNotAllowed": "Ta nazwa pola nie jest dozwolona.", + "nameTooLong": "Ta nazwa pola jest zbyt długa.", + "description": "Opis", + "addDescription": "Dodaj opis" + }, + "fieldLookupSubForm": { + "noTable": "Aby utworzyć pole odnośnika, potrzebujesz co najmniej jednego pola wiersza linku.", + "selectThroughFieldLabel": "Wybieranie pola wiersza łącza", + "selectTargetFieldLabel": "Wybierz pole do wyszukania" + }, + "fieldFormulaNumberSubForm": { + "typeLabel": "Typ numeru", + "integer": "Liczba całkowita", + "decimal": "Dziesiętny", + "decimalPlacesLabel": "Miejsca dziesiętne", + "allowNegative": "Zezwalaj na negatywne" + }, + "fieldRatingSubForm": { + "maxValue": "Maks.", + "color": "Kolor", + "style": "Styl" + }, + "rowCreateModal": { + "addField": "Dodaj pole" + }, + "selectRowContent": { + "search": "Szukaj wierszy", + "hideFields": "Ukryj pola" + }, + "rowEditModal": { + "addField": "Dodaj pole", + "showHiddenFields": "Pokaż ukryte pola", + "hideHiddenFields": "Ukryj ukryte pola" + }, + "rowEditFieldMultipleSelect": { + "addOption": "Wybierz opcję" + }, + "rowEditFieldFile": { + "addFile": "Dodaj plik", + "sizes": { + "0": "Bajty", + "1": "KB", + "2": "MB", + "3": "GB", + "4": "TB", + "5": "PB" + } + }, + "rowEditFieldLinkRow": { + "addLink": "Wybierz link" + }, + "tableCSVImporter": { + "chooseFileLabel": "Wybierz plik CSV", + "chooseFileDescription": "Możesz zaimportować istniejący CSV, przesyłając plik .CSV z danymi tabelarycznymi. Większość aplikacji arkuszy kalkulacyjnych pozwoli Ci wyeksportować Twój arkusz jako plik .CSV.", + "chooseFile": "Wybierz plik CSV", + "columnSeparator": "Separator kolumn", + "recordSeparator": "separator rekordów", + "unitSeparator": "separator jednostek", + "encoding": "Kodowanie", + "firstRowHeader": "Pierwszy wiersz to nagłówek", + "limitFileSize": "Maksymalny rozmiar pliku to {limit} MB.", + "limitError": "Nie jest możliwe zaimportowanie więcej niż {limit} wierszy.", + "emptyCSV": "Ten plik CSV jest pusty." + }, + "importer": { + "fieldDefaultName": "Pole {liczba}", + "loading": "Ładowanie pliku", + "decoding": "Dekodowanie danych", + "parsing": "Analiza danych", + "preparing": "Przygotowanie danych", + "inProgress": "W trakcie..." + }, + "tableForm": { + "name": "Nazwa" + }, + "tableXMLImporter": { + "fileLabel": "Wybierz plik XML", + "fileDescription": "Istniejący kod XML można zaimportować, przesyłając plik .XML z danymi tabelarycznymi, tj.:", + "chooseButton": "Wybierz plik XML", + "processingError": "Podczas przetwarzania XML wystąpił błąd: {errors}", + "emptyError": "Ten plik XML jest pusty.", + "limitFileSize": "Maksymalna wielkość pliku to {limit}MB.", + "limitError": "Nie można zaimportować więcej niż {limit} wierszy." + }, + "tableJSONImporter": { + "fileLabel": "Wybierz plik JSON", + "fileDescription": "Możesz zaimportować istniejący plik JSON, przesyłając plik .json z danymi tabelarycznymi, tj:", + "chooseButton": "Wybierz plik JSON", + "encodingLabel": "Kodowanie", + "processingError": "Podczas parsowania JSON wystąpił błąd: {error}", + "arrayError": "Plik JSON nie jest tablicą.", + "emptyError": "Ten plik JSON jest pusty.", + "limitFileSize": "Maksymalny rozmiar pliku to {limit}MB.", + "limitError": "Nie jest możliwe zaimportowanie więcej niż {limit} wierszy." + }, + "tablePasteImporter": { + "pasteLabel": "Wklej dane tabeli", + "pasteDescription": "Możesz skopiować komórki z arkusza kalkulacyjnego i wkleić je poniżej.", + "firstRowHeader": "Pierwszy rząd to nagłówek", + "limitError": "Nie jest możliwe zaimportowanie więcej niż {limit} wierszy." + }, + "importFileModal": { + "title": "Utwórz nową tabelę", + "additionalImportTitle": "Importuj do {table}", + "importLabel": "Czy chcesz zaimportować istniejące dane?", + "newTable": "Zacznij od nowej tabeli", + "addButton": "Dodaj tabelę", + "showTable": "pokaż tabelę", + "importButton": "Import", + "uploading": "Przesyłanie...", + "preparing": "Przygotowywanie danych...", + "importError": "Coś poszło nie tak podczas importowania pliku", + "openCreatedTable": "Otwórz utworzoną tabelę", + "showReport": "Pokaż raport o błędach", + "reportTitleFailure": "Nieudane wiersze", + "reportTitleSuccess": "Importowanie powiodło się, ale...", + "reportMessage": "Nie udało się zaimportować następujących indeksów wierszy:", + "stateRowCreation": "Importowanie...", + "statePreValidation": "Weryfikuję dane...", + "stateCreateTable": "Tworzę tabelę...", + "fieldMappingTitle": "Mapowanie pól", + "fieldMappingDescription": "Automatycznie zmapowaliśmy kolumny pól Baserow w Twojej tabeli. Możesz je zmienić poniżej. Każda niezgodna komórka pozostanie pusta po imporcie.", + "selectImportMessage": "Proszę wybrać dane do importu.", + "filePreview": "Podgląd zawartości pliku", + "changeImporterType": "Zmień typ importu", + "importPreview": "Podgląd importu", + "defaultName": "Tabela" + }, + "formulaAdvancedEditContext": { + "textAreaFormulaInputPlaceholder": "Kliknij, aby edytować formułę", + "fields": "Pola", + "functions": "Funkcje", + "operators": "Operatory", + "fieldType": "Pole {type}" + }, + "fieldFormulaInitialSubForm": { + "formulaInputPlaceholder": "Kliknij, aby edytować formułę", + "refreshFormulaOptions": "Odśwież opcje formuł" + }, + "formulaFieldItemDescription": { + "syntax": "Składnia", + "examples": "Przykłady" + }, + "viewSearchContext": { + "searchInRows": "Szukaj we wszystkich wierszach", + "hideNotMatching": "ukryj nie pasujące wiersze" + }, + "viewsContext": { + "searchView": "Wyszukaj widoki", + "noViews": "Nie znaleziono widoków", + "collaborative": "Współpraca" + }, + "viewFilterTypeLinkRow": { + "unnamed": "nienazwany rząd {value}", + "choose": "Wybierz wiersz" + }, + "viewFilterContext": { + "addFilter": "Dodaj filtr", + "disableAllFilters": "wszystkie wyłączone", + "noFilterTitle": "Nie utworzyłeś jeszcze filtra", + "noFilterText": "Filtry umożliwiają pokazanie wierszy spełniających określone warunki.", + "where": "Gdzie", + "and": "I", + "or": "Lub", + "relatedFieldNotFound": "Powiązane pole nie zostało znalezione.", + "filterTypeNotFound": "Niezgodny typ filtra.", + "noCompatibleFilterTypesErrorTitle": "Brak kompatybilnych typów filtrów", + "noCompatibleFilterTypesErrorMessage": "Żadne z twoich pól nie ma kompatybilnych typów filtrów", + "addFilterGroup": "Dodaj grupę filtrów" + }, + "viewFilterTypeFileTypeDropdown": { + "image": "zdjęcie", + "document": "dokument" + }, + "createViewModal": { + "createNew": "Utwórz nowy {view}", + "add": "Dodaj {view}" + }, + "shareViewLink": { + "shareView": "Udostępnij {viewTypeSharingLinkName}", + "shareViewTitle": "Utwórz prywatny link do udostępniania do {viewTypeSharingLinkName}", + "sharedViewTitle": "Ten {viewTypeSharingLinkName} jest obecnie udostępniany za pośrednictwem linku prywatnego", + "sharedViewDescription": "Osoby, które posiadają link mogą zobaczyć {viewTypeSharingLinkName}.", + "disableLink": "wyłącz udostępniony link", + "generateNewUrl": "wygeneruj nowy adres URL", + "copyURL": "skopiuj adres URL", + "EnablePassword": "Ogranicz dostęp za pomocą hasła", + "DisablePassword": "Dostęp jest chroniony hasłem", + "ChangePassword": "Zmień" + }, + "viewSortContext": { + "noSortTitle": "Sortowanie nie zostało jeszcze utworzone", + "noSortText": "Sortowanie pozwala na sortowanie wierszy według pola.", + "sortBy": "Sortuj według", + "thenBy": "Następnie przez", + "addSort": "wybierz pole do sortowania według" + }, + "viewSort": { + "sort": "Sortowanie | 1 Sortowanie | {count} Sortowań" + }, + "viewDecorator": { + "decorator": "Kolor | 1 Kolor | {count} Kolory" + }, + "viewRotateSlugModal": { + "title": "Odśwież URL", + "refreshWarning": "Czy jesteś pewien, że chcesz odświeżyć adres URL {viewName}? Po odświeżeniu zostanie wygenerowany nowy adres URL i nie będzie można uzyskać dostępu do {viewTypeSharingLinkName} za pomocą starego adresu URL. Wszyscy, którym udostępniłeś adres URL, nie będą mogli uzyskać dostępu do {viewTypeSharingLinkName}.", + "generateNewURL": "Wygeneruj nowy adres URL" + }, + "shareViewEnablePasswordModal": { + "newPasswordTitle": "Wprowadź hasło", + "newPasswordDescription": "Link publiczny będzie dostępny tylko po wpisaniu hasła. To hasło zostanie zapisane w postaci zaszyfrowanej.", + "newPasswordSave": "Ustaw hasło", + "changePasswordTitle": "Zmień hasło", + "changePasswordDescription": "Po zmianie hasła poprzednie przestanie działać. To hasło zostanie zapisane w postaci zaszyfrowanej.", + "changePasswordSave": "Zmień hasło" + }, + "shareViewDisablePasswordModal": { + "title": "Wyłącz ochronę hasłem", + "description": "Czy na pewno chcesz wyłączyć ochronę hasłem dla tego publicznego linku? Poprzez wyłączenie, hasło zostanie usunięte i nie będzie możliwe jego odzyskanie", + "disable": "Wyłączyć" + }, + "publicViewAuthLogin": { + "title": "Ta strona jest chroniona hasłem", + "description": "Wprowadź prawidłowe hasło, aby uzyskać dostęp do strony.", + "enter": "Wejść", "error": { - "title": "Wystąpił błąd", - "message": "Wystąpił błąd podczas pobierania sąsiedniego wiersza" + "incorrectPasswordTitle": "Nieprawidłowe hasło", + "incorrectPasswordText": "Podane hasło jest nieprawidłowe." } - } + }, + "viewFieldsContext": { + "coverField": "Pole okładki", + "noCover": "Brak okładki", + "search": "Pola wyszukiwania", + "hideAll": "Ukryj wszystko", + "showAll": "Pokaż wszystko" + }, + "viewFilterTypeBoolean": { + "selected": "Wybrane" + }, + "viewFilter": { + "filter": "Filtr | 1 Filtr | {count} Filtry/ów" + }, + "viewContext": { + "exportView": "Eksportuj widok", + "duplicateView": "Duplikat widoku", + "renameView": "Zmień nazwę widoku", + "webhooks": "Webhooki", + "importFile": "Importuj plik", + "deleteView": "Usunąć widok", + "toPersonal": "Do osobistych", + "toCollaborative": "Do współpracy" + }, + "deleteViewModal": { + "title": "Usuń {name}", + "description": "Czy na pewno chcesz usunąć widok {name}? Dane tabeli zostaną zachowane, ale filtry, sortowania i szerokości pól związane z widokiem zostaną usunięte.", + "delete": "Usuń widok" + }, + "viewForm": { + "name": "Nazwa", + "whoCanEdit": "Kto może edytować" + }, + "galleryViewHeader": { + "customizeCards": "Dostosuj karty" + }, + "gridViewHide": { + "hideField": "Ukryj pola | 1 ukryte pole | {count} ukryte pola" + }, + "gridViewFieldType": { + "insertLeft": "Wstaw z lewej", + "insertRight": "Wstaw z prawej", + "createFilter": "Utwórz filtr", + "duplicate": "Duplikat pola", + "sortField": "Sortuj", + "hideField": "Ukryj pole" + }, + "gridViewRow": { + "rowNotMatchingFilters": "Wiersz nie pasuje do filtrów", + "rowNotMatchingSearch": "Wiersz nie pasuje do wyszukiwania", + "rowHasMoved": "Wiersz został przeniesiony" + }, + "gridView": { + "selectRow": "Wybierz wiersz", + "insertRowAbove": "Wstaw wiersz powyżej", + "insertRowBelow": "Wstaw wiersz poniżej", + "duplicateRow": "Powiel wiersz", + "enlargeRow": "Powiększ wiersz", + "deleteRow": "Usuń wiersz", + "deleteRows": "Usuń wiersze", + "copyCells": "Kopiuj komórki", + "rowCount": "Brak wierszy | 1 wiersz | {count} wierszy", + "hiddenRowsInsertedTitle": "Dodano wiersze", + "hiddenRowsInsertedMessage": "Dodano {number} nowych wierszy, ale nie są one widoczne z powodu aktywnych filtrów.", + "copiedRowURLMessage": "Adres URL wiersza {id} został skopiowany do schowka.", + "copiedRowURL": "Skopiowany adres URL wiersza", + "copyRowURL": "Skopiuj adres URL wiersza", + "generateCellsValues": "Generowanie wartości za pomocą sztucznej inteligencji", + "tooManyItemsDescription": "Nie można zaktualizować więcej niż {limit} wierszy jednocześnie, więc zaktualizowaliśmy tylko pierwszy.", + "tooManyItemsTitle": "Zbyt wiele elementów", + "AIValuesGenerationErrorTitle": "Generowanie wartości AI nie powiodło się", + "AIValuesGenerationErrorMessage": "Sprawdź API_KEY i zweryfikuj wybrany model." + }, + "gridViewFieldFile": { + "dropHere": "Upuść tutaj", + "dropFileHere": "Upuść pliki tutaj" + }, + "gridViewFieldLinkRow": { + "unnamed": "nienazwany wiersz {value}" + }, + "gridViewIdentifierOptions": { + "id": "Identyfikator wiersza", + "count": "Liczba" + }, + "formViewMeta": { + "includeRowId": "Użyj {row_id}, aby dołączyć nowo utworzony id wiersza w adresie URL." + }, + "previewAny": { + "externalWarning": "Otwarcie pliku przez zewnętrzną usługę naraża twój plik na działanie ich serwerów." + }, + "exportTableModal": { + "failedTitle": "Eksport nie powiódł się", + "failedDescription": "Eksport nie powiódł się z powodu błędu serwera.", + "cancelledTitle": "Eksport anulowany", + "cancelledDescription": "Eksport został anulowany." + }, + "exporterTypeChoices": { + "formatLabel": "Do jakiego formatu chcesz wyeksportować?" + }, + "exportTableForm": { + "viewLabel": "Wybierz widok do wyeksportowania:", + "typeError": "Brak dostępnego typu eksportera, wybierz inny widok lub całą tabelę." + }, + "exportTableLoadingBar": { + "export": "Eksport", + "download": "Pobierz" + }, + "exportTableDropdown": { + "exportEntireTable": "Eksportowanie całej tabeli" + }, + "tableCSVExporter": { + "columnSeparatorLabel": "Separator kolumn", + "recordSeparator": "separator rekordów", + "unitSeparator": "separator jednostek", + "encodingLabel": "Kodowanie", + "firstRowIsHeaderLabel": "Pierwszy wiersz to nagłówek" + }, + "apiDocsDatabase": { + "pageTitle": "Dokumentacja API bazy danych {name}", + "back": "Powrót do pulpitu", + "openDatabase": "otwórz bazę danych" + }, + "apiDocsComponent": { + "title": "REST API", + "intro": "Po utworzeniu schematu bazy danych i klucza API w {settingsLink} baza danych Baserow udostępnia własne punkty końcowe REST API do tworzenia, odczytu, aktualizacji i usuwania wierszy.", + "settings": "ustawienia", + "selectApplicationTitle": "Dla jakiej bazy danych chcesz zobaczyć dokumentację?", + "signIn": "Zaloguj się, aby zacząć", + "back": "Powrót do pulpitu" + }, + "viewAggregationType": { + "emptyCount": "Pusty", + "notEmptyCount": "Wypełniony", + "emptyPercentage": "Procent pustego", + "notEmptyPercentage": "Procent wypełnienia", + "checkedCount": "Sprawdzono", + "notCheckedCount": "Niesprawdzony", + "checkedPercentage": "Odsetek skontrolowanych", + "notCheckedPercentage": "Procent Niesprawdzonych", + "min": "Min", + "max": "Max", + "earliestDate": "Najwcześniejsza data", + "earliestDateShort": "Najwcześniej", + "latestDate": "Ostatnia data", + "latestDateShort": "Najnowszy", + "uniqueCount": "Unikalny", + "sum": "Suma", + "average": "Średnia", + "median": "Mediana", + "stdDev": "Odchylenie standardowe", + "stdDevShort": "Odchylenie standardowe", + "variance": "Wariancja" + }, + "databaseForm": { + "importLabel": "Czy chcesz zaimportować istniejące dane?", + "emptyLabel": "Zaczynać od początku", + "airtableLabel": "Importuj z Airtable (beta)" + }, + "importFromAirtable": { + "airtableShareLinkTitle": "Udostępnij link do swojej bazy", + "airtableShareLinkDescription": "Aby zaimportować swoją bazę Airtable, musisz mieć udostępniony link do całej swojej bazy. W Airtable, po otwarciu swojej bazy kliknij w przycisk udostępniania w prawym górnym rogu. Następnie musisz wybrać opcję \"Dostęp do bazy\". W modalu udostępniania możesz kliknąć w przycisk \"Utwórz wspólny link do całej bazy\", a następnie w \"Prywatny link tylko do odczytu\". Skopiuj publiczny link i wklej go w poniższym wpisie.", + "airtableShareLinkBeta": "Pamiętaj, że ta funkcja jest w wersji beta, tabele, pola (z wyjątkiem formuły, wyszukiwania i liczby) oraz dane zostaną zaimportowane. Widoki nie zostaną zaimportowane.", + "airtableShareLinkPaste": "Wklej link tutaj", + "importButtonLabel": "Importuj z Airtable", + "openButtonLabel": "Otwórz importowaną bazę danych", + "importError": "Coś poszło nie tak", + "statePending": "Oczekiwanie na rozpoczęcie", + "stateFailed": "Nie powiodło się", + "stateFinished": "Skończone", + "stateDownloadingBase": "Pobieranie schematu bazy", + "stateConverting": "Konwersja do Baserow", + "stateDownloadingFiles": "Pobieranie plików", + "stateImporting": "Importowanie", + "stateImportingTable": "Importowanie tabeli {table}", + "errorJobAlreadyRunningTitle": "Już działa", + "errorJobAlreadyRunningDescription": "Inne zadanie importu jest już uruchomione. Musisz poczekać na zakończenie tego zadania przed rozpoczęciem kolejnego.", + "linkError": "Link powinien wyglądać tak: https://airtable.com/shrxxxxxxxxxxxxxx" + }, + "chooseSingleSelectField": { + "addSelectField": "Dodaj pojedyncze pole wyboru", + "warningWhenNothingToChooseOrCreate": "Nie ma pojedynczych pól wyboru do wyboru i nie masz uprawnień do ich utworzenia." + }, + "viewDecoratorContext": { + "addDecorator": "Dodaj dekorator" + }, + "databaseDashboardSidebarLinks": { + "apiDocumentation": "Dokumentacja API" + }, + "formViewField": { + "required": "wymagane", + "showWhenMatchingConditions": "pokaż, kiedy warunki są spełnione", + "addCondition": "Dodaj warunek", + "descriptionPlaceholder": "Opis", + "addConditionGroup": "Dodaj grupę warunków", + "showFieldAs": "Pokaż pole jako" + }, + "duplicateFieldContext": { + "duplicate": "Duplikuj pola", + "cloneData": "Skopiuj dane", + "soon": "Dostępne wkrótce", + "readOnlyField": "Wartości komórek zostaną wypełnione automatycznie." + }, + "snapshotsModal": { + "title": "migawki", + "description": "Migawki są pełną kopią danych {applicationTypeName} z momentu ich utworzenia. Podczas przywracania zostanie utworzona duplikacja tych danych. Migawki są automatycznie usuwane po upływie roku.", + "descriptionLimits": "Możesz mieć maksymalnie {n} migawek na obszar roboczy. | Możesz mieć maksymalnie {n} migawek na obszar roboczy. | Możesz mieć maksymalnie {n} migawek na obszar roboczy.", + "createLabel": "Utwórz nową migawkę", + "create": "Utwórz migawkę", + "snapshotRestoredErrorTitle": "Wystąpił błąd", + "snapshotRestoredErrorMessage": "Nie udało się przywrócić migawki. Proszę spróbować ponownie później.", + "snapshotDeletedErrorTitle": "Wystąpił błąd", + "snapshotDeletedErrorMessage": "Migawki nie można usunąć. spróbuj ponownie później.", + "limitReached": "Osiągnięto limit maksymalnej liczby migawek.", + "snapshot": "Migawka", + "importingState": "Tworzenie", + "reset": "Utwórz kolejną" + }, + "deleteSnapshotModal": { + "title": "Usuń migawkę", + "content": "Czy na pewno chcesz trwale usunąć migawkę {name}?", + "confirm": "Usuń" + }, + "snapshotListItem": { + "restore": "przywrócić", + "delete": "usuń", + "created": "utworzono" + }, + "formViewHeader": { + "mode": "Tryb", + "preview": "Podgląd", + "fields": "Pola" + }, + "table": { + "chooseView": "Wybierz widok", + "adjacentRow": { + "notification": { + "notFound": { + "next": { + "title": "Nie ma już rzędów", + "message": "Nie ma następnego wiersza" + }, + "previous": { + "title": "Nigdy więcej wierszy", + "message": "Nie ma poprzedniego wiersza" + } + }, + "error": { + "title": "Wystąpił błąd", + "message": "Wystąpił błąd podczas pobierania sąsiedniego wiersza" + } + }, + "toast": { + "notFound": { + "previous": { + "message": "Nie ma poprzedniego wiersza", + "title": "Nie ma już rzędów" + }, + "next": { + "title": "Nie ma już rzędów", + "message": "Nie ma następnego wiersza" + } + }, + "error": { + "title": "Wystąpił błąd", + "message": "Wystąpił błąd podczas pobierania sąsiedniego wiersza" + } + } + } + }, + "formViewModeType": { + "formDescription": "Wszystkie pola są widoczne i ułożone pionowo.", + "form": "Formularz" + }, + "rowEditFieldMultipleCollaborators": { + "addCollaborator": "Wybierz współpracownika" + }, + "apiDocsUploadFile": { + "file": "\"Plik\" wieloczęściowy zawierający zawartość pliku.", + "description": "Przesyła plik do Baserow poprzez bezpośrednie przesłanie zawartości pliku. Oczekiwany jest multipart `file` zawierający zawartość pliku. Odpowiedź może być następnie użyta do [załadowania pliku do wiersza]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row)." + }, + "apiDocsUploadFileViaURL": { + "description": "Przesyła plik do Baserow, pobierając go z podanego adresu URL. Odpowiedź może być następnie użyta do [przesłania pliku do wiersza]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", + "url": "Adres URL, który chcesz, aby Baserow pobrał i przesłał w Twoim imieniu." + }, + "fieldmultipleCollaboratorsDropdown": { + "notFound": "Nie znaleziono współpracownika" + }, + "formViewModePreviewForm": { + "addCoverImage": "Dodaj zdjęcie na okładkę", + "addLogo": "Dodaj logo", + "noFields": "Ten formularz nie ma żadnych pól. Kliknij na pole w lewym pasku bocznym, aby je dodać.", + "descriptionPlaceholder": "Opis", + "titlePlaceholder": "Tytuł" + }, + "duplicateTableJobType": { + "duplicating": "Powielanie", + "duplicatedTitle": "Tabela zduplikowana" + }, + "fileField": { + "errorEmptyFileNameTitle": "Nieprawidłowa nazwa pliku", + "errorEmptyFileNameMessage": "Nie można ustawić pustej nazwy pliku." + }, + "viewOwnershipType": { + "collaborative": "Współpraca", + "personal": "Osobisty" + }, + "gridViewRowsAddContext": { + "title": "Utwórz wiele wierszy", + "choice": "Dodawanie {rowAmountChoice} wierszy" + }, + "fieldSelectThroughFieldSubForm": { + "noTable": "Potrzeba przynajmniej jeden link do tabeli aby utworzyć to pole.", + "selectThroughFieldLabel": "Wybierz link do pola tabeli" + }, + "fieldRollupSubForm": { + "label": "Funkcja zwijania", + "selectTargetFieldLabel": "Wybierz pole do zestawienia" + }, + "collaboratorAddedToRowNotification": { + "title": "{sender} przypisał cię do {fieldName} w wierszu {rowId} w {tableName}", + "deletedUser": "Usunięty użytkownik" + }, + "fieldCollaboratorSubForm": { + "notifyUserWhenAdded": "Powiadomienie użytkownika o dodaniu" + }, + "rowHistorySidebar": { + "name": "Historia", + "empty": "Nie wprowadzono jeszcze żadnych zmian. Wszelkie zmiany w tym wierszu można śledzić tutaj.", + "you": "Ty" + }, + "formSubmittedNotification": { + "title": "{formName} został przesłany do tabeli {tableName}:", + "moreValues": "0 | i jeszcze 1 pole. | i {count} więcej pól." + }, + "fieldPasswordSubForm": { + "description": "Nie jest jeszcze możliwe bezpośrednie zrobienie czegokolwiek z polem hasła, jest ono używane tylko przez uwierzytelnianie użytkownika w kreatorze aplikacji." + }, + "rowEditFieldPassword": { + "setPassword": "Ustaw hasło" + }, + "rowHistoryFieldPassword": { + "passwordDeleted": "Hasło zostało usunięte", + "passwordSet": "Hasło zostało ustawione", + "passwordUpdated": "Hasło zostało zaktualizowane" + }, + "dataProviderTypes": { + "fieldsName": "Pola" + }, + "apiDocsFiltersBuilderModal": { + "title": "Konstruktor parametrów filtrów", + "userFieldNames": "Nazwy pól użytkownika", + "json": "JSON", + "queryParameter": "Parametr zapytania" + }, + "fieldDurationSubForm": { + "durationFormatLabel": "Format czasu trwania" + }, + "viewGroupByContext": { + "noGroupByTitle": "Nie utworzono jeszcze żadnych grup", + "noGroupByText": "Grupowanie wierszy według pola.", + "groupBy": "Grupa według", + "thenBy": "Następnie przez", + "addGroupBy": "wybierz pole do grupowania według" + }, + "userMentionInRichTextFieldNotification": { + "title": "{sender} wspomniał o Tobie w polu {fieldName} wiersza {rowId} w {tableName}", + "deletedUser": "Usunięty użytkownik" + }, + "fieldLongTextSubForm": { + "enableRichTextFormatting": "Włącz formatowanie tekstu sformatowanego" + }, + "viewFieldConditionsForm": { + "addCondition": "Dodaj warunek" + }, + "viewGroupBy": { + "groupBy": "Grupuj | Grupuj według 1 pól | Grupuj według {count} pól" + }, + "createTableModal": { + "title": "Utwórz nową tabelę", + "defaultName": "Tabela", + "newTable": "Zacznij z nową tabelą", + "importLabel": "Czy chcesz zaimportować istniejące dane?" + }, + "createTable": { + "preparing": "Przygotowywanie danych...", + "uploading": "Przesyłanie...", + "showTable": "pokaż tabelę", + "addButton": "Dodaj tabelę" } - }, - "formViewModeType": { - "formDescription": "Wszystkie pola są widoczne i ułożone pionowo.", - "form": "Formularz" - }, - "rowEditFieldMultipleCollaborators": { - "addCollaborator": "Wybierz współpracownika" - }, - "apiDocsUploadFile": { - "file": "\"Plik\" wieloczęściowy zawierający zawartość pliku.", - "description": "Przesyła plik do Baserow poprzez bezpośrednie przesłanie zawartości pliku. Oczekiwany jest multipart `file` zawierający zawartość pliku. Odpowiedź może być następnie użyta do [załadowania pliku do wiersza]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row)." - }, - "apiDocsUploadFileViaURL": { - "description": "Przesyła plik do Baserow, pobierając go z podanego adresu URL. Odpowiedź może być następnie użyta do [przesłania pliku do wiersza]({PUBLIC_BACKEND_URL}/api/redoc/#tag/Database-table-rows/operation/update_database_table_row).", - "url": "Adres URL, który chcesz, aby Baserow pobrał i przesłał w Twoim imieniu." - }, - "fieldmultipleCollaboratorsDropdown": { - "notFound": "Nie znaleziono współpracownika" - }, - "formViewModePreviewForm": { - "addCoverImage": "Dodaj zdjęcie na okładkę", - "addLogo": "Dodaj logo", - "noFields": "Ten formularz nie ma żadnych pól. Kliknij na pole w lewym pasku bocznym, aby je dodać.", - "descriptionPlaceholder": "Opis", - "titlePlaceholder": "Tytuł" - }, - "duplicateTableJobType": { - "duplicating": "Powielanie", - "duplicatedTitle": "Tabela zduplikowana" - }, - "fileField": { - "errorEmptyFileNameTitle": "Nieprawidłowa nazwa pliku", - "errorEmptyFileNameMessage": "Nie można ustawić pustej nazwy pliku." - }, - "viewOwnershipType": { - "collaborative": "Współpraca", - "personal": "Osobisty" - }, - "gridViewRowsAddContext": { - "title": "Utwórz wiele wierszy", - "choice": "Dodawanie {rowAmountChoice} wierszy" - }, - "fieldSelectThroughFieldSubForm": { - "noTable": "Potrzeba przynajmniej jeden link do tabeli aby utworzyć to pole.", - "selectThroughFieldLabel": "Wybierz link do pola tabeli" - }, - "fieldRollupSubForm": { - "label": "Funkcja zwijania", - "selectTargetFieldLabel": "Wybierz pole do zestawienia" - }, - "collaboratorAddedToRowNotification": { - "title": "{sender} przypisał cię do {fieldName} w wierszu {rowId} w {tableName}", - "deletedUser": "Usunięty użytkownik" - }, - "fieldCollaboratorSubForm": { - "notifyUserWhenAdded": "Powiadomienie użytkownika o dodaniu" - }, - "rowHistorySidebar": { - "name": "Historia", - "empty": "Nie wprowadzono jeszcze żadnych zmian. Wszelkie zmiany w tym wierszu można śledzić tutaj.", - "you": "Ty" - }, - "formSubmittedNotification": { - "title": "{formName} został przesłany do tabeli {tableName}:", - "moreValues": "0 | i jeszcze 1 pole. | i {count} więcej pól." - }, - "fieldPasswordSubForm": { - "description": "Nie jest jeszcze możliwe bezpośrednie zrobienie czegokolwiek z polem hasła, jest ono używane tylko przez uwierzytelnianie użytkownika w kreatorze aplikacji." - }, - "rowEditFieldPassword": { - "setPassword": "Ustaw hasło" - }, - "rowHistoryFieldPassword": { - "passwordDeleted": "Hasło zostało usunięte", - "passwordSet": "Hasło zostało ustawione", - "passwordUpdated": "Hasło zostało zaktualizowane" - }, - "dataProviderTypes": { - "fieldsName": "Pola" - }, - "apiDocsFiltersBuilderModal": { - "title": "Konstruktor parametrów filtrów", - "userFieldNames": "Nazwy pól użytkownika", - "json": "JSON", - "queryParameter": "Parametr zapytania" - }, - "fieldDurationSubForm": { - "durationFormatLabel": "Format czasu trwania" - }, - "viewGroupByContext": { - "noGroupByTitle": "Nie utworzono jeszcze żadnych grup", - "noGroupByText": "Grupowanie wierszy według pola.", - "groupBy": "Grupa według", - "thenBy": "Następnie przez", - "addGroupBy": "wybierz pole do grupowania według" - }, - "userMentionInRichTextFieldNotification": { - "title": "{sender} wspomniał o Tobie w polu {fieldName} wiersza {rowId} w {tableName}", - "deletedUser": "Usunięty użytkownik" - }, - "fieldLongTextSubForm": { - "enableRichTextFormatting": "Włącz formatowanie tekstu sformatowanego" - }, - "viewFieldConditionsForm": { - "addCondition": "Dodaj warunek" - }, - "viewGroupBy": { - "groupBy": "Grupuj | Grupuj według 1 pól | Grupuj według {count} pól" - }, - "createTableModal": { - "title": "Utwórz nową tabelę", - "defaultName": "Tabela", - "newTable": "Zacznij z nową tabelą", - "importLabel": "Czy chcesz zaimportować istniejące dane?" - }, - "createTable": { - "preparing": "Przygotowywanie danych...", - "uploading": "Przesyłanie...", - "showTable": "pokaż tabelę", - "addButton": "Dodaj tabelę" - } } diff --git a/web-frontend/modules/database/locales/uk.json b/web-frontend/modules/database/locales/uk.json index e720e4fde7..02121aee49 100644 --- a/web-frontend/modules/database/locales/uk.json +++ b/web-frontend/modules/database/locales/uk.json @@ -157,9 +157,10 @@ "include": "За замовчуванням усі поля включені у відповідь. Ви можете вибрати підмножину полів для включення, надавши параметр запиту include.\n\n #### З `user_field_names`:\n\n `include` має бути списком назв полів для включення в результати, розділених комами. Наприклад, якщо ви надасте такий параметр GET: `include=My Field,-My Field 2`, то лише ці поля будуть включені (якщо вони явно не виключені).\n\n Назви полів, що містять коми, мають бути взяті в лапки: `\"Name ,\"`. Якщо назви полів містять лапки, їх потрібно екранувати символом `\\`. Наприклад: `Name \\\"`.\n\n #### Без `user_field_names`:\n\n `include` має бути списком `field_`, за яким слідує id поля для включення в результати, розділених комами. Наприклад: якщо ви надасте такий параметр GET `include=field_1,field_2`, то лише поля з id `1` та id `2` будуть включені (якщо вони явно не виключені).", "exclude": "За замовчуванням усі поля включені у відповідь. Ви можете вибрати підмножину полів для виключення, надавши параметр запиту exclude.\n\n #### З `user_field_names`:\n\n `exclude` має бути списком назв полів для виключення з результатів, розділених комами. Наприклад, якщо ви надасте такий параметр GET: `exclude=My Field,-My Field 2`, то ці поля будуть виключені.\n\n Назви полів, що містять коми, мають бути взяті в лапки: `\"Name ,\"`. Якщо назви полів містять лапки, їх потрібно екранувати символом `\\`. Наприклад: `Name \\\"`.\n\n #### Без `user_field_names`:\n\n `exclude` має бути списком `field_`, за яким слідує id поля для виключення з результатів, розділених комами. Наприклад: якщо ви надасте такий параметр GET `exclude=field_1,field_2`, то поля з id `1` та id `2` будуть виключені.", "viewId": "За замовчуванням жодні фільтри та сортування, крім тих, що визначені в параметрах запиту, не застосовуються. Ви можете додати фільтри та сортування перегляду, надавши його `id` у параметрі GET `view_id`. Наприклад, якщо ви надасте такий параметр GET `view_id=1`, то будуть застосовані фільтри та сортування, визначені в перегляді з id `1`. Ви можете знайти `view_id` у контекстному меню будь-якого перегляду. Це число в дужках за назвою перегляду. \n\n #### З `filter__{field}__{filter}` \n\n Будуть застосовані як фільтр, наданий у параметрі запиту, так і фільтри, визначені в перегляді.\n\n #### З `order_by` \n\n Якщо надано `order_by`, то сортування, визначене в перегляді, буде проігноровано.", - "filters": "Рядки можна необов'язково фільтрувати, використовуючи ті ж фільтри перегляду, що доступні для переглядів. Цей параметр приймає серіалізований JSON рядок, що містить дерево фільтрів для застосування до цього перегляду. Дерево фільтрів — це вкладена структура, що містить фільтри, які потрібно застосувати. \n\n#### З `user_field_names`:\n\nПриклад дійсного дерева фільтрів: `{\"filter_type\": \"AND\", \"filters\": [{\"field\": \"Name\", \"type\": \"equal\", \"value\": \"test\"}]}`.\n\n#### Без `user_field_names`:\n\nНаприклад, якщо ви надасте такий параметр GET: `{\"filter_type\": \"AND\", \"filters\": [{\"field\": 1, \"type\": \"equal\", \"value\": \"test\"}]}`\n\nЗверніть увагу, що якщо цей параметр надано, всі інші `filter__{field}__{filter}` будуть проігноровані, так само як і параметр filter_type.", + "filters": "Рядки можна необов'язково фільтрувати, використовуючи ті ж фільтри перегляду, що доступні для переглядів. Цей параметр приймає серіалізований JSON рядок, що містить дерево фільтрів для застосування до цього перегляду. Дерево фільтрів — це вкладена структура, що містить фільтри, які потрібно застосувати. \n\n#### З `user_field_names`:\n\nПриклад дійсного дерева фільтрів: `{'{'}\"filter_type\": \"AND\", \"filters\": [{'{'}\"field\": \"Name\", \"type\": \"equal\", \"value\": \"test\"{'}'}]{'}'}`.\n\n#### Без `user_field_names`:\n\nНаприклад, якщо ви надасте такий параметр GET: `{'{'}\"filter_type\": \"AND\", \"filters\": [{'{'}\"field\": 1, \"type\": \"equal\", \"value\": \"test\"{'}'}]{'}'}`\n\nЗверніть увагу, що якщо цей параметр надано, всі інші `filter__{'{'}field{'}'}__{'{'}filter{'}'}` будуть проігноровані, так само як і параметр filter_type.", "filtersBuilder": "Відкрити конструктор параметрів фільтрів", - "join": "Дозволяє запитувати пошук значень полів з цільової таблиці через існуючі поля зв'язаних рядків. Назва параметра має бути назвою існуючого поля зв'язаного рядка, за якою слідує __join. Значенням має бути список назв полів, для яких ми хочемо отримати додаткові значення. Ви можете надати одне або кілька цільових полів. Неможливо отримати значення поля зв'язаного рядка в цільовій таблиці.\n\n #### З `user_field_names`:\n\n `join` має бути списком назв полів для включення в результати, розділених комами. Наприклад: якщо ви надасте такий параметр GET `LinkRowField__join=MyField,MyField2`, то значення `MyField` та `My Field2` у таблиці, зв'язаній через `LinkRowField`, будуть включені у відповідь.\n\n#### Без `user_field_names`:\n\n `join` має бути списком `field_`, за яким слідує id поля для включення в результати, розділених комами. Наприклад: якщо ви надасте такий параметр GET `field_1__join=field_2,field_3`, то значення `field_2` та `field_3` у таблиці, зв'язаній через `field_1`, будуть включені у відповідь." + "join": "Дозволяє запитувати пошук значень полів з цільової таблиці через існуючі поля зв'язаних рядків. Назва параметра має бути назвою існуючого поля зв'язаного рядка, за якою слідує __join. Значенням має бути список назв полів, для яких ми хочемо отримати додаткові значення. Ви можете надати одне або кілька цільових полів. Неможливо отримати значення поля зв'язаного рядка в цільовій таблиці.\n\n #### З `user_field_names`:\n\n `join` має бути списком назв полів для включення в результати, розділених комами. Наприклад: якщо ви надасте такий параметр GET `LinkRowField__join=MyField,MyField2`, то значення `MyField` та `My Field2` у таблиці, зв'язаній через `LinkRowField`, будуть включені у відповідь.\n\n#### Без `user_field_names`:\n\n `join` має бути списком `field_`, за яким слідує id поля для включення в результати, розділених комами. Наприклад: якщо ви надасте такий параметр GET `field_1__join=field_2,field_3`, то значення `field_2` та `field_3` у таблиці, зв'язаній через `field_1`, будуть включені у відповідь.", + "test": "`{'{'}\"filter_type\": \"AND\", \"filters\": [{'{'}\"field\": \"Name\", \"type\": \"equal\", \"value\": \"test\"{'}'}]{'}'}" }, "apiDocsIntro": { "intro": "База даних {name} надає простий спосіб інтегрувати дані з будь-якою зовнішньою системою. API дотримується семантики REST, використовує JSON для кодування об'єктів та покладається на стандартні HTTP-коди, машинно- та людино-зрозумілі помилки для сигналізації про результати операцій.", @@ -580,11 +581,12 @@ }, "viewForm": { "name": "Назва", - "whoCanEdit": "Хто може редагувати" + "whoCanEdit": "Хто може редагувати цей вигляд?" }, "viewOwnershipType": { "collaborative": "Спільний", - "personal": "Особистий" + "personal": "Особистий", + "collaborativeDescription": "Усі можуть бачити всі дані та змінювати властивості, якщо мають відповідні права доступу." }, "galleryViewHeader": { "customizeCards": "Налаштувати картки" @@ -728,7 +730,7 @@ }, "importFromAirtable": { "airtableShareLinkTitle": "Поділіться посиланням на вашу базу", - "airtableShareLinkDescription": "", + "airtableShareLinkDescription": "Щоб імпортувати вашу базу Airtable, вам потрібне спільне посилання на всю базу. У Airtable відкрийте базу та натисніть кнопку «Поділитися» у правому верхньому куті. Потім оберіть опцію «Поділитися через посилання». У модальному вікні спільного доступу перейдіть на вкладку «Поділитися публічно», а потім натисніть «Увімкнути спільне посилання на базу». Скопіюйте публічне посилання та вставте його у поле нижче.", "airtableShareLinkBeta": "Ця функція імпортує більшість даних, але є несумісності. Тому буде додано таблицю «Звіт імпорту Airtable», що містить перелік елементів, які не були імпортовані або імпортовані частково.", "airtableShareLinkPaste": "Вставте посилання тут", "importButtonLabel": "Імпорт з Airtable", @@ -1011,7 +1013,8 @@ "databaseImportStep": { "title": "Імпортуйте ваші дані", "description": "Перенесіть ваші дані до Baserow за кілька кліків.", - "tableNameLabel": "Назва таблиці" + "tableNameLabel": "Назва таблиці", + "tableNamePrefill": "{name} таблиця" }, "databaseScratchTrackFieldsStep": { "title": "Виберіть поля для кожного рядка", @@ -1089,7 +1092,9 @@ "scratch": "З нуля", "import": "Файл", "airtable": "Airtable", - "template": "Шаблон" + "template": "Шаблон", + "databaseNamePrefill": "{name} база даних", + "workspaceName": "{name} робочий простір" }, "ViewFilterTypeDateUpgradeToMultiStep": { "migrateButtonText": "Перейти на багатокроковий фільтр дати", @@ -1165,7 +1170,8 @@ "content": "Швидко знаходьте інформацію за допомогою фільтрації та сортування рядків. Миттєво групуйте за будь-якими полями для чіткої візуалізації закономірностей та спрощення робочих процесів." }, "addFieldGuidedTourStep": { - "title": "Налаштуйте свої дані" + "title": "Налаштуйте свої дані", + "content": "Натисніть «+», щоб додати нові поля (стовпці). Оберіть із різних типів полів, щоб зафіксувати саме те, що найважливіше для вашого проєкту." }, "createViewGuidedTourStep": { "title": "Персоналізуйте свої представлення", diff --git a/web-frontend/modules/integrations/locales/es.json b/web-frontend/modules/integrations/locales/es.json index a3b603b0e6..a47f88e5b4 100644 --- a/web-frontend/modules/integrations/locales/es.json +++ b/web-frontend/modules/integrations/locales/es.json @@ -4,7 +4,7 @@ "noTableChosenForSorting": "Elige una tabla para empezar a utilizar la ordenación de fuentes de datos.", "rowFieldLabel": "ID de fila", "invalidFormula": "La fórmula no es válida", - "rowFieldPlaceHolder": "Seleccionar una ID para la fila", + "rowFieldPlaceHolder": "Elige un ID de fila único", "searchFieldPlaceHolder": "Introduce un término de búsqueda...", "noTableChosenForFiltering": "Elige una tabla para empezar a utilizar los filtros de fuentes de datos.", "searchTabTitle": "Búsqueda", @@ -53,7 +53,9 @@ "viewFieldLabel": "Vista", "tableFieldLabel": "Tabla", "databaseFieldLabel": "Base de datos", - "dataSyncedTableDescription": "Tabla sincronizada de dato" + "dataSyncedTableDescription": "Tabla sincronizada de dato", + "oneWayDataSyncedTableDescription": "Sincronizado unidireccionalmente", + "twoWayDataSyncedTableDescription": "Sincronizado bidireccionalmente" }, "integrationType": { "localBaserow": "Baserow local", @@ -82,11 +84,11 @@ "localBaserowRowsUpdatedDescription": "Se activa cuando se actualizan filas en una tabla de Baserow.", "localBaserowRowsDeleted": "Se eliminan filas", "localBaserowRowsDeletedDescription": "Se activa cuando se eliminan filas en una tabla de Baserow.", - "coreHTTPTrigger": "Recibe una solicitud HTTP", - "coreHTTPTriggerDescription": "Se activa cuando se recibe una solicitud HTTP.", + "coreHTTPTrigger": "Recibir una solicitud HTTP", + "coreHTTPTriggerDescription": "Se dispara cuando se recibe una solicitud HTTP.", "coreHTTPRequest": "Envía una solicitud HTTP", "coreHTTPRequestDescription": "Envía una solicitud HTTP a un punto final especificado.", - "coreSMTPEmail": "Envía un correo electrónico", + "coreSMTPEmail": "Enviar correo electrónico", "coreRouter": "Enrutador", "coreRouterEdgesRequired": "Se requiere al menos un borde", "coreRouterEdgeLabelRequired": "Se requiere una etiqueta de rama.", @@ -201,10 +203,10 @@ "supportSetupHeading": "1. Configuración de la aplicación", "supportSetupStep1": "Navega a la <a href=\"https://api.slack.com/apps\" target=\"_blank\">página de aplicaciones</a> de tu espacio de trabajo.", "supportSetupStep2": "Crea una nueva aplicación, elige «Desde cero» e ingresa un nombre. Selecciona el espacio de trabajo en el que tu aplicación debe operar y haz clic en «Crear».", - "supportSetupStep3": "En la barra lateral izquierda, navega a «OAuth y Permisos», desplázate hacia abajo hasta «Permisos» y, bajo «Permisos del token de bot», selecciona «Añadir un permiso OAuth».", + "supportSetupStep3": "En la barra lateral izquierda, navega a «OAuth & Permisos», desplázate hacia abajo hasta «Permisos» y, bajo «Permisos del token de bot», selecciona «Añadir un permiso OAuth».", "supportSetupStep4": "Para permitir que tu aplicación publique mensajes, añade el alcance <pre>chat:write</pre>.", "supportPairingHeading": "2. Conexión de tu aplicación Slack", - "supportPairingStep1": "Si tu aplicación es nueva: navega a «Configuración» > «Instalar aplicación». Haz clic en el botón verde para instalar la aplicación en tu espacio de trabajo.", + "supportPairingStep1": "Si tu aplicación es nueva: navega a «Configuración» > «Instalar aplicación». Haz clic en el botón verde para instalar la aplicación en tu espacio de trabajo.", "supportPairingStep2": "Copia tu «Token OAuth de usuario bot» y almacénalo en el campo «Token de usuario bot» de este formulario.", "supportPairingStep3": "Finalmente, si tu aplicación es nueva: en Slack, invita tu aplicación al canal que hayas elegido con <pre>/invite {'@'}nombreDeTuApp nombreDeTuCanal</pre>" }, @@ -282,7 +284,7 @@ "branchesDescription": "Las ramas te permiten ejecutar nodos solo cuando se cumple una condición. Las ramas se ejecutan de izquierda a derecha hasta que se cumpla una condición; de lo contrario, se ejecutará la rama predeterminada. ", "branchLabel": "Etiqueta", "branchConditionLabel": "Condición", - "branchConditionPlaceholder": "Introduce una condición…", + "branchConditionPlaceholder": "Si es «verdadero», seguimos esta rama.", "addEdge": "Añadir rama", "edgeDefaultName": "Rama", "noLabel": "Sin etiqueta", @@ -313,10 +315,26 @@ "dayOfMonthPlaceholder": "1-31", "minuteHelper": "Este flujo de trabajo se ejecutará cada minutos especificados", "hourHelper": "Este flujo de trabajo se ejecutará cada hora en el minuto especificado en tu zona horaria local ({timezone})", - "dayHelper": "Este flujo de trabajo se ejecutará todos los días a la hora especificada en tu zona horaria local ({timezone})", + "dayHelper": "Este flujo de trabajo se ejecutará cada día a la hora especificada en tu zona horaria local ({timezone})", "weekHelper": "Este flujo de trabajo se ejecutará cada semana en el día y hora especificados en tu zona horaria local ({timezone})", "monthHelper": "Este flujo de trabajo se ejecutará cada mes en el día y la hora especificados en tu zona horaria local ({timezone})", "deactivatedTitle": "Disparador periódico desactivado", "deactivatedText": "Este disparador periódico ha sido desactivado automáticamente debido a fallos consecutivos." + }, + "localBaserowUpsertRowServiceForm": { + "noTableSelectedMessage": "Elige una tabla para comenzar a configurar tus campos.", + "noWritableFields": "Esta tabla no contiene campos editables.", + "fieldMappingPlaceholderArray": "Elige un valor de `array`, por ejemplo: [42]", + "fieldMappingPlaceholderString": "Elige un valor de cadena, por ejemplo: \\'baserow\\'", + "fieldMappingPlaceholderNumber": "Elige un valor numérico, por ejemplo: 42", + "fieldMappingPlaceholderBoolean": "Elige un valor booleano, por ejemplo: «verdadero»", + "fieldMappingPlaceholderDate": "Elige un valor de fecha, por ejemplo: 2025-07-25", + "fieldMappingPlaceholderDecimal": "Elige un valor decimal, por ejemplo: 3.14", + "fieldMappingPlaceholderDuration": "Elige un valor de duración, por ejemplo: 1:23:40" + }, + "localBaserowServiceForm": { + "rowIdPlaceholder": "Elige un ID de fila único", + "rowIdLabel": "ID de fila", + "integrationDropdownLabel": "Integración" } } diff --git a/web-frontend/modules/integrations/locales/fr.json b/web-frontend/modules/integrations/locales/fr.json index 381320c9cf..b140a24193 100644 --- a/web-frontend/modules/integrations/locales/fr.json +++ b/web-frontend/modules/integrations/locales/fr.json @@ -1,322 +1,340 @@ { - "integrationType": { - "localBaserowSummary": "Baserow local - {name}, {username}", - "localBaserow": "Baserow local", - "localBaserowWarning": "Associer votre compte donne à tous ceux qui peuvent modifier l'application un accès complet aux données auxquelles vous avez accès. Il est possible de créer un deuxième utilisateur, donner les bonnes autorisations et utiliser celui-ci.", - "smtp": "Mail SMTP", - "ai": "IA", - "slackBot": "Bot Slack" - }, - "serviceType": { - "localBaserowGetRow": "Obtenir une ligne", - "localBaserowListRows": "Lister plusieurs lignes", - "localBaserowAggregateRows": "Résumer une colonne", - "trashedField": "Champ supprimé", - "misconfigured": "Configuration incorrecte", - "localBaserowCreateRow": "Créer une ligne", - "localBaserowUpdateRow": "Modification d'une ligne", - "localBaserowDeleteRow": "Supprimer une ligne", - "localBaserowRowsCreated": "Des lignes sont créées", - "localBaserowRowsCreatedDescription": "Déclenché lorsque des lignes sont créées dans une table Baserow.", - "coreHTTPRequest": "Envoyer une requête HTTP", - "localBaserowCreateRowDescription": "Crée une nouvelle ligne dans une table Baserow.", - "localBaserowUpdateRowDescription": "Modifie une ligne dans une table Baserow.", - "localBaserowDeleteRowDescription": "Suppression d'une ligne dans une table Baserow.", - "localBaserowRowsUpdated": "Les lignes sont actualisées", - "localBaserowRowsUpdatedDescription": "Déclenché lorsque des lignes sont modifiées dans une table Baserow.", - "localBaserowRowsDeleted": "Les lignes sont supprimées", - "localBaserowRowsDeletedDescription": "Déclenché lorsque des lignes sont supprimés dans une table Baserow.", - "coreHTTPRequestDescription": "Envoie une requête HTTP à un point d'accès spécifié.", - "errorUrlMissing": "Propriété Url manquante", - "errorNoTableSelected": "Aucune table sélectionnée", - "errorFilterInError": "Au moins un filtre est mal configuré", - "errorSortingInError": "Au moins un tri est mal configuré", - "errorNoFieldSelected": "Aucun champ sélectionné", - "errorNoAggregationTypeSelected": "Aucun type d'agrégation n'a été sélectionné", - "localBaserowGetRowDescription": "Lire une seule ligne d'une table Baserow.", - "localBaserowListRowsDescription": "Lit plusieurs lignes d'une table Baserow.", - "localBaserowAggregateRowsDescription": "Résume un champ dans une table Baserow.", - "coreSMTPEmail": "Envoyer un e-mail", - "coreSMTPEmailDescription": "Envoie un e-mail à l'aide de la configuration SMTP.", - "errorFromEmailMissing": "Propriété \"From Email\" manquante", - "errorToEmailsMissing": "Propriété \"To Emails\" manquante", - "coreRouter": "Routeur", - "coreRouterEdgesRequired": "Au moins un branchement est nécessaire", - "coreRouterEdgeLabelRequired": "Un nom de branche est nécessaire.", - "coreRouterEdgeConditionRequired": "Une condition est nécessaire.", - "coreRouterDescription": "Poursuit vers l'une des branches en fonction d'une condition.", - "corePeriodic": "Déclencheur périodique", - "corePeriodicDescription": "Déclenche le scénario à des intervalles spécifiés", - "corePeriodicErrorIntervalMissing": "Un intervalle est nécessaire.", - "aiAgent": "Prompt pour l'IA", - "aiAgentDescription": "Envoyer des prompts aux modèles d'IA génératifs configurés.", - "errorNoIntegrationSelected": "Aucune intégration sélectionnée", - "errorNoAIProviderSelected": "Aucun service d'IA n'a été sélectionné", - "errorNoAIModelSelected": "Aucun modèle d'IA n'est sélectionné", - "errorNoPromptProvided": "Aucun prompt n'a été fournie", - "errorNoChoicesProvided": "Aucun choix n'est fait pour le type de sortie", - "coreHTTPTrigger": "Recevoir une requête HTTP", - "coreHTTPTriggerDescription": "Déclenché quand une requête HTTP est reçue.", - "coreIteration": "Itérateur", - "coreIterationDescription": "Itère sur une liste d'éléments.", - "errorIterationSourceMissing": "Source manquante", - "slackWriteMessage": "Envoyer un message Slack", - "slackWriteMessageDescription": "Envoie un message à un #canal Slack spécifique", - "slackWriteMessageMissingChannel": "Un canal est nécessaire.", - "slackWriteMessageMissingMessage": "Un message est nécessaire.", - "slackWriteMessageMissingIntegration": "Aucune intégration Slack n'a été sélectionnée." - }, - "localBaserowForm": { - "user": "Utilisateur", - "userMessage": "En créant cette connexion, vous autorisez l'application à utiliser votre compte pour effectuer des modifications dans votre projet local Baserow." - }, - "localBaserowGetRowForm": { - "rowFieldLabel": "ID de ligne", - "invalidFormula": "La formule est invalide", - "rowFieldPlaceHolder": "Saisir l'ID d'une ligne", - "searchFieldPlaceHolder": "Saisissez un terme de recherche...", - "noTableChosenForFiltering": "Sélectionnez une table pour commencer à utiliser les filtres de source de données.", - "filterTabTitle": "Filtres", - "searchTabTitle": "Recherche", - "noTableChosenForSorting": "Choisissez une table pour pouvoir ordonner les lignes de la sources de données.", - "rowFieldHelpText": "Laissez cette valeur vide pour renvoyer la première ligne." - }, - "localBaserowListRowsForm": { - "filterTabTitle": "Filtres", - "sortTabTitle": "Tris", - "searchTabTitle": "Recherche", - "searchFieldPlaceHolder": "Saisissez un terme de recherche...", - "noTableChosenForFiltering": "Sélectionnez une table pour commencer à filtrer les lignes de la source de données.", - "noTableChosenForSorting": "Sélectionnez une table pour pouvoir ordonner les lignes de la sources de données.", - "advancedConfig": "Avancé", - "defaultResultCount": "Nombre de résultats par défaut", - "defaultResultCountHelp": "Nombre d'enregistrements par défaut que cette source de données récupérera sur votre page. En fixant cette valeur à 0 et en l'utilisant sur un élément de collection, vous améliorerez les performances lors du chargement de la page en ne récupérant les enregistrements que lorsque l'élément est paginé.", - "defaultResultCountPlaceholder": "Valeur par défaut..." - }, - "localBaserowTableServiceConditionalForm": { - "noFilterTitle": "Vous n'avez pas encore créé de filtre pour cette source de données", - "noFilterText": "Les filtres de source de données vous permettent de n'afficher que les lignes de la table Baserow qui satisfont les conditions.", - "relatedFieldNotFound": "Le champ correspondant n'a pas été trouvé.", - "noCompatibleFilterTypesErrorTitle": "Aucun filtre compatible", - "noCompatibleFilterTypesErrorMessage": "Aucun de vos champs n'a de filtres compatibles", - "addFilter": "Ajouter un filtre", - "filterTypeNotFound": "Le type de filtre n'est pas compatible.", - "useFormulaForValue": "Utiliser une formule pour ce filtre", - "useDefaultForValue": "Utiliser le filtre par défaut pour ce champ", - "formulaFilterInputPlaceholder": "Saisissez une valeur...", - "textFilterInputPlaceholder": "Saisissez le texte..." - }, - "localBaserowTableServiceSortForm": { - "noSortTitle": "Vous n'avez pas encore créé de tri pour cette source de données", - "noSortText": "Les tris vous permettent de trier les lignes de la table Baserow en fonction d'un champ.", - "sortBy": "Trier par", - "addSort": "Ajouter un tri", - "thenBy": "Puis par", - "noTableChosenForSorting": "Sélectionnez une table pour pouvoir ordonner les lignes de la sources de données.", - "sortMisconfigured": "Le champ auquel ce tri est associé à été supprimé." - }, - "dataProviderType": { - "dataSource": "Source de données", - "pageParameter": "Paramètre" - }, - "localBaserowTableSelector": { - "viewFieldLabel": "Vue", - "tableFieldLabel": "Table", - "chooseNoView": "Non sélectionnée", - "databaseFieldLabel": "Base de données", - "dataSyncedTableDescription": "Table synchronisée" - }, - "userSourceType": { - "localBaserow": "Authentification par table Baserow" - }, - "localBaserowIntegrationType": { - "localBaserowSummary": "Baserow local - {name}, {username}", - "localBaserowNoUser": "Baserow local - Non configuré", - "localBaserowWarning": "Associer votre compte donne à tous ceux qui peuvent modifier l'application un accès complet aux données auxquelles vous avez accès. Il est possible de créer un deuxième utilisateur, lui donner les bonnes autorisations et utiliser celui-ci." - }, - "integrationsCommon": { - "singleRow": "Une ligne", - "multipleRows": "plusieurs lignes" - }, - "localBaserowAggregateRowsForm": { - "searchTabTitle": "Chercher", - "aggregationTypeLabel": "Aggrégation", - "searchFieldPlaceHolder": "Saisissez un terme de recherche...", - "filterTabTitle": "Filtres", - "aggregationFieldLabel": "Colonne", - "noTableChosenForFiltering": "Sélectionnez une table pour commencer à filtrer les lignes de la source de données." - }, - "coreHTTPRequestServiceForm": { - "httpMethod": "Méthode HTTP", - "queryParams": "Paramètres de requête", - "name": "Nom", - "value": "Valeur", - "namePlaceholder": "Nom...", - "headers": "En-têtes", - "addQueryParam": "ajouter un paramètre", - "addHeader": "ajouter un en-tête", - "formData": "Données de formulaire", - "addFormData": "ajouter une entrée", - "bodyType": "Type de contenu", - "bodyContent": "Contenu", - "urlPlaceholder": "Entrer l'url de destination...", - "bodyPlaceholder": "Ajouter le contenu...", - "timeoutPlaceholder": "Délai maximal...", - "nameFieldRequired": "La propriété Nom est obligatoire.", - "nameFieldInvalid": "Le nom ne doit contenir que des caractères alphanumériques, des tirets ou des traits de soulignement, et ne doit pas commencer par un tiret ou un trait de soulignement.", - "timeout": "Délai d'attente max.", - "url": "URL de destination", - "seconds": "secondes", - "valuePlaceholder": "Valeur..." - }, - "serviceRefinementForms": { - "filterTabTitle": "Filtre | 1 filtre | {count} filtres", - "sortTabTitle": "Spell | 1 Spell | {count} Spells", - "searchTabTitle": "Trier | 1 tri | {count} tris", - "searchFieldPlaceHolder": "Entrez une recherche...", - "noTableChosenForFiltering": "Choisissez une table pour commencer à utiliser les filtres de source de données.", - "noTableChosenForSorting": "Choisissez une table pour commencer à utiliser les tris de sources de données.", - "refinements": "Affinages" - }, - "smtpIntegrationType": { - "smtpSummary": "SMTP - {hote} : {port}" - }, - "smtpForm": { - "host": "Hôte SMTP", - "hostPlaceholder": "smtp.gmail.com", - "port": "Port SMTP", - "portPlaceholder": "587", - "useTls": "Utiliser TLS", - "username": "Nom d'utilisateur", - "usernamePlaceholder": "email{'@'}exemple.com", - "password": "Mot de passe", - "passwordPlaceholder": "mot-de-passe" - }, - "smtpEmailForm": { - "integrationDropdownLabel": "Intégration", - "fromEmail": "Adresse email d'émission", - "fromEmailPlaceholder": "expediteur{'@'}exemple.com", - "fromName": "Nom d'émission", - "fromNamePlaceholder": "Nom", - "toEmails": "Adresse mails d'envoi", - "toEmailsPlaceholder": "destinataire1{'@'}exemple.com,destinataire2{'@'}exemple.com", - "ccEmails": "Adresses mail CC", - "ccEmailsPlaceholder": "cc1{'@'}exemple.com,cc2{'@'}exemple.com", - "bccEmails": "Adresses email BCC", - "bccEmailsPlaceholder": "bcc1{'@'}exemple.com,bcc2{'@'}exemple.com", - "subject": "Objet", - "subjectPlaceholder": "Objet de l'email", - "bodyType": "Corps du mail", - "bodyTypePlain": "Texte", - "bodyTypeHtml": "HTML", - "body": "Corps", - "bodyPlaceholder": "Le contenu de votre e-mail..." - }, - "routerForm": { - "defaultEdgeLabelLabel": "Étiquette de branche par défaut", - "defaultEdgeLabelPlaceholder": "Par défaut", - "defaultEdgeLabelDescription": "Vous pouvez choisir l'étiquette à afficher sur la branche par défaut.", - "branchesHeading": "Branches", - "branchesDescription": "Le routeur vous permet de n'exécuter des nœuds que lorsqu'une condition est remplie. Les branches sont exécutées de gauche à droite jusqu'à ce qu'une condition soit remplie, sinon la branche par défaut est exécutée. ", - "branchLabel": "Libéllé", - "branchConditionLabel": "Condition", - "branchConditionPlaceholder": "Saisir la condition...", - "addEdge": "Ajouter une branche", - "edgeDefaultName": "Branche", - "noLabel": "Pas d'étiquette", - "edgeDeletionLastEdge": "Vous ne pouvez pas supprimer la dernière branche.", - "edgeDeletionHasOutput": "Une branche ne peut pas être supprimée si elle contient des noeuds." - }, - "periodicForm": { - "intervalLabel": "Interval", - "intervalHelper": "Choisissez la fréquence d'exécution de ce scénario", - "everyMinute": "Toutes les {minute} minutes", - "everyHour": "Toutes les heures", - "everyDay": "Tous les jours", - "everyWeek": "Chaque semaine", - "everyMonth": "Tous les mois", - "hour": "Heure", - "minute": "Minute", - "dayOfWeek": "Jour de la semaine", - "dayOfMonth": "Jour du mois", - "hourPlaceholder": "0-23", - "minutePlaceholder": "0-59", - "dayOfMonthPlaceholder": "1-31", - "minuteHelper": "Ce scénario sera exécuté toutes les X minutes", - "hourHelper": "Ce scénario s'exécutera toutes les heures à la minute spécifiée dans votre fuseau horaire local ({timezone})", - "dayHelper": "Ce scénario sera exécuté chaque jour à l'heure spécifiée dans votre fuseau horaire local ({timezone})", - "weekHelper": "Ce scénario sera exécuté chaque semaine au jour et à l'heure spécifiés dans votre fuseau horaire local ({timezone})", - "monthHelper": "Ce scénario sera exécuté chaque mois le jour et l'heure spécifiés dans votre fuseau horaire local ({timezone})", - "deactivatedTitle": "Déclenchement périodique désactivé", - "deactivatedText": "Ce déclencheur périodique a été automatiquement désactivé en raison d'échecs consécutifs.", - "everyMinuteDefault": "Toutes les X minutes", - "minuteFrequency": "Toutes les minutes", - "minuteFrequencyPlaceholder": "15" - }, - "aiIntegrationType": { - "overridingProviders": "{count} service configuré|{count} services configurés", - "inheritingWorkspace": "Héritage des paramètres d'IA du projet" - }, - "aiForm": { - "description": "Configurer les paramètres du service d'IA pour cette intégration. Par défaut, les paramètres d'IA du projet sont hérités.", - "workspaceSettingsTitle": "Paramètres de configuration d'IA du projet", - "workspaceSettingsDescription": "Cette intégration hérite par défaut des configurations d'IA de votre Projet. Vous pouvez remplacer des services spécifiques ci-dessous.", - "overrideWorkspaceSettings": "Remplacer les paramètres du projet pour ce service", - "inherited": "Héritée", - "overridden": "Remplacé" - }, - "aiAgentServiceForm": { - "integrationLabel": "Intégration", - "providerLabel": "Service d'IA", - "providerPlaceholder": "Sélectionnez un service d'IA...", - "modelLabel": "Modèle IA", - "modelPlaceholder": "Sélectionnez un modèle...", - "outputTypeLabel": "Type de sortie", - "outputTypeHelp": "Choisissez la manière dont l'IA doit formuler sa réponse. Si vous définissez des choix, vous obligez le modèle à ne répondre que par l'un de ces choix.", - "outputTypeText": "Texte", - "outputTypeChoice": "Choix", - "temperatureLabel": "Température", - "temperaturePlaceholder": "Ex : 0.7", - "temperatureHelp": "Contrôle le caractère aléatoire. Les valeurs faibles (0-0,3) sont plus ciblées et déterministes. Les valeurs plus élevées (0,7-2,0) sont plus créatives et variées.", - "promptLabel": "Prompt", - "promptPlaceholder": "Saisissez votre prompt ici...", - "choicesLabel": "Choix", - "choicePlaceholder": "Saisissez un choix...", - "addChoice": "Ajouter un choix", - "choicesRequired": "Au moins un choix est requis" - }, - "coreIterationServiceForm": { - "source": "Source", - "sourcePlaceholder": "Choisissez une source..." - }, - "slackBotIntegrationType": { - "slackBotSummary": "Bot Slack", - "slackBotNoToken": "Bot Slack - Non configuré" - }, - "slackBotForm": { - "tokenLabel": "Token utilisateur pour le bot", - "tokenPlaceholder": "xoxb-1234-...", - "tokenMustStartWith": "Le jeton doit commencer par \"xoxb-\"", - "supportHeading": "Besoin d'aide ?", - "supportDescription": "Si vous avez besoin d'aide pour la connexion avec votre application Slack, veuillez suivre les étapes ci-dessous.", - "supportSetupHeading": "1. Mettre en place l'application", - "supportSetupDescription": "En fonction des paramètres de votre espace de travail Slack, vous pourrez peut-être créer une nouvelle application Slack. Sinon, un administrateur devra le faire pour vous. Si vous réutilisez une application existante qui peut écrire des messages, passez à la section intitulée \"Connexion avec votre application Slack\".", - "supportSetupStep1": "Accédez à la page <a href=\"https://api.slack.com/apps\" target=\"_blank\">application</a> de votre espace de travail Slack.", - "supportSetupStep2": "Créez une nouvelle application, choisissez \"A partir de zéro\" et saisissez un nom. Sélectionnez l'espace de travail dans lequel votre application doit fonctionner et cliquez sur \"Créer\".", - "supportSetupStep3": "Dans la barre latérale gauche, naviguez vers \"OAuth & Permissions\", descendez jusqu'à \"Scopes\" et sous \"Bot Token Scopes\", sélectionnez \"Add an OAuth Scope\".", - "supportSetupStep4": "Pour permettre à votre application de poster des messages, ajoutez la portée <pre>chat:write</pre>.", - "supportPairingHeading": "2. Association avec votre application Slack", - "supportPairingStep1": "Si votre application est nouvelle : visitez la page 'Paramètres' > 'Installer application'. Cliquez sur le bouton vert pour installer l'application dans votre Projet.", - "supportPairingStep2": "Copiez votre 'Bot User OAuth Token' et stockez-le dans le champ 'Jeton utilisateur Bot' dans ce formulaire.", - "supportPairingStep3": "Enfin, si votre application est nouvelle : dans Slack, invitez votre application dans le canal choisi avec <pre>/invite {'@'}votreAppName votreChannel</pre>" - }, - "slackWriteMessageServiceForm": { - "alertMessage": "Cette action doit être associée à une application Slack. Suivez le guide dans la fenêtre de configuration de l'intégration pour procéder.", - "integrationLabel": "Intégration", - "channelLabel": "Canal", - "channelPlaceholder": "Entrez un nom de canal", - "messageLabel": "Message", - "messagePlaceholder": "Saisissez un message...", - "channelNoPrefix": "Retirer le '#' avant le nom du canal." - } + "integrationType": { + "localBaserowSummary": "Baserow local - {name}, {username}", + "localBaserow": "Baserow local", + "localBaserowWarning": "Associer votre compte donne à tous ceux qui peuvent modifier l'application un accès complet aux données auxquelles vous avez accès. Il est possible de créer un deuxième utilisateur, donner les bonnes autorisations et utiliser celui-ci.", + "smtp": "Mail SMTP", + "ai": "IA", + "slackBot": "Bot Slack" + }, + "serviceType": { + "localBaserowGetRow": "Obtenir une ligne", + "localBaserowListRows": "Lister plusieurs lignes", + "localBaserowAggregateRows": "Résumer une colonne", + "trashedField": "Champ supprimé", + "misconfigured": "Configuration incorrecte", + "localBaserowCreateRow": "Créer une ligne", + "localBaserowUpdateRow": "Modification d'une ligne", + "localBaserowDeleteRow": "Supprimer une ligne", + "localBaserowRowsCreated": "Des lignes sont créées", + "localBaserowRowsCreatedDescription": "Déclenché lorsque des lignes sont créées dans une table Baserow.", + "coreHTTPRequest": "Envoyer une requête HTTP", + "localBaserowCreateRowDescription": "Crée une nouvelle ligne dans une table Baserow.", + "localBaserowUpdateRowDescription": "Modifie une ligne dans une table Baserow.", + "localBaserowDeleteRowDescription": "Suppression d'une ligne dans une table Baserow.", + "localBaserowRowsUpdated": "Les lignes sont actualisées", + "localBaserowRowsUpdatedDescription": "Déclenché lorsque des lignes sont modifiées dans une table Baserow.", + "localBaserowRowsDeleted": "Les lignes sont supprimées", + "localBaserowRowsDeletedDescription": "Déclenché lorsque des lignes sont supprimés dans une table Baserow.", + "coreHTTPRequestDescription": "Envoie une requête HTTP à un point d'accès spécifié.", + "errorUrlMissing": "Propriété Url manquante", + "errorNoTableSelected": "Aucune table sélectionnée", + "errorFilterInError": "Au moins un filtre est mal configuré", + "errorSortingInError": "Au moins un tri est mal configuré", + "errorNoFieldSelected": "Aucun champ sélectionné", + "errorNoAggregationTypeSelected": "Aucun type d'agrégation n'a été sélectionné", + "localBaserowGetRowDescription": "Lire une seule ligne d'une table Baserow.", + "localBaserowListRowsDescription": "Lit plusieurs lignes d'une table Baserow.", + "localBaserowAggregateRowsDescription": "Résume un champ dans une table Baserow.", + "coreSMTPEmail": "Envoyer un e-mail", + "coreSMTPEmailDescription": "Envoie un e-mail à l'aide de la configuration SMTP.", + "errorFromEmailMissing": "Propriété \"From Email\" manquante", + "errorToEmailsMissing": "Propriété \"To Emails\" manquante", + "coreRouter": "Routeur", + "coreRouterEdgesRequired": "Au moins un branchement est nécessaire", + "coreRouterEdgeLabelRequired": "Un nom de branche est nécessaire.", + "coreRouterEdgeConditionRequired": "Une condition est nécessaire.", + "coreRouterDescription": "Poursuit vers l'une des branches en fonction d'une condition.", + "corePeriodic": "Déclencheur périodique", + "corePeriodicDescription": "Déclenche le scénario à des intervalles spécifiés", + "corePeriodicErrorIntervalMissing": "Un intervalle est nécessaire.", + "aiAgent": "Prompt pour l'IA", + "aiAgentDescription": "Envoyer des prompts aux modèles d'IA génératifs configurés.", + "errorNoIntegrationSelected": "Aucune intégration sélectionnée", + "errorNoAIProviderSelected": "Aucun service d'IA n'a été sélectionné", + "errorNoAIModelSelected": "Aucun modèle d'IA n'est sélectionné", + "errorNoPromptProvided": "Aucun prompt n'a été fournie", + "errorNoChoicesProvided": "Aucun choix n'est fait pour le type de sortie", + "coreHTTPTrigger": "Recevoir une requête HTTP", + "coreHTTPTriggerDescription": "Déclenché quand une requête HTTP est reçue.", + "coreIteration": "Itérateur", + "coreIterationDescription": "Itère sur une liste d'éléments.", + "errorIterationSourceMissing": "Source manquante", + "slackWriteMessage": "Envoyer un message Slack", + "slackWriteMessageDescription": "Envoie un message à un #canal Slack spécifique", + "slackWriteMessageMissingChannel": "Un canal est nécessaire.", + "slackWriteMessageMissingMessage": "Un message est nécessaire.", + "slackWriteMessageMissingIntegration": "Aucune intégration Slack n'a été sélectionnée." + }, + "localBaserowForm": { + "user": "Utilisateur", + "userMessage": "En créant cette connexion, vous autorisez l'application à utiliser votre compte pour effectuer des modifications dans votre projet local Baserow." + }, + "localBaserowGetRowForm": { + "rowFieldLabel": "ID de ligne", + "invalidFormula": "La formule est invalide", + "rowFieldPlaceHolder": "Choisir l'ID d'une ligne", + "searchFieldPlaceHolder": "Saisissez un terme de recherche...", + "noTableChosenForFiltering": "Sélectionnez une table pour commencer à utiliser les filtres de source de données.", + "filterTabTitle": "Filtres", + "searchTabTitle": "Recherche", + "noTableChosenForSorting": "Choisissez une table pour pouvoir ordonner les lignes de la sources de données.", + "rowFieldHelpText": "Laissez cette valeur vide pour renvoyer la première ligne." + }, + "localBaserowListRowsForm": { + "filterTabTitle": "Filtres", + "sortTabTitle": "Tris", + "searchTabTitle": "Recherche", + "searchFieldPlaceHolder": "Saisissez un terme de recherche...", + "noTableChosenForFiltering": "Sélectionnez une table pour commencer à filtrer les lignes de la source de données.", + "noTableChosenForSorting": "Sélectionnez une table pour pouvoir ordonner les lignes de la sources de données.", + "advancedConfig": "Avancé", + "defaultResultCount": "Nombre de résultats par défaut", + "defaultResultCountHelp": "Nombre d'enregistrements par défaut que cette source de données récupérera sur votre page. En fixant cette valeur à 0 et en l'utilisant sur un élément de collection, vous améliorerez les performances lors du chargement de la page en ne récupérant les enregistrements que lorsque l'élément est paginé.", + "defaultResultCountPlaceholder": "Valeur par défaut..." + }, + "localBaserowTableServiceConditionalForm": { + "noFilterTitle": "Vous n'avez pas encore créé de filtre pour cette source de données", + "noFilterText": "Les filtres de source de données vous permettent de n'afficher que les lignes de la table Baserow qui satisfont les conditions.", + "relatedFieldNotFound": "Le champ correspondant n'a pas été trouvé.", + "noCompatibleFilterTypesErrorTitle": "Aucun filtre compatible", + "noCompatibleFilterTypesErrorMessage": "Aucun de vos champs n'a de filtres compatibles", + "addFilter": "Ajouter un filtre", + "filterTypeNotFound": "Le type de filtre n'est pas compatible.", + "useFormulaForValue": "Utiliser une formule pour ce filtre", + "useDefaultForValue": "Utiliser le filtre par défaut pour ce champ", + "formulaFilterInputPlaceholder": "Saisissez une valeur...", + "textFilterInputPlaceholder": "Saisissez le texte..." + }, + "localBaserowTableServiceSortForm": { + "noSortTitle": "Vous n'avez pas encore créé de tri pour cette source de données", + "noSortText": "Les tris vous permettent de trier les lignes de la table Baserow en fonction d'un champ.", + "sortBy": "Trier par", + "addSort": "Ajouter un tri", + "thenBy": "Puis par", + "noTableChosenForSorting": "Sélectionnez une table pour pouvoir ordonner les lignes de la sources de données.", + "sortMisconfigured": "Le champ auquel ce tri est associé à été supprimé." + }, + "dataProviderType": { + "dataSource": "Source de données", + "pageParameter": "Paramètre" + }, + "localBaserowTableSelector": { + "viewFieldLabel": "Vue", + "tableFieldLabel": "Table", + "chooseNoView": "Non sélectionnée", + "databaseFieldLabel": "Base de données", + "dataSyncedTableDescription": "Table synchronisée", + "oneWayDataSyncedTableDescription": "Synchronisation à sens unique", + "twoWayDataSyncedTableDescription": "Synchronisation bidirectionnelle" + }, + "userSourceType": { + "localBaserow": "Authentification par table Baserow" + }, + "localBaserowIntegrationType": { + "localBaserowSummary": "Baserow local - {name}, {username}", + "localBaserowNoUser": "Baserow local - Non configuré", + "localBaserowWarning": "Associer votre compte donne à tous ceux qui peuvent modifier l'application un accès complet aux données auxquelles vous avez accès. Il est possible de créer un deuxième utilisateur, lui donner les bonnes autorisations et utiliser celui-ci." + }, + "integrationsCommon": { + "singleRow": "Une ligne", + "multipleRows": "plusieurs lignes" + }, + "localBaserowAggregateRowsForm": { + "searchTabTitle": "Chercher", + "aggregationTypeLabel": "Aggrégation", + "searchFieldPlaceHolder": "Saisissez un terme de recherche...", + "filterTabTitle": "Filtres", + "aggregationFieldLabel": "Colonne", + "noTableChosenForFiltering": "Sélectionnez une table pour commencer à filtrer les lignes de la source de données." + }, + "coreHTTPRequestServiceForm": { + "httpMethod": "Méthode HTTP", + "queryParams": "Paramètres de requête", + "name": "Nom", + "value": "Valeur", + "namePlaceholder": "Nom...", + "headers": "En-têtes", + "addQueryParam": "ajouter un paramètre", + "addHeader": "ajouter un en-tête", + "formData": "Données de formulaire", + "addFormData": "ajouter une entrée", + "bodyType": "Type de contenu", + "bodyContent": "Contenu", + "urlPlaceholder": "Entrer l'url de destination...", + "bodyPlaceholder": "Ajouter le contenu...", + "timeoutPlaceholder": "Délai maximal...", + "nameFieldRequired": "La propriété Nom est obligatoire.", + "nameFieldInvalid": "Le nom ne doit contenir que des caractères alphanumériques, des tirets ou des traits de soulignement, et ne doit pas commencer par un tiret ou un trait de soulignement.", + "timeout": "Délai d'attente max.", + "url": "URL de destination", + "seconds": "secondes", + "valuePlaceholder": "Valeur..." + }, + "serviceRefinementForms": { + "filterTabTitle": "Filtre | 1 filtre | {count} filtres", + "sortTabTitle": "Spell | 1 Spell | {count} Spells", + "searchTabTitle": "Trier | 1 tri | {count} tris", + "searchFieldPlaceHolder": "Entrez une recherche...", + "noTableChosenForFiltering": "Choisissez une table pour commencer à utiliser les filtres de source de données.", + "noTableChosenForSorting": "Choisissez une table pour commencer à utiliser les tris de sources de données.", + "refinements": "Affinages" + }, + "smtpIntegrationType": { + "smtpSummary": "SMTP - {hote} : {port}" + }, + "smtpForm": { + "host": "Hôte SMTP", + "hostPlaceholder": "smtp.gmail.com", + "port": "Port SMTP", + "portPlaceholder": "587", + "useTls": "Utiliser TLS", + "username": "Nom d'utilisateur", + "usernamePlaceholder": "email{'@'}exemple.com", + "password": "Mot de passe", + "passwordPlaceholder": "mot-de-passe" + }, + "smtpEmailForm": { + "integrationDropdownLabel": "Intégration", + "fromEmail": "Adresse email d'émission", + "fromEmailPlaceholder": "expediteur{'@'}exemple.com", + "fromName": "Nom d'émission", + "fromNamePlaceholder": "Votre nom", + "toEmails": "Adresse mails d'envoi", + "toEmailsPlaceholder": "destinataire1{'@'}exemple.com,destinataire2{'@'}exemple.com", + "ccEmails": "Adresses mail CC", + "ccEmailsPlaceholder": "cc1{'@'}exemple.com,cc2{'@'}exemple.com", + "bccEmails": "Adresses email BCC", + "bccEmailsPlaceholder": "bcc1{'@'}exemple.com,bcc2{'@'}exemple.com", + "subject": "Objet", + "subjectPlaceholder": "Objet de l'email", + "bodyType": "Corps du mail", + "bodyTypePlain": "Texte", + "bodyTypeHtml": "HTML", + "body": "Corps", + "bodyPlaceholder": "Le contenu de votre e-mail..." + }, + "routerForm": { + "defaultEdgeLabelLabel": "Étiquette de branche par défaut", + "defaultEdgeLabelPlaceholder": "Par défaut", + "defaultEdgeLabelDescription": "Vous pouvez choisir l'étiquette à afficher sur la branche par défaut.", + "branchesHeading": "Branches", + "branchesDescription": "Le routeur vous permet de n'exécuter des nœuds que lorsqu'une condition est remplie. Les branches sont exécutées de gauche à droite jusqu'à ce qu'une condition soit remplie, sinon la branche par défaut est exécutée. ", + "branchLabel": "Libéllé", + "branchConditionLabel": "Condition", + "branchConditionPlaceholder": "Si vrai, suivre cette branche.", + "addEdge": "Ajouter une branche", + "edgeDefaultName": "Branche", + "noLabel": "Pas d'étiquette", + "edgeDeletionLastEdge": "Vous ne pouvez pas supprimer la dernière branche.", + "edgeDeletionHasOutput": "Une branche ne peut pas être supprimée si elle contient des noeuds." + }, + "periodicForm": { + "intervalLabel": "Interval", + "intervalHelper": "Choisissez la fréquence d'exécution de ce scénario", + "everyMinute": "Toutes les {minute} minutes", + "everyHour": "Toutes les heures", + "everyDay": "Tous les jours", + "everyWeek": "Chaque semaine", + "everyMonth": "Tous les mois", + "hour": "Heure", + "minute": "Minute", + "dayOfWeek": "Jour de la semaine", + "dayOfMonth": "Jour du mois", + "hourPlaceholder": "0-23", + "minutePlaceholder": "0-59", + "dayOfMonthPlaceholder": "1-31", + "minuteHelper": "Ce scénario sera exécuté toutes les X minutes", + "hourHelper": "Ce scénario s'exécutera toutes les heures à la minute spécifiée dans votre fuseau horaire local ({timezone})", + "dayHelper": "Ce scénario sera exécuté chaque jour à l'heure spécifiée dans votre fuseau horaire local ({timezone})", + "weekHelper": "Ce scénario sera exécuté chaque semaine au jour et à l'heure spécifiés dans votre fuseau horaire local ({timezone})", + "monthHelper": "Ce scénario sera exécuté chaque mois le jour et l'heure spécifiés dans votre fuseau horaire local ({timezone})", + "deactivatedTitle": "Déclenchement périodique désactivé", + "deactivatedText": "Ce déclencheur périodique a été automatiquement désactivé en raison d'échecs consécutifs.", + "everyMinuteDefault": "Toutes les X minutes", + "minuteFrequency": "Toutes les minutes", + "minuteFrequencyPlaceholder": "15" + }, + "aiIntegrationType": { + "overridingProviders": "{count} service configuré|{count} services configurés", + "inheritingWorkspace": "Héritage des paramètres d'IA du projet" + }, + "aiForm": { + "description": "Configurer les paramètres du service d'IA pour cette intégration. Par défaut, les paramètres d'IA du projet sont hérités.", + "workspaceSettingsTitle": "Paramètres de configuration d'IA du projet", + "workspaceSettingsDescription": "Cette intégration hérite par défaut des configurations d'IA de votre Projet. Vous pouvez remplacer des services spécifiques ci-dessous.", + "overrideWorkspaceSettings": "Remplacer les paramètres du projet pour ce service", + "inherited": "Héritée", + "overridden": "Remplacé" + }, + "aiAgentServiceForm": { + "integrationLabel": "Intégration", + "providerLabel": "Service d'IA", + "providerPlaceholder": "Sélectionnez un service d'IA...", + "modelLabel": "Modèle IA", + "modelPlaceholder": "Sélectionnez un modèle...", + "outputTypeLabel": "Type de sortie", + "outputTypeHelp": "Choisissez la manière dont l'IA doit formuler sa réponse. Si vous définissez des choix, vous obligez le modèle à ne répondre que par l'un de ces choix.", + "outputTypeText": "Texte", + "outputTypeChoice": "Choix", + "temperatureLabel": "Température", + "temperaturePlaceholder": "Ex : 0.7", + "temperatureHelp": "Contrôle le caractère aléatoire. Les valeurs faibles (0-0,3) sont plus ciblées et déterministes. Les valeurs plus élevées (0,7-2,0) sont plus créatives et variées.", + "promptLabel": "Prompt", + "promptPlaceholder": "Saisissez votre prompt ici...", + "choicesLabel": "Choix", + "choicePlaceholder": "Saisissez un choix...", + "addChoice": "Ajouter un choix", + "choicesRequired": "Au moins un choix est requis" + }, + "coreIterationServiceForm": { + "source": "Source", + "sourcePlaceholder": "Choisissez une source..." + }, + "slackBotIntegrationType": { + "slackBotSummary": "Bot Slack", + "slackBotNoToken": "Bot Slack - Non configuré" + }, + "slackBotForm": { + "tokenLabel": "Token utilisateur pour le bot", + "tokenPlaceholder": "xoxb-1234-...", + "tokenMustStartWith": "Le jeton doit commencer par \"xoxb-\"", + "supportHeading": "Besoin d'aide ?", + "supportDescription": "Si vous avez besoin d'aide pour la connexion avec votre application Slack, veuillez suivre les étapes ci-dessous.", + "supportSetupHeading": "1. Mettre en place l'application", + "supportSetupDescription": "En fonction des paramètres de votre espace de travail Slack, vous pourrez peut-être créer une nouvelle application Slack. Sinon, un administrateur devra le faire pour vous. Si vous réutilisez une application existante qui peut écrire des messages, passez à la section intitulée \"Connexion avec votre application Slack\".", + "supportSetupStep1": "Accédez à la page <a href=\"https://api.slack.com/apps\" target=\"_blank\">application</a> de votre espace de travail Slack.", + "supportSetupStep2": "Créez une nouvelle application, choisissez \"A partir de zéro\" et saisissez un nom. Sélectionnez l'espace de travail dans lequel votre application doit fonctionner et cliquez sur \"Créer\".", + "supportSetupStep3": "Dans la barre latérale gauche, naviguez vers \"OAuth & Permissions\", descendez jusqu'à \"Scopes\" et sous \"Bot Token Scopes\", sélectionnez \"Add an OAuth Scope\".", + "supportSetupStep4": "Pour permettre à votre application de poster des messages, ajoutez la portée <pre>chat:write</pre>.", + "supportPairingHeading": "2. Association avec votre application Slack", + "supportPairingStep1": "Si votre application est nouvelle : visitez la page 'Paramètres' > 'Installer application'. Cliquez sur le bouton vert pour installer l'application dans votre Projet.", + "supportPairingStep2": "Copiez votre 'Bot User OAuth Token' et stockez-le dans le champ 'Jeton utilisateur Bot' dans ce formulaire.", + "supportPairingStep3": "Enfin, si votre application est nouvelle : dans Slack, invitez votre application dans le canal choisi avec <pre>/invite {'@'}votreAppName votreChannel</pre>" + }, + "slackWriteMessageServiceForm": { + "alertMessage": "Cette action doit être associée à une application Slack. Suivez le guide dans la fenêtre de configuration de l'intégration pour procéder.", + "integrationLabel": "Intégration", + "channelLabel": "Canal", + "channelPlaceholder": "Entrez un nom de canal", + "messageLabel": "Message", + "messagePlaceholder": "Saisissez un message...", + "channelNoPrefix": "Retirer le '#' avant le nom du canal." + }, + "localBaserowServiceForm": { + "integrationDropdownLabel": "Intégration", + "rowIdLabel": "ID de ligne", + "rowIdPlaceholder": "Choisissez l'ID d'une ligne" + }, + "localBaserowUpsertRowServiceForm": { + "fieldMappingPlaceholderArray": "Choisissez une liste de valeurs, par exemple [42]", + "fieldMappingPlaceholderString": "Choisissez une valeur textuelle, par exemple \\\"baserow\\\"", + "fieldMappingPlaceholderNumber": "Choisissez une valeur numérique, par exemple 42", + "fieldMappingPlaceholderBoolean": "Choisissez une valeur booléenne, par exemple : true", + "fieldMappingPlaceholderDate": "Choisissez une date, par exemple 2025-07-25", + "fieldMappingPlaceholderDecimal": "Choisissez une valeur décimale, par exemple 3.14", + "fieldMappingPlaceholderDuration": "Choisissez une durée, par exemple 1:23:40", + "noTableSelectedMessage": "Choisissez une table pour commencer à configurer vos champs.", + "noWritableFields": "Cette table ne contient pas de champs modifiables." + } } diff --git a/web-frontend/modules/integrations/locales/it.json b/web-frontend/modules/integrations/locales/it.json index de682db010..d2ecb58c01 100644 --- a/web-frontend/modules/integrations/locales/it.json +++ b/web-frontend/modules/integrations/locales/it.json @@ -1,87 +1,87 @@ { - "localBaserowGetRowForm": { - "rowFieldHelpText": "Lascia vuoto per ritornare la prima riga.", - "noTableChosenForSorting": "Scegli una tabella per iniziare ad utilizzare gli ordinamenti delle sorgenti dati.", - "rowFieldLabel": "ID Riga", - "noTableChosenForFiltering": "Scegli una tabella per iniziare ad utilizzare i filtri delle sorgenti dati.", - "invalidFormula": "La formula non è valida", - "rowFieldPlaceHolder": "Seleziona un ID di riga", - "searchFieldPlaceHolder": "Inserisci un termine di ricerca...", - "filterTabTitle": "Filtri", - "searchTabTitle": "Cerca" - }, - "localBaserowListRowsForm": { - "filterTabTitle": "Filtri", - "searchTabTitle": "Cerca", - "sortTabTitle": "Ordinamenti", - "searchFieldPlaceHolder": "Inserisci un termine di ricerca...", - "noTableChosenForFiltering": "Scegli una tabella per iniziare ad utilizzare i filtri delle sorgenti dati.", - "noTableChosenForSorting": "Scegli una tabella per iniziare ad utilizzare gli ordinamenti delle sorgenti dati." - }, - "localBaserowTableServiceConditionalForm": { - "noCompatibleFilterTypesErrorTitle": "Nessun tipo di filtro compatibile", - "noCompatibleFilterTypesErrorMessage": "Nessuno dei tuoi campi ha un tipo di filtro compatibile", - "addFilter": "Aggiungi un altro filtro", - "noFilterTitle": "Non hai ancora creato un filtro sulle sorgenti dati", - "noFilterText": "I filtri sulle sorgenti dati ti consentono di mostrare le righe della tabella Baserow che si applicano alle tue condizioni.", - "relatedFieldNotFound": "Impossibile trovare il campo correlato.", - "filterTypeNotFound": "Il tipo di filtro non è compatibile.", - "formulaFilterInputPlaceholder": "Inserisci il testo...", - "useFormulaForValue": "Utilizza una formula per questo filtro", - "useDefaultForValue": "Utilizza il filtro di default per questo campo" - }, - "localBaserowTableServiceSortForm": { - "noSortTitle": "Non hai ancora creato un ordinamento per le sorgenti dati", - "noSortText": "L'ordinamento ti permette di ordinare le righe per un campo.", - "noTableChosenForSorting": "Scegli una tabella per iniziare ad utilizzare gli ordinamenti delle sorgenti dati.", - "sortBy": "Ordina per", - "thenBy": "Poi per", - "addSort": "Aggiungi un ordinamento" - }, - "integrationType": { - "localBaserow": "Baserow locale", - "localBaserowSummary": "Baserow locale - {name}, {surname}", - "localBaserowWarning": "L'autorizzazione del tuo account fornisce a chiunque abbia autorizzazioni di modifica per l'applicazione l'accesso completo ai dati a cui hai accesso. È possibile creare un secondo utente, fornire i permessi corretti e utilizzare quest'ultimo." - }, - "serviceType": { - "localBaserowGetRow": "Leggi single Row", - "localBaserowListRows": "Elenca multiple rows", - "localBaserowAggregateRows": "Aggrega campo", - "misconfigured": "Errore di configurazione", - "trashedField": "Campo eliminato" - }, - "userSourceType": { - "localBaserow": "Autenticazione tramite tabella di Baserow" - }, - "localBaserowForm": { - "user": "Utente", - "userMessage": "Creando questa connessione, autorizzi l'applicazione a utilizzare il tuo account per apportare modifiche nell'area di lavoro Baserow locale." - }, - "dataProviderType": { - "dataSource": "Sorgente dati", - "pageParameter": "Parametro" - }, - "localBaserowTableSelector": { - "viewFieldLabel": "Vista", - "tableFieldLabel": "Tabella", - "chooseNoView": "Non selezionato", - "databaseFieldLabel": "Database" - }, - "localBaserowIntegrationType": { - "localBaserowSummary": "Baserow Locale - {name}, {username}", - "localBaserowNoUser": "Baserow Locale - Non configurato", - "localBaserowWarning": "Autorizzare il tuo account consente a chiunque abbia i permessi di modifica sull'applicazione di avere pieno accesso ai dati a cui hai accesso tu. È possibile creare un secondo utente, assegnare i permessi appropriati e utilizzare quello." - }, - "integrationsCommon": { - "singleRow": "Singola riga", - "multipleRows": "Più righe" - }, - "localBaserowAggregateRowsForm": { - "aggregationFieldLabel": "Campo", - "aggregationTypeLabel": "Aggregazione", - "searchFieldPlaceHolder": "Inserisci un termine per la ricerca...", - "noTableChosenForFiltering": "Scegli una tabella per iniziare ad usare i filtri.", - "filterTabTitle": "Filtri", - "searchTabTitle": "Cerca" - } + "localBaserowGetRowForm": { + "rowFieldHelpText": "Lascia vuoto per ritornare la prima riga.", + "noTableChosenForSorting": "Scegli una tabella per iniziare ad utilizzare gli ordinamenti delle sorgenti dati.", + "rowFieldLabel": "ID Riga", + "noTableChosenForFiltering": "Scegli una tabella per iniziare ad utilizzare i filtri delle sorgenti dati.", + "invalidFormula": "La formula non è valida", + "rowFieldPlaceHolder": "Seleziona un ID di riga", + "searchFieldPlaceHolder": "Inserisci un termine di ricerca...", + "filterTabTitle": "Filtri", + "searchTabTitle": "Cerca" + }, + "localBaserowListRowsForm": { + "filterTabTitle": "Filtri", + "searchTabTitle": "Cerca", + "sortTabTitle": "Ordinamenti", + "searchFieldPlaceHolder": "Inserisci un termine di ricerca...", + "noTableChosenForFiltering": "Scegli una tabella per iniziare ad utilizzare i filtri delle sorgenti dati.", + "noTableChosenForSorting": "Scegli una tabella per iniziare ad utilizzare gli ordinamenti delle sorgenti dati." + }, + "localBaserowTableServiceConditionalForm": { + "noCompatibleFilterTypesErrorTitle": "Nessun tipo di filtro compatibile", + "noCompatibleFilterTypesErrorMessage": "Nessuno dei tuoi campi ha un tipo di filtro compatibile", + "addFilter": "Aggiungi un altro filtro", + "noFilterTitle": "Non hai ancora creato un filtro sulle sorgenti dati", + "noFilterText": "I filtri sulle sorgenti dati ti consentono di mostrare le righe della tabella Baserow che si applicano alle tue condizioni.", + "relatedFieldNotFound": "Impossibile trovare il campo correlato.", + "filterTypeNotFound": "Il tipo di filtro non è compatibile.", + "formulaFilterInputPlaceholder": "Inserisci il testo...", + "useFormulaForValue": "Utilizza una formula per questo filtro", + "useDefaultForValue": "Utilizza il filtro di default per questo campo" + }, + "localBaserowTableServiceSortForm": { + "noSortTitle": "Non hai ancora creato un ordinamento per le sorgenti dati", + "noSortText": "L'ordinamento ti permette di ordinare le righe per un campo.", + "noTableChosenForSorting": "Scegli una tabella per iniziare ad utilizzare gli ordinamenti delle sorgenti dati.", + "sortBy": "Ordina per", + "thenBy": "Poi per", + "addSort": "Aggiungi un ordinamento" + }, + "integrationType": { + "localBaserow": "Baserow locale", + "localBaserowSummary": "Baserow locale - {name}, {surname}", + "localBaserowWarning": "L'autorizzazione del tuo account fornisce a chiunque abbia autorizzazioni di modifica per l'applicazione l'accesso completo ai dati a cui hai accesso. È possibile creare un secondo utente, fornire i permessi corretti e utilizzare quest'ultimo." + }, + "serviceType": { + "localBaserowGetRow": "Leggi single Row", + "localBaserowListRows": "Elenca multiple rows", + "localBaserowAggregateRows": "Aggrega campo", + "misconfigured": "Errore di configurazione", + "trashedField": "Campo eliminato" + }, + "userSourceType": { + "localBaserow": "Autenticazione tramite tabella di Baserow" + }, + "localBaserowForm": { + "user": "Utente", + "userMessage": "Creando questa connessione, autorizzi l'applicazione a utilizzare il tuo account per apportare modifiche nell'area di lavoro Baserow locale." + }, + "dataProviderType": { + "dataSource": "Sorgente dati", + "pageParameter": "Parametro" + }, + "localBaserowTableSelector": { + "viewFieldLabel": "Vista", + "tableFieldLabel": "Tabella", + "chooseNoView": "Non selezionato", + "databaseFieldLabel": "Database" + }, + "localBaserowIntegrationType": { + "localBaserowSummary": "Baserow Locale - {name}, {username}", + "localBaserowNoUser": "Baserow Locale - Non configurato", + "localBaserowWarning": "Autorizzare il tuo account consente a chiunque abbia i permessi di modifica sull'applicazione di avere pieno accesso ai dati a cui hai accesso tu. È possibile creare un secondo utente, assegnare i permessi appropriati e utilizzare quello." + }, + "integrationsCommon": { + "singleRow": "Singola riga", + "multipleRows": "Più righe" + }, + "localBaserowAggregateRowsForm": { + "aggregationFieldLabel": "Campo", + "aggregationTypeLabel": "Aggregazione", + "searchFieldPlaceHolder": "Inserisci un termine per la ricerca...", + "noTableChosenForFiltering": "Scegli una tabella per iniziare ad usare i filtri.", + "filterTabTitle": "Filtri", + "searchTabTitle": "Cerca" + } } diff --git a/web-frontend/modules/integrations/locales/ko.json b/web-frontend/modules/integrations/locales/ko.json index 317aedbca7..51f1501690 100644 --- a/web-frontend/modules/integrations/locales/ko.json +++ b/web-frontend/modules/integrations/locales/ko.json @@ -55,8 +55,8 @@ "corePeriodic": "주기적 트리거", "corePeriodicDescription": "지정된 간격으로 주기적으로 워크플로우를 트리거합니다", "corePeriodicErrorIntervalMissing": "간격이 필요합니다.", - "coreHTTPTrigger": "HTTP 요청 수신", - "coreHTTPTriggerDescription": "HTTP 요청이 수신되었을 때 트리거됩니다.", + "coreHTTPTrigger": "HTTP 요청을 수신합니다", + "coreHTTPTriggerDescription": "HTTP 요청이 수신될 때 발생합니다.", "coreIteration": "반복자", "coreIterationDescription": "항목을 반복합니다.", "errorIterationSourceMissing": "소스 속성이 누락되었습니다", @@ -83,7 +83,7 @@ "localBaserowGetRowForm": { "rowFieldLabel": "행 ID", "invalidFormula": "수식이 유효하지 않습니다", - "rowFieldPlaceHolder": "행 ID 선택", + "rowFieldPlaceHolder": "단일 행 ID를 선택하세요", "rowFieldHelpText": "첫 번째 행을 반환하려면 이 값을 비워 두세요.", "searchFieldPlaceHolder": "검색어 입력...", "noTableChosenForFiltering": "데이터 소스 필터를 사용하려면 테이블을 선택하세요.", @@ -142,7 +142,9 @@ "tableFieldLabel": "테이블", "chooseNoView": "선택되지 않음", "databaseFieldLabel": "데이터베이스", - "dataSyncedTableDescription": "데이터 동기화 테이블" + "dataSyncedTableDescription": "데이터 동기화 테이블", + "oneWayDataSyncedTableDescription": "단방향 동기화", + "twoWayDataSyncedTableDescription": "양방향 동기화" }, "coreHTTPRequestServiceForm": { "value": "값", @@ -218,7 +220,7 @@ "branchesDescription": "브랜치를 사용하면 조건이 충족될 때만 노드를 실행할 수 있습니다. 브랜치는 조건이 충족될 때까지 왼쪽에서 오른쪽으로 실행되며, 그렇지 않으면 기본 브랜치가 실행됩니다. ", "branchLabel": "라벨", "branchConditionLabel": "조건", - "branchConditionPlaceholder": "조건 입력...", + "branchConditionPlaceholder": "만약 사실이라면, 우리는 이 분기를 따릅니다.", "addEdge": "브랜치 추가", "edgeDefaultName": "브랜치", "noLabel": "라벨 없음", @@ -297,12 +299,12 @@ "supportSetupDescription": "Slack 작업 공간 설정에 따라 새 Slack 앱을 생성할 수 있습니다. 그렇지 않은 경우 관리자가 대신 생성해야 합니다. 메시지를 작성할 수 있는 기존 앱을 재사용하는 경우 'Slack 앱과 페어링하기' 섹션으로 건너뛰세요.", "supportSetupStep1": "워크스페이스의 <a href=\"https://api.slack.com/apps\" target=\"_blank\">앱 페이지</a>로 이동하세요.", "supportSetupStep2": "새 앱을 만들고 '처음부터'를 선택한 후 이름을 입력하세요. 앱이 작동할 작업 공간을 선택하고 '만들기'를 클릭하세요.", - "supportSetupStep3": "왼쪽 사이드바에서 'OAuth 및 권한'으로 이동한 후 범위까지 아래로 스크롤하여 '봇 토큰 범위' 아래에서 'OAuth 범위 추가'를 선택합니다.", + "supportSetupStep3": "왼쪽 사이드바에서 'OAuth 및 권한'으로 이동한 다음, '범위'까지 아래로 스크롤하여 '봇 토큰 범위' 아래에서 'OAuth 범위 추가'를 선택합니다.", "supportSetupStep4": "앱에서 메시지를 게시할 수 있도록 하려면 <pre>chat:write</pre> 범위를 추가하세요.", "supportPairingHeading": "2. Slack 앱과 페어링", "supportPairingStep1": "앱이 새로 설치된 경우: '설정' > '앱 설치'로 이동하세요. 녹색 버튼을 클릭하여 작업 공간에 앱을 설치하세요.", "supportPairingStep2": "'봇 사용자 OAuth 토큰'을 복사하여 이 양식의 '봇 사용자 토큰' 필드에 저장하세요.", - "supportPairingStep3": "마지막으로, 앱이 새롭다면 Slack에서 <pre>/invite {'@'}yourAppName yourChannel</pre>을 사용하여 선택한 채널에 앱을 초대하세요" + "supportPairingStep3": "마지막으로, 앱이 새롭다면: Slack에서 <pre>/invite {'@'}yourAppName yourChannel</pre> 명령어로 선택한 채널에 앱을 초대하세요." }, "slackWriteMessageServiceForm": { "alertMessage": "이 작업은 Slack 앱과 연동되어야 합니다. 시작하려면 통합 팝업의 가이드를 따르세요.", @@ -316,5 +318,21 @@ "coreIterationServiceForm": { "source": "소스", "sourcePlaceholder": "출처를 선택하세요..." + }, + "localBaserowUpsertRowServiceForm": { + "fieldMappingPlaceholderDuration": "원하는 시간 값을 선택하세요. 예: 1:23:40", + "noTableSelectedMessage": "필드를 구성하려면 테이블을 선택하세요.", + "noWritableFields": "이 테이블에는 쓰기 가능한 필드가 없습니다.", + "fieldMappingPlaceholderDecimal": "소수점 값을 선택하세요. 예: 3.14", + "fieldMappingPlaceholderArray": "배열 값을 선택하세요. 예: [42]", + "fieldMappingPlaceholderString": "문자열 값을 선택하세요. 예: 'baserow'", + "fieldMappingPlaceholderNumber": "예를 들어 42와 같이 숫자 값을 선택하세요", + "fieldMappingPlaceholderBoolean": "true와 같은 부울 값을 선택하세요", + "fieldMappingPlaceholderDate": "날짜 값을 선택하세요. 예: 2025-07-25" + }, + "localBaserowServiceForm": { + "integrationDropdownLabel": "통합", + "rowIdLabel": "행 ID", + "rowIdPlaceholder": "단일 행 ID를 선택하세요" } } diff --git a/web-frontend/modules/integrations/locales/nl.json b/web-frontend/modules/integrations/locales/nl.json index ee3a03046f..85dcb6fe12 100644 --- a/web-frontend/modules/integrations/locales/nl.json +++ b/web-frontend/modules/integrations/locales/nl.json @@ -40,7 +40,9 @@ "viewFieldLabel": "Weergave", "tableFieldLabel": "Tabel", "chooseNoView": "Niet geselecteerd", - "dataSyncedTableDescription": "Gesynchroniseerde tabel" + "dataSyncedTableDescription": "Gesynchroniseerde tabel", + "oneWayDataSyncedTableDescription": "Eenrichtings gesynchroniseerd", + "twoWayDataSyncedTableDescription": "Tweerichtings gesynchroniseerd" }, "integrationType": { "localBaserow": "Lokaal Baserow", @@ -318,5 +320,21 @@ "messageLabel": "Bericht", "messagePlaceholder": "Voer een bericht in...", "channelNoPrefix": "Verwijder de '#' voor de kanaalnaam." + }, + "localBaserowServiceForm": { + "integrationDropdownLabel": "Integratie", + "rowIdLabel": "Rij-ID", + "rowIdPlaceholder": "Kies één rij-ID" + }, + "localBaserowUpsertRowServiceForm": { + "fieldMappingPlaceholderArray": "Kies een arraywaarde, bijv. [42]", + "fieldMappingPlaceholderString": "Kies een stringwaarde, bijv. \\'baserow\\'", + "fieldMappingPlaceholderNumber": "Kies een getalwaarde, bijv. 42", + "fieldMappingPlaceholderBoolean": "Kies een booleaanse waarde, bijv. true", + "fieldMappingPlaceholderDate": "Kies een datumwaarde, bijv. 2025-07-25", + "fieldMappingPlaceholderDecimal": "Kies een decimale waarde, bijv. 3.14", + "fieldMappingPlaceholderDuration": "Kies een tijdsduurwaarde, bijv. 1:23:40", + "noTableSelectedMessage": "Kies een tabel om te beginnen met het configureren van je velden.", + "noWritableFields": "Deze tabel bevat geen beschrijfbare velden." } } diff --git a/web-frontend/modules/integrations/locales/uk.json b/web-frontend/modules/integrations/locales/uk.json index 882cc6f787..fc12932695 100644 --- a/web-frontend/modules/integrations/locales/uk.json +++ b/web-frontend/modules/integrations/locales/uk.json @@ -123,7 +123,7 @@ "localBaserowGetRowForm": { "rowFieldLabel": "ID рядка", "invalidFormula": "Формула недійсна", - "rowFieldPlaceHolder": "Виберіть ID рядка", + "rowFieldPlaceHolder": "Виберіть ідентифікатор одного рядка", "rowFieldHelpText": "Залиште це значення порожнім, щоб повернути перший рядок.", "searchFieldPlaceHolder": "Введіть пошуковий запит...", "noTableChosenForFiltering": "Виберіть таблицю, щоб почати використовувати фільтри джерела даних.", @@ -207,12 +207,13 @@ "supportSetupHeading": "1. Налаштування застосунку", "supportSetupDescription": "Залежно від налаштувань вашого робочого простору Slack, ви можете створити новий застосунок Slack. В іншому випадку адміністратор повинен зробити це за вас. Якщо ви повторно використовуєте існуючий застосунок, який може надсилати повідомлення, перейдіть до розділу \"Підключення до вашого застосунку Slack\".", "supportSetupStep2": "Створіть новий застосунок, виберіть \"З нуля\" та введіть назву. Виберіть робочий простір, у якому повинен працювати ваш застосунок, і натисніть \"Створити\".", - "supportSetupStep3": "На лівій бічній панелі перейдіть до \"OAuth & Permissions\", прокрутіть вниз до Scopes і в розділі \"Bot Token Scopes\" виберіть \"Add an OAuth Scope\".", + "supportSetupStep3": "На лівій бічній панелі перейдіть до \"OAuth & Permissions\", прокрутіть вниз до Scopes і в розділі \"Bot Token Scopes\" виберіть \"Add an OAuth Scope\".", "supportPairingHeading": "2. Підключення до вашого застосунку Slack", - "supportPairingStep1": "Якщо ваш застосунок новий: перейдіть до \"Settings\" > \"Install App\". Натисніть зелену кнопку, щоб встановити застосунок у ваш робочий простір.", + "supportPairingStep1": "Якщо ваш застосунок новий: перейдіть до \"Settings\" > \"Install App\". Натисніть зелену кнопку, щоб встановити застосунок у ваш робочий простір.", "supportPairingStep2": "Скопіюйте ваш \"Bot User OAuth Token\" і збережіть його в полі \"Токен користувача бота\" у цій формі.", - "supportSetupStep1": "Перейдіть до вашого робочого простору .", - "supportSetupStep4": "Щоб дозволити вашому додатку надсилати повідомлення, додайте
chat:write
область." + "supportPairingStep3": "Нарешті, якщо ваш додаток новий: у Slack запросіть його до обраного каналу за допомогою команди <pre>/invite {'@'}yourAppName yourChannel</pre>", + "supportSetupStep1": "Перейдіть до вашого робочого простору <a href=\"https://api.slack.com/apps\" target=\"_blank\">.", + "supportSetupStep4": "Щоб дозволити вашому додатку надсилати повідомлення, додайте <pre>chat:write</pre> область." }, "slackWriteMessageServiceForm": { "alertMessage": "Ця дія повинна бути пов'язана із застосунком Slack. Дотримуйтесь інструкцій у спливаючому вікні інтеграцій, щоб почати.", @@ -228,7 +229,9 @@ "tableFieldLabel": "Таблиця", "chooseNoView": "Не вибрано", "databaseFieldLabel": "База даних", - "dataSyncedTableDescription": "Синхронізована таблиця даних" + "dataSyncedTableDescription": "Синхронізована таблиця даних", + "oneWayDataSyncedTableDescription": "Одностороння синхронізація", + "twoWayDataSyncedTableDescription": "Синхронізація в обидва боки" }, "smtpIntegrationType": { "smtpSummary": "SMTP - {host}:{port}" @@ -240,22 +243,22 @@ "portPlaceholder": "587", "useTls": "Використовувати TLS", "username": "Ім'я користувача", - "usernamePlaceholder": "your-email@example.com", + "usernamePlaceholder": "your-email{'@'}example.com", "password": "Пароль", "passwordPlaceholder": "ваш-пароль" }, "smtpEmailForm": { "integrationDropdownLabel": "Інтеграція", "fromEmail": "Від кого (Email)", - "fromEmailPlaceholder": "sender@example.com", + "fromEmailPlaceholder": "sender{'@'}example.com", "fromName": "Від кого (Ім'я)", "fromNamePlaceholder": "Ваше ім'я", "toEmails": "Кому (Email)", - "toEmailsPlaceholder": "recipient1@example.com,recipient2@example.com", + "toEmailsPlaceholder": "recipient1{'@'}example.com,recipient2{'@'}example.com", "ccEmails": "Копія (CC)", - "ccEmailsPlaceholder": "cc1@example.com,cc2@example.com", + "ccEmailsPlaceholder": "cc1{'@'}example.com,cc2{'@'}example.com", "bccEmails": "Прихована копія (BCC)", - "bccEmailsPlaceholder": "bcc1@example.com,bcc2@example.com", + "bccEmailsPlaceholder": "bcc1{'@'}example.com,bcc2{'@'}example.com", "subject": "Тема", "subjectPlaceholder": "Тема вашого листа", "bodyType": "Тип тіла", @@ -276,7 +279,7 @@ "branchesDescription": "Гілки дозволяють виконувати вузли лише коли умова виконана. Гілки виконуються зліва направо, поки не буде виконана умова, інакше буде виконана гілка за замовчуванням. ", "branchLabel": "Мітка", "branchConditionLabel": "Умова", - "branchConditionPlaceholder": "Введіть умову...", + "branchConditionPlaceholder": "Якщо значення істинне, буде виконано цю гілку.", "addEdge": "Додати гілку", "edgeDefaultName": "Гілка", "noLabel": "Без мітки", @@ -308,5 +311,21 @@ "monthHelper": "Цей робочий процес буде запускатися щомісяця у вказаний день і час у вашому місцевому часовому поясі ({timezone})", "deactivatedTitle": "Періодичний тригер деактивовано", "deactivatedText": "Цей періодичний тригер було автоматично деактивовано через послідовні невдачі." + }, + "localBaserowServiceForm": { + "integrationDropdownLabel": "Інтеграція", + "rowIdLabel": "ID рядка", + "rowIdPlaceholder": "Виберіть ідентифікатор одного рядка" + }, + "localBaserowUpsertRowServiceForm": { + "fieldMappingPlaceholderArray": "Виберіть значення масиву, наприклад [42]", + "fieldMappingPlaceholderString": "Виберіть рядкове значення, наприклад \\'baserow\\'", + "fieldMappingPlaceholderNumber": "Виберіть числове значення, наприклад 42", + "fieldMappingPlaceholderBoolean": "Виберіть булеве значення, наприклад true", + "fieldMappingPlaceholderDate": "Виберіть значення дати, наприклад 2025-07-25", + "fieldMappingPlaceholderDecimal": "Виберіть десяткове значення, наприклад 3.14", + "fieldMappingPlaceholderDuration": "Виберіть значення тривалості, наприклад 1:23:40", + "noTableSelectedMessage": "Виберіть таблицю, щоб почати налаштовувати поля.", + "noWritableFields": "Ця таблиця не містить жодних полів, доступних для запису." } }