Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions backend/src/baserow/config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,7 @@
("it", "Italian"),
("pl", "Polish"),
("ko", "Korean"),
("uk", "Ukrainian"),
]

TIME_ZONE = "UTC"
Expand Down
Original file line number Diff line number Diff line change
@@ -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),
),
]
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
@@ -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"
}
48 changes: 44 additions & 4 deletions enterprise/web-frontend/modules/baserow_enterprise/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand All @@ -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": {
Expand Down Expand Up @@ -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 deURLs.",
"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",
Expand Down Expand Up @@ -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",
Expand All @@ -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"
}
}
46 changes: 43 additions & 3 deletions enterprise/web-frontend/modules/baserow_enterprise/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand All @@ -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": {
Expand Down Expand Up @@ -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...",
Expand Down Expand Up @@ -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."
}
}
24 changes: 20 additions & 4 deletions enterprise/web-frontend/modules/baserow_enterprise/locales/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -191,11 +191,12 @@
},
"memberRolesModal": {
"memberRolesDatabaseTabTitle": "데이터베이스",
"memberRolesTableTabTitle": "현재 테이블",
"memberRolesTableTabTitle": "테이블",
"error": {
"title": "데이터를 가져올 수 없습니다",
"description": "멤버 데이터를 가져오는 동안 오류가 발생했습니다."
}
},
"memberRolesViewTabTitle": "뷰"
},
"memberRolesTab": {
"database": {
Expand All @@ -215,6 +216,15 @@
"warningTitle": "다른 사용자가 액세스를 상속받을 수 있습니다!",
"warningMessage": "다른 사용자가 상위 데이터베이스 또는 작업공간의 해당 역할을 통해 액세스를 상속받을 수 있습니다.",
"headerTooltip": "테이블 역할은 작업공간 및 데이터베이스 역할을 재정의합니다."
},
"view": {
"title": "{name} 뷰",
"selectMembers": "멤버를 선택하세요",
"everyoneHasAccess": "{name} 워크스페이스의 모든 사용자는 이 보기에 접근할 수 있습니다.",
"onlyYouHaveAccess": "이 화면은 당신만 볼 수 있습니다.",
"warningTitle": "다른 사용자가 접근 권한을 상속받을 수도 있습니다!",
"warningMessage": "다른 사용자는 상위 테이블, 데이터베이스 또는 작업 공간에 대한 각자의 역할에 따라 액세스 권한을 상속받을 수 있습니다.",
"headerTooltip": "보기 역할은 작업 공간, 데이터베이스 및 테이블 역할을 재정의합니다."
}
},
"memberRolesShareToggle": {
Expand Down Expand Up @@ -554,7 +564,7 @@
"helpTextTitle": "도움말",
"defaultNameTitle": "초기 파일 이름|초기 파일 이름",
"defaultNamePlaceholder": "파일 이름을 입력하세요...|파일 이름을 입력하세요...",
"defaultNameHelp": "이름의 수는 URL의 수와 일치해야 합니다.",
"defaultNameHelp": "이름의 개수는 URL의 개수와 일치해야 합니다.",
"defaultUrlTitle": "초기 파일 URL|초기 파일 URL",
"defaultUrlPlaceholder": "기본 URL을 입력하세요...|기본 URL을 입력하세요...",
"helpTextPlaceholder": "비워두면 기본값이 사용됩니다...",
Expand Down Expand Up @@ -682,7 +692,9 @@
"advancedSettingsLabel": "고급 설정",
"includeWeekendsLabel": "기간을 계산할 때 주말을 포함",
"dependencyFieldForReaderTooltip": "이 필드는 날짜 종속성 필드 규칙에 포함됩니다",
"fieldInvalidTitle": "날짜 종속성 필드 오류"
"fieldInvalidTitle": "날짜 종속성 필드 오류",
"addNewField": "새 필드 추가",
"linkRowFieldTitle": "부모"
},
"assistant": {
"statusThinking": "생각중...",
Expand Down Expand Up @@ -714,5 +726,9 @@
},
"assistantMessageList": {
"disclaimer": "쿠마는 실수를 할 수 있으니 답변을 다시 한번 확인해 주세요"
},
"viewOwnershipType": {
"restricted": "제한된",
"restrictedDescription": "편집자 이하 권한자는 필터링된 데이터와 표시된 필드만 볼 수 있습니다. 멤버 관리도 가능합니다."
}
}
44 changes: 42 additions & 2 deletions enterprise/web-frontend/modules/baserow_enterprise/locales/nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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...",
Expand Down Expand Up @@ -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."
}
}
Loading
Loading