Browse Source

Merge branch 'refactor/gui-v2' into feat/gui-v2-templates

pull/2828/head
Wing-Kam Wong 2 years ago
parent
commit
ff39e7658b
  1. 5
      packages/nc-gui-v2/components/cell/Attachment.vue
  2. 2
      packages/nc-gui-v2/components/cell/Checkbox.vue
  3. 3
      packages/nc-gui-v2/components/cell/DateTimePicker.vue
  4. 2
      packages/nc-gui-v2/components/cell/Duration.vue
  5. 2
      packages/nc-gui-v2/components/cell/MultiSelect.vue
  6. 2
      packages/nc-gui-v2/components/cell/Rating.vue
  7. 2
      packages/nc-gui-v2/components/cell/SingleSelect.vue
  8. 2
      packages/nc-gui-v2/components/cell/Url.vue
  9. 3
      packages/nc-gui-v2/components/dashboard/TreeView.vue
  10. 4
      packages/nc-gui-v2/components/dlg/TableCreate.vue
  11. 2
      packages/nc-gui-v2/components/dlg/ViewCreate.vue
  12. 2
      packages/nc-gui-v2/components/smartsheet-header/Cell.vue
  13. 2
      packages/nc-gui-v2/components/smartsheet-header/CellIcon.vue
  14. 2
      packages/nc-gui-v2/components/smartsheet-header/VirtualCell.vue
  15. 2
      packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue
  16. 2
      packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilter.vue
  17. 2
      packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilterMenu.vue
  18. 2
      packages/nc-gui-v2/components/smartsheet-toolbar/FieldListAutoCompleteDropdown.vue
  19. 2
      packages/nc-gui-v2/components/smartsheet-toolbar/FieldsMenu.vue
  20. 2
      packages/nc-gui-v2/components/smartsheet-toolbar/SortListMenu.vue
  21. 2
      packages/nc-gui-v2/components/smartsheet/Cell.vue
  22. 2
      packages/nc-gui-v2/components/smartsheet/Gallery.vue
  23. 2
      packages/nc-gui-v2/components/smartsheet/Grid.vue
  24. 2
      packages/nc-gui-v2/components/smartsheet/Pagination.vue
  25. 2
      packages/nc-gui-v2/components/smartsheet/Sidebar.vue
  26. 2
      packages/nc-gui-v2/components/smartsheet/VirtualCell.vue
  27. 2
      packages/nc-gui-v2/components/tabs/Smartsheet.vue
  28. 2
      packages/nc-gui-v2/components/virtual-cell/BelongsTo.vue
  29. 5
      packages/nc-gui-v2/components/virtual-cell/Formula.vue
  30. 2
      packages/nc-gui-v2/components/virtual-cell/HasMany.vue
  31. 2
      packages/nc-gui-v2/components/virtual-cell/ManyToMany.vue
  32. 2
      packages/nc-gui-v2/components/virtual-cell/components/ItemChip.vue
  33. 2
      packages/nc-gui-v2/composables/useColumn.ts
  34. 2
      packages/nc-gui-v2/composables/useMetas.ts
  35. 33
      packages/nc-gui-v2/composables/useProject.ts
  36. 1
      packages/nc-gui-v2/composables/useTableCreate.ts
  37. 2
      packages/nc-gui-v2/composables/useViewData.ts
  38. 2
      packages/nc-gui-v2/context/index.ts
  39. 6
      packages/nc-gui-v2/lang/da.json
  40. 6
      packages/nc-gui-v2/lang/de.json
  41. 5
      packages/nc-gui-v2/lang/en.json
  42. 8
      packages/nc-gui-v2/lang/es.json
  43. 4
      packages/nc-gui-v2/lang/fa.json
  44. 6
      packages/nc-gui-v2/lang/fi.json
  45. 120
      packages/nc-gui-v2/lang/fr.json
  46. 6
      packages/nc-gui-v2/lang/hr.json
  47. 6
      packages/nc-gui-v2/lang/id.json
  48. 6
      packages/nc-gui-v2/lang/it_IT.json
  49. 24
      packages/nc-gui-v2/lang/iw.json
  50. 4
      packages/nc-gui-v2/lang/ja.json
  51. 444
      packages/nc-gui-v2/lang/ko.json
  52. 6
      packages/nc-gui-v2/lang/lv.json
  53. 6
      packages/nc-gui-v2/lang/nl.json
  54. 6
      packages/nc-gui-v2/lang/no.json
  55. 6
      packages/nc-gui-v2/lang/pl.json
  56. 6
      packages/nc-gui-v2/lang/pt.json
  57. 6
      packages/nc-gui-v2/lang/pt_BR.json
  58. 5
      packages/nc-gui-v2/lang/ru.json
  59. 6
      packages/nc-gui-v2/lang/sl.json
  60. 6
      packages/nc-gui-v2/lang/sv.json
  61. 6
      packages/nc-gui-v2/lang/th.json
  62. 6
      packages/nc-gui-v2/lang/tr.json
  63. 6
      packages/nc-gui-v2/lang/uk.json
  64. 6
      packages/nc-gui-v2/lang/vi.json
  65. 4
      packages/nc-gui-v2/lang/zh_CN.json
  66. 4
      packages/nc-gui-v2/lang/zh_HK.json
  67. 4
      packages/nc-gui-v2/lang/zh_TW.json
  68. 25454
      packages/nc-gui-v2/package-lock.json
  69. 1
      packages/nc-gui-v2/package.json
  70. 33
      packages/nc-gui-v2/pages/index/index.vue
  71. 12
      packages/nc-gui-v2/pages/nc/[projectId].vue
  72. 17
      packages/nc-gui-v2/pages/project/index/create-external.vue
  73. 4
      packages/nc-gui-v2/pages/signin.vue
  74. 31
      packages/nc-gui-v2/pages/signup.vue

5
packages/nc-gui-v2/components/cell/Attachment.vue

@ -1,9 +1,8 @@
<script setup lang="ts">
import { useToast } from 'vue-toastification'
import { inject, ref, watchEffect } from '#imports'
import { inject, ref, useProject, watchEffect } from '#imports'
import { useNuxtApp } from '#app'
import { ColumnInj, MetaInj } from '~/components'
import useProject from '~/composables/useProject'
import { ColumnInj, MetaInj } from '~/context'
import { NOCO } from '~/lib/constants'
import { isImage } from '~/utils/fileUtils'
import MaterialPlusIcon from '~icons/mdi/plus'

2
packages/nc-gui-v2/components/cell/Checkbox.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed, inject } from '#imports'
import { ColumnInj, IsFormInj } from '~/components'
import { ColumnInj, IsFormInj } from '~/context'
interface Props {
modelValue?: boolean | undefined | number

3
packages/nc-gui-v2/components/cell/DateTimePicker.vue

@ -1,7 +1,6 @@
<script setup lang="ts">
import dayjs from 'dayjs'
import { computed, ref } from '#imports'
import useProject from '~/composables/useProject'
import { computed, ref, useProject } from '#imports'
interface Props {
modelValue?: string

2
packages/nc-gui-v2/components/cell/Duration.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed, inject, ref } from '#imports'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
import { convertDurationToSeconds, convertMS2Duration, durationOptions } from '~/utils/durationHelper'
interface Props {

2
packages/nc-gui-v2/components/cell/MultiSelect.vue

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { computed, inject } from '#imports'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
interface Props {
modelValue: string

2
packages/nc-gui-v2/components/cell/Rating.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed, inject } from '#imports'
import { ColumnInj, IsFormInj } from '~/components'
import { ColumnInj, IsFormInj } from '~/context'
import MdiStarIcon from '~icons/mdi/star'
import MdiStarOutlineIcon from '~icons/mdi/star-outline'

2
packages/nc-gui-v2/components/cell/SingleSelect.vue

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { computed, inject } from '#imports'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
interface Props {
modelValue: string

2
packages/nc-gui-v2/components/cell/Url.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed, ref } from '#imports'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
import { isValidURL } from '~/utils/urlUtils'
interface Props {

3
packages/nc-gui-v2/components/dashboard/TreeView.vue

@ -1,6 +1,5 @@
<script setup lang="ts">
import useProject from '~/composables/useProject'
import useTabs from '~/composables/useTabs'
import { useProject, useTabs } from '#imports'
import MdiSettingIcon from '~icons/mdi/cog'
const { tables } = useProject()

4
packages/nc-gui-v2/components/dlg/TableCreate.vue

@ -1,8 +1,6 @@
<script setup lang="ts">
import { onMounted } from '@vue/runtime-core'
import useTableCreate from '../../composables/useTableCreate'
import useProject from '~/composables/useProject'
import useTabs from '~/composables/useTabs'
import { useProject, useTableCreate, useTabs } from '#imports'
import { validateTableName } from '~/utils/validation'
const { modelValue = false } = defineProps<{ modelValue?: boolean }>()

2
packages/nc-gui-v2/components/dlg/ViewCreate.vue

@ -3,7 +3,7 @@ import { inject } from '@vue/runtime-core'
import type { TableType } from 'nocodb-sdk'
import { ViewTypes } from 'nocodb-sdk'
import type { Ref } from '#imports'
import { ActiveViewInj, MetaInj, ViewListInj } from '~/components'
import { ActiveViewInj, MetaInj, ViewListInj } from '~/context'
import useViewCreate from '~/composables/useViewCreate'
const { modelValue, type } = defineProps<{ type: ViewTypes; modelValue: boolean }>()

2
packages/nc-gui-v2/components/smartsheet-header/Cell.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import type { ColumnType } from 'nocodb-sdk'
import { ColumnInj } from '../index'
import { ColumnInj } from '../../context'
const { column } = defineProps<{ column: ColumnType & { meta: any } }>()
provide(ColumnInj, column)

2
packages/nc-gui-v2/components/smartsheet-header/CellIcon.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import type { ColumnType } from 'nocodb-sdk'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
import useColumn from '~/composables/useColumn'
import KeyIcon from '~icons/mdi/key-variant'
import JSONIcon from '~icons/mdi/code-json'

2
packages/nc-gui-v2/components/smartsheet-header/VirtualCell.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import type { ColumnType } from 'nocodb-sdk'
import { ColumnInj } from '../index'
import { ColumnInj } from '../../context'
import { provide } from '#imports'
const { column } = defineProps<{ column: ColumnType & { meta: any } }>()

2
packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import { LinkToAnotherRecordType, RelationTypes, UITypes } from "nocodb-sdk";
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
import GenericIcon from '~icons/mdi/square-rounded'
import HMIcon from '~icons/mdi/table-arrow-right'
import BTIcon from '~icons/mdi/table-arrow-left'

2
packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilter.vue

@ -4,7 +4,7 @@ import FieldListAutoCompleteDropdown from './FieldListAutoCompleteDropdown.vue'
import { useNuxtApp } from '#app'
import { inject } from '#imports'
import { comparisonOpList } from '~/utils/filterUtils'
import { ActiveViewInj, MetaInj, ReloadViewDataHookInj } from '~/components'
import { ActiveViewInj, MetaInj, ReloadViewDataHookInj } from '~/context'
import useViewFilters from '~/composables/useViewFilters'
import MdiDeleteIcon from '~icons/mdi/close-box'

2
packages/nc-gui-v2/components/smartsheet-toolbar/ColumnFilterMenu.vue

@ -1,7 +1,7 @@
<script setup lang="ts">
// todo: move to persisted state
import { useState } from '#app'
import { IsLockedInj } from '~/components'
import { IsLockedInj } from '~/context'
import MdiFilterIcon from '~icons/mdi/filter-outline'
import MdiMenuDownIcon from '~icons/mdi/menu-down'

2
packages/nc-gui-v2/components/smartsheet-toolbar/FieldListAutoCompleteDropdown.vue

@ -1,5 +1,5 @@
<script setup lang="ts">
import { MetaInj } from '~/components'
import { MetaInj } from '~/context'
interface Props {
modelValue?: string

2
packages/nc-gui-v2/components/smartsheet-toolbar/FieldsMenu.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed, inject } from 'vue'
import { ActiveViewInj, FieldsInj, IsLockedInj, MetaInj, ReloadViewDataHookInj } from '~/components'
import { ActiveViewInj, FieldsInj, IsLockedInj, MetaInj, ReloadViewDataHookInj } from '~/context'
import useViewColumns from '~/composables/useViewColumns'
import MdiMenuDownIcon from '~icons/mdi/menu-down'
import MdiEyeIcon from '~icons/mdi/eye-off-outline'

2
packages/nc-gui-v2/components/smartsheet-toolbar/SortListMenu.vue

@ -1,7 +1,7 @@
<script setup lang="ts">
import FieldListAutoCompleteDropdown from './FieldListAutoCompleteDropdown.vue'
import { computed, inject } from '#imports'
import { ActiveViewInj, IsLockedInj, MetaInj, ReloadViewDataHookInj } from '~/components'
import { ActiveViewInj, IsLockedInj, MetaInj, ReloadViewDataHookInj } from '~/context'
import useViewSorts from '~/composables/useViewSorts'
import MdiMenuDownIcon from '~icons/mdi/menu-down'
import MdiSortIcon from '~icons/mdi/sort'

2
packages/nc-gui-v2/components/smartsheet/Cell.vue

@ -2,7 +2,7 @@
import type { ColumnType } from 'nocodb-sdk'
import { provide } from 'vue'
import { computed } from '#imports'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
import useColumn from '~/composables/useColumn'
interface Props {

2
packages/nc-gui-v2/components/smartsheet/Gallery.vue

@ -1,7 +1,7 @@
<script lang="ts" setup>
import { isVirtualCol } from 'nocodb-sdk'
import { inject, onKeyStroke, onMounted, provide } from '#imports'
import { ActiveViewInj, ChangePageInj, IsFormInj, IsGridInj, MetaInj, PaginationDataInj, ReadonlyInj } from '~/components'
import { ActiveViewInj, ChangePageInj, IsFormInj, IsGridInj, MetaInj, PaginationDataInj, ReadonlyInj } from '~/context'
import useViewData from '~/composables/useViewData'
const meta = inject(MetaInj)

2
packages/nc-gui-v2/components/smartsheet/Grid.vue

@ -11,7 +11,7 @@ import {
MetaInj,
PaginationDataInj,
ReloadViewDataHookInj,
} from '~/components'
} from '~/context'
import useViewData from '~/composables/useViewData'
const meta = inject(MetaInj)

2
packages/nc-gui-v2/components/smartsheet/Pagination.vue

@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed, inject } from 'vue'
import { ChangePageInj, PaginationDataInj } from '~/components'
import { ChangePageInj, PaginationDataInj } from '~/context'
import MdiKeyboardIcon from '~icons/mdi/keyboard-return'
const paginatedData = inject(PaginationDataInj)

2
packages/nc-gui-v2/components/smartsheet/Sidebar.vue

@ -3,7 +3,7 @@ import { ViewTypes } from 'nocodb-sdk'
import type { TableType } from 'nocodb-sdk'
import type { Ref } from 'vue'
import { inject, ref } from '#imports'
import { ActiveViewInj, MetaInj, ViewListInj } from '~/components'
import { ActiveViewInj, MetaInj, ViewListInj } from '~/context'
import useViews from '~/composables/useViews'
import { viewIcons } from '~/utils/viewUtils'
import MdiPlusIcon from '~icons/mdi/plus'

2
packages/nc-gui-v2/components/smartsheet/VirtualCell.vue

@ -1,7 +1,7 @@
<script setup lang="ts">
import type { ColumnType } from 'nocodb-sdk'
import { provide } from '#imports'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
import useVirtualCell from '~/composables/useVirtualCell'
interface Props {

2
packages/nc-gui-v2/components/tabs/Smartsheet.vue

@ -3,7 +3,7 @@ import { useEventBus } from '@vueuse/core'
import type { ColumnType, FormType, GalleryType, GridType, KanbanType } from 'nocodb-sdk'
import { ViewTypes } from 'nocodb-sdk'
import { computed, onMounted, provide, watch } from '#imports'
import { ActiveViewInj, FieldsInj, IsLockedInj, MetaInj, ReloadViewDataHookInj, TabMetaInj } from '~/components'
import { ActiveViewInj, FieldsInj, IsLockedInj, MetaInj, ReloadViewDataHookInj, TabMetaInj } from '~/context'
import useMetas from '~/composables/useMetas'
const { tabMeta } = defineProps({

2
packages/nc-gui-v2/components/virtual-cell/BelongsTo.vue

@ -1,7 +1,7 @@
<script setup lang="ts">
import type { ColumnType } from 'nocodb-sdk'
import ItemChip from './components/ItemChip.vue'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
import useBelongsTo from '~/composables/useBelongsTo'
const column = inject(ColumnInj)

5
packages/nc-gui-v2/components/virtual-cell/Formula.vue

@ -1,8 +1,9 @@
<script lang="ts" setup>
import { computed } from '#imports'
import { ColumnInj } from '~/components'
import { computed, useProject } from '#imports'
import { ColumnInj } from '~/context'
import { handleTZ } from '~/utils/dateTimeUtils'
import { replaceUrlsWithLink } from '~/utils/urlUtils'
const column = inject(ColumnInj)
const value = inject('value')

2
packages/nc-gui-v2/components/virtual-cell/HasMany.vue

@ -1,7 +1,7 @@
<script setup lang="ts">
import type { ColumnType } from 'nocodb-sdk'
import ItemChip from './components/ItemChip.vue'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
import useHasMany from '~/composables/useHasMany'
const column = inject(ColumnInj)
const value = inject('value')

2
packages/nc-gui-v2/components/virtual-cell/ManyToMany.vue

@ -1,7 +1,7 @@
<script setup lang="ts">
import type { ColumnType } from 'nocodb-sdk'
import ItemChip from './components/ItemChip.vue'
import { ColumnInj } from '~/components'
import { ColumnInj } from '~/context'
import useManyToMany from '~/composables/useManyToMany'
const column = inject(ColumnInj)
const value = inject('value')

2
packages/nc-gui-v2/components/virtual-cell/components/ItemChip.vue

@ -1,5 +1,5 @@
<script setup lang="ts">
import { ReadonlyInj } from '~/components'
import { ReadonlyInj } from '~/context'
import MdiCloseThickIcon from '~icons/mdi/close-thick'
interface Props {

2
packages/nc-gui-v2/composables/useColumn.ts

@ -1,6 +1,6 @@
import type { ColumnType } from 'nocodb-sdk'
import { SqlUiFactory, UITypes, isVirtualCol } from 'nocodb-sdk'
import useProject from '~/composables/useProject'
import { useProject } from '#imports'
export default (column: ColumnType) => {
const { project } = useProject()

2
packages/nc-gui-v2/composables/useMetas.ts

@ -1,6 +1,6 @@
import type { TableType } from 'nocodb-sdk'
import { useNuxtApp, useState } from '#app'
import useProject from '~/composables/useProject'
import { useProject } from '#imports'
export default () => {
const { $api } = useNuxtApp()

33
packages/nc-gui-v2/composables/useProject.ts

@ -1,17 +1,19 @@
import { SqlUiFactory } from 'nocodb-sdk'
import type { ProjectType, TableType } from 'nocodb-sdk'
import type { MaybeRef } from '@vueuse/core'
import { useNuxtApp, useState } from '#app'
import { USER_PROJECT_ROLES } from '~/lib/constants'
export default () => {
export default (projectId?: MaybeRef<string>) => {
const projectRoles = useState<Record<string, boolean>>(USER_PROJECT_ROLES, () => ({}))
const { $api } = useNuxtApp()
const _projectId = $computed(() => unref(projectId))
const project = useState<ProjectType>('project')
const tables = useState<TableType[]>('tables')
const tables = useState<TableType[]>('tables', () => [] as TableType[])
const loadProjectRoles = async () => {
async function loadProjectRoles() {
projectRoles.value = {}
if (project.value.id) {
@ -19,21 +21,30 @@ export default () => {
projectRoles.value = user.roles
}
}
const loadTables = async () => {
async function loadTables() {
if (project.value.id) {
const tablesResponse = await $api.dbTable.list(project.value.id)
if (tablesResponse.list) tables.value = tablesResponse.list
}
}
const loadProject = async (projectId: string) => {
project.value = await $api.project.read(projectId)
async function loadProject(id: string) {
project.value = await $api.project.read(id)
await loadProjectRoles()
}
const isMysql = computed(() => ['mysql', 'mysql2'].includes(project.value?.bases?.[0]?.type || ''))
const isPg = computed(() => project.value?.bases?.[0]?.type === 'pg')
const sqlUi = computed(() => SqlUiFactory.create({ client: project.value?.bases?.[0]?.type || '' }))
watchEffect(async () => {
if (_projectId) {
await loadProject(_projectId)
await loadTables()
}
})
const projectBaseType = $computed(() => project.value?.bases?.[0]?.type || '')
const isMysql = computed(() => ['mysql', 'mysql2'].includes(projectBaseType))
const isPg = computed(() => projectBaseType === 'pg')
const sqlUi = computed(() => SqlUiFactory.create({ client: projectBaseType }))
return { project, tables, loadProject, loadTables, isMysql, isPg, sqlUi }
return { project, tables, loadProjectRoles, loadProject, loadTables, isMysql, isPg, sqlUi }
}

1
packages/nc-gui-v2/composables/useTableCreate.ts

@ -1,6 +1,7 @@
import type { TableType } from 'nocodb-sdk'
import { UITypes } from 'nocodb-sdk'
import { useNuxtApp } from '#app'
import { useProject } from '#imports'
export default (onTableCreate?: (tableMeta: TableType) => void) => {
const table = reactive<{ title: string; table_name: string; columns: string[] }>({

2
packages/nc-gui-v2/composables/useViewData.ts

@ -1,7 +1,7 @@
import type { Api, FormType, GalleryType, GridType, PaginatedType, TableType } from 'nocodb-sdk'
import type { ComputedRef, Ref } from 'vue'
import { useNuxtApp } from '#app'
import useProject from '~/composables/useProject'
import { useProject } from '#imports'
import { NOCO } from '~/lib/constants'
const formatData = (list: Record<string, any>[]) =>

2
packages/nc-gui-v2/components/index.ts → packages/nc-gui-v2/context/index.ts

@ -1,7 +1,7 @@
import type { ColumnType, TableType, ViewType } from 'nocodb-sdk'
import type { InjectionKey, Ref } from 'vue'
import type { EventHook } from '@vueuse/core'
import type useViewData from '~/composables/useViewData'
import type { useViewData } from '#imports'
export const ColumnInj: InjectionKey<ColumnType & { meta: any }> = Symbol('column-injection')
export const MetaInj: InjectionKey<Ref<TableType>> = Symbol('meta-injection')

6
packages/nc-gui-v2/lang/da.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL Output.",
"addOption": "Tilføj option",
"aggregateFunction": "Aggregate Function.",
"database": "Database",
"dbCreateIfNotExists": "DATABASE: Opret, hvis ikke eksisterer",
"clientKey": "Klientnøgle",
"clientCert": "Klient cert.",
@ -412,7 +413,7 @@
"deleteProject": "Ønsker du at slette projektet?",
"shareBasePrivate": "Generer offentligt delbart readonly base",
"shareBasePublic": "Enhver på internettet med dette link kan se",
"userInviteNoSMTP": "Ser ud som om du ikke har konfigureret mailer endnu!\nKopier venligst ovenstående invitation link og send det til",
"userInviteNoSMTP": "Ser ud som om du ikke har konfigureret mailer endnu! Kopier venligst ovenstående invitation link og send det til",
"dragDropHide": "Træk og slip felter her for at skjule",
"formInput": "Indtast formularindgangsmærke",
"formHelpText": "Tilføj nogle hjælpetekst",
@ -496,7 +497,8 @@
"emailReqd": "E-mail er påkrævet",
"emailInvalid": "E-mail skal være gyldig",
"passwdRequired": "adgangskode er påkrævet",
"passwdLength": "Din adgangskode skal være mindst 8 tegn"
"passwdLength": "Din adgangskode skal være mindst 8 tegn",
"passwdMismatch": "Kodeordene er ikke ens"
}
},
"toast": {

6
packages/nc-gui-v2/lang/de.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL-Ausgabe",
"addOption": "Option hinzufügen",
"aggregateFunction": "Globale Funktion",
"database": "Datenbank",
"dbCreateIfNotExists": "Datenbank: Erstellen, falls nicht vorhanden",
"clientKey": "Client-Schlüssel",
"clientCert": "Client Cert",
@ -412,7 +413,7 @@
"deleteProject": "Möchten Sie das Projekt löschen?",
"shareBasePrivate": "Öffentlich freigegebene Nur-Lese-Datenbank generieren",
"shareBasePublic": "Für Jeden im Internet mit diesem Link sichtbar",
"userInviteNoSMTP": "Es sieht so aus, als hätten Sie den Mailer noch nicht konfiguriert! \\ n Bitte kopieren Sie den obigen Einladungs-Link und senden Sie ihn an",
"userInviteNoSMTP": "Es sieht so aus, als hätten Sie den Mailer noch nicht konfiguriert! Bitte kopieren Sie den obigen Einladungs-Link und senden Sie ihn an",
"dragDropHide": "Ziehen Sie die Felder hierher, um sie zu verstecken",
"formInput": "Formularbezeichnung eingeben",
"formHelpText": "Einen Hilfs-Text hinzufügen",
@ -496,7 +497,8 @@
"emailReqd": "E-Mail ist erforderlich",
"emailInvalid": "Email muß gültig sein",
"passwdRequired": "Passwort ist erforderlich",
"passwdLength": "Ihr Passwort muß mindestens 8 Zeichen haben"
"passwdLength": "Ihr Passwort muß mindestens 8 Zeichen haben",
"passwdMismatch": "Passwörter stimmen nicht überein"
}
},
"toast": {

5
packages/nc-gui-v2/lang/en.json

@ -413,7 +413,7 @@
"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!\nPlease copy above invite link and send it to",
"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",
@ -497,7 +497,8 @@
"emailReqd": "E-mail is required",
"emailInvalid": "E-mail must be valid",
"passwdRequired": "Password is required",
"passwdLength": "You password must be atleast 8 characters"
"passwdLength": "You password must be atleast 8 characters",
"passwdMismatch": "Passwords do not match"
}
},
"toast": {

8
packages/nc-gui-v2/lang/es.json

@ -12,7 +12,7 @@
"add": "Agregar",
"edit": "Editar",
"remove": "Eliminar",
"save": "Guardar",
"save": "Salvar",
"cancel": "Cancelar",
"submit": "Enviar",
"create": "Crear",
@ -213,6 +213,7 @@
"sqlOutput": "Salida SQL",
"addOption": "Añadir opción",
"aggregateFunction": "Función agregada",
"database": "Base de datos",
"dbCreateIfNotExists": "Base de datos : Crear si no existe",
"clientKey": "Clave de Cliente",
"clientCert": "Certificado de Cliente",
@ -412,7 +413,7 @@
"deleteProject": "¿Quieres eliminar el proyecto?",
"shareBasePrivate": "Generar una base de sólo lectura compartible públicamente",
"shareBasePublic": "Cualquier persona en Internet con este enlace puede ver",
"userInviteNoSMTP": "¡Parece que aún no has configurado Mailer!\nPor favor, copia el link de invitación de arriba y envíalo a",
"userInviteNoSMTP": "¡Parece que aún no has configurado Mailer! Por favor, copia el link de invitación de arriba y envíalo a",
"dragDropHide": "Arrastra y suelta los campos a ocultar aquí",
"formInput": "Ingrese la etiqueta de entrada del formulario",
"formHelpText": "Añade algo de texto de ayuda",
@ -496,7 +497,8 @@
"emailReqd": "E-mail requerido",
"emailInvalid": "E-mail debe ser correcto",
"passwdRequired": "Contraseña requerida",
"passwdLength": "Tu contraseña debe tener al menos 8 carácteres"
"passwdLength": "Tu contraseña debe tener al menos 8 carácteres",
"passwdMismatch": "Las contraseñas no coinciden"
}
},
"toast": {

4
packages/nc-gui-v2/lang/fa.json

@ -213,6 +213,7 @@
"sqlOutput": "خروجی SQL",
"addOption": "افزودن گزینه",
"aggregateFunction": "تابع جمع",
"database": "بخش پایگاه داده",
"dbCreateIfNotExists": "پایگاه داده: ایجاد در صورت عدم وجود",
"clientKey": "کلید Client",
"clientCert": "گواهینامه Client",
@ -496,7 +497,8 @@
"emailReqd": "پست الکترونیکی مورد نیاز است",
"emailInvalid": "پست الکترونیکی باید معتبر باشد",
"passwdRequired": "کلمه عبور مورد نیاز است",
"passwdLength": "کلمه عبور شما باید حداقل 8 کاراکتر داشته باشد"
"passwdLength": "کلمه عبور شما باید حداقل 8 کاراکتر داشته باشد",
"passwdMismatch": "رمزهای ورود مطابقت ندارند"
}
},
"toast": {

6
packages/nc-gui-v2/lang/fi.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL-lähtö",
"addOption": "Lisää vaihtoehto",
"aggregateFunction": "Kokonaistoiminto",
"database": "Tietokanta",
"dbCreateIfNotExists": "Tietokanta: Luo jos ei ole olemassa",
"clientKey": "Asiakasnäppäin",
"clientCert": "Asiakassuhde",
@ -412,7 +413,7 @@
"deleteProject": "Haluatko poistaa projektin?",
"shareBasePrivate": "Luo julkisesti jakattava Readonly Base",
"shareBasePublic": "Jokainen Internetissä tällä linkillä voi tarkastella",
"userInviteNoSMTP": "Näyttää siltä, ettet ole määrittänyt sähköpostia!\nKopioi yllä kutsun linkki ja lähetä se",
"userInviteNoSMTP": "Näyttää siltä, ettet ole määrittänyt sähköpostia! Kopioi yllä kutsun linkki ja lähetä se",
"dragDropHide": "Vedä ja pudota kentät täällä piiloutumaan",
"formInput": "Anna lomakkeen syöttömerkki",
"formHelpText": "Lisää joitain ohjeita",
@ -496,7 +497,8 @@
"emailReqd": "Sähköposti vaaditaan",
"emailInvalid": "Sähköpostin on oltava voimassa",
"passwdRequired": "salasana tarvitaan",
"passwdLength": "Salasanan on oltava vähintään 8 merkkiä"
"passwdLength": "Salasanan on oltava vähintään 8 merkkiä",
"passwdMismatch": "Salasanat eivät täsmää"
}
},
"toast": {

120
packages/nc-gui-v2/lang/fr.json

@ -6,7 +6,7 @@
"close": "Fermer",
"yes": "Oui",
"no": "Non",
"ok": "d'accord",
"ok": "D'accord",
"and": "Et",
"or": "Ou",
"add": "Ajouter",
@ -67,8 +67,8 @@
"columns": "Colonnes",
"page": "Page",
"pages": "Pages",
"record": "Entrée",
"records": "Entrées",
"record": "Ligne",
"records": "Lignes",
"webhook": "Webhook",
"webhooks": "Webhooks",
"view": "Vue",
@ -89,7 +89,7 @@
"creator": "Créateur",
"editor": "Éditeur",
"commenter": "Commentateur",
"viewer": "Spectateur"
"viewer": "Lecture seule"
}
},
"datatype": {
@ -104,44 +104,44 @@
"Collaborator": "Collaborateur",
"Date": "Date",
"Year": "Année",
"Time": "Temps",
"Time": "Heure",
"PhoneNumber": "Numéro de téléphone",
"Email": "Couriel",
"URL": "Lien URL",
"Email": "Courriel",
"URL": "URL",
"Number": "Nombre",
"Decimal": "Décimal",
"Currency": "Devise",
"Percent": "Pour cent",
"Percent": "Pourcentage",
"Duration": "Durée",
"Rating": "Évaluation",
"Formula": "Formule",
"Rollup": "Synthèse",
"Count": "Compteur",
"Lookup": "Chercher",
"DateTime": "Heure",
"Lookup": "Lookup",
"DateTime": "Date et heure",
"CreateTime": "Date de création",
"LastModifiedTime": "Dernière modification",
"AutoNumber": "Numérotation automatique",
"Barcode": "Code barre",
"Barcode": "Code-barres",
"Button": "Bouton",
"Password": "Mot de passe",
"relationProperties": {
"noAction": "Pas d'action",
"cascade": "Chevauchement",
"restrict": "Limité",
"cascade": "Cascade",
"restrict": "Limiter",
"setNull": "Laisser vide",
"setDefault": "Définir par defaut"
"setDefault": "Définir comme défaut"
}
},
"filterOperation": {
"isEqual": "est égale",
"isNotEqual": "n'est pas égale",
"isLike": "est comme",
"isNot like": "N'est pas comme",
"isLike": "contient",
"isNot like": "ne contient pas",
"isEmpty": "est vide",
"isNotEmpty": "n'est pas vide",
"isNull": "est null",
"isNotNull": "est non nulle"
"isNotNull": "est non null"
},
"title": {
"newProj": "Nouveau projet",
@ -152,7 +152,7 @@
"personalView": "Vue personnelle",
"appStore": "Magasin d'applications",
"teamAndAuth": "Équipe & Authentification",
"rolesUserMgmt": "Rôles & Gestion utilisateurs",
"rolesUserMgmt": "Gestion des utilisateurs & rôles",
"userMgmt": "Gestion des utilisateurs",
"apiTokenMgmt": "Gestion des jetons API",
"rolesMgmt": "Gestion des rôles",
@ -170,9 +170,9 @@
"headCreateProject": "Créer un projet | Nocodb",
"headLogin": "Connexion | Nocodb",
"resetPassword": "Réinitialiser le mot de passe",
"teamAndSettings": "Team & Settings",
"teamAndSettings": "Équipe & paramètres",
"apiDocs": "API Docs",
"importFromAirtable": "Import From Airtable"
"importFromAirtable": "Importer depuis Airtable"
},
"labels": {
"notifyVia": "Notifier via",
@ -192,7 +192,7 @@
"port": "Numéro de port",
"username": "Utilisateur",
"password": "Mot de passe",
"schemaName": "Schema name",
"schemaName": "Nom du schéma",
"action": "Action",
"actions": "Actions",
"operation": "Opération",
@ -213,9 +213,10 @@
"sqlOutput": "Sortie SQL",
"addOption": "Ajouter une option",
"aggregateFunction": "Fonction agrégée",
"database": "Base de données",
"dbCreateIfNotExists": "Base de données : la créer si elle n'existe pas",
"clientKey": "Clé client",
"clientCert": "Certificat Client",
"clientCert": "Certificat client",
"serverCA": "Serveur d'authentification",
"requriedCa": "Authentification requise",
"requriedIdentity": "Identité requise",
@ -234,7 +235,7 @@
"followNocodb": "Suivre NocoDB"
},
"docReference": "Référence de document",
"selectUserRole": "Sélectionnez le rôle d'utilisateur",
"selectUserRole": "Sélectionner le rôle d'utilisateur",
"childTable": "Table enfant",
"childColumn": "Colonne enfant",
"onUpdate": "Mise à jour en cours",
@ -265,7 +266,7 @@
"translate": "Aider à la traduction",
"account": {
"authToken": "Copier le jeton d'authentification",
"swagger": "APIS SWAGGER DOC",
"swagger": "Doc Swagger de l'API",
"projInfo": "Copier les informations du projet",
"themes": "Thèmes"
},
@ -286,14 +287,14 @@
"newUser": "Nouvel utilisateur",
"editUser": "Modifier l'utilisateur",
"deleteUser": "Supprimer l'utilisateur du projet",
"resendInvite": "Renvoyer une invitation par e-mail",
"resendInvite": "Renvoyer une invitation par courriel",
"copyInviteURL": "Copier l'URL d'invitation",
"newRole": "Nouveau rôle",
"reloadRoles": "Actualiser les rôles",
"nextPage": "Page suivante",
"prevPage": "Page précédente",
"nextRecord": "Prochain enregistrement",
"previousRecord": "Précédent enregistrement",
"nextRecord": "Ligne suivante",
"previousRecord": "Ligne précédente",
"copyApiURL": "Copier l'URL de l'API",
"createTable": "Créer un tableau",
"refreshTable": "Actualiser le tableau",
@ -332,16 +333,16 @@
"copyUrl": "Copier le lien",
"openTab": "Ouvrir nouvel onglet",
"iFrame": "Copier le code HTML intégré",
"addWebhook": "Ajout de webhook",
"newToken": "Ajout de nouveau jeton",
"addWebhook": "Ajout un webhook",
"newToken": "Ajout un nouveau jeton",
"exportZip": "Exporter un zip",
"importZip": "Importer un zip",
"metaSync": "Synchroniser maintenant",
"settings": "Paramètres",
"previewAs": "Aperçu",
"resetReview": "Réinitiliser l'aperçu",
"resetReview": "Réinitialiser l'aperçu",
"testDbConn": "Tester la connexion à la base de données",
"removeDbFromEnv": "Supprimer la base de données de l'environement",
"removeDbFromEnv": "Supprimer la base de données de l'environnement",
"editConnJson": "Éditer le JSON de connexion",
"sponsorUs": "Nous Parrainer",
"sendEmail": "ENVOYER UN EMAIL"
@ -367,7 +368,7 @@
"sqlMigration": "Recharger des migrations",
"updateRestart": "Mettre à jour et redémarrer",
"cancelReturn": "Annuler et revenir en arrière",
"exportMetadata": "Exportez toutes les métadonnées des méta-tables vers le répertoire Meta.",
"exportMetadata": "Exporter toutes les métadonnées des méta-tables vers le répertoire Meta.",
"importMetadata": "Importer toutes les métadonnées du répertoire Meta en méta-tables.",
"clearMetadata": "Effacer toutes les métadonnées des méta-tables.",
"clientKey": "Selectionner un fichier .key",
@ -377,7 +378,7 @@
"placeholder": {
"projName": "Saisir le nom du projet",
"password": {
"enter": "Saisie le mot de passe",
"enter": "Saisir le mot de passe",
"current": "Mot de passe actuel",
"new": "Nouveau mot de passe",
"save": "Enregistrer le mot de passe",
@ -395,13 +396,13 @@
"msg": {
"info": {
"footerInfo": "Lignes par page",
"upload": "Sélectionnez un fichier à téléverser",
"upload": "Sélectionner un fichier à téléverser",
"upload_sub": "ou glisser-déposer un fichier",
"excelSupport": "Pris en charge: .xls, .xlsx, .xlsm, .ods, .ots",
"excelURL": "Entrez l'URL du fichier Excel",
"csvURL": "Enter CSV file URL",
"excelURL": "Définir l'URL du fichier Excel",
"csvURL": "Définir l'URL du CSV",
"footMsg": "Nombre de lignes à analyser pour déduire le type de données",
"excelImport": "Les feuilles sont disponibles pour l'importation",
"excelImport": "Les tableaux sont disponibles pour l'import",
"exportMetadata": "Voulez-vous exporter des métadonnées des méta-tables?",
"importMetadata": "Voulez-vous importer des métadonnées des méta-tables?",
"clearMetadata": "Voulez-vous effacer les métadonnées des méta-tables?",
@ -412,12 +413,12 @@
"deleteProject": "Voulez-vous supprimer le projet ?",
"shareBasePrivate": "Générer une base partagée en lecture seule",
"shareBasePublic": "Toute personne avec ce lien peut consulter",
"userInviteNoSMTP": "On dirait que vous n'avez pas encore configuré Mailer!\nMerci de copier-coller le lien d'invitation ci-dessous et l'envoyer à",
"dragDropHide": "Glisser et déposer des champs ici pour masquer",
"formInput": "Entrer le libelé du formulaire",
"formHelpText": "Ajouter du texte d'assitance",
"userInviteNoSMTP": "On dirait que vous n'avez pas encore configuré Mailer!\\nMerci de copier-coller le lien d'invitation ci-dessous et l'envoyer à",
"dragDropHide": "Glisser et déposer des champs ici pour les masquer",
"formInput": "Entrer le libellé du formulaire",
"formHelpText": "Ajouter un texte d'aide",
"onlyCreator": "Visible uniquement pour les créateurs",
"formDesc": "Ajouter un formulaire de description",
"formDesc": "Ajouter une description du formulaire",
"beforeEnablePwd": "Restreindre l’accès à l’aide d’un mot de passe",
"afterEnablePwd": "L’accès est restreint par un mot de passe",
"privateLink": "Cette vue est partagée avec un lien privé",
@ -437,20 +438,20 @@
"personalView": "Seulement vous pouvez modifier la configuration de la vue. Les autres vues personnelles des collaborateurs sont cachées par défaut.",
"ownerDesc": "Peut ajouter / supprimer des créateurs. Et éditer des structures de base de données complètes et des champs.",
"creatorDesc": "Peut éditer complètement la structure de la base de données et les valeurs.",
"editorDesc": "Peut éditer des enregistrements mais ne peut pas modifier la structure de la base de données / des champs.",
"editorDesc": "Peut éditer des lignes mais ne peut pas modifier la structure de la base de données / des champs.",
"commenterDesc": "Peut voir et commenter les archives mais ne peut rien éditer",
"viewerDesc": "Peut voir les enregistrements mais ne peut rien éditer",
"viewerDesc": "Peut voir les données mais ne peut rien éditer",
"addUser": "Ajouter un nouvel utilisateur",
"staticRoleInfo": "Les rôles définis du système ne peuvent pas être modifiés",
"staticRoleInfo": "Les rôles définis sur le système ne peuvent pas être modifiés",
"exportZip": "Exporter le meta projet dans un fichier Zip et le télécharger.",
"importZip": "Importer le fichier ZIP du meta projet et redémarrer.",
"importText": "Importer un projet NocoDB à partir d'un fichier ZIP de métadonnées",
"metaNoChange": "Aucun changement identifié",
"sqlMigration": "Les migrations de schéma seront créées automatiquement. Créez une table et rafraîchissez cette page.",
"dbConnectionStatus": "Environnement validé",
"dbConnected": "Connexion réussi",
"dbConnected": "Connexion réussie",
"notifications": {
"no_new": "Pas de nouvelles notifications",
"no_new": "Pas de nouvelle notification",
"clear": "Effacer"
},
"sponsor": {
@ -459,14 +460,14 @@
},
"loginMsg": "Se connecter à NocoDB",
"passwordRecovery": {
"message_1": "Veuillez fournir l'adresse e-mail que vous avez utilisée lorsque vous vous êtes inscrit.",
"message_2": "Nous vous enverrons un email avec un lien pour réinitialiser votre mot de passe.",
"message_1": "Veuillez fournir l'adresse mail que vous avez utilisée lorsque vous vous êtes inscrit.",
"message_2": "Nous vous enverrons un courriel avec un lien pour réinitialiser votre mot de passe.",
"success": "Veuillez vérifier votre email pour réinitialiser le mot de passe"
},
"signUp": {
"superAdmin": "Vous serez le 'super admin'",
"alreadyHaveAccount": "Avez-vous déjà un compte ?",
"workEmail": "Saisir votre adresse email professionnel",
"workEmail": "Saisir votre adresse mail professionnelle",
"enterPassword": "Saisir votre mot de passe",
"forgotPassword": "Mot de passe oublié ?",
"dontHaveAccount": "Vous n'avez pas de compte ?"
@ -479,13 +480,13 @@
"calendar": "Ajouter une vue Calendrier"
},
"tablesMetadataInSync": "Les métadonnées de tables sont en synchronisation",
"addMultipleUsers": "Vous pouvez ajouter plusieurs courriels séparés de virgule (,)",
"enterTableName": "Entrez le nom de la table",
"addMultipleUsers": "Vous pouvez ajouter plusieurs courriels séparés par des virgules (,)",
"enterTableName": "Entrer le nom de la table",
"addDefaultColumns": "Ajouter des colonnes par défaut",
"tableNameInDb": "Nom de la table comme enregistré dans la base de données"
"tableNameInDb": "Nom de la table tel qu'enregistré dans la base de données"
},
"error": {
"searchProject": "Votre recherche pour {search} n'a renvoyée aucun résultat",
"searchProject": "Votre recherche pour {search} n'a renvoyé aucun résultat",
"invalidChar": "Caractère invalide dans le chemin du dossier.",
"invalidDbCredentials": "Identifiants de base de données invalides.",
"unableToConnectToDb": "Connexion impossible à la base de données, merci de vérifier que la base de données est démarrée et accessible.",
@ -496,13 +497,14 @@
"emailReqd": "Adresse mail requise",
"emailInvalid": "L'adresse mail doit être valide",
"passwdRequired": "Mot de passe requis",
"passwdLength": "Votre mot de passe doit contenir au moins 8 caractères"
"passwdLength": "Votre mot de passe doit contenir au moins 8 caractères",
"passwdMismatch": "Les mots de passe ne correspondent pas"
}
},
"toast": {
"exportMetadata": "Les métadonnées de projet sont exportée avec succès",
"importMetadata": "Les métadonnées du projet sont importée avec succès",
"clearMetadata": "Les métadonnées du projet sont effacée avec succès",
"exportMetadata": "Les métadonnées de projet sont exportées avec succès",
"importMetadata": "Les métadonnées du projet sont importées avec succès",
"clearMetadata": "Les métadonnées du projet sont effacées avec succès",
"stopProject": "Projet arrêté avec succès",
"startProject": "Projet démarré avec succès",
"restartProject": "Projet redémarré avec succès",
@ -510,7 +512,7 @@
"authToken": "Auth Token copié dans le presse-papier",
"projInfo": "Informations de projet copiées dans le presse-papier",
"inviteUrlCopy": "URL d'invitation copiée dans le presse-papier",
"createView": "Vue créé avec succès",
"createView": "Vue créée avec succès",
"formEmailSMTP": "Veuillez activer le plugin SMTP dans l'App Store pour permettre la notification par courrier électronique",
"collabView": "Vous êtes bien dans la vue collaborative",
"lockedView": "Vous êtes bien dans la vue vérouillée",

6
packages/nc-gui-v2/lang/hr.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL izlaz",
"addOption": "Dodajte opciju",
"aggregateFunction": "Agregatna funkcija",
"database": "Baza podataka",
"dbCreateIfNotExists": "Baza podataka: stvoriti ako ne postoji",
"clientKey": "Ključ klijenta",
"clientCert": "Klijent cert",
@ -412,7 +413,7 @@
"deleteProject": "Želite li izbrisati projekt?",
"shareBasePrivate": "Generirajte javno zajedničko upravljanje",
"shareBasePublic": "Svatko na internetu s ovom linkom može vidjeti",
"userInviteNoSMTP": "Izgleda da još niste konfigurirali mailer! n Molimo kopirajte iznad poziva veze i pošaljite ga na",
"userInviteNoSMTP": "Izgleda da još niste konfigurirali mailer! Molimo kopirajte iznad poziva veze i pošaljite ga na",
"dragDropHide": "Povucite i ispustite polja za skrivanje",
"formInput": "Unesite oznaku ulazne obrasce",
"formHelpText": "Dodajte neki tekst pomoći",
@ -496,7 +497,8 @@
"emailReqd": "Potrebna je e-pošta",
"emailInvalid": "E-pošta mora biti valjana",
"passwdRequired": "potrebna je lozinka",
"passwdLength": "Vi lozinka mora biti najmanje 8 znakova"
"passwdLength": "Vi lozinka mora biti najmanje 8 znakova",
"passwdMismatch": "Lozinke se ne podudaraju"
}
},
"toast": {

6
packages/nc-gui-v2/lang/id.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL Output",
"addOption": "Tambahkan opsi",
"aggregateFunction": "Fungsi agregat.",
"database": "Basis Data",
"dbCreateIfNotExists": "Basis Data: Buat jika tidak ada",
"clientKey": "Kunci klien",
"clientCert": "Sertifikat klien",
@ -412,7 +413,7 @@
"deleteProject": "Apakah Anda ingin menghapus proyek?",
"shareBasePrivate": "Menghasilkan basis readonly yang dapat dibagikan secara publik",
"shareBasePublic": "Siapa pun di Internet dengan tautan ini dapat dilihat",
"userInviteNoSMTP": "Sepertinya Anda belum mengonfigurasi mailer!\nHarap salin tautan undangan di atas dan kirimkan ke",
"userInviteNoSMTP": "Sepertinya Anda belum mengonfigurasi mailer! Harap salin tautan undangan di atas dan kirimkan ke",
"dragDropHide": "Seret dan jatuhkan bidang di sini untuk bersembunyi",
"formInput": "Masukkan label input formulir",
"formHelpText": "Tambahkan beberapa teks bantuan",
@ -496,7 +497,8 @@
"emailReqd": "E-mail diperlukan",
"emailInvalid": "E-mail harus valid",
"passwdRequired": "katakunci dibutuhkan",
"passwdLength": "Kata sandi Anda harus minimal 8 karakter"
"passwdLength": "Kata sandi Anda harus minimal 8 karakter",
"passwdMismatch": "Sandi tidak cocok"
}
},
"toast": {

6
packages/nc-gui-v2/lang/it_IT.json

@ -213,6 +213,7 @@
"sqlOutput": "Output SQL",
"addOption": "Aggiungi opzione",
"aggregateFunction": "Aggrega funzione",
"database": "Database",
"dbCreateIfNotExists": "Database: crea se non esiste",
"clientKey": "Chiave client",
"clientCert": "Certificato client",
@ -412,7 +413,7 @@
"deleteProject": "Vuoi cancellare il progetto?",
"shareBasePrivate": "Genera base readonly condivisibile pubblicamente",
"shareBasePublic": "Chiunque su Internet con questo link può visualizzare",
"userInviteNoSMTP": "Sembra che non abbia ancora configurato il mailer! \\n Manda il link d'invito sopra a",
"userInviteNoSMTP": "Sembra che non abbia ancora configurato il mailer! Manda il link d'invito sopra a",
"dragDropHide": "Rilascia qui i campi da nascondere",
"formInput": "Inserisci l'etichetta di input del modulo",
"formHelpText": "Aggiungi testo di aiuto",
@ -496,7 +497,8 @@
"emailReqd": "L'e-mail è richiesta",
"emailInvalid": "L'email deve essere valida",
"passwdRequired": "È richiesta la password",
"passwdLength": "La tua password deve essere di almeno 8 caratteri"
"passwdLength": "La tua password deve essere di almeno 8 caratteri",
"passwdMismatch": "le passwords non corrispondono"
}
},
"toast": {

24
packages/nc-gui-v2/lang/iw.json

@ -151,7 +151,7 @@
"lockedView": "תצוגה נעולה",
"personalView": "תצוגה אישית",
"appStore": "חנות אפליקציות",
"teamAndAuth": "צוות & auth.",
"teamAndAuth": "Team & Auth",
"rolesUserMgmt": "תפקידים & ניהול משתמשים",
"userMgmt": "ניהול משתמשים",
"apiTokenMgmt": "API Tokens Management",
@ -162,14 +162,14 @@
"exportImportMeta": "Export/ Import Metadata",
"uiACL": "בקרת גישה לממשק UI.",
"metaOperations": "פעולות מטא נתונים",
"audit": "בְּדִיקָה",
"auditLogs": "יומן ביקורת",
"sqlMigrations": "SQL הגבלות",
"dbCredentials": "אישורי מסד נתונים",
"advancedParameters": "SSL & פרמטרים מתקדמים",
"headCreateProject": "יצירת פרויקט נוקודב",
"headLogin": "התחבר | נוקודב",
"resetPassword": "לאפס את הסיסמה שלך",
"audit": "Audit",
"auditLogs": "Audit Log",
"sqlMigrations": "SQL Migrations",
"dbCredentials": "Database Credentials",
"advancedParameters": "SSL & Advanced parameters",
"headCreateProject": "יצירת פרויקט",
"headLogin": "התחבר",
"resetPassword": "איפוס סיסמא",
"teamAndSettings": "Team & Settings",
"apiDocs": "API Docs",
"importFromAirtable": "Import From Airtable"
@ -213,6 +213,7 @@
"sqlOutput": "פלט SQL",
"addOption": "הוסף אפשרות",
"aggregateFunction": "פונקציה מצטברת",
"database": "מאגר מידע",
"dbCreateIfNotExists": "מסד נתונים: צור אם לא קיים",
"clientKey": "מפתח הלקוח",
"clientCert": "Client Cert.",
@ -412,7 +413,7 @@
"deleteProject": "האם ברצונך למחוק את הפרויקט?",
"shareBasePrivate": "ליצור בסיס שיתוף פעולה לציבור",
"shareBasePublic": "כל אחד באינטרנט עם קישור זה יכול להציג",
"userInviteNoSMTP": "נראה כאילו לא הגדרת מיילר עדיין!\nאנא העתק מעל הזמנת קישור ולשלוח אותו",
"userInviteNoSMTP": "נראה כאילו לא הגדרת מיילר עדיין! \\ N אנא העתק מעל הזמנת קישור ולשלוח אותו",
"dragDropHide": "גרור ושחרר שדות כאן כדי להסתיר",
"formInput": "הזן תווית קלט טופס",
"formHelpText": "הוסף טקסט עזרה",
@ -496,7 +497,8 @@
"emailReqd": "דואר אלקטרוני נדרש",
"emailInvalid": "דואר אלקטרוני חייב להיות תקף",
"passwdRequired": "דרושה סיסמא",
"passwdLength": "הסיסמה שלך חייבת להיות atleast 8 תווים"
"passwdLength": "הסיסמה שלך חייבת להיות atleast 8 תווים",
"passwdMismatch": "סיסמאות לא תואמות"
}
},
"toast": {

4
packages/nc-gui-v2/lang/ja.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL出力",
"addOption": "オプションを追加",
"aggregateFunction": "集約関数",
"database": "データベース",
"dbCreateIfNotExists": "データベース:存在しない場合は作成",
"clientKey": "クライアントキー",
"clientCert": "クライアント証明書",
@ -496,7 +497,8 @@
"emailReqd": "メールアドレスが必要です",
"emailInvalid": "有効なメールアドレスを入力してください",
"passwdRequired": "パスワードが必要です",
"passwdLength": "パスワードは8文字以上にしてください"
"passwdLength": "パスワードは8文字以上にしてください",
"passwdMismatch": "パスワードが一致していません"
}
},
"toast": {

444
packages/nc-gui-v2/lang/ko.json

@ -1,84 +1,84 @@
{
"general": {
"home": "",
"load": "",
"open": "열려있는",
"close": "닫",
"home": "",
"load": "불러오기",
"open": "열",
"close": "닫",
"yes": "네",
"no": "아니요",
"ok": "확인",
"and": "그리고",
"or": "또는",
"add": "추가하다",
"edit": "편집하다",
"remove": "제거하다",
"save": "구하다",
"add": "추가",
"edit": "편집",
"remove": "제거",
"save": "저장",
"cancel": "취소",
"submit": "제출하다",
"submit": "제출",
"create": "생성",
"insert": "끼워 넣다",
"insert": "삽입",
"delete": "삭제",
"update": "업데이트",
"rename": "이름 바꾸기",
"reload": "재 장전",
"reload": "다시 불러오기",
"reset": "초기화",
"install": "설치",
"show": "보여 주다",
"hide": "숨",
"show": "표시",
"hide": "숨기기",
"showAll": "모두 표시",
"hideAll": "모두 숨기기",
"showMore": "자세히보기",
"showOptions": " 옵션",
"showMore": "자세히 보기",
"showOptions": "보기 옵션",
"hideOptions": "옵션 숨기기",
"showMenu": "메뉴 표시",
"hideMenu": "메뉴 숨기기",
"addAll": "모두 추가하십시오",
"addAll": "모두 추가",
"removeAll": "모두 제거",
"signUp": "가입하기",
"signIn": "로그인",
"signOut": "로그 아웃하십시오",
"signOut": "로그아웃",
"required": "필수의",
"preferred": "우선의",
"mandatory": "필수적인",
"loading": "...에 적재 ...",
"loading": "불러오는 중 ...",
"title": "제목",
"upload": "업로드",
"download": "... 다운로드하기",
"download": "다운로드",
"default": "기본",
"more": "",
"more": "기타",
"less": "더 적은",
"event": "이벤트",
"condition": "상태",
"after": "후에",
"before": "전에",
"search": "검색",
"notification": "공고",
"notification": "알림",
"reference": "참조",
"function": "함수"
"function": "기능"
},
"objects": {
"project": "프로젝트",
"projects": "프로젝트",
"table": "테이블",
"tables": "테이블",
"field": "",
"field": "필드",
"fields": "필드",
"column": "열",
"columns": "열",
"page": "페이지",
"pages": "페이지",
"record": "기록",
"records": "기록",
"webhook": "웹후의",
"webhooks": "WebHooks.",
"view": "보다",
"views": "보기",
"record": "레코드",
"records": "레코드",
"webhook": "웹",
"webhooks": "웹훅",
"view": "",
"views": "",
"viewType": {
"grid": "그리드",
"gallery": "갤러리",
"form": "양식",
"kanban": "Kanban",
"calendar": "달력"
"form": "",
"kanban": "칸반",
"calendar": "캘린더"
},
"user": "사용자",
"users": "사용자",
@ -86,7 +86,7 @@
"roles": "역할",
"roleType": {
"owner": "소유자",
"creator": "창조자",
"creator": "생성자",
"editor": "편집자",
"commenter": "해설자",
"viewer": "뷰어"
@ -94,14 +94,14 @@
},
"datatype": {
"ID": "ID",
"ForeignKey": "외 키",
"SingleLineText": "단일 줄 텍스트",
"ForeignKey": "외 키",
"SingleLineText": " 줄 텍스트",
"LongText": "긴 텍스트",
"Attachment": "부",
"Attachment": "부",
"Checkbox": "체크 박스",
"MultiSelect": "다중 선택",
"SingleSelect": "단일 선택",
"Collaborator": "협력자",
"Collaborator": "동료",
"Date": "날짜",
"Year": "년도",
"Time": "시간",
@ -112,44 +112,44 @@
"Decimal": "소수",
"Currency": "통화",
"Percent": "퍼센트",
"Duration": "지속",
"Rating": "평가",
"Duration": "기간",
"Rating": "등급",
"Formula": "공식",
"Rollup": "롤업",
"Count": "세다",
"Count": "카운트",
"Lookup": "조회",
"DateTime": "날짜 시간",
"CreateTime": "시간을 만드십시오",
"LastModifiedTime": "마지막 수정 된 시간",
"AutoNumber": "자동 번호",
"DateTime": "일시",
"CreateTime": "생성시간",
"LastModifiedTime": "최종수정시간",
"AutoNumber": "자동번호",
"Barcode": "바코드",
"Button": "단추",
"Button": "버튼",
"Password": "비밀번호",
"relationProperties": {
"noAction": "조치 없음",
"cascade": "종속",
"restrict": "얽매다",
"setNull": "null.",
"setDefault": "기본값으로 설정"
"noAction": "조치없음",
"cascade": "캐스케이드",
"restrict": "제한",
"setNull": "null 설정",
"setDefault": "기본값 설정"
}
},
"filterOperation": {
"isEqual": "~는 같다",
"isNotEqual": "같지 않다",
"isLike": "처럼",
"isNot like": "아닙니다",
"isEmpty": "비었다",
"isNotEmpty": "비어 있지 않습니다",
"isNull": "null입니다",
"isNotNull": "null이 아닙니다"
"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": {
"newProj": "새 프로젝트",
"myProject": "내 프로젝트",
"formTitle": "양식 제목",
"collabView": "협업보기",
"lockedView": "잠긴보기",
"personalView": "개인적인 견해",
"collabView": "공동작업 뷰",
"lockedView": "\b잠긴 뷰",
"personalView": "개인",
"appStore": "앱 스토어",
"teamAndAuth": "팀 및 인증",
"rolesUserMgmt": "역할 및 사용자 관리",
@ -159,32 +159,32 @@
"projMeta": "프로젝트 메타 데이터",
"metaMgmt": "메타 관리",
"metadata": "메타 데이터",
"exportImportMeta": "내보내기 / 가져 오기 메타 데이터",
"exportImportMeta": "메타 데이터 내보내기/가져오기 ",
"uiACL": "UI 액세스 제어",
"metaOperations": "메타 데이터 작업",
"audit": "사",
"audit": "사",
"auditLogs": "감사 로그",
"sqlMigrations": "SQL 마이그레이션",
"dbCredentials": "데이터베이스 자격 증명",
"advancedParameters": "SSL 및 고급 매개 변수",
"headCreateProject": "프로젝트 만들기 | nocodb.",
"headLogin": "로그인 | NocoDB.",
"resetPassword": "비밀번호 재설정",
"teamAndSettings": "Team & Settings",
"apiDocs": "API Docs",
"importFromAirtable": "Import From Airtable"
"headCreateProject": "프로젝트 만들기 | nocoDB",
"headLogin": "로그인 | NocoDB",
"resetPassword": "비밀번호 재설정",
"teamAndSettings": "팀 & 설정",
"apiDocs": "API 문서",
"importFromAirtable": "Airtable에서 불러오기"
},
"labels": {
"notifyVia": "통지를 통지합니다",
"notifyVia": "공지",
"projName": "프로젝트 이름",
"tableName": " 이름",
"viewName": "이름을 봅니다",
"viewLink": "링크보기",
"tableName": "테이블 이름",
"viewName": "이름 보기",
"viewLink": "링크 보기",
"columnName": "열 이름",
"columnType": "열 유형",
"roleName": "역할 이름",
"roleDescription": "역할 설명",
"databaseType": "데이터베이스 입력하십시오",
"databaseType": "데이터베이스 입력",
"lengthValue": "길이 / 값",
"dbType": "데이터베이스 유형",
"sqliteFile": "SQLite 파일",
@ -192,57 +192,58 @@
"port": "포트 번호",
"username": "사용자 이름",
"password": "비밀번호",
"schemaName": "Schema name",
"schemaName": "스키마 이름",
"action": "동작",
"actions": "행위",
"operation": "작업",
"operationType": "작 유형",
"operationSubType": "작 하위 유형",
"operationType": "작 유형",
"operationSubType": "작 하위 유형",
"description": "설명",
"authentication": "증",
"authentication": "증",
"token": "토큰",
"where": "어디에",
"cache": "은닉처",
"where": "위치",
"cache": "캐시",
"chat": "채팅",
"email": "이메일",
"storage": "저장",
"storage": "스토리지",
"uiAcl": "UI-ACL",
"models": "모델",
"syncState": "동기화 상태",
"created": "만들어진",
"created": "생성",
"sqlOutput": "SQL 출력",
"addOption": "옵션 추가",
"aggregateFunction": "집계 기능",
"aggregateFunction": "집합 함수",
"database": "데이터 베이스",
"dbCreateIfNotExists": "데이터베이스 : 존재하지 않는 경우 생성",
"clientKey": "클라이언트 키",
"clientCert": "클라이언트 Cert.",
"serverCA": "서버 CA.",
"requriedCa": "필수 -CA",
"serverCA": "서버 CA",
"requriedCa": "필수 CA",
"requriedIdentity": "필수 - IDENTITY",
"inflection": {
"tableName": "편집 - 표 이름",
"columnName": "편집 - 열 이름"
},
"community": {
"starUs1": "",
"starUs2": "우리는 github에 있습니다",
"bookDemo": "무료 데모 예약하십시오",
"getAnswered": "귀하의 질문에 답변 해주십시오",
"starUs1": "",
"starUs2": "Github",
"bookDemo": "무료 데모 예약",
"getAnswered": "디스코드",
"joinDiscord": "디스코드 참가",
"joinCommunity": "Join NocoDB Community",
"joinReddit": "가입 /r/NocoDB",
"followNocodb": "NocoDB 팔로우 하세요"
"joinCommunity": "NocoDB 커뮤니티 참가",
"joinReddit": "Join /r/NocoDB",
"followNocodb": "NocoDB 팔로우"
},
"docReference": "문서 참조",
"selectUserRole": "사용자 역할을 선택하십시오",
"childTable": "하위 테이블",
"childColumn": "아이 칼럼",
"onUpdate": "업데이트시",
"onDelete": "삭제"
"docReference": "참조 문서",
"selectUserRole": "사용자 역할을 선택하세요",
"childTable": "자식 테이블",
"childColumn": "자식 컬럼",
"onUpdate": "업데이트 ",
"onDelete": "삭제"
},
"activity": {
"createProject": "프로젝트 생성",
"importProject": "프로젝트 가져 오기",
"importProject": "프로젝트 가져오기",
"searchProject": "프로젝트 검색",
"editProject": "프로젝트 편집",
"stopProject": "프로젝트 중지",
@ -250,46 +251,46 @@
"restartProject": "프로젝트 재시작",
"deleteProject": "프로젝트 삭제",
"refreshProject": "프로젝트 새로 고침",
"saveProject": "프로젝트를 저장하다",
"saveProject": "저장",
"createProjectExtended": {
"extDB": "외부 데이터베이스에 <br>을 연결하여 작성하십시오",
"excel": "Excel에서 프로젝트 만들기",
"template": "템플릿에서 프로젝트를 만듭니다"
"extDB": "외부 데이터베이스 연결",
"excel": "엑셀에서 프로젝트 만들기",
"template": "템플릿에서 프로젝트 만들기"
},
"OkSaveProject": "OK 및 저장 프로젝트",
"OkSaveProject": "확인 및 프로젝트 저장",
"upgrade": {
"available": "업그레이드 가능",
"releaseNote": "릴리즈 노트",
"howTo": "업그레이드 방법?"
"howTo": "어떻게 업그레이드 하나요?"
},
"translate": "도움말 번역",
"account": {
"authToken": "인증 토큰 복사하십시오",
"authToken": "인증 토큰 복사",
"swagger": "Swagger API Doc.",
"projInfo": "프로젝트 정보 복사하십시오",
"projInfo": "프로젝트 정보 복사",
"themes": "테마"
},
"sort": "종류",
"addSort": "정렬 옵션 추가하십시오",
"addSort": "정렬 옵션 추가",
"filter": "필터",
"addFilter": "필터 추가하십시오",
"share": "공유하다",
"addFilter": "필터 추가",
"share": "공유",
"shareBase": {
"disable": "공유베이스 비활성화합니다",
"enable": "링크가있는 사람",
"link": "공유 기본 링크"
"disable": "공유 베이스 비활성화",
"enable": "링크가 있는 모든 사용자",
"link": "공유 링크"
},
"invite": "초대",
"inviteMore": "더 많은 것을 초대하십시오",
"inviteTeam": "팀 초대하십시오",
"inviteToken": "토큰을 초대하십시오",
"newUser": "새로운 사용자",
"inviteMore": "더 많은 사람 초대",
"inviteTeam": "팀 초대",
"inviteToken": "초대 토큰",
"newUser": "사용자 추가",
"editUser": "사용자 편집",
"deleteUser": "사용자를 프로젝트에서 제거하십시오",
"resendInvite": "초대 이메일을 다시 보내십시오",
"copyInviteURL": "초대 URL 복사",
"deleteUser": "사용자 제거",
"resendInvite": "초대 이메일 재전송",
"copyInviteURL": "초대 URL 복사",
"newRole": "새로운 역할",
"reloadRoles": "다시로드 역할",
"reloadRoles": "역할 다시 불러오기",
"nextPage": "다음 페이지",
"prevPage": "이전 페이지",
"nextRecord": "다음 기록",
@ -299,16 +300,16 @@
"refreshTable": "테이블 새로 고침",
"renameTable": "테이블 이름 바꾸기",
"deleteTable": "테이블 삭제",
"addField": "이 표에 새 필드를 추가하십시오",
"setPrimary": "기본값으로 설정하십시오",
"addRow": " 추가하십시오",
"saveRow": "행 저장하십시오",
"insertRow": " 삽입하십시오",
"addField": "테이블에 새 필드 추가",
"setPrimary": "Primary value로 설정",
"addRow": "행 추가",
"saveRow": "행 저장",
"insertRow": "행 삽입",
"deleteRow": "행 삭제",
"deleteSelectedRow": "선택한 행 삭제합니다",
"importExcel": "수입 Excel",
"importCSV": "Import CSV",
"downloadCSV": "CSV 다운로드하십시오",
"deleteSelectedRow": "선택한 행 삭제",
"importExcel": "엑셀 가져오기",
"importCSV": "CSV 가져오기",
"downloadCSV": "CSV 다운로드",
"uploadCSV": "CSV 업로드",
"import": "가져오기",
"importMetadata": "메타 데이터 가져오기",
@ -316,24 +317,24 @@
"clearMetadata": "메타 데이터 지우기",
"exportToFile": "파일로 내보내기",
"changePwd": "암호 변경",
"createView": "보기 생성",
"shareView": "보기 공유",
"listSharedView": "공유보기 목록",
"ListView": "보기 목록",
"copyView": "보기 복사",
"renameView": "보기 이름 변경",
"deleteView": "보기 삭제",
"createGrid": "그리드보기를 만듭니다",
"createGallery": "갤러리보기 만들기",
"createCalendar": "캘린더보기를 만듭니다",
"createKanban": "Kanban보기를 만드십시오",
"createForm": "양식보기를 만듭니다",
"createView": " 생성",
"shareView": " 공유",
"listSharedView": "공유 목록",
"ListView": " 목록",
"copyView": " 복사",
"renameView": " 이름 변경",
"deleteView": " 삭제",
"createGrid": "그리드 뷰 생성",
"createGallery": "갤러리 뷰 생성",
"createCalendar": "캘린더 뷰 생성",
"createKanban": "칸반 뷰 생성",
"createForm": "폼 뷰 생성",
"showSystemFields": "시스템 필드 표시",
"copyUrl": "URL 복사",
"openTab": "새 탭을 엽니 다",
"iFrame": "복사 Embeddable HTML 코드를 복사하십시오",
"addWebhook": "새로운 웹 호크를 추가하십시오",
"newToken": "새 토큰 추가하십시오",
"copyUrl": "URL 복사",
"openTab": "새 탭 열기",
"iFrame": "임베드 가능한 HTML 코드 복사",
"addWebhook": "새 웹훅 추가",
"newToken": "새 토큰 추가",
"exportZip": "zip 파일 내보내기",
"importZip": "zip 파일 가져오기",
"metaSync": "지금 동기화",
@ -341,32 +342,32 @@
"previewAs": "미리보기",
"resetReview": "미리보기 재설정",
"testDbConn": "데이터베이스 연결 테스트",
"removeDbFromEnv": "환경에서 데이터베이스 제거하십시오",
"editConnJson": "연결 편집 JSON.",
"sponsorUs": "우리를 후원하십시오",
"removeDbFromEnv": "환경에서 데이터베이스 제거",
"editConnJson": "연결 JSON 편집",
"sponsorUs": "후원",
"sendEmail": "이메일 보내기"
},
"tooltip": {
"saveChanges": "변경 사항 저장하다",
"xcDB": "새 프로젝트를 만듭니다",
"extDB": "MySQL, PostgreSQL, SQL Server 및 SQLite 지원합니다",
"saveChanges": "변경 사항 저장",
"xcDB": "새 프로젝트 생성",
"extDB": "MySQL, PostgreSQL, SQL Server 및 SQLite 지원",
"apiRest": "REST API를 통해 액세스 가능",
"apiGQL": "Graphql Apis를 통해 액세스 가능",
"theme": {
"dark": "그것은 검은 색으로옵니다 (^ ⇧b)",
"light": "검은 색으로 들어 오는가? (^ ⇧b)"
"dark": "현재 다크 테마입니다(^ ⇧b)",
"light": "다크 테마로 바꿀까요?(^ ⇧b)"
},
"addTable": "새 테이블 추가하십시오",
"inviteMore": "더 많은 사용자 초대하십시오",
"toggleNavDraw": "네비게이션 서랍을 토글합니다",
"reloadApiToken": "API 토큰을 다시로드하십시오",
"addTable": "새 테이블 추가",
"inviteMore": "더 많은 사용자 초대",
"toggleNavDraw": "네비게이션 바 토글",
"reloadApiToken": "API 토큰 다시 불러오기",
"generateNewApiToken": "새 API 토큰 생성",
"addRole": "새로운 역할 추가하십시오",
"reloadList": "Reload List.",
"addRole": "새로운 역할 추가",
"reloadList": "목록 다시 불러오기",
"metaSync": "동기화 메타 데이터",
"sqlMigration": "다시로드 이전",
"sqlMigration": "마이그레이션 다시 불러오기",
"updateRestart": "업데이트 및 다시 시작",
"cancelReturn": "취소 및 되돌리기",
"cancelReturn": "취소",
"exportMetadata": "메타 테이블에서 메타 디렉토리로 모든 메타 데이터를 내보냅니다.",
"importMetadata": "모든 메타 데이터를 메타 디렉토리에서 메타 테이블로 가져옵니다.",
"clearMetadata": "메타 테이블에서 모든 메타 데이터를 지우십시오.",
@ -383,19 +384,19 @@
"save": "비밀번호 저장",
"confirm": "새 암호를 확인합니다"
},
"searchProjectTree": "검색 테이블",
"searchFields": "검색 필드",
"searchColumn": "검색 {검색} 컬럼",
"searchApps": "검색 앱 검색",
"searchModels": "검색 모델",
"searchProjectTree": "테이블 검색",
"searchFields": "필드 검색",
"searchColumn": "{검색} 컬럼 검색",
"searchApps": "앱 검색",
"searchModels": "모델 검색",
"noItemsFound": "제품을 찾지 못했습니다",
"defaultValue": "기본값",
"filterByEmail": "전자 메일로 필터링합니다"
"filterByEmail": "전자 메일로 필터링"
},
"msg": {
"info": {
"footerInfo": "페이지 당 행",
"upload": "업로드 할 파일 선택하십시오",
"upload": "업로드 할 파일 선택",
"upload_sub": "또는 끌어서 놓기 파일",
"excelSupport": "지원 : .xls, .xlsx, .xlsm, .ods, .ots",
"excelURL": "Excel 파일 URL을 입력하십시오",
@ -412,40 +413,40 @@
"deleteProject": "프로젝트를 삭제 하시겠습니까?",
"shareBasePrivate": "공개적으로 공유 할 수있는 ReadOnly Base를 생성합니다",
"shareBasePublic": "이 링크가있는 인터넷의 모든 사람은 볼 수 있습니다",
"userInviteNoSMTP": "아직 메일러를 구성하지 않은 것처럼 보입니다!\n초대장 링크를 복사하여 보냅니다.",
"userInviteNoSMTP": "아직 메일러를 구성하지 않은 것처럼 보입니다! 초대장 링크를 복사하여 보냅니다.",
"dragDropHide": "여기에서 필드를 드래그 앤 드롭하십시오",
"formInput": "양식 입력 레이블 입력하십시오",
"formHelpText": "도움말 텍스트 추가하십시오",
"onlyCreator": "작성자에게만 표시됩니다",
"formInput": "양식 입력 레이블 입력",
"formHelpText": "도움말 텍스트 추가",
"onlyCreator": "작성자에게만 표시",
"formDesc": "양식 설명 추가",
"beforeEnablePwd": "비밀번호로 액세스 제한",
"afterEnablePwd": "엑세스 비밀번호 제한되어 있습니다.",
"privateLink": "현재 보기가 비공개 링크를 통해 공유됩니다.",
"afterEnablePwd": "엑세스 비밀번호 제한",
"privateLink": "비공개 링크로 현재 뷰 공유",
"privateLinkAdditionalInfo": "비공개 링크가 있는 사용자는 현재 보기에서 표시되는 셀만 볼 수 있습니다.",
"afterFormSubmitted": "양식이 제출 된 후",
"apiOptions": "프로젝트 via에 액세스하십시오",
"submitAnotherForm": "'다른 양식 제출'버튼을 보여줍니다",
"showBlankForm": "5 초 후에 빈 양식을 보여줍니다",
"emailForm": "나에게 이메일을 보내주십시오",
"emailForm": "이메일로 공유",
"showSysFields": "시스템 필드 표시",
"filterAutoApply": "자동 적용",
"showMessage": "이 메시지를 표시하십시오",
"viewNotShared": "현재보기가 공유되지 않습니다!",
"showAllViews": "이 표의 모든 공유보기를 보여줍니다",
"collabView": "편집 권한 이상이있는 공동 작업자는 뷰 구성을 변경할 수 있습니다.",
"lockedView": "아무도 잠금 해제 될 때까지 뷰 구성을 편집 할 수 없습니다.",
"personalView": "보기 구성을 편집 할 수 있습니다. 다른 공동 작업자의 개인 뷰는 기본적으로 숨겨져 있습니다.",
"showMessage": "아래 메시지 표시",
"viewNotShared": "현재가 공유되지 않습니다!",
"showAllViews": "테이블의 공유된 모든 뷰 표시",
"collabView": "편집 권한 이상의 권한을 보유한 공동 작업자는 뷰 구성을 변경할 수 있습니다.",
"lockedView": "아무도 잠금 해제 될 때까지 뷰 구성을 편집할 수 없습니다.",
"personalView": "뷰 구성을 편집할 수 있습니다. 다른 공동 작업자의 개인 뷰는 기본적으로 표시되지 않습니다. ",
"ownerDesc": "크리에이터를 추가 / 제거 할 수 있습니다. 및 전체 편집 데이터베이스 구조 및 필드.",
"creatorDesc": "데이터베이스 구조 및 값을 완전히 편집 할 수 있습니다.",
"editorDesc": "레코드를 편집 할 수 있지만 데이터베이스 / 필드의 구조를 변경할 수 없습니다.",
"commenterDesc": "레코드를보고 댓글을 줄 수는 있지만 아무 것도 편집 할 수 없습니다.",
"editorDesc": "레코드를 편집할 수 있지만 데이터베이스 / 필드의 구조를 변경할 수 없습니다.",
"commenterDesc": "레코드를 보고 댓글을 추가할 수 있지만 아무 것도 편집 할 수 없습니다.",
"viewerDesc": "레코드를 볼 수 있지만 아무 것도 편집 할 수 없습니다",
"addUser": "새 사용자 추가",
"staticRoleInfo": "시스템 정의 역할을 편집 할 수 없습니다",
"staticRoleInfo": "시스템 정의 역할을 편집할 수 없습니다",
"exportZip": "프로젝트 메타를 zip 파일로 내보내고 다운로드하십시오.",
"importZip": "프로젝트 메타 zip 파일을 가져와서 다시 시작하십시오.",
"importText": "메타 데이터 zip 파일을 업로드하여 NocoDB 프로젝트를 가져옵니다",
"metaNoChange": "변경되지 않습니다",
"metaNoChange": "변경된 사항이 없습니다. ",
"sqlMigration": "스키마 마이그레이션이 자동으로 생성됩니다. 테이블을 만들고이 페이지를 새로 고칩니다.",
"dbConnectionStatus": "환경 검증",
"dbConnected": "연결 되었습니다.",
@ -455,66 +456,67 @@
},
"sponsor": {
"header": "당신은 우리를 도울 수 있습니다!",
"message": "우리는 nocodb 오픈 소스를 만들기 위해 풀 타임으로 일하는 작은 팀입니다. 우리는 NocodB와 같은 도구가 인터넷의 모든 문제 해결사에게 자유롭게 사용할 수 있어야합니다."
"message": "우리는 nocodb 오픈 소스를 만들기 위해 구성된 소규모 팀입니다. 우리는 NocodB와 같은 도구가 인터넷의 다양한 문제를 해결하는 데 자유롭게 사용할 수 있어야 한다고 믿습니다. "
},
"loginMsg": "NocoDB 로그인하십시오",
"loginMsg": "NocoDB 로그인",
"passwordRecovery": {
"message_1": "가입 할 때 사용한 이메일 주소를 입력하십시오.",
"message_1": "가입할 때 사용한 이메일 주소를 입력하십시오.",
"message_2": "이메일을 통해 비밀번호를 재설정할 링크를 보내드리겠습니다.",
"success": "이메일을 확인하여 암호를 재설정하십시오"
},
"signUp": {
"superAdmin": "당신은 'Super Admin'가 될 것입니다.",
"alreadyHaveAccount": "이미 계정이 있습니까?",
"workEmail": "작업 이메일을 입력하십시오",
"workEmail": "이메일을 입력하십시오",
"enterPassword": "비밀번호를 입력하십시오",
"forgotPassword": "비밀번호를 잊어 버렸습니까 ?",
"dontHaveAccount": "계정이 없습니까?"
},
"addView": {
"grid": "그리드 보기를 추가하십시오",
"gallery": "갤러리 보기를 추가하십시오",
"form": "양식 보기를 추가하십시오",
"kanban": "Kanban 보기를 추가하십시오",
"calendar": "달력 보기를 추가하십시오"
"grid": "그리드 뷰 추가",
"gallery": "갤러리 뷰 추가",
"form": "폼 뷰 추가",
"kanban": "칸반 뷰 추가",
"calendar": "캘린더 뷰 추가"
},
"tablesMetadataInSync": "테이블 메타 데이터가 동기화되어 있습니다",
"addMultipleUsers": "여러 쉼표 (,) 분리 된 이메일을 추가 할 수 있습니다.",
"addMultipleUsers": "쉼표로 분리된 이메일을 여러 개 추가할 수 있습니다.",
"enterTableName": "테이블 이름을 입력하십시오",
"addDefaultColumns": "기본 열 추가하십시오",
"addDefaultColumns": "기본 열 추가",
"tableNameInDb": "테이블 이름은 데이터베이스에 저장된 것입니다"
},
"error": {
"searchProject": "{검색} 검색 결과가 없습니다",
"searchProject": "검색 결과가 없습니다",
"invalidChar": "잘못된 폴더 경로입니다.",
"invalidDbCredentials": "데이터베이스 자격 증명 오류.",
"unableToConnectToDb": "데이터베이스에 연결할 수 없습니다. 데이터베이스 작동을 확인하십시오.",
"userDoesntHaveSufficientPermission": "사용자가 존재하지 않거나 schema를 만들 수있는 충분한 권한이 있습니다.",
"invalidDbCredentials": "데이터베이스 자격 증명 오류",
"unableToConnectToDb": "데이터베이스에 연결할 수 없습니다. 데이터베이스 상태를 확인하십시오.",
"userDoesntHaveSufficientPermission": "사용자가 존재하지 않거나 스키마를 만들 수있는 충분한 권한이 있습니다.",
"dbConnectionStatus": "잘못된 데이터베이스 매개 변수",
"dbConnectionFailed": "연결 실패 :",
"signUpRules": {
"emailReqd": "이메일이 필요합니다",
"emailInvalid": "이메일이 유효해야합니다",
"passwdRequired": "비밀번호가 필요합니다",
"passwdLength": "비밀번호는 8자 이상이어야 합니다."
"emailReqd": "이메일이 필요합니다.",
"emailInvalid": "이메일이 유효해야합니다.",
"passwdRequired": "비밀번호가 필요합니다.",
"passwdLength": "비밀번호는 8자 이상이어야 합니다.",
"passwdMismatch": "비밀번호가 일치하지 않습니다"
}
},
"toast": {
"exportMetadata": "프로젝트 메타 데이터가 성공적으로 내 보냈습니다",
"importMetadata": "프로젝트 메타 데이터가 성공적으로 가져온 것입니다",
"clearMetadata": "프로젝트 메타 데이터가 성공적으로 지워졌습니다",
"stopProject": "프로젝트가 성공적으로 중지되었습니다",
"startProject": "프로젝트가 성공적으로 시작되었습니다",
"restartProject": "프로젝트가 성공적으로 다시 시작되었습니다",
"deleteProject": "프로젝트가 성공적으로 삭제되었습니다",
"authToken": "인증 토큰이 클립 보드에 복사되었습니다",
"projInfo": "클립 보드에 복사 된 프로젝트 정보",
"inviteUrlCopy": "복사 된 초대 URL 클립 보드에",
"createView": "성공적으로 생성 된보기",
"formEmailSMTP": "전자 메일 알림을 사용하려면 App Store에서 SMTP 플러그인을 활성화하십시오.",
"collabView": "공동 작업로 성공적으로 전환했습니다",
"lockedView": "잠긴보기로 성공적으로 전환되었습니다",
"futureRelease": "곧 올 것입니다!"
"exportMetadata": "프로젝트 메타 데이터를 성공적으로 내보냈습니다.",
"importMetadata": "프로젝트 메타 데이터를 성공적으로 가져왔습니다.",
"clearMetadata": "프로젝트 메타 데이터를 성공적으로 지웠습니다.",
"stopProject": "프로젝트가 성공적으로 중지되었습니다.",
"startProject": "프로젝트가 성공적으로 시작되었습니다.",
"restartProject": "프로젝트가 성공적으로 다시 시작되었습니다.",
"deleteProject": "프로젝트가 성공적으로 삭제되었습니다.",
"authToken": "인증 토큰이 클립보드에 복사되었습니다.",
"projInfo": "프로젝트 정보가 클립보드에 복사되었습니다. ",
"inviteUrlCopy": "초대 URL 클립보드에 복사되었습니다. ",
"createView": "뷰가 성공적으로 생성되었습니다. ",
"formEmailSMTP": "메일 알림을 사용하려면 App Store에서 SMTP 플러그인을 활성화 하십시오.",
"collabView": "공동 작업로 성공적으로 전환했습니다",
"lockedView": "잠긴로 성공적으로 전환되었습니다",
"futureRelease": "Coming soon!"
}
}
}

6
packages/nc-gui-v2/lang/lv.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL izvade",
"addOption": "Pievienot iespēju",
"aggregateFunction": "Agregācijas funkcija",
"database": "Datubāze",
"dbCreateIfNotExists": "Datubāze : izveidotm ja neeksistē",
"clientKey": "Klienta atslēga",
"clientCert": "Klienta sertifikāts",
@ -412,7 +413,7 @@
"deleteProject": "Vai tu vēlies dzēst projektu?",
"shareBasePrivate": "Izveidot koplietojamu saiti",
"shareBasePublic": "Jebkurš ar šo saiti varēs skatīt",
"userInviteNoSMTP": "E-pasta nosūtītājs vēl nav konfigurēts! \\n Lūdzu kopējiet uzaicinājuma saiti augstāk un nosūtiet to",
"userInviteNoSMTP": "E-pasta nosūtītājs vēl nav konfigurēts! Lūdzu kopējiet uzaicinājuma saiti augstāk un nosūtiet to",
"dragDropHide": "Vilkt un nomest laukus šeit lai noņemtu",
"formInput": "Ievadiet formas ievades lauka birku",
"formHelpText": "Pievienot norādījumus",
@ -496,7 +497,8 @@
"emailReqd": "E-pasts ir obligāts",
"emailInvalid": "E-pastam ir jābūt korektam",
"passwdRequired": "Parole ir obligāta",
"passwdLength": "Parolei jābūt vismaz 8 simboli"
"passwdLength": "Parolei jābūt vismaz 8 simboli",
"passwdMismatch": "Paroles nesakrīt"
}
},
"toast": {

6
packages/nc-gui-v2/lang/nl.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL Uitvoer",
"addOption": "Optie toevoegen",
"aggregateFunction": "Geaggregeerde functie",
"database": "Database",
"dbCreateIfNotExists": "Database: creëer als het niet bestaat",
"clientKey": "Client Key",
"clientCert": "Client Cert",
@ -412,7 +413,7 @@
"deleteProject": "Wilt u het project verwijderen?",
"shareBasePrivate": "Genereer openbaar deelbare alleen-lezen database",
"shareBasePublic": "Iedereen op het internet met deze link kan bekijken",
"userInviteNoSMTP": "Het lijkt erop dat je nog geen mailer hebt geconfigureerd! \\n Kopieer de bovenstaande uitnodigingslink en verstuur deze zelf naar de ontvanger",
"userInviteNoSMTP": "Het lijkt erop dat je nog geen mailer hebt geconfigureerd! Kopieer de bovenstaande uitnodigingslink en verstuur deze zelf naar de ontvanger",
"dragDropHide": "Versleep de velden naar hier om ze te verbergen",
"formInput": "Voer formulier invoerlabel in",
"formHelpText": "Voeg wat hulptekst toe",
@ -496,7 +497,8 @@
"emailReqd": "E-mail is vereist",
"emailInvalid": "E-mail moet geldig zijn",
"passwdRequired": "Wachtwoord is verplicht",
"passwdLength": "Je wachtwoord moet ten minste 8 tekens hebben"
"passwdLength": "Je wachtwoord moet ten minste 8 tekens hebben",
"passwdMismatch": "Wachtwoorden komen niet overeen"
}
},
"toast": {

6
packages/nc-gui-v2/lang/no.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL-utgang",
"addOption": "Legg til alternativ",
"aggregateFunction": "Samlet funksjon",
"database": "Database",
"dbCreateIfNotExists": "Database: Opprett hvis ikke eksisterer",
"clientKey": "Klientnøkkel",
"clientCert": "Klientsertifikat",
@ -412,7 +413,7 @@
"deleteProject": "Ønsker du å slette prosjektet?",
"shareBasePrivate": "Generer offentlig delbar readonly base",
"shareBasePublic": "Alle på Internett med denne lenken kan se",
"userInviteNoSMTP": "Ser ut som om du ikke har konfigurert mailer ennå!\nVennligst kopier over Inviter Link og send den til",
"userInviteNoSMTP": "Ser ut som om du ikke har konfigurert mailer ennå! Vennligst kopier over Inviter Link og send den til",
"dragDropHide": "Dra og slipp felt her for å skjule",
"formInput": "Skriv inn skjema inngangsetikett",
"formHelpText": "Legg til litt hjelpetekst",
@ -496,7 +497,8 @@
"emailReqd": "E-post er nødvendig",
"emailInvalid": "E-post må være gyldig",
"passwdRequired": "Passord er påkrevd",
"passwdLength": "Ditt passord må være minst 8 tegn"
"passwdLength": "Ditt passord må være minst 8 tegn",
"passwdMismatch": "passordene er ikke like"
}
},
"toast": {

6
packages/nc-gui-v2/lang/pl.json

@ -213,6 +213,7 @@
"sqlOutput": "Wyjście SQL.",
"addOption": "Dodaj opcję.",
"aggregateFunction": "Funkcja kruszywa",
"database": "Baza danych",
"dbCreateIfNotExists": "Baza danych: Utwórz, jeśli nie istnieje",
"clientKey": "Klucz klienta",
"clientCert": "Cert Client.",
@ -412,7 +413,7 @@
"deleteProject": "Czy chcesz usunąć projekt?",
"shareBasePrivate": "Wygeneruj publicznie do readonly bazy",
"shareBasePublic": "Każdy w Internecie z tym linkiem może przeglądać",
"userInviteNoSMTP": "Wygląda na to, że nie skonfigurowałeś jeszcze mailera! n Proszę skopiować powyżej zaproś link i wyślij go",
"userInviteNoSMTP": "Wygląda na to, że nie skonfigurowałeś jeszcze mailera! Proszę skopiować powyżej zaproś link i wyślij go",
"dragDropHide": "Przeciągnij i upuść pola tutaj, aby się ukryć",
"formInput": "Wprowadź etykietę wejściową formularza",
"formHelpText": "Dodaj trochę pomocy",
@ -496,7 +497,8 @@
"emailReqd": "Email jest wymagany",
"emailInvalid": "Adres email musi być poprawny",
"passwdRequired": "Wymagane jest hasło",
"passwdLength": "Użytkownik musi być co najmniej 8 znaków"
"passwdLength": "Użytkownik musi być co najmniej 8 znaków",
"passwdMismatch": "Hasła nie pasują do siebie"
}
},
"toast": {

6
packages/nc-gui-v2/lang/pt.json

@ -213,6 +213,7 @@
"sqlOutput": "Saída SQL.",
"addOption": "Adicionar opção",
"aggregateFunction": "Função agregada",
"database": "Base de dados",
"dbCreateIfNotExists": "Base de Dados : criar se não existir",
"clientKey": "Chave do Cliente",
"clientCert": "Certificado do Cliente",
@ -412,7 +413,7 @@
"deleteProject": "Você quer excluir o projeto?",
"shareBasePrivate": "Gerar base readonly compartilhável publicamente",
"shareBasePublic": "Qualquer pessoa na internet com este link pode ver",
"userInviteNoSMTP": "Parece que você ainda não configurou o mailer!\npor favor copie o link acima do convite e envie-o para",
"userInviteNoSMTP": "Parece que você ainda não configurou o mailer! por favor copie o link acima do convite e envie-o para",
"dragDropHide": "Arraste e solte os campos aqui para se esconder",
"formInput": "Digite a etiqueta de entrada do formulário",
"formHelpText": "Adicione um texto de ajuda",
@ -496,7 +497,8 @@
"emailReqd": "O Email é obrigatório",
"emailInvalid": "O Email deve ser válido",
"passwdRequired": "A Palavra-passe é obrigatória",
"passwdLength": "A sua palavra-passe deve conter pelo menos 8 caracteres"
"passwdLength": "A sua palavra-passe deve conter pelo menos 8 caracteres",
"passwdMismatch": "As senhas não coincidem"
}
},
"toast": {

6
packages/nc-gui-v2/lang/pt_BR.json

@ -213,6 +213,7 @@
"sqlOutput": "Saída SQL.",
"addOption": "Adicionar opção",
"aggregateFunction": "Função agregada",
"database": "Base de dados",
"dbCreateIfNotExists": "Base de Dados : criar se não existir",
"clientKey": "Chave do Cliente",
"clientCert": "Certificado do Cliente",
@ -412,7 +413,7 @@
"deleteProject": "Você quer excluir o projeto?",
"shareBasePrivate": "Gerar base readonly compartilhável publicamente",
"shareBasePublic": "Qualquer pessoa na internet com este link pode ver",
"userInviteNoSMTP": "Parece que você ainda não configurou o mailer!\npor favor copie o link acima do convite e envie-o para",
"userInviteNoSMTP": "Parece que você ainda não configurou o mailer! por favor copie o link acima do convite e envie-o para",
"dragDropHide": "Arraste e solte os campos aqui para se esconder",
"formInput": "Digite a etiqueta de entrada do formulário",
"formHelpText": "Adicione um texto de ajuda",
@ -496,7 +497,8 @@
"emailReqd": "O Email é obrigatório",
"emailInvalid": "O Email deve ser válido",
"passwdRequired": "A Palavra-passe é obrigatória",
"passwdLength": "A sua palavra-passe deve conter pelo menos 8 caracteres"
"passwdLength": "A sua palavra-passe deve conter pelo menos 8 caracteres",
"passwdMismatch": "As senhas não coincidem"
}
},
"toast": {

5
packages/nc-gui-v2/lang/ru.json

@ -213,6 +213,7 @@
"sqlOutput": "Вывод SQL",
"addOption": "Добавить настройку",
"aggregateFunction": "Агрегатная функция",
"database": "База данных",
"dbCreateIfNotExists": "База данных: создать, если не существует",
"clientKey": "Ключ клиента",
"clientCert": "Сертификат клиента",
@ -229,6 +230,7 @@
"bookDemo": "Забронировать бесплатное демо",
"getAnswered": "Получите ответы на ваши вопросы",
"joinDiscord": "Присоединиться к",
"joinCommunity": "Join NocoDB Community",
"joinReddit": "Присоединиться /r/NocoDB",
"followNocodb": "Следите за NocoDB"
},
@ -495,7 +497,8 @@
"emailReqd": "Требуется E-mail",
"emailInvalid": "Электронная почта должна быть действительной",
"passwdRequired": "необходим пароль",
"passwdLength": "Ваш пароль должен быть не короче 8 символов"
"passwdLength": "Ваш пароль должен быть не короче 8 символов",
"passwdMismatch": "Пароли не совпадают"
}
},
"toast": {

6
packages/nc-gui-v2/lang/sl.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL izhod",
"addOption": "Dodaj možnost",
"aggregateFunction": "Agregatna funkcija",
"database": "Baza podatkov",
"dbCreateIfNotExists": "Baza podatkov: Ustvari, če ne obstaja",
"clientKey": "Odjemalski ključ",
"clientCert": "Potrdilo odjemalca",
@ -412,7 +413,7 @@
"deleteProject": "Želite izbrisati projekt?",
"shareBasePrivate": "Ustvarite javno rasno redno osnovo",
"shareBasePublic": "Vsak na internetu s to povezavo lahko prikaže",
"userInviteNoSMTP": "Izgleda, da še niste konfigurirali pošiljatelja! n Prosimo, kopirajte zgornjo povezavo in jo pošljite",
"userInviteNoSMTP": "Izgleda, da še niste konfigurirali pošiljatelja! Prosimo, kopirajte zgornjo povezavo in jo pošljite",
"dragDropHide": "Povlecite in spustite polja, da se skrijete",
"formInput": "Vnesite nalepko vnosa obrazca",
"formHelpText": "Dodajte nekaj besedila pomoči",
@ -496,7 +497,8 @@
"emailReqd": "Potrebna je e-pošta",
"emailInvalid": "E-pošta mora biti veljavna",
"passwdRequired": "zahtevano je geslo",
"passwdLength": "Geslo mora biti vsaj 8 znakov"
"passwdLength": "Geslo mora biti vsaj 8 znakov",
"passwdMismatch": "geslo se ne ujema"
}
},
"toast": {

6
packages/nc-gui-v2/lang/sv.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL-utgång",
"addOption": "Lägg till alternativ",
"aggregateFunction": "Aggregatfunktion",
"database": "Databas",
"dbCreateIfNotExists": "Databas: Skapa om det inte finns",
"clientKey": "Klientnyckel",
"clientCert": "Klientcert",
@ -412,7 +413,7 @@
"deleteProject": "Vill du radera projektet?",
"shareBasePrivate": "Generera offentligt delbar readonly base",
"shareBasePublic": "Någon på internet med den här länken kan visa",
"userInviteNoSMTP": "Det verkar som om du inte har konfigurerat Mailer än!\nVänligen kopiera ovanför bjudningslänk och skicka den till",
"userInviteNoSMTP": "Det verkar som om du inte har konfigurerat Mailer än! Vänligen kopiera ovanför bjudningslänk och skicka den till",
"dragDropHide": "Dra och släpp fält här för att dölja",
"formInput": "Ange formulärinmatningslabel",
"formHelpText": "Lägg till lite hjälptext",
@ -496,7 +497,8 @@
"emailReqd": "E-post krävs",
"emailInvalid": "Email måste vara giltig",
"passwdRequired": "lösenord krävs",
"passwdLength": "Du lösenord måste vara minst 8 tecken"
"passwdLength": "Du lösenord måste vara minst 8 tecken",
"passwdMismatch": "Lösenorden matchar inte"
}
},
"toast": {

6
packages/nc-gui-v2/lang/th.json

@ -213,6 +213,7 @@
"sqlOutput": "เอาตต SQL",
"addOption": "เพมตวเลอก",
"aggregateFunction": "ฟงกนรวม",
"database": "ฐานขอมล",
"dbCreateIfNotExists": "ฐานขอมล: สรางถาไมอย",
"clientKey": "รหสลกคา",
"clientCert": "ใบรบรองลกคา",
@ -412,7 +413,7 @@
"deleteProject": "คณตองการลบโครงการหรอไม",
"shareBasePrivate": "สรางฐาน Readonly ทใชวมกนไดอยางเปดเผย",
"shareBasePublic": "ทกคนบนอนเทอรเนตดวยลงคสามารถดได",
"userInviteNoSMTP": "ดเหมอนวาคณยงไมไดกำหนดคาเมล!\nโปรดคดลอกลงกเชญดานบนและสงไปท",
"userInviteNoSMTP": "ดเหมอนวาคณยงไมไดกำหนดคาเมล! โปรดคดลอกลงกเชญดานบนและสงไปท",
"dragDropHide": "ลากและวางฟลดเพอซอน",
"formInput": "ปอนปายชออนพตแบบฟอรม",
"formHelpText": "เพมขอความชวยเหลอบางอยาง",
@ -496,7 +497,8 @@
"emailReqd": "จำเปนตองใชเมล",
"emailInvalid": "อเมลจะตองถกตอง",
"passwdRequired": "ตองการรหสผาน",
"passwdLength": "รหสผานของคณตองมกขระอยางนอย 8 ตว"
"passwdLength": "รหสผานของคณตองมกขระอยางนอย 8 ตว",
"passwdMismatch": "รหสผานไมตรงกน"
}
},
"toast": {

6
packages/nc-gui-v2/lang/tr.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL Çıktısı",
"addOption": "Seçenek ekle",
"aggregateFunction": "Birleştirme fonksiyonu",
"database": "Veritabanı",
"dbCreateIfNotExists": "Veritabanı : yoksa oluştur",
"clientKey": "Müşteri Anahtarı",
"clientCert": "Müşteri Sertifikası",
@ -412,7 +413,7 @@
"deleteProject": "Projeyi silmek istediğinize emin misiniz?",
"shareBasePrivate": "Herkese açık paylaşılabilir salt-okunur bağlantı",
"shareBasePublic": "Bu link ile internetteki herkes görüntüleyebilir",
"userInviteNoSMTP": "Henüz mail ayarları yapılmamış gibi görünüyor! \\n Lütfen yukarıdaki davet linkini kopyalayın ve gönderin",
"userInviteNoSMTP": "Henüz mail ayarları yapılmamış gibi görünüyor! Lütfen yukarıdaki davet linkini kopyalayın ve gönderin",
"dragDropHide": "Gizlemek için sütunları buraya sürükleyip bırakın",
"formInput": "Form girdi etiketini girin",
"formHelpText": "Yardım metni ekleyin",
@ -496,7 +497,8 @@
"emailReqd": "E-posta gerekli",
"emailInvalid": "E-posta geçerli olmalı",
"passwdRequired": "Şifre gerekli",
"passwdLength": "Şifreniz en az 8 karakter olmalıdır"
"passwdLength": "Şifreniz en az 8 karakter olmalıdır",
"passwdMismatch": "Parolalar uyuşmuyor"
}
},
"toast": {

6
packages/nc-gui-v2/lang/uk.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL Output",
"addOption": "Додайте опцію",
"aggregateFunction": "Сукупна функція",
"database": "База даних",
"dbCreateIfNotExists": "База даних: створити, якщо не існує",
"clientKey": "Клієнтський ключ",
"clientCert": "Клієнтський сертифікат",
@ -412,7 +413,7 @@
"deleteProject": "Ви хочете видалити проект?",
"shareBasePrivate": "Генерувати загальнодоступну групою",
"shareBasePublic": "Будь-хто в Інтернеті за допомогою цього посилання може переглядати",
"userInviteNoSMTP": "Схоже, ви ще не налаштували Mailer!\nБудь ласка, скопіюйте вище посилання на запрошення і надішліть його",
"userInviteNoSMTP": "Схоже, ви ще не налаштували Mailer! Будь ласка, скопіюйте вище посилання на запрошення і надішліть його",
"dragDropHide": "Перетягніть поля тут, щоб приховати",
"formInput": "Введіть етикетку введення форми",
"formHelpText": "Додайте деякий текст довідки",
@ -496,7 +497,8 @@
"emailReqd": "Потрібна електронна пошта",
"emailInvalid": "Електронна пошта повинна бути дійсним",
"passwdRequired": "Необхідний пароль",
"passwdLength": "Пароль повинен бути принаймні 8 символів"
"passwdLength": "Пароль повинен бути принаймні 8 символів",
"passwdMismatch": "Паролі не співпадають"
}
},
"toast": {

6
packages/nc-gui-v2/lang/vi.json

@ -213,6 +213,7 @@
"sqlOutput": "Đầu ra SQL.",
"addOption": "Thêm tùy chọn",
"aggregateFunction": "Chức năng tổng hợp",
"database": "Cơ sở dữ liệu",
"dbCreateIfNotExists": "Cơ sở dữ liệu: Tạo nếu không tồn tại",
"clientKey": "Khóa khách",
"clientCert": "Chứng chỉ khách hàng.",
@ -412,7 +413,7 @@
"deleteProject": "Bạn có muốn xóa dự án?",
"shareBasePrivate": "Tạo cơ sở chỉ đọc chia sẻ công khai",
"shareBasePublic": "Bất cứ ai trên Internet với liên kết này có thể xem",
"userInviteNoSMTP": "Có vẻ như bạn chưa định cấu hình Mailer!\nVui lòng sao chép liên kết mời trên và gửi nó đến",
"userInviteNoSMTP": "Có vẻ như bạn chưa định cấu hình Mailer! Vui lòng sao chép liên kết mời trên và gửi nó đến",
"dragDropHide": "Kéo và thả các trường ở đây để ẩn",
"formInput": "Nhập nhãn đầu vào Mẫu",
"formHelpText": "Thêm một số văn bản trợ giúp",
@ -496,7 +497,8 @@
"emailReqd": "Email thì cần thiết",
"emailInvalid": "Email phải hợp lệ",
"passwdRequired": "Mật khẩu là bắt buộc",
"passwdLength": "Mật khẩu của bạn phải có ít nhất 8 ký tự"
"passwdLength": "Mật khẩu của bạn phải có ít nhất 8 ký tự",
"passwdMismatch": "mất khẩu không hợp lệ"
}
},
"toast": {

4
packages/nc-gui-v2/lang/zh_CN.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL输出",
"addOption": "添加选项",
"aggregateFunction": "汇总功能",
"database": "数据库",
"dbCreateIfNotExists": "数据库 : 如果不存在则创建",
"clientKey": "客户端 Key",
"clientCert": "客户端 Cert",
@ -496,7 +497,8 @@
"emailReqd": "邮箱必填",
"emailInvalid": "邮箱格式无效",
"passwdRequired": "密码必填",
"passwdLength": "您的密码必须至少为8个字符"
"passwdLength": "您的密码必须至少为8个字符",
"passwdMismatch": "密码不匹配"
}
},
"toast": {

4
packages/nc-gui-v2/lang/zh_HK.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL輸出",
"addOption": "添加選項",
"aggregateFunction": "匯總功能",
"database": "數據庫",
"dbCreateIfNotExists": "數據庫:創建如果不存在",
"clientKey": "client條key",
"clientCert": "client張cert",
@ -496,7 +497,8 @@
"emailReqd": "E-mail 必須填",
"emailInvalid": "E-mail 唔valid",
"passwdRequired": "密碼必須填",
"passwdLength": "你嗰密碼至少要8個字"
"passwdLength": "你嗰密碼至少要8個字",
"passwdMismatch": "密碼不匹配"
}
},
"toast": {

4
packages/nc-gui-v2/lang/zh_TW.json

@ -213,6 +213,7 @@
"sqlOutput": "SQL 輸出",
"addOption": "新增選項",
"aggregateFunction": "匯總功能",
"database": "數據庫",
"dbCreateIfNotExists": "資料庫:不存在則建立",
"clientKey": "用戶端金鑰",
"clientCert": "用戶端憑證",
@ -496,7 +497,8 @@
"emailReqd": "電子信箱地址為必填",
"emailInvalid": "電子信箱地址格式錯誤",
"passwdRequired": "密碼為必填",
"passwdLength": "您的密碼應至少有 8 個字元"
"passwdLength": "您的密碼應至少有 8 個字元",
"passwdMismatch": "密碼不匹配"
}
},
"toast": {

25454
packages/nc-gui-v2/package-lock.json generated

File diff suppressed because it is too large Load Diff

1
packages/nc-gui-v2/package.json

@ -16,6 +16,7 @@
"ant-design-vue": "^3.1.0-rc.6",
"dayjs": "^1.11.3",
"jwt-decode": "^3.1.2",
"monaco-editor": "^0.33.0",
"nocodb-sdk": "file:../nocodb-sdk",
"socket.io-client": "^4.5.1",
"unique-names-generator": "^4.7.1",

33
packages/nc-gui-v2/pages/index/index.vue

@ -1,10 +1,10 @@
<script lang="ts" setup>
import { Modal } from 'ant-design-vue'
import type { ProjectType } from 'nocodb-sdk'
import { useToast } from 'vue-toastification'
import { navigateTo } from '#app'
import { computed, onMounted } from '#imports'
import { extractSdkResponseErrorMsg } from '~/utils/errorUtils'
import {Modal} from 'ant-design-vue'
import type {ProjectType} from 'nocodb-sdk'
import {useToast} from 'vue-toastification'
import {navigateTo} from '#app'
import {computed, onMounted} from '#imports'
import {extractSdkResponseErrorMsg} from '~/utils/errorUtils'
import MdiDeleteOutline from '~icons/mdi/delete-outline'
import MdiEditOutline from '~icons/mdi/edit-outline'
@ -13,7 +13,7 @@ import MdiMenuDown from '~icons/mdi/menu-down'
import MdiPlus from '~icons/mdi/plus'
import MdiDatabaseOutline from '~icons/mdi/database-outline'
const { $api, $state, $e } = useNuxtApp()
const {$api, $state, $e} = useNuxtApp()
const toast = useToast()
const filterQuery = ref('')
@ -62,7 +62,7 @@ $state.sidebarOpen.value = false
<template>
<NuxtLayout>
<a-card class="mx-auto mt-5 !max-w-[600px] shadow-lg">
<a-card class="mx-auto mt-10 !max-w-[600px] shadow-lg">
<h1 class="text-center text-4xl pa-2 nc-project-page-title flex align-center justify-center gap-2">
<!-- My Projects -->
<b>{{ $t('title.myProject') }}</b>
@ -83,10 +83,10 @@ $state.sidebarOpen.value = false
<div class="flex-grow"></div>
<a-dropdown @click.stop>
<a-button class="nc-new-project-menu">
<a-button class="nc-new-project-menu !shadow">
<div class="flex align-center">
{{ $t('title.newProj') }}
<MdiMenuDown class="menu-icon" />
<MdiMenuDown class="menu-icon"/>
</div>
</a-button>
@ -97,7 +97,7 @@ $state.sidebarOpen.value = false
class="grid grid-cols-12 cursor-pointer hover:bg-gray-200 flex items-center p-2 nc-create-xc-db-project"
@click="navigateTo('/project/create')"
>
<MdiPlus class="col-span-2 mr-1 mt-[1px] text-primary text-lg" />
<MdiPlus class="col-span-2 mr-1 mt-[1px] text-primary text-lg"/>
<div class="col-span-10 text-sm xl:text-md">{{ $t('activity.createProject') }}</div>
</div>
<div
@ -105,8 +105,8 @@ $state.sidebarOpen.value = false
class="grid grid-cols-12 cursor-pointer hover:bg-gray-200 flex items-center p-2 nc-create-external-db-project"
@click="navigateTo('/project/create-external')"
>
<MdiDatabaseOutline class="col-span-2 mr-1 mt-[1px] text-green-500 text-lg" />
<div class="col-span-10 text-sm xl:text-md" v-html="$t('activity.createProjectExtended.extDB')" />
<MdiDatabaseOutline class="col-span-2 mr-1 mt-[1px] text-green-500 text-lg"/>
<div class="col-span-10 text-sm xl:text-md" v-html="$t('activity.createProjectExtended.extDB')"/>
</div>
</a-menu>
</template>
@ -114,7 +114,7 @@ $state.sidebarOpen.value = false
</div>
<div v-if="loading">
<a-skeleton />
<a-skeleton/>
</div>
<a-table
@ -133,7 +133,8 @@ $state.sidebarOpen.value = false
<!-- Title -->
<a-table-column key="title" :title="$t('general.title')" data-index="title">
<template #default="{ text }">
<div class="capitalize !w-[400px] overflow-hidden overflow-ellipsis whitespace-nowrap nc-project-row" :title="text">
<div class="capitalize !w-[400px] overflow-hidden overflow-ellipsis whitespace-nowrap nc-project-row"
:title="text">
{{ text }}
</div>
</template>
@ -147,7 +148,7 @@ $state.sidebarOpen.value = false
class="nc-action-btn"
@click.stop="navigateTo(`/project/${text}`)"
/>
<MdiDeleteOutline class="nc-action-btn" @click.stop="deleteProject(record)" />
<MdiDeleteOutline class="nc-action-btn" @click.stop="deleteProject(record)"/>
</div>
</template>
</a-table-column>

12
packages/nc-gui-v2/pages/nc/[projectId].vue

@ -1,17 +1,9 @@
<script setup lang="ts">
import { watch } from 'vue'
import useProject from '~/composables/useProject'
import useTabs from '~/composables/useTabs'
const route = useRoute()
const { loadProject, loadTables } = useProject()
const { loadProject, loadTables } = useProject(route.params.projectId as string)
const { clearTabs, addTab } = useTabs()
onMounted(async () => {
await loadProject(route.params.projectId as string)
await loadTables()
addTab({ type: 'auth', title: 'Team & Auth' })
})
addTab({ type: 'auth', title: 'Team & Auth' })
watch(
() => route.params.projectId,

17
packages/nc-gui-v2/pages/project/index/create-external.vue

@ -216,7 +216,7 @@ onMounted(() => {
<template>
<a-card
class="max-w-[600px] mx-auto !mt-5 !mb-5"
class="max-w-[600px] mx-auto !mt-15 !mb-5 !shadow-md"
:title="$t('activity.createProject')"
:head-style="{ textAlign: 'center', fontWeight: '700' }"
>
@ -227,6 +227,7 @@ onMounted(() => {
layout="horizontal"
:label-col="{ span: 8 }"
:wrapper-col="{ span: 18 }"
class="!pr-5"
>
<a-form-item :label="$t('placeholder.projName')" v-bind="validateInfos.title">
<a-input v-model:value="formState.title" size="small" class="nc-extdb-proj-name" />
@ -309,7 +310,7 @@ onMounted(() => {
<template #title>
<span>{{ $t('tooltip.clientCert') }}</span>
</template>
<a-button :disabled="!sslFilesRequired" size="small" @click="certFileInput.click()">
<a-button :disabled="!sslFilesRequired" size="small" @click="certFileInput.click()" class="shadow">
{{ $t('labels.clientCert') }}
</a-button>
</a-tooltip>
@ -318,7 +319,7 @@ onMounted(() => {
<template #title>
<span>{{ $t('tooltip.clientKey') }}</span>
</template>
<a-button :disabled="!sslFilesRequired" size="small" @click="keyFileInput.click()">
<a-button :disabled="!sslFilesRequired" size="small" @click="keyFileInput.click()" class="shadow">
{{ $t('labels.clientKey') }}
</a-button>
</a-tooltip>
@ -327,7 +328,7 @@ onMounted(() => {
<template #title>
<span>{{ $t('tooltip.clientCA') }}</span>
</template>
<a-button :disabled="!sslFilesRequired" size="small" @click="caFileInput.click()">
<a-button :disabled="!sslFilesRequired" size="small" @click="caFileInput.click()" class="shadow">
{{ $t('labels.serverCA') }}
</a-button>
</a-tooltip>
@ -360,10 +361,10 @@ onMounted(() => {
<a-form-item class="flex justify-center mt-5">
<div class="flex justify-center gap-2">
<a-button type="primary" class="nc-extdb-btn-test-connection" @click="testConnection">
<a-button type="primary" ghost class="nc-extdb-btn-test-connection" @click="testConnection">
{{ $t('activity.testDbConn') }}
</a-button>
<a-button type="primary" :disabled="!testSuccess" class="nc-extdb-btn-submit" @click="createProject"> Submit </a-button>
<a-button type="primary" :disabled="!testSuccess" class="nc-extdb-btn-submit !shadow" @click="createProject"> Submit </a-button>
</div>
</a-form-item>
</a-form>
@ -396,4 +397,8 @@ onMounted(() => {
:deep(.ant-form-item-with-help .ant-form-item-explain) {
@apply !min-h-0;
}
:deep(.ant-card-head-title){
@apply !text-3xl
}
</style>

4
packages/nc-gui-v2/pages/signin.vue

@ -77,7 +77,7 @@ const resetError = () => {
class="signin h-[calc(100%_+_90px)] min-h-[600px] flex justify-center items-center"
@finish="signIn"
>
<div class="h-full w-full flex flex-col flex-wrap justify-center items-center">
<div class="h-full w-full flex flex-col flex-wrap items-center pt-[100px]">
<div
class="bg-white dark:(!bg-gray-900 !text-white) md:relative flex flex-col justify-center gap-2 w-full max-w-[500px] mx-auto p-8 md:(rounded-lg border-1 border-gray-200 shadow-xl)"
>
@ -111,7 +111,7 @@ const resetError = () => {
</nuxt-link>
</div>
<div class="self-center flex flex-wrap gap-4 items-center mt-4 md:mx-8 md:justify-between justify-center w-full">
<div class="self-center flex flex-column flex-wrap gap-4 items-center mt-4 md:mx-8 md:justify-between justify-center w-full">
<button class="submit" type="submit">
<span class="flex items-center gap-2"><MdiLogin /> {{ $t('general.signIn') }}</span>
</button>

31
packages/nc-gui-v2/pages/signup.vue

@ -19,8 +19,7 @@ let error = $ref<string | null>(null)
const form = reactive({
email: '',
password: '',
passwordRepeat: '',
password: ''
})
const formRules = {
@ -43,20 +42,6 @@ const formRules = {
{ required: true, message: t('msg.error.signUpRules.passwdRequired') },
{ min: 8, message: t('msg.error.signUpRules.passwdLength') },
],
passwordRepeat: [
// PasswordRepeat is required
{ required: true, message: t('msg.error.signUpRules.passwdRequired') },
// Passwords match
{
validator: (_: unknown, v: string) => {
return new Promise((resolve, reject) => {
if (form.password === form.passwordRepeat) return resolve(true)
reject(new Error(t('msg.error.signUpRules.passwdMismatch')))
})
},
message: t('msg.error.signUpRules.passwdMismatch'),
},
],
}
const signUp = async () => {
@ -89,7 +74,7 @@ const resetError = () => {
class="signup h-[calc(100%_+_90px)] min-h-[600px] flex justify-center items-center"
@finish="signUp"
>
<div class="h-full w-full flex flex-col flex-wrap justify-center items-center">
<div class="h-full w-full flex flex-col flex-wrap pt-[100px]">
<div
class="bg-white dark:(!bg-gray-900 !text-white) md:relative flex flex-col justify-center gap-2 w-full max-w-[500px] mx-auto p-8 md:(rounded-lg border-1 border-gray-200 shadow-xl)"
>
@ -117,17 +102,7 @@ const resetError = () => {
/>
</a-form-item>
<a-form-item :label="`Repeat ${$t('labels.password')}`" name="passwordRepeat" :rules="formRules.passwordRepeat">
<a-input-password
v-model:value="form.passwordRepeat"
size="large"
class="password"
:placeholder="`Repeat ${$t('labels.password')}`"
@focus="resetError"
/>
</a-form-item>
<div class="self-center flex flex-wrap gap-4 items-center mt-4 md:mx-8 md:justify-between justify-center w-full">
<div class="self-center flex flex-column flex-wrap gap-4 items-center mt-4 md:mx-8 md:justify-between justify-center w-full">
<button class="submit" type="submit">
<span class="flex items-center gap-2"><MaterialSymbolsRocketLaunchOutline /> {{ $t('general.signUp') }}</span>
</button>

Loading…
Cancel
Save