Browse Source

Merge branch 'develop' into geodata-prototyping-restart

pull/4749/head
flisowna 2 years ago
parent
commit
d1ed91474e
  1. 2
      .github/workflows/release-nightly-dev.yml
  2. 2
      .github/workflows/release-pr.yml
  3. 20
      packages/nc-cli/package-lock.json
  4. 8
      packages/nc-gui/components/dashboard/TreeView.vue
  5. 4
      packages/nc-gui/components/general/ViewIcon.vue
  6. 1
      packages/nc-gui/components/virtual-cell/barcode/Barcode.vue
  7. 8
      packages/nc-gui/composables/useProject.ts
  8. 748
      packages/nc-gui/lang/cs.json
  9. 748
      packages/nc-gui/lang/eu.json
  10. 8
      packages/nc-gui/lang/fr.json
  11. 748
      packages/nc-gui/lang/sk.json
  12. 3
      packages/nc-gui/lib/enums.ts
  13. 3
      packages/nc-gui/nuxt.config.ts
  14. 18
      packages/nc-gui/pages/[projectType]/[projectId]/index/index.vue
  15. 10
      packages/nc-gui/pages/index/index/[projectId].vue
  16. 53
      packages/nc-plugin/package-lock.json
  17. 2
      packages/noco-docs/content/en/setup-and-usages/dashboard.md
  18. 21
      packages/noco-docs/content/en/setup-and-usages/project-settings.md
  19. 2
      packages/noco-docs/content/en/setup-and-usages/sync-schema.md
  20. 40610
      packages/noco-docs/package-lock.json
  21. 2
      packages/noco-docs/package.json
  22. 421
      packages/nocodb/package-lock.json
  23. 2
      packages/nocodb/package.json
  24. 13
      tests/playwright/pages/Dashboard/common/Cell/DateTimeCell.ts
  25. 3
      tests/playwright/tests/language.spec.ts

2
.github/workflows/release-nightly-dev.yml

@ -21,7 +21,7 @@ jobs:
TAG_NAME=${CURRENT_DATE}-${CURRENT_TIME} TAG_NAME=${CURRENT_DATE}-${CURRENT_TIME}
IS_DAILY='Y' IS_DAILY='Y'
# Get current version # Get current version
CURRENT_VERSION=$(basename $(curl -fs -o/dev/null -w %{redirect_url} https://github.com/nocodb/nocodb/releases/latest)) CURRENT_VERSION=$(curl -fs https://docs.nocodb.com/releases | grep article | grep div | grep h2 | grep 'id\="[^"]*' -o | cut -c 5-)
# Set the tag # Set the tag
if [[ ${{ github.event_name }} == 'workflow_dispatch' ]]; then if [[ ${{ github.event_name }} == 'workflow_dispatch' ]]; then
IS_DAILY='N' IS_DAILY='N'

2
.github/workflows/release-pr.yml

@ -33,7 +33,7 @@ jobs:
# Get current PR number # Get current PR number
PR_NUMBER=${{github.event.number}} PR_NUMBER=${{github.event.number}}
# Get current version # Get current version
CURRENT_VERSION=$(basename $(curl -fs -o/dev/null -w %{redirect_url} https://github.com/nocodb/nocodb/releases/latest)) CURRENT_VERSION=$(curl -fs https://docs.nocodb.com/releases | grep article | grep div | grep h2 | grep 'id\="[^"]*' -o | cut -c 5-)
# Construct tag name # Construct tag name
TAG_NAME=pr-${PR_NUMBER}-${CURRENT_DATE}-${CURRENT_TIME} TAG_NAME=pr-${PR_NUMBER}-${CURRENT_DATE}-${CURRENT_TIME}
echo "TARGET_TAG=${TAG_NAME}" >> $GITHUB_OUTPUT echo "TARGET_TAG=${TAG_NAME}" >> $GITHUB_OUTPUT

20
packages/nc-cli/package-lock.json generated

@ -8753,13 +8753,10 @@
"dev": true "dev": true
}, },
"node_modules/json5": { "node_modules/json5": {
"version": "2.2.0", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==",
"dev": true, "dev": true,
"dependencies": {
"minimist": "^1.2.5"
},
"bin": { "bin": {
"json5": "lib/cli.js" "json5": "lib/cli.js"
}, },
@ -22229,13 +22226,10 @@
"dev": true "dev": true
}, },
"json5": { "json5": {
"version": "2.2.0", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==",
"dev": true, "dev": true
"requires": {
"minimist": "^1.2.5"
}
}, },
"jsonfile": { "jsonfile": {
"version": "6.1.0", "version": "6.1.0",

8
packages/nc-gui/components/dashboard/TreeView.vue

@ -35,7 +35,7 @@ const { addTab, updateTab } = useTabs()
const { $api, $e } = useNuxtApp() const { $api, $e } = useNuxtApp()
const { bases, tables, loadTables, isSharedBase } = useProject() const { project, loadProject, bases, tables, loadTables, isSharedBase } = useProject()
const { activeTab } = useTabs() const { activeTab } = useTabs()
@ -324,6 +324,12 @@ const setIcon = async (icon: string, table: TableType) => {
message.error(await extractSdkResponseErrorMsg(e)) message.error(await extractSdkResponseErrorMsg(e))
} }
} }
onMounted(async () => {
if (!project.value?.id) {
await loadProject()
}
})
</script> </script>
<template> <template>

4
packages/nc-gui/components/general/ViewIcon.vue

@ -10,7 +10,7 @@ const props = defineProps<{
const viewMeta = toRef(props, 'meta') const viewMeta = toRef(props, 'meta')
</script> </script>
<template> <template v-if="viewMeta">
<IcIcon <IcIcon
v-if="viewMeta?.meta?.icon" v-if="viewMeta?.meta?.icon"
:data-testid="`nc-icon-${viewMeta?.meta?.icon}`" :data-testid="`nc-icon-${viewMeta?.meta?.icon}`"
@ -19,7 +19,7 @@ const viewMeta = toRef(props, 'meta')
/> />
<component <component
:is="viewIcons[viewMeta.type]?.icon" :is="viewIcons[viewMeta.type]?.icon"
v-else v-else-if="viewMeta?.type"
class="nc-view-icon group-hover" class="nc-view-icon group-hover"
:style="{ color: viewIcons[viewMeta.type]?.color }" :style="{ color: viewIcons[viewMeta.type]?.color }"
/> />

1
packages/nc-gui/components/virtual-cell/barcode/Barcode.vue

@ -46,7 +46,6 @@ const { showEditNonEditableFieldWarning, showClearNonEditableFieldWarning } = us
v-if="showBarcode" v-if="showBarcode"
:barcode-value="barcodeValue" :barcode-value="barcodeValue"
:barcode-format="barcodeMeta.barcodeFormat" :barcode-format="barcodeMeta.barcodeFormat"
class="nc-barcode-svg"
@on-click-barcode="showBarcodeModal" @on-click-barcode="showBarcodeModal"
> >
<template #barcodeRenderError> <template #barcodeRenderError>

8
packages/nc-gui/composables/useProject.ts

@ -1,6 +1,7 @@
import type { BaseType, OracleUi, ProjectType, TableType } from 'nocodb-sdk' import type { BaseType, OracleUi, ProjectType, TableType } from 'nocodb-sdk'
import { SqlUiFactory } from 'nocodb-sdk' import { SqlUiFactory } from 'nocodb-sdk'
import { isString } from '@vueuse/core' import { isString } from '@vueuse/core'
import { useRoute } from 'vue-router'
import { import {
ClientType, ClientType,
computed, computed,
@ -11,7 +12,6 @@ import {
useInjectionState, useInjectionState,
useNuxtApp, useNuxtApp,
useRoles, useRoles,
useRoute,
useRouter, useRouter,
useTheme, useTheme,
} from '#imports' } from '#imports'
@ -42,9 +42,9 @@ const [setup, use] = useInjectionState(() => {
const lastOpenedViewMap = ref<Record<string, string>>({}) const lastOpenedViewMap = ref<Record<string, string>>({})
let forcedProjectId: string | undefined const forcedProjectId = ref<string>()
const projectId = computed(() => forcedProjectId || (route.params.projectId as string)) const projectId = computed(() => forcedProjectId.value || (route.params.projectId as string))
// todo: refactor path param name and variable name // todo: refactor path param name and variable name
const projectType = $computed(() => route.params.projectType as string) const projectType = $computed(() => route.params.projectType as string)
@ -107,7 +107,7 @@ const [setup, use] = useInjectionState(() => {
} }
async function loadProject(withTheme = true, forcedId?: string) { async function loadProject(withTheme = true, forcedId?: string) {
if (forcedId) forcedProjectId = forcedId if (forcedId) forcedProjectId.value = forcedId
if (projectType === 'base') { if (projectType === 'base') {
try { try {
const baseData = await api.public.sharedBaseGet(route.params.projectId as string) const baseData = await api.public.sharedBaseGet(route.params.projectId as string)

748
packages/nc-gui/lang/cs.json

@ -0,0 +1,748 @@
{
"general": {
"home": "Domů",
"load": "Načíst",
"open": "Otevřít",
"close": "Zavřít",
"yes": "Ano",
"no": "Ne",
"ok": "OK",
"and": "a",
"or": "nebo",
"add": "Přidat",
"edit": "Upravit",
"remove": "Odstranit",
"save": "Uložit",
"cancel": "Zrušit",
"submit": "Potvrdit",
"create": "Vytvořit",
"duplicate": "Duplikovat",
"insert": "Vložit",
"delete": "Smazat",
"update": "Aktualizovat",
"rename": "Přejmenovat",
"reload": "Znovu načíst",
"reset": "Obnovit",
"install": "Instalovat",
"show": "Zobrazit",
"hide": "Skrýt",
"showAll": "Zobrazit vše",
"hideAll": "Skrýt vše",
"showMore": "Zobrazit více",
"showOptions": "Zobrazit možnosti",
"hideOptions": "Skrýt možnosti",
"showMenu": "Zobrazit menu",
"hideMenu": "Skrýt menu",
"addAll": "Přidat vše",
"removeAll": "Odstranit vše",
"signUp": "REGISTROVAT",
"signIn": "PŘIHLÁSIT SE",
"signOut": "Odhlásit se",
"required": "Vyžadováno",
"preferred": "Preferováno",
"mandatory": "Povinné",
"loading": "Načítání ...",
"title": "Název",
"upload": "Nahrát",
"download": "Stáhnout",
"default": "Výchozí",
"more": "Více",
"less": "Méně",
"event": "Událost",
"condition": "Podmínka",
"after": "Po",
"before": "Před",
"search": "Hledat",
"notification": "Oznámení",
"reference": "Reference",
"function": "Funkce",
"confirm": "Potvrdit",
"generate": "Generate",
"copy": "Kopírovat",
"misc": "Miscellaneous",
"lock": "Uzamknout",
"unlock": "Odemknout",
"credentials": "Přihlašovací údaje",
"help": "Pomoc",
"questions": "Otázky",
"reachOut": "Reach out here",
"betaNote": "Tato funkce je momentálně v beta verzi.",
"moreInfo": "Více informací naleznete zde",
"logs": "Protokoly",
"groupingField": "Grouping Field",
"insertAfter": "Vložit za",
"insertBefore": "Vložit před",
"hideField": "Skrýt pole",
"sortAsc": "Seřadit vzestupně",
"sortDesc": "Seřadit sestupně"
},
"objects": {
"project": "Projekt",
"projects": "Projekty",
"table": "Tabulka",
"tables": "Tabulky",
"field": "Pole",
"fields": "Pole",
"column": "Sloupec",
"columns": "Sloupce",
"page": "Stránka",
"pages": "Stránky",
"record": "záznam",
"records": "záznamy",
"webhook": "Webhook",
"webhooks": "Webhooky",
"view": "Pohled",
"views": "Pohledy",
"viewType": {
"grid": "Mřížka",
"gallery": "Galerie",
"form": "Formulář",
"kanban": "Kanban",
"calendar": "Kalendář"
},
"user": "Uživatel",
"users": "Uživatelé",
"role": "Role",
"roles": "Role",
"roleType": {
"owner": "Vlastník",
"creator": "Autor",
"editor": "Editor",
"commenter": "Komentátor",
"viewer": "Sledující",
"orgLevelCreator": "Organization Level Creator",
"orgLevelViewer": "Organization Level Viewer"
},
"sqlVIew": "SQL View"
},
"datatype": {
"ID": "ID",
"ForeignKey": "Cizí klíč",
"SingleLineText": "Jednořádkový text",
"LongText": "Dlouhý text",
"Attachment": "Příloha",
"Checkbox": "Zaškrtávací políčko",
"MultiSelect": "Vícenásobný výběr",
"SingleSelect": "Jednoduchý výběr",
"Collaborator": "Spolupracovník",
"Date": "Datum",
"Year": "Rok",
"Time": "Čas",
"PhoneNumber": "Telefonní číslo",
"Email": "E-mail",
"URL": "URL",
"Number": "Číslo",
"Decimal": "Desetinné číslo",
"Currency": "Měna",
"Percent": "Procenta",
"Duration": "Doba trvání",
"Rating": "Hodnocení",
"Formula": "Vzorec",
"Rollup": "Rollup",
"Count": "Počet",
"Lookup": "Lookup",
"DateTime": "Datum a čas",
"CreateTime": "Create Time",
"LastModifiedTime": "Čas poslední úpravy",
"AutoNumber": "Auto Number",
"Barcode": "Čárový kód",
"Button": "Tlačítko",
"Password": "Heslo",
"relationProperties": {
"noAction": "Žádná akce",
"cascade": "Kaskádově",
"restrict": "Restrict",
"setNull": "Nastavit NULL",
"setDefault": "Nastavit výchozí"
}
},
"filterOperation": {
"isEqual": "je rovno",
"isNotEqual": "není rovno",
"isLike": "je jako",
"isNot like": "není jako",
"isEmpty": "je prázdný",
"isNotEmpty": "is not empty",
"isNull": "is null",
"isNotNull": "is not null"
},
"title": {
"erdView": "ERD View",
"newProj": "New Project",
"myProject": "My Projects",
"formTitle": "Form Title",
"collabView": "Collaborative View",
"lockedView": "Locked View",
"personalView": "Personal View",
"appStore": "App Store",
"teamAndAuth": "Team & Auth",
"rolesUserMgmt": "Roles & Users Management",
"userMgmt": "Users Management",
"apiTokenMgmt": "API Tokens Management",
"rolesMgmt": "Roles Management",
"projMeta": "Project Metadata",
"metaMgmt": "Meta Management",
"metadata": "Metadata",
"exportImportMeta": "Export / Import Metadata",
"uiACL": "UI Access Control",
"metaOperations": "Metadata Operations",
"audit": "Audit",
"auditLogs": "Audit Log",
"sqlMigrations": "SQL Migrations",
"dbCredentials": "Database Credentials",
"advancedParameters": "SSL & Advanced parameters",
"headCreateProject": "Create Project | NocoDB",
"headLogin": "Log In | NocoDB",
"resetPassword": "Reset your password",
"teamAndSettings": "Team & Settings",
"apiDocs": "API Docs",
"importFromAirtable": "Import From Airtable",
"generateToken": "Generate Token",
"APIsAndSupport": "APIs & Support",
"helpCenter": "Help center",
"swaggerDocumentation": "Swagger Documentation",
"quickImportFrom": "Rychlý import z",
"quickImport": "Rychlý import",
"advancedSettings": "Pokročilá nastavení",
"codeSnippet": "Úryvek kódu",
"keyboardShortcut": "Klávesové zkratky"
},
"labels": {
"createdBy": "Vytvořil/a",
"notifyVia": "Upozornit pomocí",
"projName": "Název projektu",
"tableName": "Název tabulky",
"viewName": "Název zobrazení",
"viewLink": "Zobrazit odkaz",
"columnName": "Název sloupce",
"columnType": "Typ sloupce",
"roleName": "Název role",
"roleDescription": "Popis role",
"databaseType": "Typ v databázi",
"lengthValue": "Délka / hodnota",
"dbType": "Typ databáze",
"sqliteFile": "SQLite soubor",
"hostAddress": "Adresa hostitele",
"port": "Číslo portu",
"username": "Uživatelské jméno",
"password": "Heslo",
"schemaName": "Název schématu",
"database": "Databáze",
"action": "Akce",
"actions": "Akce",
"operation": "Operace",
"operationType": "Typ operace",
"operationSubType": "Podtyp operace",
"description": "Popis",
"authentication": "Authentication",
"token": "Token",
"where": "Kde",
"cache": "Mezipaměť",
"chat": "Chat",
"email": "E-mail",
"storage": "Úložiště",
"uiAcl": "UI-ACL",
"models": "Modely",
"syncState": "Stav synchronizace",
"created": "Vytvořeno",
"sqlOutput": "Výstup SQL",
"addOption": "Přidat možnost",
"qrCodeValueColumn": "Sloupec s hodnotou QR kódu",
"barcodeValueColumn": "Sloupec s hodnotou čárového kódu",
"barcodeFormat": "Formát čárového kódu",
"qrCodeValueTooLong": "Příliš mnoho znaků pro QR kód",
"barcodeValueTooLong": "Příliš mnoho znaků pro čárový kód",
"aggregateFunction": "Agregační funkce",
"dbCreateIfNotExists": "Databáze : vytvořit, pokud neexistuje",
"clientKey": "Klíč klienta",
"clientCert": "Certifikát klienta",
"serverCA": "CA serveru",
"requriedCa": "Požadovaná CA",
"requriedIdentity": "Required-IDENTITY",
"inflection": {
"tableName": "Inflection - Table name",
"columnName": "Inflection - Column name"
},
"community": {
"starUs1": "Star",
"starUs2": "nás na Githubu",
"bookDemo": "Zarezervujte si DEMO zdarma",
"getAnswered": "Get your questions answered",
"joinDiscord": "Připojte se na Discord",
"joinCommunity": "Připojte se k NocoDB komunitě",
"joinReddit": "Připojte se k /r/NocoDB",
"followNocodb": "Sledovat NocoDB"
},
"docReference": "Odkaz na dokument",
"selectUserRole": "Vybrat uživatelskou roli",
"childTable": "Podřízená tabulka",
"childColumn": "Podřízený sloupec",
"onUpdate": "Při aktualizaci",
"onDelete": "Při odstranění",
"account": "Účet",
"language": "Jazyk",
"primaryColor": "Hlavní barva",
"accentColor": "Barva zvýraznění",
"customTheme": "Vlastní motiv",
"requestDataSource": "Request a data source you need?",
"apiKey": "API klíč",
"sharedBase": "Shared Base",
"importData": "Importovat data",
"importSecondaryViews": "Import Secondary Views",
"importRollupColumns": "Import Rollup Columns",
"importLookupColumns": "Import Lookup Columns",
"importAttachmentColumns": "Import Attachment Columns",
"importFormulaColumns": "Import Formula Columns",
"noData": "Žádná data",
"goToDashboard": "Přejít na přehled",
"importing": "Importing",
"flattenNested": "Flatten Nested",
"downloadAllowed": "Download allowed",
"weAreHiring": "We are Hiring!",
"primaryKey": "Primární klíč",
"hasMany": "má mnoho",
"belongsTo": "patří do",
"manyToMany": "má mnoho vztahů",
"extraConnectionParameters": "Extra connection parameters",
"commentsOnly": "Pouze komentáře",
"documentation": "Dokumentace",
"subscribeNewsletter": "Subscribe to our weekly newsletter",
"signUpWithGoogle": "Sign up with Google",
"signInWithGoogle": "Sign in with Google",
"agreeToTos": "By signing up, you agree to the Terms of Service",
"welcomeToNc": "Welcome to NocoDB!",
"inviteOnlySignup": "Povolit registraci pouze pomocí pozvánky s odkazem"
},
"activity": {
"createProject": "Vytvořit projekt",
"importProject": "Import projektu",
"searchProject": "Vyhledat projekt",
"editProject": "Upravit projekt",
"stopProject": "Zastavit projekt",
"startProject": "Spustit projekt",
"restartProject": "Restartovat projekt",
"deleteProject": "Smazat projekt",
"refreshProject": "Aktualizovat projekty",
"saveProject": "Uložit projekt",
"deleteKanbanStack": "Delete stack?",
"createProjectExtended": {
"extDB": "Vytvořit připojením <br>k externí databázi",
"excel": "Vytvořit projekt z Excelu",
"template": "Vytvořit projekt ze šablony"
},
"OkSaveProject": "Potvrdit a uložit projekt",
"upgrade": {
"available": "Dostupná aktualizace",
"releaseNote": "Seznam změn",
"howTo": "Jak aktualizovat?"
},
"translate": "Pomozte s překladem",
"account": {
"authToken": "Kopírovat ověřovací token",
"swagger": "Swagger: REST API",
"projInfo": "Kopírovat informace o projektu",
"themes": "Motivy"
},
"sort": "Řazení",
"addSort": "Přidat možnost řazení",
"filter": "Filtr",
"addFilter": "Přidat filtr",
"share": "Sdílet",
"shareBase": {
"disable": "Disable shared base",
"enable": "Anyone with the link",
"link": "Shared base link"
},
"invite": "Invite",
"inviteMore": "Invite more",
"inviteTeam": "Invite Team",
"inviteUser": "Invite User",
"inviteToken": "Invite Token",
"newUser": "New User",
"editUser": "Edit user",
"deleteUser": "Remove user from project",
"resendInvite": "Resend invite E-mail",
"copyInviteURL": "Copy invite URL",
"copyPasswordResetURL": "Copy password reset URL",
"newRole": "New role",
"reloadRoles": "Reload roles",
"nextPage": "Next page",
"prevPage": "Previous page",
"nextRecord": "Next record",
"previousRecord": "Previous record",
"copyApiURL": "Copy API URL",
"createTable": "Table Create",
"refreshTable": "Tables Refresh",
"renameTable": "Table Rename",
"deleteTable": "Table Delete",
"addField": "Add new field to this table",
"setPrimary": "Set as Primary value",
"addRow": "Přidat nový řádek",
"saveRow": "Uložit řádek",
"saveAndExit": "Uložit a odejít",
"saveAndStay": "Uložit a zůstat",
"insertRow": "Vložit nový řádek",
"deleteRow": "Odstranit řádek",
"deleteSelectedRow": "Odstranit vybrané řádky",
"importExcel": "Importovat Excel",
"importCSV": "Importovat CSV",
"downloadCSV": "Stáhnout jako CSV",
"downloadExcel": "Stáhnout jako XLSX",
"uploadCSV": "Nahrát CSV",
"import": "Importovat",
"importMetadata": "Importovat metadata",
"exportMetadata": "Exportovat metadata",
"clearMetadata": "Vymazat metadata",
"exportToFile": "Exportovat do souboru",
"changePwd": "Změnit heslo",
"createView": "Vytvořit pohled",
"shareView": "Sdílet pohled",
"listSharedView": "Shared View List",
"ListView": "Seznam pohledů",
"copyView": "Kopírovat pohled",
"renameView": "Přejmenovat pohled",
"deleteView": "Odstranit pohled",
"createGrid": "Create Grid View",
"createGallery": "Create Gallery View",
"createCalendar": "Create Calendar View",
"createKanban": "Create Kanban View",
"createForm": "Create Form View",
"showSystemFields": "Show system fields",
"copyUrl": "Kopírovat URL adresu",
"openTab": "Otevřít novou kartu",
"iFrame": "Copy embeddable HTML code",
"addWebhook": "Přidat nový webhook",
"newToken": "Přidat nový token",
"exportZip": "Exportovat zip archív",
"importZip": "Importovat zip archív",
"metaSync": "Synchronizovat nyní",
"settings": "Nastavení",
"previewAs": "Náhled jako",
"resetReview": "Obnovit náhled",
"testDbConn": "Otestovat připojení k databázi",
"removeDbFromEnv": "Odstranit databázi z prostředí",
"editConnJson": "Edit connection JSON",
"sponsorUs": "Sponsor Us",
"sendEmail": "SEND EMAIL",
"addUserToProject": "Add user to project",
"getApiSnippet": "Get API Snippet",
"clearCell": "Clear cell",
"addFilterGroup": "Add Filter Group",
"linkRecord": "Link record",
"addNewRecord": "Add new record",
"useConnectionUrl": "Use Connection URL",
"toggleCommentsDraw": "Toggle comments draw",
"expandRecord": "Expand Record",
"deleteRecord": "Delete Record",
"erd": {
"showColumns": "Show Columns",
"showPkAndFk": "Show Primary and Foreign Keys",
"showSqlViews": "Show SQL Views",
"showMMTables": "Show Many to Many tables",
"showJunctionTableNames": "Show Junction Table Names"
},
"kanban": {
"collapseStack": "Collapse Stack",
"deleteStack": "Delete Stack",
"stackedBy": "Stacked By",
"chooseGroupingField": "Choose a Grouping Field",
"addOrEditStack": "Add / Edit Stack"
}
},
"tooltip": {
"saveChanges": "Save changes",
"xcDB": "Create a new project",
"extDB": "Supports MySQL, PostgreSQL, SQL Server & SQLite",
"apiRest": "Accessible via REST APIs",
"apiGQL": "Accessible via GraphQL APIs",
"theme": {
"dark": "It does come in Black (^⇧B)",
"light": "Does it come in Black ? (^⇧B)"
},
"addTable": "Add new table",
"inviteMore": "Invite more users",
"toggleNavDraw": "Toggle navigation drawer",
"reloadApiToken": "Reload API tokens",
"generateNewApiToken": "Generate new API token",
"addRole": "Add new role",
"reloadList": "Reload list",
"metaSync": "Sync metadata",
"sqlMigration": "Reload migrations",
"updateRestart": "Update & Restart",
"cancelReturn": "Cancel and Return",
"exportMetadata": "Export all metadata from the meta tables to meta directory.",
"importMetadata": "Import all metadata from the meta directory to meta tables.",
"clearMetadata": "Clear all metadata from meta tables.",
"clientKey": "Select .key file",
"clientCert": "Select .cert file",
"clientCA": "Select CA file"
},
"placeholder": {
"projName": "Enter Project Name",
"password": {
"enter": "Enter the password",
"current": "Current password",
"new": "New password",
"save": "Save password",
"confirm": "Confirm new password"
},
"searchProjectTree": "Search tables",
"searchFields": "Search fields",
"searchColumn": "Search {search} column",
"searchApps": "Search apps",
"searchModels": "Search models",
"noItemsFound": "No items found",
"defaultValue": "Default value",
"filterByEmail": "Filter by E-mail",
"filterQuery": "Filter query",
"selectField": "Select field"
},
"msg": {
"warning": {
"barcode": {
"renderError": "Barcode error - please check compatibility between input and barcode type"
},
"nonEditableFields": {
"computedFieldUnableToClear": "Warning: Computed field - unable to clear text",
"qrFieldsCannotBeDirectlyChanged": "Warning: QR fields cannot be directly changed."
}
},
"info": {
"pasteNotSupported": "Paste operation is not supported on the active cell",
"roles": {
"orgCreator": "Creator can create new projects and access any invited project.",
"orgViewer": "Viewer is not allowed to create new projects but they can access any invited project."
},
"footerInfo": "Rows per page",
"upload": "Select file to Upload",
"upload_sub": "or drag and drop file",
"excelSupport": "Supported: .xls, .xlsx, .xlsm, .ods, .ots",
"excelURL": "Enter excel file URL",
"csvURL": "Enter CSV file URL",
"footMsg": "# of rows to parse to infer datatype",
"excelImport": "sheet(s) are available for import",
"exportMetadata": "Do you want to export metadata from meta tables?",
"importMetadata": "Do you want to import metadata from meta tables?",
"clearMetadata": "Do you want to clear metadata from meta tables?",
"projectEmptyMessage": "Get started by creating a new project",
"stopProject": "Do you want to stop the project?",
"startProject": "Do you want to start the project?",
"restartProject": "Do you want to restart the project?",
"deleteProject": "Do you want to delete the project?",
"shareBasePrivate": "Generate publicly shareable readonly base",
"shareBasePublic": "Anyone on the internet with this link can view",
"userInviteNoSMTP": "Looks like you have not configured mailer yet! Please copy above invite link and send it to",
"dragDropHide": "Drag and drop fields here to hide",
"formInput": "Enter form input label",
"formHelpText": "Add some help text",
"onlyCreator": "Only visible to Creator",
"formDesc": "Add form description",
"beforeEnablePwd": "Restrict access with a password",
"afterEnablePwd": "Access is password restricted",
"privateLink": "This view is shared via a private link",
"privateLinkAdditionalInfo": "People with private link can only see cells visible in this view",
"afterFormSubmitted": "After form is submitted",
"apiOptions": "Access Project via",
"submitAnotherForm": "Show 'Submit Another Form' button",
"showBlankForm": "Show a blank form after 5 seconds",
"emailForm": "E-mail me at",
"showSysFields": "Show system fields",
"filterAutoApply": "Auto apply",
"showMessage": "Show this message",
"viewNotShared": "Current view is not shared!",
"showAllViews": "Show all shared views of this table",
"collabView": "Collaborators with edit permissions or higher can change the view configuration.",
"lockedView": "No one can edit the view configuration until it is unlocked.",
"personalView": "Only you can edit the view configuration. Other collaborators’ personal views are hidden by default.",
"ownerDesc": "Can add/remove creators. And full edit database structures & fields.",
"creatorDesc": "Can fully edit database structure & values.",
"editorDesc": "Can edit records but cannot change structure of database/fields.",
"commenterDesc": "Can view and comment the records but cannot edit anything",
"viewerDesc": "Can view the records but cannot edit anything",
"addUser": "Add new user",
"staticRoleInfo": "System defined roles can't be edited",
"exportZip": "Export project meta to zip file and download.",
"importZip": "Import project meta zip file and restart.",
"importText": "Import NocoDB Project by uploading metadata zip file",
"metaNoChange": "No change identified",
"sqlMigration": "Schema migrations will be created automatically. Create a table and refresh this page.",
"dbConnectionStatus": "Environment validated",
"dbConnected": "Connection was successful",
"notifications": {
"no_new": "No new notifications",
"clear": "Clear"
},
"sponsor": {
"header": "You can help us!",
"message": "We are a tiny team working full time to make NocoDB Open-source. We believe a tool like NocoDB should be available freely to every problem solver on Internet."
},
"loginMsg": "Log In To NocoDB",
"passwordRecovery": {
"message_1": "Please provide the email address you used when you signed up.",
"message_2": "We will send you an email with a link to reset your password.",
"success": "Please check your email to reset the password"
},
"signUp": {
"superAdmin": "You will be the 'Super Admin'",
"alreadyHaveAccount": "Already have an account ?",
"workEmail": "Enter your work email",
"enterPassword": "Enter your password",
"forgotPassword": "Forgot your password ?",
"dontHaveAccount": "Don't have an account ?"
},
"addView": {
"grid": "Add Grid View",
"gallery": "Add Gallery View",
"form": "Add Form View",
"kanban": "Add Kanban View",
"calendar": "Add Calendar View"
},
"tablesMetadataInSync": "Tables metadata is in Sync",
"addMultipleUsers": "You can add multiple comma(,) separated emails",
"enterTableName": "Enter table name",
"addDefaultColumns": "Add default columns",
"tableNameInDb": "Table name as saved in database",
"airtable": {
"credentials": "Where to find this?"
},
"import": {
"clickOrDrag": "Click or drag file to this area to upload"
},
"metaDataRecreated": "Table metadata recreated successfully",
"invalidCredentials": "Invalid credentials",
"downloadingMoreFiles": "Downloading more files",
"copiedToClipboard": "Copied to clipboard",
"requriedFieldsCantBeMoved": "Required field can't be moved",
"updateNotAllowedWithoutPK": "Update not allowed for table which doesn't have primary key",
"autoIncFieldNotEditable": "Auto increment field is not editable",
"editingPKnotSupported": "Editing primary key not supported",
"deletedCache": "Deleted cache successfully",
"cacheEmpty": "Cache is empty",
"exportedCache": "Exported Cache Successfully",
"valueAlreadyInList": "This value is already in the list",
"noColumnsToUpdate": "No columns to update",
"tableDeleted": "Deleted table successfully",
"generatePublicShareableReadonlyBase": "Generate publicly shareable readonly base",
"deleteViewConfirmation": "Are you sure you want to delete this view?",
"deleteTableConfirmation": "Do you want to delete the table",
"showM2mTables": "Show M2M Tables",
"deleteKanbanStackConfirmation": "Deleting this stack will also remove the select option `{stackToBeDeleted}` from the `{groupingField}`. The records will move to the uncategorized stack.",
"computedFieldEditWarning": "Computed field: contents are read-only. Use column edit menu to reconfigure",
"computedFieldDeleteWarning": "Computed field: contents are read-only. Unable to clear content."
},
"error": {
"searchProject": "Your search for {search} found no results",
"invalidChar": "Invalid character in folder path.",
"invalidDbCredentials": "Invalid database credentials.",
"unableToConnectToDb": "Unable to connect to database, please check your database is up.",
"userDoesntHaveSufficientPermission": "User does not exist or have sufficient permission to create schema.",
"dbConnectionStatus": "Invalid database parameters",
"dbConnectionFailed": "Connection Failure:",
"signUpRules": {
"emailReqd": "E-mail is required",
"emailInvalid": "E-mail must be valid",
"passwdRequired": "Password is required",
"passwdLength": "You password must be atleast 8 characters",
"passwdMismatch": "Passwords do not match",
"completeRuleSet": "At least 8 characters with one Uppercase, one number and one special character",
"atLeast8Char": "At least 8 characters",
"atLeastOneUppercase": "One Uppercase letter",
"atLeastOneNumber": "One Number",
"atLeastOneSpecialChar": "One special character",
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
"primaryColumnUpdateFailed": "Failed to update primary column",
"formDescriptionTooLong": "Data too long for Form Description",
"columnsRequired": "Following columns are required",
"selectAtleastOneColumn": "At least one column has to be selected",
"columnDescriptionNotFound": "Cannot find the destination column for",
"duplicateMappingFound": "Duplicate mapping found, please remove one of the mapping",
"nullValueViolatesNotNull": "Null value violates not-null constraint",
"sourceHasInvalidNumbers": "Source data contains some invalid numbers",
"sourceHasInvalidBoolean": "Source data contains some invalid boolean values",
"invalidForm": "Invalid Form",
"formValidationFailed": "Form validation failed",
"youHaveBeenSignedOut": "You have been signed out",
"failedToLoadList": "Failed to load list",
"failedToLoadChildrenList": "Failed to load children list",
"deleteFailed": "Delete failed",
"unlinkFailed": "Unlink failed",
"rowUpdateFailed": "Row update failed",
"deleteRowFailed": "Failed to delete row",
"setFormDataFailed": "Failed to set form data",
"formViewUpdateFailed": "Failed to update form view",
"tableNameRequired": "Table name is required",
"nameShouldStartWithAnAlphabetOr_": "Name should start with an alphabet or _",
"followingCharactersAreNotAllowed": "Following characters are not allowed",
"columnNameRequired": "Column name is required",
"projectNameExceeds50Characters": "Project name exceeds 50 characters",
"projectNameCannotStartWithSpace": "Project name cannot start with space",
"requiredField": "Required field",
"ipNotAllowed": "IP not allowed",
"targetFileIsNotAnAcceptedFileType": "Target file is not an accepted file type",
"theAcceptedFileTypeIsCsv": "The accepted file type is .csv",
"theAcceptedFileTypesAreXlsXlsxXlsmOdsOts": "The accepted file types are .xls, .xlsx, .xlsm, .ods, .ots",
"parameterKeyCannotBeEmpty": "Parameter key cannot be empty",
"duplicateParameterKeysAreNotAllowed": "Duplicate parameter keys are not allowed",
"fieldRequired": "{value} cannot be empty.",
"projectNotAccessible": "Project not accessible",
"copyToClipboardError": "Failed to copy to clipboard"
},
"toast": {
"exportMetadata": "Project metadata exported successfully",
"importMetadata": "Project metadata imported successfully",
"clearMetadata": "Project metadata cleared successfully",
"stopProject": "Project stopped successfully",
"startProject": "Project started successfully",
"restartProject": "Project restarted successfully",
"deleteProject": "Project deleted successfully",
"authToken": "Auth token copied to clipboard",
"projInfo": "Copied project info to clipboard",
"inviteUrlCopy": "Copied invite URL to clipboard",
"createView": "View created successfully",
"formEmailSMTP": "Please activate SMTP plugin in App store for enabling email notification",
"collabView": "Successfully Switched to collaborative view",
"lockedView": "Successfully Switched to locked view",
"futureRelease": "Coming soon!"
},
"success": {
"columnDuplicated": "Column duplicated successfully",
"updatedUIACL": "Updated UI ACL for tables successfully",
"pluginUninstalled": "Plugin uninstalled successfully",
"pluginSettingsSaved": "Plugin settings saved successfully",
"pluginTested": "Successfully tested plugin settings",
"tableRenamed": "Table renamed successfully",
"viewDeleted": "View deleted successfully",
"primaryColumnUpdated": "Successfully updated as primary column",
"tableDataExported": "Successfully exported all table data",
"updated": "Successfully updated",
"sharedViewDeleted": "Deleted shared view successfully",
"userDeleted": "User deleted successfully",
"viewRenamed": "View renamed successfully",
"tokenGenerated": "Token generated successfully",
"tokenDeleted": "Token deleted successfully",
"userAddedToProject": "Successfully added user to project",
"userAdded": "Successfully added user",
"userDeletedFromProject": "Successfully deleted user from project",
"inviteEmailSent": "Invite Email sent successfully",
"inviteURLCopied": "Invite URL copied to clipboard",
"passwordResetURLCopied": "Password reset URL copied to clipboard",
"shareableURLCopied": "Copied shareable base URL to clipboard!",
"embeddableHTMLCodeCopied": "Copied embeddable HTML code!",
"userDetailsUpdated": "Successfully updated the user details",
"tableDataImported": "Successfully imported table data",
"webhookUpdated": "Webhook details updated successfully",
"webhookDeleted": "Hook deleted successfully",
"webhookTested": "Webhook tested successfully",
"columnUpdated": "Column updated",
"columnCreated": "Column created",
"passwordChanged": "Password changed successfully. Please login again.",
"settingsSaved": "Settings saved successfully",
"roleUpdated": "Role updated successfully"
}
}
}

748
packages/nc-gui/lang/eu.json

@ -0,0 +1,748 @@
{
"general": {
"home": "Home",
"load": "Load",
"open": "Open",
"close": "Close",
"yes": "Yes",
"no": "No",
"ok": "OK",
"and": "And",
"or": "Or",
"add": "Add",
"edit": "Edit",
"remove": "Remove",
"save": "Save",
"cancel": "Cancel",
"submit": "Submit",
"create": "Create",
"duplicate": "Duplicate",
"insert": "Insert",
"delete": "Delete",
"update": "Update",
"rename": "Rename",
"reload": "Reload",
"reset": "Reset",
"install": "Install",
"show": "Show",
"hide": "Hide",
"showAll": "Show all",
"hideAll": "Hide all",
"showMore": "Show more",
"showOptions": "Show options",
"hideOptions": "Hide options",
"showMenu": "Show menu",
"hideMenu": "Hide menu",
"addAll": "Add all",
"removeAll": "Remove all",
"signUp": "SIGN UP",
"signIn": "SIGN IN",
"signOut": "Sign Out",
"required": "Required",
"preferred": "Preferred",
"mandatory": "Mandatory",
"loading": "Loading ...",
"title": "Title",
"upload": "Upload",
"download": "Download",
"default": "Default",
"more": "More",
"less": "Less",
"event": "Event",
"condition": "Condition",
"after": "After",
"before": "Before",
"search": "Search",
"notification": "Notification",
"reference": "Reference",
"function": "Function",
"confirm": "Confirm",
"generate": "Generate",
"copy": "Copy",
"misc": "Miscellaneous",
"lock": "Lock",
"unlock": "Unlock",
"credentials": "Credentials",
"help": "Help",
"questions": "Questions",
"reachOut": "Reach out here",
"betaNote": "This feature is currently in beta.",
"moreInfo": "More information can be found here",
"logs": "Logs",
"groupingField": "Grouping Field",
"insertAfter": "Insert After",
"insertBefore": "Insert Before",
"hideField": "Hide Field",
"sortAsc": "Sort Ascending",
"sortDesc": "Sort Descending"
},
"objects": {
"project": "Project",
"projects": "Projects",
"table": "Table",
"tables": "Tables",
"field": "Field",
"fields": "Fields",
"column": "Column",
"columns": "Columns",
"page": "Page",
"pages": "Pages",
"record": "record",
"records": "records",
"webhook": "Webhook",
"webhooks": "Webhooks",
"view": "View",
"views": "Views",
"viewType": {
"grid": "Grid",
"gallery": "Gallery",
"form": "Form",
"kanban": "Kanban",
"calendar": "Calendar"
},
"user": "User",
"users": "Users",
"role": "Role",
"roles": "Roles",
"roleType": {
"owner": "Owner",
"creator": "Creator",
"editor": "Editor",
"commenter": "Commenter",
"viewer": "Viewer",
"orgLevelCreator": "Organization Level Creator",
"orgLevelViewer": "Organization Level Viewer"
},
"sqlVIew": "SQL View"
},
"datatype": {
"ID": "ID",
"ForeignKey": "Foreign Key",
"SingleLineText": "Single Line Text",
"LongText": "Long Text",
"Attachment": "Attachment",
"Checkbox": "Checkbox",
"MultiSelect": "Multi Select",
"SingleSelect": "Single Select",
"Collaborator": "Collaborator",
"Date": "Date",
"Year": "Year",
"Time": "Time",
"PhoneNumber": "Phone Number",
"Email": "Email",
"URL": "URL",
"Number": "Number",
"Decimal": "Decimal",
"Currency": "Currency",
"Percent": "Percent",
"Duration": "Duration",
"Rating": "Rating",
"Formula": "Formula",
"Rollup": "Rollup",
"Count": "Count",
"Lookup": "Lookup",
"DateTime": "Date Time",
"CreateTime": "Create Time",
"LastModifiedTime": "Last Modified Time",
"AutoNumber": "Auto Number",
"Barcode": "Barcode",
"Button": "Button",
"Password": "Password",
"relationProperties": {
"noAction": "No Action",
"cascade": "Cascade",
"restrict": "Restrict",
"setNull": "Set NULL",
"setDefault": "Set Default"
}
},
"filterOperation": {
"isEqual": "is equal",
"isNotEqual": "is not equal",
"isLike": "is like",
"isNot like": "is not like",
"isEmpty": "is empty",
"isNotEmpty": "is not empty",
"isNull": "is null",
"isNotNull": "is not null"
},
"title": {
"erdView": "ERD View",
"newProj": "New Project",
"myProject": "My Projects",
"formTitle": "Form Title",
"collabView": "Collaborative View",
"lockedView": "Locked View",
"personalView": "Personal View",
"appStore": "App Store",
"teamAndAuth": "Team & Auth",
"rolesUserMgmt": "Roles & Users Management",
"userMgmt": "Users Management",
"apiTokenMgmt": "API Tokens Management",
"rolesMgmt": "Roles Management",
"projMeta": "Project Metadata",
"metaMgmt": "Meta Management",
"metadata": "Metadata",
"exportImportMeta": "Export / Import Metadata",
"uiACL": "UI Access Control",
"metaOperations": "Metadata Operations",
"audit": "Audit",
"auditLogs": "Audit Log",
"sqlMigrations": "SQL Migrations",
"dbCredentials": "Database Credentials",
"advancedParameters": "SSL & Advanced parameters",
"headCreateProject": "Create Project | NocoDB",
"headLogin": "Log In | NocoDB",
"resetPassword": "Reset your password",
"teamAndSettings": "Team & Settings",
"apiDocs": "API Docs",
"importFromAirtable": "Import From Airtable",
"generateToken": "Generate Token",
"APIsAndSupport": "APIs & Support",
"helpCenter": "Help center",
"swaggerDocumentation": "Swagger Documentation",
"quickImportFrom": "Quick Import From",
"quickImport": "Quick Import",
"advancedSettings": "Advanced Settings",
"codeSnippet": "Code Snippet",
"keyboardShortcut": "Keyboard Shortcuts"
},
"labels": {
"createdBy": "Created By",
"notifyVia": "Notify Via",
"projName": "Project name",
"tableName": "Table name",
"viewName": "View name",
"viewLink": "View Link",
"columnName": "Column Name",
"columnType": "Column Type",
"roleName": "Role Name",
"roleDescription": "Role Description",
"databaseType": "Type in Database",
"lengthValue": "Length/ value",
"dbType": "Database Type",
"sqliteFile": "SQLite File",
"hostAddress": "Host Address",
"port": "Port Number",
"username": "Username",
"password": "Password",
"schemaName": "Schema name",
"database": "Database",
"action": "Action",
"actions": "Actions",
"operation": "Operation",
"operationType": "Operation type",
"operationSubType": "Operation sub-type",
"description": "Description",
"authentication": "Authentication",
"token": "Token",
"where": "Where",
"cache": "Cache",
"chat": "Chat",
"email": "E-mail",
"storage": "Storage",
"uiAcl": "UI-ACL",
"models": "Models",
"syncState": "Sync state",
"created": "Created",
"sqlOutput": "SQL Output",
"addOption": "Add option",
"qrCodeValueColumn": "Column with QR code value",
"barcodeValueColumn": "Column with Barcode value",
"barcodeFormat": "Barcode format",
"qrCodeValueTooLong": "Too many characters for a QR code",
"barcodeValueTooLong": "Too many characters for a barcode",
"aggregateFunction": "Aggregate function",
"dbCreateIfNotExists": "Database : create if not exists",
"clientKey": "Client Key",
"clientCert": "Client Cert",
"serverCA": "Server CA",
"requriedCa": "Required-CA",
"requriedIdentity": "Required-IDENTITY",
"inflection": {
"tableName": "Inflection - Table name",
"columnName": "Inflection - Column name"
},
"community": {
"starUs1": "Star",
"starUs2": "us on Github",
"bookDemo": "Book a Free DEMO",
"getAnswered": "Get your questions answered",
"joinDiscord": "Join Discord",
"joinCommunity": "Join NocoDB Community",
"joinReddit": "Join /r/NocoDB",
"followNocodb": "Follow NocoDB"
},
"docReference": "Document Reference",
"selectUserRole": "Select User Role",
"childTable": "Child table",
"childColumn": "Child column",
"onUpdate": "On Update",
"onDelete": "On Delete",
"account": "Account",
"language": "Language",
"primaryColor": "Primary Color",
"accentColor": "Accent Color",
"customTheme": "Custom Theme",
"requestDataSource": "Request a data source you need?",
"apiKey": "API Key",
"sharedBase": "Shared Base",
"importData": "Import Data",
"importSecondaryViews": "Import Secondary Views",
"importRollupColumns": "Import Rollup Columns",
"importLookupColumns": "Import Lookup Columns",
"importAttachmentColumns": "Import Attachment Columns",
"importFormulaColumns": "Import Formula Columns",
"noData": "No Data",
"goToDashboard": "Go to Dashboard",
"importing": "Importing",
"flattenNested": "Flatten Nested",
"downloadAllowed": "Download allowed",
"weAreHiring": "We are Hiring!",
"primaryKey": "Primary key",
"hasMany": "has many",
"belongsTo": "belongs to",
"manyToMany": "have many to many relation",
"extraConnectionParameters": "Extra connection parameters",
"commentsOnly": "Comments only",
"documentation": "Documentation",
"subscribeNewsletter": "Subscribe to our weekly newsletter",
"signUpWithGoogle": "Sign up with Google",
"signInWithGoogle": "Sign in with Google",
"agreeToTos": "By signing up, you agree to the Terms of Service",
"welcomeToNc": "Welcome to NocoDB!",
"inviteOnlySignup": "Allow signup only using invite url"
},
"activity": {
"createProject": "Create Project",
"importProject": "Import Project",
"searchProject": "Search Project",
"editProject": "Edit Project",
"stopProject": "Stop Project",
"startProject": "Start Project",
"restartProject": "Restart Project",
"deleteProject": "Delete Project",
"refreshProject": "Refresh projects",
"saveProject": "Save Project",
"deleteKanbanStack": "Delete stack?",
"createProjectExtended": {
"extDB": "Create By Connecting <br>To An External Database",
"excel": "Create Project from excel",
"template": "Create Project from template"
},
"OkSaveProject": "Ok & Save Project",
"upgrade": {
"available": "Upgrade available",
"releaseNote": "Release notes",
"howTo": "How to upgrade ?"
},
"translate": "Help translate",
"account": {
"authToken": "Copy Auth Token",
"swagger": "Swagger: REST APIs",
"projInfo": "Copy Project Info",
"themes": "Themes"
},
"sort": "Sort",
"addSort": "Add Sort Option",
"filter": "Filter",
"addFilter": "Add Filter",
"share": "Share",
"shareBase": {
"disable": "Disable shared base",
"enable": "Anyone with the link",
"link": "Shared base link"
},
"invite": "Invite",
"inviteMore": "Invite more",
"inviteTeam": "Invite Team",
"inviteUser": "Invite User",
"inviteToken": "Invite Token",
"newUser": "New User",
"editUser": "Edit user",
"deleteUser": "Remove user from project",
"resendInvite": "Resend invite E-mail",
"copyInviteURL": "Copy invite URL",
"copyPasswordResetURL": "Copy password reset URL",
"newRole": "New role",
"reloadRoles": "Reload roles",
"nextPage": "Next page",
"prevPage": "Previous page",
"nextRecord": "Next record",
"previousRecord": "Previous record",
"copyApiURL": "Copy API URL",
"createTable": "Table Create",
"refreshTable": "Tables Refresh",
"renameTable": "Table Rename",
"deleteTable": "Table Delete",
"addField": "Add new field to this table",
"setPrimary": "Set as Primary value",
"addRow": "Add new row",
"saveRow": "Save row",
"saveAndExit": "Save & Exit",
"saveAndStay": "Save & Stay",
"insertRow": "Insert New Row",
"deleteRow": "Delete Row",
"deleteSelectedRow": "Delete Selected Rows",
"importExcel": "Import Excel",
"importCSV": "Import CSV",
"downloadCSV": "Download as CSV",
"downloadExcel": "Download as XLSX",
"uploadCSV": "Upload CSV",
"import": "Import",
"importMetadata": "Import Metadata",
"exportMetadata": "Export Metadata",
"clearMetadata": "Clear Metadata",
"exportToFile": "Export to file",
"changePwd": "Change Password",
"createView": "Create a View",
"shareView": "Share View",
"listSharedView": "Shared View List",
"ListView": "Views List",
"copyView": "Copy view",
"renameView": "Rename view",
"deleteView": "Delete view",
"createGrid": "Create Grid View",
"createGallery": "Create Gallery View",
"createCalendar": "Create Calendar View",
"createKanban": "Create Kanban View",
"createForm": "Create Form View",
"showSystemFields": "Show system fields",
"copyUrl": "Copy URL",
"openTab": "Open new tab",
"iFrame": "Copy embeddable HTML code",
"addWebhook": "Add New Webhook",
"newToken": "Add New Token",
"exportZip": "Export zip",
"importZip": "Import zip",
"metaSync": "Sync Now",
"settings": "Settings",
"previewAs": "Preview as",
"resetReview": "Reset Preview",
"testDbConn": "Test Database Connection",
"removeDbFromEnv": "Remove Database from environment",
"editConnJson": "Edit connection JSON",
"sponsorUs": "Sponsor Us",
"sendEmail": "SEND EMAIL",
"addUserToProject": "Add user to project",
"getApiSnippet": "Get API Snippet",
"clearCell": "Clear cell",
"addFilterGroup": "Add Filter Group",
"linkRecord": "Link record",
"addNewRecord": "Add new record",
"useConnectionUrl": "Use Connection URL",
"toggleCommentsDraw": "Toggle comments draw",
"expandRecord": "Expand Record",
"deleteRecord": "Delete Record",
"erd": {
"showColumns": "Show Columns",
"showPkAndFk": "Show Primary and Foreign Keys",
"showSqlViews": "Show SQL Views",
"showMMTables": "Show Many to Many tables",
"showJunctionTableNames": "Show Junction Table Names"
},
"kanban": {
"collapseStack": "Collapse Stack",
"deleteStack": "Delete Stack",
"stackedBy": "Stacked By",
"chooseGroupingField": "Choose a Grouping Field",
"addOrEditStack": "Add / Edit Stack"
}
},
"tooltip": {
"saveChanges": "Save changes",
"xcDB": "Create a new project",
"extDB": "Supports MySQL, PostgreSQL, SQL Server & SQLite",
"apiRest": "Accessible via REST APIs",
"apiGQL": "Accessible via GraphQL APIs",
"theme": {
"dark": "It does come in Black (^⇧B)",
"light": "Does it come in Black ? (^⇧B)"
},
"addTable": "Add new table",
"inviteMore": "Invite more users",
"toggleNavDraw": "Toggle navigation drawer",
"reloadApiToken": "Reload API tokens",
"generateNewApiToken": "Generate new API token",
"addRole": "Add new role",
"reloadList": "Reload list",
"metaSync": "Sync metadata",
"sqlMigration": "Reload migrations",
"updateRestart": "Update & Restart",
"cancelReturn": "Cancel and Return",
"exportMetadata": "Export all metadata from the meta tables to meta directory.",
"importMetadata": "Import all metadata from the meta directory to meta tables.",
"clearMetadata": "Clear all metadata from meta tables.",
"clientKey": "Select .key file",
"clientCert": "Select .cert file",
"clientCA": "Select CA file"
},
"placeholder": {
"projName": "Enter Project Name",
"password": {
"enter": "Enter the password",
"current": "Current password",
"new": "New password",
"save": "Save password",
"confirm": "Confirm new password"
},
"searchProjectTree": "Search tables",
"searchFields": "Search fields",
"searchColumn": "Search {search} column",
"searchApps": "Search apps",
"searchModels": "Search models",
"noItemsFound": "No items found",
"defaultValue": "Default value",
"filterByEmail": "Filter by E-mail",
"filterQuery": "Filter query",
"selectField": "Select field"
},
"msg": {
"warning": {
"barcode": {
"renderError": "Barcode error - please check compatibility between input and barcode type"
},
"nonEditableFields": {
"computedFieldUnableToClear": "Warning: Computed field - unable to clear text",
"qrFieldsCannotBeDirectlyChanged": "Warning: QR fields cannot be directly changed."
}
},
"info": {
"pasteNotSupported": "Paste operation is not supported on the active cell",
"roles": {
"orgCreator": "Creator can create new projects and access any invited project.",
"orgViewer": "Viewer is not allowed to create new projects but they can access any invited project."
},
"footerInfo": "Rows per page",
"upload": "Select file to Upload",
"upload_sub": "or drag and drop file",
"excelSupport": "Supported: .xls, .xlsx, .xlsm, .ods, .ots",
"excelURL": "Enter excel file URL",
"csvURL": "Enter CSV file URL",
"footMsg": "# of rows to parse to infer datatype",
"excelImport": "sheet(s) are available for import",
"exportMetadata": "Do you want to export metadata from meta tables?",
"importMetadata": "Do you want to import metadata from meta tables?",
"clearMetadata": "Do you want to clear metadata from meta tables?",
"projectEmptyMessage": "Get started by creating a new project",
"stopProject": "Do you want to stop the project?",
"startProject": "Do you want to start the project?",
"restartProject": "Do you want to restart the project?",
"deleteProject": "Do you want to delete the project?",
"shareBasePrivate": "Generate publicly shareable readonly base",
"shareBasePublic": "Anyone on the internet with this link can view",
"userInviteNoSMTP": "Looks like you have not configured mailer yet! Please copy above invite link and send it to",
"dragDropHide": "Drag and drop fields here to hide",
"formInput": "Enter form input label",
"formHelpText": "Add some help text",
"onlyCreator": "Only visible to Creator",
"formDesc": "Add form description",
"beforeEnablePwd": "Restrict access with a password",
"afterEnablePwd": "Access is password restricted",
"privateLink": "This view is shared via a private link",
"privateLinkAdditionalInfo": "People with private link can only see cells visible in this view",
"afterFormSubmitted": "After form is submitted",
"apiOptions": "Access Project via",
"submitAnotherForm": "Show 'Submit Another Form' button",
"showBlankForm": "Show a blank form after 5 seconds",
"emailForm": "E-mail me at",
"showSysFields": "Show system fields",
"filterAutoApply": "Auto apply",
"showMessage": "Show this message",
"viewNotShared": "Current view is not shared!",
"showAllViews": "Show all shared views of this table",
"collabView": "Collaborators with edit permissions or higher can change the view configuration.",
"lockedView": "No one can edit the view configuration until it is unlocked.",
"personalView": "Only you can edit the view configuration. Other collaborators’ personal views are hidden by default.",
"ownerDesc": "Can add/remove creators. And full edit database structures & fields.",
"creatorDesc": "Can fully edit database structure & values.",
"editorDesc": "Can edit records but cannot change structure of database/fields.",
"commenterDesc": "Can view and comment the records but cannot edit anything",
"viewerDesc": "Can view the records but cannot edit anything",
"addUser": "Add new user",
"staticRoleInfo": "System defined roles can't be edited",
"exportZip": "Export project meta to zip file and download.",
"importZip": "Import project meta zip file and restart.",
"importText": "Import NocoDB Project by uploading metadata zip file",
"metaNoChange": "No change identified",
"sqlMigration": "Schema migrations will be created automatically. Create a table and refresh this page.",
"dbConnectionStatus": "Environment validated",
"dbConnected": "Connection was successful",
"notifications": {
"no_new": "No new notifications",
"clear": "Clear"
},
"sponsor": {
"header": "You can help us!",
"message": "We are a tiny team working full time to make NocoDB Open-source. We believe a tool like NocoDB should be available freely to every problem solver on Internet."
},
"loginMsg": "Log In To NocoDB",
"passwordRecovery": {
"message_1": "Please provide the email address you used when you signed up.",
"message_2": "We will send you an email with a link to reset your password.",
"success": "Please check your email to reset the password"
},
"signUp": {
"superAdmin": "You will be the 'Super Admin'",
"alreadyHaveAccount": "Already have an account ?",
"workEmail": "Enter your work email",
"enterPassword": "Enter your password",
"forgotPassword": "Forgot your password ?",
"dontHaveAccount": "Don't have an account ?"
},
"addView": {
"grid": "Add Grid View",
"gallery": "Add Gallery View",
"form": "Add Form View",
"kanban": "Add Kanban View",
"calendar": "Add Calendar View"
},
"tablesMetadataInSync": "Tables metadata is in Sync",
"addMultipleUsers": "You can add multiple comma(,) separated emails",
"enterTableName": "Enter table name",
"addDefaultColumns": "Add default columns",
"tableNameInDb": "Table name as saved in database",
"airtable": {
"credentials": "Where to find this?"
},
"import": {
"clickOrDrag": "Click or drag file to this area to upload"
},
"metaDataRecreated": "Table metadata recreated successfully",
"invalidCredentials": "Invalid credentials",
"downloadingMoreFiles": "Downloading more files",
"copiedToClipboard": "Copied to clipboard",
"requriedFieldsCantBeMoved": "Required field can't be moved",
"updateNotAllowedWithoutPK": "Update not allowed for table which doesn't have primary key",
"autoIncFieldNotEditable": "Auto increment field is not editable",
"editingPKnotSupported": "Editing primary key not supported",
"deletedCache": "Deleted cache successfully",
"cacheEmpty": "Cache is empty",
"exportedCache": "Exported Cache Successfully",
"valueAlreadyInList": "This value is already in the list",
"noColumnsToUpdate": "No columns to update",
"tableDeleted": "Deleted table successfully",
"generatePublicShareableReadonlyBase": "Generate publicly shareable readonly base",
"deleteViewConfirmation": "Are you sure you want to delete this view?",
"deleteTableConfirmation": "Do you want to delete the table",
"showM2mTables": "Show M2M Tables",
"deleteKanbanStackConfirmation": "Deleting this stack will also remove the select option `{stackToBeDeleted}` from the `{groupingField}`. The records will move to the uncategorized stack.",
"computedFieldEditWarning": "Computed field: contents are read-only. Use column edit menu to reconfigure",
"computedFieldDeleteWarning": "Computed field: contents are read-only. Unable to clear content."
},
"error": {
"searchProject": "Your search for {search} found no results",
"invalidChar": "Invalid character in folder path.",
"invalidDbCredentials": "Invalid database credentials.",
"unableToConnectToDb": "Unable to connect to database, please check your database is up.",
"userDoesntHaveSufficientPermission": "User does not exist or have sufficient permission to create schema.",
"dbConnectionStatus": "Invalid database parameters",
"dbConnectionFailed": "Connection Failure:",
"signUpRules": {
"emailReqd": "E-mail is required",
"emailInvalid": "E-mail must be valid",
"passwdRequired": "Password is required",
"passwdLength": "You password must be atleast 8 characters",
"passwdMismatch": "Passwords do not match",
"completeRuleSet": "At least 8 characters with one Uppercase, one number and one special character",
"atLeast8Char": "At least 8 characters",
"atLeastOneUppercase": "One Uppercase letter",
"atLeastOneNumber": "One Number",
"atLeastOneSpecialChar": "One special character",
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
"primaryColumnUpdateFailed": "Failed to update primary column",
"formDescriptionTooLong": "Data too long for Form Description",
"columnsRequired": "Following columns are required",
"selectAtleastOneColumn": "At least one column has to be selected",
"columnDescriptionNotFound": "Cannot find the destination column for",
"duplicateMappingFound": "Duplicate mapping found, please remove one of the mapping",
"nullValueViolatesNotNull": "Null value violates not-null constraint",
"sourceHasInvalidNumbers": "Source data contains some invalid numbers",
"sourceHasInvalidBoolean": "Source data contains some invalid boolean values",
"invalidForm": "Invalid Form",
"formValidationFailed": "Form validation failed",
"youHaveBeenSignedOut": "You have been signed out",
"failedToLoadList": "Failed to load list",
"failedToLoadChildrenList": "Failed to load children list",
"deleteFailed": "Delete failed",
"unlinkFailed": "Unlink failed",
"rowUpdateFailed": "Row update failed",
"deleteRowFailed": "Failed to delete row",
"setFormDataFailed": "Failed to set form data",
"formViewUpdateFailed": "Failed to update form view",
"tableNameRequired": "Table name is required",
"nameShouldStartWithAnAlphabetOr_": "Name should start with an alphabet or _",
"followingCharactersAreNotAllowed": "Following characters are not allowed",
"columnNameRequired": "Column name is required",
"projectNameExceeds50Characters": "Project name exceeds 50 characters",
"projectNameCannotStartWithSpace": "Project name cannot start with space",
"requiredField": "Required field",
"ipNotAllowed": "IP not allowed",
"targetFileIsNotAnAcceptedFileType": "Target file is not an accepted file type",
"theAcceptedFileTypeIsCsv": "The accepted file type is .csv",
"theAcceptedFileTypesAreXlsXlsxXlsmOdsOts": "The accepted file types are .xls, .xlsx, .xlsm, .ods, .ots",
"parameterKeyCannotBeEmpty": "Parameter key cannot be empty",
"duplicateParameterKeysAreNotAllowed": "Duplicate parameter keys are not allowed",
"fieldRequired": "{value} cannot be empty.",
"projectNotAccessible": "Project not accessible",
"copyToClipboardError": "Failed to copy to clipboard"
},
"toast": {
"exportMetadata": "Project metadata exported successfully",
"importMetadata": "Project metadata imported successfully",
"clearMetadata": "Project metadata cleared successfully",
"stopProject": "Project stopped successfully",
"startProject": "Project started successfully",
"restartProject": "Project restarted successfully",
"deleteProject": "Project deleted successfully",
"authToken": "Auth token copied to clipboard",
"projInfo": "Copied project info to clipboard",
"inviteUrlCopy": "Copied invite URL to clipboard",
"createView": "View created successfully",
"formEmailSMTP": "Please activate SMTP plugin in App store for enabling email notification",
"collabView": "Successfully Switched to collaborative view",
"lockedView": "Successfully Switched to locked view",
"futureRelease": "Coming soon!"
},
"success": {
"columnDuplicated": "Column duplicated successfully",
"updatedUIACL": "Updated UI ACL for tables successfully",
"pluginUninstalled": "Plugin uninstalled successfully",
"pluginSettingsSaved": "Plugin settings saved successfully",
"pluginTested": "Successfully tested plugin settings",
"tableRenamed": "Table renamed successfully",
"viewDeleted": "View deleted successfully",
"primaryColumnUpdated": "Successfully updated as primary column",
"tableDataExported": "Successfully exported all table data",
"updated": "Successfully updated",
"sharedViewDeleted": "Deleted shared view successfully",
"userDeleted": "User deleted successfully",
"viewRenamed": "View renamed successfully",
"tokenGenerated": "Token generated successfully",
"tokenDeleted": "Token deleted successfully",
"userAddedToProject": "Successfully added user to project",
"userAdded": "Successfully added user",
"userDeletedFromProject": "Successfully deleted user from project",
"inviteEmailSent": "Invite Email sent successfully",
"inviteURLCopied": "Invite URL copied to clipboard",
"passwordResetURLCopied": "Password reset URL copied to clipboard",
"shareableURLCopied": "Copied shareable base URL to clipboard!",
"embeddableHTMLCodeCopied": "Copied embeddable HTML code!",
"userDetailsUpdated": "Successfully updated the user details",
"tableDataImported": "Successfully imported table data",
"webhookUpdated": "Webhook details updated successfully",
"webhookDeleted": "Hook deleted successfully",
"webhookTested": "Webhook tested successfully",
"columnUpdated": "Column updated",
"columnCreated": "Column created",
"passwordChanged": "Password changed successfully. Please login again.",
"settingsSaved": "Settings saved successfully",
"roleUpdated": "Role updated successfully"
}
}
}

8
packages/nc-gui/lang/fr.json

@ -16,7 +16,7 @@
"cancel": "Annuler", "cancel": "Annuler",
"submit": "Soumettre", "submit": "Soumettre",
"create": "Créer", "create": "Créer",
"duplicate": "Duplicate", "duplicate": "Dupliquer",
"insert": "Insérer", "insert": "Insérer",
"delete": "Supprimer", "delete": "Supprimer",
"update": "Mettre à jour", "update": "Mettre à jour",
@ -56,9 +56,9 @@
"notification": "Notification", "notification": "Notification",
"reference": "Référence", "reference": "Référence",
"function": "Fonction", "function": "Fonction",
"confirm": "Confirm", "confirm": "Confirmer",
"generate": "Generate", "generate": "Générer",
"copy": "Copy", "copy": "Copier",
"misc": "Miscellaneous", "misc": "Miscellaneous",
"lock": "Lock", "lock": "Lock",
"unlock": "Unlock", "unlock": "Unlock",

748
packages/nc-gui/lang/sk.json

@ -0,0 +1,748 @@
{
"general": {
"home": "Home",
"load": "Load",
"open": "Open",
"close": "Close",
"yes": "Yes",
"no": "No",
"ok": "OK",
"and": "And",
"or": "Or",
"add": "Add",
"edit": "Edit",
"remove": "Remove",
"save": "Save",
"cancel": "Cancel",
"submit": "Submit",
"create": "Create",
"duplicate": "Duplicate",
"insert": "Insert",
"delete": "Delete",
"update": "Update",
"rename": "Rename",
"reload": "Reload",
"reset": "Reset",
"install": "Install",
"show": "Show",
"hide": "Hide",
"showAll": "Show all",
"hideAll": "Hide all",
"showMore": "Show more",
"showOptions": "Show options",
"hideOptions": "Hide options",
"showMenu": "Show menu",
"hideMenu": "Hide menu",
"addAll": "Add all",
"removeAll": "Remove all",
"signUp": "SIGN UP",
"signIn": "SIGN IN",
"signOut": "Sign Out",
"required": "Required",
"preferred": "Preferred",
"mandatory": "Mandatory",
"loading": "Loading ...",
"title": "Title",
"upload": "Upload",
"download": "Download",
"default": "Default",
"more": "More",
"less": "Less",
"event": "Event",
"condition": "Condition",
"after": "After",
"before": "Before",
"search": "Search",
"notification": "Notification",
"reference": "Reference",
"function": "Function",
"confirm": "Confirm",
"generate": "Generate",
"copy": "Copy",
"misc": "Miscellaneous",
"lock": "Lock",
"unlock": "Unlock",
"credentials": "Credentials",
"help": "Help",
"questions": "Questions",
"reachOut": "Reach out here",
"betaNote": "This feature is currently in beta.",
"moreInfo": "More information can be found here",
"logs": "Logs",
"groupingField": "Grouping Field",
"insertAfter": "Insert After",
"insertBefore": "Insert Before",
"hideField": "Hide Field",
"sortAsc": "Sort Ascending",
"sortDesc": "Sort Descending"
},
"objects": {
"project": "Project",
"projects": "Projects",
"table": "Table",
"tables": "Tables",
"field": "Field",
"fields": "Fields",
"column": "Column",
"columns": "Columns",
"page": "Page",
"pages": "Pages",
"record": "record",
"records": "records",
"webhook": "Webhook",
"webhooks": "Webhooks",
"view": "View",
"views": "Views",
"viewType": {
"grid": "Grid",
"gallery": "Gallery",
"form": "Form",
"kanban": "Kanban",
"calendar": "Calendar"
},
"user": "User",
"users": "Users",
"role": "Role",
"roles": "Roles",
"roleType": {
"owner": "Owner",
"creator": "Creator",
"editor": "Editor",
"commenter": "Commenter",
"viewer": "Viewer",
"orgLevelCreator": "Organization Level Creator",
"orgLevelViewer": "Organization Level Viewer"
},
"sqlVIew": "SQL View"
},
"datatype": {
"ID": "ID",
"ForeignKey": "Foreign Key",
"SingleLineText": "Single Line Text",
"LongText": "Long Text",
"Attachment": "Attachment",
"Checkbox": "Checkbox",
"MultiSelect": "Multi Select",
"SingleSelect": "Single Select",
"Collaborator": "Collaborator",
"Date": "Date",
"Year": "Year",
"Time": "Time",
"PhoneNumber": "Phone Number",
"Email": "Email",
"URL": "URL",
"Number": "Number",
"Decimal": "Decimal",
"Currency": "Currency",
"Percent": "Percent",
"Duration": "Duration",
"Rating": "Rating",
"Formula": "Formula",
"Rollup": "Rollup",
"Count": "Count",
"Lookup": "Lookup",
"DateTime": "Date Time",
"CreateTime": "Create Time",
"LastModifiedTime": "Last Modified Time",
"AutoNumber": "Auto Number",
"Barcode": "Barcode",
"Button": "Button",
"Password": "Password",
"relationProperties": {
"noAction": "No Action",
"cascade": "Cascade",
"restrict": "Restrict",
"setNull": "Set NULL",
"setDefault": "Set Default"
}
},
"filterOperation": {
"isEqual": "is equal",
"isNotEqual": "is not equal",
"isLike": "is like",
"isNot like": "is not like",
"isEmpty": "is empty",
"isNotEmpty": "is not empty",
"isNull": "is null",
"isNotNull": "is not null"
},
"title": {
"erdView": "ERD View",
"newProj": "New Project",
"myProject": "My Projects",
"formTitle": "Form Title",
"collabView": "Collaborative View",
"lockedView": "Locked View",
"personalView": "Personal View",
"appStore": "App Store",
"teamAndAuth": "Team & Auth",
"rolesUserMgmt": "Roles & Users Management",
"userMgmt": "Users Management",
"apiTokenMgmt": "API Tokens Management",
"rolesMgmt": "Roles Management",
"projMeta": "Project Metadata",
"metaMgmt": "Meta Management",
"metadata": "Metadata",
"exportImportMeta": "Export / Import Metadata",
"uiACL": "UI Access Control",
"metaOperations": "Metadata Operations",
"audit": "Audit",
"auditLogs": "Audit Log",
"sqlMigrations": "SQL Migrations",
"dbCredentials": "Database Credentials",
"advancedParameters": "SSL & Advanced parameters",
"headCreateProject": "Create Project | NocoDB",
"headLogin": "Log In | NocoDB",
"resetPassword": "Reset your password",
"teamAndSettings": "Team & Settings",
"apiDocs": "API Docs",
"importFromAirtable": "Import From Airtable",
"generateToken": "Generate Token",
"APIsAndSupport": "APIs & Support",
"helpCenter": "Help center",
"swaggerDocumentation": "Swagger Documentation",
"quickImportFrom": "Quick Import From",
"quickImport": "Quick Import",
"advancedSettings": "Advanced Settings",
"codeSnippet": "Code Snippet",
"keyboardShortcut": "Keyboard Shortcuts"
},
"labels": {
"createdBy": "Created By",
"notifyVia": "Notify Via",
"projName": "Project name",
"tableName": "Table name",
"viewName": "View name",
"viewLink": "View Link",
"columnName": "Column Name",
"columnType": "Column Type",
"roleName": "Role Name",
"roleDescription": "Role Description",
"databaseType": "Type in Database",
"lengthValue": "Length/ value",
"dbType": "Database Type",
"sqliteFile": "SQLite File",
"hostAddress": "Host Address",
"port": "Port Number",
"username": "Username",
"password": "Password",
"schemaName": "Schema name",
"database": "Database",
"action": "Action",
"actions": "Actions",
"operation": "Operation",
"operationType": "Operation type",
"operationSubType": "Operation sub-type",
"description": "Description",
"authentication": "Authentication",
"token": "Token",
"where": "Where",
"cache": "Cache",
"chat": "Chat",
"email": "E-mail",
"storage": "Storage",
"uiAcl": "UI-ACL",
"models": "Models",
"syncState": "Sync state",
"created": "Created",
"sqlOutput": "SQL Output",
"addOption": "Add option",
"qrCodeValueColumn": "Column with QR code value",
"barcodeValueColumn": "Column with Barcode value",
"barcodeFormat": "Barcode format",
"qrCodeValueTooLong": "Too many characters for a QR code",
"barcodeValueTooLong": "Too many characters for a barcode",
"aggregateFunction": "Aggregate function",
"dbCreateIfNotExists": "Database : create if not exists",
"clientKey": "Client Key",
"clientCert": "Client Cert",
"serverCA": "Server CA",
"requriedCa": "Required-CA",
"requriedIdentity": "Required-IDENTITY",
"inflection": {
"tableName": "Inflection - Table name",
"columnName": "Inflection - Column name"
},
"community": {
"starUs1": "Star",
"starUs2": "us on Github",
"bookDemo": "Book a Free DEMO",
"getAnswered": "Get your questions answered",
"joinDiscord": "Join Discord",
"joinCommunity": "Join NocoDB Community",
"joinReddit": "Join /r/NocoDB",
"followNocodb": "Follow NocoDB"
},
"docReference": "Document Reference",
"selectUserRole": "Select User Role",
"childTable": "Child table",
"childColumn": "Child column",
"onUpdate": "On Update",
"onDelete": "On Delete",
"account": "Account",
"language": "Language",
"primaryColor": "Primary Color",
"accentColor": "Accent Color",
"customTheme": "Custom Theme",
"requestDataSource": "Request a data source you need?",
"apiKey": "API Key",
"sharedBase": "Shared Base",
"importData": "Import Data",
"importSecondaryViews": "Import Secondary Views",
"importRollupColumns": "Import Rollup Columns",
"importLookupColumns": "Import Lookup Columns",
"importAttachmentColumns": "Import Attachment Columns",
"importFormulaColumns": "Import Formula Columns",
"noData": "No Data",
"goToDashboard": "Go to Dashboard",
"importing": "Importing",
"flattenNested": "Flatten Nested",
"downloadAllowed": "Download allowed",
"weAreHiring": "We are Hiring!",
"primaryKey": "Primary key",
"hasMany": "has many",
"belongsTo": "belongs to",
"manyToMany": "have many to many relation",
"extraConnectionParameters": "Extra connection parameters",
"commentsOnly": "Comments only",
"documentation": "Documentation",
"subscribeNewsletter": "Subscribe to our weekly newsletter",
"signUpWithGoogle": "Sign up with Google",
"signInWithGoogle": "Sign in with Google",
"agreeToTos": "By signing up, you agree to the Terms of Service",
"welcomeToNc": "Welcome to NocoDB!",
"inviteOnlySignup": "Allow signup only using invite url"
},
"activity": {
"createProject": "Create Project",
"importProject": "Import Project",
"searchProject": "Search Project",
"editProject": "Edit Project",
"stopProject": "Stop Project",
"startProject": "Start Project",
"restartProject": "Restart Project",
"deleteProject": "Delete Project",
"refreshProject": "Refresh projects",
"saveProject": "Save Project",
"deleteKanbanStack": "Delete stack?",
"createProjectExtended": {
"extDB": "Create By Connecting <br>To An External Database",
"excel": "Create Project from excel",
"template": "Create Project from template"
},
"OkSaveProject": "Ok & Save Project",
"upgrade": {
"available": "Upgrade available",
"releaseNote": "Release notes",
"howTo": "How to upgrade ?"
},
"translate": "Help translate",
"account": {
"authToken": "Copy Auth Token",
"swagger": "Swagger: REST APIs",
"projInfo": "Copy Project Info",
"themes": "Themes"
},
"sort": "Sort",
"addSort": "Add Sort Option",
"filter": "Filter",
"addFilter": "Add Filter",
"share": "Share",
"shareBase": {
"disable": "Disable shared base",
"enable": "Anyone with the link",
"link": "Shared base link"
},
"invite": "Invite",
"inviteMore": "Invite more",
"inviteTeam": "Invite Team",
"inviteUser": "Invite User",
"inviteToken": "Invite Token",
"newUser": "New User",
"editUser": "Edit user",
"deleteUser": "Remove user from project",
"resendInvite": "Resend invite E-mail",
"copyInviteURL": "Copy invite URL",
"copyPasswordResetURL": "Copy password reset URL",
"newRole": "New role",
"reloadRoles": "Reload roles",
"nextPage": "Next page",
"prevPage": "Previous page",
"nextRecord": "Next record",
"previousRecord": "Previous record",
"copyApiURL": "Copy API URL",
"createTable": "Table Create",
"refreshTable": "Tables Refresh",
"renameTable": "Table Rename",
"deleteTable": "Table Delete",
"addField": "Add new field to this table",
"setPrimary": "Set as Primary value",
"addRow": "Add new row",
"saveRow": "Save row",
"saveAndExit": "Save & Exit",
"saveAndStay": "Save & Stay",
"insertRow": "Insert New Row",
"deleteRow": "Delete Row",
"deleteSelectedRow": "Delete Selected Rows",
"importExcel": "Import Excel",
"importCSV": "Import CSV",
"downloadCSV": "Download as CSV",
"downloadExcel": "Download as XLSX",
"uploadCSV": "Upload CSV",
"import": "Import",
"importMetadata": "Import Metadata",
"exportMetadata": "Export Metadata",
"clearMetadata": "Clear Metadata",
"exportToFile": "Export to file",
"changePwd": "Change Password",
"createView": "Create a View",
"shareView": "Share View",
"listSharedView": "Shared View List",
"ListView": "Views List",
"copyView": "Copy view",
"renameView": "Rename view",
"deleteView": "Delete view",
"createGrid": "Create Grid View",
"createGallery": "Create Gallery View",
"createCalendar": "Create Calendar View",
"createKanban": "Create Kanban View",
"createForm": "Create Form View",
"showSystemFields": "Show system fields",
"copyUrl": "Copy URL",
"openTab": "Open new tab",
"iFrame": "Copy embeddable HTML code",
"addWebhook": "Add New Webhook",
"newToken": "Add New Token",
"exportZip": "Export zip",
"importZip": "Import zip",
"metaSync": "Sync Now",
"settings": "Settings",
"previewAs": "Preview as",
"resetReview": "Reset Preview",
"testDbConn": "Test Database Connection",
"removeDbFromEnv": "Remove Database from environment",
"editConnJson": "Edit connection JSON",
"sponsorUs": "Sponsor Us",
"sendEmail": "SEND EMAIL",
"addUserToProject": "Add user to project",
"getApiSnippet": "Get API Snippet",
"clearCell": "Clear cell",
"addFilterGroup": "Add Filter Group",
"linkRecord": "Link record",
"addNewRecord": "Add new record",
"useConnectionUrl": "Use Connection URL",
"toggleCommentsDraw": "Toggle comments draw",
"expandRecord": "Expand Record",
"deleteRecord": "Delete Record",
"erd": {
"showColumns": "Show Columns",
"showPkAndFk": "Show Primary and Foreign Keys",
"showSqlViews": "Show SQL Views",
"showMMTables": "Show Many to Many tables",
"showJunctionTableNames": "Show Junction Table Names"
},
"kanban": {
"collapseStack": "Collapse Stack",
"deleteStack": "Delete Stack",
"stackedBy": "Stacked By",
"chooseGroupingField": "Choose a Grouping Field",
"addOrEditStack": "Add / Edit Stack"
}
},
"tooltip": {
"saveChanges": "Save changes",
"xcDB": "Create a new project",
"extDB": "Supports MySQL, PostgreSQL, SQL Server & SQLite",
"apiRest": "Accessible via REST APIs",
"apiGQL": "Accessible via GraphQL APIs",
"theme": {
"dark": "It does come in Black (^⇧B)",
"light": "Does it come in Black ? (^⇧B)"
},
"addTable": "Add new table",
"inviteMore": "Invite more users",
"toggleNavDraw": "Toggle navigation drawer",
"reloadApiToken": "Reload API tokens",
"generateNewApiToken": "Generate new API token",
"addRole": "Add new role",
"reloadList": "Reload list",
"metaSync": "Sync metadata",
"sqlMigration": "Reload migrations",
"updateRestart": "Update & Restart",
"cancelReturn": "Cancel and Return",
"exportMetadata": "Export all metadata from the meta tables to meta directory.",
"importMetadata": "Import all metadata from the meta directory to meta tables.",
"clearMetadata": "Clear all metadata from meta tables.",
"clientKey": "Select .key file",
"clientCert": "Select .cert file",
"clientCA": "Select CA file"
},
"placeholder": {
"projName": "Enter Project Name",
"password": {
"enter": "Enter the password",
"current": "Current password",
"new": "New password",
"save": "Save password",
"confirm": "Confirm new password"
},
"searchProjectTree": "Search tables",
"searchFields": "Search fields",
"searchColumn": "Search {search} column",
"searchApps": "Search apps",
"searchModels": "Search models",
"noItemsFound": "No items found",
"defaultValue": "Default value",
"filterByEmail": "Filter by E-mail",
"filterQuery": "Filter query",
"selectField": "Select field"
},
"msg": {
"warning": {
"barcode": {
"renderError": "Barcode error - please check compatibility between input and barcode type"
},
"nonEditableFields": {
"computedFieldUnableToClear": "Warning: Computed field - unable to clear text",
"qrFieldsCannotBeDirectlyChanged": "Warning: QR fields cannot be directly changed."
}
},
"info": {
"pasteNotSupported": "Paste operation is not supported on the active cell",
"roles": {
"orgCreator": "Creator can create new projects and access any invited project.",
"orgViewer": "Viewer is not allowed to create new projects but they can access any invited project."
},
"footerInfo": "Rows per page",
"upload": "Select file to Upload",
"upload_sub": "or drag and drop file",
"excelSupport": "Supported: .xls, .xlsx, .xlsm, .ods, .ots",
"excelURL": "Enter excel file URL",
"csvURL": "Enter CSV file URL",
"footMsg": "# of rows to parse to infer datatype",
"excelImport": "sheet(s) are available for import",
"exportMetadata": "Do you want to export metadata from meta tables?",
"importMetadata": "Do you want to import metadata from meta tables?",
"clearMetadata": "Do you want to clear metadata from meta tables?",
"projectEmptyMessage": "Get started by creating a new project",
"stopProject": "Do you want to stop the project?",
"startProject": "Do you want to start the project?",
"restartProject": "Do you want to restart the project?",
"deleteProject": "Do you want to delete the project?",
"shareBasePrivate": "Generate publicly shareable readonly base",
"shareBasePublic": "Anyone on the internet with this link can view",
"userInviteNoSMTP": "Looks like you have not configured mailer yet! Please copy above invite link and send it to",
"dragDropHide": "Drag and drop fields here to hide",
"formInput": "Enter form input label",
"formHelpText": "Add some help text",
"onlyCreator": "Only visible to Creator",
"formDesc": "Add form description",
"beforeEnablePwd": "Restrict access with a password",
"afterEnablePwd": "Access is password restricted",
"privateLink": "This view is shared via a private link",
"privateLinkAdditionalInfo": "People with private link can only see cells visible in this view",
"afterFormSubmitted": "After form is submitted",
"apiOptions": "Access Project via",
"submitAnotherForm": "Show 'Submit Another Form' button",
"showBlankForm": "Show a blank form after 5 seconds",
"emailForm": "E-mail me at",
"showSysFields": "Show system fields",
"filterAutoApply": "Auto apply",
"showMessage": "Show this message",
"viewNotShared": "Current view is not shared!",
"showAllViews": "Show all shared views of this table",
"collabView": "Collaborators with edit permissions or higher can change the view configuration.",
"lockedView": "No one can edit the view configuration until it is unlocked.",
"personalView": "Only you can edit the view configuration. Other collaborators’ personal views are hidden by default.",
"ownerDesc": "Can add/remove creators. And full edit database structures & fields.",
"creatorDesc": "Can fully edit database structure & values.",
"editorDesc": "Can edit records but cannot change structure of database/fields.",
"commenterDesc": "Can view and comment the records but cannot edit anything",
"viewerDesc": "Can view the records but cannot edit anything",
"addUser": "Add new user",
"staticRoleInfo": "System defined roles can't be edited",
"exportZip": "Export project meta to zip file and download.",
"importZip": "Import project meta zip file and restart.",
"importText": "Import NocoDB Project by uploading metadata zip file",
"metaNoChange": "No change identified",
"sqlMigration": "Schema migrations will be created automatically. Create a table and refresh this page.",
"dbConnectionStatus": "Environment validated",
"dbConnected": "Connection was successful",
"notifications": {
"no_new": "No new notifications",
"clear": "Clear"
},
"sponsor": {
"header": "You can help us!",
"message": "We are a tiny team working full time to make NocoDB Open-source. We believe a tool like NocoDB should be available freely to every problem solver on Internet."
},
"loginMsg": "Log In To NocoDB",
"passwordRecovery": {
"message_1": "Please provide the email address you used when you signed up.",
"message_2": "We will send you an email with a link to reset your password.",
"success": "Please check your email to reset the password"
},
"signUp": {
"superAdmin": "You will be the 'Super Admin'",
"alreadyHaveAccount": "Already have an account ?",
"workEmail": "Enter your work email",
"enterPassword": "Enter your password",
"forgotPassword": "Forgot your password ?",
"dontHaveAccount": "Don't have an account ?"
},
"addView": {
"grid": "Add Grid View",
"gallery": "Add Gallery View",
"form": "Add Form View",
"kanban": "Add Kanban View",
"calendar": "Add Calendar View"
},
"tablesMetadataInSync": "Tables metadata is in Sync",
"addMultipleUsers": "You can add multiple comma(,) separated emails",
"enterTableName": "Enter table name",
"addDefaultColumns": "Add default columns",
"tableNameInDb": "Table name as saved in database",
"airtable": {
"credentials": "Where to find this?"
},
"import": {
"clickOrDrag": "Click or drag file to this area to upload"
},
"metaDataRecreated": "Table metadata recreated successfully",
"invalidCredentials": "Invalid credentials",
"downloadingMoreFiles": "Downloading more files",
"copiedToClipboard": "Copied to clipboard",
"requriedFieldsCantBeMoved": "Required field can't be moved",
"updateNotAllowedWithoutPK": "Update not allowed for table which doesn't have primary key",
"autoIncFieldNotEditable": "Auto increment field is not editable",
"editingPKnotSupported": "Editing primary key not supported",
"deletedCache": "Deleted cache successfully",
"cacheEmpty": "Cache is empty",
"exportedCache": "Exported Cache Successfully",
"valueAlreadyInList": "This value is already in the list",
"noColumnsToUpdate": "No columns to update",
"tableDeleted": "Deleted table successfully",
"generatePublicShareableReadonlyBase": "Generate publicly shareable readonly base",
"deleteViewConfirmation": "Are you sure you want to delete this view?",
"deleteTableConfirmation": "Do you want to delete the table",
"showM2mTables": "Show M2M Tables",
"deleteKanbanStackConfirmation": "Deleting this stack will also remove the select option `{stackToBeDeleted}` from the `{groupingField}`. The records will move to the uncategorized stack.",
"computedFieldEditWarning": "Computed field: contents are read-only. Use column edit menu to reconfigure",
"computedFieldDeleteWarning": "Computed field: contents are read-only. Unable to clear content."
},
"error": {
"searchProject": "Your search for {search} found no results",
"invalidChar": "Invalid character in folder path.",
"invalidDbCredentials": "Invalid database credentials.",
"unableToConnectToDb": "Unable to connect to database, please check your database is up.",
"userDoesntHaveSufficientPermission": "User does not exist or have sufficient permission to create schema.",
"dbConnectionStatus": "Invalid database parameters",
"dbConnectionFailed": "Connection Failure:",
"signUpRules": {
"emailReqd": "E-mail is required",
"emailInvalid": "E-mail must be valid",
"passwdRequired": "Password is required",
"passwdLength": "You password must be atleast 8 characters",
"passwdMismatch": "Passwords do not match",
"completeRuleSet": "At least 8 characters with one Uppercase, one number and one special character",
"atLeast8Char": "At least 8 characters",
"atLeastOneUppercase": "One Uppercase letter",
"atLeastOneNumber": "One Number",
"atLeastOneSpecialChar": "One special character",
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
"primaryColumnUpdateFailed": "Failed to update primary column",
"formDescriptionTooLong": "Data too long for Form Description",
"columnsRequired": "Following columns are required",
"selectAtleastOneColumn": "At least one column has to be selected",
"columnDescriptionNotFound": "Cannot find the destination column for",
"duplicateMappingFound": "Duplicate mapping found, please remove one of the mapping",
"nullValueViolatesNotNull": "Null value violates not-null constraint",
"sourceHasInvalidNumbers": "Source data contains some invalid numbers",
"sourceHasInvalidBoolean": "Source data contains some invalid boolean values",
"invalidForm": "Invalid Form",
"formValidationFailed": "Form validation failed",
"youHaveBeenSignedOut": "You have been signed out",
"failedToLoadList": "Failed to load list",
"failedToLoadChildrenList": "Failed to load children list",
"deleteFailed": "Delete failed",
"unlinkFailed": "Unlink failed",
"rowUpdateFailed": "Row update failed",
"deleteRowFailed": "Failed to delete row",
"setFormDataFailed": "Failed to set form data",
"formViewUpdateFailed": "Failed to update form view",
"tableNameRequired": "Table name is required",
"nameShouldStartWithAnAlphabetOr_": "Name should start with an alphabet or _",
"followingCharactersAreNotAllowed": "Following characters are not allowed",
"columnNameRequired": "Column name is required",
"projectNameExceeds50Characters": "Project name exceeds 50 characters",
"projectNameCannotStartWithSpace": "Project name cannot start with space",
"requiredField": "Required field",
"ipNotAllowed": "IP not allowed",
"targetFileIsNotAnAcceptedFileType": "Target file is not an accepted file type",
"theAcceptedFileTypeIsCsv": "The accepted file type is .csv",
"theAcceptedFileTypesAreXlsXlsxXlsmOdsOts": "The accepted file types are .xls, .xlsx, .xlsm, .ods, .ots",
"parameterKeyCannotBeEmpty": "Parameter key cannot be empty",
"duplicateParameterKeysAreNotAllowed": "Duplicate parameter keys are not allowed",
"fieldRequired": "{value} cannot be empty.",
"projectNotAccessible": "Project not accessible",
"copyToClipboardError": "Failed to copy to clipboard"
},
"toast": {
"exportMetadata": "Project metadata exported successfully",
"importMetadata": "Project metadata imported successfully",
"clearMetadata": "Project metadata cleared successfully",
"stopProject": "Project stopped successfully",
"startProject": "Project started successfully",
"restartProject": "Project restarted successfully",
"deleteProject": "Project deleted successfully",
"authToken": "Auth token copied to clipboard",
"projInfo": "Copied project info to clipboard",
"inviteUrlCopy": "Copied invite URL to clipboard",
"createView": "View created successfully",
"formEmailSMTP": "Please activate SMTP plugin in App store for enabling email notification",
"collabView": "Successfully Switched to collaborative view",
"lockedView": "Successfully Switched to locked view",
"futureRelease": "Coming soon!"
},
"success": {
"columnDuplicated": "Column duplicated successfully",
"updatedUIACL": "Updated UI ACL for tables successfully",
"pluginUninstalled": "Plugin uninstalled successfully",
"pluginSettingsSaved": "Plugin settings saved successfully",
"pluginTested": "Successfully tested plugin settings",
"tableRenamed": "Table renamed successfully",
"viewDeleted": "View deleted successfully",
"primaryColumnUpdated": "Successfully updated as primary column",
"tableDataExported": "Successfully exported all table data",
"updated": "Successfully updated",
"sharedViewDeleted": "Deleted shared view successfully",
"userDeleted": "User deleted successfully",
"viewRenamed": "View renamed successfully",
"tokenGenerated": "Token generated successfully",
"tokenDeleted": "Token deleted successfully",
"userAddedToProject": "Successfully added user to project",
"userAdded": "Successfully added user",
"userDeletedFromProject": "Successfully deleted user from project",
"inviteEmailSent": "Invite Email sent successfully",
"inviteURLCopied": "Invite URL copied to clipboard",
"passwordResetURLCopied": "Password reset URL copied to clipboard",
"shareableURLCopied": "Copied shareable base URL to clipboard!",
"embeddableHTMLCodeCopied": "Copied embeddable HTML code!",
"userDetailsUpdated": "Successfully updated the user details",
"tableDataImported": "Successfully imported table data",
"webhookUpdated": "Webhook details updated successfully",
"webhookDeleted": "Hook deleted successfully",
"webhookTested": "Webhook tested successfully",
"columnUpdated": "Column updated",
"columnCreated": "Column created",
"passwordChanged": "Password changed successfully. Please login again.",
"settingsSaved": "Settings saved successfully",
"roleUpdated": "Role updated successfully"
}
}
}

3
packages/nc-gui/lib/enums.ts

@ -26,10 +26,12 @@ export enum ClientType {
export enum Language { export enum Language {
ar = 'العربية', ar = 'العربية',
bn_IN = 'ব', bn_IN = 'ব',
cs = 'Czech',
da = 'Dansk', da = 'Dansk',
de = 'Deutsch', de = 'Deutsch',
en = 'English', en = 'English',
es = 'Español', es = 'Español',
eu = 'Basque',
fa = 'فارسی', fa = 'فارسی',
fi = 'Suomalainen', fi = 'Suomalainen',
fr = 'Français', fr = 'Français',
@ -47,6 +49,7 @@ export enum Language {
pt = 'Português', pt = 'Português',
pt_BR = 'Português (Brasil)', pt_BR = 'Português (Brasil)',
ru = 'Pусский', ru = 'Pусский',
sk = 'Slovenčina',
sl = 'Slovenščina', sl = 'Slovenščina',
sv = 'Svenska', sv = 'Svenska',
th = 'ไทย', th = 'ไทย',

3
packages/nc-gui/nuxt.config.ts

@ -139,6 +139,9 @@ export default defineNuxtConfig({
}), }),
monacoEditorPlugin({ monacoEditorPlugin({
languageWorkers: ['json'], languageWorkers: ['json'],
customDistPath: (root: string, buildOutDir: string, base: string) => {
return buildOutDir + '/' + 'monacoeditorwork'
},
}), }),
PurgeIcons({ PurgeIcons({
/* PurgeIcons Options */ /* PurgeIcons Options */

18
packages/nc-gui/pages/[projectType]/[projectId]/index/index.vue

@ -47,7 +47,7 @@ function onEdit(targetKey: number, action: 'add' | 'remove' | string) {
<a-tabs v-model:activeKey="activeTabIndex" class="nc-root-tabs" type="editable-card" @edit="onEdit"> <a-tabs v-model:activeKey="activeTabIndex" class="nc-root-tabs" type="editable-card" @edit="onEdit">
<a-tab-pane v-for="(tab, i) of tabs" :key="i"> <a-tab-pane v-for="(tab, i) of tabs" :key="i">
<template #tab> <template #tab>
<div class="flex items-center gap-2 max-w-[110px]" data-testid="nc-tab-title"> <div class="flex items-center gap-2" data-testid="nc-tab-title">
<div class="flex items-center"> <div class="flex items-center">
<Icon <Icon
v-if="tab.meta?.icon" v-if="tab.meta?.icon"
@ -58,15 +58,11 @@ function onEdit(targetKey: number, action: 'add' | 'remove' | string) {
<component :is="icon(tab)" v-else class="text-sm" /> <component :is="icon(tab)" v-else class="text-sm" />
</div> </div>
<a-tooltip v-if="tab.title?.length > 12" placement="bottom"> <div :data-testid="`nc-root-tabs-${tab.title}`">
<div class="truncate" :data-testid="`nc-root-tabs-${tab.title}`">{{ tab.title }}</div> <GeneralTruncateText :key="tab.title" :length="12">
{{ tab.title }}
<template #title> </GeneralTruncateText>
<div>{{ tab.title }}</div> </div>
</template>
</a-tooltip>
<div v-else :data-testid="`nc-root-tabs-${tab.title}`">{{ tab.title }}</div>
</div> </div>
</template> </template>
</a-tab-pane> </a-tab-pane>
@ -146,6 +142,6 @@ function onEdit(targetKey: number, action: 'add' | 'remove' | string) {
} }
:deep(.ant-tabs-tab-remove) { :deep(.ant-tabs-tab-remove) {
@apply mt-[3px]; @apply flex mt-[2px];
} }
</style> </style>

10
packages/nc-gui/pages/index/index/[projectId].vue

@ -16,9 +16,7 @@ import {
const route = useRoute() const route = useRoute()
const { loadProject, updateProject, isLoading } = useProject() const { project, loadProject, updateProject, isLoading } = useProject()
loadProject(false)
const nameValidationRules = [ const nameValidationRules = [
{ {
@ -44,6 +42,12 @@ const renameProject = async () => {
} }
} }
onBeforeMount(async () => {
await loadProject(false)
formState.title = project.value?.title
})
const focus: VNodeRef = (el) => (el as HTMLInputElement)?.focus() const focus: VNodeRef = (el) => (el as HTMLInputElement)?.focus()
</script> </script>

53
packages/nc-plugin/package-lock.json generated

@ -84,13 +84,10 @@
} }
}, },
"node_modules/@babel/core/node_modules/json5": { "node_modules/@babel/core/node_modules/json5": {
"version": "2.2.0", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==",
"dev": true, "dev": true,
"dependencies": {
"minimist": "^1.2.5"
},
"bin": { "bin": {
"json5": "lib/cli.js" "json5": "lib/cli.js"
}, },
@ -11690,17 +11687,26 @@
} }
}, },
"node_modules/tsconfig-paths": { "node_modules/tsconfig-paths": {
"version": "3.9.0", "version": "3.14.1",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
"integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/json5": "^0.0.29", "@types/json5": "^0.0.29",
"json5": "^1.0.1", "json5": "^1.0.1",
"minimist": "^1.2.0", "minimist": "^1.2.6",
"strip-bom": "^3.0.0" "strip-bom": "^3.0.0"
} }
}, },
"node_modules/tsconfig-paths/node_modules/minimist": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
"integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
"dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/tslib": { "node_modules/tslib": {
"version": "1.14.1", "version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
@ -12306,13 +12312,10 @@
}, },
"dependencies": { "dependencies": {
"json5": { "json5": {
"version": "2.2.0", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==",
"dev": true, "dev": true
"requires": {
"minimist": "^1.2.5"
}
}, },
"semver": { "semver": {
"version": "6.3.0", "version": "6.3.0",
@ -21142,15 +21145,23 @@
} }
}, },
"tsconfig-paths": { "tsconfig-paths": {
"version": "3.9.0", "version": "3.14.1",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
"integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/json5": "^0.0.29", "@types/json5": "^0.0.29",
"json5": "^1.0.1", "json5": "^1.0.1",
"minimist": "^1.2.0", "minimist": "^1.2.6",
"strip-bom": "^3.0.0" "strip-bom": "^3.0.0"
},
"dependencies": {
"minimist": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
"integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
"dev": true
}
} }
}, },
"tslib": { "tslib": {

2
packages/noco-docs/content/en/setup-and-usages/dashboard.md

@ -15,7 +15,7 @@ Enter your work email and your password.
<img width="1492" alt="image" src="https://user-images.githubusercontent.com/35857179/194793294-fa027496-c3c3-44eb-a613-2ba3e3bd26c1.png"> <img width="1492" alt="image" src="https://user-images.githubusercontent.com/35857179/194793294-fa027496-c3c3-44eb-a613-2ba3e3bd26c1.png">
<alert id="password-conditions"> <alert id="password-conditions">
Your password has at least 8 letters with one uppercase, one number and one special letter Your password has at least 8 letters. No other constraints on case, numbers or special characters.
</alert> </alert>
## Initialize Your First Project ## Initialize Your First Project

21
packages/noco-docs/content/en/setup-and-usages/project-settings.md

@ -0,0 +1,21 @@
---
title: 'Team & Settings > Project settings'
description: 'General project configuration options'
position: 612
category: 'Product'
menuTitle: 'Team & Settings > Project Settings'
---
## Overview
Generic project configuration options are retained under `Project Settings` menu. To access it, click the down arrow button next to Project Name on the top left side, then select `Team & Settings`.
<img width="322" alt="image" src="https://user-images.githubusercontent.com/35857179/194856648-67936db0-ee4d-4060-be3d-af9f86ef8fc6.png">
Then, under SETTINGS, click `Project Settings`.
## Miscellaneous
- Enabling, `Show M2M Tables` will show junction tables between many to many tables.
![Screenshot 2022-12-29 at 7 05 04 PM](https://user-images.githubusercontent.com/86527202/209961654-ffe8ddc6-c7e2-4c0d-9762-2b57fb883cfa.png)

2
packages/noco-docs/content/en/setup-and-usages/sync-schema.md

@ -1,7 +1,7 @@
--- ---
title: 'Sync Schema' title: 'Sync Schema'
description: 'Schema changes made to database from outside NocoDB GUI can be synced' description: 'Schema changes made to database from outside NocoDB GUI can be synced'
position: 610 position: 613
category: 'Product' category: 'Product'
menuTitle: 'Sync Schema' menuTitle: 'Sync Schema'
--- ---

40610
packages/noco-docs/package-lock.json generated

File diff suppressed because it is too large Load Diff

2
packages/noco-docs/package.json

@ -23,6 +23,6 @@
}, },
"dependencies": { "dependencies": {
"@nuxt/content-theme-docs": "0.7.2", "@nuxt/content-theme-docs": "0.7.2",
"nuxt": "^2.15.2" "nuxt": "^3.0.0"
} }
} }

421
packages/nocodb/package-lock.json generated

@ -52,7 +52,7 @@
"isomorphic-dompurify": "^0.19.0", "isomorphic-dompurify": "^0.19.0",
"jsep": "^1.3.6", "jsep": "^1.3.6",
"jsonfile": "^6.1.0", "jsonfile": "^6.1.0",
"jsonwebtoken": "^8.5.1", "jsonwebtoken": "^9.0.0",
"knex": "2.2.0", "knex": "2.2.0",
"lodash": "^4.17.19", "lodash": "^4.17.19",
"lru-cache": "^6.0.0", "lru-cache": "^6.0.0",
@ -491,6 +491,54 @@
"node": "10 || 12 || 14 || 16 || 18" "node": "10 || 12 || 14 || 16 || 18"
} }
}, },
"node_modules/@azure/msal-node/node_modules/jsonwebtoken": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
"dependencies": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^5.6.0"
},
"engines": {
"node": ">=4",
"npm": ">=1.4.28"
}
},
"node_modules/@azure/msal-node/node_modules/jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"dependencies": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"node_modules/@azure/msal-node/node_modules/jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"dependencies": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"node_modules/@azure/msal-node/node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/@azure/storage-blob": { "node_modules/@azure/storage-blob": {
"version": "12.12.0", "version": "12.12.0",
"resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.12.0.tgz", "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.12.0.tgz",
@ -9402,24 +9450,18 @@
} }
}, },
"node_modules/jsonwebtoken": { "node_modules/jsonwebtoken": {
"version": "8.5.1", "version": "9.0.0",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==",
"dependencies": { "dependencies": {
"jws": "^3.2.2", "jws": "^3.2.2",
"lodash.includes": "^4.3.0", "lodash": "^4.17.21",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1", "ms": "^2.1.1",
"semver": "^5.6.0" "semver": "^7.3.8"
}, },
"engines": { "engines": {
"node": ">=4", "node": ">=12",
"npm": ">=1.4.28" "npm": ">=6"
} }
}, },
"node_modules/jsonwebtoken/node_modules/jwa": { "node_modules/jsonwebtoken/node_modules/jwa": {
@ -9442,11 +9484,17 @@
} }
}, },
"node_modules/jsonwebtoken/node_modules/semver": { "node_modules/jsonwebtoken/node_modules/semver": {
"version": "5.7.1", "version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": { "bin": {
"semver": "bin/semver" "semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
} }
}, },
"node_modules/jsprim": { "node_modules/jsprim": {
@ -12656,6 +12704,54 @@
"passport-strategy": "^1.0.0" "passport-strategy": "^1.0.0"
} }
}, },
"node_modules/passport-jwt/node_modules/jsonwebtoken": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
"dependencies": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^5.6.0"
},
"engines": {
"node": ">=4",
"npm": ">=1.4.28"
}
},
"node_modules/passport-jwt/node_modules/jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"dependencies": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"node_modules/passport-jwt/node_modules/jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"dependencies": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"node_modules/passport-jwt/node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/passport-local": { "node_modules/passport-local": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
@ -14485,6 +14581,46 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/snowflake-sdk/node_modules/jsonwebtoken": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
"dependencies": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^5.6.0"
},
"engines": {
"node": ">=4",
"npm": ">=1.4.28"
}
},
"node_modules/snowflake-sdk/node_modules/jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"dependencies": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"node_modules/snowflake-sdk/node_modules/jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"dependencies": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"node_modules/snowflake-sdk/node_modules/mkdirp": { "node_modules/snowflake-sdk/node_modules/mkdirp": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@ -14525,6 +14661,14 @@
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
} }
}, },
"node_modules/snowflake-sdk/node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/snowflake-sdk/node_modules/tmp": { "node_modules/snowflake-sdk/node_modules/tmp": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
@ -16460,6 +16604,46 @@
"follow-redirects": "^1.14.8" "follow-redirects": "^1.14.8"
} }
}, },
"node_modules/twilio/node_modules/jsonwebtoken": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
"dependencies": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^5.6.0"
},
"engines": {
"node": ">=4",
"npm": ">=1.4.28"
}
},
"node_modules/twilio/node_modules/jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"dependencies": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"node_modules/twilio/node_modules/jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"dependencies": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"node_modules/twilio/node_modules/q": { "node_modules/twilio/node_modules/q": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/q/-/q-2.0.3.tgz", "resolved": "https://registry.npmjs.org/q/-/q-2.0.3.tgz",
@ -16470,6 +16654,14 @@
"weak-map": "^1.0.5" "weak-map": "^1.0.5"
} }
}, },
"node_modules/twilio/node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/type-check": { "node_modules/type-check": {
"version": "0.4.0", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@ -19051,6 +19243,49 @@
"@azure/msal-common": "^7.6.0", "@azure/msal-common": "^7.6.0",
"jsonwebtoken": "^8.5.1", "jsonwebtoken": "^8.5.1",
"uuid": "^8.3.0" "uuid": "^8.3.0"
},
"dependencies": {
"jsonwebtoken": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
"requires": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^5.6.0"
}
},
"jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"requires": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
}
} }
}, },
"@azure/storage-blob": { "@azure/storage-blob": {
@ -26059,20 +26294,14 @@
} }
}, },
"jsonwebtoken": { "jsonwebtoken": {
"version": "8.5.1", "version": "9.0.0",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==",
"requires": { "requires": {
"jws": "^3.2.2", "jws": "^3.2.2",
"lodash.includes": "^4.3.0", "lodash": "^4.17.21",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1", "ms": "^2.1.1",
"semver": "^5.6.0" "semver": "^7.3.8"
}, },
"dependencies": { "dependencies": {
"jwa": { "jwa": {
@ -26095,9 +26324,12 @@
} }
}, },
"semver": { "semver": {
"version": "5.7.1", "version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"requires": {
"lru-cache": "^6.0.0"
}
} }
} }
}, },
@ -28661,6 +28893,49 @@
"requires": { "requires": {
"jsonwebtoken": "^8.2.0", "jsonwebtoken": "^8.2.0",
"passport-strategy": "^1.0.0" "passport-strategy": "^1.0.0"
},
"dependencies": {
"jsonwebtoken": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
"requires": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^5.6.0"
}
},
"jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"requires": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
}
} }
}, },
"passport-local": { "passport-local": {
@ -30099,6 +30374,42 @@
"is-docker": "^2.0.0" "is-docker": "^2.0.0"
} }
}, },
"jsonwebtoken": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
"requires": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^5.6.0"
}
},
"jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"requires": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"mkdirp": { "mkdirp": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@ -30121,6 +30432,11 @@
"glob": "^7.1.3" "glob": "^7.1.3"
} }
}, },
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
},
"tmp": { "tmp": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
@ -31624,6 +31940,42 @@
"follow-redirects": "^1.14.8" "follow-redirects": "^1.14.8"
} }
}, },
"jsonwebtoken": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
"requires": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^5.6.0"
}
},
"jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"requires": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"q": { "q": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/q/-/q-2.0.3.tgz", "resolved": "https://registry.npmjs.org/q/-/q-2.0.3.tgz",
@ -31633,6 +31985,11 @@
"pop-iterate": "^1.0.1", "pop-iterate": "^1.0.1",
"weak-map": "^1.0.5" "weak-map": "^1.0.5"
} }
},
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
} }
} }
}, },

2
packages/nocodb/package.json

@ -92,7 +92,7 @@
"isomorphic-dompurify": "^0.19.0", "isomorphic-dompurify": "^0.19.0",
"jsep": "^1.3.6", "jsep": "^1.3.6",
"jsonfile": "^6.1.0", "jsonfile": "^6.1.0",
"jsonwebtoken": "^8.5.1", "jsonwebtoken": "^9.0.0",
"knex": "2.2.0", "knex": "2.2.0",
"lodash": "^4.17.19", "lodash": "^4.17.19",
"lru-cache": "^6.0.0", "lru-cache": "^6.0.0",

13
tests/playwright/pages/Dashboard/common/Cell/DateTimeCell.ts

@ -33,7 +33,18 @@ export class DateTimeCellPageObject extends BasePage {
date: string; date: string;
}) { }) {
// title date format needs to be YYYY-MM-DD // title date format needs to be YYYY-MM-DD
await this.rootPage.locator(`td[title="${date}"]`).click(); const [year, month, day] = date.split('-');
// configure year
await this.rootPage.locator('.ant-picker-year-btn').click();
await this.rootPage.locator(`td[title="${year}"]`).click();
// configure month
await this.rootPage.locator('.ant-picker-month-btn').click();
await this.rootPage.locator(`td[title="${year}-${month}"]`).click();
// configure day
await this.rootPage.locator(`td[title="${year}-${month}-${day}"]`).click();
} }
async selectTime({ async selectTime({

3
tests/playwright/tests/language.spec.ts

@ -7,10 +7,12 @@ const langMenu = [
'help-translate', 'help-translate',
'ar.json', 'ar.json',
'bn_IN.json', 'bn_IN.json',
'cs.json',
'da.json', 'da.json',
'de.json', 'de.json',
'en.json', 'en.json',
'es.json', 'es.json',
'eu.json',
'fa.json', 'fa.json',
'fi.json', 'fi.json',
'fr.json', 'fr.json',
@ -28,6 +30,7 @@ const langMenu = [
'pt.json', 'pt.json',
'pt_BR.json', 'pt_BR.json',
'ru.json', 'ru.json',
'sk.json',
'sl.json', 'sl.json',
'sv.json', 'sv.json',
'th.json', 'th.json',

Loading…
Cancel
Save