From 4036515abe0f4c5e9eb4805d2f408d760baf82c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=9E=E6=B3=95=E6=93=8D=E4=BD=9C?= Date: Mon, 27 Apr 2026 14:07:03 +0800 Subject: [PATCH 1/3] fix: improve variable picker text width allocation (#35587) Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com> --- .../__tests__/var-reference-picker.helpers.spec.ts | 10 ++++++++++ .../variable/var-reference-picker.helpers.ts | 8 ++++++-- .../_base/components/variable/var-reference-picker.tsx | 6 ++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/web/app/components/workflow/nodes/_base/components/variable/__tests__/var-reference-picker.helpers.spec.ts b/web/app/components/workflow/nodes/_base/components/variable/__tests__/var-reference-picker.helpers.spec.ts index 7cef3ddde4..6b9ec7a642 100644 --- a/web/app/components/workflow/nodes/_base/components/variable/__tests__/var-reference-picker.helpers.spec.ts +++ b/web/app/components/workflow/nodes/_base/components/variable/__tests__/var-reference-picker.helpers.spec.ts @@ -182,6 +182,16 @@ describe('var-reference-picker.helpers', () => { maxVarNameWidth: expect.any(Number), }) + expect(getWidthAllocations(240, '', 'sys.user_id', 'String')).toEqual({ + maxNodeNameWidth: 0, + maxTypeWidth: 64, + maxVarNameWidth: 119, + }) + + expect(getWidthAllocations(240, 'User Input', 'aa', 'String')).toMatchObject({ + maxVarNameWidth: 16, + }) + expect(getTooltipContent(true, true, true)).toBe('full-path') expect(getTooltipContent(true, false, false)).toBe('invalid-variable') expect(getTooltipContent(false, false, true)).toBeNull() diff --git a/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.helpers.ts b/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.helpers.ts index 6cdcb916e6..f29e99cc37 100644 --- a/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.helpers.ts +++ b/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.helpers.ts @@ -168,11 +168,15 @@ export const getWidthAllocations = ( ) => { const availableWidth = triggerWidth - 56 const totalTextLength = (nodeTitle + varName + type).length || 1 - const priorityWidth = 15 + const priorityWidth = nodeTitle ? 15 : 0 + const minVarNameWidth = varName ? 16 : 0 return { maxNodeNameWidth: priorityWidth + Math.floor(nodeTitle.length / totalTextLength * availableWidth), maxTypeWidth: Math.floor(type.length / totalTextLength * availableWidth), - maxVarNameWidth: -priorityWidth + Math.floor(varName.length / totalTextLength * availableWidth), + maxVarNameWidth: Math.max( + minVarNameWidth, + -priorityWidth + Math.floor(varName.length / totalTextLength * availableWidth), + ), } } diff --git a/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx b/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx index 7e99988ae8..c2645ee870 100644 --- a/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx +++ b/web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx @@ -279,13 +279,15 @@ const VarReferencePicker: FC = ({ [outputVarNode?.type, varName], ) const showErrorIcon = hasValue && !isValidVar + const shouldShowNodeName = isShowNodeName && !isEnv && !isChatVar && !isGlobal && !isRagVar + const visibleNodeTitle = shouldShowNodeName ? outputVarNode?.title || '' : '' // 8(left/right-padding) + 14(icon) + 4 + 14 + 2 = 42 + 17 buff const { maxNodeNameWidth, maxTypeWidth, maxVarNameWidth, - } = getWidthAllocations(triggerWidth, outputVarNode?.title || '', varName || '', type || '') + } = getWidthAllocations(triggerWidth, visibleNodeTitle, varName || '', type || '') const hoverPopup = useMemo(() => { const tooltipType = getTooltipContent(hasValue, isShowAPart, isValidVar) @@ -380,7 +382,7 @@ const VarReferencePicker: FC = ({ isJustShowValue={isJustShowValue} isLoading={isLoading} isShowAPart={isShowAPart} - isShowNodeName={isShowNodeName && !isEnv && !isChatVar && !isGlobal && !isRagVar} + isShowNodeName={shouldShowNodeName} isSupportConstantValue={isSupportConstantValue} maxNodeNameWidth={maxNodeNameWidth} maxTypeWidth={maxTypeWidth} From 3a28868a6c9e60eabbe48d183b21ba851f92e19f Mon Sep 17 00:00:00 2001 From: yyh <92089059+lyzno1@users.noreply.github.com> Date: Mon, 27 Apr 2026 14:10:43 +0800 Subject: [PATCH 2/3] ci: upgrade web test runners (#35593) --- .github/workflows/web-tests.yml | 6 +++--- packages/dify-ui/src/select/__tests__/index.spec.tsx | 4 ---- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/web-tests.yml b/.github/workflows/web-tests.yml index db6a797c15..4619f3c104 100644 --- a/.github/workflows/web-tests.yml +++ b/.github/workflows/web-tests.yml @@ -16,7 +16,7 @@ concurrency: jobs: test: name: Web Tests (${{ matrix.shardIndex }}/${{ matrix.shardTotal }}) - runs-on: depot-ubuntu-24.04 + runs-on: depot-ubuntu-24.04-4 env: VITEST_COVERAGE_SCOPE: app-components strategy: @@ -54,7 +54,7 @@ jobs: name: Merge Test Reports if: ${{ !cancelled() }} needs: [test] - runs-on: depot-ubuntu-24.04 + runs-on: depot-ubuntu-24.04-4 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} defaults: @@ -92,7 +92,7 @@ jobs: dify-ui-test: name: dify-ui Tests - runs-on: depot-ubuntu-24.04 + runs-on: depot-ubuntu-24.04-4 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} defaults: diff --git a/packages/dify-ui/src/select/__tests__/index.spec.tsx b/packages/dify-ui/src/select/__tests__/index.spec.tsx index 9e3e945de0..f2f3221eda 100644 --- a/packages/dify-ui/src/select/__tests__/index.spec.tsx +++ b/packages/dify-ui/src/select/__tests__/index.spec.tsx @@ -194,7 +194,6 @@ describe('Select wrappers', () => { }) it('should forward passthrough props to positioner popup and list when passthrough props are provided', async () => { - const onPositionerMouseEnter = vi.fn() const onPopupClick = vi.fn() const onListFocus = vi.fn() @@ -208,7 +207,6 @@ describe('Select wrappers', () => { 'role': 'group', 'aria-label': 'select positioner', 'id': 'select-positioner', - 'onMouseEnter': onPositionerMouseEnter, }} popupProps={{ 'role': 'dialog', @@ -231,7 +229,6 @@ describe('Select wrappers', () => { , ) - await screen.getByRole('group', { name: 'select positioner' }).hover() await screen.getByRole('dialog', { name: 'select popup' }).click() screen.getByRole('listbox', { name: 'select list' }).element().dispatchEvent(new FocusEvent('focusin', { bubbles: true, @@ -240,7 +237,6 @@ describe('Select wrappers', () => { await expect.element(screen.getByRole('group', { name: 'select positioner' })).toHaveAttribute('id', 'select-positioner') await expect.element(screen.getByRole('dialog', { name: 'select popup' })).toHaveAttribute('id', 'select-popup') await expect.element(screen.getByRole('listbox', { name: 'select list' })).toHaveAttribute('id', 'select-list') - expect(onPositionerMouseEnter).toHaveBeenCalledTimes(1) expect(onPopupClick).toHaveBeenCalledTimes(1) expect(onListFocus).toHaveBeenCalled() }) From 89bf75eba93e14efa70e87f843fac9803f40d30c Mon Sep 17 00:00:00 2001 From: Wu Tianwei <30284043+WTW0313@users.noreply.github.com> Date: Mon, 27 Apr 2026 14:33:34 +0800 Subject: [PATCH 3/3] fix: enhance file uploader with billing support and update translations (#35583) Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com> --- .../__tests__/upload-dropzone.spec.tsx | 56 ++++++++++++++++++- .../components/upload-dropzone.tsx | 26 ++++++--- .../__tests__/upload-dropzone.spec.tsx | 56 ++++++++++++++++++- .../local-file/components/upload-dropzone.tsx | 26 ++++++--- web/i18n/ar-TN/dataset-creation.json | 3 +- web/i18n/de-DE/dataset-creation.json | 3 +- web/i18n/en-US/dataset-creation.json | 3 +- web/i18n/es-ES/dataset-creation.json | 3 +- web/i18n/fa-IR/dataset-creation.json | 3 +- web/i18n/fr-FR/dataset-creation.json | 3 +- web/i18n/hi-IN/dataset-creation.json | 3 +- web/i18n/id-ID/dataset-creation.json | 3 +- web/i18n/it-IT/dataset-creation.json | 3 +- web/i18n/ja-JP/dataset-creation.json | 3 +- web/i18n/ko-KR/dataset-creation.json | 3 +- web/i18n/nl-NL/dataset-creation.json | 3 +- web/i18n/pl-PL/dataset-creation.json | 3 +- web/i18n/pt-BR/dataset-creation.json | 3 +- web/i18n/ro-RO/dataset-creation.json | 3 +- web/i18n/ru-RU/dataset-creation.json | 3 +- web/i18n/sl-SI/dataset-creation.json | 3 +- web/i18n/th-TH/dataset-creation.json | 3 +- web/i18n/tr-TR/dataset-creation.json | 3 +- web/i18n/uk-UA/dataset-creation.json | 3 +- web/i18n/vi-VN/dataset-creation.json | 3 +- web/i18n/zh-Hans/dataset-creation.json | 3 +- web/i18n/zh-Hant/dataset-creation.json | 3 +- 27 files changed, 190 insertions(+), 43 deletions(-) diff --git a/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx b/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx index ee769c110e..ac5014e4b2 100644 --- a/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx +++ b/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx @@ -1,9 +1,17 @@ import type { RefObject } from 'react' import type { UploadDropzoneProps } from '../upload-dropzone' +import type { ProviderContextState } from '@/context/provider-context' import { fireEvent, render, screen } from '@testing-library/react' import { beforeEach, describe, expect, it, vi } from 'vitest' import UploadDropzone from '../upload-dropzone' +let mockEnableBilling = false + +vi.mock('@/context/provider-context', () => ({ + useProviderContextSelector: (selector: (state: Pick) => T): T => + selector({ enableBilling: mockEnableBilling }), +})) + // Helper to create mock ref objects for testing const createMockRef = (value: T | null = null): RefObject => ({ current: value }) @@ -27,6 +35,7 @@ describe('UploadDropzone', () => { beforeEach(() => { vi.clearAllMocks() + mockEnableBilling = false }) describe('rendering', () => { @@ -46,7 +55,7 @@ describe('UploadDropzone', () => { it('should render upload icon', () => { render() - const icon = document.querySelector('svg') + const icon = document.querySelector('.i-ri-upload-cloud-2-line') expect(icon).toBeInTheDocument() }) @@ -67,6 +76,51 @@ describe('UploadDropzone', () => { }) }) + describe('tip rendering by billing state', () => { + it('should render tip without total count limit when billing is disabled', () => { + mockEnableBilling = false + + render() + + const tipWithoutTotal = screen.getByText(/datasetCreation\.stepOne\.uploader\.tip(?!WithTotalLimit)/) + expect(tipWithoutTotal).toBeInTheDocument() + expect(screen.queryByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/)).not.toBeInTheDocument() + }) + + it('should render tip with total count limit when billing is enabled', () => { + mockEnableBilling = true + + render() + + expect(screen.getByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/)).toBeInTheDocument() + expect(screen.queryByText(/datasetCreation\.stepOne\.uploader\.tip(?!WithTotalLimit)/)).not.toBeInTheDocument() + }) + + it('should pass file size, batch count and supported types to tip when billing is disabled', () => { + mockEnableBilling = false + + render() + + const tipText = screen.getByText(/datasetCreation\.stepOne\.uploader\.tip/).textContent ?? '' + expect(tipText).toContain('"size":15') + expect(tipText).toContain('"batchCount":5') + expect(tipText).toContain('"supportTypes":"PDF, DOCX, TXT"') + expect(tipText).not.toContain('"totalCount"') + }) + + it('should additionally pass total count to tip when billing is enabled', () => { + mockEnableBilling = true + + render() + + const tipText = screen.getByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/).textContent ?? '' + expect(tipText).toContain('"size":15') + expect(tipText).toContain('"batchCount":5') + expect(tipText).toContain('"supportTypes":"PDF, DOCX, TXT"') + expect(tipText).toContain('"totalCount":10') + }) + }) + describe('file input configuration', () => { it('should allow multiple files when supportBatchUpload is true', () => { render() diff --git a/web/app/components/datasets/create/file-uploader/components/upload-dropzone.tsx b/web/app/components/datasets/create/file-uploader/components/upload-dropzone.tsx index 2a2a40d5b8..be05fd55ba 100644 --- a/web/app/components/datasets/create/file-uploader/components/upload-dropzone.tsx +++ b/web/app/components/datasets/create/file-uploader/components/upload-dropzone.tsx @@ -2,8 +2,8 @@ import type { RefObject } from 'react' import type { FileUploadConfig } from '../hooks/use-file-upload' import { cn } from '@langgenius/dify-ui/cn' -import { RiUploadCloud2Line } from '@remixicon/react' import { useTranslation } from 'react-i18next' +import { useProviderContextSelector } from '@/context/provider-context' export type UploadDropzoneProps = { dropRef: RefObject @@ -31,6 +31,7 @@ const UploadDropzone = ({ onFileChange, }: UploadDropzoneProps) => { const { t } = useTranslation() + const enableBilling = useProviderContextSelector(state => state.enableBilling) return ( <> @@ -51,7 +52,7 @@ const UploadDropzone = ({ )} >
- + {supportBatchUpload ? t('stepOne.uploader.button', { ns: 'datasetCreation' }) @@ -67,13 +68,20 @@ const UploadDropzone = ({
- {t('stepOne.uploader.tip', { - ns: 'datasetCreation', - size: fileUploadConfig.file_size_limit, - supportTypes: supportTypesShowNames, - batchCount: fileUploadConfig.batch_count_limit, - totalCount: fileUploadConfig.file_upload_limit, - })} + {enableBilling + ? t('stepOne.uploader.tipWithTotalLimit', { + ns: 'datasetCreation', + size: fileUploadConfig.file_size_limit, + supportTypes: supportTypesShowNames, + batchCount: fileUploadConfig.batch_count_limit, + totalCount: fileUploadConfig.file_upload_limit, + }) + : t('stepOne.uploader.tip', { + ns: 'datasetCreation', + size: fileUploadConfig.file_size_limit, + supportTypes: supportTypesShowNames, + batchCount: fileUploadConfig.batch_count_limit, + })}
{dragging &&
}
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx index 74b4a3b194..3ade486474 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx @@ -1,9 +1,17 @@ import type { RefObject } from 'react' import type { UploadDropzoneProps } from '../upload-dropzone' +import type { ProviderContextState } from '@/context/provider-context' import { fireEvent, render, screen } from '@testing-library/react' import { beforeEach, describe, expect, it, vi } from 'vitest' import UploadDropzone from '../upload-dropzone' +let mockEnableBilling = false + +vi.mock('@/context/provider-context', () => ({ + useProviderContextSelector: (selector: (state: Pick) => T): T => + selector({ enableBilling: mockEnableBilling }), +})) + // Helper to create mock ref objects for testing const createMockRef = (value: T | null = null): RefObject => ({ current: value }) @@ -28,6 +36,7 @@ describe('UploadDropzone', () => { beforeEach(() => { vi.clearAllMocks() + mockEnableBilling = false }) describe('rendering', () => { @@ -50,7 +59,7 @@ describe('UploadDropzone', () => { it('should render upload icon', () => { render() - const icon = document.querySelector('svg') + const icon = document.querySelector('.i-ri-upload-cloud-2-line') expect(icon).toBeInTheDocument() }) @@ -73,6 +82,51 @@ describe('UploadDropzone', () => { }) }) + describe('tip rendering by billing state', () => { + it('should render tip without total count limit when billing is disabled', () => { + mockEnableBilling = false + + render() + + const tipWithoutTotal = screen.getByText(/datasetCreation\.stepOne\.uploader\.tip(?!WithTotalLimit)/) + expect(tipWithoutTotal).toBeInTheDocument() + expect(screen.queryByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/)).not.toBeInTheDocument() + }) + + it('should render tip with total count limit when billing is enabled', () => { + mockEnableBilling = true + + render() + + expect(screen.getByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/)).toBeInTheDocument() + expect(screen.queryByText(/datasetCreation\.stepOne\.uploader\.tip(?!WithTotalLimit)/)).not.toBeInTheDocument() + }) + + it('should pass file size, batch count and supported types to tip when billing is disabled', () => { + mockEnableBilling = false + + render() + + const tipText = screen.getByText(/datasetCreation\.stepOne\.uploader\.tip/).textContent ?? '' + expect(tipText).toContain('"size":15') + expect(tipText).toContain('"batchCount":5') + expect(tipText).toContain('"supportTypes":"PDF, DOCX, TXT"') + expect(tipText).not.toContain('"totalCount"') + }) + + it('should additionally pass total count to tip when billing is enabled', () => { + mockEnableBilling = true + + render() + + const tipText = screen.getByText(/datasetCreation\.stepOne\.uploader\.tipWithTotalLimit/).textContent ?? '' + expect(tipText).toContain('"size":15') + expect(tipText).toContain('"batchCount":5') + expect(tipText).toContain('"supportTypes":"PDF, DOCX, TXT"') + expect(tipText).toContain('"totalCount":10') + }) + }) + describe('file input configuration', () => { it('should allow multiple files when supportBatchUpload is true', () => { render() diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/upload-dropzone.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/upload-dropzone.tsx index 32aee588df..eab0dd4ce0 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/upload-dropzone.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/upload-dropzone.tsx @@ -1,7 +1,7 @@ import type { ChangeEvent, RefObject } from 'react' import { cn } from '@langgenius/dify-ui/cn' -import { RiUploadCloud2Line } from '@remixicon/react' import { useTranslation } from 'react-i18next' +import { useProviderContextSelector } from '@/context/provider-context' type FileUploadConfig = { file_size_limit: number @@ -37,6 +37,7 @@ const UploadDropzone = ({ allowedExtensions, }: UploadDropzoneProps) => { const { t } = useTranslation() + const enableBilling = useProviderContextSelector(state => state.enableBilling) return ( <> @@ -57,7 +58,7 @@ const UploadDropzone = ({ )} >
- + {supportBatchUpload ? t('stepOne.uploader.button', { ns: 'datasetCreation' }) : t('stepOne.uploader.buttonSingleFile', { ns: 'datasetCreation' })} {allowedExtensions.length > 0 && ( @@ -66,13 +67,20 @@ const UploadDropzone = ({
- {t('stepOne.uploader.tip', { - ns: 'datasetCreation', - size: fileUploadConfig.file_size_limit, - supportTypes: supportTypesShowNames, - batchCount: fileUploadConfig.batch_count_limit, - totalCount: fileUploadConfig.file_upload_limit, - })} + {enableBilling + ? t('stepOne.uploader.tipWithTotalLimit', { + ns: 'datasetCreation', + size: fileUploadConfig.file_size_limit, + supportTypes: supportTypesShowNames, + batchCount: fileUploadConfig.batch_count_limit, + totalCount: fileUploadConfig.file_upload_limit, + }) + : t('stepOne.uploader.tip', { + ns: 'datasetCreation', + size: fileUploadConfig.file_size_limit, + supportTypes: supportTypesShowNames, + batchCount: fileUploadConfig.batch_count_limit, + })}
{dragging &&
}
diff --git a/web/i18n/ar-TN/dataset-creation.json b/web/i18n/ar-TN/dataset-creation.json index 42e9525954..33d80cac8e 100644 --- a/web/i18n/ar-TN/dataset-creation.json +++ b/web/i18n/ar-TN/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "إلغاء", "stepOne.uploader.change": "تغيير", "stepOne.uploader.failed": "فشل التحميل", - "stepOne.uploader.tip": "يدعم {{supportTypes}}. بحد أقصى {{batchCount}} في الدفعة الواحدة و {{size}} ميجابايت لكل منها. الحد الأقصى الإجمالي {{totalCount}} ملفات.", + "stepOne.uploader.tip": "يدعم {{supportTypes}}. بحد أقصى {{batchCount}} في الدفعة الواحدة و {{size}} ميجابايت لكل منها.", + "stepOne.uploader.tipWithTotalLimit": "يدعم {{supportTypes}}. بحد أقصى {{batchCount}} في الدفعة الواحدة و {{size}} ميجابايت لكل منها. الحد الأقصى الإجمالي {{totalCount}} ملفات.", "stepOne.uploader.title": "تحميل ملف", "stepOne.uploader.validation.count": "ملفات متعددة غير مدعومة", "stepOne.uploader.validation.filesNumber": "لقد وصلت إلى حد تحميل الدفعة البالغ {{filesNumber}}.", diff --git a/web/i18n/de-DE/dataset-creation.json b/web/i18n/de-DE/dataset-creation.json index 4d61c0e26b..523e881a0e 100644 --- a/web/i18n/de-DE/dataset-creation.json +++ b/web/i18n/de-DE/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Abbrechen", "stepOne.uploader.change": "Ändern", "stepOne.uploader.failed": "Hochladen fehlgeschlagen", - "stepOne.uploader.tip": "Unterstützt {{supportTypes}}. Maximal {{batchCount}} Dateien pro Batch und {{size}} MB pro Datei. Insgesamt maximal {{totalCount}} Dateien.", + "stepOne.uploader.tip": "Unterstützt {{supportTypes}}. Maximal {{batchCount}} Dateien pro Batch und {{size}} MB pro Datei.", + "stepOne.uploader.tipWithTotalLimit": "Unterstützt {{supportTypes}}. Maximal {{batchCount}} Dateien pro Batch und {{size}} MB pro Datei. Insgesamt maximal {{totalCount}} Dateien.", "stepOne.uploader.title": "Textdatei hochladen", "stepOne.uploader.validation.count": "Mehrere Dateien nicht unterstützt", "stepOne.uploader.validation.filesNumber": "Sie haben das Limit für die Stapelverarbeitung von {{filesNumber}} erreicht.", diff --git a/web/i18n/en-US/dataset-creation.json b/web/i18n/en-US/dataset-creation.json index e544aaa097..1628a8641e 100644 --- a/web/i18n/en-US/dataset-creation.json +++ b/web/i18n/en-US/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Cancel", "stepOne.uploader.change": "Change", "stepOne.uploader.failed": "Upload failed", - "stepOne.uploader.tip": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.", + "stepOne.uploader.tip": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each.", + "stepOne.uploader.tipWithTotalLimit": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.", "stepOne.uploader.title": "Upload file", "stepOne.uploader.validation.count": "Multiple files not supported", "stepOne.uploader.validation.filesNumber": "You have reached the batch upload limit of {{filesNumber}}.", diff --git a/web/i18n/es-ES/dataset-creation.json b/web/i18n/es-ES/dataset-creation.json index 9712a8ba26..571c94dd6d 100644 --- a/web/i18n/es-ES/dataset-creation.json +++ b/web/i18n/es-ES/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Cancelar", "stepOne.uploader.change": "Cambiar", "stepOne.uploader.failed": "Error al cargar", - "stepOne.uploader.tip": "Soporta {{supportTypes}}. Máximo {{batchCount}} archivos por lote y {{size}} MB cada uno. Total máximo de {{totalCount}} archivos.", + "stepOne.uploader.tip": "Soporta {{supportTypes}}. Máximo {{batchCount}} archivos por lote y {{size}} MB cada uno.", + "stepOne.uploader.tipWithTotalLimit": "Soporta {{supportTypes}}. Máximo {{batchCount}} archivos por lote y {{size}} MB cada uno. Total máximo de {{totalCount}} archivos.", "stepOne.uploader.title": "Cargar archivo", "stepOne.uploader.validation.count": "No se admiten varios archivos", "stepOne.uploader.validation.filesNumber": "Has alcanzado el límite de carga por lotes de {{filesNumber}}.", diff --git a/web/i18n/fa-IR/dataset-creation.json b/web/i18n/fa-IR/dataset-creation.json index d8717e54c7..98b4ca9c08 100644 --- a/web/i18n/fa-IR/dataset-creation.json +++ b/web/i18n/fa-IR/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "لغو", "stepOne.uploader.change": "تغییر", "stepOne.uploader.failed": "بارگذاری ناموفق بود", - "stepOne.uploader.tip": "پشتیبانی از {{supportTypes}}. حداکثر {{batchCount}} فایل در هر دسته و {{size}} مگابایت برای هر فایل. حداکثر کل {{totalCount}} فایل.", + "stepOne.uploader.tip": "پشتیبانی از {{supportTypes}}. حداکثر {{batchCount}} فایل در هر دسته و {{size}} مگابایت برای هر فایل.", + "stepOne.uploader.tipWithTotalLimit": "پشتیبانی از {{supportTypes}}. حداکثر {{batchCount}} فایل در هر دسته و {{size}} مگابایت برای هر فایل. حداکثر کل {{totalCount}} فایل.", "stepOne.uploader.title": "بارگذاری فایل", "stepOne.uploader.validation.count": "چندین فایل پشتیبانی نمیشود", "stepOne.uploader.validation.filesNumber": "شما به حد مجاز بارگذاری دستهای {{filesNumber}} رسیدهاید.", diff --git a/web/i18n/fr-FR/dataset-creation.json b/web/i18n/fr-FR/dataset-creation.json index 2e415066e9..4d8742945f 100644 --- a/web/i18n/fr-FR/dataset-creation.json +++ b/web/i18n/fr-FR/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Annuler", "stepOne.uploader.change": "Changer", "stepOne.uploader.failed": "Le téléchargement a échoué", - "stepOne.uploader.tip": "Prend en charge {{supportTypes}}. Maximum {{batchCount}} fichiers par lot et {{size}} MB chacun. Maximum total de {{totalCount}} fichiers.", + "stepOne.uploader.tip": "Prend en charge {{supportTypes}}. Maximum {{batchCount}} fichiers par lot et {{size}} MB chacun.", + "stepOne.uploader.tipWithTotalLimit": "Prend en charge {{supportTypes}}. Maximum {{batchCount}} fichiers par lot et {{size}} MB chacun. Maximum total de {{totalCount}} fichiers.", "stepOne.uploader.title": "Télécharger le fichier texte", "stepOne.uploader.validation.count": "Plusieurs fichiers non pris en charge", "stepOne.uploader.validation.filesNumber": "Vous avez atteint la limite de téléchargement par lot de {{filesNumber}}.", diff --git a/web/i18n/hi-IN/dataset-creation.json b/web/i18n/hi-IN/dataset-creation.json index 7b3cc55537..70e8bf20e5 100644 --- a/web/i18n/hi-IN/dataset-creation.json +++ b/web/i18n/hi-IN/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "रद्द करें", "stepOne.uploader.change": "बदलें", "stepOne.uploader.failed": "अपलोड विफल रहा", - "stepOne.uploader.tip": "{{supportTypes}} समर्थित है। एक बैच में अधिकतम {{batchCount}} फ़ाइलें और प्रत्येक {{size}} MB। कुल अधिकतम {{totalCount}} फ़ाइलें।", + "stepOne.uploader.tip": "{{supportTypes}} समर्थित है। एक बैच में अधिकतम {{batchCount}} फ़ाइलें और प्रत्येक {{size}} MB।", + "stepOne.uploader.tipWithTotalLimit": "{{supportTypes}} समर्थित है। एक बैच में अधिकतम {{batchCount}} फ़ाइलें और प्रत्येक {{size}} MB। कुल अधिकतम {{totalCount}} फ़ाइलें।", "stepOne.uploader.title": "फ़ाइल अपलोड करें", "stepOne.uploader.validation.count": "एकाधिक फ़ाइलें समर्थित नहीं हैं", "stepOne.uploader.validation.filesNumber": "आपने {{filesNumber}} की बैच अपलोड सीमा तक पहुँच गए हैं।", diff --git a/web/i18n/id-ID/dataset-creation.json b/web/i18n/id-ID/dataset-creation.json index 42c6f08a34..a6f06c8c52 100644 --- a/web/i18n/id-ID/dataset-creation.json +++ b/web/i18n/id-ID/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Membatalkan", "stepOne.uploader.change": "Ubah", "stepOne.uploader.failed": "Upload gagal", - "stepOne.uploader.tip": "Mendukung {{supportTypes}}. Maksimal {{batchCount}} dalam satu batch dan {{size}} MB masing-masing. Total maksimal {{totalCount}} file.", + "stepOne.uploader.tip": "Mendukung {{supportTypes}}. Maksimal {{batchCount}} dalam satu batch dan {{size}} MB masing-masing.", + "stepOne.uploader.tipWithTotalLimit": "Mendukung {{supportTypes}}. Maksimal {{batchCount}} dalam satu batch dan {{size}} MB masing-masing. Total maksimal {{totalCount}} file.", "stepOne.uploader.title": "Unggah file", "stepOne.uploader.validation.count": "Beberapa file tidak didukung", "stepOne.uploader.validation.filesNumber": "Anda telah mencapai batas unggah batch sebanyak {{filesNumber}}.", diff --git a/web/i18n/it-IT/dataset-creation.json b/web/i18n/it-IT/dataset-creation.json index 59226f0a50..b53a9847a6 100644 --- a/web/i18n/it-IT/dataset-creation.json +++ b/web/i18n/it-IT/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Annulla", "stepOne.uploader.change": "Cambia", "stepOne.uploader.failed": "Caricamento fallito", - "stepOne.uploader.tip": "Supporta {{supportTypes}}. Massimo {{batchCount}} file per batch e {{size}} MB ciascuno. Totale massimo {{totalCount}} file.", + "stepOne.uploader.tip": "Supporta {{supportTypes}}. Massimo {{batchCount}} file per batch e {{size}} MB ciascuno.", + "stepOne.uploader.tipWithTotalLimit": "Supporta {{supportTypes}}. Massimo {{batchCount}} file per batch e {{size}} MB ciascuno. Totale massimo {{totalCount}} file.", "stepOne.uploader.title": "Carica file", "stepOne.uploader.validation.count": "Più file non supportati", "stepOne.uploader.validation.filesNumber": "Hai raggiunto il limite di caricamento batch di {{filesNumber}}.", diff --git a/web/i18n/ja-JP/dataset-creation.json b/web/i18n/ja-JP/dataset-creation.json index 3115b69070..14ab74357d 100644 --- a/web/i18n/ja-JP/dataset-creation.json +++ b/web/i18n/ja-JP/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "キャンセル", "stepOne.uploader.change": "変更", "stepOne.uploader.failed": "アップロードに失敗しました", - "stepOne.uploader.tip": "{{supportTypes}}をサポートしています。1バッチあたり最大{{batchCount}}ファイル、各ファイル{{size}}MB まで。合計最大{{totalCount}}ファイル。", + "stepOne.uploader.tip": "{{supportTypes}}をサポートしています。1バッチあたり最大{{batchCount}}ファイル、各ファイル{{size}}MB まで。", + "stepOne.uploader.tipWithTotalLimit": "{{supportTypes}}をサポートしています。1バッチあたり最大{{batchCount}}ファイル、各ファイル{{size}}MB まで。合計最大{{totalCount}}ファイル。", "stepOne.uploader.title": "テキストファイルをアップロード", "stepOne.uploader.validation.count": "複数のファイルはサポートされていません", "stepOne.uploader.validation.filesNumber": "バッチアップロードの制限({{filesNumber}}個)に達しました。", diff --git a/web/i18n/ko-KR/dataset-creation.json b/web/i18n/ko-KR/dataset-creation.json index be3e198a7b..5a392a93f1 100644 --- a/web/i18n/ko-KR/dataset-creation.json +++ b/web/i18n/ko-KR/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "취소", "stepOne.uploader.change": "변경", "stepOne.uploader.failed": "업로드에 실패했습니다", - "stepOne.uploader.tip": "{{supportTypes}}을(를) 지원합니다. 배치당 최대 {{batchCount}}개 파일, 각 파일당 {{size}}MB까지. 총 최대 {{totalCount}}개 파일.", + "stepOne.uploader.tip": "{{supportTypes}}을(를) 지원합니다. 배치당 최대 {{batchCount}}개 파일, 각 파일당 {{size}}MB까지.", + "stepOne.uploader.tipWithTotalLimit": "{{supportTypes}}을(를) 지원합니다. 배치당 최대 {{batchCount}}개 파일, 각 파일당 {{size}}MB까지. 총 최대 {{totalCount}}개 파일.", "stepOne.uploader.title": "텍스트 파일 업로드", "stepOne.uploader.validation.count": "여러 파일은 지원되지 않습니다", "stepOne.uploader.validation.filesNumber": "일괄 업로드 제한 ({{filesNumber}}개) 에 도달했습니다.", diff --git a/web/i18n/nl-NL/dataset-creation.json b/web/i18n/nl-NL/dataset-creation.json index e544aaa097..1628a8641e 100644 --- a/web/i18n/nl-NL/dataset-creation.json +++ b/web/i18n/nl-NL/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Cancel", "stepOne.uploader.change": "Change", "stepOne.uploader.failed": "Upload failed", - "stepOne.uploader.tip": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.", + "stepOne.uploader.tip": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each.", + "stepOne.uploader.tipWithTotalLimit": "Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.", "stepOne.uploader.title": "Upload file", "stepOne.uploader.validation.count": "Multiple files not supported", "stepOne.uploader.validation.filesNumber": "You have reached the batch upload limit of {{filesNumber}}.", diff --git a/web/i18n/pl-PL/dataset-creation.json b/web/i18n/pl-PL/dataset-creation.json index eab4afed17..72aa227c26 100644 --- a/web/i18n/pl-PL/dataset-creation.json +++ b/web/i18n/pl-PL/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Anuluj", "stepOne.uploader.change": "Zmień", "stepOne.uploader.failed": "Przesyłanie nie powiodło się", - "stepOne.uploader.tip": "Obsługuje {{supportTypes}}. Maksymalnie {{batchCount}} plików w partii, każdy do {{size}} MB. Łącznie maksymalnie {{totalCount}} plików.", + "stepOne.uploader.tip": "Obsługuje {{supportTypes}}. Maksymalnie {{batchCount}} plików w partii, każdy do {{size}} MB.", + "stepOne.uploader.tipWithTotalLimit": "Obsługuje {{supportTypes}}. Maksymalnie {{batchCount}} plików w partii, każdy do {{size}} MB. Łącznie maksymalnie {{totalCount}} plików.", "stepOne.uploader.title": "Prześlij plik tekstowy", "stepOne.uploader.validation.count": "Nieobsługiwane przesyłanie wielu plików", "stepOne.uploader.validation.filesNumber": "Osiągnąłeś limit przesłania partii {{filesNumber}}.", diff --git a/web/i18n/pt-BR/dataset-creation.json b/web/i18n/pt-BR/dataset-creation.json index 90469db226..9438ddef95 100644 --- a/web/i18n/pt-BR/dataset-creation.json +++ b/web/i18n/pt-BR/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Cancelar", "stepOne.uploader.change": "Alterar", "stepOne.uploader.failed": "Falha no envio", - "stepOne.uploader.tip": "Suporta {{supportTypes}}. Máximo de {{batchCount}} arquivos por lote e {{size}} MB cada. Total máximo de {{totalCount}} arquivos.", + "stepOne.uploader.tip": "Suporta {{supportTypes}}. Máximo de {{batchCount}} arquivos por lote e {{size}} MB cada.", + "stepOne.uploader.tipWithTotalLimit": "Suporta {{supportTypes}}. Máximo de {{batchCount}} arquivos por lote e {{size}} MB cada. Total máximo de {{totalCount}} arquivos.", "stepOne.uploader.title": "Enviar arquivo de texto", "stepOne.uploader.validation.count": "Vários arquivos não suportados", "stepOne.uploader.validation.filesNumber": "Limite de upload em massa {{filesNumber}}.", diff --git a/web/i18n/ro-RO/dataset-creation.json b/web/i18n/ro-RO/dataset-creation.json index 62ccedceea..fcc22a93a1 100644 --- a/web/i18n/ro-RO/dataset-creation.json +++ b/web/i18n/ro-RO/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Anulează", "stepOne.uploader.change": "Schimbă", "stepOne.uploader.failed": "Încărcarea a eșuat", - "stepOne.uploader.tip": "Acceptă {{supportTypes}}. Maxim {{batchCount}} fișiere pe lot și {{size}} MB fiecare. Total maxim {{totalCount}} fișiere.", + "stepOne.uploader.tip": "Acceptă {{supportTypes}}. Maxim {{batchCount}} fișiere pe lot și {{size}} MB fiecare.", + "stepOne.uploader.tipWithTotalLimit": "Acceptă {{supportTypes}}. Maxim {{batchCount}} fișiere pe lot și {{size}} MB fiecare. Total maxim {{totalCount}} fișiere.", "stepOne.uploader.title": "Încărcați fișier text", "stepOne.uploader.validation.count": "Nu se acceptă mai multe fișiere", "stepOne.uploader.validation.filesNumber": "Ați atins limita de încărcare în lot de {{filesNumber}} fișiere.", diff --git a/web/i18n/ru-RU/dataset-creation.json b/web/i18n/ru-RU/dataset-creation.json index d5e72438e6..0ff68b948c 100644 --- a/web/i18n/ru-RU/dataset-creation.json +++ b/web/i18n/ru-RU/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Отмена", "stepOne.uploader.change": "Изменить", "stepOne.uploader.failed": "Ошибка загрузки", - "stepOne.uploader.tip": "Поддерживаются {{supportTypes}}. Максимум {{batchCount}} файлов за раз, каждый до {{size}} МБ. Всего максимум {{totalCount}} файлов.", + "stepOne.uploader.tip": "Поддерживаются {{supportTypes}}. Максимум {{batchCount}} файлов за раз, каждый до {{size}} МБ.", + "stepOne.uploader.tipWithTotalLimit": "Поддерживаются {{supportTypes}}. Максимум {{batchCount}} файлов за раз, каждый до {{size}} МБ. Всего максимум {{totalCount}} файлов.", "stepOne.uploader.title": "Загрузить файл", "stepOne.uploader.validation.count": "Несколько файлов не поддерживаются", "stepOne.uploader.validation.filesNumber": "Вы достигли лимита пакетной загрузки {{filesNumber}} файлов.", diff --git a/web/i18n/sl-SI/dataset-creation.json b/web/i18n/sl-SI/dataset-creation.json index d2ab2cd6bb..37f283ee32 100644 --- a/web/i18n/sl-SI/dataset-creation.json +++ b/web/i18n/sl-SI/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Prekliči", "stepOne.uploader.change": "Zamenjaj", "stepOne.uploader.failed": "Nalaganje ni uspelo", - "stepOne.uploader.tip": "Podpira {{supportTypes}}. Največje število datotek v seriji: {{batchCount}}, vsaka do {{size}} MB. Skupaj največ {{totalCount}} datotek.", + "stepOne.uploader.tip": "Podpira {{supportTypes}}. Največje število datotek v seriji: {{batchCount}}, vsaka do {{size}} MB.", + "stepOne.uploader.tipWithTotalLimit": "Podpira {{supportTypes}}. Največje število datotek v seriji: {{batchCount}}, vsaka do {{size}} MB. Skupaj največ {{totalCount}} datotek.", "stepOne.uploader.title": "Naloži datoteko", "stepOne.uploader.validation.count": "Podprta je le ena datoteka", "stepOne.uploader.validation.filesNumber": "Dosegli ste omejitev za pošiljanje {{filesNumber}} datotek.", diff --git a/web/i18n/th-TH/dataset-creation.json b/web/i18n/th-TH/dataset-creation.json index 4f8d5dc1a1..eab4eadd78 100644 --- a/web/i18n/th-TH/dataset-creation.json +++ b/web/i18n/th-TH/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "ยกเลิก", "stepOne.uploader.change": "เปลี่ยน", "stepOne.uploader.failed": "อัปโหลดล้มเหลว", - "stepOne.uploader.tip": "รองรับ {{supportTypes}} สูงสุด {{batchCount}} ไฟล์ต่อชุดและ {{size}} MB แต่ละไฟล์ รวมสูงสุด {{totalCount}} ไฟล์", + "stepOne.uploader.tip": "รองรับ {{supportTypes}} สูงสุด {{batchCount}} ไฟล์ต่อชุดและ {{size}} MB แต่ละไฟล์", + "stepOne.uploader.tipWithTotalLimit": "รองรับ {{supportTypes}} สูงสุด {{batchCount}} ไฟล์ต่อชุดและ {{size}} MB แต่ละไฟล์ รวมสูงสุด {{totalCount}} ไฟล์", "stepOne.uploader.title": "อัปโหลดไฟล์", "stepOne.uploader.validation.count": "ไม่รองรับหลายไฟล์", "stepOne.uploader.validation.filesNumber": "คุณถึงขีดจํากัดการอัปโหลดเป็นชุดของ {{filesNumber}} แล้ว", diff --git a/web/i18n/tr-TR/dataset-creation.json b/web/i18n/tr-TR/dataset-creation.json index 81f09945c2..b90a1673ee 100644 --- a/web/i18n/tr-TR/dataset-creation.json +++ b/web/i18n/tr-TR/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "İptal", "stepOne.uploader.change": "Değiştir", "stepOne.uploader.failed": "Yükleme başarısız", - "stepOne.uploader.tip": "{{supportTypes}} destekler. Parti başına en fazla {{batchCount}} dosya ve her biri {{size}} MB. Toplam en fazla {{totalCount}} dosya.", + "stepOne.uploader.tip": "{{supportTypes}} destekler. Parti başına en fazla {{batchCount}} dosya ve her biri {{size}} MB.", + "stepOne.uploader.tipWithTotalLimit": "{{supportTypes}} destekler. Parti başına en fazla {{batchCount}} dosya ve her biri {{size}} MB. Toplam en fazla {{totalCount}} dosya.", "stepOne.uploader.title": "Dosya yükle", "stepOne.uploader.validation.count": "Birden fazla dosya desteklenmiyor", "stepOne.uploader.validation.filesNumber": "Toplu yükleme sınırına ulaştınız, {{filesNumber}} dosya.", diff --git a/web/i18n/uk-UA/dataset-creation.json b/web/i18n/uk-UA/dataset-creation.json index 781151fcd7..cb3a77c301 100644 --- a/web/i18n/uk-UA/dataset-creation.json +++ b/web/i18n/uk-UA/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Скасувати", "stepOne.uploader.change": "Змінити", "stepOne.uploader.failed": "Завантаження не вдалося", - "stepOne.uploader.tip": "Підтримуються {{supportTypes}}. Максимум {{batchCount}} файлів за раз, кожен до {{size}} МБ. Загалом максимум {{totalCount}} файлів.", + "stepOne.uploader.tip": "Підтримуються {{supportTypes}}. Максимум {{batchCount}} файлів за раз, кожен до {{size}} МБ.", + "stepOne.uploader.tipWithTotalLimit": "Підтримуються {{supportTypes}}. Максимум {{batchCount}} файлів за раз, кожен до {{size}} МБ. Загалом максимум {{totalCount}} файлів.", "stepOne.uploader.title": "Завантажити текстовий файл", "stepOne.uploader.validation.count": "Не підтримується завантаження кількох файлів", "stepOne.uploader.validation.filesNumber": "Ліміт масового завантаження {{filesNumber}}.", diff --git a/web/i18n/vi-VN/dataset-creation.json b/web/i18n/vi-VN/dataset-creation.json index a36a782ca4..c2c64cac51 100644 --- a/web/i18n/vi-VN/dataset-creation.json +++ b/web/i18n/vi-VN/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "Hủy", "stepOne.uploader.change": "Thay đổi", "stepOne.uploader.failed": "Tải lên thất bại", - "stepOne.uploader.tip": "Hỗ trợ {{supportTypes}}. Tối đa {{batchCount}} tệp trong một lô và {{size}} MB mỗi tệp. Tổng tối đa {{totalCount}} tệp.", + "stepOne.uploader.tip": "Hỗ trợ {{supportTypes}}. Tối đa {{batchCount}} tệp trong một lô và {{size}} MB mỗi tệp.", + "stepOne.uploader.tipWithTotalLimit": "Hỗ trợ {{supportTypes}}. Tối đa {{batchCount}} tệp trong một lô và {{size}} MB mỗi tệp. Tổng tối đa {{totalCount}} tệp.", "stepOne.uploader.title": "Tải lên tệp văn bản", "stepOne.uploader.validation.count": "Không hỗ trợ tải lên nhiều tệp", "stepOne.uploader.validation.filesNumber": "Bạn đã đạt đến giới hạn tải lên lô của {{filesNumber}} tệp.", diff --git a/web/i18n/zh-Hans/dataset-creation.json b/web/i18n/zh-Hans/dataset-creation.json index 102f64e5e7..bcf794b163 100644 --- a/web/i18n/zh-Hans/dataset-creation.json +++ b/web/i18n/zh-Hans/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "取消", "stepOne.uploader.change": "更改文件", "stepOne.uploader.failed": "上传失败", - "stepOne.uploader.tip": "已支持 {{supportTypes}},每批最多 {{batchCount}} 个文件,每个文件不超过 {{size}} MB ,总数不超过 {{totalCount}} 个文件。", + "stepOne.uploader.tip": "已支持 {{supportTypes}},每批最多 {{batchCount}} 个文件,每个文件不超过 {{size}} MB。", + "stepOne.uploader.tipWithTotalLimit": "已支持 {{supportTypes}},每批最多 {{batchCount}} 个文件,每个文件不超过 {{size}} MB,总数不超过 {{totalCount}} 个文件。", "stepOne.uploader.title": "上传文本文件", "stepOne.uploader.validation.count": "暂不支持多个文件", "stepOne.uploader.validation.filesNumber": "批量上传限制 {{filesNumber}}。", diff --git a/web/i18n/zh-Hant/dataset-creation.json b/web/i18n/zh-Hant/dataset-creation.json index b72a92ac50..3deef58239 100644 --- a/web/i18n/zh-Hant/dataset-creation.json +++ b/web/i18n/zh-Hant/dataset-creation.json @@ -35,7 +35,8 @@ "stepOne.uploader.cancel": "取消", "stepOne.uploader.change": "更改檔案", "stepOne.uploader.failed": "上傳失敗", - "stepOne.uploader.tip": "支援 {{supportTypes}}。每批最多 {{batchCount}} 個檔案,每個檔案不超過 {{size}} MB,總數不超過 {{totalCount}} 個檔案。", + "stepOne.uploader.tip": "支援 {{supportTypes}}。每批最多 {{batchCount}} 個檔案,每個檔案不超過 {{size}} MB。", + "stepOne.uploader.tipWithTotalLimit": "支援 {{supportTypes}}。每批最多 {{batchCount}} 個檔案,每個檔案不超過 {{size}} MB,總數不超過 {{totalCount}} 個檔案。", "stepOne.uploader.title": "上傳文字檔案", "stepOne.uploader.validation.count": "暫不支援多個檔案", "stepOne.uploader.validation.filesNumber": "批次上傳限制 {{filesNumber}}。",