From 54921844bb3471303c91a2ed4cb5bd7140336053 Mon Sep 17 00:00:00 2001 From: yyh <92089059+lyzno1@users.noreply.github.com> Date: Tue, 20 Jan 2026 18:43:01 +0800 Subject: [PATCH 01/25] fix(web): disable HTML escaping for form field validation messages (#31292) --- web/app/components/app/annotation/index.tsx | 2 +- .../config/automatic/get-automatic-res.tsx | 1 - .../app/overview/settings/index.spec.tsx | 2 +- .../base/markdown-blocks/code-block.tsx | 4 +-- .../embedding-process/rule-detail.tsx | 6 ++-- .../datasets/settings/form/index.tsx | 2 +- .../get-schema.spec.tsx | 2 +- .../nodes/_base/components/variable/utils.ts | 3 +- .../workflow/nodes/data-source/panel.tsx | 30 ++++++++++--------- .../components/retrieval-config.tsx | 2 +- .../nodes/knowledge-retrieval/utils.ts | 5 ++-- .../components/workflow/nodes/tool/panel.tsx | 30 ++++++++++--------- .../workflow/note-node/note-editor/utils.ts | 1 - web/eslint-suppressions.json | 6 ---- web/i18n-config/settings.ts | 3 ++ web/scripts/analyze-i18n-diff.ts | 8 ++--- 16 files changed, 52 insertions(+), 55 deletions(-) diff --git a/web/app/components/app/annotation/index.tsx b/web/app/components/app/annotation/index.tsx index 19977c8c50..553836d73c 100644 --- a/web/app/components/app/annotation/index.tsx +++ b/web/app/components/app/annotation/index.tsx @@ -203,7 +203,7 @@ const Annotation: FC = (props) => { {isLoading ? - // eslint-disable-next-line sonarjs/no-nested-conditional + : total > 0 ? ( = ({ }, ] as const - // eslint-disable-next-line sonarjs/no-nested-template-literals, sonarjs/no-nested-conditional const [instructionFromSessionStorage, setInstruction] = useSessionStorageState(`improve-instruction-${flowId}${isBasicMode ? '' : `-${nodeId}${editorId ? `-${editorId}` : ''}`}`) const instruction = instructionFromSessionStorage || '' const [ideaOutput, setIdeaOutput] = useState('') diff --git a/web/app/components/app/overview/settings/index.spec.tsx b/web/app/components/app/overview/settings/index.spec.tsx index 41d86047f0..776c55d149 100644 --- a/web/app/components/app/overview/settings/index.spec.tsx +++ b/web/app/components/app/overview/settings/index.spec.tsx @@ -175,7 +175,7 @@ describe('SettingsModal', () => { renderSettingsModal() fireEvent.click(screen.getByText('appOverview.overview.appInfo.settings.more.entry')) const privacyInput = screen.getByPlaceholderText('appOverview.overview.appInfo.settings.more.privacyPolicyPlaceholder') - // eslint-disable-next-line sonarjs/no-clear-text-protocols + fireEvent.change(privacyInput, { target: { value: 'ftp://invalid-url' } }) fireEvent.click(screen.getByText('common.operation.save')) diff --git a/web/app/components/base/markdown-blocks/code-block.tsx b/web/app/components/base/markdown-blocks/code-block.tsx index 79a374e291..b9b3074351 100644 --- a/web/app/components/base/markdown-blocks/code-block.tsx +++ b/web/app/components/base/markdown-blocks/code-block.tsx @@ -205,7 +205,7 @@ const CodeBlock: any = memo(({ inline, className, children = '', ...props }: any } catch { try { - // eslint-disable-next-line no-new-func, sonarjs/code-eval + // eslint-disable-next-line no-new-func const result = new Function(`return ${trimmedContent}`)() if (typeof result === 'object' && result !== null) { setFinalChartOption(result) @@ -250,7 +250,7 @@ const CodeBlock: any = memo(({ inline, className, children = '', ...props }: any } catch { try { - // eslint-disable-next-line no-new-func, sonarjs/code-eval + // eslint-disable-next-line no-new-func const result = new Function(`return ${trimmedContent}`)() if (typeof result === 'object' && result !== null) { setFinalChartOption(result) diff --git a/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/rule-detail.tsx b/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/rule-detail.tsx index df41e8c1e7..8fe6af6170 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/rule-detail.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/rule-detail.tsx @@ -28,10 +28,10 @@ const RuleDetail = ({ case 'mode': value = !sourceData?.mode ? value - // eslint-disable-next-line sonarjs/no-nested-conditional + : sourceData.mode === ProcessMode.general ? (t('embedding.custom', { ns: 'datasetDocuments' }) as string) - // eslint-disable-next-line sonarjs/no-nested-conditional + : `${t('embedding.hierarchical', { ns: 'datasetDocuments' })} · ${sourceData?.rules?.parent_mode === 'paragraph' ? t('parentMode.paragraph', { ns: 'dataset' }) : t('parentMode.fullDoc', { ns: 'dataset' })}` @@ -70,7 +70,7 @@ const RuleDetail = ({ src={ retrievalMethod === RETRIEVE_METHOD.fullText ? retrievalIcon.fullText - // eslint-disable-next-line sonarjs/no-nested-conditional + : retrievalMethod === RETRIEVE_METHOD.hybrid ? retrievalIcon.hybrid : retrievalIcon.vector diff --git a/web/app/components/datasets/settings/form/index.tsx b/web/app/components/datasets/settings/form/index.tsx index 206c264a88..6081a36fcc 100644 --- a/web/app/components/datasets/settings/form/index.tsx +++ b/web/app/components/datasets/settings/form/index.tsx @@ -403,7 +403,7 @@ const Form = () => { ) - // eslint-disable-next-line sonarjs/no-nested-conditional + : indexMethod ? ( <> diff --git a/web/app/components/tools/edit-custom-collection-modal/get-schema.spec.tsx b/web/app/components/tools/edit-custom-collection-modal/get-schema.spec.tsx index de156ce68a..fa316c4aab 100644 --- a/web/app/components/tools/edit-custom-collection-modal/get-schema.spec.tsx +++ b/web/app/components/tools/edit-custom-collection-modal/get-schema.spec.tsx @@ -23,7 +23,7 @@ describe('GetSchema', () => { it('shows an error when the URL is not http', () => { fireEvent.click(screen.getByText('tools.createTool.importFromUrl')) const input = screen.getByPlaceholderText('tools.createTool.importFromUrlPlaceHolder') - // eslint-disable-next-line sonarjs/no-clear-text-protocols + fireEvent.change(input, { target: { value: 'ftp://invalid' } }) fireEvent.click(screen.getByText('common.operation.ok')) diff --git a/web/app/components/workflow/nodes/_base/components/variable/utils.ts b/web/app/components/workflow/nodes/_base/components/variable/utils.ts index e5e8174456..2f83945dc2 100644 --- a/web/app/components/workflow/nodes/_base/components/variable/utils.ts +++ b/web/app/components/workflow/nodes/_base/components/variable/utils.ts @@ -474,7 +474,6 @@ const formatItem = ( break } - // eslint-disable-next-line sonarjs/no-duplicated-branches case BlockEnum.VariableAggregator: { const { output_type, advanced_settings } = data as VariableAssignerNodeType @@ -1875,7 +1874,7 @@ export const updateNodeVars = ( } break } - // eslint-disable-next-line sonarjs/no-duplicated-branches + case BlockEnum.VariableAggregator: { const payload = data as VariableAssignerNodeType if (payload.variables) { diff --git a/web/app/components/workflow/nodes/data-source/panel.tsx b/web/app/components/workflow/nodes/data-source/panel.tsx index f29c37d16d..eb233c01c8 100644 --- a/web/app/components/workflow/nodes/data-source/panel.tsx +++ b/web/app/components/workflow/nodes/data-source/panel.tsx @@ -139,20 +139,22 @@ const Panel: FC> = ({ id, data }) => { return (
- {outputItem.value?.type === 'object' ? ( - - ) : ( - - )} + {outputItem.value?.type === 'object' + ? ( + + ) + : ( + + )}
) })} diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/components/retrieval-config.tsx b/web/app/components/workflow/nodes/knowledge-retrieval/components/retrieval-config.tsx index e7860d2fb2..c3eef42a39 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/components/retrieval-config.tsx +++ b/web/app/components/workflow/nodes/knowledge-retrieval/components/retrieval-config.tsx @@ -100,7 +100,7 @@ const RetrievalConfig: FC = ({ score_threshold: configs.score_threshold_enabled ? (configs.score_threshold ?? DATASET_DEFAULT.score_threshold) : null, reranking_model: retrieval_mode === RETRIEVE_TYPE.oneWay ? undefined - // eslint-disable-next-line sonarjs/no-nested-conditional + : (!configs.reranking_model?.reranking_provider_name ? undefined : { diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts b/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts index a30ec8e735..2ce57bc270 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts +++ b/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts @@ -135,7 +135,7 @@ export const getMultipleRetrievalConfig = ( vector_setting: { vector_weight: allHighQualityVectorSearch ? DEFAULT_WEIGHTED_SCORE.allHighQualityVectorSearch.semantic - // eslint-disable-next-line sonarjs/no-nested-conditional + : allHighQualityFullTextSearch ? DEFAULT_WEIGHTED_SCORE.allHighQualityFullTextSearch.semantic : DEFAULT_WEIGHTED_SCORE.other.semantic, @@ -145,7 +145,7 @@ export const getMultipleRetrievalConfig = ( keyword_setting: { keyword_weight: allHighQualityVectorSearch ? DEFAULT_WEIGHTED_SCORE.allHighQualityVectorSearch.keyword - // eslint-disable-next-line sonarjs/no-nested-conditional + : allHighQualityFullTextSearch ? DEFAULT_WEIGHTED_SCORE.allHighQualityFullTextSearch.keyword : DEFAULT_WEIGHTED_SCORE.other.keyword, @@ -232,7 +232,6 @@ export const getMultipleRetrievalConfig = ( result.reranking_mode = RerankingModeEnum.RerankingModel result.reranking_enable = true - // eslint-disable-next-line sonarjs/nested-control-flow if ((!result.reranking_model?.provider || !result.reranking_model?.model) && isFallbackRerankModelValid) { result.reranking_model = { provider: fallbackRerankModel.provider || '', diff --git a/web/app/components/workflow/nodes/tool/panel.tsx b/web/app/components/workflow/nodes/tool/panel.tsx index 9ff649b207..899a26ff4f 100644 --- a/web/app/components/workflow/nodes/tool/panel.tsx +++ b/web/app/components/workflow/nodes/tool/panel.tsx @@ -124,20 +124,22 @@ const Panel: FC> = ({ // TODO empty object type always match `qa_structured` schema type return (
- {outputItem.value?.type === 'object' ? ( - - ) : ( - - )} + {outputItem.value?.type === 'object' + ? ( + + ) + : ( + + )}
) })} diff --git a/web/app/components/workflow/note-node/note-editor/utils.ts b/web/app/components/workflow/note-node/note-editor/utils.ts index dff98a8301..22cfc3726a 100644 --- a/web/app/components/workflow/note-node/note-editor/utils.ts +++ b/web/app/components/workflow/note-node/note-editor/utils.ts @@ -18,5 +18,4 @@ export function getSelectedNode( return $isAtNodeEnd(anchor) ? anchorNode : focusNode } -// eslint-disable-next-line sonarjs/empty-string-repetition export const urlRegExp = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-]*)?\??[-+=&;%@.\w]*#?\w*)?)/ diff --git a/web/eslint-suppressions.json b/web/eslint-suppressions.json index 755ea07f56..4f274115c8 100644 --- a/web/eslint-suppressions.json +++ b/web/eslint-suppressions.json @@ -3280,9 +3280,6 @@ } }, "app/components/workflow/nodes/data-source/panel.tsx": { - "style/multiline-ternary": { - "count": 2 - }, "ts/no-explicit-any": { "count": 3 } @@ -3665,9 +3662,6 @@ } }, "app/components/workflow/nodes/tool/panel.tsx": { - "style/multiline-ternary": { - "count": 2 - }, "ts/no-explicit-any": { "count": 2 } diff --git a/web/i18n-config/settings.ts b/web/i18n-config/settings.ts index 1bf37ab21d..ea2a8a0058 100644 --- a/web/i18n-config/settings.ts +++ b/web/i18n-config/settings.ts @@ -9,5 +9,8 @@ export function getInitOptions(): InitOptions { partialBundledLanguages: true, keySeparator: false, ns: namespacesCamelCase, + interpolation: { + escapeValue: false, + }, } } diff --git a/web/scripts/analyze-i18n-diff.ts b/web/scripts/analyze-i18n-diff.ts index 9fd5f3b4a7..bd830c5523 100644 --- a/web/scripts/analyze-i18n-diff.ts +++ b/web/scripts/analyze-i18n-diff.ts @@ -106,7 +106,7 @@ function parseTsContent(content: string): NestedTranslation { // Use Function constructor to safely evaluate the object literal // This handles JS object syntax like unquoted keys, template literals, etc. try { - // eslint-disable-next-line no-new-func, sonarjs/code-eval + // eslint-disable-next-line no-new-func const fn = new Function(`return (${cleaned})`) return fn() as NestedTranslation } @@ -123,7 +123,7 @@ function parseTsContent(content: string): NestedTranslation { function getMainBranchFile(filePath: string): string | null { try { const relativePath = `./i18n/${LOCALE}/${filePath}` - // eslint-disable-next-line sonarjs/os-command + return execSync(`git show main:${relativePath}`, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], @@ -148,12 +148,12 @@ function getTranslationFiles(): string[] { function getMainBranchNamespaces(): string[] { try { const relativePath = `./i18n/${LOCALE}` - // eslint-disable-next-line sonarjs/os-command + const output = execSync(`git ls-tree --name-only main ${relativePath}/`, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], }) - // eslint-disable-next-line sonarjs/os-command + return output .trim() .split('\n') From 3bb80a09346bf455abcfc9132ef18d46fbd9d82e Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Tue, 20 Jan 2026 21:14:20 +0800 Subject: [PATCH 02/25] chore: lint for i18n place holder (#31283) Co-authored-by: yyh --- .github/workflows/translate-i18n-claude.yml | 19 +++ web/eslint-rules/index.js | 2 + .../rules/consistent-placeholders.js | 109 ++++++++++++++++++ web/eslint.config.mjs | 1 + web/i18n/ar-TN/plugin.json | 2 +- web/i18n/de-DE/app-debug.json | 4 +- web/i18n/de-DE/app.json | 2 +- web/i18n/de-DE/billing.json | 6 +- web/i18n/de-DE/common.json | 2 +- web/i18n/de-DE/dataset-creation.json | 2 +- web/i18n/de-DE/dataset-hit-testing.json | 2 +- web/i18n/de-DE/dataset-settings.json | 2 +- web/i18n/de-DE/plugin.json | 6 +- web/i18n/de-DE/tools.json | 2 +- web/i18n/de-DE/workflow.json | 6 +- web/i18n/es-ES/app.json | 6 +- web/i18n/es-ES/billing.json | 6 +- web/i18n/es-ES/common.json | 2 +- web/i18n/es-ES/dataset-creation.json | 2 +- web/i18n/es-ES/dataset-hit-testing.json | 2 +- web/i18n/es-ES/dataset-settings.json | 2 +- web/i18n/es-ES/plugin.json | 8 +- web/i18n/es-ES/tools.json | 2 +- web/i18n/es-ES/workflow.json | 18 +-- web/i18n/fa-IR/app.json | 2 +- web/i18n/fa-IR/billing.json | 6 +- web/i18n/fa-IR/common.json | 4 +- web/i18n/fa-IR/dataset-creation.json | 2 +- web/i18n/fa-IR/dataset-hit-testing.json | 2 +- web/i18n/fa-IR/dataset-settings.json | 2 +- web/i18n/fa-IR/dataset.json | 2 +- web/i18n/fa-IR/plugin.json | 8 +- web/i18n/fa-IR/tools.json | 8 +- web/i18n/fa-IR/workflow.json | 12 +- web/i18n/fr-FR/app-overview.json | 2 +- web/i18n/fr-FR/app.json | 2 +- web/i18n/fr-FR/billing.json | 6 +- web/i18n/fr-FR/common.json | 4 +- web/i18n/fr-FR/dataset-creation.json | 2 +- web/i18n/fr-FR/dataset-hit-testing.json | 2 +- web/i18n/fr-FR/dataset-settings.json | 2 +- web/i18n/fr-FR/plugin.json | 4 +- web/i18n/fr-FR/tools.json | 8 +- web/i18n/fr-FR/workflow.json | 2 +- web/i18n/hi-IN/app.json | 2 +- web/i18n/hi-IN/billing.json | 6 +- web/i18n/hi-IN/common.json | 6 +- web/i18n/hi-IN/dataset-creation.json | 2 +- web/i18n/hi-IN/dataset-hit-testing.json | 2 +- web/i18n/hi-IN/dataset-settings.json | 2 +- web/i18n/hi-IN/plugin.json | 4 +- web/i18n/hi-IN/tools.json | 8 +- web/i18n/hi-IN/workflow.json | 6 +- web/i18n/id-ID/billing.json | 2 +- web/i18n/id-ID/dataset-settings.json | 2 +- web/i18n/id-ID/plugin.json | 2 +- web/i18n/it-IT/app-overview.json | 2 +- web/i18n/it-IT/app.json | 6 +- web/i18n/it-IT/billing.json | 6 +- web/i18n/it-IT/common.json | 2 +- web/i18n/it-IT/dataset-creation.json | 2 +- web/i18n/it-IT/dataset-hit-testing.json | 2 +- web/i18n/it-IT/dataset-settings.json | 2 +- web/i18n/it-IT/plugin.json | 6 +- web/i18n/it-IT/tools.json | 8 +- web/i18n/it-IT/workflow.json | 6 +- web/i18n/ja-JP/app.json | 2 +- web/i18n/ja-JP/billing.json | 2 +- web/i18n/ja-JP/common.json | 2 +- web/i18n/ja-JP/plugin-trigger.json | 6 +- web/i18n/ja-JP/plugin.json | 2 +- web/i18n/ja-JP/tools.json | 2 +- web/i18n/ja-JP/workflow.json | 4 +- web/i18n/ko-KR/app.json | 2 +- web/i18n/ko-KR/billing.json | 6 +- web/i18n/ko-KR/common.json | 4 +- web/i18n/ko-KR/dataset-creation.json | 2 +- web/i18n/ko-KR/dataset-hit-testing.json | 2 +- web/i18n/ko-KR/dataset-settings.json | 2 +- web/i18n/ko-KR/dataset.json | 2 +- web/i18n/ko-KR/plugin.json | 8 +- web/i18n/ko-KR/tools.json | 8 +- web/i18n/ko-KR/workflow.json | 8 +- web/i18n/pl-PL/app-debug.json | 2 +- web/i18n/pl-PL/app.json | 2 +- web/i18n/pl-PL/billing.json | 6 +- web/i18n/pl-PL/common.json | 4 +- web/i18n/pl-PL/dataset-creation.json | 2 +- web/i18n/pl-PL/dataset-hit-testing.json | 2 +- web/i18n/pl-PL/dataset-settings.json | 2 +- web/i18n/pl-PL/dataset.json | 2 +- web/i18n/pl-PL/plugin.json | 8 +- web/i18n/pl-PL/tools.json | 8 +- web/i18n/pl-PL/workflow.json | 8 +- web/i18n/pt-BR/app-debug.json | 4 +- web/i18n/pt-BR/app.json | 6 +- web/i18n/pt-BR/billing.json | 6 +- web/i18n/pt-BR/common.json | 2 +- web/i18n/pt-BR/dataset-creation.json | 2 +- web/i18n/pt-BR/dataset-hit-testing.json | 2 +- web/i18n/pt-BR/dataset-settings.json | 2 +- web/i18n/pt-BR/plugin.json | 6 +- web/i18n/pt-BR/tools.json | 2 +- web/i18n/pt-BR/workflow.json | 6 +- web/i18n/ro-RO/app.json | 2 +- web/i18n/ro-RO/billing.json | 6 +- web/i18n/ro-RO/common.json | 6 +- web/i18n/ro-RO/dataset-creation.json | 4 +- web/i18n/ro-RO/dataset-hit-testing.json | 2 +- web/i18n/ro-RO/dataset-settings.json | 2 +- web/i18n/ro-RO/plugin.json | 6 +- web/i18n/ro-RO/tools.json | 8 +- web/i18n/ro-RO/workflow.json | 6 +- web/i18n/ru-RU/app-overview.json | 2 +- web/i18n/ru-RU/app.json | 2 +- web/i18n/ru-RU/billing.json | 6 +- web/i18n/ru-RU/common.json | 4 +- web/i18n/ru-RU/dataset-creation.json | 2 +- web/i18n/ru-RU/dataset-hit-testing.json | 2 +- web/i18n/ru-RU/dataset-settings.json | 2 +- web/i18n/ru-RU/dataset.json | 2 +- web/i18n/ru-RU/plugin.json | 8 +- web/i18n/ru-RU/tools.json | 8 +- web/i18n/ru-RU/workflow.json | 10 +- web/i18n/sl-SI/app.json | 2 +- web/i18n/sl-SI/billing.json | 6 +- web/i18n/sl-SI/common.json | 2 +- web/i18n/sl-SI/dataset-creation.json | 2 +- web/i18n/sl-SI/dataset-hit-testing.json | 2 +- web/i18n/sl-SI/dataset-settings.json | 2 +- web/i18n/sl-SI/plugin.json | 2 +- web/i18n/sl-SI/tools.json | 8 +- web/i18n/th-TH/app-overview.json | 2 +- web/i18n/th-TH/app.json | 2 +- web/i18n/th-TH/billing.json | 6 +- web/i18n/th-TH/common.json | 2 +- web/i18n/th-TH/dataset-creation.json | 2 +- web/i18n/th-TH/dataset-hit-testing.json | 2 +- web/i18n/th-TH/dataset-settings.json | 2 +- web/i18n/th-TH/plugin.json | 8 +- web/i18n/th-TH/tools.json | 8 +- web/i18n/th-TH/workflow.json | 10 +- web/i18n/tr-TR/app.json | 2 +- web/i18n/tr-TR/billing.json | 6 +- web/i18n/tr-TR/common.json | 4 +- web/i18n/tr-TR/dataset-creation.json | 2 +- web/i18n/tr-TR/dataset-hit-testing.json | 2 +- web/i18n/tr-TR/dataset-settings.json | 2 +- web/i18n/tr-TR/dataset.json | 2 +- web/i18n/tr-TR/plugin.json | 8 +- web/i18n/tr-TR/tools.json | 8 +- web/i18n/tr-TR/workflow.json | 10 +- web/i18n/uk-UA/app-overview.json | 2 +- web/i18n/uk-UA/app.json | 2 +- web/i18n/uk-UA/billing.json | 6 +- web/i18n/uk-UA/common.json | 4 +- web/i18n/uk-UA/dataset-hit-testing.json | 2 +- web/i18n/uk-UA/dataset-settings.json | 2 +- web/i18n/uk-UA/plugin.json | 6 +- web/i18n/uk-UA/tools.json | 8 +- web/i18n/vi-VN/app-debug.json | 4 +- web/i18n/vi-VN/app.json | 2 +- web/i18n/vi-VN/billing.json | 6 +- web/i18n/vi-VN/common.json | 6 +- web/i18n/vi-VN/dataset-creation.json | 4 +- web/i18n/vi-VN/dataset-hit-testing.json | 2 +- web/i18n/vi-VN/dataset-settings.json | 2 +- web/i18n/vi-VN/dataset.json | 2 +- web/i18n/vi-VN/plugin.json | 8 +- web/i18n/vi-VN/tools.json | 8 +- web/i18n/vi-VN/workflow.json | 12 +- web/i18n/zh-Hant/app.json | 2 +- web/i18n/zh-Hant/billing.json | 6 +- web/i18n/zh-Hant/common.json | 2 +- web/i18n/zh-Hant/dataset-hit-testing.json | 2 +- web/i18n/zh-Hant/dataset-settings.json | 2 +- web/i18n/zh-Hant/plugin.json | 6 +- web/i18n/zh-Hant/tools.json | 2 +- web/i18n/zh-Hant/workflow.json | 2 +- 179 files changed, 490 insertions(+), 359 deletions(-) create mode 100644 web/eslint-rules/rules/consistent-placeholders.js diff --git a/.github/workflows/translate-i18n-claude.yml b/.github/workflows/translate-i18n-claude.yml index 8344af9890..5d9440ff35 100644 --- a/.github/workflows/translate-i18n-claude.yml +++ b/.github/workflows/translate-i18n-claude.yml @@ -134,6 +134,9 @@ jobs: with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} github_token: ${{ secrets.GITHUB_TOKEN }} + # Allow github-actions bot to trigger this workflow via repository_dispatch + # See: https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md + allowed_bots: 'github-actions[bot]' prompt: | You are a professional i18n synchronization engineer for the Dify project. Your task is to keep all language translations in sync with the English source (en-US). @@ -285,6 +288,22 @@ jobs: - `${variable}` - Template literal - `content` - HTML tags - `_one`, `_other` - Pluralization suffixes (these are KEY suffixes, not values) + + **CRITICAL: Variable names and tag names MUST stay in English - NEVER translate them** + + ✅ CORRECT examples: + - English: "{{count}} items" → Japanese: "{{count}} 個のアイテム" + - English: "{{name}} updated" → Korean: "{{name}} 업데이트됨" + - English: "{{email}}" → Chinese: "{{email}}" + - English: "Marketplace" → Japanese: "マーケットプレイス" + + ❌ WRONG examples (NEVER do this - will break the application): + - "{{count}}" → "{{カウント}}" ❌ (variable name translated to Japanese) + - "{{name}}" → "{{이름}}" ❌ (variable name translated to Korean) + - "{{email}}" → "{{邮箱}}" ❌ (variable name translated to Chinese) + - "" → "<メール>" ❌ (tag name translated) + - "" → "<自定义链接>" ❌ (component name translated) + - Use appropriate language register (formal/informal) based on existing translations - Match existing translation style in each language - Technical terms: check existing conventions per language diff --git a/web/eslint-rules/index.js b/web/eslint-rules/index.js index 66c2034625..0aafbc7f2d 100644 --- a/web/eslint-rules/index.js +++ b/web/eslint-rules/index.js @@ -1,3 +1,4 @@ +import consistentPlaceholders from './rules/consistent-placeholders.js' import noAsAnyInT from './rules/no-as-any-in-t.js' import noExtraKeys from './rules/no-extra-keys.js' import noLegacyNamespacePrefix from './rules/no-legacy-namespace-prefix.js' @@ -11,6 +12,7 @@ const plugin = { version: '1.0.0', }, rules: { + 'consistent-placeholders': consistentPlaceholders, 'no-as-any-in-t': noAsAnyInT, 'no-extra-keys': noExtraKeys, 'no-legacy-namespace-prefix': noLegacyNamespacePrefix, diff --git a/web/eslint-rules/rules/consistent-placeholders.js b/web/eslint-rules/rules/consistent-placeholders.js new file mode 100644 index 0000000000..dcbdbb0375 --- /dev/null +++ b/web/eslint-rules/rules/consistent-placeholders.js @@ -0,0 +1,109 @@ +import fs from 'node:fs' +import path, { normalize, sep } from 'node:path' +import { cleanJsonText } from '../utils.js' + +/** + * Extract placeholders from a string + * Matches patterns like {{name}}, {{count}}, etc. + * @param {string} str + * @returns {string[]} Sorted array of placeholder names + */ +function extractPlaceholders(str) { + const matches = str.match(/\{\{\w+\}\}/g) || [] + return matches.map(m => m.slice(2, -2)).sort() +} + +/** + * Compare two arrays and return if they're equal + * @param {string[]} arr1 + * @param {string[]} arr2 + * @returns {boolean} True if arrays contain the same elements in the same order + */ +function arraysEqual(arr1, arr2) { + if (arr1.length !== arr2.length) + return false + return arr1.every((val, i) => val === arr2[i]) +} + +/** @type {import('eslint').Rule.RuleModule} */ +export default { + meta: { + type: 'problem', + docs: { + description: 'Ensure placeholders in translations match the en-US source', + }, + }, + create(context) { + return { + Program(node) { + const { filename, sourceCode } = context + + if (!filename.endsWith('.json')) + return + + const parts = normalize(filename).split(sep) + const jsonFile = parts.at(-1) + const lang = parts.at(-2) + + // Skip English files - they are the source of truth + if (lang === 'en-US') + return + + let currentJson = {} + let englishJson = {} + + try { + currentJson = JSON.parse(cleanJsonText(sourceCode.text)) + const englishFilePath = path.join(path.dirname(filename), '..', 'en-US', jsonFile ?? '') + englishJson = JSON.parse(fs.readFileSync(englishFilePath, 'utf8')) + } + catch (error) { + context.report({ + node, + message: `Error parsing JSON: ${error instanceof Error ? error.message : String(error)}`, + }) + return + } + + // Check each key in the current translation + for (const key of Object.keys(currentJson)) { + // Skip if the key doesn't exist in English (handled by no-extra-keys rule) + if (!Object.prototype.hasOwnProperty.call(englishJson, key)) + continue + + const currentValue = currentJson[key] + const englishValue = englishJson[key] + + // Skip non-string values + if (typeof currentValue !== 'string' || typeof englishValue !== 'string') + continue + + const currentPlaceholders = extractPlaceholders(currentValue) + const englishPlaceholders = extractPlaceholders(englishValue) + + if (!arraysEqual(currentPlaceholders, englishPlaceholders)) { + const missing = englishPlaceholders.filter(p => !currentPlaceholders.includes(p)) + const extra = currentPlaceholders.filter(p => !englishPlaceholders.includes(p)) + + let message = `Placeholder mismatch in "${key}": ` + const details = [] + + if (missing.length > 0) + details.push(`missing {{${missing.join('}}, {{')}}}`) + + if (extra.length > 0) + details.push(`extra {{${extra.join('}}, {{')}}}`) + + message += details.join('; ') + message += `. Expected: {{${englishPlaceholders.join('}}, {{') || 'none'}}}` + + context.report({ + node, + message, + }) + } + } + }, + } + }, +} diff --git a/web/eslint.config.mjs b/web/eslint.config.mjs index 12f32c5dce..94b47b69d0 100644 --- a/web/eslint.config.mjs +++ b/web/eslint.config.mjs @@ -131,6 +131,7 @@ export default antfu( 'dify-i18n/valid-i18n-keys': 'error', 'dify-i18n/no-extra-keys': 'error', + 'dify-i18n/consistent-placeholders': 'error', }, }, ) diff --git a/web/i18n/ar-TN/plugin.json b/web/i18n/ar-TN/plugin.json index 83c021d6f1..39052f4295 100644 --- a/web/i18n/ar-TN/plugin.json +++ b/web/i18n/ar-TN/plugin.json @@ -236,7 +236,7 @@ "task.installSuccess": "تم تثبيت {{successLength}} من الإضافات بنجاح", "task.installed": "مثبت", "task.installedError": "{{errorLength}} إضافات فشل تثبيتها", - "task.installing": "تثبيت {{installingLength}} إضافات، 0 تم.", + "task.installing": "جارٍ تثبيت الإضافات.", "task.installingWithError": "تثبيت {{installingLength}} إضافات، {{successLength}} نجاح، {{errorLength}} فشل", "task.installingWithSuccess": "تثبيت {{installingLength}} إضافات، {{successLength}} نجاح.", "task.runningPlugins": "تثبيت الإضافات", diff --git a/web/i18n/de-DE/app-debug.json b/web/i18n/de-DE/app-debug.json index d038320cf8..f75982bee9 100644 --- a/web/i18n/de-DE/app-debug.json +++ b/web/i18n/de-DE/app-debug.json @@ -251,10 +251,10 @@ "openingStatement.notIncludeKey": "Das Anfangsprompt enthält nicht die Variable: {{key}}. Bitte fügen Sie sie dem Anfangsprompt hinzu.", "openingStatement.openingQuestion": "Eröffnungsfragen", "openingStatement.openingQuestionPlaceholder": "Sie können Variablen verwenden, versuchen Sie {{variable}} einzugeben.", - "openingStatement.placeholder": "Schreiben Sie hier Ihre Eröffnungsnachricht, Sie können Variablen verwenden, versuchen Sie {{Variable}} zu tippen.", + "openingStatement.placeholder": "Schreiben Sie hier Ihre Eröffnungsnachricht, Sie können Variablen verwenden, versuchen Sie {{variable}} zu tippen.", "openingStatement.title": "Gesprächseröffner", "openingStatement.tooShort": "Für die Erzeugung von Eröffnungsbemerkungen für das Gespräch werden mindestens 20 Wörter des Anfangsprompts benötigt.", - "openingStatement.varTip": "Sie können Variablen verwenden, versuchen Sie {{Variable}} zu tippen", + "openingStatement.varTip": "Sie können Variablen verwenden, versuchen Sie {{variable}} zu tippen", "openingStatement.writeOpener": "Eröffnung schreiben", "operation.addFeature": "Funktion hinzufügen", "operation.agree": "gefällt mir", diff --git a/web/i18n/de-DE/app.json b/web/i18n/de-DE/app.json index 15b9941a19..1162c5f5ca 100644 --- a/web/i18n/de-DE/app.json +++ b/web/i18n/de-DE/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Keine Wissensdatenbanken gefunden", "gotoAnything.emptyState.noPluginsFound": "Keine Plugins gefunden", "gotoAnything.emptyState.noWorkflowNodesFound": "Keine Workflow-Knoten gefunden", - "gotoAnything.emptyState.tryDifferentTerm": "Versuchen Sie einen anderen Suchbegriff oder entfernen Sie den {{mode}}-Filter", + "gotoAnything.emptyState.tryDifferentTerm": "Versuchen Sie einen anderen Suchbegriff", "gotoAnything.emptyState.trySpecificSearch": "Versuchen Sie {{shortcuts}} für spezifische Suchen", "gotoAnything.groups.apps": "Apps", "gotoAnything.groups.commands": "Befehle", diff --git a/web/i18n/de-DE/billing.json b/web/i18n/de-DE/billing.json index 095b28c9de..74b8c44bbb 100644 --- a/web/i18n/de-DE/billing.json +++ b/web/i18n/de-DE/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Kontingentgrenzen für Annotationen", "plansCommon.annotatedResponse.tooltip": "Manuelle Bearbeitung und Annotation von Antworten bieten anpassbare, hochwertige Frage-Antwort-Fähigkeiten für Apps. (Nur anwendbar in Chat-Apps)", "plansCommon.annotationQuota": "Kontingent für Anmerkungen", - "plansCommon.annualBilling": "Jährliche Abrechnung", + "plansCommon.annualBilling": "Jährliche Abrechnung, sparen Sie {{percent}}%", "plansCommon.apiRateLimit": "API-Datenlimit", "plansCommon.apiRateLimitTooltip": "Die API-Datenbeschränkung gilt für alle Anfragen, die über die Dify-API gemacht werden, einschließlich Textgenerierung, Chat-Konversationen, Workflow-Ausführungen und Dokumentenverarbeitung.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Melden Sie sich an und erhalten Sie ein", "plansCommon.freeTrialTipSuffix": "Keine Kreditkarte erforderlich", "plansCommon.getStarted": "Loslegen", - "plansCommon.logsHistory": "Protokollverlauf", + "plansCommon.logsHistory": "{{days}} Protokollverlauf", "plansCommon.member": "Mitglied", "plansCommon.memberAfter": "Mitglied", "plansCommon.messageRequest.title": "Nachrichtenguthaben", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Nicht verfügbar", "plansCommon.unlimited": "Unbegrenzt", "plansCommon.unlimitedApiRate": "Keine API-Ratebeschränkung", - "plansCommon.vectorSpace": "Vektorraum", + "plansCommon.vectorSpace": "{{size}} Vektorraum", "plansCommon.vectorSpaceTooltip": "Vektorraum ist das Langzeitspeichersystem, das erforderlich ist, damit LLMs Ihre Daten verstehen können.", "plansCommon.workflowExecution.faster": "Schnellere Arbeitsablauf-Ausführung", "plansCommon.workflowExecution.priority": "Prioritäts-Workflow-Ausführung", diff --git a/web/i18n/de-DE/common.json b/web/i18n/de-DE/common.json index bd2d083fb0..81b88fb27f 100644 --- a/web/i18n/de-DE/common.json +++ b/web/i18n/de-DE/common.json @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Ungültiger Dateilink", "fileUploader.uploadDisabled": "Datei-Upload ist deaktiviert", "fileUploader.uploadFromComputer": "Lokaler Upload", - "fileUploader.uploadFromComputerLimit": "Datei hochladen darf {{size}} nicht überschreiten", + "fileUploader.uploadFromComputerLimit": "Der Upload von {{type}} darf {{size}} nicht überschreiten", "fileUploader.uploadFromComputerReadError": "Lesen der Datei fehlgeschlagen, bitte versuchen Sie es erneut.", "fileUploader.uploadFromComputerUploadError": "Datei-Upload fehlgeschlagen, bitte erneut hochladen.", "imageInput.browse": "blättern", diff --git a/web/i18n/de-DE/dataset-creation.json b/web/i18n/de-DE/dataset-creation.json index b6c4ac41f4..2022df5e32 100644 --- a/web/i18n/de-DE/dataset-creation.json +++ b/web/i18n/de-DE/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "Bestätigen & Vorschau", "stepTwo.previewButton": "Umschalten zum Frage-und-Antwort-Format", "stepTwo.previewChunk": "Vorschau Chunk", - "stepTwo.previewChunkCount": "{{Anzahl}} Geschätzte Chunks", + "stepTwo.previewChunkCount": "{{count}} Geschätzte Chunks", "stepTwo.previewChunkTip": "Klicken Sie auf die Schaltfläche \"Preview Chunk\" auf der linken Seite, um die Vorschau zu laden", "stepTwo.previewSwitchTipEnd": " zusätzliche Tokens verbrauchen", "stepTwo.previewSwitchTipStart": "Die aktuelle Chunk-Vorschau ist im Textformat, ein Wechsel zur Vorschau im Frage-und-Antwort-Format wird", diff --git a/web/i18n/de-DE/dataset-hit-testing.json b/web/i18n/de-DE/dataset-hit-testing.json index 4bb52407f8..69a0136e57 100644 --- a/web/i18n/de-DE/dataset-hit-testing.json +++ b/web/i18n/de-DE/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "MM/DD/YYYY hh:mm A", "desc": "Testen Sie die Treffereffektivität des Wissens anhand des gegebenen Abfragetextes.", "hit.emptyTip": "Ergebnisse des Abruf-Tests werden hier angezeigt", - "hit.title": "ABRUFPARAGRAFEN", + "hit.title": "{{num}} Abgerufene Chunks", "hitChunks": "Klicken Sie auf {{num}} untergeordnete Chunks", "imageUploader.dropZoneTip": "Datei hierher ziehen, um sie hochzuladen", "imageUploader.singleChunkAttachmentLimitTooltip": "Die Anzahl der Einzelblock-Anhänge darf {{limit}} nicht überschreiten", diff --git a/web/i18n/de-DE/dataset-settings.json b/web/i18n/de-DE/dataset-settings.json index 6861993b00..68ebc38e50 100644 --- a/web/i18n/de-DE/dataset-settings.json +++ b/web/i18n/de-DE/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Indexierungsmethode", "form.indexMethodChangeToEconomyDisabledTip": "Nicht verfügbar für ein Downgrade von HQ auf ECO", "form.indexMethodEconomy": "Ökonomisch", - "form.indexMethodEconomyTip": "Verwendet Offline-Vektor-Engines, Schlagwortindizes usw., um die Genauigkeit ohne Tokenverbrauch zu reduzieren", + "form.indexMethodEconomyTip": "Verwendet {{count}} Schlüsselwörter pro Chunk für den Abruf, ohne Tokenverbrauch, auf Kosten geringerer Genauigkeit.", "form.indexMethodHighQuality": "Hohe Qualität", "form.indexMethodHighQualityTip": "Den Embedding-Modell zur Verarbeitung aufrufen, um bei Benutzeranfragen eine höhere Genauigkeit zu bieten.", "form.me": "(Sie)", diff --git a/web/i18n/de-DE/plugin.json b/web/i18n/de-DE/plugin.json index f80c892cce..c0158be29b 100644 --- a/web/i18n/de-DE/plugin.json +++ b/web/i18n/de-DE/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Debuggen", "debugInfo.viewDocs": "Dokumente anzeigen", "deprecated": "Abgelehnt", - "detailPanel.actionNum": "{{num}} {{Aktion}} IINKLUSIVE", + "detailPanel.actionNum": "{{num}} {{action}} IINKLUSIVE", "detailPanel.categoryTip.debugging": "Debuggen-Plugin", "detailPanel.categoryTip.github": "Installiert von Github", "detailPanel.categoryTip.local": "Lokales Plugin", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Aktualisieren", "detailPanel.operation.viewDetail": "Im Detail sehen", "detailPanel.serviceOk": "Service in Ordnung", - "detailPanel.strategyNum": "{{num}} {{Strategie}} IINKLUSIVE", + "detailPanel.strategyNum": "{{num}} {{strategy}} IINKLUSIVE", "detailPanel.switchVersion": "Version wechseln", "detailPanel.toolSelector.auto": "Auto", "detailPanel.toolSelector.descriptionLabel": "Beschreibung des Werkzeugs", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} Plugins konnten nicht installiert werden", - "task.installing": "Installation von {{installingLength}} Plugins, 0 erledigt.", + "task.installing": "Plugins werden installiert.", "task.installingWithError": "Installation von {{installingLength}} Plugins, {{successLength}} erfolgreich, {{errorLength}} fehlgeschlagen", "task.installingWithSuccess": "Installation von {{installingLength}} Plugins, {{successLength}} erfolgreich.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/de-DE/tools.json b/web/i18n/de-DE/tools.json index a7ef2984d7..52fac09940 100644 --- a/web/i18n/de-DE/tools.json +++ b/web/i18n/de-DE/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Die OpenAPI-Swagger-Spezifikation anzeigen", "customToolTip": "Erfahren Sie mehr über benutzerdefinierte Dify-Tools", "howToGet": "Wie erhält man", - "includeToolNum": "{{num}} Werkzeuge inkludiert", + "includeToolNum": "{{num}} {{action}} inkludiert", "mcp.authorize": "Autorisieren", "mcp.authorizeTip": "Nach der Autorisierung werden Tools hier angezeigt.", "mcp.authorizing": "Wird autorisiert...", diff --git a/web/i18n/de-DE/workflow.json b/web/i18n/de-DE/workflow.json index 6eea295ab2..870b06752c 100644 --- a/web/i18n/de-DE/workflow.json +++ b/web/i18n/de-DE/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "Die installierte Plugin-Version bietet diese Strategie nicht. Klicken Sie hier, um die Version zu wechseln.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} ist nicht installiert", "nodes.agent.strategyNotSet": "Agentische Strategie nicht festgelegt", - "nodes.agent.toolNotAuthorizedTooltip": "{{Werkzeug}} Nicht autorisiert", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} Nicht autorisiert", "nodes.agent.toolNotInstallTooltip": "{{tool}} ist nicht installiert", "nodes.agent.toolbox": "Werkzeugkasten", "nodes.agent.tools": "Werkzeuge", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "Das Löschen des Iterationsknotens löscht alle untergeordneten Knoten", "nodes.iteration.deleteTitle": "Iterationsknoten löschen?", "nodes.iteration.errorResponseMethod": "Methode der Fehlerantwort", - "nodes.iteration.error_one": "{{Anzahl}} Fehler", - "nodes.iteration.error_other": "{{Anzahl}} Irrtümer", + "nodes.iteration.error_one": "{{count}} Fehler", + "nodes.iteration.error_other": "{{count}} Fehler", "nodes.iteration.flattenOutput": "Ausgabe abflachen", "nodes.iteration.flattenOutputDesc": "Wenn aktiviert, werden alle Iterationsergebnisse, die Arrays sind, in ein einzelnes Array zusammengeführt. Wenn deaktiviert, behalten die Ergebnisse eine verschachtelte Array-Struktur bei.", "nodes.iteration.input": "Eingabe", diff --git a/web/i18n/es-ES/app.json b/web/i18n/es-ES/app.json index 32312dff15..24c743e671 100644 --- a/web/i18n/es-ES/app.json +++ b/web/i18n/es-ES/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "No se han encontrado bases de conocimiento", "gotoAnything.emptyState.noPluginsFound": "No se encontraron complementos", "gotoAnything.emptyState.noWorkflowNodesFound": "No se encontraron nodos de flujo de trabajo", - "gotoAnything.emptyState.tryDifferentTerm": "Intenta un término de búsqueda diferente o elimina el filtro {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Intenta un término de búsqueda diferente", "gotoAnything.emptyState.trySpecificSearch": "Prueba {{shortcuts}} para búsquedas específicas", "gotoAnything.groups.apps": "Aplicaciones", "gotoAnything.groups.commands": "Comandos", @@ -161,8 +161,8 @@ "newApp.dropDSLToCreateApp": "Suelta el archivo DSL aquí para crear la aplicación", "newApp.forAdvanced": "PARA USUARIOS AVANZADOS", "newApp.forBeginners": "Tipos de aplicación más básicos", - "newApp.foundResult": "{{conteo}} Resultado", - "newApp.foundResults": "{{conteo}} Resultados", + "newApp.foundResult": "{{count}} Resultado", + "newApp.foundResults": "{{count}} Resultados", "newApp.hideTemplates": "Volver a la selección de modo", "newApp.import": "Importación", "newApp.learnMore": "Aprende más", diff --git a/web/i18n/es-ES/billing.json b/web/i18n/es-ES/billing.json index ef4294ad8e..47a54d7073 100644 --- a/web/i18n/es-ES/billing.json +++ b/web/i18n/es-ES/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Límites de Cuota de Anotación", "plansCommon.annotatedResponse.tooltip": "Edición manual y anotación de respuestas proporciona habilidades de respuesta a preguntas personalizadas y de alta calidad para aplicaciones (aplicable solo en aplicaciones de chat).", "plansCommon.annotationQuota": "Cuota de Anotación", - "plansCommon.annualBilling": "Facturación Anual", + "plansCommon.annualBilling": "Facturación anual, ahorra {{percent}}%", "plansCommon.apiRateLimit": "Límite de tasa de API", "plansCommon.apiRateLimitTooltip": "El límite de tasa de la API se aplica a todas las solicitudes realizadas a través de la API de Dify, incluidos la generación de texto, las conversaciones de chat, las ejecuciones de flujo de trabajo y el procesamiento de documentos.", "plansCommon.apiRateLimitUnit": "{{count, número}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Regístrate y obtén un", "plansCommon.freeTrialTipSuffix": "No se requiere tarjeta de crédito", "plansCommon.getStarted": "Comenzar", - "plansCommon.logsHistory": "Historial de Registros", + "plansCommon.logsHistory": "{{days}} Historial de registros", "plansCommon.member": "Miembro", "plansCommon.memberAfter": "Miembro", "plansCommon.messageRequest.title": "Créditos de Mensajes", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "No disponible", "plansCommon.unlimited": "Ilimitado", "plansCommon.unlimitedApiRate": "Sin límite de tasa de API", - "plansCommon.vectorSpace": "Espacio Vectorial", + "plansCommon.vectorSpace": "{{size}} Espacio vectorial", "plansCommon.vectorSpaceTooltip": "El Espacio Vectorial es el sistema de memoria a largo plazo necesario para que los LLMs comprendan tus datos.", "plansCommon.workflowExecution.faster": "Ejecución de flujo de trabajo más rápida", "plansCommon.workflowExecution.priority": "Ejecución de flujo de trabajo prioritaria", diff --git a/web/i18n/es-ES/common.json b/web/i18n/es-ES/common.json index 8175f97946..fb0b3ddae4 100644 --- a/web/i18n/es-ES/common.json +++ b/web/i18n/es-ES/common.json @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Enlace de archivo no válido", "fileUploader.uploadDisabled": "La carga de archivos está deshabilitada", "fileUploader.uploadFromComputer": "Carga local", - "fileUploader.uploadFromComputerLimit": "El archivo de carga no puede exceder {{size}}", + "fileUploader.uploadFromComputerLimit": "La carga de {{type}} no puede exceder {{size}}", "fileUploader.uploadFromComputerReadError": "Error en la lectura del archivo, inténtelo de nuevo.", "fileUploader.uploadFromComputerUploadError": "Error en la carga del archivo, vuelva a cargarlo.", "imageInput.browse": "navegar", diff --git a/web/i18n/es-ES/dataset-creation.json b/web/i18n/es-ES/dataset-creation.json index 1de3d76e25..9712a8ba26 100644 --- a/web/i18n/es-ES/dataset-creation.json +++ b/web/i18n/es-ES/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "Confirmar y vista previa", "stepTwo.previewButton": "Cambiar a formato de pregunta y respuesta", "stepTwo.previewChunk": "Fragmento de vista previa", - "stepTwo.previewChunkCount": "{{conteo}} Fragmentos estimados", + "stepTwo.previewChunkCount": "{{count}} Fragmentos estimados", "stepTwo.previewChunkTip": "Haga clic en el botón 'Vista previa de fragmento' a la izquierda para cargar la vista previa", "stepTwo.previewSwitchTipEnd": " consumirá tokens adicionales", "stepTwo.previewSwitchTipStart": "La vista previa actual del fragmento está en formato de texto, cambiar a una vista previa en formato de pregunta y respuesta", diff --git a/web/i18n/es-ES/dataset-hit-testing.json b/web/i18n/es-ES/dataset-hit-testing.json index dfee137664..e4405085cc 100644 --- a/web/i18n/es-ES/dataset-hit-testing.json +++ b/web/i18n/es-ES/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "MM/DD/YYYY hh:mm A", "desc": "Prueba del efecto de impacto del conocimiento basado en el texto de consulta proporcionado.", "hit.emptyTip": "Los resultados de la prueba de recuperación se mostrarán aquí", - "hit.title": "PÁRRAFOS DE RECUPERACIÓN", + "hit.title": "{{num}} Párrafos recuperados", "hitChunks": "Golpea {{num}} fragmentos secundarios", "imageUploader.dropZoneTip": "Arrastra el archivo aquí para subirlo", "imageUploader.singleChunkAttachmentLimitTooltip": "El número de archivos adjuntos de un solo bloque no puede superar {{limit}}", diff --git a/web/i18n/es-ES/dataset-settings.json b/web/i18n/es-ES/dataset-settings.json index 2ace9b7ca2..499720558d 100644 --- a/web/i18n/es-ES/dataset-settings.json +++ b/web/i18n/es-ES/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Método de indexación", "form.indexMethodChangeToEconomyDisabledTip": "No disponible para degradar de HQ a ECO", "form.indexMethodEconomy": "Económico", - "form.indexMethodEconomyTip": "Utiliza motores de vectores sin conexión, índices de palabras clave, etc. para reducir la precisión sin gastar tokens.", + "form.indexMethodEconomyTip": "Utiliza {{count}} palabras clave por fragmento para la recuperación, sin consumir tokens a costa de una menor precisión.", "form.indexMethodHighQuality": "Alta calidad", "form.indexMethodHighQualityTip": "Llama al modelo de incrustación para procesar y proporcionar una mayor precisión cuando los usuarios realizan consultas.", "form.me": "(Tú)", diff --git a/web/i18n/es-ES/plugin.json b/web/i18n/es-ES/plugin.json index d76744bfad..297b86606d 100644 --- a/web/i18n/es-ES/plugin.json +++ b/web/i18n/es-ES/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Depuración", "debugInfo.viewDocs": "Ver documentos", "deprecated": "Obsoleto", - "detailPanel.actionNum": "{{num}} {{acción}} INCLUIDO", + "detailPanel.actionNum": "{{num}} {{action}} INCLUIDO", "detailPanel.categoryTip.debugging": "Complemento de depuración", "detailPanel.categoryTip.github": "Instalado desde Github", "detailPanel.categoryTip.local": "Plugin Local", @@ -96,7 +96,7 @@ "detailPanel.deprecation.reason.noMaintainer": "sin mantenedor", "detailPanel.deprecation.reason.ownershipTransferred": "propiedad transferida", "detailPanel.disabled": "Deshabilitado", - "detailPanel.endpointDeleteContent": "¿Te gustaría eliminar {{nombre}}?", + "detailPanel.endpointDeleteContent": "¿Te gustaría eliminar {{name}}?", "detailPanel.endpointDeleteTip": "Eliminar punto de conexión", "detailPanel.endpointDisableContent": "¿Te gustaría desactivar {{name}}?", "detailPanel.endpointDisableTip": "Deshabilitar punto de conexión", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Actualizar", "detailPanel.operation.viewDetail": "Ver Detalle", "detailPanel.serviceOk": "Servicio OK", - "detailPanel.strategyNum": "{{num}} {{estrategia}} INCLUIDO", + "detailPanel.strategyNum": "{{num}} {{strategy}} INCLUIDO", "detailPanel.switchVersion": "Versión del interruptor", "detailPanel.toolSelector.auto": "Auto", "detailPanel.toolSelector.descriptionLabel": "Descripción de la herramienta", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "Los complementos {{errorLength}} no se pudieron instalar", - "task.installing": "Instalando plugins {{installingLength}}, 0 hecho.", + "task.installing": "Instalando plugins.", "task.installingWithError": "Instalando plugins {{installingLength}}, {{successLength}} éxito, {{errorLength}} fallido", "task.installingWithSuccess": "Instalando plugins {{installingLength}}, {{successLength}} éxito.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/es-ES/tools.json b/web/i18n/es-ES/tools.json index a5c56cb5b1..2f091e8c65 100644 --- a/web/i18n/es-ES/tools.json +++ b/web/i18n/es-ES/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Ver la Especificación OpenAPI-Swagger", "customToolTip": "Aprende más sobre las herramientas personalizadas de Dify", "howToGet": "Cómo obtener", - "includeToolNum": "{{num}} herramientas incluidas", + "includeToolNum": "{{num}} {{action}} incluidas", "mcp.authorize": "Autorizar", "mcp.authorizeTip": "Tras la autorización, las herramientas se mostrarán aquí.", "mcp.authorizing": "Autorizando...", diff --git a/web/i18n/es-ES/workflow.json b/web/i18n/es-ES/workflow.json index 3abf011c34..d4e1b09ed1 100644 --- a/web/i18n/es-ES/workflow.json +++ b/web/i18n/es-ES/workflow.json @@ -303,10 +303,10 @@ "errorMsg.fields.visionVariable": "Variable de visión", "errorMsg.invalidJson": "{{field}} no es un JSON válido", "errorMsg.invalidVariable": "Variable no válida", - "errorMsg.noValidTool": "{{campo}} no se ha seleccionado ninguna herramienta válida", + "errorMsg.noValidTool": "{{field}} no se ha seleccionado ninguna herramienta válida", "errorMsg.rerankModelRequired": "Antes de activar el modelo de reclasificación, confirme que el modelo se ha configurado correctamente en la configuración.", "errorMsg.startNodeRequired": "Por favor, agregue primero un nodo de inicio antes de {{operation}}", - "errorMsg.toolParameterRequired": "{{campo}}: el parámetro [{{param}}] es obligatorio", + "errorMsg.toolParameterRequired": "{{field}}: el parámetro [{{param}}] es obligatorio", "globalVar.description": "Las variables del sistema son variables globales que cualquier nodo puede usar sin conexiones cuando el tipo es correcto, como el ID del usuario final y el ID del flujo de trabajo.", "globalVar.fieldsDescription.appId": "ID de la aplicación", "globalVar.fieldsDescription.conversationId": "ID de la conversación", @@ -361,10 +361,10 @@ "nodes.agent.strategy.tooltip": "Diferentes estrategias agentic determinan cómo el sistema planifica y ejecuta las llamadas a herramientas de varios pasos", "nodes.agent.strategyNotFoundDesc": "La versión del plugin instalado no proporciona esta estrategia.", "nodes.agent.strategyNotFoundDescAndSwitchVersion": "La versión del plugin instalado no proporciona esta estrategia. Haga clic para cambiar de versión.", - "nodes.agent.strategyNotInstallTooltip": "{{estrategia}} no está instalado", + "nodes.agent.strategyNotInstallTooltip": "{{strategy}} no está instalado", "nodes.agent.strategyNotSet": "Estrategia agentica No establecida", - "nodes.agent.toolNotAuthorizedTooltip": "{{herramienta}} No autorizado", - "nodes.agent.toolNotInstallTooltip": "{{herramienta}} no está instalada", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} No autorizado", + "nodes.agent.toolNotInstallTooltip": "{{tool}} no está instalada", "nodes.agent.toolbox": "caja de herramientas", "nodes.agent.tools": "Herramientas", "nodes.agent.unsupportedStrategy": "Estrategia no respaldada", @@ -438,7 +438,7 @@ "nodes.common.retry.retries": "{{num}} Reintentos", "nodes.common.retry.retry": "Reintentar", "nodes.common.retry.retryFailed": "Error en el reintento", - "nodes.common.retry.retryFailedTimes": "{{veces}} reintentos fallidos", + "nodes.common.retry.retryFailedTimes": "{{times}} reintentos fallidos", "nodes.common.retry.retryInterval": "Intervalo de reintento", "nodes.common.retry.retryOnFailure": "Volver a intentarlo en caso de error", "nodes.common.retry.retrySuccessful": "Volver a intentarlo correctamente", @@ -453,7 +453,7 @@ "nodes.docExtractor.inputVar": "Variable de entrada", "nodes.docExtractor.learnMore": "Aprende más", "nodes.docExtractor.outputVars.text": "Texto extraído", - "nodes.docExtractor.supportFileTypes": "Tipos de archivos de soporte: {{tipos}}.", + "nodes.docExtractor.supportFileTypes": "Tipos de archivos de soporte: {{types}}.", "nodes.end.output.type": "tipo de salida", "nodes.end.output.variable": "variable de salida", "nodes.end.outputs": "Salidas", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "Eliminar el nodo de iteración eliminará todos los nodos secundarios", "nodes.iteration.deleteTitle": "¿Eliminar nodo de iteración?", "nodes.iteration.errorResponseMethod": "Método de respuesta a errores", - "nodes.iteration.error_one": "{{conteo}} Error", - "nodes.iteration.error_other": "{{conteo}} Errores", + "nodes.iteration.error_one": "{{count}} Error", + "nodes.iteration.error_other": "{{count}} Errores", "nodes.iteration.flattenOutput": "Aplanar salida", "nodes.iteration.flattenOutputDesc": "Cuando está habilitado, si todas las salidas de la iteración son arrays, se aplanarán en un solo array. Cuando está deshabilitado, las salidas mantendrán una estructura de array anidada.", "nodes.iteration.input": "Entrada", diff --git a/web/i18n/fa-IR/app.json b/web/i18n/fa-IR/app.json index 6b7ab8a578..0c011d18ca 100644 --- a/web/i18n/fa-IR/app.json +++ b/web/i18n/fa-IR/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "هیچ پایگاه دانش یافت نشد", "gotoAnything.emptyState.noPluginsFound": "هیچ افزونه ای یافت نشد", "gotoAnything.emptyState.noWorkflowNodesFound": "هیچ گره گردش کاری یافت نشد", - "gotoAnything.emptyState.tryDifferentTerm": "یک عبارت جستجوی متفاوت را امتحان کنید یا فیلتر {{mode}} را حذف کنید", + "gotoAnything.emptyState.tryDifferentTerm": "یک عبارت جستجوی متفاوت را امتحان کنید", "gotoAnything.emptyState.trySpecificSearch": "{{shortcuts}} را برای جستجوهای خاص امتحان کنید", "gotoAnything.groups.apps": "برنامه‌ها", "gotoAnything.groups.commands": "دستورات", diff --git a/web/i18n/fa-IR/billing.json b/web/i18n/fa-IR/billing.json index ba666bbe09..0b89430294 100644 --- a/web/i18n/fa-IR/billing.json +++ b/web/i18n/fa-IR/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "محدودیت‌های سهمیه حاشیه‌نویسی", "plansCommon.annotatedResponse.tooltip": "ویرایش دستی و حاشیه‌نویسی پاسخ‌ها، قابلیت‌های پرسش و پاسخ با کیفیت بالا و قابل تنظیم برای اپلیکیشن‌ها را فراهم می‌کند. (فقط در اپلیکیشن‌های چت اعمال می‌شود)", "plansCommon.annotationQuota": "سهمیه حاشیه‌نویسی", - "plansCommon.annualBilling": "صورتحساب سالانه", + "plansCommon.annualBilling": "صورتحساب سالانه، صرفه‌جویی {{percent}}%", "plansCommon.apiRateLimit": "محدودیت نرخ API", "plansCommon.apiRateLimitTooltip": "محدودیت نرخ API برای همه درخواست‌های انجام شده از طریق API Dify اعمال می‌شود، از جمله تولید متن، محاوره‌های چت، اجرای گردش‌های کار و پردازش اسناد.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "ثبت‌نام کنید و یک", "plansCommon.freeTrialTipSuffix": "نیاز به کارت اعتباری نیست", "plansCommon.getStarted": "شروع کنید", - "plansCommon.logsHistory": "تاریخچه گزارشات", + "plansCommon.logsHistory": "{{days}} تاریخچه گزارشات", "plansCommon.member": "عضو", "plansCommon.memberAfter": "عضو", "plansCommon.messageRequest.title": "اعتبارات پیام", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "غیرقابل دسترس", "plansCommon.unlimited": "نامحدود", "plansCommon.unlimitedApiRate": "هیچ محدودیتی برای نرخ API وجود ندارد.", - "plansCommon.vectorSpace": "فضای وکتور", + "plansCommon.vectorSpace": "{{size}} فضای وکتور", "plansCommon.vectorSpaceTooltip": "فضای وکتور سیستم حافظه بلند مدت است که برای درک داده‌های شما توسط LLM‌ها مورد نیاز است.", "plansCommon.workflowExecution.faster": "اجرای سریع‌تر جریان کاری", "plansCommon.workflowExecution.priority": "اجرای جریان کاری اولویت‌دار", diff --git a/web/i18n/fa-IR/common.json b/web/i18n/fa-IR/common.json index 90ca2fbce3..c2254a1275 100644 --- a/web/i18n/fa-IR/common.json +++ b/web/i18n/fa-IR/common.json @@ -108,7 +108,7 @@ "chat.conversationName": "نام مکالمه", "chat.conversationNameCanNotEmpty": "نام مکالمه الزامی است", "chat.conversationNamePlaceholder": "لطفاً نام مکالمه را وارد کنید", - "chat.inputPlaceholder": "با ربات صحبت کنید", + "chat.inputPlaceholder": "با {{botName}} صحبت کنید", "chat.renameConversation": "تغییر نام مکالمه", "chat.resend": "دوباره ارسال کنید", "chat.thinking": "تفکر...", @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "پیوند فایل نامعتبر", "fileUploader.uploadDisabled": "بارگذاری فایل غیرفعال است", "fileUploader.uploadFromComputer": "آپلود محلی", - "fileUploader.uploadFromComputerLimit": "آپلود فایل نمی تواند از {{size}} تجاوز کند", + "fileUploader.uploadFromComputerLimit": "آپلود {{type}} نمی تواند از {{size}} تجاوز کند", "fileUploader.uploadFromComputerReadError": "خواندن فایل انجام نشد، لطفا دوباره امتحان کنید.", "fileUploader.uploadFromComputerUploadError": "آپلود فایل انجام نشد، لطفا دوباره آپلود کنید.", "imageInput.browse": "مرورگر", diff --git a/web/i18n/fa-IR/dataset-creation.json b/web/i18n/fa-IR/dataset-creation.json index 3ab4cdac51..d8717e54c7 100644 --- a/web/i18n/fa-IR/dataset-creation.json +++ b/web/i18n/fa-IR/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "تأیید و پیشنمایش", "stepTwo.previewButton": "تغییر به قالب پرسش و پاسخ", "stepTwo.previewChunk": "پیش نمایش تکه", - "stepTwo.previewChunkCount": "{{تعداد}} تکه های تخمینی", + "stepTwo.previewChunkCount": "{{count}} تکه های تخمینی", "stepTwo.previewChunkTip": "روی دکمه \"پیش نمایش قطعه\" در سمت چپ کلیک کنید تا پیش نمایش بارگیری شود", "stepTwo.previewSwitchTipEnd": " توکنهای اضافی مصرف خواهد کرد", "stepTwo.previewSwitchTipStart": "پیشنمایش بخش فعلی در قالب متن است، تغییر به پیشنمایش قالب پرسش و پاسخ", diff --git a/web/i18n/fa-IR/dataset-hit-testing.json b/web/i18n/fa-IR/dataset-hit-testing.json index d9a97626a3..d22a80108b 100644 --- a/web/i18n/fa-IR/dataset-hit-testing.json +++ b/web/i18n/fa-IR/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "MM/DD/YYYY hh:mm A", "desc": "آزمون اثرگذاری دانش بر اساس متن پرسش داده شده.", "hit.emptyTip": "نتایج آزمون بازیابی اینجا نمایش داده می‌شوند", - "hit.title": "پاراگراف‌های بازیابی", + "hit.title": "{{num}} پاراگراف‌های بازیابی", "hitChunks": "{{num}} را بزنید تکه های فرزند", "imageUploader.dropZoneTip": "فایل را اینجا بکشید تا بارگذاری شود", "imageUploader.singleChunkAttachmentLimitTooltip": "تعداد پیوست‌های تک قطعه‌ای نمی‌تواند از {{limit}} بیشتر باشد", diff --git a/web/i18n/fa-IR/dataset-settings.json b/web/i18n/fa-IR/dataset-settings.json index 6e4c496d8e..dd4ada7808 100644 --- a/web/i18n/fa-IR/dataset-settings.json +++ b/web/i18n/fa-IR/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "روش نمایه‌سازی", "form.indexMethodChangeToEconomyDisabledTip": "برای تنزل رتبه از HQ به ECO در دسترس نیست", "form.indexMethodEconomy": "اقتصادی", - "form.indexMethodEconomyTip": "استفاده از موتورهای برداری آفلاین، شاخص‌های کلمات کلیدی و غیره برای کاهش دقت بدون صرف توکن‌ها", + "form.indexMethodEconomyTip": "استفاده از {{count}} کلمه کلیدی برای هر تکه در بازیابی، بدون مصرف توکن‌ها با کاهش دقت.", "form.indexMethodHighQuality": "کیفیت بالا", "form.indexMethodHighQualityTip": "مدل تعبیه را برای پردازش فراخوانی کنید تا دقت بالاتری هنگام جستجوی کاربران فراهم شود.", "form.me": "(شما)", diff --git a/web/i18n/fa-IR/dataset.json b/web/i18n/fa-IR/dataset.json index 90309f33c1..e547447eb1 100644 --- a/web/i18n/fa-IR/dataset.json +++ b/web/i18n/fa-IR/dataset.json @@ -147,7 +147,7 @@ "parentMode.paragraph": "پاراگراف", "partialEnabled_one": "مجموعاً {{count}} سند، {{num}} موجود", "partialEnabled_other": "مجموع {{count}} سند، {{num}} موجود", - "preprocessDocument": "{{عدد}} اسناد پیش پردازش", + "preprocessDocument": "{{num}} اسناد پیش پردازش", "rerankSettings": "تنظیمات دوباره رتبه‌بندی", "retrieval.change": "تغییر", "retrieval.changeRetrievalMethod": "تغییر روش بازیابی", diff --git a/web/i18n/fa-IR/plugin.json b/web/i18n/fa-IR/plugin.json index 7549c5b09c..a1bbc8ee63 100644 --- a/web/i18n/fa-IR/plugin.json +++ b/web/i18n/fa-IR/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "اشکال زدایی", "debugInfo.viewDocs": "مشاهده اسناد", "deprecated": "منسوخ شده", - "detailPanel.actionNum": "{{عدد}} {{اقدام}} شامل", + "detailPanel.actionNum": "{{num}} {{action}} شامل", "detailPanel.categoryTip.debugging": "اشکال زدایی پلاگین", "detailPanel.categoryTip.github": "نصب شده از Github", "detailPanel.categoryTip.local": "پلاگین محلی", @@ -106,7 +106,7 @@ "detailPanel.endpointsDocLink": "مشاهده سند", "detailPanel.endpointsEmpty": "برای افزودن نقطه پایانی روی دکمه \"+\" کلیک کنید", "detailPanel.endpointsTip": "این افزونه عملکردهای خاصی را از طریق نقاط پایانی ارائه می دهد و می توانید چندین مجموعه نقطه پایانی را برای فضای کاری فعلی پیکربندی کنید.", - "detailPanel.modelNum": "{{عدد}} مدل های گنجانده شده است", + "detailPanel.modelNum": "{{num}} مدل های گنجانده شده است", "detailPanel.operation.back": "بازگشت", "detailPanel.operation.checkUpdate": "به روز رسانی را بررسی کنید", "detailPanel.operation.detail": "جزئیات", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "روز رسانی", "detailPanel.operation.viewDetail": "نمایش جزئیات", "detailPanel.serviceOk": "خدمات خوب", - "detailPanel.strategyNum": "{{عدد}} {{استراتژی}} شامل", + "detailPanel.strategyNum": "{{num}} {{strategy}} شامل", "detailPanel.switchVersion": "نسخه سوئیچ", "detailPanel.toolSelector.auto": "خودکار", "detailPanel.toolSelector.descriptionLabel": "توضیحات ابزار", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "افزونه های {{errorLength}} نصب نشدند", - "task.installing": "نصب پلاگین های {{installingLength}}، 0 انجام شد.", + "task.installing": "در حال نصب پلاگین‌ها.", "task.installingWithError": "نصب پلاگین های {{installingLength}}، {{successLength}} با موفقیت مواجه شد، {{errorLength}} ناموفق بود", "task.installingWithSuccess": "نصب پلاگین های {{installingLength}}، {{successLength}} موفقیت آمیز است.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/fa-IR/tools.json b/web/i18n/fa-IR/tools.json index cfc31b1ae5..e9dfc4f84e 100644 --- a/web/i18n/fa-IR/tools.json +++ b/web/i18n/fa-IR/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "مشاهده مشخصات OpenAPI-Swagger", "customToolTip": "بیشتر در مورد ابزارهای سفارشی Dify بیاموزید", "howToGet": "چگونه دریافت کنید", - "includeToolNum": "{{num}} ابزار شامل شد", + "includeToolNum": "{{num}} {{action}} ابزار شامل شد", "mcp.authorize": "مجوزدهی", "mcp.authorizeTip": "پس از مجوزدهی، ابزارها در اینجا نمایش داده می‌شوند.", "mcp.authorizing": "در حال مجوزدهی...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "اطلاعات بیشتر درباره یکپارچه‌سازی سرور MCP", "mcp.create.cardTitle": "افزودن سرور MCP (HTTP)", "mcp.delete": "حذف سرور MCP", - "mcp.deleteConfirmTitle": "آیا مایل به حذف {mcp} هستید؟", + "mcp.deleteConfirmTitle": "آیا مایل به حذف {{mcp}} هستید؟", "mcp.getTools": "دریافت ابزارها", "mcp.gettingTools": "دریافت ابزارها...", "mcp.identifier": "شناسه سرور (کلیک برای کپی)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "پارامترها", "mcp.toolUpdateConfirmContent": "به‌روزرسانی فهرست ابزارها ممکن است بر برنامه‌های موجود تأثیر بگذارد. آیا ادامه می‌دهید؟", "mcp.toolUpdateConfirmTitle": "به‌روزرسانی فهرست ابزارها", - "mcp.toolsCount": "{count} ابزار", + "mcp.toolsCount": "{{count}} ابزار", "mcp.toolsEmpty": "ابزارها بارگیری نشدند", - "mcp.toolsNum": "{count} ابزار موجود است", + "mcp.toolsNum": "{{count}} ابزار موجود است", "mcp.update": "به‌روزرسانی", "mcp.updateTime": "آخرین بروزرسانی", "mcp.updateTools": "به‌روزرسانی ابزارها...", diff --git a/web/i18n/fa-IR/workflow.json b/web/i18n/fa-IR/workflow.json index 7752e0c506..45558bf76b 100644 --- a/web/i18n/fa-IR/workflow.json +++ b/web/i18n/fa-IR/workflow.json @@ -363,8 +363,8 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "نسخه افزونه نصب شده این استراتژی را ارائه نمی دهد. برای تغییر نسخه کلیک کنید.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} نصب نشده است", "nodes.agent.strategyNotSet": "استراتژی عامل تنظیم نشده است", - "nodes.agent.toolNotAuthorizedTooltip": "{{ابزار}} مجاز نیست", - "nodes.agent.toolNotInstallTooltip": "{{ابزار}} نصب نشده است", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} مجاز نیست", + "nodes.agent.toolNotInstallTooltip": "{{tool}} نصب نشده است", "nodes.agent.toolbox": "جعبه ابزار", "nodes.agent.tools": "ابزار", "nodes.agent.unsupportedStrategy": "استراتژی پشتیبانی نشده", @@ -435,10 +435,10 @@ "nodes.common.pluginNotInstalled": "افزونه نصب نشده است", "nodes.common.retry.maxRetries": "حداکثر تلاش مجدد", "nodes.common.retry.ms": "خانم", - "nodes.common.retry.retries": "{{عدد}} تلاش های مجدد", + "nodes.common.retry.retries": "{{num}} تلاش های مجدد", "nodes.common.retry.retry": "دوباره", "nodes.common.retry.retryFailed": "تلاش مجدد ناموفق بود", - "nodes.common.retry.retryFailedTimes": "{{بار}} تلاش های مجدد ناموفق بود", + "nodes.common.retry.retryFailedTimes": "{{times}} تلاش های مجدد ناموفق بود", "nodes.common.retry.retryInterval": "فاصله تلاش مجدد", "nodes.common.retry.retryOnFailure": "در مورد شکست دوباره امتحان کنید", "nodes.common.retry.retrySuccessful": "امتحان مجدد با موفقیت انجام دهید", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "حذف نود تکرار باعث حذف تمام نودهای فرزند خواهد شد", "nodes.iteration.deleteTitle": "حذف نود تکرار؟", "nodes.iteration.errorResponseMethod": "روش پاسخ به خطا", - "nodes.iteration.error_one": "{{تعداد}} خطا", - "nodes.iteration.error_other": "{{تعداد}} خطاهای", + "nodes.iteration.error_one": "{{count}} خطا", + "nodes.iteration.error_other": "{{count}} خطا", "nodes.iteration.flattenOutput": "صاف کردن خروجی", "nodes.iteration.flattenOutputDesc": "هنگامی که فعال باشد، اگر تمام خروجی‌های تکرار آرایه باشند، آنها به یک آرایهٔ واحد تبدیل خواهند شد. هنگامی که غیرفعال باشد، خروجی‌ها ساختار آرایهٔ تو در تو را حفظ می‌کنند.", "nodes.iteration.input": "ورودی", diff --git a/web/i18n/fr-FR/app-overview.json b/web/i18n/fr-FR/app-overview.json index b273f6eab5..7b9b2bf36d 100644 --- a/web/i18n/fr-FR/app-overview.json +++ b/web/i18n/fr-FR/app-overview.json @@ -113,7 +113,7 @@ "overview.triggerInfo.noTriggerAdded": "Aucun déclencheur ajouté", "overview.triggerInfo.title": "Déclencheurs", "overview.triggerInfo.triggerStatusDescription": "L'état du nœud de déclenchement apparaît ici. (Peut déjà exister dans le brouillon, prend effet après publication)", - "overview.triggerInfo.triggersAdded": "Déclencheurs ajoutés", + "overview.triggerInfo.triggersAdded": "{{count}} déclencheurs ajoutés", "welcome.enterKeyTip": "saisissez votre clé API OpenAI ci-dessous", "welcome.firstStepTip": "Pour commencer,", "welcome.getKeyTip": "Obtenez votre clé API depuis le tableau de bord OpenAI", diff --git a/web/i18n/fr-FR/app.json b/web/i18n/fr-FR/app.json index 0f392fda24..a5defb7783 100644 --- a/web/i18n/fr-FR/app.json +++ b/web/i18n/fr-FR/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Aucune base de connaissances trouvée", "gotoAnything.emptyState.noPluginsFound": "Aucun plugin trouvé", "gotoAnything.emptyState.noWorkflowNodesFound": "Aucun nœud de workflow trouvé", - "gotoAnything.emptyState.tryDifferentTerm": "Essayez un terme de recherche différent ou supprimez le filtre {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Essayez un terme de recherche différent", "gotoAnything.emptyState.trySpecificSearch": "Essayez {{shortcuts}} pour des recherches spécifiques", "gotoAnything.groups.apps": "Applications", "gotoAnything.groups.commands": "Commandes", diff --git a/web/i18n/fr-FR/billing.json b/web/i18n/fr-FR/billing.json index 6d5b53afa9..f9d578d29c 100644 --- a/web/i18n/fr-FR/billing.json +++ b/web/i18n/fr-FR/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Limites de quota d'annotation", "plansCommon.annotatedResponse.tooltip": "L'édition manuelle et l'annotation des réponses fournissent des capacités de réponse aux questions de haute qualité personnalisables pour les applications. (Applicable uniquement dans les applications de chat)", "plansCommon.annotationQuota": "Quota d’annotation", - "plansCommon.annualBilling": "Facturation Annuelle", + "plansCommon.annualBilling": "Facturation annuelle, économisez {{percent}}%", "plansCommon.apiRateLimit": "Limite de taux de l'API", "plansCommon.apiRateLimitTooltip": "La limite de taux de l'API s'applique à toutes les demandes effectuées via l'API Dify, y compris la génération de texte, les conversations de chat, les exécutions de flux de travail et le traitement de documents.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Inscrivez-vous et obtenez un", "plansCommon.freeTrialTipSuffix": "Aucune carte de crédit requise", "plansCommon.getStarted": "Commencer", - "plansCommon.logsHistory": "Historique des logs", + "plansCommon.logsHistory": "{{days}} historique des logs", "plansCommon.member": "Membre", "plansCommon.memberAfter": "Membre", "plansCommon.messageRequest.title": "Crédits de message", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Indisponible", "plansCommon.unlimited": "Illimité", "plansCommon.unlimitedApiRate": "Pas de limite de taux d'API", - "plansCommon.vectorSpace": "Espace Vectoriel", + "plansCommon.vectorSpace": "{{size}} espace vectoriel", "plansCommon.vectorSpaceTooltip": "L'espace vectoriel est le système de mémoire à long terme nécessaire pour que les LLMs comprennent vos données.", "plansCommon.workflowExecution.faster": "Exécution de flux de travail plus rapide", "plansCommon.workflowExecution.priority": "Exécution du flux de travail prioritaire", diff --git a/web/i18n/fr-FR/common.json b/web/i18n/fr-FR/common.json index d2b4c70d7c..bf4fa73b0b 100644 --- a/web/i18n/fr-FR/common.json +++ b/web/i18n/fr-FR/common.json @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Lien de fichier non valide", "fileUploader.uploadDisabled": "Le téléchargement de fichiers est désactivé", "fileUploader.uploadFromComputer": "Téléchargement local", - "fileUploader.uploadFromComputerLimit": "Le fichier de téléchargement ne peut pas dépasser {{size}}", + "fileUploader.uploadFromComputerLimit": "Le téléchargement de {{type}} ne peut pas dépasser {{size}}", "fileUploader.uploadFromComputerReadError": "Échec de la lecture du fichier, veuillez réessayer.", "fileUploader.uploadFromComputerUploadError": "Le téléchargement du fichier a échoué, veuillez le télécharger à nouveau.", "imageInput.browse": "naviguer", @@ -305,7 +305,7 @@ "modelProvider.addModel": "Ajouter un modèle", "modelProvider.addMoreModelProvider": "AJOUTER PLUS DE FOURNISSEUR DE MODÈLE", "modelProvider.apiKey": "API-KEY", - "modelProvider.apiKeyRateLimit": "La limite de débit a été atteinte, disponible après {{secondes}}s", + "modelProvider.apiKeyRateLimit": "La limite de débit a été atteinte, disponible après {{seconds}}s", "modelProvider.apiKeyStatusNormal": "L’état de l’APIKey est normal", "modelProvider.auth.addApiKey": "Ajouter une clé API", "modelProvider.auth.addCredential": "Ajouter un identifiant", diff --git a/web/i18n/fr-FR/dataset-creation.json b/web/i18n/fr-FR/dataset-creation.json index 3f1e61284c..2e415066e9 100644 --- a/web/i18n/fr-FR/dataset-creation.json +++ b/web/i18n/fr-FR/dataset-creation.json @@ -68,7 +68,7 @@ "stepOne.website.resetAll": "Tout réinitialiser", "stepOne.website.run": "Courir", "stepOne.website.running": "Course", - "stepOne.website.scrapTimeInfo": "Pages récupérées au total dans un délai de {{time}}s", + "stepOne.website.scrapTimeInfo": "Pages récupérées au total {{total}} en {{time}}s", "stepOne.website.selectAll": "Tout sélectionner", "stepOne.website.totalPageScraped": "Nombre total de pages extraites :", "stepOne.website.unknownError": "Erreur inconnue", diff --git a/web/i18n/fr-FR/dataset-hit-testing.json b/web/i18n/fr-FR/dataset-hit-testing.json index c5f4c5fab9..9dbdc71cf6 100644 --- a/web/i18n/fr-FR/dataset-hit-testing.json +++ b/web/i18n/fr-FR/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "JJ/MM/AAAA hh:mm A", "desc": "Testez l'effet d'impact de la Connaissance basée sur le texte de la requête donnée.", "hit.emptyTip": "Les résultats des tests de récupération s'afficheront ici", - "hit.title": "PARAGRAPHES DE RÉCUPÉRATION", + "hit.title": "{{num}} paragraphes récupérés", "hitChunks": "Appuyez sur {{num}} morceaux enfants", "imageUploader.dropZoneTip": "Faites glisser le fichier ici pour le télécharger", "imageUploader.singleChunkAttachmentLimitTooltip": "Le nombre de pièces jointes à bloc unique ne peut pas dépasser {{limit}}", diff --git a/web/i18n/fr-FR/dataset-settings.json b/web/i18n/fr-FR/dataset-settings.json index f8fb30c935..76c322f08c 100644 --- a/web/i18n/fr-FR/dataset-settings.json +++ b/web/i18n/fr-FR/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Méthode d'Indexation", "form.indexMethodChangeToEconomyDisabledTip": "Non disponible pour le déclassement de HQ à ECO", "form.indexMethodEconomy": "Économique", - "form.indexMethodEconomyTip": "Utilisez des moteurs vectoriels hors ligne, des index de mots-clés, etc. pour réduire la précision sans dépenser de jetons", + "form.indexMethodEconomyTip": "Utilisez {{count}} mots-clés par chunk pour la récupération, sans consommer de jetons, au prix d'une précision réduite.", "form.indexMethodHighQuality": "Haute Qualité", "form.indexMethodHighQualityTip": "Appeler le modèle d'Embedding pour le traitement afin de fournir une plus grande précision lors des requêtes des utilisateurs.", "form.me": "(Vous)", diff --git a/web/i18n/fr-FR/plugin.json b/web/i18n/fr-FR/plugin.json index cf64d3ade7..d96d207de0 100644 --- a/web/i18n/fr-FR/plugin.json +++ b/web/i18n/fr-FR/plugin.json @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Mettre à jour", "detailPanel.operation.viewDetail": "Voir les détails", "detailPanel.serviceOk": "Service OK", - "detailPanel.strategyNum": "{{num}} {{stratégie}} INCLUS", + "detailPanel.strategyNum": "{{num}} {{strategy}} INCLUS", "detailPanel.switchVersion": "Version du commutateur", "detailPanel.toolSelector.auto": "Auto", "detailPanel.toolSelector.descriptionLabel": "Description de l’outil", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} les plugins n’ont pas pu être installés", - "task.installing": "Installation des plugins {{installingLength}}, 0 fait.", + "task.installing": "Installation des plugins.", "task.installingWithError": "Installation des plugins {{installingLength}}, succès de {{successLength}}, échec de {{errorLength}}", "task.installingWithSuccess": "Installation des plugins {{installingLength}}, succès de {{successLength}}.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/fr-FR/tools.json b/web/i18n/fr-FR/tools.json index 21c4bef659..15954f46eb 100644 --- a/web/i18n/fr-FR/tools.json +++ b/web/i18n/fr-FR/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Voir la spécification OpenAPI-Swagger", "customToolTip": "En savoir plus sur les outils personnalisés Dify", "howToGet": "Comment obtenir", - "includeToolNum": "{{num}} outils inclus", + "includeToolNum": "{{num}} {{action}} inclus", "mcp.authorize": "Autoriser", "mcp.authorizeTip": "Après autorisation, les outils seront affichés ici.", "mcp.authorizing": "Autorisation en cours...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "En savoir plus sur l'intégration du serveur MCP", "mcp.create.cardTitle": "Ajouter un Serveur MCP (HTTP)", "mcp.delete": "Supprimer le Serveur MCP", - "mcp.deleteConfirmTitle": "Souhaitez-vous supprimer {mcp}?", + "mcp.deleteConfirmTitle": "Souhaitez-vous supprimer {{mcp}}?", "mcp.getTools": "Obtenir des outils", "mcp.gettingTools": "Obtention des Outils...", "mcp.identifier": "Identifiant du Serveur (Cliquez pour Copier)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "Paramètres", "mcp.toolUpdateConfirmContent": "La mise à jour de la liste des outils peut affecter les applications existantes. Souhaitez-vous continuer?", "mcp.toolUpdateConfirmTitle": "Mettre à jour la Liste des Outils", - "mcp.toolsCount": "{count} outils", + "mcp.toolsCount": "{{count}} outils", "mcp.toolsEmpty": "Outils non chargés", - "mcp.toolsNum": "{count} outils inclus", + "mcp.toolsNum": "{{count}} outils inclus", "mcp.update": "Mettre à jour", "mcp.updateTime": "Mis à jour", "mcp.updateTools": "Mise à jour des Outils...", diff --git a/web/i18n/fr-FR/workflow.json b/web/i18n/fr-FR/workflow.json index 0c8731cb00..95781ce262 100644 --- a/web/i18n/fr-FR/workflow.json +++ b/web/i18n/fr-FR/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "La version du plugin installée ne fournit pas cette stratégie. Cliquez pour changer de version.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} n’est pas installé", "nodes.agent.strategyNotSet": "Stratégie agentique non définie", - "nodes.agent.toolNotAuthorizedTooltip": "{{outil}} Non autorisé", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} Non autorisé", "nodes.agent.toolNotInstallTooltip": "{{tool}} n’est pas installé", "nodes.agent.toolbox": "boîte à outils", "nodes.agent.tools": "Outils", diff --git a/web/i18n/hi-IN/app.json b/web/i18n/hi-IN/app.json index d57fdc86e9..a67961d6d1 100644 --- a/web/i18n/hi-IN/app.json +++ b/web/i18n/hi-IN/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "कोई ज्ञान आधार नहीं मिले", "gotoAnything.emptyState.noPluginsFound": "कोई प्लगइन नहीं मिले", "gotoAnything.emptyState.noWorkflowNodesFound": "कोई कार्यप्रवाह नोड नहीं मिला", - "gotoAnything.emptyState.tryDifferentTerm": "एक अलग खोज शब्द आज़माएं या {{mode}} फ़िल्टर हटा दें", + "gotoAnything.emptyState.tryDifferentTerm": "एक अलग खोज शब्द आज़माएं", "gotoAnything.emptyState.trySpecificSearch": "विशिष्ट खोज के लिए {{shortcuts}} आज़माएं", "gotoAnything.groups.apps": "ऐप्स", "gotoAnything.groups.commands": "आदेश", diff --git a/web/i18n/hi-IN/billing.json b/web/i18n/hi-IN/billing.json index 87843936c4..2117d99894 100644 --- a/web/i18n/hi-IN/billing.json +++ b/web/i18n/hi-IN/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "एनोटेशन कोटा सीमाएं", "plansCommon.annotatedResponse.tooltip": "प्रतिक्रियाओं का मैन्युअल संपादन और एनोटेशन ऐप्स के लिए अनुकूलन योग्य उच्च-गुणवत्ता वाले प्रश्न-उत्तर क्षमताएं प्रदान करता है। (केवल चैट ऐप्स में लागू)", "plansCommon.annotationQuota": "एनोटेशन कोटा", - "plansCommon.annualBilling": "वार्षिक बिलिंग", + "plansCommon.annualBilling": "वार्षिक बिलिंग, {{percent}}% बचत", "plansCommon.apiRateLimit": "एपीआई दर सीमा", "plansCommon.apiRateLimitTooltip": "Dify API के माध्यम से की गई सभी अनुरोधों पर API दर सीमा लागू होती है, जिसमें टेक्स्ट जनरेशन, चैट वार्तालाप, कार्यप्रवाह निष्पादन और दस्तावेज़ प्रसंस्करण शामिल हैं।", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "साइन अप करें और प्राप्त करें एक", "plansCommon.freeTrialTipSuffix": "कोई क्रेडिट कार्ड की आवश्यकता नहीं है", "plansCommon.getStarted": "शुरू करें", - "plansCommon.logsHistory": "लॉग इतिहास", + "plansCommon.logsHistory": "{{days}} लॉग इतिहास", "plansCommon.member": "सदस्य", "plansCommon.memberAfter": "सदस्य", "plansCommon.messageRequest.title": "संदेश क्रेडिट्स", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "अनुपलब्ध", "plansCommon.unlimited": "असीमित", "plansCommon.unlimitedApiRate": "कोई एपीआई दर सीमा नहीं", - "plansCommon.vectorSpace": "वेक्टर स्पेस", + "plansCommon.vectorSpace": "{{size}} वेक्टर स्पेस", "plansCommon.vectorSpaceTooltip": "वेक्टर स्पेस वह दीर्घकालिक स्मृति प्रणाली है जिसकी आवश्यकता LLMs को आपके डेटा को समझने के लिए होती है।", "plansCommon.workflowExecution.faster": "तेज़ कार्यप्रवाह निष्पादन", "plansCommon.workflowExecution.priority": "प्राथमिकता कार्यप्रवाह निष्पादन", diff --git a/web/i18n/hi-IN/common.json b/web/i18n/hi-IN/common.json index c7b2402f81..8289bb7332 100644 --- a/web/i18n/hi-IN/common.json +++ b/web/i18n/hi-IN/common.json @@ -108,7 +108,7 @@ "chat.conversationName": "संवाद का नाम", "chat.conversationNameCanNotEmpty": "संवाद का नाम आवश्यक है", "chat.conversationNamePlaceholder": "कृपया संवाद का नाम दर्ज करें", - "chat.inputPlaceholder": "बॉट से बात करें", + "chat.inputPlaceholder": "{{botName}} से बात करें", "chat.renameConversation": "संवाद का नाम बदलें", "chat.resend": "फिर से भेजें", "chat.thinking": "सोचते हुए...", @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "अमान्य फ़ाइल लिंक", "fileUploader.uploadDisabled": "फ़ाइल अपलोड अक्षम है", "fileUploader.uploadFromComputer": "स्थानीय अपलोड", - "fileUploader.uploadFromComputerLimit": "अपलोड फ़ाइल {{size}} से ज़्यादा नहीं हो सकती", + "fileUploader.uploadFromComputerLimit": "{{type}} अपलोड {{size}} से ज़्यादा नहीं हो सकता", "fileUploader.uploadFromComputerReadError": "फ़ाइल पढ़ना विफल रहा, कृपया पुनः प्रयास करें.", "fileUploader.uploadFromComputerUploadError": "फ़ाइल अपलोड विफल रही, कृपया फिर से अपलोड करें।", "imageInput.browse": "ब्राउज़ करें", @@ -196,7 +196,7 @@ "language.displayLanguage": "प्रदर्शन भाषा", "language.timezone": "समय क्षेत्र", "license.expiring": "एक दिन में समाप्त हो रहा है", - "license.expiring_plural": "{{गिनती}} दिनों में समाप्त हो रहा है", + "license.expiring_plural": "{{count}} दिनों में समाप्त हो रहा है", "license.unlimited": "असीमित", "loading": "लोड हो रहा है", "members.admin": "प्रशासक", diff --git a/web/i18n/hi-IN/dataset-creation.json b/web/i18n/hi-IN/dataset-creation.json index 62cd7960cb..7b3cc55537 100644 --- a/web/i18n/hi-IN/dataset-creation.json +++ b/web/i18n/hi-IN/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "पुष्टि करें और पूर्वावलोकन करें", "stepTwo.previewButton": "प्रश्न-उत्तर प्रारूप में स्विच करना", "stepTwo.previewChunk": "पूर्वावलोकन चंक", - "stepTwo.previewChunkCount": "{{गिनती}} अनुमानित खंड", + "stepTwo.previewChunkCount": "{{count}} अनुमानित खंड", "stepTwo.previewChunkTip": "पूर्वावलोकन लोड करने के लिए बाईं ओर 'पूर्वावलोकन चंक' बटन पर क्लिक करें", "stepTwo.previewSwitchTipEnd": " अतिरिक्त टोकन खर्च होंगे", "stepTwo.previewSwitchTipStart": "वर्तमान खंड पूर्वावलोकन पाठ प्रारूप में है, प्रश्न-उत्तर प्रारूप में स्विच करने से", diff --git a/web/i18n/hi-IN/dataset-hit-testing.json b/web/i18n/hi-IN/dataset-hit-testing.json index 5efeef35e6..67006c7670 100644 --- a/web/i18n/hi-IN/dataset-hit-testing.json +++ b/web/i18n/hi-IN/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "MM/DD/YYYY hh:mm A", "desc": "दिए गए प्रश्न पाठ के आधार पर ज्ञान की प्रभावशीलता का परीक्षण करें।", "hit.emptyTip": "पुनर्प्राप्ति परीक्षण के परिणाम यहां दिखाई देंगे", - "hit.title": "पुनर्प्राप्ति अनुच्छेद", + "hit.title": "{{num}} पुनर्प्राप्ति अनुच्छेद", "hitChunks": "{{num}} बच्चे के टुकड़े मारो", "imageUploader.dropZoneTip": "अपलोड करने के लिए फ़ाइल यहाँ खींचें", "imageUploader.singleChunkAttachmentLimitTooltip": "सिंगल चंक अटैचमेंट की संख्या {{limit}} से अधिक नहीं हो सकती", diff --git a/web/i18n/hi-IN/dataset-settings.json b/web/i18n/hi-IN/dataset-settings.json index a7006724c8..366519806a 100644 --- a/web/i18n/hi-IN/dataset-settings.json +++ b/web/i18n/hi-IN/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "सूचीकरण प्रक्रिया", "form.indexMethodChangeToEconomyDisabledTip": "मुख्यालय से ईसीओ में डाउनग्रेड करने के लिए उपलब्ध नहीं है", "form.indexMethodEconomy": "आर्थिक", - "form.indexMethodEconomyTip": "ऑफ़लाइन वेक्टर इंजन, कीवर्ड इंडेक्स आदि का उपयोग करें ताकि टोकनों की बचत हो।", + "form.indexMethodEconomyTip": "प्रत्येक खंड के लिए {{count}} कीवर्ड का उपयोग करके पुनर्प्राप्ति करें, टोकन खर्च किए बिना कम सटीकता की कीमत पर।", "form.indexMethodHighQuality": " उच्च गुणवत्ता", "form.indexMethodHighQualityTip": "उपयोगकर्ता के प्रश्नों के समय उच्च सटीकता प्रदान करने के लिए Embedding मॉडल को प्रोसेसिंग के लिए कॉल करें।", "form.me": "(आप)", diff --git a/web/i18n/hi-IN/plugin.json b/web/i18n/hi-IN/plugin.json index 351c32fae3..5a16c2676e 100644 --- a/web/i18n/hi-IN/plugin.json +++ b/web/i18n/hi-IN/plugin.json @@ -116,7 +116,7 @@ "detailPanel.operation.update": "अपडेट", "detailPanel.operation.viewDetail": "विवरण देखें", "detailPanel.serviceOk": "सेवा ठीक है", - "detailPanel.strategyNum": "{{num}} {{रणनीति}} शामिल", + "detailPanel.strategyNum": "{{num}} {{strategy}} शामिल", "detailPanel.switchVersion": "स्विच संस्करण", "detailPanel.toolSelector.auto": "स्वचालित", "detailPanel.toolSelector.descriptionLabel": "उपकरण का विवरण", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} प्लगइन्स स्थापित करने में विफल रहे", - "task.installing": "{{installingLength}} प्लगइन्स स्थापित कर रहे हैं, 0 पूरा हुआ।", + "task.installing": "प्लगइन्स स्थापित कर रहे हैं।", "task.installingWithError": "{{installingLength}} प्लगइन्स स्थापित कर रहे हैं, {{successLength}} सफल, {{errorLength}} विफल", "task.installingWithSuccess": "{{installingLength}} प्लगइन्स स्थापित कर रहे हैं, {{successLength}} सफल।", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/hi-IN/tools.json b/web/i18n/hi-IN/tools.json index 7c9839603e..87017ffa4b 100644 --- a/web/i18n/hi-IN/tools.json +++ b/web/i18n/hi-IN/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "OpenAPI-Swagger विनिर्देश देखें", "customToolTip": "Dify कस्टम उपकरणों के बारे में और जानें", "howToGet": "कैसे प्राप्त करें", - "includeToolNum": "{{num}} उपकरण शामिल हैं", + "includeToolNum": "{{num}} {{action}} शामिल हैं", "mcp.authorize": "अधिकृत करें", "mcp.authorizeTip": "अधिकृत होने के बाद, टूल यहाँ प्रदर्शित होंगे।", "mcp.authorizing": "अधिकृत किया जा रहा है...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "MCP सर्वर एकीकरण के बारे में अधिक जानें", "mcp.create.cardTitle": "MCP सर्वर जोड़ें (HTTP)", "mcp.delete": "MCP सर्वर हटाएँ", - "mcp.deleteConfirmTitle": "{mcp} हटाना चाहते हैं?", + "mcp.deleteConfirmTitle": "{{mcp}} हटाना चाहते हैं?", "mcp.getTools": "टूल्स प्राप्त करें", "mcp.gettingTools": "टूल्स प्राप्त किए जा रहे हैं...", "mcp.identifier": "सर्वर आईडेंटिफ़ायर (कॉपी करने के लिए क्लिक करें)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "पैरामीटर", "mcp.toolUpdateConfirmContent": "टूल सूची अपडेट करने से मौजूदा ऐप्स प्रभावित हो सकते हैं। आगे बढ़ना चाहते हैं?", "mcp.toolUpdateConfirmTitle": "टूल सूची अपडेट करें", - "mcp.toolsCount": "{count} टूल्स", + "mcp.toolsCount": "{{count}} टूल्स", "mcp.toolsEmpty": "टूल्स लोड नहीं हुए", - "mcp.toolsNum": "{count} टूल्स शामिल", + "mcp.toolsNum": "{{count}} टूल्स शामिल", "mcp.update": "अपडेट करें", "mcp.updateTime": "अपडेट किया गया", "mcp.updateTools": "टूल्स अपडेट किए जा रहे हैं...", diff --git a/web/i18n/hi-IN/workflow.json b/web/i18n/hi-IN/workflow.json index bc2230752a..23b9d3cad2 100644 --- a/web/i18n/hi-IN/workflow.json +++ b/web/i18n/hi-IN/workflow.json @@ -453,7 +453,7 @@ "nodes.docExtractor.inputVar": "इनपुट वेरिएबल", "nodes.docExtractor.learnMore": "और जानो", "nodes.docExtractor.outputVars.text": "निकाला गया पाठ", - "nodes.docExtractor.supportFileTypes": "समर्थन फ़ाइल प्रकार: {{प्रकार}}।", + "nodes.docExtractor.supportFileTypes": "समर्थन फ़ाइल प्रकार: {{types}}।", "nodes.end.output.type": "आउटपुट प्रकार", "nodes.end.output.variable": "आउटपुट वेरिएबल", "nodes.end.outputs": "आउटपुट्स", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "इटरेशन नोड हटाने से सभी चाइल्ड नोड्स हट जाएंगे", "nodes.iteration.deleteTitle": "इटरेशन नोड हटाएं?", "nodes.iteration.errorResponseMethod": "त्रुटि प्रतिक्रिया विधि", - "nodes.iteration.error_one": "{{गिनती}} चूक", - "nodes.iteration.error_other": "{{गिनती}} त्रुटियों", + "nodes.iteration.error_one": "{{count}} त्रुटि", + "nodes.iteration.error_other": "{{count}} त्रुटियाँ", "nodes.iteration.flattenOutput": "आउटपुट को सपाट करें", "nodes.iteration.flattenOutputDesc": "जब सक्षम किया जाता है, यदि सभी पुनरावृत्ति आउटपुट सरणियाँ हैं, तो उन्हें एक ही सरणी में समतल कर दिया जाएगा। जब अक्षम किया जाता है, तो आउटपुट घोंसले वाली सरणी संरचना बनाए रखेगा।", "nodes.iteration.input": "इनपुट", diff --git a/web/i18n/id-ID/billing.json b/web/i18n/id-ID/billing.json index 26bdeccdba..9ac384500f 100644 --- a/web/i18n/id-ID/billing.json +++ b/web/i18n/id-ID/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Batas Kuota Anotasi {{count,number}}", "plansCommon.annotatedResponse.tooltip": "Pengeditan manual dan anotasi respons memberikan kemampuan menjawab pertanyaan berkualitas tinggi yang dapat disesuaikan untuk aplikasi. (Hanya berlaku di aplikasi Chat)", "plansCommon.annotationQuota": "Kuota Anotasi", - "plansCommon.annualBilling": "Penagihan Tahunan", + "plansCommon.annualBilling": "Penagihan tahunan, hemat {{percent}}%", "plansCommon.apiRateLimit": "Batas Tarif API", "plansCommon.apiRateLimitTooltip": "Batas Tarif API berlaku untuk semua permintaan yang dibuat melalui Dify API, termasuk pembuatan teks, percakapan obrolan, eksekusi alur kerja, dan pemrosesan dokumen.", "plansCommon.apiRateLimitUnit": "{{count,number}}", diff --git a/web/i18n/id-ID/dataset-settings.json b/web/i18n/id-ID/dataset-settings.json index 10e4488a07..79916ea940 100644 --- a/web/i18n/id-ID/dataset-settings.json +++ b/web/i18n/id-ID/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Metode Indeks", "form.indexMethodChangeToEconomyDisabledTip": "Tidak tersedia untuk downgrade dari HQ ke ECO", "form.indexMethodEconomy": "Ekonomis", - "form.indexMethodEconomyTip": "Menggunakan 10 kata kunci per potongan untuk pengambilan, tidak ada token yang dikonsumsi dengan mengorbankan penurunan akurasi pengambilan.", + "form.indexMethodEconomyTip": "Menggunakan {{count}} kata kunci per potongan untuk pengambilan, tidak ada token yang dikonsumsi dengan mengorbankan penurunan akurasi pengambilan.", "form.indexMethodHighQuality": "Kualitas Tinggi", "form.indexMethodHighQualityTip": "Memanggil model penyematan untuk memproses dokumen untuk pengambilan yang lebih tepat membantu LLM menghasilkan jawaban berkualitas tinggi.", "form.me": "(Anda)", diff --git a/web/i18n/id-ID/plugin.json b/web/i18n/id-ID/plugin.json index 6792c341dc..486de762f8 100644 --- a/web/i18n/id-ID/plugin.json +++ b/web/i18n/id-ID/plugin.json @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "Gagal menginstal {{errorLength}} plugin", - "task.installing": "Memasang plugin {{installingLength}}, 0 selesai.", + "task.installing": "Memasang plugin.", "task.installingWithError": "Memasang {{installingLength}} plugin, {{successLength}} berhasil, {{errorLength}} gagal", "task.installingWithSuccess": "Memasang plugin {{installingLength}}, {{successLength}} berhasil.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/it-IT/app-overview.json b/web/i18n/it-IT/app-overview.json index 1cef34bf5f..9406d89682 100644 --- a/web/i18n/it-IT/app-overview.json +++ b/web/i18n/it-IT/app-overview.json @@ -113,7 +113,7 @@ "overview.triggerInfo.noTriggerAdded": "Nessun trigger aggiunto", "overview.triggerInfo.title": "Inneschi", "overview.triggerInfo.triggerStatusDescription": "Lo stato del nodo trigger appare qui. (Può già esistere in bozza, prende effetto dopo la pubblicazione)", - "overview.triggerInfo.triggersAdded": "Trigger aggiunti", + "overview.triggerInfo.triggersAdded": "{{count}} trigger aggiunti", "welcome.enterKeyTip": "inserisci la tua OpenAI API Key qui sotto", "welcome.firstStepTip": "Per iniziare,", "welcome.getKeyTip": "Ottieni la tua API Key dalla dashboard di OpenAI", diff --git a/web/i18n/it-IT/app.json b/web/i18n/it-IT/app.json index b84f57b669..7020e35d7b 100644 --- a/web/i18n/it-IT/app.json +++ b/web/i18n/it-IT/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Nessuna base di conoscenza trovata", "gotoAnything.emptyState.noPluginsFound": "Nessun plugin trovato", "gotoAnything.emptyState.noWorkflowNodesFound": "Nessun nodo del flusso di lavoro trovato", - "gotoAnything.emptyState.tryDifferentTerm": "Prova un termine di ricerca diverso o rimuovi il filtro {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Prova un termine di ricerca diverso", "gotoAnything.emptyState.trySpecificSearch": "Prova {{shortcuts}} per ricerche specifiche", "gotoAnything.groups.apps": "Applicazioni", "gotoAnything.groups.commands": "Comandi", @@ -161,8 +161,8 @@ "newApp.dropDSLToCreateApp": "Trascina il file DSL qui per creare l'app", "newApp.forAdvanced": "PER UTENTI AVANZATI", "newApp.forBeginners": "Tipi di app più semplici", - "newApp.foundResult": "{{conteggio}} Risultato", - "newApp.foundResults": "{{conteggio}} Risultati", + "newApp.foundResult": "{{count}} Risultato", + "newApp.foundResults": "{{count}} Risultati", "newApp.hideTemplates": "Torna alla selezione della modalità", "newApp.import": "Importazione", "newApp.learnMore": "Ulteriori informazioni", diff --git a/web/i18n/it-IT/billing.json b/web/i18n/it-IT/billing.json index b1192cc0e7..9a8c8170ea 100644 --- a/web/i18n/it-IT/billing.json +++ b/web/i18n/it-IT/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Limiti di Quota di Annotazione", "plansCommon.annotatedResponse.tooltip": "La modifica manuale e l'annotazione delle risposte forniscono capacità di risposta a domande personalizzabili di alta qualità per le app. (Applicabile solo nelle app di chat)", "plansCommon.annotationQuota": "Quota di Annotazione", - "plansCommon.annualBilling": "Fatturazione annuale", + "plansCommon.annualBilling": "Fatturazione annuale, risparmia {{percent}}%", "plansCommon.apiRateLimit": "Limite di richiesta API", "plansCommon.apiRateLimitTooltip": "Il limite di utilizzo dell'API si applica a tutte le richieste effettuate tramite l'API Dify, comprese la generazione di testo, le conversazioni chat, le esecuzioni di flussi di lavoro e l'elaborazione di documenti.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Iscriviti e ricevi un", "plansCommon.freeTrialTipSuffix": "Nessuna carta di credito richiesta", "plansCommon.getStarted": "Inizia", - "plansCommon.logsHistory": "Storico dei Log", + "plansCommon.logsHistory": "{{days}} storico dei log", "plansCommon.member": "Membro", "plansCommon.memberAfter": "Membro", "plansCommon.messageRequest.title": "Crediti Messaggi", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Non Disponibile", "plansCommon.unlimited": "Illimitato", "plansCommon.unlimitedApiRate": "Nessun limite di tasso API", - "plansCommon.vectorSpace": "Spazio Vettoriale", + "plansCommon.vectorSpace": "{{size}} spazio vettoriale", "plansCommon.vectorSpaceTooltip": "Lo Spazio Vettoriale è il sistema di memoria a lungo termine necessario per permettere agli LLM di comprendere i tuoi dati.", "plansCommon.workflowExecution.faster": "Esecuzione del flusso di lavoro più rapida", "plansCommon.workflowExecution.priority": "Esecuzione del flusso di lavoro prioritario", diff --git a/web/i18n/it-IT/common.json b/web/i18n/it-IT/common.json index 49e14591a7..75f57424ac 100644 --- a/web/i18n/it-IT/common.json +++ b/web/i18n/it-IT/common.json @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Collegamento file non valido", "fileUploader.uploadDisabled": "Il caricamento dei file è disabilitato", "fileUploader.uploadFromComputer": "Caricamento locale", - "fileUploader.uploadFromComputerLimit": "Il file di caricamento non può superare {{size}}", + "fileUploader.uploadFromComputerLimit": "Il caricamento di {{type}} non può superare {{size}}", "fileUploader.uploadFromComputerReadError": "Lettura del file non riuscita, riprovare.", "fileUploader.uploadFromComputerUploadError": "Caricamento del file non riuscito, carica di nuovo.", "imageInput.browse": "sfogliare", diff --git a/web/i18n/it-IT/dataset-creation.json b/web/i18n/it-IT/dataset-creation.json index 5e420be5b6..59226f0a50 100644 --- a/web/i18n/it-IT/dataset-creation.json +++ b/web/i18n/it-IT/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "Conferma & Anteprima", "stepTwo.previewButton": "Passaggio al formato Domanda & Risposta", "stepTwo.previewChunk": "Blocco di anteprima", - "stepTwo.previewChunkCount": "{{conteggio}} Blocchi stimati", + "stepTwo.previewChunkCount": "{{count}} Blocchi stimati", "stepTwo.previewChunkTip": "Fai clic sul pulsante \"Anteprima blocco\" a sinistra per caricare l'anteprima", "stepTwo.previewSwitchTipEnd": " consumerà token aggiuntivi", "stepTwo.previewSwitchTipStart": "L'anteprima del blocco corrente è in formato testo, il passaggio a un'anteprima in formato domanda e risposta", diff --git a/web/i18n/it-IT/dataset-hit-testing.json b/web/i18n/it-IT/dataset-hit-testing.json index 23bff31e07..67d56f0322 100644 --- a/web/i18n/it-IT/dataset-hit-testing.json +++ b/web/i18n/it-IT/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "MM/DD/YYYY hh:mm A", "desc": "Testa l'effetto di recupero della Conoscenza basato sul testo di query fornito.", "hit.emptyTip": "I risultati del Test di Recupero verranno mostrati qui", - "hit.title": "PARAGRAFI RECUPERATI", + "hit.title": "{{num}} paragrafi recuperati", "hitChunks": "Premi {{num}} blocchi figlio", "imageUploader.dropZoneTip": "Trascina il file qui per caricarlo", "imageUploader.singleChunkAttachmentLimitTooltip": "Il numero di allegati a singolo blocco non può superare {{limit}}", diff --git a/web/i18n/it-IT/dataset-settings.json b/web/i18n/it-IT/dataset-settings.json index 716889aa67..87a9603683 100644 --- a/web/i18n/it-IT/dataset-settings.json +++ b/web/i18n/it-IT/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Metodo di Indicizzazione", "form.indexMethodChangeToEconomyDisabledTip": "Non disponibile per il downgrade da HQ a ECO", "form.indexMethodEconomy": "Economico", - "form.indexMethodEconomyTip": "Usa motori vettoriali offline, indici di parole chiave, ecc. per ridurre l'accuratezza senza spendere token", + "form.indexMethodEconomyTip": "Usa {{count}} parole chiave per chunk per il recupero, senza consumare token a costo di minore accuratezza.", "form.indexMethodHighQuality": "Alta Qualità", "form.indexMethodHighQualityTip": "Chiama il modello di Embedding per l'elaborazione per fornire maggiore accuratezza quando gli utenti fanno query.", "form.me": "(Tu)", diff --git a/web/i18n/it-IT/plugin.json b/web/i18n/it-IT/plugin.json index 41dab32d39..06a2dfa4ab 100644 --- a/web/i18n/it-IT/plugin.json +++ b/web/i18n/it-IT/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Debug", "debugInfo.viewDocs": "Visualizza documenti", "deprecated": "Deprecato", - "detailPanel.actionNum": "{{num}} {{azione}} INCLUSO", + "detailPanel.actionNum": "{{num}} {{action}} INCLUSO", "detailPanel.categoryTip.debugging": "Plugin di debug", "detailPanel.categoryTip.github": "Installato da Github", "detailPanel.categoryTip.local": "Plugin locale", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Aggiornare", "detailPanel.operation.viewDetail": "vedi dettagli", "detailPanel.serviceOk": "Servizio OK", - "detailPanel.strategyNum": "{{num}} {{strategia}} INCLUSO", + "detailPanel.strategyNum": "{{num}} {{strategy}} INCLUSO", "detailPanel.switchVersion": "Versione switch", "detailPanel.toolSelector.auto": "Automatico", "detailPanel.toolSelector.descriptionLabel": "Descrizione dell'utensile", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "Impossibile installare i plugin di {{errorLength}}", - "task.installing": "Installazione dei plugin {{installingLength}}, 0 fatto.", + "task.installing": "Installazione dei plugin.", "task.installingWithError": "Installazione dei plugin {{installingLength}}, {{successLength}} successo, {{errorLength}} fallito", "task.installingWithSuccess": "Installazione dei plugin {{installingLength}}, {{successLength}} successo.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/it-IT/tools.json b/web/i18n/it-IT/tools.json index 7e727eb1ee..2691b517ae 100644 --- a/web/i18n/it-IT/tools.json +++ b/web/i18n/it-IT/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Visualizza la Specifica OpenAPI-Swagger", "customToolTip": "Scopri di più sugli strumenti personalizzati di Dify", "howToGet": "Come ottenere", - "includeToolNum": "{{num}} strumenti inclusi", + "includeToolNum": "{{num}} {{action}} inclusi", "mcp.authorize": "Autorizza", "mcp.authorizeTip": "Dopo l'autorizzazione, gli strumenti verranno visualizzati qui.", "mcp.authorizing": "Autorizzando...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "Scopri di più sull'integrazione del server MCP", "mcp.create.cardTitle": "Aggiungi Server MCP (HTTP)", "mcp.delete": "Rimuovi Server MCP", - "mcp.deleteConfirmTitle": "Vuoi rimuovere {mcp}?", + "mcp.deleteConfirmTitle": "Vuoi rimuovere {{mcp}}?", "mcp.getTools": "Ottieni strumenti", "mcp.gettingTools": "Ottimizzando Strumenti...", "mcp.identifier": "Identificatore del Server (Fai clic per Copiare)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "Parametri", "mcp.toolUpdateConfirmContent": "L'aggiornamento della lista degli strumenti può influire sulle app esistenti. Vuoi procedere?", "mcp.toolUpdateConfirmTitle": "Aggiorna Lista Strumenti", - "mcp.toolsCount": "{count} strumenti", + "mcp.toolsCount": "{{count}} strumenti", "mcp.toolsEmpty": "Strumenti non caricati", - "mcp.toolsNum": "{count} strumenti inclusi", + "mcp.toolsNum": "{{count}} strumenti inclusi", "mcp.update": "Aggiorna", "mcp.updateTime": "Aggiornato", "mcp.updateTools": "Aggiornando Strumenti...", diff --git a/web/i18n/it-IT/workflow.json b/web/i18n/it-IT/workflow.json index 6a48aea460..fdf0d6e517 100644 --- a/web/i18n/it-IT/workflow.json +++ b/web/i18n/it-IT/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "La versione del plugin installata non fornisce questa strategia. Fare clic per cambiare versione.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} non è installato", "nodes.agent.strategyNotSet": "Strategia agentica non impostata", - "nodes.agent.toolNotAuthorizedTooltip": "{{strumento}} Non autorizzato", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} Non autorizzato", "nodes.agent.toolNotInstallTooltip": "{{tool}} non è installato", "nodes.agent.toolbox": "cassetta degli attrezzi", "nodes.agent.tools": "Utensileria", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "Eliminando il nodo iterazione verranno eliminati tutti i nodi figlio", "nodes.iteration.deleteTitle": "Eliminare Nodo Iterazione?", "nodes.iteration.errorResponseMethod": "Metodo di risposta all'errore", - "nodes.iteration.error_one": "{{conteggio}} Errore", - "nodes.iteration.error_other": "{{conteggio}} Errori", + "nodes.iteration.error_one": "{{count}} Errore", + "nodes.iteration.error_other": "{{count}} Errori", "nodes.iteration.flattenOutput": "Appiattisci output", "nodes.iteration.flattenOutputDesc": "Quando abilitato, se tutti i risultati delle iterazioni sono array, saranno uniti in un unico array. Quando disabilitato, i risultati manterranno una struttura di array nidificati.", "nodes.iteration.input": "Input", diff --git a/web/i18n/ja-JP/app.json b/web/i18n/ja-JP/app.json index e9ac621607..f48e61f2fc 100644 --- a/web/i18n/ja-JP/app.json +++ b/web/i18n/ja-JP/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "ナレッジベースが見つかりません", "gotoAnything.emptyState.noPluginsFound": "プラグインが見つかりません", "gotoAnything.emptyState.noWorkflowNodesFound": "ワークフローノードが見つかりません", - "gotoAnything.emptyState.tryDifferentTerm": "別の検索語句を試すか、{{mode}} フィルターを削除してください", + "gotoAnything.emptyState.tryDifferentTerm": "別の検索語句を試してください", "gotoAnything.emptyState.trySpecificSearch": "特定検索には {{shortcuts}} を試してください", "gotoAnything.groups.apps": "アプリケーション", "gotoAnything.groups.commands": "コマンド", diff --git a/web/i18n/ja-JP/billing.json b/web/i18n/ja-JP/billing.json index b23ae6c959..bf2f496428 100644 --- a/web/i18n/ja-JP/billing.json +++ b/web/i18n/ja-JP/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "{{count,number}}の注釈クォータ制限", "plansCommon.annotatedResponse.tooltip": "手動での回答の編集と注釈により、カスタマイズ可能な高品質の質問応答機能をアプリに提供します。(チャットアプリのみに適用)", "plansCommon.annotationQuota": "アノテーション・クォータ", - "plansCommon.annualBilling": "年次請求", + "plansCommon.annualBilling": "年次請求、{{percent}}%節約", "plansCommon.apiRateLimit": "API リクエスト制限", "plansCommon.apiRateLimitTooltip": "API レート制限は、テキスト生成、チャットボット、ワークフロー、ドキュメント処理など、Dify API 経由のすべてのリクエストに適用されます。", "plansCommon.apiRateLimitUnit": "{{count,number}} の", diff --git a/web/i18n/ja-JP/common.json b/web/i18n/ja-JP/common.json index 11f543e7e5..1b6ae48115 100644 --- a/web/i18n/ja-JP/common.json +++ b/web/i18n/ja-JP/common.json @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "無効なファイルリンク", "fileUploader.uploadDisabled": "ファイルアップロードは無効です", "fileUploader.uploadFromComputer": "ローカルアップロード", - "fileUploader.uploadFromComputerLimit": "アップロードファイルは{{size}}を超えてはなりません", + "fileUploader.uploadFromComputerLimit": "{{type}}のアップロードは{{size}}を超えてはなりません", "fileUploader.uploadFromComputerReadError": "ファイルの読み取りに失敗しました。もう一度やり直してください。", "fileUploader.uploadFromComputerUploadError": "ファイルのアップロードに失敗しました。再度アップロードしてください。", "imageInput.browse": "ブラウズする", diff --git a/web/i18n/ja-JP/plugin-trigger.json b/web/i18n/ja-JP/plugin-trigger.json index 7576db2be3..d0006611e3 100644 --- a/web/i18n/ja-JP/plugin-trigger.json +++ b/web/i18n/ja-JP/plugin-trigger.json @@ -90,11 +90,11 @@ "subscription.list.item.actions.deleteConfirm.confirmInputPlaceholder": "確認するには「{{name}}」と入力してください。", "subscription.list.item.actions.deleteConfirm.confirmInputTip": "確認のため「{{name}}」を入力してください。", "subscription.list.item.actions.deleteConfirm.confirmInputWarning": "確認するために正しい名前を入力してください。", - "subscription.list.item.actions.deleteConfirm.content": "「{{name}}」を削除してもよろしいですか?", - "subscription.list.item.actions.deleteConfirm.contentWithApps": "このサブスクリプションは {{count}} 個のアプリで使用されています。「{{name}}」を削除してもよろしいですか?", + "subscription.list.item.actions.deleteConfirm.content": "削除すると、このサブスクリプションは復元できません。確認してください。", + "subscription.list.item.actions.deleteConfirm.contentWithApps": "現在のサブスクリプションは {{count}} 個のアプリで参照されています。削除すると、設定済みのアプリがサブスクリプションイベントを受信しなくなります。", "subscription.list.item.actions.deleteConfirm.error": "サブスクリプション {{name}} の削除に失敗しました", "subscription.list.item.actions.deleteConfirm.success": "サブスクリプション {{name}} は正常に削除されました", - "subscription.list.item.actions.deleteConfirm.title": "サブスクリプションを削除", + "subscription.list.item.actions.deleteConfirm.title": "{{name}} を削除しますか?", "subscription.list.item.actions.edit.error": "サブスクリプションの更新に失敗しました", "subscription.list.item.actions.edit.success": "サブスクリプションが正常に更新されました", "subscription.list.item.actions.edit.title": "サブスクリプションを編集", diff --git a/web/i18n/ja-JP/plugin.json b/web/i18n/ja-JP/plugin.json index 02b50f1c67..0397173e11 100644 --- a/web/i18n/ja-JP/plugin.json +++ b/web/i18n/ja-JP/plugin.json @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} プラグインのインストールに失敗しました", - "task.installing": "{{installingLength}}個のプラグインをインストール中、0 個完了。", + "task.installing": "プラグインをインストール中。", "task.installingWithError": "{{installingLength}}個のプラグインをインストール中、{{successLength}}件成功、{{errorLength}}件失敗", "task.installingWithSuccess": "{{installingLength}}個のプラグインをインストール中、{{successLength}}個成功しました。", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/ja-JP/tools.json b/web/i18n/ja-JP/tools.json index 36b047c990..e3c6e4b84d 100644 --- a/web/i18n/ja-JP/tools.json +++ b/web/i18n/ja-JP/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "OpenAPI-Swagger 仕様を表示する", "customToolTip": "Dify カスタムツールの詳細", "howToGet": "取得方法", - "includeToolNum": "{{num}}個のツールが含まれています", + "includeToolNum": "{{num}} {{action}} が含まれています", "mcp.authorize": "承認", "mcp.authorizeTip": "承認後、このページにツールが表示されるようになります。", "mcp.authorizing": "承認中...", diff --git a/web/i18n/ja-JP/workflow.json b/web/i18n/ja-JP/workflow.json index df8fb56dd0..aee11d69c9 100644 --- a/web/i18n/ja-JP/workflow.json +++ b/web/i18n/ja-JP/workflow.json @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "イテレーションノードを削除すると、すべての子ノードが削除されます", "nodes.iteration.deleteTitle": "イテレーションノードを削除しますか?", "nodes.iteration.errorResponseMethod": "エラー応答方式", - "nodes.iteration.error_one": "{{カウント}}エラー", - "nodes.iteration.error_other": "{{カウント}}エラー", + "nodes.iteration.error_one": "{{count}} エラー", + "nodes.iteration.error_other": "{{count}} エラー", "nodes.iteration.flattenOutput": "出力をフラット化", "nodes.iteration.flattenOutputDesc": "有効にすると、すべての反復出力が配列の場合、1つの配列にまとめてフラット化されます。無効の場合はネストされた配列構造のままです。", "nodes.iteration.input": "入力", diff --git a/web/i18n/ko-KR/app.json b/web/i18n/ko-KR/app.json index 476688a061..31a18af292 100644 --- a/web/i18n/ko-KR/app.json +++ b/web/i18n/ko-KR/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "기술 자료를 찾을 수 없습니다.", "gotoAnything.emptyState.noPluginsFound": "플러그인을 찾을 수 없습니다.", "gotoAnything.emptyState.noWorkflowNodesFound": "워크플로 노드를 찾을 수 없습니다.", - "gotoAnything.emptyState.tryDifferentTerm": "다른 검색어를 시도하거나 {{mode}} 필터를 제거하세요", + "gotoAnything.emptyState.tryDifferentTerm": "다른 검색어를 시도하세요", "gotoAnything.emptyState.trySpecificSearch": "특정 검색을 위해 {{shortcuts}}를 사용해보세요", "gotoAnything.groups.apps": "앱", "gotoAnything.groups.commands": "명령어", diff --git a/web/i18n/ko-KR/billing.json b/web/i18n/ko-KR/billing.json index 9868672178..1c694c2572 100644 --- a/web/i18n/ko-KR/billing.json +++ b/web/i18n/ko-KR/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "주석 응답 쿼터", "plansCommon.annotatedResponse.tooltip": "수동으로 편집 및 응답 주석 달기로 앱의 사용자 정의 가능한 고품질 질의응답 기능을 제공합니다 (채팅 앱에만 해당).", "plansCommon.annotationQuota": "Annotation Quota(주석 할당량)", - "plansCommon.annualBilling": "연간 청구", + "plansCommon.annualBilling": "연간 청구, {{percent}}% 절약", "plansCommon.apiRateLimit": "API 요금 한도", "plansCommon.apiRateLimitTooltip": "Dify API 를 통한 모든 요청에는 API 요금 한도가 적용되며, 여기에는 텍스트 생성, 채팅 대화, 워크플로 실행 및 문서 처리가 포함됩니다.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "요금제에 가입하고 ", "plansCommon.freeTrialTipSuffix": "신용카드 없음", "plansCommon.getStarted": "시작하기", - "plansCommon.logsHistory": "로그 기록", + "plansCommon.logsHistory": "{{days}} 로그 기록", "plansCommon.member": "멤버", "plansCommon.memberAfter": "멤버", "plansCommon.messageRequest.title": "메시지 크레딧", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "사용 불가", "plansCommon.unlimited": "무제한", "plansCommon.unlimitedApiRate": "API 호출 속도 제한 없음", - "plansCommon.vectorSpace": "벡터 공간", + "plansCommon.vectorSpace": "{{size}} 벡터 공간", "plansCommon.vectorSpaceTooltip": "벡터 공간은 LLM 이 데이터를 이해하는 데 필요한 장기 기억 시스템입니다.", "plansCommon.workflowExecution.faster": "더 빠른 작업 흐름 실행", "plansCommon.workflowExecution.priority": "우선 순위 작업 흐름 실행", diff --git a/web/i18n/ko-KR/common.json b/web/i18n/ko-KR/common.json index a8ae974530..e77dc0c684 100644 --- a/web/i18n/ko-KR/common.json +++ b/web/i18n/ko-KR/common.json @@ -108,7 +108,7 @@ "chat.conversationName": "대화 이름", "chat.conversationNameCanNotEmpty": "대화 이름은 필수입니다", "chat.conversationNamePlaceholder": "대화 이름을 입력하세요", - "chat.inputPlaceholder": "봇과 대화", + "chat.inputPlaceholder": "{{botName}}와 대화", "chat.renameConversation": "대화 이름 바꾸기", "chat.resend": "재전송", "chat.thinking": "생각...", @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "유효하지 않은 파일 링크", "fileUploader.uploadDisabled": "파일 업로드가 비활성화되었습니다", "fileUploader.uploadFromComputer": "로컬 업로드", - "fileUploader.uploadFromComputerLimit": "업로드 파일은 {{size}}를 초과할 수 없습니다.", + "fileUploader.uploadFromComputerLimit": "{{type}} 업로드는 {{size}}를 초과할 수 없습니다.", "fileUploader.uploadFromComputerReadError": "파일 읽기에 실패했습니다. 다시 시도하십시오.", "fileUploader.uploadFromComputerUploadError": "파일 업로드에 실패했습니다. 다시 업로드하십시오.", "imageInput.browse": "찾아보기", diff --git a/web/i18n/ko-KR/dataset-creation.json b/web/i18n/ko-KR/dataset-creation.json index a31b3428ed..be3e198a7b 100644 --- a/web/i18n/ko-KR/dataset-creation.json +++ b/web/i18n/ko-KR/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "미리보기", "stepTwo.previewButton": "질문 - 답변 형식으로 전환", "stepTwo.previewChunk": "프리뷰 청크 (Preview Chunk)", - "stepTwo.previewChunkCount": "{{개수}} 추정된 청크", + "stepTwo.previewChunkCount": "{{count}} 추정된 청크", "stepTwo.previewChunkTip": "왼쪽의 'Preview Chunk' 버튼을 클릭하여 프리뷰를 로드합니다", "stepTwo.previewSwitchTipEnd": " 추가 토큰이 소비됩니다", "stepTwo.previewSwitchTipStart": "현재 청크 미리보기는 텍스트 형식입니다. 질문과 답변 형식 미리보기로 전환하면", diff --git a/web/i18n/ko-KR/dataset-hit-testing.json b/web/i18n/ko-KR/dataset-hit-testing.json index 21dc3fbd6c..2b0f9d4bbd 100644 --- a/web/i18n/ko-KR/dataset-hit-testing.json +++ b/web/i18n/ko-KR/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "YYYY/MM/DD HH:mm", "desc": "주어진 쿼리 텍스트에 기반하여 지식의 검색 효과를 테스트합니다.", "hit.emptyTip": "검색 테스트 결과가 여기에 표시됩니다.", - "hit.title": "검색 결과 단락", + "hit.title": "{{num}} 검색 결과 단락", "hitChunks": "{{num}}개의 자식 청크를 히트했습니다.", "imageUploader.dropZoneTip": "업로드할 파일을 여기에 끌어놓으세요", "imageUploader.singleChunkAttachmentLimitTooltip": "단일 청크 첨부 파일의 수는 {{limit}}를 초과할 수 없습니다", diff --git a/web/i18n/ko-KR/dataset-settings.json b/web/i18n/ko-KR/dataset-settings.json index 9f1c040c12..f494f0bab9 100644 --- a/web/i18n/ko-KR/dataset-settings.json +++ b/web/i18n/ko-KR/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "인덱스 방법", "form.indexMethodChangeToEconomyDisabledTip": "HQ 에서 ECO 로 다운그레이드할 수 없습니다.", "form.indexMethodEconomy": "경제적", - "form.indexMethodEconomyTip": "오프라인 벡터 엔진, 키워드 인덱스 등을 사용하여 토큰을 소비하지 않고도 정확도를 감소시킵니다.", + "form.indexMethodEconomyTip": "각 청크에 {{count}}개의 키워드를 사용하여 검색하며, 토큰을 소비하지 않는 대신 정확도가 감소합니다.", "form.indexMethodHighQuality": "고품질", "form.indexMethodHighQualityTip": "사용자 쿼리 시 더 높은 정확도를 제공하기 위해 Embedding 모델을 호출하여 처리합니다.", "form.me": "(당신)", diff --git a/web/i18n/ko-KR/dataset.json b/web/i18n/ko-KR/dataset.json index e8832da1a5..92d4834cb5 100644 --- a/web/i18n/ko-KR/dataset.json +++ b/web/i18n/ko-KR/dataset.json @@ -147,7 +147,7 @@ "parentMode.paragraph": "단락", "partialEnabled_one": "총 {{count}}개의 문서 중 {{num}}개 사용 가능", "partialEnabled_other": "총 {{count}}개의 문서 중 {{num}}개 사용 가능", - "preprocessDocument": "{{숫자}} 문서 전처리", + "preprocessDocument": "{{num}} 문서 전처리", "rerankSettings": "재순위 설정", "retrieval.change": "변경", "retrieval.changeRetrievalMethod": "검색 방법 변경", diff --git a/web/i18n/ko-KR/plugin.json b/web/i18n/ko-KR/plugin.json index b00e43eccb..2f20a584c5 100644 --- a/web/i18n/ko-KR/plugin.json +++ b/web/i18n/ko-KR/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "디버깅", "debugInfo.viewDocs": "문서 보기", "deprecated": "사용 중단됨", - "detailPanel.actionNum": "{{번호}} {{행동}} 포함", + "detailPanel.actionNum": "{{num}} {{action}} 포함", "detailPanel.categoryTip.debugging": "디버깅 플러그인", "detailPanel.categoryTip.github": "Github 에서 설치됨", "detailPanel.categoryTip.local": "로컬 플러그인", @@ -106,7 +106,7 @@ "detailPanel.endpointsDocLink": "문서 보기", "detailPanel.endpointsEmpty": "'+' 버튼을 클릭하여 엔드포인트를 추가합니다.", "detailPanel.endpointsTip": "이 플러그인은 엔드포인트를 통해 특정 기능을 제공하며 현재 작업 공간에 대해 여러 엔드포인트 세트를 구성할 수 있습니다.", - "detailPanel.modelNum": "{{번호}} 포함 된 모델", + "detailPanel.modelNum": "{{num}} 포함 된 모델", "detailPanel.operation.back": "뒤로", "detailPanel.operation.checkUpdate": "업데이트 확인", "detailPanel.operation.detail": "세부 정보", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "업데이트", "detailPanel.operation.viewDetail": "자세히보기", "detailPanel.serviceOk": "서비스 정상", - "detailPanel.strategyNum": "{{번호}} {{전략}} 포함", + "detailPanel.strategyNum": "{{num}} {{strategy}} 포함", "detailPanel.switchVersion": "스위치 버전", "detailPanel.toolSelector.auto": "자동 번역", "detailPanel.toolSelector.descriptionLabel": "도구 설명", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} 플러그인 설치 실패", - "task.installing": "{{installingLength}} 플러그인 설치, 0 완료.", + "task.installing": "플러그인 설치 중.", "task.installingWithError": "{{installingLength}} 플러그인 설치, {{successLength}} 성공, {{errorLength}} 실패", "task.installingWithSuccess": "{{installingLength}} 플러그인 설치, {{successLength}} 성공.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/ko-KR/tools.json b/web/i18n/ko-KR/tools.json index a6a1e2951a..985185ecfd 100644 --- a/web/i18n/ko-KR/tools.json +++ b/web/i18n/ko-KR/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "OpenAPI-Swagger 명세 보기", "customToolTip": "Dify 커스텀 도구에 대해 더 알아보기", "howToGet": "획득 방법", - "includeToolNum": "{{num}}개의 도구가 포함되어 있습니다", + "includeToolNum": "{{num}} {{action}} 포함됨", "mcp.authorize": "권한 부여", "mcp.authorizeTip": "권한 부여 후 도구가 여기에 표시됩니다.", "mcp.authorizing": "권한 부여 중...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "MCP 서버 통합에 대해 자세히 알아보기", "mcp.create.cardTitle": "MCP 서버 추가 (HTTP)", "mcp.delete": "MCP 서버 제거", - "mcp.deleteConfirmTitle": "{mcp}를 제거하시겠습니까?", + "mcp.deleteConfirmTitle": "{{mcp}}를 제거하시겠습니까?", "mcp.getTools": "도구 가져오기", "mcp.gettingTools": "도구 가져오는 중...", "mcp.identifier": "서버 식별자 (클릭하여 복사)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "매개변수", "mcp.toolUpdateConfirmContent": "도구 목록을 업데이트하면 기존 앱에 영향을 줄 수 있습니다. 계속하시겠습니까?", "mcp.toolUpdateConfirmTitle": "도구 목록 업데이트", - "mcp.toolsCount": "{count} 도구", + "mcp.toolsCount": "{{count}} 도구", "mcp.toolsEmpty": "도구가 로드되지 않음", - "mcp.toolsNum": "{count} 도구가 포함됨", + "mcp.toolsNum": "{{count}} 도구가 포함됨", "mcp.update": "업데이트", "mcp.updateTime": "업데이트됨", "mcp.updateTools": "도구 업데이트 중...", diff --git a/web/i18n/ko-KR/workflow.json b/web/i18n/ko-KR/workflow.json index b224becec2..ea2963d052 100644 --- a/web/i18n/ko-KR/workflow.json +++ b/web/i18n/ko-KR/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "설치된 플러그인 버전은 이 전략을 제공하지 않습니다. 버전을 전환하려면 클릭합니다.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}}가 설치되지 않았습니다.", "nodes.agent.strategyNotSet": "에이전트 전략이 설정되지 않음", - "nodes.agent.toolNotAuthorizedTooltip": "{{도구}} 권한이 부여되지 않음", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} 권한이 부여되지 않음", "nodes.agent.toolNotInstallTooltip": "{{tool}}이 설치되지 않았습니다.", "nodes.agent.toolbox": "도구", "nodes.agent.tools": "도구", @@ -435,7 +435,7 @@ "nodes.common.pluginNotInstalled": "플러그인이 설치되지 않았습니다", "nodes.common.retry.maxRetries": "최대 재시도 횟수", "nodes.common.retry.ms": "ms", - "nodes.common.retry.retries": "{{숫자}} 재시도", + "nodes.common.retry.retries": "{{num}} 재시도", "nodes.common.retry.retry": "재시도", "nodes.common.retry.retryFailed": "재시도 실패", "nodes.common.retry.retryFailedTimes": "{{times}} 재시도 실패", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "반복 노드를 삭제하면 모든 하위 노드가 삭제됩니다", "nodes.iteration.deleteTitle": "반복 노드를 삭제하시겠습니까?", "nodes.iteration.errorResponseMethod": "오류 응답 방법", - "nodes.iteration.error_one": "{{개수}} 오류", - "nodes.iteration.error_other": "{{개수}} 오류", + "nodes.iteration.error_one": "{{count}} 오류", + "nodes.iteration.error_other": "{{count}} 오류", "nodes.iteration.flattenOutput": "출력 평탄화", "nodes.iteration.flattenOutputDesc": "활성화하면, 모든 반복 결과가 배열일 경우 이를 하나의 배열로 평탄화합니다. 비활성화하면, 결과는 중첩된 배열 구조를 유지합니다.", "nodes.iteration.input": "입력", diff --git a/web/i18n/pl-PL/app-debug.json b/web/i18n/pl-PL/app-debug.json index 0a9da0fcce..f50a6ed3c3 100644 --- a/web/i18n/pl-PL/app-debug.json +++ b/web/i18n/pl-PL/app-debug.json @@ -289,7 +289,7 @@ "result": "Tekst wyjściowy", "trailUseGPT4Info.description": "Użyj GPT-4, proszę ustawić klucz API.", "trailUseGPT4Info.title": "Obecnie nie obsługuje GPT-4", - "varKeyError.canNoBeEmpty": "{{klucz}} jest wymagany", + "varKeyError.canNoBeEmpty": "{{key}} jest wymagany", "varKeyError.keyAlreadyExists": "{{key}} już istnieje", "varKeyError.notStartWithNumber": "{{key}} nie może zaczynać się od cyfry", "varKeyError.notValid": "{{key}} jest nieprawidłowy. Może zawierać tylko litery, cyfry i podkreślenia", diff --git a/web/i18n/pl-PL/app.json b/web/i18n/pl-PL/app.json index ae40712521..a4d851a5c7 100644 --- a/web/i18n/pl-PL/app.json +++ b/web/i18n/pl-PL/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Nie znaleziono baz wiedzy", "gotoAnything.emptyState.noPluginsFound": "Nie znaleziono wtyczek", "gotoAnything.emptyState.noWorkflowNodesFound": "Nie znaleziono węzłów przepływu pracy", - "gotoAnything.emptyState.tryDifferentTerm": "Spróbuj innego terminu wyszukiwania lub usuń filtr {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Spróbuj innego terminu wyszukiwania", "gotoAnything.emptyState.trySpecificSearch": "Spróbuj {{shortcuts}} dla konkretnych wyszukiwań", "gotoAnything.groups.apps": "Aplikacje", "gotoAnything.groups.commands": "Polecenia", diff --git a/web/i18n/pl-PL/billing.json b/web/i18n/pl-PL/billing.json index 51a241fbf7..701304afdb 100644 --- a/web/i18n/pl-PL/billing.json +++ b/web/i18n/pl-PL/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Limity kredytów na adnotacje", "plansCommon.annotatedResponse.tooltip": "Ręczna edycja i adnotacja odpowiedzi zapewniają możliwość dostosowania wysokiej jakości odpowiedzi na pytania dla aplikacji. (Stosowane tylko w aplikacjach czatowych)", "plansCommon.annotationQuota": "Przydział adnotacji", - "plansCommon.annualBilling": "Roczne rozliczenie", + "plansCommon.annualBilling": "Roczne rozliczenie, oszczędź {{percent}}%", "plansCommon.apiRateLimit": "Limit liczby wywołań API", "plansCommon.apiRateLimitTooltip": "Limit aktywności API dotyczy wszystkich żądań składanych za pośrednictwem API Dify, w tym generowania tekstu, rozmów czatowych, wykonywania przepływów pracy i przetwarzania dokumentów.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Zarejestruj się i zdobądź", "plansCommon.freeTrialTipSuffix": "Nie jest wymagana karta kredytowa", "plansCommon.getStarted": "Zacznij", - "plansCommon.logsHistory": "Historia logów", + "plansCommon.logsHistory": "{{days}} historia logów", "plansCommon.member": "Członek", "plansCommon.memberAfter": "Członek", "plansCommon.messageRequest.title": "Limity kredytów wiadomości", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Niedostępne", "plansCommon.unlimited": "Nieograniczony", "plansCommon.unlimitedApiRate": "Brak limitu liczby zapytań API", - "plansCommon.vectorSpace": "Przestrzeń wektorowa", + "plansCommon.vectorSpace": "{{size}} przestrzeń wektorowa", "plansCommon.vectorSpaceTooltip": "Przestrzeń wektorowa jest systemem pamięci długoterminowej wymaganym dla LLM, aby zrozumieć Twoje dane.", "plansCommon.workflowExecution.faster": "Szybsze wykonywanie przepływu pracy", "plansCommon.workflowExecution.priority": "Wykonywanie przepływu pracy według priorytetu", diff --git a/web/i18n/pl-PL/common.json b/web/i18n/pl-PL/common.json index 963ecf865d..44d78aeaea 100644 --- a/web/i18n/pl-PL/common.json +++ b/web/i18n/pl-PL/common.json @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Nieprawidłowy link do pliku", "fileUploader.uploadDisabled": "Przesyłanie plików jest wyłączone", "fileUploader.uploadFromComputer": "Przesyłanie lokalne", - "fileUploader.uploadFromComputerLimit": "Prześlij plik nie może przekraczać {{size}}", + "fileUploader.uploadFromComputerLimit": "Przesyłanie {{type}} nie może przekraczać {{size}}", "fileUploader.uploadFromComputerReadError": "Odczyt pliku nie powiódł się, spróbuj ponownie.", "fileUploader.uploadFromComputerUploadError": "Przesyłanie pliku nie powiodło się, prześlij ponownie.", "imageInput.browse": "przeglądaj", @@ -305,7 +305,7 @@ "modelProvider.addModel": "Dodaj model", "modelProvider.addMoreModelProvider": "DODAJ WIĘCEJ DOSTAWCÓW MODELI", "modelProvider.apiKey": "KLUCZ-API", - "modelProvider.apiKeyRateLimit": "Osiągnięto limit szybkości, dostępny po {{sekund}}s", + "modelProvider.apiKeyRateLimit": "Osiągnięto limit szybkości, dostępny po {{seconds}}s", "modelProvider.apiKeyStatusNormal": "Stan APIKey jest normalny", "modelProvider.auth.addApiKey": "Dodaj klucz API", "modelProvider.auth.addCredential": "Dodaj dane uwierzytelniające", diff --git a/web/i18n/pl-PL/dataset-creation.json b/web/i18n/pl-PL/dataset-creation.json index c07e163509..eab4afed17 100644 --- a/web/i18n/pl-PL/dataset-creation.json +++ b/web/i18n/pl-PL/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "Potwierdź i Podgląd", "stepTwo.previewButton": "Przełącz do formatu pytania i odpowiedzi", "stepTwo.previewChunk": "Fragment podglądu", - "stepTwo.previewChunkCount": "{{liczba}} Szacowane porcje", + "stepTwo.previewChunkCount": "{{count}} Szacowane porcje", "stepTwo.previewChunkTip": "Kliknij przycisk \"Podgląd fragmentu\" po lewej stronie, aby załadować podgląd", "stepTwo.previewSwitchTipEnd": " dodatkowe zużycie tokenów", "stepTwo.previewSwitchTipStart": "Aktulany podgląd bloku jest w formacie tekstu, przełączenie na podgląd w formacie pytania i odpowiedzi spowoduje", diff --git a/web/i18n/pl-PL/dataset-hit-testing.json b/web/i18n/pl-PL/dataset-hit-testing.json index 52ee766b08..76b3d320b1 100644 --- a/web/i18n/pl-PL/dataset-hit-testing.json +++ b/web/i18n/pl-PL/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "MM/DD/YYYY hh:mm A", "desc": "Przetestuj efekt uderzenia wiedzy na podstawie podanego tekstu zapytania.", "hit.emptyTip": "Wyniki testowania odzyskiwania będą tu pokazane", - "hit.title": "AKAPITY ODZYSKIWANIA", + "hit.title": "{{num}} akapity odzyskiwania", "hitChunks": "Trafienie w {{num}} fragmentów podrzędnych", "imageUploader.dropZoneTip": "Przeciągnij plik tutaj, aby go przesłać", "imageUploader.singleChunkAttachmentLimitTooltip": "Liczba pojedynczych załączników nie może przekroczyć {{limit}}", diff --git a/web/i18n/pl-PL/dataset-settings.json b/web/i18n/pl-PL/dataset-settings.json index 7eb1201f1d..94ac597b9a 100644 --- a/web/i18n/pl-PL/dataset-settings.json +++ b/web/i18n/pl-PL/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Metoda indeksowania", "form.indexMethodChangeToEconomyDisabledTip": "Niedostępne w przypadku zmiany z HQ na ECO", "form.indexMethodEconomy": "Ekonomiczna", - "form.indexMethodEconomyTip": "Użyj silników wektorów offline, indeksów słów kluczowych itp., aby zmniejszyć dokładność bez wydawania tokenów", + "form.indexMethodEconomyTip": "Użyj {{count}} słów kluczowych na porcję do wyszukiwania, bez zużycia tokenów kosztem mniejszej dokładności.", "form.indexMethodHighQuality": "Wysoka jakość", "form.indexMethodHighQualityTip": "Wywołaj model Embedding do przetwarzania, aby zapewnić większą dokładność przy zapytaniach użytkowników.", "form.me": "(Ty)", diff --git a/web/i18n/pl-PL/dataset.json b/web/i18n/pl-PL/dataset.json index 9a5b46fda8..9d118ba1bf 100644 --- a/web/i18n/pl-PL/dataset.json +++ b/web/i18n/pl-PL/dataset.json @@ -147,7 +147,7 @@ "parentMode.paragraph": "Akapit", "partialEnabled_one": "Łącznie {{count}} dokumentów, {{num}} dostępnych", "partialEnabled_other": "Łącznie {{count}} dokumentów, {{num}} dostępnych", - "preprocessDocument": "{{liczba}} Przetwarzanie wstępne dokumentów", + "preprocessDocument": "{{num}} Przetwarzanie wstępne dokumentów", "rerankSettings": "Ustawienia ponownego rankingu", "retrieval.change": "Zmień", "retrieval.changeRetrievalMethod": "Zmień metodę odzyskiwania", diff --git a/web/i18n/pl-PL/plugin.json b/web/i18n/pl-PL/plugin.json index 1691bccf57..abe94610dc 100644 --- a/web/i18n/pl-PL/plugin.json +++ b/web/i18n/pl-PL/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Debugowanie", "debugInfo.viewDocs": "Wyświetlanie dokumentów", "deprecated": "Nieaktualny", - "detailPanel.actionNum": "{{liczba}} {{akcja}} ZAWARTE", + "detailPanel.actionNum": "{{num}} {{action}} ZAWARTE", "detailPanel.categoryTip.debugging": "Wtyczka do debugowania", "detailPanel.categoryTip.github": "Zainstalowany z Github", "detailPanel.categoryTip.local": "Wtyczka lokalna", @@ -106,7 +106,7 @@ "detailPanel.endpointsDocLink": "Wyświetlanie dokumentu", "detailPanel.endpointsEmpty": "Kliknij przycisk \"+\", aby dodać punkt końcowy", "detailPanel.endpointsTip": "Ta wtyczka zapewnia określone funkcje za pośrednictwem punktów końcowych i można skonfigurować wiele zestawów punktów końcowych dla bieżącego obszaru roboczego.", - "detailPanel.modelNum": "{{liczba}} MODELE W ZESTAWIE", + "detailPanel.modelNum": "{{num}} MODELE W ZESTAWIE", "detailPanel.operation.back": "Wstecz", "detailPanel.operation.checkUpdate": "Sprawdź aktualizację", "detailPanel.operation.detail": "Szczegóły", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Aktualizacja", "detailPanel.operation.viewDetail": "Pokaż szczegóły", "detailPanel.serviceOk": "Serwis OK", - "detailPanel.strategyNum": "{{liczba}} {{strategia}} ZAWARTE", + "detailPanel.strategyNum": "{{num}} {{strategy}} ZAWARTE", "detailPanel.switchVersion": "Wersja przełącznika", "detailPanel.toolSelector.auto": "Auto", "detailPanel.toolSelector.descriptionLabel": "Opis narzędzia", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "Nie udało się zainstalować wtyczek {{errorLength}}", - "task.installing": "Instalowanie wtyczek {{installingLength}}, 0 gotowe.", + "task.installing": "Instalowanie wtyczek.", "task.installingWithError": "Instalacja wtyczek {{installingLength}}, {{successLength}} powodzenie, {{errorLength}} niepowodzenie", "task.installingWithSuccess": "Instalacja wtyczek {{installingLength}}, {{successLength}} powodzenie.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/pl-PL/tools.json b/web/i18n/pl-PL/tools.json index 1226414b37..9e49a27a07 100644 --- a/web/i18n/pl-PL/tools.json +++ b/web/i18n/pl-PL/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Zobacz specyfikację OpenAPI-Swagger", "customToolTip": "Dowiedz się więcej o niestandardowych narzędziach Dify", "howToGet": "Jak uzyskać", - "includeToolNum": "{{num}} narzędzi zawarte", + "includeToolNum": "{{num}} {{action}} zawarte", "mcp.authorize": "Autoryzuj", "mcp.authorizeTip": "Po autoryzacji narzędzia będą wyświetlane tutaj.", "mcp.authorizing": "Autoryzowanie...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "Dowiedz się więcej o integracji serwera MCP", "mcp.create.cardTitle": "Dodaj serwer MCP (HTTP)", "mcp.delete": "Usuń serwer MCP", - "mcp.deleteConfirmTitle": "Usunąć {mcp}?", + "mcp.deleteConfirmTitle": "Usunąć {{mcp}}?", "mcp.getTools": "Pobierz narzędzia", "mcp.gettingTools": "Pobieranie narzędzi...", "mcp.identifier": "Identyfikator serwera (Kliknij, aby skopiować)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "Parametry", "mcp.toolUpdateConfirmContent": "Aktualizacja listy narzędzi może wpłynąć na istniejące aplikacje. Kontynuować?", "mcp.toolUpdateConfirmTitle": "Aktualizuj listę narzędzi", - "mcp.toolsCount": "{count} narzędzi", + "mcp.toolsCount": "{{count}} narzędzi", "mcp.toolsEmpty": "Narzędzia niezaładowane", - "mcp.toolsNum": "{count} narzędzi zawartych", + "mcp.toolsNum": "{{count}} narzędzi zawartych", "mcp.update": "Aktualizuj", "mcp.updateTime": "Zaktualizowano", "mcp.updateTools": "Aktualizowanie narzędzi...", diff --git a/web/i18n/pl-PL/workflow.json b/web/i18n/pl-PL/workflow.json index 35852f3917..8f0fc1c96b 100644 --- a/web/i18n/pl-PL/workflow.json +++ b/web/i18n/pl-PL/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "Zainstalowana wersja wtyczki nie zapewnia tej strategii. Kliknij, aby zmienić wersję.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} nie jest zainstalowany", "nodes.agent.strategyNotSet": "Nie ustawiono strategii agentalnej", - "nodes.agent.toolNotAuthorizedTooltip": "{{narzędzie}} Nieautoryzowany", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} Nieautoryzowany", "nodes.agent.toolNotInstallTooltip": "{{tool}} nie jest zainstalowany", "nodes.agent.toolbox": "skrzynka z narzędziami", "nodes.agent.tools": "Narzędzia", @@ -435,7 +435,7 @@ "nodes.common.pluginNotInstalled": "Wtyczka nie jest zainstalowana", "nodes.common.retry.maxRetries": "Maksymalna liczba ponownych prób", "nodes.common.retry.ms": "Ms", - "nodes.common.retry.retries": "{{liczba}} Ponownych prób", + "nodes.common.retry.retries": "{{num}} Ponownych prób", "nodes.common.retry.retry": "Ponów próbę", "nodes.common.retry.retryFailed": "Ponawianie próby nie powiodło się", "nodes.common.retry.retryFailedTimes": "{{times}} ponawianie prób nie powiodło się", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "Usunięcie węzła iteracji usunie wszystkie węzły potomne", "nodes.iteration.deleteTitle": "Usunąć węzeł iteracji?", "nodes.iteration.errorResponseMethod": "Metoda odpowiedzi na błąd", - "nodes.iteration.error_one": "{{liczba}} Błąd", - "nodes.iteration.error_other": "{{liczba}} Błędy", + "nodes.iteration.error_one": "{{count}} Błąd", + "nodes.iteration.error_other": "{{count}} Błędy", "nodes.iteration.flattenOutput": "Spłaszcz wyjście", "nodes.iteration.flattenOutputDesc": "Po włączeniu, jeśli wszystkie wyniki iteracji są tablicami, zostaną one spłaszczone do pojedynczej tablicy. Po wyłączeniu wyniki zachowają zagnieżdżoną strukturę tablicy.", "nodes.iteration.input": "Wejście", diff --git a/web/i18n/pt-BR/app-debug.json b/web/i18n/pt-BR/app-debug.json index 6059787894..5b0b4c9969 100644 --- a/web/i18n/pt-BR/app-debug.json +++ b/web/i18n/pt-BR/app-debug.json @@ -251,10 +251,10 @@ "openingStatement.notIncludeKey": "O prompt inicial não inclui a variável: {{key}}. Por favor, adicione-a ao prompt inicial.", "openingStatement.openingQuestion": "Perguntas de Abertura", "openingStatement.openingQuestionPlaceholder": "Você pode usar variáveis, tente digitar {{variable}}.", - "openingStatement.placeholder": "Escreva sua mensagem de abertura aqui, você pode usar variáveis, tente digitar {{variável}}.", + "openingStatement.placeholder": "Escreva sua mensagem de abertura aqui, você pode usar variáveis, tente digitar {{variable}}.", "openingStatement.title": "Abertura da Conversa", "openingStatement.tooShort": "São necessárias pelo menos 20 palavras de prompt inicial para gerar observações de abertura para a conversa.", - "openingStatement.varTip": "Você pode usar variáveis, tente digitar {{variável}}", + "openingStatement.varTip": "Você pode usar variáveis, tente digitar {{variable}}", "openingStatement.writeOpener": "Escrever abertura", "operation.addFeature": "Adicionar Recurso", "operation.agree": "gostar", diff --git a/web/i18n/pt-BR/app.json b/web/i18n/pt-BR/app.json index e293e8309f..e97c923c39 100644 --- a/web/i18n/pt-BR/app.json +++ b/web/i18n/pt-BR/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Nenhuma base de conhecimento encontrada", "gotoAnything.emptyState.noPluginsFound": "Nenhum plugin encontrado", "gotoAnything.emptyState.noWorkflowNodesFound": "Nenhum nó de fluxo de trabalho encontrado", - "gotoAnything.emptyState.tryDifferentTerm": "Tente um termo de pesquisa diferente ou remova o filtro {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Tente um termo de pesquisa diferente", "gotoAnything.emptyState.trySpecificSearch": "Tente {{shortcuts}} para pesquisas específicas", "gotoAnything.groups.apps": "Aplicativos", "gotoAnything.groups.commands": "Comandos", @@ -161,8 +161,8 @@ "newApp.dropDSLToCreateApp": "Cole o arquivo DSL aqui para criar o aplicativo", "newApp.forAdvanced": "PARA USUÁRIOS AVANÇADOS", "newApp.forBeginners": "Tipos de aplicativos mais básicos", - "newApp.foundResult": "{{contagem}} Resultado", - "newApp.foundResults": "{{contagem}} Resultados", + "newApp.foundResult": "{{count}} Resultado", + "newApp.foundResults": "{{count}} Resultados", "newApp.hideTemplates": "Voltar para a seleção de modo", "newApp.import": "Importação", "newApp.learnMore": "Saiba Mais", diff --git a/web/i18n/pt-BR/billing.json b/web/i18n/pt-BR/billing.json index bdce6a8ca5..69beb2f456 100644 --- a/web/i18n/pt-BR/billing.json +++ b/web/i18n/pt-BR/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Limites de Cota de Anotação", "plansCommon.annotatedResponse.tooltip": "A edição manual e anotação de respostas oferece habilidades personalizadas de perguntas e respostas de alta qualidade para aplicativos. (Aplicável apenas em aplicativos de chat)", "plansCommon.annotationQuota": "Cota de anotação", - "plansCommon.annualBilling": "Cobrança Anual", + "plansCommon.annualBilling": "Cobrança anual, economize {{percent}}%", "plansCommon.apiRateLimit": "Limite de Taxa da API", "plansCommon.apiRateLimitTooltip": "O limite da taxa da API se aplica a todas as solicitações feitas através da API Dify, incluindo geração de texto, conversas de chat, execuções de fluxo de trabalho e processamento de documentos.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Inscreva-se e receba um", "plansCommon.freeTrialTipSuffix": "Nenhum cartão de crédito necessário", "plansCommon.getStarted": "Começar", - "plansCommon.logsHistory": "Histórico de Logs", + "plansCommon.logsHistory": "{{days}} histórico de logs", "plansCommon.member": "Membro", "plansCommon.memberAfter": "Membro", "plansCommon.messageRequest.title": "Créditos de Mensagem", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Indisponível", "plansCommon.unlimited": "Ilimitado", "plansCommon.unlimitedApiRate": "Sem limite de taxa da API", - "plansCommon.vectorSpace": "Espaço Vetorial", + "plansCommon.vectorSpace": "{{size}} espaço vetorial", "plansCommon.vectorSpaceTooltip": "O Espaço Vetorial é o sistema de memória de longo prazo necessário para que LLMs compreendam seus dados.", "plansCommon.workflowExecution.faster": "Execução de Fluxo de Trabalho Mais Rápida", "plansCommon.workflowExecution.priority": "Execução de Fluxo de Trabalho Prioritário", diff --git a/web/i18n/pt-BR/common.json b/web/i18n/pt-BR/common.json index 7efc250349..6af3218f2a 100644 --- a/web/i18n/pt-BR/common.json +++ b/web/i18n/pt-BR/common.json @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Link de arquivo inválido", "fileUploader.uploadDisabled": "Envio de arquivo desativado", "fileUploader.uploadFromComputer": "Upload local", - "fileUploader.uploadFromComputerLimit": "Carregar arquivo não pode exceder {{size}}", + "fileUploader.uploadFromComputerLimit": "O upload de {{type}} não pode exceder {{size}}", "fileUploader.uploadFromComputerReadError": "Falha na leitura do arquivo, tente novamente.", "fileUploader.uploadFromComputerUploadError": "Falha no upload do arquivo, faça o upload novamente.", "imageInput.browse": "navegar", diff --git a/web/i18n/pt-BR/dataset-creation.json b/web/i18n/pt-BR/dataset-creation.json index 9ecd18f464..90469db226 100644 --- a/web/i18n/pt-BR/dataset-creation.json +++ b/web/i18n/pt-BR/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "Confirmar e visualizar", "stepTwo.previewButton": "Alternar para visualização no formato de Perguntas e Respostas", "stepTwo.previewChunk": "Visualizar parte", - "stepTwo.previewChunkCount": "{{contagem}} Partes estimadas", + "stepTwo.previewChunkCount": "{{count}} Partes estimadas", "stepTwo.previewChunkTip": "Clique no botão 'Preview Chunk' à esquerda para carregar a visualização", "stepTwo.previewSwitchTipEnd": " consumir tokens adicionais", "stepTwo.previewSwitchTipStart": "A visualização atual do fragmento está no formato de texto, alternar para uma visualização no formato de Perguntas e Respostas irá", diff --git a/web/i18n/pt-BR/dataset-hit-testing.json b/web/i18n/pt-BR/dataset-hit-testing.json index 1b1db255f8..1906b6cf85 100644 --- a/web/i18n/pt-BR/dataset-hit-testing.json +++ b/web/i18n/pt-BR/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "MM/DD/YYYY hh:mm A", "desc": "Teste o efeito de recuperação do conhecimento com base no texto de consulta fornecido.", "hit.emptyTip": "Os resultados do teste de recuperação serão exibidos aqui", - "hit.title": "PARÁGRAFOS DE RECUPERAÇÃO", + "hit.title": "{{num}} parágrafos de recuperação", "hitChunks": "Hit {{num}} pedaços filhos", "imageUploader.dropZoneTip": "Arraste o arquivo aqui para enviar", "imageUploader.singleChunkAttachmentLimitTooltip": "O número de anexos de um único bloco não pode exceder {{limit}}", diff --git a/web/i18n/pt-BR/dataset-settings.json b/web/i18n/pt-BR/dataset-settings.json index 78438a79e8..13b5f9182e 100644 --- a/web/i18n/pt-BR/dataset-settings.json +++ b/web/i18n/pt-BR/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Método de indexação", "form.indexMethodChangeToEconomyDisabledTip": "Não disponível para rebaixamento de HQ para ECO", "form.indexMethodEconomy": "Econômico", - "form.indexMethodEconomyTip": "Use motores de vetor offline, índices de palavras-chave, etc. para reduzir a precisão sem gastar tokens.", + "form.indexMethodEconomyTip": "Use {{count}} palavras-chave por chunk para recuperação, sem consumir tokens à custa de menor precisão.", "form.indexMethodHighQuality": "Alta qualidade", "form.indexMethodHighQualityTip": "Invocar o modelo de Embedding para processamento para fornecer maior precisão nas consultas dos usuários.", "form.me": "(Você)", diff --git a/web/i18n/pt-BR/plugin.json b/web/i18n/pt-BR/plugin.json index 083fb61c66..c9297b5840 100644 --- a/web/i18n/pt-BR/plugin.json +++ b/web/i18n/pt-BR/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Depuração", "debugInfo.viewDocs": "Ver documentos", "deprecated": "Obsoleto", - "detailPanel.actionNum": "{{num}} {{ação}} INCLUSO", + "detailPanel.actionNum": "{{num}} {{action}} INCLUSO", "detailPanel.categoryTip.debugging": "Plugin de depuração", "detailPanel.categoryTip.github": "Instalado a partir do Github", "detailPanel.categoryTip.local": "Plug-in local", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Atualização", "detailPanel.operation.viewDetail": "Ver detalhes", "detailPanel.serviceOk": "Serviço OK", - "detailPanel.strategyNum": "{{num}} {{estratégia}} INCLUSO", + "detailPanel.strategyNum": "{{num}} {{strategy}} INCLUSO", "detailPanel.switchVersion": "Versão do Switch", "detailPanel.toolSelector.auto": "Auto", "detailPanel.toolSelector.descriptionLabel": "Descrição da ferramenta", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "Falha na instalação dos plug-ins {{errorLength}}", - "task.installing": "Instalando plugins {{installingLength}}, 0 feito.", + "task.installing": "Instalando plugins.", "task.installingWithError": "Instalando plug-ins {{installingLength}}, {{successLength}} sucesso, {{errorLength}} falhou", "task.installingWithSuccess": "Instalando plugins {{installingLength}}, {{successLength}} sucesso.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/pt-BR/tools.json b/web/i18n/pt-BR/tools.json index 85f9f5ad97..c1b973866c 100644 --- a/web/i18n/pt-BR/tools.json +++ b/web/i18n/pt-BR/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Ver a Especificação OpenAPI-Swagger", "customToolTip": "Saiba mais sobre as ferramentas personalizadas da Dify", "howToGet": "Como obter", - "includeToolNum": "{{num}} ferramentas incluídas", + "includeToolNum": "{{num}} {{action}} incluídas", "mcp.authorize": "Autorizar", "mcp.authorizeTip": "Após a autorização, as ferramentas serão exibidas aqui.", "mcp.authorizing": "Autorizando...", diff --git a/web/i18n/pt-BR/workflow.json b/web/i18n/pt-BR/workflow.json index ca23ec7ea2..a914ad5031 100644 --- a/web/i18n/pt-BR/workflow.json +++ b/web/i18n/pt-BR/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "A versão do plug-in instalada não fornece essa estratégia. Clique para mudar de versão.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} não está instalado", "nodes.agent.strategyNotSet": "Estratégia agêntica não definida", - "nodes.agent.toolNotAuthorizedTooltip": "{{ferramenta}} Não autorizado", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} Não autorizado", "nodes.agent.toolNotInstallTooltip": "{{tool}} não está instalado", "nodes.agent.toolbox": "caixa de ferramentas", "nodes.agent.tools": "Ferramentas", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "Excluir o nó de iteração excluirá todos os nós filhos", "nodes.iteration.deleteTitle": "Excluir nó de iteração?", "nodes.iteration.errorResponseMethod": "Método de resposta de erro", - "nodes.iteration.error_one": "{{contagem}} Erro", - "nodes.iteration.error_other": "{{contagem}} Erros", + "nodes.iteration.error_one": "{{count}} Erro", + "nodes.iteration.error_other": "{{count}} Erros", "nodes.iteration.flattenOutput": "Achatar Saída", "nodes.iteration.flattenOutputDesc": "Quando ativado, se todas as saídas de iteração forem arrays, elas serão achatadas em um único array. Quando desativado, as saídas manterão uma estrutura de array aninhada.", "nodes.iteration.input": "Entrada", diff --git a/web/i18n/ro-RO/app.json b/web/i18n/ro-RO/app.json index 4206b08a0a..2e4eb2e72d 100644 --- a/web/i18n/ro-RO/app.json +++ b/web/i18n/ro-RO/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Nu au fost găsite baze de cunoștințe", "gotoAnything.emptyState.noPluginsFound": "Nu au fost găsite plugin-uri", "gotoAnything.emptyState.noWorkflowNodesFound": "Nu au fost găsite noduri de flux de lucru", - "gotoAnything.emptyState.tryDifferentTerm": "Încercați un termen de căutare diferit sau eliminați filtrul {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Încercați un termen de căutare diferit", "gotoAnything.emptyState.trySpecificSearch": "Încercați {{shortcuts}} pentru căutări specifice", "gotoAnything.groups.apps": "Aplicații", "gotoAnything.groups.commands": "Comenzi", diff --git a/web/i18n/ro-RO/billing.json b/web/i18n/ro-RO/billing.json index 40bb5c70db..4dad95ab1b 100644 --- a/web/i18n/ro-RO/billing.json +++ b/web/i18n/ro-RO/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Limite de cotă de anotare", "plansCommon.annotatedResponse.tooltip": "Editarea și anotarea manuală a răspunsurilor oferă capacități de întrebări și răspunsuri personalizabile și de înaltă calitate pentru aplicații. (Aplicabil numai în aplicațiile de chat)", "plansCommon.annotationQuota": "Cota de adnotare", - "plansCommon.annualBilling": "Facturare anuala", + "plansCommon.annualBilling": "Facturare anuală, economisește {{percent}}%", "plansCommon.apiRateLimit": "Limită de rată API", "plansCommon.apiRateLimitTooltip": "Limita de rată API se aplică tuturor cererilor efectuate prin API-ul Dify, inclusiv generarea de texte, conversațiile de chat, execuțiile fluxului de lucru și procesarea documentelor.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Înscrie-te și obține un", "plansCommon.freeTrialTipSuffix": "Nu este necesară o carte de credit", "plansCommon.getStarted": "Întrebați-vă", - "plansCommon.logsHistory": "Istoricul jurnalelor", + "plansCommon.logsHistory": "{{days}} istoricul jurnalelor", "plansCommon.member": "Membru", "plansCommon.memberAfter": "Membru", "plansCommon.messageRequest.title": "Credite de mesaje", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Indisponibil", "plansCommon.unlimited": "Nelimitat", "plansCommon.unlimitedApiRate": "Fără limită de rată API", - "plansCommon.vectorSpace": "Spațiu vectorial", + "plansCommon.vectorSpace": "{{size}} spațiu vectorial", "plansCommon.vectorSpaceTooltip": "Spațiul vectorial este sistemul de memorie pe termen lung necesar pentru ca LLM-urile să înțeleagă datele dvs.", "plansCommon.workflowExecution.faster": "Executarea mai rapidă a fluxului de lucru", "plansCommon.workflowExecution.priority": "Executarea fluxului de lucru prioritar", diff --git a/web/i18n/ro-RO/common.json b/web/i18n/ro-RO/common.json index bafe3542dc..baab269f59 100644 --- a/web/i18n/ro-RO/common.json +++ b/web/i18n/ro-RO/common.json @@ -159,7 +159,7 @@ "environment.development": "DEZVOLTARE", "environment.testing": "TESTARE", "error": "Eroare", - "errorMsg.fieldRequired": "{{câmp}} este obligatoriu", + "errorMsg.fieldRequired": "{{field}} este obligatoriu", "errorMsg.urlError": "URL-ul ar trebui să înceapă cu http:// sau https://", "feedback.content": "Conținut de feedback", "feedback.placeholder": "Vă rugăm să descrieți ce a mers prost sau cum putem îmbunătăți...", @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Link fișier nevalid", "fileUploader.uploadDisabled": "Încărcarea fișierelor este dezactivată", "fileUploader.uploadFromComputer": "Încărcare locală", - "fileUploader.uploadFromComputerLimit": "Încărcarea fișierului nu poate depăși {{size}}", + "fileUploader.uploadFromComputerLimit": "Încărcarea {{type}} nu poate depăși {{size}}", "fileUploader.uploadFromComputerReadError": "Citirea fișierului a eșuat, vă rugăm să încercați din nou.", "fileUploader.uploadFromComputerUploadError": "Încărcarea fișierului a eșuat, vă rugăm să încărcați din nou.", "imageInput.browse": "naviga", @@ -305,7 +305,7 @@ "modelProvider.addModel": "Adăugați model", "modelProvider.addMoreModelProvider": "ADĂUGAȚI MAI MULȚI FURNIZORI DE MODELE", "modelProvider.apiKey": "CHEIE API", - "modelProvider.apiKeyRateLimit": "Limita de viteză a fost atinsă, disponibilă după {{secunde}}s", + "modelProvider.apiKeyRateLimit": "Limita de viteză a fost atinsă, disponibilă după {{seconds}}s", "modelProvider.apiKeyStatusNormal": "Starea APIKey este normală", "modelProvider.auth.addApiKey": "Adăugați cheia API", "modelProvider.auth.addCredential": "Adăugați acreditive", diff --git a/web/i18n/ro-RO/dataset-creation.json b/web/i18n/ro-RO/dataset-creation.json index 7fc3fcca6e..62ccedceea 100644 --- a/web/i18n/ro-RO/dataset-creation.json +++ b/web/i18n/ro-RO/dataset-creation.json @@ -68,7 +68,7 @@ "stepOne.website.resetAll": "Resetați toate", "stepOne.website.run": "Alerga", "stepOne.website.running": "Rulează", - "stepOne.website.scrapTimeInfo": "Pagini răzuite {{total}} în total în {{timp}}s", + "stepOne.website.scrapTimeInfo": "Pagini răzuite {{total}} în total în {{time}}s", "stepOne.website.selectAll": "Selectează tot", "stepOne.website.totalPageScraped": "Total pagini răzuite:", "stepOne.website.unknownError": "Eroare necunoscută", @@ -140,7 +140,7 @@ "stepTwo.preview": "Confirmă și previzualizează", "stepTwo.previewButton": "Comutare la format întrebare și răspuns", "stepTwo.previewChunk": "Previzualizare bucată", - "stepTwo.previewChunkCount": "{{număr}} Bucăți estimate", + "stepTwo.previewChunkCount": "{{count}} Bucăți estimate", "stepTwo.previewChunkTip": "Faceți clic pe butonul \"Previzualizare bucată\" din stânga pentru a încărca previzualizarea", "stepTwo.previewSwitchTipEnd": " consuma jetoane suplimentare", "stepTwo.previewSwitchTipStart": "Previzualizarea curentă a segmentului este în format text, comutarea la o previzualizare în format întrebare și răspuns va", diff --git a/web/i18n/ro-RO/dataset-hit-testing.json b/web/i18n/ro-RO/dataset-hit-testing.json index 80a101b729..e1b24e53b9 100644 --- a/web/i18n/ro-RO/dataset-hit-testing.json +++ b/web/i18n/ro-RO/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "DD/MM/YYYY hh:mm A", "desc": "Testați efectul de atingere al Cunoștințelor pe baza textului interogat dat.", "hit.emptyTip": "Rezultatele testării de recuperare vor apărea aici", - "hit.title": "PARAGRAFE DE RECUPERARE", + "hit.title": "{{num}} paragrafe de recuperare", "hitChunks": "Accesează {{num}} bucăți copil", "imageUploader.dropZoneTip": "Trage fișierul aici pentru a încărca", "imageUploader.singleChunkAttachmentLimitTooltip": "Numărul de atașamente într-un singur pachet nu poate depăși {{limit}}", diff --git a/web/i18n/ro-RO/dataset-settings.json b/web/i18n/ro-RO/dataset-settings.json index efe8cf4d89..a433b22f27 100644 --- a/web/i18n/ro-RO/dataset-settings.json +++ b/web/i18n/ro-RO/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Metodă de indexare", "form.indexMethodChangeToEconomyDisabledTip": "Nu este disponibil pentru retrogradarea de la HQ la ECO", "form.indexMethodEconomy": "Economică", - "form.indexMethodEconomyTip": "Utilizați motoare de vectori offline, indexuri de cuvinte cheie etc. pentru a reduce acuratețea fără a cheltui jetoane", + "form.indexMethodEconomyTip": "Utilizați {{count}} cuvinte cheie per fragment pentru recuperare, fără consum de tokenuri, cu prețul unei acurateți mai scăzute.", "form.indexMethodHighQuality": "Calitate ridicată", "form.indexMethodHighQualityTip": "Invocă modelul Embedding pentru procesare pentru a oferi o acuratețe mai mare la interogările utilizatorilor.", "form.me": "(Tu)", diff --git a/web/i18n/ro-RO/plugin.json b/web/i18n/ro-RO/plugin.json index 986a5ff921..c0295b64d6 100644 --- a/web/i18n/ro-RO/plugin.json +++ b/web/i18n/ro-RO/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Depanare", "debugInfo.viewDocs": "Vizualizați documentele", "deprecated": "Încetat de a mai fi utilizat", - "detailPanel.actionNum": "{{num}} {{acțiune}} INCLUS", + "detailPanel.actionNum": "{{num}} {{action}} INCLUS", "detailPanel.categoryTip.debugging": "Plugin de depanare", "detailPanel.categoryTip.github": "Instalat de pe Github", "detailPanel.categoryTip.local": "Plugin local", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Actualiza", "detailPanel.operation.viewDetail": "Vezi detalii", "detailPanel.serviceOk": "Serviciu OK", - "detailPanel.strategyNum": "{{num}} {{strategie}} INCLUS", + "detailPanel.strategyNum": "{{num}} {{strategy}} INCLUS", "detailPanel.switchVersion": "Versiune de comutare", "detailPanel.toolSelector.auto": "Auto", "detailPanel.toolSelector.descriptionLabel": "Descrierea instrumentului", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} plugin-urile nu s-au instalat", - "task.installing": "Instalarea pluginurilor {{installingLength}}, 0 terminat.", + "task.installing": "Se instalează pluginuri.", "task.installingWithError": "Instalarea pluginurilor {{installingLength}}, {{successLength}} succes, {{errorLength}} eșuat", "task.installingWithSuccess": "Instalarea pluginurilor {{installingLength}}, {{successLength}} succes.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/ro-RO/tools.json b/web/i18n/ro-RO/tools.json index b7ac2bebf1..277ce79563 100644 --- a/web/i18n/ro-RO/tools.json +++ b/web/i18n/ro-RO/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Vezi specificația OpenAPI-Swagger", "customToolTip": "Aflați mai multe despre instrumentele personalizate Dify", "howToGet": "Cum să obții", - "includeToolNum": "{{num}} instrumente incluse", + "includeToolNum": "{{num}} {{action}} incluse", "mcp.authorize": "Autorizare", "mcp.authorizeTip": "După autorizare, uneltele vor fi afișate aici.", "mcp.authorizing": "Se autorizează...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "Aflați mai multe despre integrarea serverului MCP", "mcp.create.cardTitle": "Adăugare Server MCP (HTTP)", "mcp.delete": "Eliminare Server MCP", - "mcp.deleteConfirmTitle": "Ștergeți {mcp}?", + "mcp.deleteConfirmTitle": "Ștergeți {{mcp}}?", "mcp.getTools": "Obține unelte", "mcp.gettingTools": "Se obțin unelte...", "mcp.identifier": "Identificator Server (Clic pentru Copiere)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "Parametri", "mcp.toolUpdateConfirmContent": "Actualizarea listei de unelte poate afecta aplicațiile existente. Continuați?", "mcp.toolUpdateConfirmTitle": "Actualizare Listă Unelte", - "mcp.toolsCount": "{count} unelte", + "mcp.toolsCount": "{{count}} unelte", "mcp.toolsEmpty": "Unelte neîncărcate", - "mcp.toolsNum": "{count} unelte incluse", + "mcp.toolsNum": "{{count}} unelte incluse", "mcp.update": "Actualizare", "mcp.updateTime": "Actualizat", "mcp.updateTools": "Se actualizează unelte...", diff --git a/web/i18n/ro-RO/workflow.json b/web/i18n/ro-RO/workflow.json index 68c84eb9d9..55d56f54fc 100644 --- a/web/i18n/ro-RO/workflow.json +++ b/web/i18n/ro-RO/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "Versiunea de plugin instalată nu oferă această strategie. Faceți clic pentru a comuta versiunea.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} nu este instalat", "nodes.agent.strategyNotSet": "Strategia agentică nu este setată", - "nodes.agent.toolNotAuthorizedTooltip": "{{instrument}} Neautorizat", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} Neautorizat", "nodes.agent.toolNotInstallTooltip": "{{tool}} nu este instalat", "nodes.agent.toolbox": "cutie de scule", "nodes.agent.tools": "Instrumente", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "Ștergerea nodului de iterație va șterge toate nodurile copil", "nodes.iteration.deleteTitle": "Ștergeți nodul de iterație?", "nodes.iteration.errorResponseMethod": "Metoda de răspuns la eroare", - "nodes.iteration.error_one": "{{număr}} Eroare", - "nodes.iteration.error_other": "{{număr}} Erori", + "nodes.iteration.error_one": "{{count}} Eroare", + "nodes.iteration.error_other": "{{count}} Erori", "nodes.iteration.flattenOutput": "Aplatizează ieșirea", "nodes.iteration.flattenOutputDesc": "Când este activat, dacă toate ieșirile iterației sunt array-uri, acestea vor fi aplatizate într-un singur array. Când este dezactivat, ieșirile vor menține o structură de array-nested.", "nodes.iteration.input": "Intrare", diff --git a/web/i18n/ru-RU/app-overview.json b/web/i18n/ru-RU/app-overview.json index 513871f12e..20f6a2b768 100644 --- a/web/i18n/ru-RU/app-overview.json +++ b/web/i18n/ru-RU/app-overview.json @@ -113,7 +113,7 @@ "overview.triggerInfo.noTriggerAdded": "Триггер не добавлен", "overview.triggerInfo.title": "Триггеры", "overview.triggerInfo.triggerStatusDescription": "Статус узла триггера отображается здесь. (Может уже существовать в черновике, вступает в силу после публикации)", - "overview.triggerInfo.triggersAdded": "Добавлены триггеры", + "overview.triggerInfo.triggersAdded": "{{count}} триггеров добавлено", "welcome.enterKeyTip": "введите свой ключ API OpenAI ниже", "welcome.firstStepTip": "Чтобы начать,", "welcome.getKeyTip": "Получите свой ключ API на панели инструментов OpenAI", diff --git a/web/i18n/ru-RU/app.json b/web/i18n/ru-RU/app.json index 6388cd4e08..fbacd43c0e 100644 --- a/web/i18n/ru-RU/app.json +++ b/web/i18n/ru-RU/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Базы знаний не найдены", "gotoAnything.emptyState.noPluginsFound": "Плагины не найдены", "gotoAnything.emptyState.noWorkflowNodesFound": "Узлы расчетной схемы не найдены", - "gotoAnything.emptyState.tryDifferentTerm": "Попробуйте другой поисковый термин или удалите фильтр {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Попробуйте другой поисковый термин", "gotoAnything.emptyState.trySpecificSearch": "Попробуйте {{shortcuts}} для конкретного поиска", "gotoAnything.groups.apps": "Приложения", "gotoAnything.groups.commands": "Команды", diff --git a/web/i18n/ru-RU/billing.json b/web/i18n/ru-RU/billing.json index 12ebdb562a..e3d9f86128 100644 --- a/web/i18n/ru-RU/billing.json +++ b/web/i18n/ru-RU/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Ограничения квоты аннотаций", "plansCommon.annotatedResponse.tooltip": "Ручное редактирование и аннотирование ответов обеспечивает настраиваемые высококачественные возможности ответов на вопросы для приложений. (Применимо только в чат-приложениях)", "plansCommon.annotationQuota": "Квота аннотаций", - "plansCommon.annualBilling": "Ежегодная оплата", + "plansCommon.annualBilling": "Ежегодная оплата, экономия {{percent}}%", "plansCommon.apiRateLimit": "Ограничение скорости API", "plansCommon.apiRateLimitTooltip": "Ограничение скорости API применяется ко всем запросам, сделанным через API Dify, включая генерацию текста, чатовую переписку, выполнение рабочих процессов и обработку документов.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Зарегистрируйтесь и получите", "plansCommon.freeTrialTipSuffix": "Кредитная карта не требуется", "plansCommon.getStarted": "Начать", - "plansCommon.logsHistory": "История журналов", + "plansCommon.logsHistory": "{{days}} история журналов", "plansCommon.member": "Участник", "plansCommon.memberAfter": "Участник", "plansCommon.messageRequest.title": "Кредиты на сообщения", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Недоступно", "plansCommon.unlimited": "Неограниченно", "plansCommon.unlimitedApiRate": "Нет ограничений на количество запросов к API", - "plansCommon.vectorSpace": "Векторное пространство", + "plansCommon.vectorSpace": "{{size}} векторное пространство", "plansCommon.vectorSpaceTooltip": "Векторное пространство - это система долговременной памяти, необходимая LLM для понимания ваших данных.", "plansCommon.workflowExecution.faster": "Более быстрое выполнение рабочих процессов", "plansCommon.workflowExecution.priority": "Выполнение рабочего процесса по приоритету", diff --git a/web/i18n/ru-RU/common.json b/web/i18n/ru-RU/common.json index 0210db777f..45cbdf67a5 100644 --- a/web/i18n/ru-RU/common.json +++ b/web/i18n/ru-RU/common.json @@ -108,7 +108,7 @@ "chat.conversationName": "Название разговора", "chat.conversationNameCanNotEmpty": "Название разговора обязательно", "chat.conversationNamePlaceholder": "Пожалуйста, введите название разговора", - "chat.inputPlaceholder": "Поговорить с ботом", + "chat.inputPlaceholder": "Поговорить с {{botName}}", "chat.renameConversation": "Переименовать разговор", "chat.resend": "Переслать", "chat.thinking": "Мыслящий...", @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Неверная ссылка на файл", "fileUploader.uploadDisabled": "Загрузка файлов отключена", "fileUploader.uploadFromComputer": "Локальная загрузка", - "fileUploader.uploadFromComputerLimit": "Файл загрузки не может превышать {{size}}", + "fileUploader.uploadFromComputerLimit": "Загрузка {{type}} не может превышать {{size}}", "fileUploader.uploadFromComputerReadError": "Чтение файла не удалось, пожалуйста, повторите попытку.", "fileUploader.uploadFromComputerUploadError": "Загрузка файла не удалась, пожалуйста, загрузите еще раз.", "imageInput.browse": "просмотр", diff --git a/web/i18n/ru-RU/dataset-creation.json b/web/i18n/ru-RU/dataset-creation.json index b981139de4..d5e72438e6 100644 --- a/web/i18n/ru-RU/dataset-creation.json +++ b/web/i18n/ru-RU/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "Подтвердить и просмотреть", "stepTwo.previewButton": "Переключение в формат вопрос-ответ", "stepTwo.previewChunk": "Предварительный просмотр фрагмента", - "stepTwo.previewChunkCount": "{{Количество}} Предполагаемые куски", + "stepTwo.previewChunkCount": "{{count}} Предполагаемые куски", "stepTwo.previewChunkTip": "Нажмите кнопку «Предварительный просмотр фрагмента» слева, чтобы загрузить предварительный просмотр", "stepTwo.previewSwitchTipEnd": " потребляет дополнительные токены", "stepTwo.previewSwitchTipStart": "Текущий предварительный просмотр фрагмента находится в текстовом формате, переключение на предварительный просмотр в формате вопрос-ответ", diff --git a/web/i18n/ru-RU/dataset-hit-testing.json b/web/i18n/ru-RU/dataset-hit-testing.json index 90ff938439..c96b1cf6bb 100644 --- a/web/i18n/ru-RU/dataset-hit-testing.json +++ b/web/i18n/ru-RU/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "DD.MM.YYYY HH:mm", "desc": "Проверьте эффективность поиска в базе знаний на основе заданного текста запроса.", "hit.emptyTip": "Результаты тестирования поиска будут отображаться здесь", - "hit.title": "НАЙДЕННЫЕ АБЗАЦЫ", + "hit.title": "{{num}} найденные абзацы", "hitChunks": "Попадание {{num}} дочерних чанков", "imageUploader.dropZoneTip": "Перетащите файл сюда для загрузки", "imageUploader.singleChunkAttachmentLimitTooltip": "Количество одноэлементных вложений не может превышать {{limit}}", diff --git a/web/i18n/ru-RU/dataset-settings.json b/web/i18n/ru-RU/dataset-settings.json index ad32fdc596..90dbf9a271 100644 --- a/web/i18n/ru-RU/dataset-settings.json +++ b/web/i18n/ru-RU/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Метод индексации", "form.indexMethodChangeToEconomyDisabledTip": "Недоступно для понижения уровня с HQ до ECO", "form.indexMethodEconomy": "Экономичный", - "form.indexMethodEconomyTip": "Используйте автономные векторные движки, индексы ключевых слов и т. д., чтобы снизить точность, не тратя токены", + "form.indexMethodEconomyTip": "Используйте {{count}} ключевых слов на чанк для поиска, без расхода токенов ценой меньшей точности.", "form.indexMethodHighQuality": "Высокое качество", "form.indexMethodHighQualityTip": "Вызов модели встраивания для обработки, чтобы обеспечить более высокую точность при запросах пользователей.", "form.me": "(Вы)", diff --git a/web/i18n/ru-RU/dataset.json b/web/i18n/ru-RU/dataset.json index f13390aa2a..314b3046d9 100644 --- a/web/i18n/ru-RU/dataset.json +++ b/web/i18n/ru-RU/dataset.json @@ -147,7 +147,7 @@ "parentMode.paragraph": "Параграф", "partialEnabled_one": "Всего {{count}} документов, доступно {{num}}", "partialEnabled_other": "Всего {{count}} документов, доступно {{num}}", - "preprocessDocument": "{{число}} Предварительная обработка документов", + "preprocessDocument": "{{num}} Предварительная обработка документов", "rerankSettings": "Настройки переранжирования", "retrieval.change": "Изменить", "retrieval.changeRetrievalMethod": "Изменить метод поиска", diff --git a/web/i18n/ru-RU/plugin.json b/web/i18n/ru-RU/plugin.json index c464259603..3b10a3a995 100644 --- a/web/i18n/ru-RU/plugin.json +++ b/web/i18n/ru-RU/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Отладка", "debugInfo.viewDocs": "Просмотр документации", "deprecated": "Устаревший", - "detailPanel.actionNum": "{{число}} {{действие}} ВКЛЮЧЕННЫЙ", + "detailPanel.actionNum": "{{num}} {{action}} ВКЛЮЧЕННЫЙ", "detailPanel.categoryTip.debugging": "Плагин для отладки", "detailPanel.categoryTip.github": "Установлено с Github", "detailPanel.categoryTip.local": "Локальный плагин", @@ -106,7 +106,7 @@ "detailPanel.endpointsDocLink": "Посмотреть документ", "detailPanel.endpointsEmpty": "Нажмите кнопку «+», чтобы добавить конечную точку", "detailPanel.endpointsTip": "Этот плагин предоставляет определенные функциональные возможности через конечные точки, и вы можете настроить несколько наборов конечных точек для текущей рабочей области.", - "detailPanel.modelNum": "{{число}} МОДЕЛИ В КОМПЛЕКТЕ", + "detailPanel.modelNum": "{{num}} МОДЕЛИ В КОМПЛЕКТЕ", "detailPanel.operation.back": "Назад", "detailPanel.operation.checkUpdate": "Проверить обновление", "detailPanel.operation.detail": "Подробности", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Обновлять", "detailPanel.operation.viewDetail": "Подробнее", "detailPanel.serviceOk": "Услуга ОК", - "detailPanel.strategyNum": "{{число}} {{Стратегия}} ВКЛЮЧЕННЫЙ", + "detailPanel.strategyNum": "{{num}} {{strategy}} ВКЛЮЧЕННЫЙ", "detailPanel.switchVersion": "Версия для переключателя", "detailPanel.toolSelector.auto": "Автоматически", "detailPanel.toolSelector.descriptionLabel": "Описание инструмента", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "плагины {{errorLength}} не удалось установить", - "task.installing": "Установка плагинов {{installingLength}}, 0 готово.", + "task.installing": "Установка плагинов.", "task.installingWithError": "Установка плагинов {{installingLength}}, {{successLength}} успех, {{errorLength}} неудачный", "task.installingWithSuccess": "Установка плагинов {{installingLength}}, {{successLength}} успех.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/ru-RU/tools.json b/web/i18n/ru-RU/tools.json index fc83994196..86e29ba067 100644 --- a/web/i18n/ru-RU/tools.json +++ b/web/i18n/ru-RU/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Посмотреть спецификацию OpenAPI-Swagger", "customToolTip": "Узнать больше о пользовательских инструментах Dify", "howToGet": "Как получить", - "includeToolNum": "Включено {{num}} инструментов", + "includeToolNum": "Включено {{num}} {{action}}", "mcp.authorize": "Авторизовать", "mcp.authorizeTip": "После авторизации инструменты будут отображены здесь.", "mcp.authorizing": "Авторизация...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "Узнайте больше об интеграции MCP сервера", "mcp.create.cardTitle": "Добавить MCP сервер (HTTP)", "mcp.delete": "Удалить MCP сервер", - "mcp.deleteConfirmTitle": "Вы действительно хотите удалить {mcp}?", + "mcp.deleteConfirmTitle": "Вы действительно хотите удалить {{mcp}}?", "mcp.getTools": "Получить инструменты", "mcp.gettingTools": "Получение инструментов...", "mcp.identifier": "Идентификатор сервера (Нажмите, чтобы скопировать)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "Параметры", "mcp.toolUpdateConfirmContent": "Обновление списка инструментов может повлиять на существующие приложения. Вы хотите продолжить?", "mcp.toolUpdateConfirmTitle": "Обновить список инструментов", - "mcp.toolsCount": "{count} инструментов", + "mcp.toolsCount": "{{count}} инструментов", "mcp.toolsEmpty": "Инструменты не загружены", - "mcp.toolsNum": "{count} инструментов включено", + "mcp.toolsNum": "{{count}} инструментов включено", "mcp.update": "Обновить", "mcp.updateTime": "Обновлено", "mcp.updateTools": "Обновление инструментов...", diff --git a/web/i18n/ru-RU/workflow.json b/web/i18n/ru-RU/workflow.json index b2dd945f8d..3856032cad 100644 --- a/web/i18n/ru-RU/workflow.json +++ b/web/i18n/ru-RU/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "Установленная версия плагина не предусматривает такой стратегии. Нажмите, чтобы переключить версию.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} не установлен", "nodes.agent.strategyNotSet": "Агентская стратегия не задана", - "nodes.agent.toolNotAuthorizedTooltip": "{{инструмент}} Не авторизован", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} Не авторизован", "nodes.agent.toolNotInstallTooltip": "{{tool}} не установлен", "nodes.agent.toolbox": "ящик для инструментов", "nodes.agent.tools": "Инструменты", @@ -435,14 +435,14 @@ "nodes.common.pluginNotInstalled": "Плагин не установлен", "nodes.common.retry.maxRetries": "максимальное количество повторных попыток", "nodes.common.retry.ms": "госпожа", - "nodes.common.retry.retries": "{{число}} Повторных попыток", + "nodes.common.retry.retries": "{{num}} Повторных попыток", "nodes.common.retry.retry": "Снова пробовать", "nodes.common.retry.retryFailed": "Повторная попытка не удалась", "nodes.common.retry.retryFailedTimes": "Повторные попытки {{times}} не увенчались успехом", "nodes.common.retry.retryInterval": "Интервал повторных попыток", "nodes.common.retry.retryOnFailure": "Повторная попытка при неудаче", "nodes.common.retry.retrySuccessful": "Повторить попытку успешно", - "nodes.common.retry.retryTimes": "Повторите {{раз}} раз при неудаче", + "nodes.common.retry.retryTimes": "Повторите {{times}} раз при неудаче", "nodes.common.retry.retrying": "Повтор...", "nodes.common.retry.times": "раз", "nodes.common.typeSwitch.input": "Входное значение", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "Удаление узла итерации приведет к удалению всех дочерних узлов", "nodes.iteration.deleteTitle": "Удалить узел итерации?", "nodes.iteration.errorResponseMethod": "Метод реагирования на ошибку", - "nodes.iteration.error_one": "{{Количество}} Ошибка", - "nodes.iteration.error_other": "{{Количество}} Ошибки", + "nodes.iteration.error_one": "{{count}} Ошибка", + "nodes.iteration.error_other": "{{count}} Ошибки", "nodes.iteration.flattenOutput": "Сгладить вывод", "nodes.iteration.flattenOutputDesc": "Когда функция включена, если все результаты итераций являются массивами, они будут объединены в один массив. Когда функция выключена, результаты сохранят вложенную структуру массивов.", "nodes.iteration.input": "Вход", diff --git a/web/i18n/sl-SI/app.json b/web/i18n/sl-SI/app.json index b43765a1db..eb56c39a2f 100644 --- a/web/i18n/sl-SI/app.json +++ b/web/i18n/sl-SI/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Zbirk znanja ni mogoče najti", "gotoAnything.emptyState.noPluginsFound": "Vtičnikov ni mogoče najti", "gotoAnything.emptyState.noWorkflowNodesFound": "Vozlišča poteka dela niso bila najdena", - "gotoAnything.emptyState.tryDifferentTerm": "Poskusite z drugim iskalnim izrazom ali odstranite filter {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Poskusite z drugim iskalnim izrazom", "gotoAnything.emptyState.trySpecificSearch": "Poskusite {{shortcuts}} za specifična iskanja", "gotoAnything.groups.apps": "Aplikacije", "gotoAnything.groups.commands": "Ukazi", diff --git a/web/i18n/sl-SI/billing.json b/web/i18n/sl-SI/billing.json index 74c07cacc0..59ef242e4c 100644 --- a/web/i18n/sl-SI/billing.json +++ b/web/i18n/sl-SI/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Omejitve kvote za označevanje", "plansCommon.annotatedResponse.tooltip": "Ročno urejanje in označevanje odgovorov omogoča prilagojeno visoko kakovostno odgovarjanje na vprašanja v aplikacijah. (Velja samo za klepetalne aplikacije)", "plansCommon.annotationQuota": "Kvote za označevanje", - "plansCommon.annualBilling": "Letno račунovodstvo", + "plansCommon.annualBilling": "Letno obračunavanje, prihranek {{percent}}%", "plansCommon.apiRateLimit": "Omejitev hitrosti API-ja", "plansCommon.apiRateLimitTooltip": "API omejitev hitrosti velja za vse poizvedbe, opravljene prek Dify API, vključno z generiranjem besedila, klepetnimi pogovori, izvajanjem delovnih tokov in obdelavo dokumentov.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Prijavite se in prejmite", "plansCommon.freeTrialTipSuffix": "Brez zahteve po kreditni kartici", "plansCommon.getStarted": "Začnite", - "plansCommon.logsHistory": "Zgodovina dnevnikov", + "plansCommon.logsHistory": "{{days}} zgodovina dnevnikov", "plansCommon.member": "Član", "plansCommon.memberAfter": "Član", "plansCommon.messageRequest.title": "Krediti za sporočila", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Ni na voljo", "plansCommon.unlimited": "Neomejeno", "plansCommon.unlimitedApiRate": "Brez omejitve hitrostnega limita API-ja", - "plansCommon.vectorSpace": "Prostor za vektorje", + "plansCommon.vectorSpace": "{{size}} prostor za vektorje", "plansCommon.vectorSpaceTooltip": "Prostor za vektorje je dolgoročni pomnilniški sistem, potreben za to, da LLM-ji razumejo vaše podatke.", "plansCommon.workflowExecution.faster": "Hitrejše izvajanje delovnega procesa", "plansCommon.workflowExecution.priority": "Izvajanje prednostnega poteka dela", diff --git a/web/i18n/sl-SI/common.json b/web/i18n/sl-SI/common.json index c33686ac03..fe397415c5 100644 --- a/web/i18n/sl-SI/common.json +++ b/web/i18n/sl-SI/common.json @@ -108,7 +108,7 @@ "chat.conversationName": "Ime pogovora", "chat.conversationNameCanNotEmpty": "Zahtevano ime pogovora", "chat.conversationNamePlaceholder": "Prosimo, vnesite ime pogovora", - "chat.inputPlaceholder": "Pogovorite se z botom", + "chat.inputPlaceholder": "Pogovorite se z {{botName}}", "chat.renameConversation": "Preimenovanje pogovora", "chat.resend": "Ponovno pošlji", "chat.thinking": "Razmišljanje...", diff --git a/web/i18n/sl-SI/dataset-creation.json b/web/i18n/sl-SI/dataset-creation.json index cf6610b9fb..d2ab2cd6bb 100644 --- a/web/i18n/sl-SI/dataset-creation.json +++ b/web/i18n/sl-SI/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "Potrdi in predogled", "stepTwo.previewButton": "Preklop v obliko Vprašanje & Odgovor", "stepTwo.previewChunk": "Predogled kosa", - "stepTwo.previewChunkCount": "{{štetje}} Ocenjeni kosi", + "stepTwo.previewChunkCount": "{{count}} Ocenjeni kosi", "stepTwo.previewChunkTip": "Kliknite gumb »Predogled kosa« na levi, da naložite predogled", "stepTwo.previewSwitchTipEnd": " porabil dodatne žetone", "stepTwo.previewSwitchTipStart": "Trenutni predogled delcev je v obliki besedila, preklop na predogled v obliki vprašanj in odgovorov bo", diff --git a/web/i18n/sl-SI/dataset-hit-testing.json b/web/i18n/sl-SI/dataset-hit-testing.json index 9fb2102172..a60ddb9d24 100644 --- a/web/i18n/sl-SI/dataset-hit-testing.json +++ b/web/i18n/sl-SI/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "DD/MM/YYYY hh:mm A", "desc": "Preizkusite učinkovitost zadetkov znanja na podlagi podanega poizvedbenega besedila", "hit.emptyTip": "Rezultati testiranja pridobivanja bodo prikazani tukaj", - "hit.title": "PRIDOBLJENI ODSTAVKI", + "hit.title": "{{num}} pridobljeni odstavki", "hitChunks": "Zadenite {{num}} podrejene koščke", "imageUploader.dropZoneTip": "Povlecite datoteko sem za nalaganje", "imageUploader.singleChunkAttachmentLimitTooltip": "Število priponk enega kosa ne sme presegati {{limit}}", diff --git a/web/i18n/sl-SI/dataset-settings.json b/web/i18n/sl-SI/dataset-settings.json index 2e0f46377e..6857191ded 100644 --- a/web/i18n/sl-SI/dataset-settings.json +++ b/web/i18n/sl-SI/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Metoda indeksiranja", "form.indexMethodChangeToEconomyDisabledTip": "Ni na voljo za pregradnjo iz HQ v ECO", "form.indexMethodEconomy": "Varčna", - "form.indexMethodEconomyTip": "Uporabite offline vektorske motorje, indeksiranje ključnih besed itd., da zmanjšate natančnost brez porabe žetonov", + "form.indexMethodEconomyTip": "Uporabite {{count}} ključnih besed na kos za pridobivanje brez porabe žetonov na račun manjše natančnosti.", "form.indexMethodHighQuality": "Visoka kakovost", "form.indexMethodHighQualityTip": "Za obdelavo pokličite vdelani model za zagotovitev večje natančnosti pri poizvedbah uporabnikov.", "form.me": "(Vi)", diff --git a/web/i18n/sl-SI/plugin.json b/web/i18n/sl-SI/plugin.json index b26a81efdf..0f84e91c80 100644 --- a/web/i18n/sl-SI/plugin.json +++ b/web/i18n/sl-SI/plugin.json @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} vtičnikov ni uspelo namestiti", - "task.installing": "Namestitev {{installingLength}} vtičnikov, 0 končanih.", + "task.installing": "Nameščanje vtičnikov.", "task.installingWithError": "Namestitev {{installingLength}} vtičnikov, {{successLength}} uspešnih, {{errorLength}} neuspešnih", "task.installingWithSuccess": "Namestitev {{installingLength}} dodatkov, {{successLength}} uspešnih.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/sl-SI/tools.json b/web/i18n/sl-SI/tools.json index 24a9c274b3..aa785bfae3 100644 --- a/web/i18n/sl-SI/tools.json +++ b/web/i18n/sl-SI/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Oglejte si OpenAPI-Swagger specifikacijo", "customToolTip": "Izvedite več o prilagojenih orodjih Dify", "howToGet": "Kako pridobiti", - "includeToolNum": "Vključeno {{num}} orodij", + "includeToolNum": "{{num}} {{action}} vključenih", "mcp.authorize": "Avtoriziraj", "mcp.authorizeTip": "Po avtorizaciji bodo orodja prikazana tukaj.", "mcp.authorizing": "Avtoriziranje...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "Več o integraciji strežnika MCP", "mcp.create.cardTitle": "Dodaj strežnik MCP (HTTP)", "mcp.delete": "Odstrani strežnik MCP", - "mcp.deleteConfirmTitle": "Odstraniti {mcp}?", + "mcp.deleteConfirmTitle": "Odstraniti {{mcp}}?", "mcp.getTools": "Pridobi orodja", "mcp.gettingTools": "Pridobivanje orodij...", "mcp.identifier": "Identifikator strežnika (Kliknite za kopiranje)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "Parametri", "mcp.toolUpdateConfirmContent": "Posodobitev seznama orodij lahko vpliva na obstoječe aplikacije. Želite nadaljevati?", "mcp.toolUpdateConfirmTitle": "Posodobi seznam orodij", - "mcp.toolsCount": "{count} orodij", + "mcp.toolsCount": "{{count}} orodij", "mcp.toolsEmpty": "Orodja niso naložena", - "mcp.toolsNum": "Vključenih {count} orodij", + "mcp.toolsNum": "{{count}} vključenih", "mcp.update": "Posodobi", "mcp.updateTime": "Posodobljeno", "mcp.updateTools": "Posodabljanje orodij...", diff --git a/web/i18n/th-TH/app-overview.json b/web/i18n/th-TH/app-overview.json index 19ffcd0d24..53c5c4bfc5 100644 --- a/web/i18n/th-TH/app-overview.json +++ b/web/i18n/th-TH/app-overview.json @@ -113,7 +113,7 @@ "overview.triggerInfo.noTriggerAdded": "ยังไม่ได้เพิ่มทริกเกอร์", "overview.triggerInfo.title": "สิ่งกระตุ้น", "overview.triggerInfo.triggerStatusDescription": "สถานะของโหนดตัวเรียกปรากฏที่นี่ (อาจมีอยู่แล้วในร่าง และจะมีผลหลังจากเผยแพร่)", - "overview.triggerInfo.triggersAdded": "เพิ่มทริกเกอร์เรียบร้อยแล้ว", + "overview.triggerInfo.triggersAdded": "{{count}} ทริกเกอร์ที่เพิ่มแล้ว", "welcome.enterKeyTip": "ป้อนคีย์ OpenAI API ของคุณด้านล่าง", "welcome.firstStepTip": "ในการเริ่มต้น", "welcome.getKeyTip": "รับคีย์ API ของคุณจากแดชบอร์ด OpenAI", diff --git a/web/i18n/th-TH/app.json b/web/i18n/th-TH/app.json index acbd603e84..ba6f815e78 100644 --- a/web/i18n/th-TH/app.json +++ b/web/i18n/th-TH/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "ไม่พบฐานความรู้", "gotoAnything.emptyState.noPluginsFound": "ไม่พบปลั๊กอิน", "gotoAnything.emptyState.noWorkflowNodesFound": "ไม่พบโหนดเวิร์กโฟลว์", - "gotoAnything.emptyState.tryDifferentTerm": "ลองใช้คำค้นหาที่แตกต่างออกไปหรือลบตัวกรอง {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "ลองใช้คำค้นหาที่แตกต่างออกไป", "gotoAnything.emptyState.trySpecificSearch": "ลองใช้ {{shortcuts}} สำหรับการค้นหาเฉพาะ", "gotoAnything.groups.apps": "แอปพลิเคชัน", "gotoAnything.groups.commands": "คำสั่ง", diff --git a/web/i18n/th-TH/billing.json b/web/i18n/th-TH/billing.json index 599930792b..4e4fd85746 100644 --- a/web/i18n/th-TH/billing.json +++ b/web/i18n/th-TH/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "ขีดจํากัดโควต้าคําอธิบายประกอบ", "plansCommon.annotatedResponse.tooltip": "การแก้ไขและคําอธิบายประกอบการตอบกลับด้วยตนเองให้ความสามารถในการตอบคําถามคุณภาพสูงที่ปรับแต่งได้สําหรับแอป (ใช้ได้เฉพาะในแอปแชท)", "plansCommon.annotationQuota": "โควต้าคําอธิบายประกอบ", - "plansCommon.annualBilling": "การเรียกเก็บเงินประจำปี", + "plansCommon.annualBilling": "การเรียกเก็บเงินประจำปี ประหยัด {{percent}}%", "plansCommon.apiRateLimit": "ข้อจำกัดอัตราการใช้ API", "plansCommon.apiRateLimitTooltip": "ข้อจำกัดการใช้งาน API จะใช้กับคำขอทั้งหมดที่ทำผ่าน Dify API รวมถึงการสร้างข้อความ, การสนทนาแชท, การดำเนินการเวิร์กโฟลว์ และการประมวลผลเอกสาร.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "ลงทะเบียนและรับ", "plansCommon.freeTrialTipSuffix": "ไม่จำเป็นต้องใช้บัตรเครดิต", "plansCommon.getStarted": "เริ่มต้น", - "plansCommon.logsHistory": "ประวัติการบันทึก", + "plansCommon.logsHistory": "ประวัติการบันทึก {{days}} วัน", "plansCommon.member": "สมาชิก", "plansCommon.memberAfter": "สมาชิก", "plansCommon.messageRequest.title": "เครดิตข้อความ", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "ไม่", "plansCommon.unlimited": "จำกัด", "plansCommon.unlimitedApiRate": "ไม่มีข้อจำกัดอัตราการเรียก API", - "plansCommon.vectorSpace": "พื้นที่เวกเตอร์", + "plansCommon.vectorSpace": "{{size}} พื้นที่เวกเตอร์", "plansCommon.vectorSpaceTooltip": "Vector Space เป็นระบบหน่วยความจําระยะยาวที่จําเป็นสําหรับ LLM ในการทําความเข้าใจข้อมูลของคุณ", "plansCommon.workflowExecution.faster": "การดำเนินงานเวิร์กโฟลว์ที่รวดเร็วขึ้น", "plansCommon.workflowExecution.priority": "การดำเนินงานลำดับความสำคัญ", diff --git a/web/i18n/th-TH/common.json b/web/i18n/th-TH/common.json index 2a6b575618..90f0d3d043 100644 --- a/web/i18n/th-TH/common.json +++ b/web/i18n/th-TH/common.json @@ -108,7 +108,7 @@ "chat.conversationName": "ชื่อการสนทนา", "chat.conversationNameCanNotEmpty": "ต้องมีชื่อการสนทนา", "chat.conversationNamePlaceholder": "กรุณากรอกชื่อการสนทนา", - "chat.inputPlaceholder": "พูดคุยกับบอท", + "chat.inputPlaceholder": "พูดคุยกับ {{botName}}", "chat.renameConversation": "เปลี่ยนชื่อการสนทนา", "chat.resend": "ส่งอีกครั้ง", "chat.thinking": "ความคิด ", diff --git a/web/i18n/th-TH/dataset-creation.json b/web/i18n/th-TH/dataset-creation.json index 68e7e3a78c..4f8d5dc1a1 100644 --- a/web/i18n/th-TH/dataset-creation.json +++ b/web/i18n/th-TH/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "ยืนยันและดูตัวอย่าง", "stepTwo.previewButton": "การเปลี่ยนไปใช้รูปแบบ Q&A", "stepTwo.previewChunk": "ดูตัวอย่าง Chunk", - "stepTwo.previewChunkCount": "{{นับ}} ก้อนโดยประมาณ", + "stepTwo.previewChunkCount": "{{count}} ก้อนโดยประมาณ", "stepTwo.previewChunkTip": "คลิกปุ่ม 'Preview Chunk' ทางด้านซ้ายเพื่อโหลดตัวอย่าง", "stepTwo.previewSwitchTipEnd": "ใช้โทเค็นเพิ่มเติม", "stepTwo.previewSwitchTipStart": "การแสดงตัวอย่างส่วนปัจจุบันอยู่ในรูปแบบข้อความ การเปลี่ยนไปใช้ตัวอย่างรูปแบบคําถามและคําตอบจะ", diff --git a/web/i18n/th-TH/dataset-hit-testing.json b/web/i18n/th-TH/dataset-hit-testing.json index c796ad18ac..48ebc77fa6 100644 --- a/web/i18n/th-TH/dataset-hit-testing.json +++ b/web/i18n/th-TH/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "MM/DD/YYYY hh:mm A", "desc": "ทดสอบเอฟเฟกต์การตีของความรู้ตามข้อความแบบสอบถามที่กําหนด", "hit.emptyTip": "ผลการทดสอบการดึงข้อมูลจะแสดงที่นี่", - "hit.title": "ย่อหน้าดึงข้อมูล", + "hit.title": "{{num}} ย่อหน้าดึงข้อมูล", "hitChunks": "กด {{num}} ก้อนลูก", "imageUploader.dropZoneTip": "ลากไฟล์มาที่นี่เพื่ออัปโหลด", "imageUploader.singleChunkAttachmentLimitTooltip": "จำนวนของไฟล์แนบแบบชิ้นเดียวไม่สามารถเกิน {{limit}}", diff --git a/web/i18n/th-TH/dataset-settings.json b/web/i18n/th-TH/dataset-settings.json index 4dfccf5bc9..b94e9cff92 100644 --- a/web/i18n/th-TH/dataset-settings.json +++ b/web/i18n/th-TH/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "วิธีการจัดทําดัชนี", "form.indexMethodChangeToEconomyDisabledTip": "ไม่สามารถดาวน์เกรดจาก HQ เป็น ECO ได้", "form.indexMethodEconomy": "ประหยัด", - "form.indexMethodEconomyTip": "ใช้เอ็นจิ้นเวกเตอร์ออฟไลน์ ดัชนีคําหลัก ฯลฯ เพื่อลดความแม่นยําโดยไม่ต้องใช้โทเค็น", + "form.indexMethodEconomyTip": "ใช้ {{count}} คำสำคัญต่อชังก์เพื่อการค้นคืน โดยไม่ใช้โทเค็นแต่ลดความแม่นยำลง", "form.indexMethodHighQuality": "คุณภาพสูง", "form.indexMethodHighQualityTip": "เรียกใช้แบบจําลองการฝังตัวสําหรับการประมวลผลเพื่อให้มีความแม่นยําสูงขึ้นเมื่อผู้ใช้สืบค้น", "form.me": "(คุณ)", diff --git a/web/i18n/th-TH/plugin.json b/web/i18n/th-TH/plugin.json index dfb7e14d38..1c5a544abc 100644 --- a/web/i18n/th-TH/plugin.json +++ b/web/i18n/th-TH/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "การแก้จุดบกพร่อง", "debugInfo.viewDocs": "ดูเอกสาร", "deprecated": "เลิกใช้", - "detailPanel.actionNum": "{{num}} {{การกระทํา}} รวม", + "detailPanel.actionNum": "{{num}} {{action}} รวม", "detailPanel.categoryTip.debugging": "ปลั๊กอินการดีบัก", "detailPanel.categoryTip.github": "ติดตั้งจาก Github", "detailPanel.categoryTip.local": "ปลั๊กอินท้องถิ่น", @@ -89,7 +89,7 @@ "detailPanel.configureApp": "กําหนดค่าแอป", "detailPanel.configureModel": "กําหนดค่าแบบจําลอง", "detailPanel.configureTool": "กําหนดค่าเครื่องมือ", - "detailPanel.deprecation.fullMessage": "ปลั๊กอินนี้ถูกยกเลิกการใช้งานเนื่องจาก {{เหตุผลที่ถูกยกเลิก}} และจะไม่มีการอัปเดตอีกต่อไป กรุณาใช้ {{-alternativePluginId}} แทน.", + "detailPanel.deprecation.fullMessage": "ปลั๊กอินนี้ถูกยกเลิกการใช้งานเนื่องจาก {{deprecatedReason}} และจะไม่มีการอัปเดตอีกต่อไป กรุณาใช้ {{-alternativePluginId}} แทน.", "detailPanel.deprecation.noReason": "ปลั๊กอินนี้ได้ถูกยกเลิกใช้งานและจะไม่มีการอัปเดตอีกต่อไป.", "detailPanel.deprecation.onlyReason": "ปลั๊กอินนี้ถูกเลิกใช้เนื่องจาก {{deprecatedReason}} และจะไม่มีการอัปเดตอีกต่อไป.", "detailPanel.deprecation.reason.businessAdjustments": "การปรับเปลี่ยนธุรกิจ", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "อัพเดต", "detailPanel.operation.viewDetail": "ดูรายละเอียด", "detailPanel.serviceOk": "บริการตกลง", - "detailPanel.strategyNum": "{{num}} {{กลยุทธ์}} รวม", + "detailPanel.strategyNum": "{{num}} {{strategy}} รวม", "detailPanel.switchVersion": "สลับเวอร์ชัน", "detailPanel.toolSelector.auto": "อัตโนมัติ", "detailPanel.toolSelector.descriptionLabel": "คําอธิบายเครื่องมือ", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} ปลั๊กอินติดตั้งไม่สําเร็จ", - "task.installing": "การติดตั้งปลั๊กอิน {{installingLength}} 0 เสร็จแล้ว", + "task.installing": "การติดตั้งปลั๊กอิน", "task.installingWithError": "การติดตั้งปลั๊กอิน {{installingLength}}, {{successLength}} สําเร็จ, {{errorLength}} ล้มเหลว", "task.installingWithSuccess": "การติดตั้งปลั๊กอิน {{installingLength}}, {{successLength}} สําเร็จ", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/th-TH/tools.json b/web/i18n/th-TH/tools.json index 3966e0d8a8..c04806f180 100644 --- a/web/i18n/th-TH/tools.json +++ b/web/i18n/th-TH/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "ดูข้อมูลจําเพาะของ OpenAPI-Swagger", "customToolTip": "เรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือแบบกําหนดเองของ Dify", "howToGet": "วิธีรับ", - "includeToolNum": "{{num}} รวมเครื่องมือ", + "includeToolNum": "{{num}} {{action}} รวม", "mcp.authorize": "อนุญาต", "mcp.authorizeTip": "หลังจากอนุญาต เครื่องมือจะถูกแสดงที่นี่", "mcp.authorizing": "กำลังอนุญาต...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "เรียนรู้เพิ่มเติมเกี่ยวกับการรวมเซิร์ฟเวอร์ MCP", "mcp.create.cardTitle": "เพิ่มเซิร์ฟเวอร์ MCP (HTTP)", "mcp.delete": "ลบเซิร์ฟเวอร์ MCP", - "mcp.deleteConfirmTitle": "คุณต้องการลบ {mcp} หรือไม่?", + "mcp.deleteConfirmTitle": "คุณต้องการลบ {{mcp}} หรือไม่?", "mcp.getTools": "รับเครื่องมือ", "mcp.gettingTools": "กำลังโหลดเครื่องมือ...", "mcp.identifier": "ตัวระบุเซิร์ฟเวอร์ (คลิกเพื่อคัดลอก)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "พารามิเตอร์", "mcp.toolUpdateConfirmContent": "การอัปเดตรายการเครื่องมืออาจส่งผลต่อแอปพลิเคชันที่มีอยู่ คุณต้องการดำเนินการต่อหรือไม่?", "mcp.toolUpdateConfirmTitle": "อัปเดตรายการเครื่องมือ", - "mcp.toolsCount": "{count} เครื่องมือ", + "mcp.toolsCount": "{{count}} เครื่องมือ", "mcp.toolsEmpty": "ยังไม่โหลดเครื่องมือ", - "mcp.toolsNum": "{count} เครื่องมือที่รวมอยู่", + "mcp.toolsNum": "{{count}} เครื่องมือที่รวมอยู่", "mcp.update": "อัปเดต", "mcp.updateTime": "อัปเดตแล้ว", "mcp.updateTools": "กำลังอัปเดตเครื่องมือ...", diff --git a/web/i18n/th-TH/workflow.json b/web/i18n/th-TH/workflow.json index 1e11e2c171..6cf7f37b7a 100644 --- a/web/i18n/th-TH/workflow.json +++ b/web/i18n/th-TH/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "เวอร์ชันปลั๊กอินที่ติดตั้งไม่มีกลยุทธ์นี้ คลิกเพื่อเปลี่ยนเวอร์ชัน", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} ไม่ได้ติดตั้ง", "nodes.agent.strategyNotSet": "ไม่ได้ตั้งค่ากลยุทธ์ตัวแทน", - "nodes.agent.toolNotAuthorizedTooltip": "{{เครื่องมือ}} ไม่ได้รับอนุญาต", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} ไม่ได้รับอนุญาต", "nodes.agent.toolNotInstallTooltip": "{{tool}} ไม่ได้ติดตั้ง", "nodes.agent.toolbox": "เครื่อง มือ", "nodes.agent.tools": "เครื่อง มือ", @@ -549,13 +549,13 @@ "nodes.iteration.deleteDesc": "การลบโหนดการวนซ้ําจะเป็นการลบโหนดย่อยทั้งหมด", "nodes.iteration.deleteTitle": "ลบโหนดการทําซ้ํา?", "nodes.iteration.errorResponseMethod": "วิธีการตอบสนองข้อผิดพลาด", - "nodes.iteration.error_one": "{{นับ}} ความผิดพลาด", - "nodes.iteration.error_other": "{{นับ}} ข้อ ผิด พลาด", + "nodes.iteration.error_one": "{{count}} ความผิดพลาด", + "nodes.iteration.error_other": "{{count}} ข้อผิดพลาด", "nodes.iteration.flattenOutput": "แบนผลลัพธ์", "nodes.iteration.flattenOutputDesc": "เมื่อเปิดใช้งาน หากผลลัพธ์ของแต่ละรอบเป็นอาร์เรย์ทั้งหมด พวกมันจะถูกรวมเป็นอาร์เรย์เดียว เมื่อปิดใช้งาน ผลลัพธ์จะยังคงมีโครงสร้างอาร์เรย์ซ้อนกันอยู่", "nodes.iteration.input": "อินพุต", - "nodes.iteration.iteration_one": "{{นับ}} เกิด ซ้ำ", - "nodes.iteration.iteration_other": "{{นับ}} เกิด ซ้ำ", + "nodes.iteration.iteration_one": "{{count}} เกิดซ้ำ", + "nodes.iteration.iteration_other": "{{count}} เกิดซ้ำ", "nodes.iteration.output": "ตัวแปรเอาต์พุต", "nodes.iteration.parallelMode": "โหมดขนาน", "nodes.iteration.parallelModeEnableDesc": "ในโหมดขนาน งานภายในการทําซ้ําจะสนับสนุนการดําเนินการแบบขนาน คุณสามารถกําหนดค่านี้ได้ในแผงคุณสมบัติทางด้านขวา", diff --git a/web/i18n/tr-TR/app.json b/web/i18n/tr-TR/app.json index d6230fab63..4db749c51a 100644 --- a/web/i18n/tr-TR/app.json +++ b/web/i18n/tr-TR/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Bilgi bankası bulunamadı", "gotoAnything.emptyState.noPluginsFound": "Eklenti bulunamadı", "gotoAnything.emptyState.noWorkflowNodesFound": "İş akışı düğümü bulunamadı", - "gotoAnything.emptyState.tryDifferentTerm": "Farklı bir arama terimi deneyin veya {{mode}} filtresini kaldırın", + "gotoAnything.emptyState.tryDifferentTerm": "Farklı bir arama terimi deneyin", "gotoAnything.emptyState.trySpecificSearch": "Belirli aramalar için {{shortcuts}} deneyin", "gotoAnything.groups.apps": "Uygulamalar", "gotoAnything.groups.commands": "Komutlar", diff --git a/web/i18n/tr-TR/billing.json b/web/i18n/tr-TR/billing.json index a7c87dab78..ff2d496125 100644 --- a/web/i18n/tr-TR/billing.json +++ b/web/i18n/tr-TR/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Ek Açıklama Kota Sınırları", "plansCommon.annotatedResponse.tooltip": "Yanıtların elle düzenlenmesi ve ek açıklanması, uygulamalar için özelleştirilebilir yüksek kaliteli soru-cevap yetenekleri sağlar. (Sadece sohbet uygulamalarında geçerlidir)", "plansCommon.annotationQuota": "Ek Açıklama Kotası", - "plansCommon.annualBilling": "Yıllık Faturalama", + "plansCommon.annualBilling": "Yıllık faturalama, {{percent}}% tasarruf", "plansCommon.apiRateLimit": "API Hız Limiti", "plansCommon.apiRateLimitTooltip": "Dify API'si aracılığıyla yapılan tüm isteklerde, metin oluşturma, sohbet konuşmaları, iş akışı yürütmeleri ve belge işleme dahil olmak üzere, API Oran Sınırı uygulanır.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Kaydolun ve bir", "plansCommon.freeTrialTipSuffix": "Kredi kartı gerekmez", "plansCommon.getStarted": "Başlayın", - "plansCommon.logsHistory": "Günlük Geçmişi", + "plansCommon.logsHistory": "{{days}} günlük geçmişi", "plansCommon.member": "Üye", "plansCommon.memberAfter": "Üye", "plansCommon.messageRequest.title": "Mesaj Kredileri", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Mevcut Değil", "plansCommon.unlimited": "Sınırsız", "plansCommon.unlimitedApiRate": "API Hız Sınırı Yok", - "plansCommon.vectorSpace": "Vektör Alanı", + "plansCommon.vectorSpace": "{{size}} vektör alanı", "plansCommon.vectorSpaceTooltip": "Vektör Alanı, LLM'lerin verilerinizi anlaması için gerekli uzun süreli hafıza sistemidir.", "plansCommon.workflowExecution.faster": "Daha Hızlı İş Akışı Yürütme", "plansCommon.workflowExecution.priority": "Öncelikli İş Akışı Yürütme", diff --git a/web/i18n/tr-TR/common.json b/web/i18n/tr-TR/common.json index c45b453180..4760e3d073 100644 --- a/web/i18n/tr-TR/common.json +++ b/web/i18n/tr-TR/common.json @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Geçersiz dosya bağlantısı", "fileUploader.uploadDisabled": "Dosya yükleme devre dışı", "fileUploader.uploadFromComputer": "Yerel yükleme", - "fileUploader.uploadFromComputerLimit": "Dosya Yükleme {{size}}'ı aşamaz", + "fileUploader.uploadFromComputerLimit": "{{type}} yüklemesi {{size}}'ı aşamaz", "fileUploader.uploadFromComputerReadError": "Dosya okuma başarısız oldu, lütfen tekrar deneyin.", "fileUploader.uploadFromComputerUploadError": "Dosya yükleme başarısız oldu, lütfen tekrar yükleyin.", "imageInput.browse": "tarayıcı", @@ -278,7 +278,7 @@ "model.params.max_tokensTip": "Yanıtın maksimum uzunluğunu token cinsinden sınırlar.\nDaha büyük değerler prompt kelimeleri, sohbet kayıtları ve Bilgiler için bırakılacak alanı sınırlayabilir. \nİki üçün altında ayarlanması önerilir\ngpt-4-1106-preview, gpt-4-vision-preview maksimum token (giriş 128k, çıkış 4k).", "model.params.presence_penalty": "Varlık cezası", "model.params.presence_penaltyTip": "Şimdiye kadar metinde görünüp görünmediğine bağlı olarak yeni tokenları ne kadar cezalandıracağını belirler.\nModelin yeni konular hakkında konuşma olasılığını artırır.", - "model.params.setToCurrentModelMaxTokenTip": "Maksimum token, mevcut modelin maksimum token'ın %80'ine {maxToken} olarak güncellendi.", + "model.params.setToCurrentModelMaxTokenTip": "Maksimum token, mevcut modelin maksimum token'ın %80'ine {{maxToken}} olarak güncellendi.", "model.params.stop_sequences": "Stop sıraları", "model.params.stop_sequencesPlaceholder": "Sıra girin ve Tab tuşuna basın", "model.params.stop_sequencesTip": "API, dört adede kadar sıra belirleyerek daha fazla token üretmeyi durduracaktır. Dönülen metin durdurma sırasını içermez.", diff --git a/web/i18n/tr-TR/dataset-creation.json b/web/i18n/tr-TR/dataset-creation.json index 7aec43e6b4..ab409664a2 100644 --- a/web/i18n/tr-TR/dataset-creation.json +++ b/web/i18n/tr-TR/dataset-creation.json @@ -140,7 +140,7 @@ "stepTwo.preview": "Onayla ve Önizleme", "stepTwo.previewButton": "Q&A formatına geçiş", "stepTwo.previewChunk": "Önizleme Parçası", - "stepTwo.previewChunkCount": "{{sayı}} Tahmini parçalar", + "stepTwo.previewChunkCount": "{{count}} Tahmini parçalar", "stepTwo.previewChunkTip": "Önizlemeyi yüklemek için soldaki 'Önizleme Parçası' düğmesini tıklayın", "stepTwo.previewSwitchTipEnd": "token", "stepTwo.previewSwitchTipStart": "Geçerli parça önizlemesi metin formatındadır, soru ve yanıt formatına geçiş ek tüketir", diff --git a/web/i18n/tr-TR/dataset-hit-testing.json b/web/i18n/tr-TR/dataset-hit-testing.json index b901dc3289..da09ffb03c 100644 --- a/web/i18n/tr-TR/dataset-hit-testing.json +++ b/web/i18n/tr-TR/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "GG/AA/YYYY ss:dd ÖÖ/ÖS", "desc": "Verilen sorgu metnine göre Bilginin isabet etkisini test edin.", "hit.emptyTip": "Geri Alım Testi sonuçları burada gösterilecektir", - "hit.title": "GERİ ALINAN PARAGRAFLAR", + "hit.title": "{{num}} geri alınan paragraflar", "hitChunks": "{{num}} alt parçalarına basın", "imageUploader.dropZoneTip": "Yüklemek için dosyayı buraya sürükleyin", "imageUploader.singleChunkAttachmentLimitTooltip": "Tek parça eklerin sayısı {{limit}} değerini aşamaz", diff --git a/web/i18n/tr-TR/dataset-settings.json b/web/i18n/tr-TR/dataset-settings.json index 19a72ca693..bc84448771 100644 --- a/web/i18n/tr-TR/dataset-settings.json +++ b/web/i18n/tr-TR/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Dizin Yöntemi", "form.indexMethodChangeToEconomyDisabledTip": "Genel Merkezden ECO'ya düşürme için mevcut değil", "form.indexMethodEconomy": "Ekonomik", - "form.indexMethodEconomyTip": "Doğruluğu azaltmak için çevrimdışı vektör motorları, anahtar kelime dizinleri vb. kullanın, token harcamadan", + "form.indexMethodEconomyTip": "Her parça için {{count}} anahtar kelime kullanarak geri getirme yapın, token harcamadan doğruluğu azaltma pahasına.", "form.indexMethodHighQuality": "Yüksek Kalite", "form.indexMethodHighQualityTip": "Kullanıcılar sorguladığında daha yüksek doğruluk sağlamak için Yerleştirme modelini çağırır.", "form.me": "(Siz)", diff --git a/web/i18n/tr-TR/dataset.json b/web/i18n/tr-TR/dataset.json index 0be6fbb726..1d28f24d7f 100644 --- a/web/i18n/tr-TR/dataset.json +++ b/web/i18n/tr-TR/dataset.json @@ -147,7 +147,7 @@ "parentMode.paragraph": "Paragraf", "partialEnabled_one": "Toplam {{count}} belge, {{num}} mevcut", "partialEnabled_other": "Toplam {{count}} belge, {{num}} mevcut", - "preprocessDocument": "{{sayı}} Belgeleri Ön İşleme", + "preprocessDocument": "{{num}} Belgeleri Ön İşleme", "rerankSettings": "Yeniden Sıralama Ayarı", "retrieval.change": "Değiştir", "retrieval.changeRetrievalMethod": "Geri alma yöntemini değiştir", diff --git a/web/i18n/tr-TR/plugin.json b/web/i18n/tr-TR/plugin.json index 2d9f3b80c2..005e354586 100644 --- a/web/i18n/tr-TR/plugin.json +++ b/web/i18n/tr-TR/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Hata ayıklama", "debugInfo.viewDocs": "Belgeleri Görüntüle", "deprecated": "Kaldırılmış", - "detailPanel.actionNum": "{{sayı}} {{eylem}} DAHİL", + "detailPanel.actionNum": "{{num}} {{action}} DAHİL", "detailPanel.categoryTip.debugging": "Hata Ayıklama Eklentisi", "detailPanel.categoryTip.github": "Github'dan yüklendi", "detailPanel.categoryTip.local": "Yerel Eklenti", @@ -106,7 +106,7 @@ "detailPanel.endpointsDocLink": "Belgeyi görüntüleyin", "detailPanel.endpointsEmpty": "Uç nokta eklemek için '+' düğmesini tıklayın", "detailPanel.endpointsTip": "Bu eklenti, uç noktalar aracılığıyla belirli işlevler sağlar ve geçerli çalışma alanı için birden çok uç nokta kümesi yapılandırabilirsiniz.", - "detailPanel.modelNum": "{{sayı}} DAHİL OLAN MODELLER", + "detailPanel.modelNum": "{{num}} DAHİL OLAN MODELLER", "detailPanel.operation.back": "Geri", "detailPanel.operation.checkUpdate": "Güncellemeyi Kontrol Et", "detailPanel.operation.detail": "Şey", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Güncelleştirmek", "detailPanel.operation.viewDetail": "ayrıntılara bakın", "detailPanel.serviceOk": "Servis Tamam", - "detailPanel.strategyNum": "{{sayı}} {{strateji}} DAHİL", + "detailPanel.strategyNum": "{{num}} {{strategy}} DAHİL", "detailPanel.switchVersion": "Sürümü Değiştir", "detailPanel.toolSelector.auto": "Otomatik", "detailPanel.toolSelector.descriptionLabel": "Araç açıklaması", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} eklentileri yüklenemedi", - "task.installing": "{{installingLength}} eklentilerinin kurulumu, 0 bitti.", + "task.installing": "Eklentiler yükleniyor.", "task.installingWithError": "{{installingLength}} eklentileri yükleniyor, {{successLength}} başarılı, {{errorLength}} başarısız oldu", "task.installingWithSuccess": "{{installingLength}} eklentileri yükleniyor, {{successLength}} başarılı.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/tr-TR/tools.json b/web/i18n/tr-TR/tools.json index fd6e1750d2..d4351da13f 100644 --- a/web/i18n/tr-TR/tools.json +++ b/web/i18n/tr-TR/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "OpenAPI-Swagger Spesifikasyonunu Görüntüle", "customToolTip": "Dify özel araçları hakkında daha fazla bilgi edinin", "howToGet": "Nasıl alınır", - "includeToolNum": "{{num}} araç dahil", + "includeToolNum": "{{num}} {{action}} dahil", "mcp.authorize": "Yetkilendir", "mcp.authorizeTip": "Yetkilendirmeden sonra araçlar burada görüntülenecektir.", "mcp.authorizing": "Yetkilendiriliyor...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "MCP sunucu entegrasyonu hakkında daha fazla bilgi edinin", "mcp.create.cardTitle": "MCP Sunucusu Ekle (HTTP)", "mcp.delete": "MCP Sunucusunu Kaldır", - "mcp.deleteConfirmTitle": "{mcp} kaldırılsın mı?", + "mcp.deleteConfirmTitle": "{{mcp}} kaldırılsın mı?", "mcp.getTools": "Araçları al", "mcp.gettingTools": "Araçlar alınıyor...", "mcp.identifier": "Sunucu Tanımlayıcı (Kopyalamak için Tıklayın)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "Parametreler", "mcp.toolUpdateConfirmContent": "Araç listesini güncellemek mevcut uygulamaları etkileyebilir. Devam etmek istiyor musunuz?", "mcp.toolUpdateConfirmTitle": "Araç Listesini Güncelle", - "mcp.toolsCount": "{count} araç", + "mcp.toolsCount": "{{count}} araç", "mcp.toolsEmpty": "Araçlar yüklenmedi", - "mcp.toolsNum": "{count} araç dahil", + "mcp.toolsNum": "{{count}} araç dahil", "mcp.update": "Güncelle", "mcp.updateTime": "Güncellendi", "mcp.updateTools": "Araçlar güncelleniyor...", diff --git a/web/i18n/tr-TR/workflow.json b/web/i18n/tr-TR/workflow.json index c91c666298..dd9ebe050b 100644 --- a/web/i18n/tr-TR/workflow.json +++ b/web/i18n/tr-TR/workflow.json @@ -361,9 +361,9 @@ "nodes.agent.strategy.tooltip": "Farklı Agentic stratejileri, sistemin çok adımlı araç çağrılarını nasıl planladığını ve yürüttüğünü belirler", "nodes.agent.strategyNotFoundDesc": "Yüklenen eklenti sürümü bu stratejiyi sağlamaz.", "nodes.agent.strategyNotFoundDescAndSwitchVersion": "Yüklenen eklenti sürümü bu stratejiyi sağlamaz. Sürümü değiştirmek için tıklayın.", - "nodes.agent.strategyNotInstallTooltip": "{{strateji}} yüklü değil", + "nodes.agent.strategyNotInstallTooltip": "{{strategy}} yüklü değil", "nodes.agent.strategyNotSet": "Ajan stratejisi Belirlenmedi", - "nodes.agent.toolNotAuthorizedTooltip": "{{araç}} Yetkili Değil", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} Yetkili Değil", "nodes.agent.toolNotInstallTooltip": "{{tool}} yüklü değil", "nodes.agent.toolbox": "Araç", "nodes.agent.tools": "Araçları", @@ -435,7 +435,7 @@ "nodes.common.pluginNotInstalled": "Eklenti yüklü değil", "nodes.common.retry.maxRetries": "En fazla yeniden deneme", "nodes.common.retry.ms": "Ms", - "nodes.common.retry.retries": "{{sayı}} Yeni -den deneme", + "nodes.common.retry.retries": "{{num}} Yeni -den deneme", "nodes.common.retry.retry": "Yeni -den deneme", "nodes.common.retry.retryFailed": "Yeniden deneme başarısız oldu", "nodes.common.retry.retryFailedTimes": "{{times}} yeniden denemeleri başarısız oldu", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "Yineleme düğümünü silmek tüm alt düğümleri silecektir", "nodes.iteration.deleteTitle": "Yineleme Düğümünü Sil?", "nodes.iteration.errorResponseMethod": "Hata yanıtı yöntemi", - "nodes.iteration.error_one": "{{sayı}} Hata", - "nodes.iteration.error_other": "{{sayı}} Hata", + "nodes.iteration.error_one": "{{count}} Hata", + "nodes.iteration.error_other": "{{count}} Hata", "nodes.iteration.flattenOutput": "Çıktıyı Düzleştir", "nodes.iteration.flattenOutputDesc": "Etkinleştirildiğinde, eğer tüm yineleme çıktıları dizilerse, bunlar tek bir dizi halinde düzleştirilecektir. Devre dışı bırakıldığında ise çıktılar iç içe diziler şeklini koruyacaktır.", "nodes.iteration.input": "Giriş", diff --git a/web/i18n/uk-UA/app-overview.json b/web/i18n/uk-UA/app-overview.json index 32cbdf9c87..9b7f7d21f9 100644 --- a/web/i18n/uk-UA/app-overview.json +++ b/web/i18n/uk-UA/app-overview.json @@ -113,7 +113,7 @@ "overview.triggerInfo.noTriggerAdded": "Триггер не додано", "overview.triggerInfo.title": "Тригери", "overview.triggerInfo.triggerStatusDescription": "Статус вузла тригера відображається тут. (Може вже існувати в чернетці, набирає чинності після публікації)", - "overview.triggerInfo.triggersAdded": "Додано тригери", + "overview.triggerInfo.triggersAdded": "{{count}} тригерів додано", "welcome.enterKeyTip": "введіть свій ключ API OpenAI нижче", "welcome.firstStepTip": "Для початку,", "welcome.getKeyTip": "Отримайте свій ключ API з панелі OpenAI", diff --git a/web/i18n/uk-UA/app.json b/web/i18n/uk-UA/app.json index 35872cbe18..863a5b903b 100644 --- a/web/i18n/uk-UA/app.json +++ b/web/i18n/uk-UA/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Баз знань не знайдено", "gotoAnything.emptyState.noPluginsFound": "Плагінів не знайдено", "gotoAnything.emptyState.noWorkflowNodesFound": "Вузли бізнес-процесу не знайдено", - "gotoAnything.emptyState.tryDifferentTerm": "Спробуйте інший пошуковий термін або видаліть фільтр {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Спробуйте інший пошуковий термін", "gotoAnything.emptyState.trySpecificSearch": "Спробуйте {{shortcuts}} для конкретного пошуку", "gotoAnything.groups.apps": "Програми", "gotoAnything.groups.commands": "Команди", diff --git a/web/i18n/uk-UA/billing.json b/web/i18n/uk-UA/billing.json index bd627fa8bb..a7c902ecaa 100644 --- a/web/i18n/uk-UA/billing.json +++ b/web/i18n/uk-UA/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Ліміти квоти відповідей з анотаціями", "plansCommon.annotatedResponse.tooltip": "Ручне редагування та анотування відповідей забезпечує налаштовувані високоякісні можливості відповідей на запитання для програм. (Застосовується лише в чат-програмах)", "plansCommon.annotationQuota": "Квота анотацій", - "plansCommon.annualBilling": "Щорічна оплата", + "plansCommon.annualBilling": "Щорічна оплата, заощаджуйте {{percent}}%", "plansCommon.apiRateLimit": "Обмеження швидкості API", "plansCommon.apiRateLimitTooltip": "Обмеження частоти запитів застосовується до всіх запитів, зроблених через API Dify, включаючи генерацію тексту, чат-розмови, виконання робочих процесів та обробку документів.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Зареєструйтесь і отримайте", "plansCommon.freeTrialTipSuffix": "Кредитна картка не потрібна", "plansCommon.getStarted": "Почати", - "plansCommon.logsHistory": "Історія журналів", + "plansCommon.logsHistory": "{{days}} історія журналів", "plansCommon.member": "Учасник", "plansCommon.memberAfter": "учасника", "plansCommon.messageRequest.title": "Кредити повідомлень", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Недоступний", "plansCommon.unlimited": "Безлімітний", "plansCommon.unlimitedApiRate": "Немає обмеження на швидкість API", - "plansCommon.vectorSpace": "Векторний простір", + "plansCommon.vectorSpace": "{{size}} векторний простір", "plansCommon.vectorSpaceTooltip": "Векторний простір – це система довгострокової пам'яті, необхідна LLM для розуміння ваших даних.", "plansCommon.workflowExecution.faster": "Швидше виконання робочого процесу", "plansCommon.workflowExecution.priority": "Виконання пріоритетного робочого процесу", diff --git a/web/i18n/uk-UA/common.json b/web/i18n/uk-UA/common.json index e9e810da45..c4dce83bcc 100644 --- a/web/i18n/uk-UA/common.json +++ b/web/i18n/uk-UA/common.json @@ -108,7 +108,7 @@ "chat.conversationName": "Назва розмови", "chat.conversationNameCanNotEmpty": "Потрібна назва розмови", "chat.conversationNamePlaceholder": "Будь ласка, введіть назву розмови", - "chat.inputPlaceholder": "Поговоріть з ботом", + "chat.inputPlaceholder": "Поговоріть з {{botName}}", "chat.renameConversation": "Перейменувати розмову", "chat.resend": "Відправити знову", "chat.thinking": "Мислення...", @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Неприпустиме посилання на файл", "fileUploader.uploadDisabled": "Завантаження файлів вимкнено", "fileUploader.uploadFromComputer": "Локальне завантаження", - "fileUploader.uploadFromComputerLimit": "Файл завантаження не може перевищувати {{size}}", + "fileUploader.uploadFromComputerLimit": "Завантаження {{type}} не може перевищувати {{size}}", "fileUploader.uploadFromComputerReadError": "Не вдалося прочитати файл, будь ласка, спробуйте ще раз.", "fileUploader.uploadFromComputerUploadError": "Не вдалося завантажити файл, будь ласка, завантажте ще раз.", "imageInput.browse": "перегляд", diff --git a/web/i18n/uk-UA/dataset-hit-testing.json b/web/i18n/uk-UA/dataset-hit-testing.json index 39cebf3072..2735b3bff6 100644 --- a/web/i18n/uk-UA/dataset-hit-testing.json +++ b/web/i18n/uk-UA/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "DD/MM/YYYY HH:mm A", "desc": "Тестування ефективності пошуку знань на основі наданого текстового запиту.", "hit.emptyTip": "Результати тестування вибірки відобразяться тут", - "hit.title": "ВИБРАНІ АБЗАЦИ", + "hit.title": "{{num}} вибрані абзаци", "hitChunks": "Натисніть {{num}} на дочірні шматки", "imageUploader.dropZoneTip": "Перетягніть файл сюди, щоб завантажити", "imageUploader.singleChunkAttachmentLimitTooltip": "Кількість вкладень у вигляді одного блоку не може перевищувати {{limit}}", diff --git a/web/i18n/uk-UA/dataset-settings.json b/web/i18n/uk-UA/dataset-settings.json index ab5683ba9e..0e569c6d00 100644 --- a/web/i18n/uk-UA/dataset-settings.json +++ b/web/i18n/uk-UA/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Метод індексації", "form.indexMethodChangeToEconomyDisabledTip": "Недоступно для пониження з HQ до ECO", "form.indexMethodEconomy": "Економний", - "form.indexMethodEconomyTip": "Використовуйте автономні векторні двигуни, індекси ключових слів тощо, щоб зменшити точність без використання токенів.", + "form.indexMethodEconomyTip": "Використовуйте {{count}} ключових слів на кожен чанк для пошуку, без витрат токенів ціною меншої точності.", "form.indexMethodHighQuality": "Висока якість", "form.indexMethodHighQualityTip": "Викликати модель Embedding для обробки, щоб забезпечити вищу точність під час запитів користувачів.", "form.me": "(Ви)", diff --git a/web/i18n/uk-UA/plugin.json b/web/i18n/uk-UA/plugin.json index 13e8aaf660..98bebf0ca8 100644 --- a/web/i18n/uk-UA/plugin.json +++ b/web/i18n/uk-UA/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Налагодження", "debugInfo.viewDocs": "Переглянути документи", "deprecated": "Застарілий", - "detailPanel.actionNum": "{{num}} {{дія}} ВКЛЮЧЕНІ", + "detailPanel.actionNum": "{{num}} {{action}} ВКЛЮЧЕНІ", "detailPanel.categoryTip.debugging": "Плагін налагодження", "detailPanel.categoryTip.github": "Встановлено з Github", "detailPanel.categoryTip.local": "Локальний плагін", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Оновлювати", "detailPanel.operation.viewDetail": "Переглянути деталі", "detailPanel.serviceOk": "Сервіс працює", - "detailPanel.strategyNum": "{{num}} {{стратегія}} ВКЛЮЧЕНІ", + "detailPanel.strategyNum": "{{num}} {{strategy}} ВКЛЮЧЕНІ", "detailPanel.switchVersion": "Версія перемикача", "detailPanel.toolSelector.auto": "Автоматичний", "detailPanel.toolSelector.descriptionLabel": "Опис засобу", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "Плагіни {{errorLength}} не вдалося встановити", - "task.installing": "Встановлення плагінів {{installingLength}}, 0 виконано.", + "task.installing": "Встановлення плагінів.", "task.installingWithError": "Не вдалося встановити плагіни {{installingLength}}, успіх {{successLength}}, {{errorLength}}", "task.installingWithSuccess": "Встановлення плагінів {{installingLength}}, успіх {{successLength}}.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/uk-UA/tools.json b/web/i18n/uk-UA/tools.json index 1b2886add4..75a51f8c4d 100644 --- a/web/i18n/uk-UA/tools.json +++ b/web/i18n/uk-UA/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Переглянути специфікацію OpenAPI-Swagger", "customToolTip": "Дізнайтеся більше про користувацькі інструменти Dify", "howToGet": "Як отримати", - "includeToolNum": "{{num}} інструмент(ів) включено", + "includeToolNum": "{{num}} {{action}} включено", "mcp.authorize": "Авторизувати", "mcp.authorizeTip": "Після авторизації інструменти відображатимуться тут.", "mcp.authorizing": "Авторизація...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "Дізнатися більше про інтеграцію сервера MCP", "mcp.create.cardTitle": "Додати сервер MCP (HTTP)", "mcp.delete": "Видалити сервер MCP", - "mcp.deleteConfirmTitle": "Видалити {mcp}?", + "mcp.deleteConfirmTitle": "Видалити {{mcp}}?", "mcp.getTools": "Отримати інструменти", "mcp.gettingTools": "Отримання інструментів...", "mcp.identifier": "Ідентифікатор сервера (Натисніть, щоб скопіювати)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "Параметри", "mcp.toolUpdateConfirmContent": "Оновлення списку інструментів може вплинути на існуючі додатки. Продовжити?", "mcp.toolUpdateConfirmTitle": "Оновити список інструментів", - "mcp.toolsCount": "{count} інструментів", + "mcp.toolsCount": "{{count}} інструментів", "mcp.toolsEmpty": "Інструменти не завантажено", - "mcp.toolsNum": "{count} інструментів включено", + "mcp.toolsNum": "{{count}} інструментів включено", "mcp.update": "Оновити", "mcp.updateTime": "Оновлено", "mcp.updateTools": "Оновлення інструментів...", diff --git a/web/i18n/vi-VN/app-debug.json b/web/i18n/vi-VN/app-debug.json index f13df6c43d..d533a02370 100644 --- a/web/i18n/vi-VN/app-debug.json +++ b/web/i18n/vi-VN/app-debug.json @@ -251,10 +251,10 @@ "openingStatement.notIncludeKey": "Lời nhắc ban đầu không bao gồm biến: {{key}}. Vui lòng thêm nó vào lời nhắc ban đầu.", "openingStatement.openingQuestion": "Câu hỏi mở đầu", "openingStatement.openingQuestionPlaceholder": "Bạn có thể sử dụng biến, hãy thử nhập {{variable}}.", - "openingStatement.placeholder": "Viết thông điệp mở đầu của bạn ở đây, bạn có thể sử dụng biến, hãy thử nhập {{biến}}.", + "openingStatement.placeholder": "Viết thông điệp mở đầu của bạn ở đây, bạn có thể sử dụng biến, hãy thử nhập {{variable}}.", "openingStatement.title": "Mở đầu cuộc trò chuyện", "openingStatement.tooShort": "Cần ít nhất 20 từ trong lời nhắc ban đầu để tạo ra các câu mở đầu cho cuộc trò chuyện.", - "openingStatement.varTip": "Bạn có thể sử dụng biến, hãy thử nhập {{biến}}", + "openingStatement.varTip": "Bạn có thể sử dụng biến, hãy thử nhập {{variable}}", "openingStatement.writeOpener": "Viết câu mở đầu", "operation.addFeature": "Thêm tính năng", "operation.agree": "thích", diff --git a/web/i18n/vi-VN/app.json b/web/i18n/vi-VN/app.json index 30d8437bc5..1e6821240d 100644 --- a/web/i18n/vi-VN/app.json +++ b/web/i18n/vi-VN/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "Không tìm thấy cơ sở kiến thức", "gotoAnything.emptyState.noPluginsFound": "Không tìm thấy plugin", "gotoAnything.emptyState.noWorkflowNodesFound": "Không tìm thấy nút quy trình làm việc", - "gotoAnything.emptyState.tryDifferentTerm": "Thử từ khóa tìm kiếm khác hoặc xóa bộ lọc {{mode}}", + "gotoAnything.emptyState.tryDifferentTerm": "Thử từ khóa tìm kiếm khác", "gotoAnything.emptyState.trySpecificSearch": "Thử {{shortcuts}} để tìm kiếm cụ thể", "gotoAnything.groups.apps": "Ứng dụng", "gotoAnything.groups.commands": "Lệnh", diff --git a/web/i18n/vi-VN/billing.json b/web/i18n/vi-VN/billing.json index 33ee5e5873..d18d3a1d9b 100644 --- a/web/i18n/vi-VN/billing.json +++ b/web/i18n/vi-VN/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "Hạn Mức Quota Phản hồi Đã được Ghi chú", "plansCommon.annotatedResponse.tooltip": "Chỉnh sửa và ghi chú thủ công các phản hồi cung cấp khả năng trả lời câu hỏi chất lượng cao có thể tùy chỉnh cho các ứng dụng. (Chỉ áp dụng trong các ứng dụng trò chuyện)", "plansCommon.annotationQuota": "Hạn ngạch chú thích", - "plansCommon.annualBilling": "Hóa đơn hàng năm", + "plansCommon.annualBilling": "Thanh toán hằng năm, tiết kiệm {{percent}}%", "plansCommon.apiRateLimit": "Giới hạn tần suất API", "plansCommon.apiRateLimitTooltip": "Giới hạn tần suất API áp dụng cho tất cả các yêu cầu được thực hiện thông qua API Dify, bao gồm tạo văn bản, cuộc trò chuyện, thực thi quy trình làm việc và xử lý tài liệu.", "plansCommon.apiRateLimitUnit": "{{count,number}}", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "Đăng ký và nhận một", "plansCommon.freeTrialTipSuffix": "Không cần thẻ tín dụng", "plansCommon.getStarted": "Bắt đầu", - "plansCommon.logsHistory": "Lịch sử Nhật ký", + "plansCommon.logsHistory": "{{days}} lịch sử nhật ký", "plansCommon.member": "Thành viên", "plansCommon.memberAfter": "Thành viên", "plansCommon.messageRequest.title": "Số Lượng Tin Nhắn", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "Không có sẵn", "plansCommon.unlimited": "Không giới hạn", "plansCommon.unlimitedApiRate": "Không giới hạn tỷ lệ API", - "plansCommon.vectorSpace": "Không gian Vector", + "plansCommon.vectorSpace": "{{size}} không gian vector", "plansCommon.vectorSpaceTooltip": "Không gian Vector là hệ thống bộ nhớ dài hạn cần thiết cho LLMs để hiểu dữ liệu của bạn.", "plansCommon.workflowExecution.faster": "Thực hiện quy trình làm việc nhanh hơn", "plansCommon.workflowExecution.priority": "Thực thi Quy trình Làm việc Ưu tiên", diff --git a/web/i18n/vi-VN/common.json b/web/i18n/vi-VN/common.json index 1fec0e10e2..cd37fc06d8 100644 --- a/web/i18n/vi-VN/common.json +++ b/web/i18n/vi-VN/common.json @@ -159,7 +159,7 @@ "environment.development": "DEVELOPMENT", "environment.testing": "TESTING", "error": "Lỗi", - "errorMsg.fieldRequired": "{{trường}} là bắt buộc", + "errorMsg.fieldRequired": "{{field}} là bắt buộc", "errorMsg.urlError": "URL phải bắt đầu bằng http:// hoặc https://", "feedback.content": "Nội dung phản hồi", "feedback.placeholder": "Xin vui lòng miêu tả những gì đã xảy ra không đúng hoặc chúng tôi có thể cải thiện như thế nào...", @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "Liên kết tệp không hợp lệ", "fileUploader.uploadDisabled": "Tải tệp bị vô hiệu hóa", "fileUploader.uploadFromComputer": "Tải lên cục bộ", - "fileUploader.uploadFromComputerLimit": "Tải lên tệp không được vượt quá {{size}}", + "fileUploader.uploadFromComputerLimit": "Tải lên {{type}} không được vượt quá {{size}}", "fileUploader.uploadFromComputerReadError": "Đọc tệp không thành công, vui lòng thử lại.", "fileUploader.uploadFromComputerUploadError": "Tải lên tệp không thành công, vui lòng tải lên lại.", "imageInput.browse": "duyệt", @@ -305,7 +305,7 @@ "modelProvider.addModel": "Thêm Mô hình", "modelProvider.addMoreModelProvider": "THÊM NHÀ CUNG CẤP MÔ HÌNH", "modelProvider.apiKey": "KHÓA API", - "modelProvider.apiKeyRateLimit": "Đã đạt đến giới hạn tốc độ, có sẵn sau {{giây}} giây", + "modelProvider.apiKeyRateLimit": "Đã đạt đến giới hạn tốc độ, có sẵn sau {{seconds}} giây", "modelProvider.apiKeyStatusNormal": "Trạng thái APIKey bình thường", "modelProvider.auth.addApiKey": "Thêm khóa API", "modelProvider.auth.addCredential": "Thêm thông tin đăng nhập", diff --git a/web/i18n/vi-VN/dataset-creation.json b/web/i18n/vi-VN/dataset-creation.json index 4111f3f6f3..a36a782ca4 100644 --- a/web/i18n/vi-VN/dataset-creation.json +++ b/web/i18n/vi-VN/dataset-creation.json @@ -68,7 +68,7 @@ "stepOne.website.resetAll": "Đặt lại tất cả", "stepOne.website.run": "Chạy", "stepOne.website.running": "Chạy", - "stepOne.website.scrapTimeInfo": "Tổng cộng {{tổng}} trang được thu thập trong vòng {{thời gian}}", + "stepOne.website.scrapTimeInfo": "Tổng cộng {{total}} trang được thu thập trong vòng {{time}}", "stepOne.website.selectAll": "Chọn tất cả", "stepOne.website.totalPageScraped": "Tổng số trang được cạo:", "stepOne.website.unknownError": "Lỗi không xác định", @@ -140,7 +140,7 @@ "stepTwo.preview": "Xác nhận & Xem trước", "stepTwo.previewButton": "Chuyển sang dạng Câu hỏi & Trả lời", "stepTwo.previewChunk": "Xem trước Chunk", - "stepTwo.previewChunkCount": "{{đếm}} Khối ước tính", + "stepTwo.previewChunkCount": "{{count}} Khối ước tính", "stepTwo.previewChunkTip": "Nhấp vào nút 'Preview Chunk' ở bên trái để tải bản xem trước", "stepTwo.previewSwitchTipEnd": " tiêu tốn thêm token", "stepTwo.previewSwitchTipStart": "Xem trước đoạn hiện tại đang ở định dạng văn bản, chuyển sang xem trước dạng câu hỏi và trả lời sẽ", diff --git a/web/i18n/vi-VN/dataset-hit-testing.json b/web/i18n/vi-VN/dataset-hit-testing.json index b21e8f72c3..e507c04ad1 100644 --- a/web/i18n/vi-VN/dataset-hit-testing.json +++ b/web/i18n/vi-VN/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "MM/DD/YYYY hh:mm A", "desc": "Kiểm tra hiệu quả truy xuất của Kiến thức dựa trên văn bản truy vấn đã cho.", "hit.emptyTip": "Kết quả kiểm tra truy vấn sẽ hiển thị ở đây", - "hit.title": "CÁC ĐOẠN VĂN ĐƯỢC TRUY XUẤT", + "hit.title": "{{num}} đoạn văn được truy xuất", "hitChunks": "Nhấn {{num}} đoạn con", "imageUploader.dropZoneTip": "Kéo tệp vào đây để tải lên", "imageUploader.singleChunkAttachmentLimitTooltip": "Số lượng phụ kiện khối đơn không được vượt quá {{limit}}", diff --git a/web/i18n/vi-VN/dataset-settings.json b/web/i18n/vi-VN/dataset-settings.json index 5587ec1e5d..c1127a7377 100644 --- a/web/i18n/vi-VN/dataset-settings.json +++ b/web/i18n/vi-VN/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "Phương pháp chỉ mục", "form.indexMethodChangeToEconomyDisabledTip": "Không khả dụng để hạ cấp từ HQ xuống ECO", "form.indexMethodEconomy": "Tiết kiệm", - "form.indexMethodEconomyTip": "Sử dụng các công cụ nhúng vector ngoại tuyến, chỉ mục từ khóa, v.v. để giảm độ chính xác mà không tiêu tốn token", + "form.indexMethodEconomyTip": "Sử dụng {{count}} từ khóa mỗi đoạn để truy xuất, không tiêu tốn token nhưng giảm độ chính xác.", "form.indexMethodHighQuality": "Chất lượng cao", "form.indexMethodHighQualityTip": "Sử dụng mô hình Embedding để xử lý, cung cấp độ chính xác cao hơn khi người dùng truy vấn.", "form.me": "(Bạn)", diff --git a/web/i18n/vi-VN/dataset.json b/web/i18n/vi-VN/dataset.json index c654b70119..38ed78714b 100644 --- a/web/i18n/vi-VN/dataset.json +++ b/web/i18n/vi-VN/dataset.json @@ -147,7 +147,7 @@ "parentMode.paragraph": "Đoạn", "partialEnabled_one": "Tổng cộng {{count}} tài liệu, {{num}} có sẵn", "partialEnabled_other": "Tổng cộng {{count}} tài liệu, {{num}} có sẵn", - "preprocessDocument": "{{số}} Tiền xử lý tài liệu", + "preprocessDocument": "{{num}} Tiền xử lý tài liệu", "rerankSettings": "Cài đặt xếp hạng lại", "retrieval.change": "Thay đổi", "retrieval.changeRetrievalMethod": "Thay đổi phương pháp truy xuất", diff --git a/web/i18n/vi-VN/plugin.json b/web/i18n/vi-VN/plugin.json index 0c5a148a21..40cc20b7b0 100644 --- a/web/i18n/vi-VN/plugin.json +++ b/web/i18n/vi-VN/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "Gỡ lỗi", "debugInfo.viewDocs": "Xem tài liệu", "deprecated": "Đã bị ngưng sử dụng", - "detailPanel.actionNum": "{{số}} {{hành động}} BAO GỒM", + "detailPanel.actionNum": "{{num}} {{action}} BAO GỒM", "detailPanel.categoryTip.debugging": "Plugin gỡ lỗi", "detailPanel.categoryTip.github": "Cài đặt từ Github", "detailPanel.categoryTip.local": "Plugin cục bộ", @@ -106,7 +106,7 @@ "detailPanel.endpointsDocLink": "Xem tài liệu", "detailPanel.endpointsEmpty": "Nhấp vào nút '+' để thêm điểm cuối", "detailPanel.endpointsTip": "Plugin này cung cấp các chức năng cụ thể thông qua các điểm cuối và bạn có thể định cấu hình nhiều bộ điểm cuối cho không gian làm việc hiện tại.", - "detailPanel.modelNum": "{{số}} CÁC MÔ HÌNH BAO GỒM", + "detailPanel.modelNum": "{{num}} CÁC MÔ HÌNH BAO GỒM", "detailPanel.operation.back": "Quay lại", "detailPanel.operation.checkUpdate": "Kiểm tra cập nhật", "detailPanel.operation.detail": "Chi tiết", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "Cập nhật", "detailPanel.operation.viewDetail": "xem chi tiết", "detailPanel.serviceOk": "Dịch vụ OK", - "detailPanel.strategyNum": "{{số}} {{chiến lược}} BAO GỒM", + "detailPanel.strategyNum": "{{num}} {{strategy}} BAO GỒM", "detailPanel.switchVersion": "Chuyển đổi phiên bản", "detailPanel.toolSelector.auto": "Tự động", "detailPanel.toolSelector.descriptionLabel": "Mô tả công cụ", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} plugin không cài đặt được", - "task.installing": "Cài đặt {{installingLength}} plugins, 0 xong.", + "task.installing": "Đang cài đặt plugin.", "task.installingWithError": "Cài đặt {{installingLength}} plugins, {{successLength}} thành công, {{errorLength}} không thành công", "task.installingWithSuccess": "Cài đặt {{installingLength}} plugins, {{successLength}} thành công.", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/vi-VN/tools.json b/web/i18n/vi-VN/tools.json index 5988e092ab..8c620d71c8 100644 --- a/web/i18n/vi-VN/tools.json +++ b/web/i18n/vi-VN/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "Xem chi tiết OpenAPI-Swagger", "customToolTip": "Tìm hiểu thêm về các công cụ tùy chỉnh Dify", "howToGet": "Cách nhận", - "includeToolNum": "Bao gồm {{num}} công cụ", + "includeToolNum": "{{num}} {{action}} được bao gồm", "mcp.authorize": "Ủy quyền", "mcp.authorizeTip": "Sau khi ủy quyền, công cụ sẽ hiển thị tại đây.", "mcp.authorizing": "Đang ủy quyền...", @@ -107,7 +107,7 @@ "mcp.create.cardLink": "Tìm hiểu thêm về tích hợp máy chủ MCP", "mcp.create.cardTitle": "Thêm Máy chủ MCP (HTTP)", "mcp.delete": "Xóa Máy chủ MCP", - "mcp.deleteConfirmTitle": "Xóa {mcp}?", + "mcp.deleteConfirmTitle": "Xóa {{mcp}}?", "mcp.getTools": "Lấy công cụ", "mcp.gettingTools": "Đang lấy công cụ...", "mcp.identifier": "Định danh Máy chủ (Nhấn để Sao chép)", @@ -167,9 +167,9 @@ "mcp.toolItem.parameters": "Các thông số", "mcp.toolUpdateConfirmContent": "Cập nhật danh sách công cụ có thể ảnh hưởng ứng dụng hiện có. Tiếp tục?", "mcp.toolUpdateConfirmTitle": "Cập nhật Danh sách Công cụ", - "mcp.toolsCount": "{count} công cụ", + "mcp.toolsCount": "{{count}} công cụ", "mcp.toolsEmpty": "Công cụ chưa tải", - "mcp.toolsNum": "Bao gồm {count} công cụ", + "mcp.toolsNum": "Bao gồm {{count}} công cụ", "mcp.update": "Cập nhật", "mcp.updateTime": "Cập nhật", "mcp.updateTools": "Đang cập nhật công cụ...", diff --git a/web/i18n/vi-VN/workflow.json b/web/i18n/vi-VN/workflow.json index be84c42153..7972abde10 100644 --- a/web/i18n/vi-VN/workflow.json +++ b/web/i18n/vi-VN/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "Phiên bản plugin đã cài đặt không cung cấp chiến lược này. Nhấp để chuyển đổi phiên bản.", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} không được cài đặt", "nodes.agent.strategyNotSet": "Chiến lược tác nhân không được thiết lập", - "nodes.agent.toolNotAuthorizedTooltip": "{{công cụ}} Không được ủy quyền", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} Không được ủy quyền", "nodes.agent.toolNotInstallTooltip": "{{tool}} không được cài đặt", "nodes.agent.toolbox": "hộp công cụ", "nodes.agent.tools": "Công cụ", @@ -435,14 +435,14 @@ "nodes.common.pluginNotInstalled": "Plugin chưa được cài đặt", "nodes.common.retry.maxRetries": "Số lần thử lại tối đa", "nodes.common.retry.ms": "Ms", - "nodes.common.retry.retries": "{{số}} Thử lại", + "nodes.common.retry.retries": "{{num}} Thử lại", "nodes.common.retry.retry": "Thử lại", "nodes.common.retry.retryFailed": "Thử lại không thành công", - "nodes.common.retry.retryFailedTimes": "{{lần}} lần thử lại không thành công", + "nodes.common.retry.retryFailedTimes": "{{times}} lần thử lại không thành công", "nodes.common.retry.retryInterval": "Khoảng thời gian thử lại", "nodes.common.retry.retryOnFailure": "Thử lại khi không thành công", "nodes.common.retry.retrySuccessful": "Thử lại thành công", - "nodes.common.retry.retryTimes": "Thử lại {{lần}} lần khi không thành công", + "nodes.common.retry.retryTimes": "Thử lại {{times}} lần khi không thành công", "nodes.common.retry.retrying": "Thử lại...", "nodes.common.retry.times": "lần", "nodes.common.typeSwitch.input": "Giá trị đầu vào", @@ -549,8 +549,8 @@ "nodes.iteration.deleteDesc": "Xóa nút lặp sẽ xóa tất cả các nút con", "nodes.iteration.deleteTitle": "Xóa nút lặp?", "nodes.iteration.errorResponseMethod": "Phương pháp phản hồi lỗi", - "nodes.iteration.error_one": "{{đếm}} Lỗi", - "nodes.iteration.error_other": "{{đếm}} Lỗi", + "nodes.iteration.error_one": "{{count}} Lỗi", + "nodes.iteration.error_other": "{{count}} Lỗi", "nodes.iteration.flattenOutput": "Làm phẳng đầu ra", "nodes.iteration.flattenOutputDesc": "Khi bật, nếu tất cả các kết quả vòng lặp là mảng, chúng sẽ được gộp thành một mảng duy nhất. Khi tắt, các kết quả sẽ giữ nguyên cấu trúc mảng lồng nhau.", "nodes.iteration.input": "Đầu vào", diff --git a/web/i18n/zh-Hant/app.json b/web/i18n/zh-Hant/app.json index a3b89d7381..1c739320f6 100644 --- a/web/i18n/zh-Hant/app.json +++ b/web/i18n/zh-Hant/app.json @@ -83,7 +83,7 @@ "gotoAnything.emptyState.noKnowledgeBasesFound": "未找到知識庫", "gotoAnything.emptyState.noPluginsFound": "未找到外掛程式", "gotoAnything.emptyState.noWorkflowNodesFound": "未找到工作流節點", - "gotoAnything.emptyState.tryDifferentTerm": "嘗試不同的搜索詞或移除 {{mode}} 過濾器", + "gotoAnything.emptyState.tryDifferentTerm": "嘗試不同的搜索詞", "gotoAnything.emptyState.trySpecificSearch": "嘗試使用 {{shortcuts}} 進行特定搜索", "gotoAnything.groups.apps": "應用程式", "gotoAnything.groups.commands": "指令", diff --git a/web/i18n/zh-Hant/billing.json b/web/i18n/zh-Hant/billing.json index f1b7c7b549..865b44cd96 100644 --- a/web/i18n/zh-Hant/billing.json +++ b/web/i18n/zh-Hant/billing.json @@ -65,7 +65,7 @@ "plansCommon.annotatedResponse.title": "標註回覆數", "plansCommon.annotatedResponse.tooltip": "標註回覆功能透過人工編輯標註為應用提供了可定製的高品質問答回覆能力", "plansCommon.annotationQuota": "註釋配額", - "plansCommon.annualBilling": "年度計費", + "plansCommon.annualBilling": "年度計費,省 {{percent}}%", "plansCommon.apiRateLimit": "API 限速", "plansCommon.apiRateLimitTooltip": "API 使用次數限制適用於通過 Dify API 所做的所有請求,包括文本生成、聊天對話、工作流執行和文檔處理。", "plansCommon.apiRateLimitUnit": "{{count,number}} 次", @@ -91,7 +91,7 @@ "plansCommon.freeTrialTipPrefix": "註冊並獲得一個", "plansCommon.freeTrialTipSuffix": "無需信用卡", "plansCommon.getStarted": "開始使用", - "plansCommon.logsHistory": "日誌歷史", + "plansCommon.logsHistory": "{{days}} 日誌歷史", "plansCommon.member": "成員", "plansCommon.memberAfter": "個成員", "plansCommon.messageRequest.title": "訊息額度", @@ -144,7 +144,7 @@ "plansCommon.unavailable": "不可用", "plansCommon.unlimited": "無限制", "plansCommon.unlimitedApiRate": "沒有 API 速率限制", - "plansCommon.vectorSpace": "向量空間", + "plansCommon.vectorSpace": "{{size}} 向量空間", "plansCommon.vectorSpaceTooltip": "向量空間是 LLMs 理解您的資料所需的長期記憶系統。", "plansCommon.workflowExecution.faster": "更快速的工作流程執行", "plansCommon.workflowExecution.priority": "優先工作流程執行", diff --git a/web/i18n/zh-Hant/common.json b/web/i18n/zh-Hant/common.json index 52be863c6d..fadbd11466 100644 --- a/web/i18n/zh-Hant/common.json +++ b/web/i18n/zh-Hant/common.json @@ -172,7 +172,7 @@ "fileUploader.pasteFileLinkInvalid": "無效的文件連結", "fileUploader.uploadDisabled": "檔案上傳已被禁用", "fileUploader.uploadFromComputer": "本地上傳", - "fileUploader.uploadFromComputerLimit": "上傳文件不能超過 {{size}}", + "fileUploader.uploadFromComputerLimit": "上傳 {{type}} 不能超過 {{size}}", "fileUploader.uploadFromComputerReadError": "檔案讀取失敗,請重試。", "fileUploader.uploadFromComputerUploadError": "檔案上傳失敗,請重新上傳。", "imageInput.browse": "瀏覽", diff --git a/web/i18n/zh-Hant/dataset-hit-testing.json b/web/i18n/zh-Hant/dataset-hit-testing.json index 768ba7b510..f3a8f615f7 100644 --- a/web/i18n/zh-Hant/dataset-hit-testing.json +++ b/web/i18n/zh-Hant/dataset-hit-testing.json @@ -3,7 +3,7 @@ "dateTimeFormat": "YYYY-MM-DD HH:mm", "desc": "基於給定的查詢文字測試知識庫的檢索效果。", "hit.emptyTip": "檢索測試結果將展示在這裡", - "hit.title": "檢索段落", + "hit.title": "{{num}} 檢索段落", "hitChunks": "命中 {{num}} 個子區塊", "imageUploader.dropZoneTip": "將檔案拖曳到此上傳", "imageUploader.singleChunkAttachmentLimitTooltip": "單個區塊附件的數量不能超過 {{limit}}", diff --git a/web/i18n/zh-Hant/dataset-settings.json b/web/i18n/zh-Hant/dataset-settings.json index 90b5491a6d..3c4bc575a6 100644 --- a/web/i18n/zh-Hant/dataset-settings.json +++ b/web/i18n/zh-Hant/dataset-settings.json @@ -16,7 +16,7 @@ "form.indexMethod": "索引模式", "form.indexMethodChangeToEconomyDisabledTip": "不適用於從 HQ 降級到 ECO", "form.indexMethodEconomy": "經濟", - "form.indexMethodEconomyTip": "每個區塊使用 10 個關鍵字進行檢索,不會消耗 tokens,但可能會降低檢索的準確度。", + "form.indexMethodEconomyTip": "每個區塊使用 {{count}} 個關鍵字進行檢索,不會消耗 tokens,但可能會降低檢索的準確度。", "form.indexMethodHighQuality": "高品質", "form.indexMethodHighQualityTip": "使用 Embedding 模型進行處理,以在使用者查詢時提供更高的準確度。", "form.me": "(您)", diff --git a/web/i18n/zh-Hant/plugin.json b/web/i18n/zh-Hant/plugin.json index eae9f312f7..20630f41ab 100644 --- a/web/i18n/zh-Hant/plugin.json +++ b/web/i18n/zh-Hant/plugin.json @@ -81,7 +81,7 @@ "debugInfo.title": "調試", "debugInfo.viewDocs": "查看文件", "deprecated": "不推薦使用的", - "detailPanel.actionNum": "{{num}}{{作}}包括", + "detailPanel.actionNum": "{{num}} {{action}} 包括", "detailPanel.categoryTip.debugging": "調試插件", "detailPanel.categoryTip.github": "從 Github 安裝", "detailPanel.categoryTip.local": "本地插件", @@ -116,7 +116,7 @@ "detailPanel.operation.update": "更新", "detailPanel.operation.viewDetail": "查看詳情", "detailPanel.serviceOk": "服務正常", - "detailPanel.strategyNum": "{{num}}{{策略}}包括", + "detailPanel.strategyNum": "{{num}} {{strategy}} 包括", "detailPanel.switchVersion": "Switch 版本", "detailPanel.toolSelector.auto": "自動", "detailPanel.toolSelector.descriptionLabel": "工具描述", @@ -236,7 +236,7 @@ "task.installSuccess": "{{successLength}} plugins installed successfully", "task.installed": "Installed", "task.installedError": "{{errorLength}} 個插件安裝失敗", - "task.installing": "安裝 {{installingLength}} 個插件,0 個完成。", + "task.installing": "正在安裝插件。", "task.installingWithError": "安裝 {{installingLength}} 個插件,{{successLength}} 成功,{{errorLength}} 失敗", "task.installingWithSuccess": "安裝 {{installingLength}} 個插件,{{successLength}} 成功。", "task.runningPlugins": "Installing Plugins", diff --git a/web/i18n/zh-Hant/tools.json b/web/i18n/zh-Hant/tools.json index 9ac3226b29..0eded8a23e 100644 --- a/web/i18n/zh-Hant/tools.json +++ b/web/i18n/zh-Hant/tools.json @@ -99,7 +99,7 @@ "createTool.viewSchemaSpec": "檢視 OpenAPI-Swagger 規範", "customToolTip": "瞭解有關 Dify 自訂工具的更多資訊", "howToGet": "如何獲取", - "includeToolNum": "包含 {{num}} 個工具", + "includeToolNum": "包含 {{num}} {{action}}", "mcp.authorize": "授權", "mcp.authorizeTip": "授權後,這裡將顯示工具。", "mcp.authorizing": "正在授權...", diff --git a/web/i18n/zh-Hant/workflow.json b/web/i18n/zh-Hant/workflow.json index b16ba1fcd9..50260b72b6 100644 --- a/web/i18n/zh-Hant/workflow.json +++ b/web/i18n/zh-Hant/workflow.json @@ -363,7 +363,7 @@ "nodes.agent.strategyNotFoundDescAndSwitchVersion": "已安裝的插件版本不提供此策略。按兩下以切換版本。", "nodes.agent.strategyNotInstallTooltip": "{{strategy}} 未安裝", "nodes.agent.strategyNotSet": "代理策略未設置", - "nodes.agent.toolNotAuthorizedTooltip": "{{工具}}未授權", + "nodes.agent.toolNotAuthorizedTooltip": "{{tool}} 未授權", "nodes.agent.toolNotInstallTooltip": "{{tool}} 未安裝", "nodes.agent.toolbox": "工具箱", "nodes.agent.tools": "工具", From 92fc50ac576c2a5215d01f17c83181ceea1ce898 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Tue, 20 Jan 2026 21:14:50 +0800 Subject: [PATCH 03/25] chore(web): remove version prefixes from package.json (#31286) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: hyoban <38493346+hyoban@users.noreply.github.com> --- web/.npmrc | 1 + web/eslint-rules/index.js | 2 + web/eslint-rules/rules/no-version-prefix.js | 45 ++ web/eslint.config.mjs | 10 + web/package.json | 312 ++++----- web/pnpm-lock.yaml | 719 ++++++++++---------- 6 files changed, 579 insertions(+), 510 deletions(-) create mode 100644 web/.npmrc create mode 100644 web/eslint-rules/rules/no-version-prefix.js diff --git a/web/.npmrc b/web/.npmrc new file mode 100644 index 0000000000..cffe8cdef1 --- /dev/null +++ b/web/.npmrc @@ -0,0 +1 @@ +save-exact=true diff --git a/web/eslint-rules/index.js b/web/eslint-rules/index.js index 0aafbc7f2d..8eda0caaa6 100644 --- a/web/eslint-rules/index.js +++ b/web/eslint-rules/index.js @@ -2,6 +2,7 @@ import consistentPlaceholders from './rules/consistent-placeholders.js' import noAsAnyInT from './rules/no-as-any-in-t.js' import noExtraKeys from './rules/no-extra-keys.js' import noLegacyNamespacePrefix from './rules/no-legacy-namespace-prefix.js' +import noVersionPrefix from './rules/no-version-prefix.js' import requireNsOption from './rules/require-ns-option.js' import validI18nKeys from './rules/valid-i18n-keys.js' @@ -16,6 +17,7 @@ const plugin = { 'no-as-any-in-t': noAsAnyInT, 'no-extra-keys': noExtraKeys, 'no-legacy-namespace-prefix': noLegacyNamespacePrefix, + 'no-version-prefix': noVersionPrefix, 'require-ns-option': requireNsOption, 'valid-i18n-keys': validI18nKeys, }, diff --git a/web/eslint-rules/rules/no-version-prefix.js b/web/eslint-rules/rules/no-version-prefix.js new file mode 100644 index 0000000000..63dbc58d4b --- /dev/null +++ b/web/eslint-rules/rules/no-version-prefix.js @@ -0,0 +1,45 @@ +const DEPENDENCY_KEYS = ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies'] +const VERSION_PREFIXES = ['^', '~'] + +/** @type {import('eslint').Rule.RuleModule} */ +export default { + meta: { + type: 'problem', + docs: { + description: `Ensure package.json dependencies do not use version prefixes (${VERSION_PREFIXES.join(' or ')})`, + }, + fixable: 'code', + }, + create(context) { + const { filename } = context + + if (!filename.endsWith('package.json')) + return {} + + const selector = `JSONProperty:matches(${DEPENDENCY_KEYS.map(k => `[key.value="${k}"]`).join(', ')}) > JSONObjectExpression > JSONProperty` + + return { + [selector](node) { + const versionNode = node.value + + if (versionNode && versionNode.type === 'JSONLiteral' && typeof versionNode.value === 'string') { + const version = versionNode.value + const foundPrefix = VERSION_PREFIXES.find(prefix => version.startsWith(prefix)) + + if (foundPrefix) { + const packageName = node.key.value || node.key.name + const cleanVersion = version.substring(1) + const canAutoFix = /^\d+\.\d+\.\d+$/.test(cleanVersion) + context.report({ + node: versionNode, + message: `Dependency "${packageName}" has version prefix "${foundPrefix}" that should be removed (found: "${version}", expected: "${cleanVersion}")`, + fix: canAutoFix + ? fixer => fixer.replaceText(versionNode, `"${cleanVersion}"`) + : undefined, + }) + } + } + }, + } + }, +} diff --git a/web/eslint.config.mjs b/web/eslint.config.mjs index 94b47b69d0..8c1bb4afbe 100644 --- a/web/eslint.config.mjs +++ b/web/eslint.config.mjs @@ -134,4 +134,14 @@ export default antfu( 'dify-i18n/consistent-placeholders': 'error', }, }, + // package.json version prefix validation + { + files: ['**/package.json'], + plugins: { + 'dify-i18n': difyI18n, + }, + rules: { + 'dify-i18n/no-version-prefix': 'error', + }, + }, ) diff --git a/web/package.json b/web/package.json index 12e7ac3b17..2eebdc9c10 100644 --- a/web/package.json +++ b/web/package.json @@ -52,181 +52,181 @@ "knip": "knip" }, "dependencies": { - "@amplitude/analytics-browser": "^2.33.1", - "@amplitude/plugin-session-replay-browser": "^1.23.6", - "@emoji-mart/data": "^1.2.1", - "@floating-ui/react": "^0.26.28", - "@formatjs/intl-localematcher": "^0.5.10", + "@amplitude/analytics-browser": "2.33.1", + "@amplitude/plugin-session-replay-browser": "1.23.6", + "@emoji-mart/data": "1.2.1", + "@floating-ui/react": "0.26.28", + "@formatjs/intl-localematcher": "0.5.10", "@headlessui/react": "2.2.1", - "@heroicons/react": "^2.2.0", - "@lexical/code": "^0.38.2", - "@lexical/link": "^0.38.2", - "@lexical/list": "^0.38.2", - "@lexical/react": "^0.38.2", - "@lexical/selection": "^0.38.2", - "@lexical/text": "^0.38.2", - "@lexical/utils": "^0.38.2", - "@monaco-editor/react": "^4.7.0", - "@octokit/core": "^6.1.6", - "@octokit/request-error": "^6.1.8", - "@orpc/client": "^1.13.4", - "@orpc/contract": "^1.13.4", - "@orpc/openapi-client": "^1.13.4", - "@orpc/tanstack-query": "^1.13.4", - "@remixicon/react": "^4.7.0", - "@sentry/react": "^8.55.0", - "@svgdotjs/svg.js": "^3.2.5", - "@tailwindcss/typography": "^0.5.19", - "@tanstack/react-form": "^1.23.7", - "@tanstack/react-query": "^5.90.5", - "abcjs": "^6.5.2", - "ahooks": "^3.9.5", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "cmdk": "^1.1.1", - "copy-to-clipboard": "^3.3.3", - "cron-parser": "^5.4.0", - "dayjs": "^1.11.19", - "decimal.js": "^10.6.0", - "dompurify": "^3.3.0", - "echarts": "^5.6.0", - "echarts-for-react": "^3.0.5", - "elkjs": "^0.9.3", - "emoji-mart": "^5.6.0", - "es-toolkit": "^1.43.0", - "fast-deep-equal": "^3.1.3", - "html-entities": "^2.6.0", + "@heroicons/react": "2.2.0", + "@lexical/code": "0.38.2", + "@lexical/link": "0.38.2", + "@lexical/list": "0.38.2", + "@lexical/react": "0.38.2", + "@lexical/selection": "0.38.2", + "@lexical/text": "0.38.2", + "@lexical/utils": "0.38.2", + "@monaco-editor/react": "4.7.0", + "@octokit/core": "6.1.6", + "@octokit/request-error": "6.1.8", + "@orpc/client": "1.13.4", + "@orpc/contract": "1.13.4", + "@orpc/openapi-client": "1.13.4", + "@orpc/tanstack-query": "1.13.4", + "@remixicon/react": "4.7.0", + "@sentry/react": "8.55.0", + "@svgdotjs/svg.js": "3.2.5", + "@tailwindcss/typography": "0.5.19", + "@tanstack/react-form": "1.23.7", + "@tanstack/react-query": "5.90.5", + "abcjs": "6.5.2", + "ahooks": "3.9.5", + "class-variance-authority": "0.7.1", + "clsx": "2.1.1", + "cmdk": "1.1.1", + "copy-to-clipboard": "3.3.3", + "cron-parser": "5.4.0", + "dayjs": "1.11.19", + "decimal.js": "10.6.0", + "dompurify": "3.3.0", + "echarts": "5.6.0", + "echarts-for-react": "3.0.5", + "elkjs": "0.9.3", + "emoji-mart": "5.6.0", + "es-toolkit": "1.43.0", + "fast-deep-equal": "3.1.3", + "html-entities": "2.6.0", "html-to-image": "1.11.13", - "i18next": "^25.7.3", - "i18next-resources-to-backend": "^1.2.1", - "immer": "^11.1.0", - "jotai": "^2.16.1", - "js-audio-recorder": "^1.0.7", - "js-cookie": "^3.0.5", - "js-yaml": "^4.1.0", - "jsonschema": "^1.5.0", - "katex": "^0.16.25", - "ky": "^1.12.0", - "lamejs": "^1.2.1", - "lexical": "^0.38.2", - "line-clamp": "^1.0.0", - "mermaid": "~11.11.0", - "mime": "^4.1.0", - "mitt": "^3.0.1", - "negotiator": "^1.0.0", - "next": "~15.5.9", - "next-themes": "^0.4.6", - "nuqs": "^2.8.6", - "pinyin-pro": "^3.27.0", - "qrcode.react": "^4.2.0", - "qs": "^6.14.1", + "i18next": "25.7.3", + "i18next-resources-to-backend": "1.2.1", + "immer": "11.1.0", + "jotai": "2.16.1", + "js-audio-recorder": "1.0.7", + "js-cookie": "3.0.5", + "js-yaml": "4.1.0", + "jsonschema": "1.5.0", + "katex": "0.16.25", + "ky": "1.12.0", + "lamejs": "1.2.1", + "lexical": "0.38.2", + "line-clamp": "1.0.0", + "mermaid": "11.11.0", + "mime": "4.1.0", + "mitt": "3.0.1", + "negotiator": "1.0.0", + "next": "15.5.9", + "next-themes": "0.4.6", + "nuqs": "2.8.6", + "pinyin-pro": "3.27.0", + "qrcode.react": "4.2.0", + "qs": "6.14.1", "react": "19.2.3", - "react-18-input-autosize": "^3.0.0", + "react-18-input-autosize": "3.0.0", "react-dom": "19.2.3", - "react-easy-crop": "^5.5.3", - "react-hotkeys-hook": "^4.6.2", - "react-i18next": "^16.5.0", - "react-markdown": "^9.1.0", - "react-multi-email": "^1.0.25", - "react-papaparse": "^4.4.0", + "react-easy-crop": "5.5.3", + "react-hotkeys-hook": "4.6.2", + "react-i18next": "16.5.0", + "react-markdown": "9.1.0", + "react-multi-email": "1.0.25", + "react-papaparse": "4.4.0", "react-pdf-highlighter": "8.0.0-rc.0", - "react-slider": "^2.0.6", - "react-sortablejs": "^6.1.4", - "react-syntax-highlighter": "^15.6.6", - "react-textarea-autosize": "^8.5.9", - "react-window": "^1.8.11", - "reactflow": "^11.11.4", - "rehype-katex": "^7.0.1", - "rehype-raw": "^7.0.0", - "remark-breaks": "^4.0.0", - "remark-gfm": "^4.0.1", - "remark-math": "^6.0.0", - "scheduler": "^0.27.0", - "semver": "^7.7.3", - "sharp": "^0.33.5", - "sortablejs": "^1.15.6", - "string-ts": "^2.3.1", - "tailwind-merge": "^2.6.0", - "tldts": "^7.0.17", - "use-context-selector": "^2.0.0", - "uuid": "^10.0.0", - "zod": "^3.25.76", - "zundo": "^2.3.0", - "zustand": "^5.0.9" + "react-slider": "2.0.6", + "react-sortablejs": "6.1.4", + "react-syntax-highlighter": "15.6.6", + "react-textarea-autosize": "8.5.9", + "react-window": "1.8.11", + "reactflow": "11.11.4", + "rehype-katex": "7.0.1", + "rehype-raw": "7.0.0", + "remark-breaks": "4.0.0", + "remark-gfm": "4.0.1", + "remark-math": "6.0.0", + "scheduler": "0.27.0", + "semver": "7.7.3", + "sharp": "0.33.5", + "sortablejs": "1.15.6", + "string-ts": "2.3.1", + "tailwind-merge": "2.6.0", + "tldts": "7.0.17", + "use-context-selector": "2.0.0", + "uuid": "10.0.0", + "zod": "3.25.76", + "zundo": "2.3.0", + "zustand": "5.0.9" }, "devDependencies": { - "@antfu/eslint-config": "^7.0.1", - "@chromatic-com/storybook": "^4.1.1", - "@eslint-react/eslint-plugin": "^2.7.0", - "@mdx-js/loader": "^3.1.1", - "@mdx-js/react": "^3.1.1", + "@antfu/eslint-config": "7.0.1", + "@chromatic-com/storybook": "4.1.1", + "@eslint-react/eslint-plugin": "2.7.0", + "@mdx-js/loader": "3.1.1", + "@mdx-js/react": "3.1.1", "@next/bundle-analyzer": "15.5.9", "@next/eslint-plugin-next": "15.5.9", "@next/mdx": "15.5.9", - "@rgrove/parse-xml": "^4.2.0", - "@serwist/turbopack": "^9.5.0", + "@rgrove/parse-xml": "4.2.0", + "@serwist/turbopack": "9.5.0", "@storybook/addon-docs": "9.1.13", "@storybook/addon-links": "9.1.13", "@storybook/addon-onboarding": "9.1.13", "@storybook/addon-themes": "9.1.13", "@storybook/nextjs": "9.1.13", "@storybook/react": "9.1.17", - "@tanstack/eslint-plugin-query": "^5.91.2", - "@tanstack/react-devtools": "^0.9.0", - "@tanstack/react-form-devtools": "^0.2.9", - "@tanstack/react-query-devtools": "^5.90.2", - "@testing-library/dom": "^10.4.1", - "@testing-library/jest-dom": "^6.9.1", - "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@tsslint/cli": "^3.0.1", - "@tsslint/compat-eslint": "^3.0.1", - "@tsslint/config": "^3.0.1", - "@types/js-cookie": "^3.0.6", - "@types/js-yaml": "^4.0.9", - "@types/negotiator": "^0.6.4", + "@tanstack/eslint-plugin-query": "5.91.2", + "@tanstack/react-devtools": "0.9.0", + "@tanstack/react-form-devtools": "0.2.9", + "@tanstack/react-query-devtools": "5.90.2", + "@testing-library/dom": "10.4.1", + "@testing-library/jest-dom": "6.9.1", + "@testing-library/react": "16.3.0", + "@testing-library/user-event": "14.6.1", + "@tsslint/cli": "3.0.1", + "@tsslint/compat-eslint": "3.0.1", + "@tsslint/config": "3.0.1", + "@types/js-cookie": "3.0.6", + "@types/js-yaml": "4.0.9", + "@types/negotiator": "0.6.4", "@types/node": "18.15.0", - "@types/qs": "^6.14.0", - "@types/react": "~19.2.7", - "@types/react-dom": "~19.2.3", - "@types/react-slider": "^1.3.6", - "@types/react-syntax-highlighter": "^15.5.13", - "@types/react-window": "^1.8.8", - "@types/semver": "^7.7.1", - "@types/sortablejs": "^1.15.8", - "@types/uuid": "^10.0.0", - "@typescript-eslint/parser": "^8.53.0", - "@typescript/native-preview": "^7.0.0-dev", - "@vitejs/plugin-react": "^5.1.2", - "@vitest/coverage-v8": "^4.0.17", - "autoprefixer": "^10.4.21", + "@types/qs": "6.14.0", + "@types/react": "19.2.7", + "@types/react-dom": "19.2.3", + "@types/react-slider": "1.3.6", + "@types/react-syntax-highlighter": "15.5.13", + "@types/react-window": "1.8.8", + "@types/semver": "7.7.1", + "@types/sortablejs": "1.15.8", + "@types/uuid": "10.0.0", + "@typescript-eslint/parser": "8.53.0", + "@typescript/native-preview": "7.0.0-dev.20251209.1", + "@vitejs/plugin-react": "5.1.2", + "@vitest/coverage-v8": "4.0.17", + "autoprefixer": "10.4.21", "code-inspector-plugin": "1.2.9", - "cross-env": "^10.1.0", - "esbuild-wasm": "^0.27.2", - "eslint": "^9.39.2", - "eslint-plugin-react-hooks": "^7.0.1", - "eslint-plugin-react-refresh": "^0.4.26", - "eslint-plugin-sonarjs": "^3.0.5", - "eslint-plugin-storybook": "^10.1.11", - "eslint-plugin-tailwindcss": "^3.18.2", - "husky": "^9.1.7", - "jsdom": "^27.3.0", - "jsdom-testing-mocks": "^1.16.0", - "knip": "^5.78.0", - "lint-staged": "^15.5.2", - "nock": "^14.0.10", - "postcss": "^8.5.6", - "react-scan": "^0.4.3", - "sass": "^1.93.2", - "serwist": "^9.5.0", + "cross-env": "10.1.0", + "esbuild-wasm": "0.27.2", + "eslint": "9.39.2", + "eslint-plugin-react-hooks": "7.0.1", + "eslint-plugin-react-refresh": "0.4.26", + "eslint-plugin-sonarjs": "3.0.5", + "eslint-plugin-storybook": "10.1.11", + "eslint-plugin-tailwindcss": "3.18.2", + "husky": "9.1.7", + "jsdom": "27.3.0", + "jsdom-testing-mocks": "1.16.0", + "knip": "5.78.0", + "lint-staged": "15.5.2", + "nock": "14.0.10", + "postcss": "8.5.6", + "react-scan": "0.4.3", + "sass": "1.93.2", + "serwist": "9.5.0", "storybook": "9.1.17", - "tailwindcss": "^3.4.18", - "tsx": "^4.21.0", - "typescript": "^5.9.3", - "uglify-js": "^3.19.3", - "vite": "^7.3.1", - "vite-tsconfig-paths": "^6.0.4", - "vitest": "^4.0.17" + "tailwindcss": "3.4.18", + "tsx": "4.21.0", + "typescript": "5.9.3", + "uglify-js": "3.19.3", + "vite": "7.3.1", + "vite-tsconfig-paths": "6.0.4", + "vitest": "4.0.17" }, "pnpm": { "overrides": { diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 0a549f8a61..7402b65a9b 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -55,323 +55,323 @@ importers: .: dependencies: '@amplitude/analytics-browser': - specifier: ^2.33.1 + specifier: 2.33.1 version: 2.33.1 '@amplitude/plugin-session-replay-browser': - specifier: ^1.23.6 - version: 1.24.1(@amplitude/rrweb@2.0.0-alpha.33)(rollup@4.53.5) + specifier: 1.23.6 + version: 1.23.6(@amplitude/rrweb@2.0.0-alpha.33)(rollup@4.53.5) '@emoji-mart/data': - specifier: ^1.2.1 + specifier: 1.2.1 version: 1.2.1 '@floating-ui/react': - specifier: ^0.26.28 + specifier: 0.26.28 version: 0.26.28(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@formatjs/intl-localematcher': - specifier: ^0.5.10 + specifier: 0.5.10 version: 0.5.10 '@headlessui/react': specifier: 2.2.1 version: 2.2.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@heroicons/react': - specifier: ^2.2.0 + specifier: 2.2.0 version: 2.2.0(react@19.2.3) '@lexical/code': - specifier: ^0.38.2 + specifier: 0.38.2 version: 0.38.2 '@lexical/link': - specifier: ^0.38.2 + specifier: 0.38.2 version: 0.38.2 '@lexical/list': - specifier: ^0.38.2 + specifier: 0.38.2 version: 0.38.2 '@lexical/react': - specifier: ^0.38.2 + specifier: 0.38.2 version: 0.38.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(yjs@13.6.27) '@lexical/selection': - specifier: ^0.38.2 + specifier: 0.38.2 version: 0.38.2 '@lexical/text': - specifier: ^0.38.2 + specifier: 0.38.2 version: 0.38.2 '@lexical/utils': - specifier: ^0.38.2 + specifier: 0.38.2 version: 0.38.2 '@monaco-editor/react': - specifier: ^4.7.0 + specifier: 4.7.0 version: 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@octokit/core': - specifier: ^6.1.6 + specifier: 6.1.6 version: 6.1.6 '@octokit/request-error': - specifier: ^6.1.8 + specifier: 6.1.8 version: 6.1.8 '@orpc/client': - specifier: ^1.13.4 + specifier: 1.13.4 version: 1.13.4 '@orpc/contract': - specifier: ^1.13.4 + specifier: 1.13.4 version: 1.13.4 '@orpc/openapi-client': - specifier: ^1.13.4 + specifier: 1.13.4 version: 1.13.4 '@orpc/tanstack-query': - specifier: ^1.13.4 + specifier: 1.13.4 version: 1.13.4(@orpc/client@1.13.4)(@tanstack/query-core@5.90.12) '@remixicon/react': - specifier: ^4.7.0 + specifier: 4.7.0 version: 4.7.0(react@19.2.3) '@sentry/react': - specifier: ^8.55.0 + specifier: 8.55.0 version: 8.55.0(react@19.2.3) '@svgdotjs/svg.js': - specifier: ^3.2.5 + specifier: 3.2.5 version: 3.2.5 '@tailwindcss/typography': - specifier: ^0.5.19 + specifier: 0.5.19 version: 0.5.19(tailwindcss@3.4.18(tsx@4.21.0)(yaml@2.8.2)) '@tanstack/react-form': - specifier: ^1.23.7 - version: 1.27.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 1.23.7 + version: 1.23.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/react-query': - specifier: ^5.90.5 - version: 5.90.12(react@19.2.3) + specifier: 5.90.5 + version: 5.90.5(react@19.2.3) abcjs: - specifier: ^6.5.2 + specifier: 6.5.2 version: 6.5.2 ahooks: - specifier: ^3.9.5 - version: 3.9.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 3.9.5 + version: 3.9.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) class-variance-authority: - specifier: ^0.7.1 + specifier: 0.7.1 version: 0.7.1 clsx: - specifier: ^2.1.1 + specifier: 2.1.1 version: 2.1.1 cmdk: - specifier: ^1.1.1 + specifier: 1.1.1 version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) copy-to-clipboard: - specifier: ^3.3.3 + specifier: 3.3.3 version: 3.3.3 cron-parser: - specifier: ^5.4.0 + specifier: 5.4.0 version: 5.4.0 dayjs: - specifier: ^1.11.19 + specifier: 1.11.19 version: 1.11.19 decimal.js: - specifier: ^10.6.0 + specifier: 10.6.0 version: 10.6.0 dompurify: - specifier: ^3.3.0 - version: 3.3.1 + specifier: 3.3.0 + version: 3.3.0 echarts: - specifier: ^5.6.0 + specifier: 5.6.0 version: 5.6.0 echarts-for-react: - specifier: ^3.0.5 + specifier: 3.0.5 version: 3.0.5(echarts@5.6.0)(react@19.2.3) elkjs: - specifier: ^0.9.3 + specifier: 0.9.3 version: 0.9.3 emoji-mart: - specifier: ^5.6.0 + specifier: 5.6.0 version: 5.6.0 es-toolkit: - specifier: ^1.43.0 + specifier: 1.43.0 version: 1.43.0 fast-deep-equal: - specifier: ^3.1.3 + specifier: 3.1.3 version: 3.1.3 html-entities: - specifier: ^2.6.0 + specifier: 2.6.0 version: 2.6.0 html-to-image: specifier: 1.11.13 version: 1.11.13 i18next: - specifier: ^25.7.3 + specifier: 25.7.3 version: 25.7.3(typescript@5.9.3) i18next-resources-to-backend: - specifier: ^1.2.1 + specifier: 1.2.1 version: 1.2.1 immer: - specifier: ^11.1.0 + specifier: 11.1.0 version: 11.1.0 jotai: - specifier: ^2.16.1 + specifier: 2.16.1 version: 2.16.1(@babel/core@7.28.5)(@babel/template@7.27.2)(@types/react@19.2.7)(react@19.2.3) js-audio-recorder: - specifier: ^1.0.7 + specifier: 1.0.7 version: 1.0.7 js-cookie: - specifier: ^3.0.5 + specifier: 3.0.5 version: 3.0.5 js-yaml: - specifier: ^4.1.0 - version: 4.1.1 + specifier: 4.1.0 + version: 4.1.0 jsonschema: - specifier: ^1.5.0 + specifier: 1.5.0 version: 1.5.0 katex: - specifier: ^0.16.25 - version: 0.16.27 + specifier: 0.16.25 + version: 0.16.25 ky: - specifier: ^1.12.0 - version: 1.14.1 + specifier: 1.12.0 + version: 1.12.0 lamejs: - specifier: ^1.2.1 + specifier: 1.2.1 version: 1.2.1 lexical: - specifier: ^0.38.2 + specifier: 0.38.2 version: 0.38.2 line-clamp: - specifier: ^1.0.0 + specifier: 1.0.0 version: 1.0.0 mermaid: - specifier: ~11.11.0 + specifier: 11.11.0 version: 11.11.0 mime: - specifier: ^4.1.0 + specifier: 4.1.0 version: 4.1.0 mitt: - specifier: ^3.0.1 + specifier: 3.0.1 version: 3.0.1 negotiator: - specifier: ^1.0.0 + specifier: 1.0.0 version: 1.0.0 next: - specifier: ~15.5.9 - version: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0) + specifier: 15.5.9 + version: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2) next-themes: - specifier: ^0.4.6 + specifier: 0.4.6 version: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nuqs: - specifier: ^2.8.6 - version: 2.8.6(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0))(react@19.2.3) + specifier: 2.8.6 + version: 2.8.6(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2))(react@19.2.3) pinyin-pro: - specifier: ^3.27.0 + specifier: 3.27.0 version: 3.27.0 qrcode.react: - specifier: ^4.2.0 + specifier: 4.2.0 version: 4.2.0(react@19.2.3) qs: - specifier: ^6.14.1 + specifier: 6.14.1 version: 6.14.1 react: specifier: 19.2.3 version: 19.2.3 react-18-input-autosize: - specifier: ^3.0.0 + specifier: 3.0.0 version: 3.0.0(react@19.2.3) react-dom: specifier: 19.2.3 version: 19.2.3(react@19.2.3) react-easy-crop: - specifier: ^5.5.3 - version: 5.5.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 5.5.3 + version: 5.5.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react-hotkeys-hook: - specifier: ^4.6.2 + specifier: 4.6.2 version: 4.6.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react-i18next: - specifier: ^16.5.0 + specifier: 16.5.0 version: 16.5.0(i18next@25.7.3(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) react-markdown: - specifier: ^9.1.0 + specifier: 9.1.0 version: 9.1.0(@types/react@19.2.7)(react@19.2.3) react-multi-email: - specifier: ^1.0.25 + specifier: 1.0.25 version: 1.0.25(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react-papaparse: - specifier: ^4.4.0 + specifier: 4.4.0 version: 4.4.0 react-pdf-highlighter: specifier: 8.0.0-rc.0 version: 8.0.0-rc.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react-slider: - specifier: ^2.0.6 + specifier: 2.0.6 version: 2.0.6(react@19.2.3) react-sortablejs: - specifier: ^6.1.4 - version: 6.1.4(@types/sortablejs@1.15.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sortablejs@1.15.6) + specifier: 6.1.4 + version: 6.1.4(@types/sortablejs@1.15.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sortablejs@1.15.6) react-syntax-highlighter: - specifier: ^15.6.6 + specifier: 15.6.6 version: 15.6.6(react@19.2.3) react-textarea-autosize: - specifier: ^8.5.9 + specifier: 8.5.9 version: 8.5.9(@types/react@19.2.7)(react@19.2.3) react-window: - specifier: ^1.8.11 + specifier: 1.8.11 version: 1.8.11(react-dom@19.2.3(react@19.2.3))(react@19.2.3) reactflow: - specifier: ^11.11.4 + specifier: 11.11.4 version: 11.11.4(@types/react@19.2.7)(immer@11.1.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) rehype-katex: - specifier: ^7.0.1 + specifier: 7.0.1 version: 7.0.1 rehype-raw: - specifier: ^7.0.0 + specifier: 7.0.0 version: 7.0.0 remark-breaks: - specifier: ^4.0.0 + specifier: 4.0.0 version: 4.0.0 remark-gfm: - specifier: ^4.0.1 + specifier: 4.0.1 version: 4.0.1 remark-math: - specifier: ^6.0.0 + specifier: 6.0.0 version: 6.0.0 scheduler: - specifier: ^0.27.0 + specifier: 0.27.0 version: 0.27.0 semver: - specifier: ^7.7.3 + specifier: 7.7.3 version: 7.7.3 sharp: - specifier: ^0.33.5 + specifier: 0.33.5 version: 0.33.5 sortablejs: - specifier: ^1.15.6 + specifier: 1.15.6 version: 1.15.6 string-ts: - specifier: ^2.3.1 + specifier: 2.3.1 version: 2.3.1 tailwind-merge: - specifier: ^2.6.0 + specifier: 2.6.0 version: 2.6.0 tldts: - specifier: ^7.0.17 - version: 7.0.19 + specifier: 7.0.17 + version: 7.0.17 use-context-selector: - specifier: ^2.0.0 + specifier: 2.0.0 version: 2.0.0(react@19.2.3)(scheduler@0.27.0) uuid: - specifier: ^10.0.0 + specifier: 10.0.0 version: 10.0.0 zod: - specifier: ^3.25.76 + specifier: 3.25.76 version: 3.25.76 zundo: - specifier: ^2.3.0 + specifier: 2.3.0 version: 2.3.0(zustand@5.0.9(@types/react@19.2.7)(immer@11.1.0)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3))) zustand: - specifier: ^5.0.9 + specifier: 5.0.9 version: 5.0.9(@types/react@19.2.7)(immer@11.1.0)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) devDependencies: '@antfu/eslint-config': - specifier: ^7.0.1 - version: 7.0.1(@eslint-react/eslint-plugin@2.7.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(@next/eslint-plugin-next@15.5.9)(@vue/compiler-sfc@3.5.25)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.7)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.7)))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + specifier: 7.0.1 + version: 7.0.1(@eslint-react/eslint-plugin@2.7.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(@next/eslint-plugin-next@15.5.9)(@vue/compiler-sfc@3.5.25)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.7)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.7)))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@chromatic-com/storybook': - specifier: ^4.1.1 - version: 4.1.3(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + specifier: 4.1.1 + version: 4.1.1(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) '@eslint-react/eslint-plugin': - specifier: ^2.7.0 + specifier: 2.7.0 version: 2.7.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@mdx-js/loader': - specifier: ^3.1.1 + specifier: 3.1.1 version: 3.1.1(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) '@mdx-js/react': - specifier: ^3.1.1 + specifier: 3.1.1 version: 3.1.1(@types/react@19.2.7)(react@19.2.3) '@next/bundle-analyzer': specifier: 15.5.9 @@ -383,76 +383,76 @@ importers: specifier: 15.5.9 version: 15.5.9(@mdx-js/loader@3.1.1(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3)) '@rgrove/parse-xml': - specifier: ^4.2.0 + specifier: 4.2.0 version: 4.2.0 '@serwist/turbopack': - specifier: ^9.5.0 - version: 9.5.0(@swc/helpers@0.5.17)(esbuild-wasm@0.27.2)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0))(react@19.2.3)(typescript@5.9.3) + specifier: 9.5.0 + version: 9.5.0(@swc/helpers@0.5.17)(esbuild-wasm@0.27.2)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2))(react@19.2.3)(typescript@5.9.3) '@storybook/addon-docs': specifier: 9.1.13 - version: 9.1.13(@types/react@19.2.7)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + version: 9.1.13(@types/react@19.2.7)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) '@storybook/addon-links': specifier: 9.1.13 - version: 9.1.13(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + version: 9.1.13(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) '@storybook/addon-onboarding': specifier: 9.1.13 - version: 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + version: 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) '@storybook/addon-themes': specifier: 9.1.13 - version: 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + version: 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) '@storybook/nextjs': specifier: 9.1.13 - version: 9.1.13(esbuild@0.27.2)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(type-fest@4.2.0)(typescript@5.9.3)(uglify-js@3.19.3)(webpack-hot-middleware@2.26.1)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) + version: 9.1.13(esbuild@0.27.2)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(type-fest@4.2.0)(typescript@5.9.3)(uglify-js@3.19.3)(webpack-hot-middleware@2.26.1)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) '@storybook/react': specifier: 9.1.17 - version: 9.1.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3) + version: 9.1.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3) '@tanstack/eslint-plugin-query': - specifier: ^5.91.2 + specifier: 5.91.2 version: 5.91.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@tanstack/react-devtools': - specifier: ^0.9.0 + specifier: 0.9.0 version: 0.9.0(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.10) '@tanstack/react-form-devtools': - specifier: ^0.2.9 + specifier: 0.2.9 version: 0.2.9(@types/react@19.2.7)(csstype@3.2.3)(react@19.2.3)(solid-js@1.9.10) '@tanstack/react-query-devtools': - specifier: ^5.90.2 - version: 5.91.1(@tanstack/react-query@5.90.12(react@19.2.3))(react@19.2.3) + specifier: 5.90.2 + version: 5.90.2(@tanstack/react-query@5.90.5(react@19.2.3))(react@19.2.3) '@testing-library/dom': - specifier: ^10.4.1 + specifier: 10.4.1 version: 10.4.1 '@testing-library/jest-dom': - specifier: ^6.9.1 + specifier: 6.9.1 version: 6.9.1 '@testing-library/react': - specifier: ^16.3.0 + specifier: 16.3.0 version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@testing-library/user-event': - specifier: ^14.6.1 + specifier: 14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) '@tsslint/cli': - specifier: ^3.0.1 + specifier: 3.0.1 version: 3.0.1(@tsslint/compat-eslint@3.0.1(jiti@1.21.7)(typescript@5.9.3))(typescript@5.9.3) '@tsslint/compat-eslint': - specifier: ^3.0.1 + specifier: 3.0.1 version: 3.0.1(jiti@1.21.7)(typescript@5.9.3) '@tsslint/config': - specifier: ^3.0.1 + specifier: 3.0.1 version: 3.0.1(@tsslint/compat-eslint@3.0.1(jiti@1.21.7)(typescript@5.9.3))(typescript@5.9.3) '@types/js-cookie': - specifier: ^3.0.6 + specifier: 3.0.6 version: 3.0.6 '@types/js-yaml': - specifier: ^4.0.9 + specifier: 4.0.9 version: 4.0.9 '@types/negotiator': - specifier: ^0.6.4 + specifier: 0.6.4 version: 0.6.4 '@types/node': specifier: 18.15.0 version: 18.15.0 '@types/qs': - specifier: ^6.14.0 + specifier: 6.14.0 version: 6.14.0 '@types/react': specifier: ~19.2.7 @@ -461,119 +461,119 @@ importers: specifier: ~19.2.3 version: 19.2.3(@types/react@19.2.7) '@types/react-slider': - specifier: ^1.3.6 + specifier: 1.3.6 version: 1.3.6 '@types/react-syntax-highlighter': - specifier: ^15.5.13 + specifier: 15.5.13 version: 15.5.13 '@types/react-window': - specifier: ^1.8.8 + specifier: 1.8.8 version: 1.8.8 '@types/semver': - specifier: ^7.7.1 + specifier: 7.7.1 version: 7.7.1 '@types/sortablejs': - specifier: ^1.15.8 - version: 1.15.9 + specifier: 1.15.8 + version: 1.15.8 '@types/uuid': - specifier: ^10.0.0 + specifier: 10.0.0 version: 10.0.0 '@typescript-eslint/parser': - specifier: ^8.53.0 + specifier: 8.53.0 version: 8.53.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript/native-preview': - specifier: ^7.0.0-dev + specifier: 7.0.0-dev.20251209.1 version: 7.0.0-dev.20251209.1 '@vitejs/plugin-react': - specifier: ^5.1.2 - version: 5.1.2(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + specifier: 5.1.2 + version: 5.1.2(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/coverage-v8': - specifier: ^4.0.17 - version: 4.0.17(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + specifier: 4.0.17 + version: 4.0.17(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) autoprefixer: - specifier: ^10.4.21 - version: 10.4.22(postcss@8.5.6) + specifier: 10.4.21 + version: 10.4.21(postcss@8.5.6) code-inspector-plugin: specifier: 1.2.9 version: 1.2.9 cross-env: - specifier: ^10.1.0 + specifier: 10.1.0 version: 10.1.0 esbuild-wasm: - specifier: ^0.27.2 + specifier: 0.27.2 version: 0.27.2 eslint: - specifier: ^9.39.2 + specifier: 9.39.2 version: 9.39.2(jiti@1.21.7) eslint-plugin-react-hooks: - specifier: ^7.0.1 + specifier: 7.0.1 version: 7.0.1(eslint@9.39.2(jiti@1.21.7)) eslint-plugin-react-refresh: - specifier: ^0.4.26 + specifier: 0.4.26 version: 0.4.26(eslint@9.39.2(jiti@1.21.7)) eslint-plugin-sonarjs: - specifier: ^3.0.5 + specifier: 3.0.5 version: 3.0.5(eslint@9.39.2(jiti@1.21.7)) eslint-plugin-storybook: - specifier: ^10.1.11 - version: 10.1.11(eslint@9.39.2(jiti@1.21.7))(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3) + specifier: 10.1.11 + version: 10.1.11(eslint@9.39.2(jiti@1.21.7))(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3) eslint-plugin-tailwindcss: - specifier: ^3.18.2 + specifier: 3.18.2 version: 3.18.2(tailwindcss@3.4.18(tsx@4.21.0)(yaml@2.8.2)) husky: - specifier: ^9.1.7 + specifier: 9.1.7 version: 9.1.7 jsdom: - specifier: ^27.3.0 + specifier: 27.3.0 version: 27.3.0(canvas@3.2.0) jsdom-testing-mocks: - specifier: ^1.16.0 + specifier: 1.16.0 version: 1.16.0 knip: - specifier: ^5.78.0 + specifier: 5.78.0 version: 5.78.0(@types/node@18.15.0)(typescript@5.9.3) lint-staged: - specifier: ^15.5.2 + specifier: 15.5.2 version: 15.5.2 nock: - specifier: ^14.0.10 + specifier: 14.0.10 version: 14.0.10 postcss: - specifier: ^8.5.6 + specifier: 8.5.6 version: 8.5.6 react-scan: - specifier: ^0.4.3 - version: 0.4.3(@types/react@19.2.7)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.53.5) + specifier: 0.4.3 + version: 0.4.3(@types/react@19.2.7)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.53.5) sass: - specifier: ^1.93.2 - version: 1.95.0 + specifier: 1.93.2 + version: 1.93.2 serwist: - specifier: ^9.5.0 + specifier: 9.5.0 version: 9.5.0(typescript@5.9.3) storybook: specifier: 9.1.17 - version: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) tailwindcss: - specifier: ^3.4.18 + specifier: 3.4.18 version: 3.4.18(tsx@4.21.0)(yaml@2.8.2) tsx: - specifier: ^4.21.0 + specifier: 4.21.0 version: 4.21.0 typescript: - specifier: ^5.9.3 + specifier: 5.9.3 version: 5.9.3 uglify-js: - specifier: ^3.19.3 + specifier: 3.19.3 version: 3.19.3 vite: - specifier: ^7.3.1 - version: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + specifier: 7.3.1 + version: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vite-tsconfig-paths: - specifier: ^6.0.4 - version: 6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + specifier: 6.0.4 + version: 6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) vitest: - specifier: ^4.0.17 - version: 4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + specifier: 4.0.17 + version: 4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages: @@ -620,8 +620,8 @@ packages: '@amplitude/plugin-page-view-tracking-browser@2.6.6': resolution: {integrity: sha512-dBcJlrdKgPzSgS3exDRRrMLqhIaOjwlIy7o8sEMn1PpMawERlbumSSdtfII6L4L67HYUPo4PY4Kp4acqSzaLvQ==} - '@amplitude/plugin-session-replay-browser@1.24.1': - resolution: {integrity: sha512-NHePIu2Yv9ba+fOt5N33b8FFQPzyKvjs1BnWBgBCM5RECos3w6n/+zUWTnTJ4at2ipO2lz111abKDteUwbuptg==} + '@amplitude/plugin-session-replay-browser@1.23.6': + resolution: {integrity: sha512-MPUVbN/tBTHvqKujqIlzd5mq5d3kpovC/XEVw80dgWUYwOwU7+39vKGc2NZV8iGi3kOtOzm2XTlcGOS2Gtjw3Q==} '@amplitude/plugin-web-vitals-browser@1.1.4': resolution: {integrity: sha512-XQXI9OjTNSz2yi0lXw2VYMensDzzSkMCfvXNniTb1LgnHwBcQ1JWPcTqHLPFrvvNckeIdOT78vjs7yA+c1FyzA==} @@ -658,8 +658,8 @@ packages: '@amplitude/rrweb@2.0.0-alpha.33': resolution: {integrity: sha512-vMuk/3HzDWaUzBLFxKd7IpA8TEWjyPZBuLiLexMd/mOfTt/+JkVLsfXiJOyltJfR98LpmMTp1q51dtq357Dnfg==} - '@amplitude/session-replay-browser@1.30.0': - resolution: {integrity: sha512-mLNJ5UEDuY91zRmqPiJcORMmaYkfrKjLzu52DsD/EaB+rKAxSuZbUlXlFjeaaCrNLWWV2ywn5y3Tl2xX0cQNzQ==} + '@amplitude/session-replay-browser@1.29.8': + resolution: {integrity: sha512-f/j1+xUxqK7ewz0OM04Q0m2N4Q+miCOfANe9jb9NAGfZdBu8IfNYswfjPiHdv0+ffXl5UovuyLhl1nV/znIZqA==} '@amplitude/targeting@0.2.0': resolution: {integrity: sha512-/50ywTrC4hfcfJVBbh5DFbqMPPfaIOivZeb5Gb+OGM03QrA+lsUqdvtnKLNuWtceD4H6QQ2KFzPJ5aAJLyzVDA==} @@ -1330,11 +1330,11 @@ packages: '@chevrotain/utils@11.0.3': resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} - '@chromatic-com/storybook@4.1.3': - resolution: {integrity: sha512-hc0HO9GAV9pxqDE6fTVOV5KeLpTiCfV8Jrpk5ogKLiIgeq2C+NPjpt74YnrZTjiK8E19fYcMP+2WY9ZtX7zHmw==} + '@chromatic-com/storybook@4.1.1': + resolution: {integrity: sha512-+Ib4cHtEjKl/Do+4LyU0U1FhLPbIU2Q/zgbOKHBCV+dTC4T3/vGzPqiGsgkdnZyTsK/zXg96LMPSPC4jjOiapg==} engines: {node: '>=20.0.0', yarn: '>=1.22.18'} peerDependencies: - storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 || ^9.2.0-0 || ^10.0.0-0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 + storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 || ^9.2.0-0 || ^10.0.0-0 '@clack/core@0.3.5': resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} @@ -3394,8 +3394,8 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@tanstack/form-core@1.27.1': - resolution: {integrity: sha512-hPM+0tUnZ2C2zb2TE1lar1JJ0S0cbnQHlUwFcCnVBpMV3rjtUzkoM766gUpWrlmTGCzNad0GbJ0aTxVsjT6J8g==} + '@tanstack/form-core@1.24.3': + resolution: {integrity: sha512-e+HzSD49NWr4aIqJWtPPzmi+/phBJAP3nSPN8dvxwmJWqAxuB/cH138EcmCFf3+oA7j3BXvwvTY0I+8UweGPjQ==} '@tanstack/form-core@1.27.6': resolution: {integrity: sha512-1C4PUpOcCpivddKxtAeqdeqncxnPKiPpTVDRknDExCba+6zCsAjxgL+p3qYA3hu+EFyUAdW71rU+uqYbEa7qqA==} @@ -3409,15 +3409,14 @@ packages: resolution: {integrity: sha512-y/xtNPNt/YeyoVxE/JCx+T7yjEzpezmbb+toK8DDD1P4m7Kzs5YR956+7OKexG3f8aXgC3rLZl7b1V+yNUSy5w==} engines: {node: '>=18'} - '@tanstack/pacer@0.15.4': - resolution: {integrity: sha512-vGY+CWsFZeac3dELgB6UZ4c7OacwsLb8hvL2gLS6hTgy8Fl0Bm/aLokHaeDIP+q9F9HUZTnp360z9uv78eg8pg==} - engines: {node: '>=18'} - '@tanstack/query-core@5.90.12': resolution: {integrity: sha512-T1/8t5DhV/SisWjDnaiU2drl6ySvsHj1bHBCWNXd+/T+Hh1cf6JodyEYMd5sgwm+b/mETT4EV3H+zCVczCU5hg==} - '@tanstack/query-devtools@5.91.1': - resolution: {integrity: sha512-l8bxjk6BMsCaVQH6NzQEE/bEgFy1hAs5qbgXl0xhzezlaQbPk6Mgz9BqEg2vTLPOHD8N4k+w/gdgCbEzecGyNg==} + '@tanstack/query-core@5.90.5': + resolution: {integrity: sha512-wLamYp7FaDq6ZnNehypKI5fNvxHPfTYylE0m/ZpuuzJfJqhR5Pxg9gvGBHZx4n7J+V5Rg5mZxHHTlv25Zt5u+w==} + + '@tanstack/query-devtools@5.90.1': + resolution: {integrity: sha512-GtINOPjPUH0OegJExZ70UahT9ykmAhmtNVcmtdnOZbxLwT7R5OmRztR5Ahe3/Cu7LArEmR6/588tAycuaWb1xQ==} '@tanstack/react-devtools@0.9.0': resolution: {integrity: sha512-Lq0svXOTG5N61SHgx8F0on6zz2GB0kmFjN/yyfNLrJyRgJ+U3jYFRd9ti3uBPABsXzHQMHYYujnTXrOYp/OaUg==} @@ -3433,28 +3432,28 @@ packages: peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/react-form@1.27.1': - resolution: {integrity: sha512-HKP0Ew2ae9AL5vU1PkJ+oAC2p+xBtA905u0fiNLzlfn1vLkBxenfg5L6TOA+rZITHpQsSo10tqwc5Yw6qn8Mpg==} + '@tanstack/react-form@1.23.7': + resolution: {integrity: sha512-p/j9Gi2+s135sOjj48RjM+6xZQr1FVpliQlETLYBEGmmmxWHgYYs2b62mTDSnuv7AqtuZhpQ+t0CRFVfbQLsFA==} peerDependencies: - '@tanstack/react-start': '*' + '@tanstack/react-start': ^1.130.10 react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@tanstack/react-start': optional: true - '@tanstack/react-query-devtools@5.91.1': - resolution: {integrity: sha512-tRnJYwEbH0kAOuToy8Ew7bJw1lX3AjkkgSlf/vzb+NpnqmHPdWM+lA2DSdGQSLi1SU0PDRrrCI1vnZnci96CsQ==} + '@tanstack/react-query-devtools@5.90.2': + resolution: {integrity: sha512-vAXJzZuBXtCQtrY3F/yUNJCV4obT/A/n81kb3+YqLbro5Z2+phdAbceO+deU3ywPw8B42oyJlp4FhO0SoivDFQ==} peerDependencies: - '@tanstack/react-query': ^5.90.10 + '@tanstack/react-query': ^5.90.2 react: ^18 || ^19 - '@tanstack/react-query@5.90.12': - resolution: {integrity: sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg==} + '@tanstack/react-query@5.90.5': + resolution: {integrity: sha512-pN+8UWpxZkEJ/Rnnj2v2Sxpx1WFlaa9L6a4UO89p6tTQbeo+m0MS8oYDjbggrR8QcTyjKoYWKS3xJQGr3ExT8Q==} peerDependencies: react: ^18 || ^19 - '@tanstack/react-store@0.8.0': - resolution: {integrity: sha512-1vG9beLIuB7q69skxK9r5xiLN3ztzIPfSQSs0GfeqWGO2tGIyInZx0x1COhpx97RKaONSoAb8C3dxacWksm1ow==} + '@tanstack/react-store@0.7.7': + resolution: {integrity: sha512-qqT0ufegFRDGSof9D/VqaZgjNgp4tRPHZIJq2+QIHkMUtHjaJ0lYrrXjeIUJvjnTbgPfSD1XgOMEt0lmANn6Zg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -3468,9 +3467,6 @@ packages: '@tanstack/store@0.7.7': resolution: {integrity: sha512-xa6pTan1bcaqYDS9BDpSiS63qa6EoDkPN9RsRaxHuDdVDNntzq3xNwR5YKTU/V3SkSyC9T4YVOPh2zRQN0nhIQ==} - '@tanstack/store@0.8.0': - resolution: {integrity: sha512-Om+BO0YfMZe//X2z0uLF2j+75nQga6TpTJgLJQBiq85aOyZNIhkCgleNcud2KQg4k4v9Y9l+Uhru3qWMPGTOzQ==} - '@tanstack/virtual-core@3.13.13': resolution: {integrity: sha512-uQFoSdKKf5S8k51W5t7b2qpfkyIbdHMzAn+AMQvHPxKUPeo1SsGaA4JRISQT87jm28b7z8OEqPcg1IOZagQHcA==} @@ -3750,8 +3746,8 @@ packages: '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - '@types/sortablejs@1.15.9': - resolution: {integrity: sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==} + '@types/sortablejs@1.15.8': + resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -4068,8 +4064,9 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ahooks@3.9.6: - resolution: {integrity: sha512-Mr7f05swd5SmKlR9SZo5U6M0LsL4ErweLzpdgXjA1JPmnZ78Vr6wzx0jUtvoxrcqGKYnX0Yjc02iEASVxHFPjQ==} + ahooks@3.9.5: + resolution: {integrity: sha512-TrjXie49Q8HuHKTa84Fm9A+famMDAG1+7a9S9Gq6RQ0h90Jgqmiq3CkObuRjWT/C4d6nRZCw35Y2k2fmybb5eA==} + engines: {node: '>=18'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -4185,8 +4182,8 @@ packages: async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - autoprefixer@10.4.22: - resolution: {integrity: sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==} + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -4429,8 +4426,8 @@ packages: chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - chromatic@13.3.4: - resolution: {integrity: sha512-TR5rvyH0ESXobBB3bV8jc87AEAFQC7/n+Eb4XWhJz6hW3YNxIQPVjcbgLv+a4oKHEl1dUBueWSoIQsOVGTd+RQ==} + chromatic@12.2.0: + resolution: {integrity: sha512-GswmBW9ZptAoTns1BMyjbm55Z7EsIJnUvYKdQqXIBZIKbGErmpA+p4c0BYA+nzw5B0M+rb3Iqp1IaH8TFwIQew==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -4860,6 +4857,9 @@ packages: decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + decode-formdata@0.9.0: + resolution: {integrity: sha512-q5uwOjR3Um5YD+ZWPOF/1sGHVW9A5rCrRwITQChRXlmPkxDFBqCm4jNTIVdGHNH9OnR+V9MoZVgRhsFb+ARbUw==} + decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} @@ -4911,6 +4911,9 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + devalue@5.6.2: + resolution: {integrity: sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -4957,8 +4960,8 @@ packages: dompurify@3.2.7: resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} - dompurify@3.3.1: - resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} + dompurify@3.3.0: + resolution: {integrity: sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==} domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} @@ -5548,8 +5551,8 @@ packages: engines: {node: '>=18.3.0'} hasBin: true - fraction.js@5.3.4: - resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} @@ -6063,6 +6066,10 @@ packages: js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true @@ -6130,8 +6137,8 @@ packages: resolution: {integrity: sha512-eQQBjBnsVtGacsG9uJNB8qOr3yA8rga4wAaGG1qRcBzSIvfhERLrWxMAM1hp5fcS6Abo8M4+bUBTekYR0qTPQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - katex@0.16.27: - resolution: {integrity: sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==} + katex@0.16.25: + resolution: {integrity: sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==} hasBin: true keyv@4.5.4: @@ -6155,8 +6162,8 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - ky@1.14.1: - resolution: {integrity: sha512-hYje4L9JCmpEQBtudo+v52X5X8tgWXUYyPcxKSuxQNboqufecl9VMWjGiucAFH060AwPXHZuH+WB2rrqfkmafw==} + ky@1.12.0: + resolution: {integrity: sha512-YRLmSUHCwOJRBMArtqMRLOmO7fewn3yOoui6aB8ERkRVXupa0UiaQaKbIXteMt4jUElhbdqTMsLFHs8APxxUoQ==} engines: {node: '>=18'} lamejs@1.2.1: @@ -7190,8 +7197,8 @@ packages: react: '>= 16.3.0' react-dom: '>= 16.3.0' - react-easy-crop@5.5.6: - resolution: {integrity: sha512-Jw3/ozs8uXj3NpL511Suc4AHY+mLRO23rUgipXvNYKqezcFSYHxe4QXibBymkOoY6oOtLVMPO2HNPRHYvMPyTw==} + react-easy-crop@5.5.3: + resolution: {integrity: sha512-iKwFTnAsq+IVuyF6N0Q3zjRx9DG1NMySkwWxVfM/xAOeHYH1vhvM+V2kFiq5HOIQGWouITjfltCx54mbDpMpmA==} peerDependencies: react: '>=16.4.0' react-dom: '>=16.4.0' @@ -7570,8 +7577,8 @@ packages: webpack: optional: true - sass@1.95.0: - resolution: {integrity: sha512-9QMjhLq+UkOg/4bb8Lt8A+hJZvY3t+9xeZMKSBtBEgxrXA3ed5Ts4NDreUkYgJP1BTmrscQE/xYhf7iShow6lw==} + sass@1.93.2: + resolution: {integrity: sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==} engines: {node: '>=14.0.0'} hasBin: true @@ -7977,8 +7984,8 @@ packages: tldts-core@7.0.19: resolution: {integrity: sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==} - tldts@7.0.19: - resolution: {integrity: sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==} + tldts@7.0.17: + resolution: {integrity: sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==} hasBin: true to-buffer@1.2.2: @@ -8695,12 +8702,12 @@ snapshots: '@amplitude/analytics-core': 2.35.0 tslib: 2.8.1 - '@amplitude/plugin-session-replay-browser@1.24.1(@amplitude/rrweb@2.0.0-alpha.33)(rollup@4.53.5)': + '@amplitude/plugin-session-replay-browser@1.23.6(@amplitude/rrweb@2.0.0-alpha.33)(rollup@4.53.5)': dependencies: '@amplitude/analytics-client-common': 2.4.16 '@amplitude/analytics-core': 2.33.0 '@amplitude/analytics-types': 2.11.0 - '@amplitude/session-replay-browser': 1.30.0(@amplitude/rrweb@2.0.0-alpha.33)(rollup@4.53.5) + '@amplitude/session-replay-browser': 1.29.8(@amplitude/rrweb@2.0.0-alpha.33)(rollup@4.53.5) idb-keyval: 6.2.2 tslib: 2.8.1 transitivePeerDependencies: @@ -8754,7 +8761,7 @@ snapshots: base64-arraybuffer: 1.0.2 mitt: 3.0.1 - '@amplitude/session-replay-browser@1.30.0(@amplitude/rrweb@2.0.0-alpha.33)(rollup@4.53.5)': + '@amplitude/session-replay-browser@1.29.8(@amplitude/rrweb@2.0.0-alpha.33)(rollup@4.53.5)': dependencies: '@amplitude/analytics-client-common': 2.4.16 '@amplitude/analytics-core': 2.33.0 @@ -8781,7 +8788,7 @@ snapshots: idb: 8.0.3 tslib: 2.8.1 - '@antfu/eslint-config@7.0.1(@eslint-react/eslint-plugin@2.7.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(@next/eslint-plugin-next@15.5.9)(@vue/compiler-sfc@3.5.25)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.7)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.7)))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@antfu/eslint-config@7.0.1(@eslint-react/eslint-plugin@2.7.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(@next/eslint-plugin-next@15.5.9)(@vue/compiler-sfc@3.5.25)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.7)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.7)))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 0.11.0 @@ -8790,7 +8797,7 @@ snapshots: '@stylistic/eslint-plugin': 5.7.0(eslint@9.39.2(jiti@1.21.7)) '@typescript-eslint/eslint-plugin': 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/parser': 8.53.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) - '@vitest/eslint-plugin': 1.6.6(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/eslint-plugin': 1.6.6(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) ansis: 4.2.0 cac: 6.7.14 eslint: 9.39.2(jiti@1.21.7) @@ -9635,13 +9642,13 @@ snapshots: '@chevrotain/utils@11.0.3': {} - '@chromatic-com/storybook@4.1.3(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': + '@chromatic-com/storybook@4.1.1(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: '@neoconfetti/react': 1.0.0 - chromatic: 13.3.4 + chromatic: 12.2.0 filesize: 10.1.6 jsonfile: 6.2.0 - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) strip-ansi: 7.1.2 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -11351,7 +11358,7 @@ snapshots: optionalDependencies: typescript: 5.9.3 - '@serwist/turbopack@9.5.0(@swc/helpers@0.5.17)(esbuild-wasm@0.27.2)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0))(react@19.2.3)(typescript@5.9.3)': + '@serwist/turbopack@9.5.0(@swc/helpers@0.5.17)(esbuild-wasm@0.27.2)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2))(react@19.2.3)(typescript@5.9.3)': dependencies: '@serwist/build': 9.5.0(typescript@5.9.3) '@serwist/utils': 9.5.0 @@ -11359,7 +11366,7 @@ snapshots: '@swc/core': 1.15.8(@swc/helpers@0.5.17) esbuild-wasm: 0.27.2 kolorist: 1.8.0 - next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0) + next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2) react: 19.2.3 semver: 7.7.3 serwist: 9.5.0(typescript@5.9.3) @@ -11418,38 +11425,38 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@storybook/addon-docs@9.1.13(@types/react@19.2.7)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': + '@storybook/addon-docs@9.1.13(@types/react@19.2.7)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.3) - '@storybook/csf-plugin': 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + '@storybook/csf-plugin': 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) '@storybook/icons': 1.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@storybook/react-dom-shim': 9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + '@storybook/react-dom-shim': 9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-links@9.1.13(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': + '@storybook/addon-links@9.1.13(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: '@storybook/global': 5.0.0 - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) optionalDependencies: react: 19.2.3 - '@storybook/addon-onboarding@9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': + '@storybook/addon-onboarding@9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) - '@storybook/addon-themes@9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': + '@storybook/addon-themes@9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) ts-dedent: 2.2.0 - '@storybook/builder-webpack5@9.1.13(esbuild@0.27.2)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)(uglify-js@3.19.3)': + '@storybook/builder-webpack5@9.1.13(esbuild@0.27.2)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)(uglify-js@3.19.3)': dependencies: - '@storybook/core-webpack': 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + '@storybook/core-webpack': 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 css-loader: 6.11.0(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) @@ -11457,7 +11464,7 @@ snapshots: fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.9.3)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) html-webpack-plugin: 5.6.5(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) magic-string: 0.30.21 - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) style-loader: 3.3.4(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) terser-webpack-plugin: 5.3.15(esbuild@0.27.2)(uglify-js@3.19.3)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) ts-dedent: 2.2.0 @@ -11474,14 +11481,14 @@ snapshots: - uglify-js - webpack-cli - '@storybook/core-webpack@9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': + '@storybook/core-webpack@9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) ts-dedent: 2.2.0 - '@storybook/csf-plugin@9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': + '@storybook/csf-plugin@9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) unplugin: 1.16.1 '@storybook/global@5.0.0': {} @@ -11491,7 +11498,7 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@storybook/nextjs@9.1.13(esbuild@0.27.2)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(type-fest@4.2.0)(typescript@5.9.3)(uglify-js@3.19.3)(webpack-hot-middleware@2.26.1)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3))': + '@storybook/nextjs@9.1.13(esbuild@0.27.2)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(type-fest@4.2.0)(typescript@5.9.3)(uglify-js@3.19.3)(webpack-hot-middleware@2.26.1)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) @@ -11507,15 +11514,15 @@ snapshots: '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) '@babel/runtime': 7.28.4 '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(react-refresh@0.14.2)(type-fest@4.2.0)(webpack-hot-middleware@2.26.1)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) - '@storybook/builder-webpack5': 9.1.13(esbuild@0.27.2)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)(uglify-js@3.19.3) - '@storybook/preset-react-webpack': 9.1.13(esbuild@0.27.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)(uglify-js@3.19.3) - '@storybook/react': 9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3) + '@storybook/builder-webpack5': 9.1.13(esbuild@0.27.2)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)(uglify-js@3.19.3) + '@storybook/preset-react-webpack': 9.1.13(esbuild@0.27.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)(uglify-js@3.19.3) + '@storybook/react': 9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3) '@types/semver': 7.7.1 babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) css-loader: 6.11.0(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) image-size: 2.0.2 loader-utils: 3.3.1 - next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0) + next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2) node-polyfill-webpack-plugin: 2.0.1(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) postcss: 8.5.6 postcss-loader: 8.2.0(postcss@8.5.6)(typescript@5.9.3)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) @@ -11523,9 +11530,9 @@ snapshots: react-dom: 19.2.3(react@19.2.3) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 16.0.6(sass@1.95.0)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) + sass-loader: 16.0.6(sass@1.93.2)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) semver: 7.7.3 - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) style-loader: 3.3.4(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) styled-jsx: 5.1.7(@babel/core@7.28.5)(react@19.2.3) tsconfig-paths: 4.2.0 @@ -11551,9 +11558,9 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@9.1.13(esbuild@0.27.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)(uglify-js@3.19.3)': + '@storybook/preset-react-webpack@9.1.13(esbuild@0.27.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)(uglify-js@3.19.3)': dependencies: - '@storybook/core-webpack': 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + '@storybook/core-webpack': 9.1.13(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)) '@types/semver': 7.7.1 find-up: 7.0.0 @@ -11563,7 +11570,7 @@ snapshots: react-dom: 19.2.3(react@19.2.3) resolve: 1.22.11 semver: 7.7.3 - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) tsconfig-paths: 4.2.0 webpack: 5.103.0(esbuild@0.27.2)(uglify-js@3.19.3) optionalDependencies: @@ -11589,35 +11596,35 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': + '@storybook/react-dom-shim@9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) - '@storybook/react-dom-shim@9.1.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': + '@storybook/react-dom-shim@9.1.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) - '@storybook/react@9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)': + '@storybook/react@9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + '@storybook/react-dom-shim': 9.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) optionalDependencies: typescript: 5.9.3 - '@storybook/react@9.1.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)': + '@storybook/react@9.1.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.1.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) + '@storybook/react-dom-shim': 9.1.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) optionalDependencies: typescript: 5.9.3 @@ -11756,10 +11763,9 @@ snapshots: - supports-color - typescript - '@tanstack/form-core@1.27.1': + '@tanstack/form-core@1.24.3': dependencies: '@tanstack/devtools-event-client': 0.3.5 - '@tanstack/pacer': 0.15.4 '@tanstack/store': 0.7.7 '@tanstack/form-core@1.27.6': @@ -11785,14 +11791,11 @@ snapshots: '@tanstack/pacer-lite@0.1.1': {} - '@tanstack/pacer@0.15.4': - dependencies: - '@tanstack/devtools-event-client': 0.3.5 - '@tanstack/store': 0.7.7 - '@tanstack/query-core@5.90.12': {} - '@tanstack/query-devtools@5.91.1': {} + '@tanstack/query-core@5.90.5': {} + + '@tanstack/query-devtools@5.90.1': {} '@tanstack/react-devtools@0.9.0(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.10)': dependencies: @@ -11818,28 +11821,30 @@ snapshots: - solid-js - vue - '@tanstack/react-form@1.27.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tanstack/react-form@1.23.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@tanstack/form-core': 1.27.1 - '@tanstack/react-store': 0.8.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@tanstack/form-core': 1.24.3 + '@tanstack/react-store': 0.7.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + decode-formdata: 0.9.0 + devalue: 5.6.2 react: 19.2.3 transitivePeerDependencies: - react-dom - '@tanstack/react-query-devtools@5.91.1(@tanstack/react-query@5.90.12(react@19.2.3))(react@19.2.3)': + '@tanstack/react-query-devtools@5.90.2(@tanstack/react-query@5.90.5(react@19.2.3))(react@19.2.3)': dependencies: - '@tanstack/query-devtools': 5.91.1 - '@tanstack/react-query': 5.90.12(react@19.2.3) + '@tanstack/query-devtools': 5.90.1 + '@tanstack/react-query': 5.90.5(react@19.2.3) react: 19.2.3 - '@tanstack/react-query@5.90.12(react@19.2.3)': + '@tanstack/react-query@5.90.5(react@19.2.3)': dependencies: - '@tanstack/query-core': 5.90.12 + '@tanstack/query-core': 5.90.5 react: 19.2.3 - '@tanstack/react-store@0.8.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tanstack/react-store@0.7.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@tanstack/store': 0.8.0 + '@tanstack/store': 0.7.7 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) use-sync-external-store: 1.6.0(react@19.2.3) @@ -11852,8 +11857,6 @@ snapshots: '@tanstack/store@0.7.7': {} - '@tanstack/store@0.8.0': {} - '@tanstack/virtual-core@3.13.13': {} '@testing-library/dom@10.4.1': @@ -12179,7 +12182,7 @@ snapshots: '@types/semver@7.7.1': {} - '@types/sortablejs@1.15.9': {} + '@types/sortablejs@1.15.8': {} '@types/trusted-types@2.0.7': {} @@ -12330,7 +12333,7 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react@5.1.2(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@5.1.2(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -12338,11 +12341,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.53 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.0.17(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/coverage-v8@4.0.17(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.17 @@ -12354,16 +12357,16 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/eslint-plugin@1.6.6(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/eslint-plugin@1.6.6(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)(vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@typescript-eslint/scope-manager': 8.53.0 '@typescript-eslint/utils': 8.53.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) eslint: 9.39.2(jiti@1.21.7) optionalDependencies: typescript: 5.9.3 - vitest: 4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -12384,21 +12387,21 @@ snapshots: chai: 6.2.1 tinyrainbow: 3.0.3 - '@vitest/mocker@3.2.4(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@3.2.4(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@4.0.17(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.17(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.0.17 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@3.2.4': dependencies: @@ -12591,7 +12594,7 @@ snapshots: agent-base@7.1.4: {} - ahooks@3.9.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + ahooks@3.9.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@babel/runtime': 7.28.4 '@types/js-cookie': 3.0.6 @@ -12700,11 +12703,11 @@ snapshots: async@3.2.6: {} - autoprefixer@10.4.22(postcss@8.5.6): + autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.28.1 caniuse-lite: 1.0.30001760 - fraction.js: 5.3.4 + fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 postcss: 8.5.6 @@ -12970,7 +12973,7 @@ snapshots: chownr@1.1.4: optional: true - chromatic@13.3.4: {} + chromatic@12.2.0: {} chrome-trace-event@1.0.4: {} @@ -13127,7 +13130,7 @@ snapshots: dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: typescript: 5.9.3 @@ -13432,6 +13435,8 @@ snapshots: decimal.js@10.6.0: {} + decode-formdata@0.9.0: {} + decode-named-character-reference@1.2.0: dependencies: character-entities: 2.0.2 @@ -13472,6 +13477,8 @@ snapshots: detect-node-es@1.1.0: {} + devalue@5.6.2: {} + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -13518,7 +13525,7 @@ snapshots: optionalDependencies: '@types/trusted-types': 2.0.7 - dompurify@3.3.1: + dompurify@3.3.0: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -13923,11 +13930,11 @@ snapshots: semver: 7.7.2 typescript: 5.9.3 - eslint-plugin-storybook@10.1.11(eslint@9.39.2(jiti@1.21.7))(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3): + eslint-plugin-storybook@10.1.11(eslint@9.39.2(jiti@1.21.7))(storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(typescript@5.9.3): dependencies: '@typescript-eslint/utils': 8.53.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) eslint: 9.39.2(jiti@1.21.7) - storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + storybook: 9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) transitivePeerDependencies: - supports-color - typescript @@ -14344,7 +14351,7 @@ snapshots: dependencies: fd-package-json: 2.0.0 - fraction.js@5.3.4: {} + fraction.js@4.3.7: {} fs-constants@1.0.0: optional: true @@ -14881,6 +14888,10 @@ snapshots: js-tokens@9.0.1: {} + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -14956,7 +14967,7 @@ snapshots: jsx-ast-utils-x@0.1.0: {} - katex@0.16.27: + katex@0.16.25: dependencies: commander: 8.3.0 @@ -14987,7 +14998,7 @@ snapshots: kolorist@1.8.0: {} - ky@1.14.1: {} + ky@1.12.0: {} lamejs@1.2.1: dependencies: @@ -15374,8 +15385,8 @@ snapshots: d3-sankey: 0.12.3 dagre-d3-es: 7.0.11 dayjs: 1.11.19 - dompurify: 3.3.1 - katex: 0.16.27 + dompurify: 3.3.0 + katex: 0.16.25 khroma: 2.1.0 lodash-es: 4.17.21 marked: 15.0.12 @@ -15472,7 +15483,7 @@ snapshots: dependencies: '@types/katex': 0.16.7 devlop: 1.1.0 - katex: 0.16.27 + katex: 0.16.25 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 @@ -15759,7 +15770,7 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0): + next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2): dependencies: '@next/env': 15.5.9 '@swc/helpers': 0.5.15 @@ -15778,7 +15789,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.5.7 '@next/swc-win32-x64-msvc': 15.5.7 '@playwright/test': 1.57.0 - sass: 1.95.0 + sass: 1.93.2 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' @@ -15850,12 +15861,12 @@ snapshots: dependencies: boolbase: 1.0.0 - nuqs@2.8.6(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0))(react@19.2.3): + nuqs@2.8.6(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2))(react@19.2.3): dependencies: '@standard-schema/spec': 1.0.0 react: 19.2.3 optionalDependencies: - next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0) + next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2) object-assign@4.1.1: {} @@ -16364,7 +16375,7 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - react-easy-crop@5.5.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-easy-crop@5.5.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: normalize-wheel: 1.0.1 react: 19.2.3 @@ -16465,7 +16476,7 @@ snapshots: react-draggable: 4.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tslib: 2.6.2 - react-scan@0.4.3(@types/react@19.2.7)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.53.5): + react-scan@0.4.3(@types/react@19.2.7)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.53.5): dependencies: '@babel/core': 7.28.5 '@babel/generator': 7.28.5 @@ -16487,7 +16498,7 @@ snapshots: react-dom: 19.2.3(react@19.2.3) tsx: 4.21.0 optionalDependencies: - next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.95.0) + next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.93.2) unplugin: 2.1.0 transitivePeerDependencies: - '@types/react' @@ -16499,9 +16510,9 @@ snapshots: prop-types: 15.8.1 react: 19.2.3 - react-sortablejs@6.1.4(@types/sortablejs@1.15.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sortablejs@1.15.6): + react-sortablejs@6.1.4(@types/sortablejs@1.15.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sortablejs@1.15.6): dependencies: - '@types/sortablejs': 1.15.9 + '@types/sortablejs': 1.15.8 classnames: 2.3.1 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -16680,7 +16691,7 @@ snapshots: '@types/katex': 0.16.7 hast-util-from-html-isomorphic: 2.0.0 hast-util-to-text: 4.0.2 - katex: 0.16.27 + katex: 0.16.25 unist-util-visit-parents: 6.0.2 vfile: 6.0.3 @@ -16860,14 +16871,14 @@ snapshots: safe-buffer@5.2.1: {} - sass-loader@16.0.6(sass@1.95.0)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)): + sass-loader@16.0.6(sass@1.93.2)(webpack@5.103.0(esbuild@0.27.2)(uglify-js@3.19.3)): dependencies: neo-async: 2.6.2 optionalDependencies: - sass: 1.95.0 + sass: 1.93.2 webpack: 5.103.0(esbuild@0.27.2)(uglify-js@3.19.3) - sass@1.95.0: + sass@1.93.2: dependencies: chokidar: 4.0.3 immutable: 5.1.4 @@ -17081,13 +17092,13 @@ snapshots: std-env@3.10.0: {} - storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): + storybook@9.1.17(@testing-library/dom@10.4.1)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: '@storybook/global': 5.0.0 '@testing-library/jest-dom': 6.9.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 3.2.4(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/spy': 3.2.4 better-opn: 3.0.2 esbuild: 0.27.2 @@ -17324,7 +17335,7 @@ snapshots: tldts-core@7.0.19: {} - tldts@7.0.19: + tldts@7.0.17: dependencies: tldts-core: 7.0.19 @@ -17353,7 +17364,7 @@ snapshots: tough-cookie@6.0.0: dependencies: - tldts: 7.0.19 + tldts: 7.0.17 tr46@1.0.1: dependencies: @@ -17608,18 +17619,18 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-tsconfig-paths@6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): + vite-tsconfig-paths@6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - typescript - vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -17631,15 +17642,15 @@ snapshots: '@types/node': 18.15.0 fsevents: 2.3.3 jiti: 1.21.7 - sass: 1.95.0 + sass: 1.93.2 terser: 5.44.1 tsx: 4.21.0 yaml: 2.8.2 - vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.17(@types/node@18.15.0)(happy-dom@20.0.11)(jiti@1.21.7)(jsdom@27.3.0(canvas@3.2.0))(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.17 - '@vitest/mocker': 4.0.17(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 4.0.17(vite@7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 4.0.17 '@vitest/runner': 4.0.17 '@vitest/snapshot': 4.0.17 @@ -17656,7 +17667,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.95.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@18.15.0)(jiti@1.21.7)(sass@1.93.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 18.15.0 From c9519d2f0e72dad93e823be036d8d00d24debbf4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jan 2026 21:27:15 +0800 Subject: [PATCH 04/25] chore(deps): bump js-yaml from 4.1.0 to 4.1.1 in /web (#31297) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package.json | 2 +- web/pnpm-lock.yaml | 44 +++++++++++++++++++++++++++++++------------- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/web/package.json b/web/package.json index 2eebdc9c10..dd7d67109b 100644 --- a/web/package.json +++ b/web/package.json @@ -103,7 +103,7 @@ "jotai": "2.16.1", "js-audio-recorder": "1.0.7", "js-cookie": "3.0.5", - "js-yaml": "4.1.0", + "js-yaml": "4.1.1", "jsonschema": "1.5.0", "katex": "0.16.25", "ky": "1.12.0", diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 7402b65a9b..29b32f52e1 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -208,8 +208,8 @@ importers: specifier: 3.0.5 version: 3.0.5 js-yaml: - specifier: 4.1.0 - version: 4.1.0 + specifier: 4.1.1 + version: 4.1.1 jsonschema: specifier: 1.5.0 version: 1.5.0 @@ -839,6 +839,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.6': + resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} engines: {node: '>=6.9.0'} @@ -1308,6 +1313,10 @@ packages: resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.6': + resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -3709,6 +3718,9 @@ packages: '@types/node@20.19.28': resolution: {integrity: sha512-VyKBr25BuFDzBFCK5sUM6ZXiWfqgCTwTAOK8qzGV/m9FCirXYDlmczJ+d5dXBAQALGCdRRdbteKYfJ84NGEusw==} + '@types/node@20.19.30': + resolution: {integrity: sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==} + '@types/papaparse@5.5.1': resolution: {integrity: sha512-esEO+VISsLIyE+JZBmb89NzsYYbpwV8lmv2rPo6oX5y9KhBaIP7hhHgjuTut54qjdKVMufTEcrh5fUl9+58huw==} @@ -6066,10 +6078,6 @@ packages: js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true @@ -9020,6 +9028,10 @@ snapshots: dependencies: '@babel/types': 7.28.5 + '@babel/parser@7.28.6': + dependencies: + '@babel/types': 7.28.6 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -9621,6 +9633,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@7.28.6': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@bcoe/v8-coverage@1.0.2': {} '@braintree/sanitize-url@7.1.1': {} @@ -12146,6 +12163,11 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@20.19.30': + dependencies: + undici-types: 6.21.0 + optional: true + '@types/papaparse@5.5.1': dependencies: '@types/node': 18.15.0 @@ -12468,7 +12490,7 @@ snapshots: '@vue/compiler-sfc@3.5.25': dependencies: - '@babel/parser': 7.28.5 + '@babel/parser': 7.28.6 '@vue/compiler-core': 3.5.25 '@vue/compiler-dom': 3.5.25 '@vue/compiler-ssr': 3.5.25 @@ -13130,7 +13152,7 @@ snapshots: dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: typescript: 5.9.3 @@ -14445,7 +14467,7 @@ snapshots: happy-dom@20.0.11: dependencies: - '@types/node': 20.19.28 + '@types/node': 20.19.30 '@types/whatwg-mimetype': 3.0.2 whatwg-mimetype: 3.0.0 optional: true @@ -14888,10 +14910,6 @@ snapshots: js-tokens@9.0.1: {} - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - js-yaml@4.1.1: dependencies: argparse: 2.0.1 From 8f949d503a9f491b6b406b5ce4e61178614586f5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Jan 2026 21:40:43 +0800 Subject: [PATCH 05/25] chore(i18n): sync translations with en-US (#31298) Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.5 Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com> --- web/i18n/ar-TN/common.json | 2 ++ web/i18n/ar-TN/dataset-documents.json | 1 + web/i18n/ar-TN/dataset.json | 1 + web/i18n/de-DE/common.json | 2 ++ web/i18n/de-DE/dataset-documents.json | 1 + web/i18n/de-DE/dataset.json | 1 + web/i18n/es-ES/common.json | 2 ++ web/i18n/es-ES/dataset-documents.json | 1 + web/i18n/es-ES/dataset.json | 1 + web/i18n/fa-IR/common.json | 2 ++ web/i18n/fa-IR/dataset-documents.json | 1 + web/i18n/fa-IR/dataset.json | 1 + web/i18n/fr-FR/common.json | 2 ++ web/i18n/fr-FR/dataset-documents.json | 1 + web/i18n/fr-FR/dataset.json | 3 ++- web/i18n/hi-IN/common.json | 2 ++ web/i18n/hi-IN/dataset-documents.json | 1 + web/i18n/hi-IN/dataset.json | 1 + web/i18n/id-ID/common.json | 2 ++ web/i18n/id-ID/dataset-documents.json | 1 + web/i18n/id-ID/dataset.json | 1 + web/i18n/it-IT/common.json | 2 ++ web/i18n/it-IT/dataset-documents.json | 1 + web/i18n/it-IT/dataset.json | 1 + web/i18n/ja-JP/common.json | 2 ++ web/i18n/ja-JP/dataset-documents.json | 1 + web/i18n/ja-JP/dataset.json | 1 + web/i18n/ko-KR/common.json | 2 ++ web/i18n/ko-KR/dataset-documents.json | 1 + web/i18n/ko-KR/dataset.json | 1 + web/i18n/pl-PL/common.json | 2 ++ web/i18n/pl-PL/dataset-documents.json | 1 + web/i18n/pl-PL/dataset.json | 1 + web/i18n/pt-BR/common.json | 2 ++ web/i18n/pt-BR/dataset-documents.json | 1 + web/i18n/pt-BR/dataset.json | 1 + web/i18n/ro-RO/common.json | 2 ++ web/i18n/ro-RO/dataset-documents.json | 1 + web/i18n/ro-RO/dataset.json | 1 + web/i18n/ru-RU/common.json | 2 ++ web/i18n/ru-RU/dataset-documents.json | 1 + web/i18n/ru-RU/dataset.json | 1 + web/i18n/sl-SI/common.json | 2 ++ web/i18n/sl-SI/dataset-documents.json | 1 + web/i18n/sl-SI/dataset.json | 1 + web/i18n/th-TH/common.json | 2 ++ web/i18n/th-TH/dataset-documents.json | 1 + web/i18n/th-TH/dataset.json | 1 + web/i18n/tr-TR/common.json | 2 ++ web/i18n/tr-TR/dataset-documents.json | 1 + web/i18n/tr-TR/dataset.json | 1 + web/i18n/uk-UA/common.json | 2 ++ web/i18n/uk-UA/dataset-documents.json | 1 + web/i18n/uk-UA/dataset.json | 1 + web/i18n/vi-VN/common.json | 2 ++ web/i18n/vi-VN/dataset-documents.json | 1 + web/i18n/vi-VN/dataset.json | 1 + web/i18n/zh-Hans/common.json | 1 + web/i18n/zh-Hans/dataset-documents.json | 1 + web/i18n/zh-Hans/dataset.json | 1 + web/i18n/zh-Hant/common.json | 2 ++ web/i18n/zh-Hant/dataset-documents.json | 1 + web/i18n/zh-Hant/dataset.json | 1 + 63 files changed, 84 insertions(+), 1 deletion(-) diff --git a/web/i18n/ar-TN/common.json b/web/i18n/ar-TN/common.json index 998466c649..a938665654 100644 --- a/web/i18n/ar-TN/common.json +++ b/web/i18n/ar-TN/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "اسم مساحة العمل", "account.workspaceNamePlaceholder": "أدخل اسم مساحة العمل", "actionMsg.copySuccessfully": "تم النسخ بنجاح", + "actionMsg.downloadUnsuccessfully": "فشل التنزيل. يرجى المحاولة مرة أخرى لاحقًا.", "actionMsg.generatedSuccessfully": "تم الإنشاء بنجاح", "actionMsg.generatedUnsuccessfully": "فشل الإنشاء", "actionMsg.modifiedSuccessfully": "تم التعديل بنجاح", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "توفر ملحقات API إدارة مركزية لواجهة برمجة التطبيقات، مما يبسط التكوين لسهولة الاستخدام عبر تطبيقات Dify.", "apiBasedExtension.type": "النوع", "appMenus.apiAccess": "وصول API", + "appMenus.apiAccessTip": "يمكن الوصول إلى قاعدة المعرفة هذه عبر واجهة برمجة تطبيقات الخدمة", "appMenus.logAndAnn": "السجلات والتعليقات التوضيحية", "appMenus.logs": "السجلات", "appMenus.overview": "المراقبة", diff --git a/web/i18n/ar-TN/dataset-documents.json b/web/i18n/ar-TN/dataset-documents.json index acfbdd78e6..68369c153a 100644 --- a/web/i18n/ar-TN/dataset-documents.json +++ b/web/i18n/ar-TN/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "أرشيف", "list.action.batchAdd": "إضافة دفعة", "list.action.delete": "حذف", + "list.action.download": "تحميل", "list.action.enableWarning": "لا يمكن تمكين الملف المؤرشف", "list.action.pause": "إيقاف مؤقت", "list.action.resume": "استئناف", diff --git a/web/i18n/ar-TN/dataset.json b/web/i18n/ar-TN/dataset.json index 5b395b91ec..06f2ebd351 100644 --- a/web/i18n/ar-TN/dataset.json +++ b/web/i18n/ar-TN/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "إلغاء", "batchAction.delete": "حذف", "batchAction.disable": "تعطيل", + "batchAction.download": "تحميل", "batchAction.enable": "تمكين", "batchAction.reIndex": "إعادة الفهرسة", "batchAction.selected": "محدد", diff --git a/web/i18n/de-DE/common.json b/web/i18n/de-DE/common.json index 81b88fb27f..cd4ae2dbfb 100644 --- a/web/i18n/de-DE/common.json +++ b/web/i18n/de-DE/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Arbeitsbereichsname", "account.workspaceNamePlaceholder": "Arbeitsbereichnamen eingeben", "actionMsg.copySuccessfully": "Erfolgreich kopiert", + "actionMsg.downloadUnsuccessfully": "Download fehlgeschlagen. Bitte versuchen Sie es später erneut.", "actionMsg.generatedSuccessfully": "Erfolgreich generiert", "actionMsg.generatedUnsuccessfully": "Generierung nicht erfolgreich", "actionMsg.modifiedSuccessfully": "Erfolgreich geändert", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "API-Erweiterungen bieten zentralisiertes API-Management und vereinfachen die Konfiguration für eine einfache Verwendung in Difys Anwendungen.", "apiBasedExtension.type": "Typ", "appMenus.apiAccess": "API-Zugriff", + "appMenus.apiAccessTip": "Diese Wissensdatenbank ist über die Service-API zugänglich", "appMenus.logAndAnn": "Protokolle & Ank.", "appMenus.logs": "Baumstämme", "appMenus.overview": "Übersicht", diff --git a/web/i18n/de-DE/dataset-documents.json b/web/i18n/de-DE/dataset-documents.json index f6f6d6de7c..b636e58dd3 100644 --- a/web/i18n/de-DE/dataset-documents.json +++ b/web/i18n/de-DE/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Archivieren", "list.action.batchAdd": "Batch hinzufügen", "list.action.delete": "Löschen", + "list.action.download": "Herunterladen", "list.action.enableWarning": "Archivierte Datei kann nicht aktiviert werden", "list.action.pause": "Pause", "list.action.resume": "Fortsetzen", diff --git a/web/i18n/de-DE/dataset.json b/web/i18n/de-DE/dataset.json index 8ff3ed4bc6..f2bbea8b83 100644 --- a/web/i18n/de-DE/dataset.json +++ b/web/i18n/de-DE/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Abbrechen", "batchAction.delete": "Löschen", "batchAction.disable": "Abschalten", + "batchAction.download": "Herunterladen", "batchAction.enable": "Ermöglichen", "batchAction.reIndex": "Neu indexieren", "batchAction.selected": "Ausgewählt", diff --git a/web/i18n/es-ES/common.json b/web/i18n/es-ES/common.json index fb0b3ddae4..58277f7d7b 100644 --- a/web/i18n/es-ES/common.json +++ b/web/i18n/es-ES/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Nombre del espacio de trabajo", "account.workspaceNamePlaceholder": "Ingrese el nombre del espacio de trabajo", "actionMsg.copySuccessfully": "Copiado exitosamente", + "actionMsg.downloadUnsuccessfully": "Descarga fallida. Por favor, inténtelo de nuevo más tarde.", "actionMsg.generatedSuccessfully": "Generado exitosamente", "actionMsg.generatedUnsuccessfully": "Generación no exitosa", "actionMsg.modifiedSuccessfully": "Modificado exitosamente", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "Las extensiones basadas en API proporcionan una gestión centralizada de API, simplificando la configuración para su fácil uso en las aplicaciones de Dify.", "apiBasedExtension.type": "Tipo", "appMenus.apiAccess": "Acceso API", + "appMenus.apiAccessTip": "Esta base de conocimiento es accesible a través de la API de servicio", "appMenus.logAndAnn": "Registros y Anuncios", "appMenus.logs": "Registros", "appMenus.overview": "Monitoreo", diff --git a/web/i18n/es-ES/dataset-documents.json b/web/i18n/es-ES/dataset-documents.json index 3ab3f6c6b6..8ab1dbb30c 100644 --- a/web/i18n/es-ES/dataset-documents.json +++ b/web/i18n/es-ES/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Archivar", "list.action.batchAdd": "Agregar en lotes", "list.action.delete": "Eliminar", + "list.action.download": "Descargar", "list.action.enableWarning": "El archivo archivado no puede habilitarse", "list.action.pause": "Pausa", "list.action.resume": "Reanudar", diff --git a/web/i18n/es-ES/dataset.json b/web/i18n/es-ES/dataset.json index 42123d4071..37eef1cad9 100644 --- a/web/i18n/es-ES/dataset.json +++ b/web/i18n/es-ES/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Cancelar", "batchAction.delete": "Borrar", "batchAction.disable": "Inutilizar", + "batchAction.download": "Descargar", "batchAction.enable": "Habilitar", "batchAction.reIndex": "Reindexar", "batchAction.selected": "Seleccionado", diff --git a/web/i18n/fa-IR/common.json b/web/i18n/fa-IR/common.json index c2254a1275..5a9d9b8542 100644 --- a/web/i18n/fa-IR/common.json +++ b/web/i18n/fa-IR/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "نام فضای کاری", "account.workspaceNamePlaceholder": "نام فضای کاری را وارد کنید", "actionMsg.copySuccessfully": "با موفقیت کپی شد", + "actionMsg.downloadUnsuccessfully": "دانلود ناموفق بود. لطفاً بعداً دوباره امتحان کنید.", "actionMsg.generatedSuccessfully": "با موفقیت تولید شد", "actionMsg.generatedUnsuccessfully": "تولید ناموفق بود", "actionMsg.modifiedSuccessfully": "با موفقیت تغییر یافت", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "افزونه‌های مبتنی بر API مدیریت متمرکز API را فراهم می‌کنند و پیکربندی را برای استفاده آسان در برنامه‌های Dify ساده می‌کنند.", "apiBasedExtension.type": "نوع", "appMenus.apiAccess": "دسترسی API", + "appMenus.apiAccessTip": "این پایگاه دانش از طریق API سرویس قابل دسترسی است", "appMenus.logAndAnn": "گزارش‌ها و اعلانات", "appMenus.logs": "گزارش‌ها", "appMenus.overview": "نظارت", diff --git a/web/i18n/fa-IR/dataset-documents.json b/web/i18n/fa-IR/dataset-documents.json index 600fa4af77..d2a8835ee7 100644 --- a/web/i18n/fa-IR/dataset-documents.json +++ b/web/i18n/fa-IR/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "بایگانی", "list.action.batchAdd": "افزودن گروهی", "list.action.delete": "حذف", + "list.action.download": "دانلود", "list.action.enableWarning": "فایل بایگانی شده نمی‌تواند فعال شود", "list.action.pause": "مکث", "list.action.resume": "ادامه", diff --git a/web/i18n/fa-IR/dataset.json b/web/i18n/fa-IR/dataset.json index e547447eb1..6ee81ed3c2 100644 --- a/web/i18n/fa-IR/dataset.json +++ b/web/i18n/fa-IR/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "لغو", "batchAction.delete": "حذف", "batchAction.disable": "غیر فعال کردن", + "batchAction.download": "دانلود", "batchAction.enable": "فعال", "batchAction.reIndex": "بازفهرست‌گذاری", "batchAction.selected": "انتخاب", diff --git a/web/i18n/fr-FR/common.json b/web/i18n/fr-FR/common.json index bf4fa73b0b..60e9f3306b 100644 --- a/web/i18n/fr-FR/common.json +++ b/web/i18n/fr-FR/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Nom de l'espace de travail", "account.workspaceNamePlaceholder": "Entrez le nom de l'espace de travail", "actionMsg.copySuccessfully": "Copié avec succès", + "actionMsg.downloadUnsuccessfully": "Échec du téléchargement. Veuillez réessayer plus tard.", "actionMsg.generatedSuccessfully": "Généré avec succès", "actionMsg.generatedUnsuccessfully": "Généré sans succès", "actionMsg.modifiedSuccessfully": "Modifié avec succès", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "Les extensions API fournissent une gestion centralisée des API, simplifiant la configuration pour une utilisation facile à travers les applications de Dify.", "apiBasedExtension.type": "Tapez", "appMenus.apiAccess": "Accès API", + "appMenus.apiAccessTip": "Cette base de connaissances est accessible via l'API de service", "appMenus.logAndAnn": "Journaux & Annonces.", "appMenus.logs": "Journaux", "appMenus.overview": "Surveillance", diff --git a/web/i18n/fr-FR/dataset-documents.json b/web/i18n/fr-FR/dataset-documents.json index b333e156b1..bd26c3fc31 100644 --- a/web/i18n/fr-FR/dataset-documents.json +++ b/web/i18n/fr-FR/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Archive", "list.action.batchAdd": "Ajout en lot", "list.action.delete": "Supprimer", + "list.action.download": "Télécharger", "list.action.enableWarning": "Le fichier archivé ne peut pas être activé", "list.action.pause": "Pause", "list.action.resume": "Reprendre", diff --git a/web/i18n/fr-FR/dataset.json b/web/i18n/fr-FR/dataset.json index 2296899ccd..43d5d9183c 100644 --- a/web/i18n/fr-FR/dataset.json +++ b/web/i18n/fr-FR/dataset.json @@ -1,5 +1,5 @@ { - "allExternalTip": "Lorsqu’il utilise uniquement des connaissances externes, l’utilisateur peut choisir d’activer ou non le modèle Rerank. S’il n’est pas activé, les morceaux récupérés seront triés en fonction des scores. Lorsque les stratégies de récupération des différentes bases de connaissances sont incohérentes, elles seront inexactes.", + "allExternalTip": "Lorsqu'il utilise uniquement des connaissances externes, l'utilisateur peut choisir d'activer ou non le modèle Rerank. S'il n'est pas activé, les morceaux récupérés seront triés en fonction des scores. Lorsque les stratégies de récupération des différentes bases de connaissances sont incohérentes, elles seront inexactes.", "allKnowledge": "Toutes les connaissances", "allKnowledgeDescription": "Sélectionnez cette option pour afficher toutes les connaissances dans cet espace de travail. Seul le propriétaire de l’espace de travail peut gérer toutes les connaissances.", "appCount": " applications liées", @@ -7,6 +7,7 @@ "batchAction.cancel": "Annuler", "batchAction.delete": "Supprimer", "batchAction.disable": "Désactiver", + "batchAction.download": "Télécharger", "batchAction.enable": "Activer", "batchAction.reIndex": "Réindexer", "batchAction.selected": "Sélectionné", diff --git a/web/i18n/hi-IN/common.json b/web/i18n/hi-IN/common.json index 8289bb7332..8617ead178 100644 --- a/web/i18n/hi-IN/common.json +++ b/web/i18n/hi-IN/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "कार्यस्थल का नाम", "account.workspaceNamePlaceholder": "वर्कस्पेस का नाम दर्ज करें", "actionMsg.copySuccessfully": "सफलतापूर्वक कॉपी किया गया", + "actionMsg.downloadUnsuccessfully": "डाउनलोड विफल रहा। कृपया बाद में पुनः प्रयास करें।", "actionMsg.generatedSuccessfully": "सफलतापूर्वक उत्पन्न हुआ", "actionMsg.generatedUnsuccessfully": "उत्पन्न असफल रहा", "actionMsg.modifiedSuccessfully": "सफलतापूर्वक संशोधित किया गया", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "एपीआई एक्सटेंशन केंद्रीकृत एपीआई प्रबंधन प्रदान करते हैं, जो Dify के अनुप्रयोगों में आसान उपयोग के लिए कॉन्फ़िगरेशन को सरल बनाते हैं।", "apiBasedExtension.type": "प्रकार", "appMenus.apiAccess": "API एक्सेस", + "appMenus.apiAccessTip": "यह ज्ञान आधार सेवा API के माध्यम से सुलभ है", "appMenus.logAndAnn": "लॉग्स और घोषणाएँ", "appMenus.logs": "लॉग्स", "appMenus.overview": "निगरानी", diff --git a/web/i18n/hi-IN/dataset-documents.json b/web/i18n/hi-IN/dataset-documents.json index 20a85cc1f5..5f9758f4c2 100644 --- a/web/i18n/hi-IN/dataset-documents.json +++ b/web/i18n/hi-IN/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "संग्रहीत करें", "list.action.batchAdd": "बैच में जोड़ें", "list.action.delete": "हटाएँ", + "list.action.download": "डाउनलोड करें", "list.action.enableWarning": "संग्रहित फाइल को सक्रिय नहीं किया जा सकता", "list.action.pause": "रोकें", "list.action.resume": "रिज़्यूमे", diff --git a/web/i18n/hi-IN/dataset.json b/web/i18n/hi-IN/dataset.json index 3b6278a74f..76ee532c25 100644 --- a/web/i18n/hi-IN/dataset.json +++ b/web/i18n/hi-IN/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "रद्द करना", "batchAction.delete": "मिटाना", "batchAction.disable": "अक्षम", + "batchAction.download": "डाउनलोड करें", "batchAction.enable": "योग्य बनाना", "batchAction.reIndex": "पुनः अनुक्रमित करें", "batchAction.selected": "चयनित", diff --git a/web/i18n/id-ID/common.json b/web/i18n/id-ID/common.json index 541ee74b10..1300c4cf8a 100644 --- a/web/i18n/id-ID/common.json +++ b/web/i18n/id-ID/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Nama Ruang Kerja", "account.workspaceNamePlaceholder": "Masukkan nama ruang kerja", "actionMsg.copySuccessfully": "Berhasil disalin", + "actionMsg.downloadUnsuccessfully": "Unduhan gagal. Silakan coba lagi nanti.", "actionMsg.generatedSuccessfully": "Berhasil dihasilkan", "actionMsg.generatedUnsuccessfully": "Dihasilkan tidak berhasil", "actionMsg.modifiedSuccessfully": "Berhasil dimodifikasi", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "Ekstensi API menyediakan manajemen API terpusat, menyederhanakan konfigurasi agar mudah digunakan di seluruh aplikasi Dify.", "apiBasedExtension.type": "Jenis", "appMenus.apiAccess": "Akses API", + "appMenus.apiAccessTip": "Basis pengetahuan ini dapat diakses melalui API layanan", "appMenus.logAndAnn": "Log & Anotasi", "appMenus.logs": "Log", "appMenus.overview": "Pemantauan", diff --git a/web/i18n/id-ID/dataset-documents.json b/web/i18n/id-ID/dataset-documents.json index 4c5db3dbdc..df894c1891 100644 --- a/web/i18n/id-ID/dataset-documents.json +++ b/web/i18n/id-ID/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Mengarsipkan", "list.action.batchAdd": "Tambahkan batch", "list.action.delete": "Menghapus", + "list.action.download": "Unduh", "list.action.enableWarning": "File yang diarsipkan tidak dapat diaktifkan", "list.action.pause": "Jeda", "list.action.resume": "Melanjutkan", diff --git a/web/i18n/id-ID/dataset.json b/web/i18n/id-ID/dataset.json index de5ba65e82..ca0f57fb65 100644 --- a/web/i18n/id-ID/dataset.json +++ b/web/i18n/id-ID/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Membatalkan", "batchAction.delete": "Menghapus", "batchAction.disable": "Menonaktifkan", + "batchAction.download": "Unduh", "batchAction.enable": "Mengaktifkan", "batchAction.reIndex": "Indeks ulang", "batchAction.selected": "Dipilih", diff --git a/web/i18n/it-IT/common.json b/web/i18n/it-IT/common.json index 75f57424ac..12b9028de7 100644 --- a/web/i18n/it-IT/common.json +++ b/web/i18n/it-IT/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Nome del Workspace", "account.workspaceNamePlaceholder": "Inserisci il nome dello spazio di lavoro", "actionMsg.copySuccessfully": "Copiato con successo", + "actionMsg.downloadUnsuccessfully": "Download fallito. Riprova più tardi.", "actionMsg.generatedSuccessfully": "Generato con successo", "actionMsg.generatedUnsuccessfully": "Generazione non riuscita", "actionMsg.modifiedSuccessfully": "Modificato con successo", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "Le estensioni API forniscono una gestione centralizzata delle API, semplificando la configurazione per un facile utilizzo nelle applicazioni di Dify.", "apiBasedExtension.type": "Tipo", "appMenus.apiAccess": "Accesso API", + "appMenus.apiAccessTip": "Questa base di conoscenza è accessibile tramite l'API del servizio", "appMenus.logAndAnn": "Log & Ann.", "appMenus.logs": "Log", "appMenus.overview": "Monitoraggio", diff --git a/web/i18n/it-IT/dataset-documents.json b/web/i18n/it-IT/dataset-documents.json index 700e5a5254..1c8e4df53d 100644 --- a/web/i18n/it-IT/dataset-documents.json +++ b/web/i18n/it-IT/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Archivia", "list.action.batchAdd": "Aggiungi in batch", "list.action.delete": "Elimina", + "list.action.download": "Scarica", "list.action.enableWarning": "Il file archiviato non può essere abilitato", "list.action.pause": "Pausa", "list.action.resume": "Riprendi", diff --git a/web/i18n/it-IT/dataset.json b/web/i18n/it-IT/dataset.json index c1896a89c2..5eefa55fe7 100644 --- a/web/i18n/it-IT/dataset.json +++ b/web/i18n/it-IT/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Annulla", "batchAction.delete": "Cancellare", "batchAction.disable": "Disabilitare", + "batchAction.download": "Scarica", "batchAction.enable": "Abilitare", "batchAction.reIndex": "Reindicizza", "batchAction.selected": "Selezionato", diff --git a/web/i18n/ja-JP/common.json b/web/i18n/ja-JP/common.json index 1b6ae48115..ffc2d0bd31 100644 --- a/web/i18n/ja-JP/common.json +++ b/web/i18n/ja-JP/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "ワークスペース名", "account.workspaceNamePlaceholder": "ワークスペース名を入力", "actionMsg.copySuccessfully": "コピーが正常に行われました", + "actionMsg.downloadUnsuccessfully": "ダウンロードに失敗しました。後でもう一度お試しください。", "actionMsg.generatedSuccessfully": "生成が成功しました", "actionMsg.generatedUnsuccessfully": "生成が失敗しました", "actionMsg.modifiedSuccessfully": "変更が正常に行われました", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "API 拡張機能は、Dify のアプリケーション全体での簡単な使用のための設定を簡素化し、集中的な API 管理を提供します。", "apiBasedExtension.type": "タイプ", "appMenus.apiAccess": "API アクセス", + "appMenus.apiAccessTip": "このナレッジベースはサービスAPIを介してアクセス可能です", "appMenus.logAndAnn": "ログ&注釈", "appMenus.logs": "ログ", "appMenus.overview": "監視", diff --git a/web/i18n/ja-JP/dataset-documents.json b/web/i18n/ja-JP/dataset-documents.json index 9fa6f6da68..7f5a04679f 100644 --- a/web/i18n/ja-JP/dataset-documents.json +++ b/web/i18n/ja-JP/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "アーカイブ", "list.action.batchAdd": "一括追加", "list.action.delete": "削除", + "list.action.download": "ダウンロード", "list.action.enableWarning": "アーカイブされたファイルは有効にできません", "list.action.pause": "一時停止", "list.action.resume": "再開", diff --git a/web/i18n/ja-JP/dataset.json b/web/i18n/ja-JP/dataset.json index 3500bec3ae..d6b22f22df 100644 --- a/web/i18n/ja-JP/dataset.json +++ b/web/i18n/ja-JP/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "キャンセル", "batchAction.delete": "削除", "batchAction.disable": "無効にする", + "batchAction.download": "ダウンロード", "batchAction.enable": "有効にする", "batchAction.reIndex": "再インデックス", "batchAction.selected": "選択済み", diff --git a/web/i18n/ko-KR/common.json b/web/i18n/ko-KR/common.json index e77dc0c684..55082c3161 100644 --- a/web/i18n/ko-KR/common.json +++ b/web/i18n/ko-KR/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "작업 공간 이름", "account.workspaceNamePlaceholder": "워크스페이스 이름 입력", "actionMsg.copySuccessfully": "복사가 성공적으로 이루어졌습니다", + "actionMsg.downloadUnsuccessfully": "다운로드에 실패했습니다. 나중에 다시 시도하세요.", "actionMsg.generatedSuccessfully": "생성이 성공적으로 이루어졌습니다", "actionMsg.generatedUnsuccessfully": "생성에 실패했습니다", "actionMsg.modifiedSuccessfully": "변경이 성공적으로 이루어졌습니다", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "API 기반 확장은 Dify 애플리케이션 전체에서 간편한 사용을 위한 설정을 단순화하고 집중적인 API 관리를 제공합니다.", "apiBasedExtension.type": "유형", "appMenus.apiAccess": "API 액세스", + "appMenus.apiAccessTip": "이 지식 베이스는 서비스 API를 통해 액세스할 수 있습니다", "appMenus.logAndAnn": "로그 및 어노테이션", "appMenus.logs": "로그", "appMenus.overview": "모니터링", diff --git a/web/i18n/ko-KR/dataset-documents.json b/web/i18n/ko-KR/dataset-documents.json index f0261f53a2..f2484bcf11 100644 --- a/web/i18n/ko-KR/dataset-documents.json +++ b/web/i18n/ko-KR/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "아카이브", "list.action.batchAdd": "일괄 추가", "list.action.delete": "삭제", + "list.action.download": "다운로드", "list.action.enableWarning": "아카이브된 파일은 활성화할 수 없습니다.", "list.action.pause": "일시 중지", "list.action.resume": "재개", diff --git a/web/i18n/ko-KR/dataset.json b/web/i18n/ko-KR/dataset.json index 92d4834cb5..5b294e7795 100644 --- a/web/i18n/ko-KR/dataset.json +++ b/web/i18n/ko-KR/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "취소", "batchAction.delete": "삭제", "batchAction.disable": "비활성화", + "batchAction.download": "다운로드", "batchAction.enable": "사용", "batchAction.reIndex": "재색인", "batchAction.selected": "선택한", diff --git a/web/i18n/pl-PL/common.json b/web/i18n/pl-PL/common.json index 44d78aeaea..63eb3efa43 100644 --- a/web/i18n/pl-PL/common.json +++ b/web/i18n/pl-PL/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Nazwa miejsca pracy", "account.workspaceNamePlaceholder": "Wprowadź nazwę przestrzeni roboczej", "actionMsg.copySuccessfully": "Skopiowano pomyślnie", + "actionMsg.downloadUnsuccessfully": "Pobieranie nie powiodło się. Spróbuj ponownie później.", "actionMsg.generatedSuccessfully": "Wygenerowano pomyślnie", "actionMsg.generatedUnsuccessfully": "Nie udało się wygenerować", "actionMsg.modifiedSuccessfully": "Zmodyfikowano pomyślnie", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "Rozszerzenia oparte na interfejsie API zapewniają scentralizowane zarządzanie interfejsami API, upraszczając konfigurację dla łatwego użytkowania w aplikacjach Dify.", "apiBasedExtension.type": "Typ", "appMenus.apiAccess": "Dostęp API", + "appMenus.apiAccessTip": "Ta baza wiedzy jest dostępna przez API usługi", "appMenus.logAndAnn": "Logi i ogł.", "appMenus.logs": "Logi", "appMenus.overview": "Monitorowanie", diff --git a/web/i18n/pl-PL/dataset-documents.json b/web/i18n/pl-PL/dataset-documents.json index ff4bbe5719..70bf022243 100644 --- a/web/i18n/pl-PL/dataset-documents.json +++ b/web/i18n/pl-PL/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Archiwum", "list.action.batchAdd": "Dodaj partię", "list.action.delete": "Usuń", + "list.action.download": "Pobierz", "list.action.enableWarning": "Zarchiwizowany plik nie może zostać włączony", "list.action.pause": "Pauza", "list.action.resume": "Wznów", diff --git a/web/i18n/pl-PL/dataset.json b/web/i18n/pl-PL/dataset.json index 9d118ba1bf..e3e63fd03b 100644 --- a/web/i18n/pl-PL/dataset.json +++ b/web/i18n/pl-PL/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Anuluj", "batchAction.delete": "Usunąć", "batchAction.disable": "Wyłączać", + "batchAction.download": "Pobierz", "batchAction.enable": "Umożliwiać", "batchAction.reIndex": "Ponowna indeksacja", "batchAction.selected": "Wybrany", diff --git a/web/i18n/pt-BR/common.json b/web/i18n/pt-BR/common.json index 6af3218f2a..66b570af22 100644 --- a/web/i18n/pt-BR/common.json +++ b/web/i18n/pt-BR/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Nome do Espaço de Trabalho", "account.workspaceNamePlaceholder": "Digite o nome do espaço de trabalho", "actionMsg.copySuccessfully": "Copiado com sucesso", + "actionMsg.downloadUnsuccessfully": "Falha no download. Por favor, tente novamente mais tarde.", "actionMsg.generatedSuccessfully": "Gerado com sucesso", "actionMsg.generatedUnsuccessfully": "Geração sem sucesso", "actionMsg.modifiedSuccessfully": "Modificado com sucesso", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "As extensões de API fornecem gerenciamento centralizado de API, simplificando a configuração para uso fácil em todos os aplicativos da Dify.", "apiBasedExtension.type": "Tipo", "appMenus.apiAccess": "Acesso à API", + "appMenus.apiAccessTip": "Esta base de conhecimento é acessível via API de serviço", "appMenus.logAndAnn": "Logs e Anúncios", "appMenus.logs": "Logs", "appMenus.overview": "Monitoramento", diff --git a/web/i18n/pt-BR/dataset-documents.json b/web/i18n/pt-BR/dataset-documents.json index d44b235d1e..775d29f5d1 100644 --- a/web/i18n/pt-BR/dataset-documents.json +++ b/web/i18n/pt-BR/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Arquivar", "list.action.batchAdd": "Adicionar em lote", "list.action.delete": "Excluir", + "list.action.download": "Baixar", "list.action.enableWarning": "O arquivo arquivado não pode ser habilitado", "list.action.pause": "Pausa", "list.action.resume": "Retomar", diff --git a/web/i18n/pt-BR/dataset.json b/web/i18n/pt-BR/dataset.json index be5b002d2f..530109888d 100644 --- a/web/i18n/pt-BR/dataset.json +++ b/web/i18n/pt-BR/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Cancelar", "batchAction.delete": "Excluir", "batchAction.disable": "Desabilitar", + "batchAction.download": "Baixar", "batchAction.enable": "Habilitar", "batchAction.reIndex": "Reindexar", "batchAction.selected": "Selecionado", diff --git a/web/i18n/ro-RO/common.json b/web/i18n/ro-RO/common.json index baab269f59..158c6d684b 100644 --- a/web/i18n/ro-RO/common.json +++ b/web/i18n/ro-RO/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Numele spațiului de lucru", "account.workspaceNamePlaceholder": "Introduceți numele spațiului de lucru", "actionMsg.copySuccessfully": "Copiat cu succes", + "actionMsg.downloadUnsuccessfully": "Descărcarea a eșuat. Vă rugăm să încercați din nou mai târziu.", "actionMsg.generatedSuccessfully": "Generat cu succes", "actionMsg.generatedUnsuccessfully": "Generare eșuată", "actionMsg.modifiedSuccessfully": "Modificat cu succes", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "Extensiile bazate pe API oferă o gestionare centralizată a API-urilor, simplificând configurația pentru o utilizare ușoară în aplicațiile Dify.", "apiBasedExtension.type": "Tip", "appMenus.apiAccess": "Acces API", + "appMenus.apiAccessTip": "Această bază de cunoștințe este accesibilă prin API-ul serviciului", "appMenus.logAndAnn": "Jurnale și Ann.", "appMenus.logs": "Jurnale", "appMenus.overview": "Monitorizare", diff --git a/web/i18n/ro-RO/dataset-documents.json b/web/i18n/ro-RO/dataset-documents.json index a6ab3fdcd3..68cd5187de 100644 --- a/web/i18n/ro-RO/dataset-documents.json +++ b/web/i18n/ro-RO/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Arhivează", "list.action.batchAdd": "Adăugare în lot", "list.action.delete": "Șterge", + "list.action.download": "Descarcă", "list.action.enableWarning": "Fișierul arhivat nu poate fi activat", "list.action.pause": "Pauză", "list.action.resume": "Reia", diff --git a/web/i18n/ro-RO/dataset.json b/web/i18n/ro-RO/dataset.json index f15e56496d..781bd26a08 100644 --- a/web/i18n/ro-RO/dataset.json +++ b/web/i18n/ro-RO/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Anula", "batchAction.delete": "Șterge", "batchAction.disable": "Dezactiva", + "batchAction.download": "Descarcă", "batchAction.enable": "Activa", "batchAction.reIndex": "Reindexare", "batchAction.selected": "Selectat", diff --git a/web/i18n/ru-RU/common.json b/web/i18n/ru-RU/common.json index 45cbdf67a5..47d1fc9691 100644 --- a/web/i18n/ru-RU/common.json +++ b/web/i18n/ru-RU/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Название рабочего пространства", "account.workspaceNamePlaceholder": "Введите название рабочей области", "actionMsg.copySuccessfully": "Скопировано успешно", + "actionMsg.downloadUnsuccessfully": "Не удалось загрузить. Пожалуйста, попробуйте позже.", "actionMsg.generatedSuccessfully": "Сгенерировано успешно", "actionMsg.generatedUnsuccessfully": "Сгенерировано неудачно", "actionMsg.modifiedSuccessfully": "Изменено успешно", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "API-расширения обеспечивают централизованное управление API, упрощая настройку для удобного использования в приложениях Dify.", "apiBasedExtension.type": "Тип", "appMenus.apiAccess": "Доступ к API", + "appMenus.apiAccessTip": "Эта база знаний доступна через API сервиса", "appMenus.logAndAnn": "Журналы и аннотации", "appMenus.logs": "Журналы", "appMenus.overview": "Мониторинг", diff --git a/web/i18n/ru-RU/dataset-documents.json b/web/i18n/ru-RU/dataset-documents.json index abbb6b9ced..ecf42dea85 100644 --- a/web/i18n/ru-RU/dataset-documents.json +++ b/web/i18n/ru-RU/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Архивировать", "list.action.batchAdd": "Пакетное добавление", "list.action.delete": "Удалить", + "list.action.download": "Скачать", "list.action.enableWarning": "Архивный файл не может быть включен", "list.action.pause": "Пауза", "list.action.resume": "Возобновить", diff --git a/web/i18n/ru-RU/dataset.json b/web/i18n/ru-RU/dataset.json index 314b3046d9..dab9ecaeac 100644 --- a/web/i18n/ru-RU/dataset.json +++ b/web/i18n/ru-RU/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Отмена", "batchAction.delete": "Удалить", "batchAction.disable": "Отключить", + "batchAction.download": "Скачать", "batchAction.enable": "Давать возможность", "batchAction.reIndex": "Переиндексация", "batchAction.selected": "Выбранный", diff --git a/web/i18n/sl-SI/common.json b/web/i18n/sl-SI/common.json index fe397415c5..34d6d7a7f7 100644 --- a/web/i18n/sl-SI/common.json +++ b/web/i18n/sl-SI/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Ime delovnega prostora", "account.workspaceNamePlaceholder": "Vnesite ime delovnega prostora", "actionMsg.copySuccessfully": "Kopirano uspešno", + "actionMsg.downloadUnsuccessfully": "Prenos ni uspel. Poskusite znova pozneje.", "actionMsg.generatedSuccessfully": "Generirano uspešno", "actionMsg.generatedUnsuccessfully": "Generirano neuspešno", "actionMsg.modifiedSuccessfully": "Spremenjeno uspešno", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "Razširitve API zagotavljajo centralizirano upravljanje API, kar poenostavlja konfiguracijo za enostavno uporabo v aplikacijah Dify.", "apiBasedExtension.type": "Vrsta", "appMenus.apiAccess": "Dostop do API-ja", + "appMenus.apiAccessTip": "Ta baza znanja je dostopna prek API storitve", "appMenus.logAndAnn": "Dnevniki & Ann.", "appMenus.logs": "Dnevniki", "appMenus.overview": "Spremljanje", diff --git a/web/i18n/sl-SI/dataset-documents.json b/web/i18n/sl-SI/dataset-documents.json index 56dc3cfb7c..7ea55e3beb 100644 --- a/web/i18n/sl-SI/dataset-documents.json +++ b/web/i18n/sl-SI/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Arhiviraj", "list.action.batchAdd": "Serijsko dodajanje", "list.action.delete": "Izbriši", + "list.action.download": "Prenesi", "list.action.enableWarning": "Arhivirane datoteke ni mogoče omogočiti", "list.action.pause": "Zaustavi", "list.action.resume": "Nadaljuj", diff --git a/web/i18n/sl-SI/dataset.json b/web/i18n/sl-SI/dataset.json index 9deac8eb62..ce4663e28b 100644 --- a/web/i18n/sl-SI/dataset.json +++ b/web/i18n/sl-SI/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Odpovedati", "batchAction.delete": "Izbrisati", "batchAction.disable": "Onesposobiti", + "batchAction.download": "Prenesi", "batchAction.enable": "Omogočiti", "batchAction.reIndex": "Ponovno indeksiraj", "batchAction.selected": "Izbrane", diff --git a/web/i18n/th-TH/common.json b/web/i18n/th-TH/common.json index 90f0d3d043..dbeb668881 100644 --- a/web/i18n/th-TH/common.json +++ b/web/i18n/th-TH/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "ชื่อพื้นที่ทำงาน", "account.workspaceNamePlaceholder": "ใส่ชื่อพื้นที่ทำงาน", "actionMsg.copySuccessfully": "คัดลอกสําเร็จแล้ว", + "actionMsg.downloadUnsuccessfully": "ดาวน์โหลดล้มเหลว โปรดลองอีกครั้งในภายหลัง", "actionMsg.generatedSuccessfully": "สร้างสําเร็จ", "actionMsg.generatedUnsuccessfully": "สร้างไม่สําเร็จ", "actionMsg.modifiedSuccessfully": "แก้ไขสําเร็จแล้ว", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "ส่วนขยาย API ให้การจัดการ API แบบรวมศูนย์ ทําให้การกําหนดค่าง่ายขึ้นเพื่อให้ใช้งานได้ง่ายในแอปพลิเคชันของ Dify", "apiBasedExtension.type": "ประเภท", "appMenus.apiAccess": "การเข้าถึง API", + "appMenus.apiAccessTip": "ฐานความรู้นี้สามารถเข้าถึงได้ผ่าน API บริการ", "appMenus.logAndAnn": "ล็อก & แอน.", "appMenus.logs": "บันทึก", "appMenus.overview": "ตรวจ สอบ", diff --git a/web/i18n/th-TH/dataset-documents.json b/web/i18n/th-TH/dataset-documents.json index 3c84da6944..b598c04ae7 100644 --- a/web/i18n/th-TH/dataset-documents.json +++ b/web/i18n/th-TH/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "หอจดหมายเหตุ", "list.action.batchAdd": "เพิ่มแบทช์", "list.action.delete": "ลบ", + "list.action.download": "ดาวน์โหลด", "list.action.enableWarning": "ไม่สามารถเปิดใช้งานไฟล์ที่เก็บถาวรได้", "list.action.pause": "หยุด", "list.action.resume": "ดำเนิน", diff --git a/web/i18n/th-TH/dataset.json b/web/i18n/th-TH/dataset.json index 21bdcd0790..7068e81afb 100644 --- a/web/i18n/th-TH/dataset.json +++ b/web/i18n/th-TH/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "ยกเลิก", "batchAction.delete": "ลบ", "batchAction.disable": "เก", + "batchAction.download": "ดาวน์โหลด", "batchAction.enable": "เปิด", "batchAction.reIndex": "สร้างดัชนีใหม่", "batchAction.selected": "เลือก", diff --git a/web/i18n/tr-TR/common.json b/web/i18n/tr-TR/common.json index 4760e3d073..de7703c3be 100644 --- a/web/i18n/tr-TR/common.json +++ b/web/i18n/tr-TR/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Çalışma Alanı Adı", "account.workspaceNamePlaceholder": "Çalışma alanı adını girin", "actionMsg.copySuccessfully": "Başarıyla kopyalandı", + "actionMsg.downloadUnsuccessfully": "İndirme başarısız oldu. Lütfen daha sonra tekrar deneyin.", "actionMsg.generatedSuccessfully": "Başarıyla oluşturuldu", "actionMsg.generatedUnsuccessfully": "Oluşturma başarısız oldu", "actionMsg.modifiedSuccessfully": "Başarıyla değiştirildi", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "API uzantıları merkezi API yönetimi sağlar, Dify'nin uygulamaları arasında kolay kullanım için yapılandırmayı basitleştirir.", "apiBasedExtension.type": "Tür", "appMenus.apiAccess": "API Erişimi", + "appMenus.apiAccessTip": "Bu bilgi tabanına Servis API üzerinden erişilebilir", "appMenus.logAndAnn": "Günlükler & Anlamlandırmalar", "appMenus.logs": "Günlükler", "appMenus.overview": "İzleme", diff --git a/web/i18n/tr-TR/dataset-documents.json b/web/i18n/tr-TR/dataset-documents.json index 5500ce2824..1f3aa39b2d 100644 --- a/web/i18n/tr-TR/dataset-documents.json +++ b/web/i18n/tr-TR/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Arşivle", "list.action.batchAdd": "Toplu ekle", "list.action.delete": "Sil", + "list.action.download": "İndir", "list.action.enableWarning": "Arşivlenmiş dosya etkinleştirilemez", "list.action.pause": "Duraklat", "list.action.resume": "Devam Et", diff --git a/web/i18n/tr-TR/dataset.json b/web/i18n/tr-TR/dataset.json index 1d28f24d7f..76985ee7ab 100644 --- a/web/i18n/tr-TR/dataset.json +++ b/web/i18n/tr-TR/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "İptal", "batchAction.delete": "Silmek", "batchAction.disable": "Devre dışı bırakmak", + "batchAction.download": "İndir", "batchAction.enable": "Etkinleştirmek", "batchAction.reIndex": "Yeniden dizinle", "batchAction.selected": "Seçilmiş", diff --git a/web/i18n/uk-UA/common.json b/web/i18n/uk-UA/common.json index c4dce83bcc..5dc5009d1b 100644 --- a/web/i18n/uk-UA/common.json +++ b/web/i18n/uk-UA/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Назва робочого простору", "account.workspaceNamePlaceholder": "Введіть назву робочого простору", "actionMsg.copySuccessfully": "Скопійовано успішно", + "actionMsg.downloadUnsuccessfully": "Не вдалося завантажити. Будь ласка, спробуйте пізніше.", "actionMsg.generatedSuccessfully": "Успішно згенеровано", "actionMsg.generatedUnsuccessfully": "Не вдалося згенерувати", "actionMsg.modifiedSuccessfully": "Успішно змінено", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "API-розширення забезпечують централізоване керування API, спрощуючи конфігурацію для зручного використання в різних програмах Dify.", "apiBasedExtension.type": "Тип", "appMenus.apiAccess": "Доступ до API", + "appMenus.apiAccessTip": "Ця база знань доступна через API сервісу", "appMenus.logAndAnn": "Журнали та Повідомлення.", "appMenus.logs": "Журнали", "appMenus.overview": "Моніторинг", diff --git a/web/i18n/uk-UA/dataset-documents.json b/web/i18n/uk-UA/dataset-documents.json index d37815eb8d..38eb68e051 100644 --- a/web/i18n/uk-UA/dataset-documents.json +++ b/web/i18n/uk-UA/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Архів", "list.action.batchAdd": "Пакетне додавання", "list.action.delete": "Видалити", + "list.action.download": "Завантажити", "list.action.enableWarning": "Архівований файл неможливо активувати", "list.action.pause": "Пауза", "list.action.resume": "Продовжити", diff --git a/web/i18n/uk-UA/dataset.json b/web/i18n/uk-UA/dataset.json index 4b057e973b..8c1c146be9 100644 --- a/web/i18n/uk-UA/dataset.json +++ b/web/i18n/uk-UA/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Скасувати", "batchAction.delete": "Видалити", "batchAction.disable": "Вимкнути", + "batchAction.download": "Завантажити", "batchAction.enable": "Вмикати", "batchAction.reIndex": "Повторно індексувати", "batchAction.selected": "Вибрані", diff --git a/web/i18n/vi-VN/common.json b/web/i18n/vi-VN/common.json index cd37fc06d8..71f20db7ab 100644 --- a/web/i18n/vi-VN/common.json +++ b/web/i18n/vi-VN/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "Tên không gian làm việc", "account.workspaceNamePlaceholder": "Nhập tên không gian làm việc", "actionMsg.copySuccessfully": "Đã sao chép thành công", + "actionMsg.downloadUnsuccessfully": "Tải xuống thất bại. Vui lòng thử lại sau.", "actionMsg.generatedSuccessfully": "Tạo thành công", "actionMsg.generatedUnsuccessfully": "Tạo không thành công", "actionMsg.modifiedSuccessfully": "Chỉnh sửa thành công", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "Các tiện ích API cung cấp quản lý API tập trung, giúp cấu hình dễ dàng sử dụng trên các ứng dụng của Dify.", "apiBasedExtension.type": "Loại", "appMenus.apiAccess": "Truy cập API", + "appMenus.apiAccessTip": "Cơ sở kiến thức này có thể truy cập qua API dịch vụ", "appMenus.logAndAnn": "Nhật ký & Thông báo", "appMenus.logs": "Nhật ký", "appMenus.overview": "Giám sát", diff --git a/web/i18n/vi-VN/dataset-documents.json b/web/i18n/vi-VN/dataset-documents.json index 29318a0d2e..4ebe9e6b9b 100644 --- a/web/i18n/vi-VN/dataset-documents.json +++ b/web/i18n/vi-VN/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "Lưu trữ", "list.action.batchAdd": "Thêm hàng loạt", "list.action.delete": "Xóa", + "list.action.download": "Tải xuống", "list.action.enableWarning": "Tệp đã lưu trữ không thể được kích hoạt", "list.action.pause": "Tạm dừng", "list.action.resume": "Tiếp tục", diff --git a/web/i18n/vi-VN/dataset.json b/web/i18n/vi-VN/dataset.json index 38ed78714b..0787268aea 100644 --- a/web/i18n/vi-VN/dataset.json +++ b/web/i18n/vi-VN/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "Hủy", "batchAction.delete": "Xóa", "batchAction.disable": "Vô hiệu hóa", + "batchAction.download": "Tải xuống", "batchAction.enable": "Kích hoạt", "batchAction.reIndex": "Tái lập chỉ mục", "batchAction.selected": "Chọn", diff --git a/web/i18n/zh-Hans/common.json b/web/i18n/zh-Hans/common.json index 9d20ebf2a0..b5eabfeecc 100644 --- a/web/i18n/zh-Hans/common.json +++ b/web/i18n/zh-Hans/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "工作空间名称", "account.workspaceNamePlaceholder": "输入工作空间名称", "actionMsg.copySuccessfully": "复制成功", + "actionMsg.downloadUnsuccessfully": "下载失败,请稍后再试。", "actionMsg.generatedSuccessfully": "已重新生成", "actionMsg.generatedUnsuccessfully": "生成失败", "actionMsg.modifiedSuccessfully": "修改成功", diff --git a/web/i18n/zh-Hans/dataset-documents.json b/web/i18n/zh-Hans/dataset-documents.json index d81f487070..04f4449c86 100644 --- a/web/i18n/zh-Hans/dataset-documents.json +++ b/web/i18n/zh-Hans/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "归档", "list.action.batchAdd": "批量添加", "list.action.delete": "删除", + "list.action.download": "下载", "list.action.enableWarning": "归档的文件无法启用", "list.action.pause": "暂停", "list.action.resume": "恢复", diff --git a/web/i18n/zh-Hans/dataset.json b/web/i18n/zh-Hans/dataset.json index e9f7d779e3..089b0be5b3 100644 --- a/web/i18n/zh-Hans/dataset.json +++ b/web/i18n/zh-Hans/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "取消", "batchAction.delete": "删除", "batchAction.disable": "禁用", + "batchAction.download": "下载", "batchAction.enable": "启用", "batchAction.reIndex": "重新索引", "batchAction.selected": "已选择", diff --git a/web/i18n/zh-Hant/common.json b/web/i18n/zh-Hant/common.json index fadbd11466..1874253148 100644 --- a/web/i18n/zh-Hant/common.json +++ b/web/i18n/zh-Hant/common.json @@ -61,6 +61,7 @@ "account.workspaceName": "工作區名稱", "account.workspaceNamePlaceholder": "輸入工作區名稱", "actionMsg.copySuccessfully": "複製成功", + "actionMsg.downloadUnsuccessfully": "下載失敗。請稍後再試。", "actionMsg.generatedSuccessfully": "已重新生成", "actionMsg.generatedUnsuccessfully": "生成失敗", "actionMsg.modifiedSuccessfully": "修改成功", @@ -91,6 +92,7 @@ "apiBasedExtension.title": "API 擴充套件提供了一個集中式的 API 管理,在此統一新增 API 配置後,方便在 Dify 上的各類應用中直接使用。", "apiBasedExtension.type": "型別", "appMenus.apiAccess": "訪問 API", + "appMenus.apiAccessTip": "此知識庫可透過服務 API 訪問", "appMenus.logAndAnn": "日誌與標註", "appMenus.logs": "日誌", "appMenus.overview": "監控", diff --git a/web/i18n/zh-Hant/dataset-documents.json b/web/i18n/zh-Hant/dataset-documents.json index 48f01b803c..417856786a 100644 --- a/web/i18n/zh-Hant/dataset-documents.json +++ b/web/i18n/zh-Hant/dataset-documents.json @@ -26,6 +26,7 @@ "list.action.archive": "歸檔", "list.action.batchAdd": "批次新增", "list.action.delete": "刪除", + "list.action.download": "下載", "list.action.enableWarning": "歸檔的檔案無法啟用", "list.action.pause": "暫停", "list.action.resume": "恢復", diff --git a/web/i18n/zh-Hant/dataset.json b/web/i18n/zh-Hant/dataset.json index f9883b1206..d6e780269d 100644 --- a/web/i18n/zh-Hant/dataset.json +++ b/web/i18n/zh-Hant/dataset.json @@ -7,6 +7,7 @@ "batchAction.cancel": "取消", "batchAction.delete": "刪除", "batchAction.disable": "禁用", + "batchAction.download": "下載", "batchAction.enable": "使", "batchAction.reIndex": "重新建立索引", "batchAction.selected": "選擇", From 80567681064177904d8907b6b43c7d91a350036a Mon Sep 17 00:00:00 2001 From: byteforge Date: Tue, 20 Jan 2026 10:08:59 -0500 Subject: [PATCH 06/25] fix: enforce no-leaked-conditional-rendering as error and fix violations (#31262) Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com> --- web/app/components/app-sidebar/dataset-info/index.tsx | 2 +- web/app/components/app-sidebar/dataset-sidebar-dropdown.tsx | 2 +- .../app/annotation/edit-annotation-modal/index.tsx | 2 +- .../app/configuration/base/feature-panel/index.tsx | 6 +++--- .../app/configuration/dataset-config/card-item/index.tsx | 2 +- .../configuration/dataset-config/select-dataset/index.tsx | 2 +- .../configuration/dataset-config/settings-modal/index.tsx | 2 +- .../debug/debug-with-single-model/index.spec.tsx | 4 ++-- web/app/components/base/agent-log-modal/tool-call.tsx | 2 +- web/app/components/base/chat/chat/answer/index.tsx | 2 +- web/app/components/base/chat/chat/answer/more.tsx | 2 +- web/app/components/base/chat/chat/citation/popup.tsx | 2 +- .../components/base/image-uploader/chat-image-uploader.tsx | 2 +- web/app/components/base/input/index.tsx | 2 +- web/app/components/base/modal/index.tsx | 4 ++-- web/app/components/base/modal/modal.tsx | 4 ++-- web/app/components/base/radio-card/index.tsx | 2 +- web/app/components/base/radio/component/radio/index.tsx | 2 +- web/app/components/base/segmented-control/index.tsx | 2 +- web/app/components/base/select/index.tsx | 2 +- web/app/components/base/toast/index.tsx | 2 +- web/app/components/base/tooltip/content.tsx | 4 ++-- web/app/components/base/tooltip/index.tsx | 2 +- .../datasets/create/step-two/components/option-card.tsx | 4 ++-- web/app/components/datasets/documents/components/list.tsx | 2 +- .../processing/embedding-process/rule-detail.spec.tsx | 2 +- .../list/dataset-card/components/dataset-card-header.tsx | 2 +- .../metadata/metadata-dataset/create-content.spec.tsx | 2 +- web/app/components/datasets/settings/form/index.tsx | 6 +++--- web/app/components/datasets/settings/option-card.tsx | 4 ++-- .../model-provider-page/model-name/index.tsx | 6 +++--- .../model-provider-page/model-selector/popup-item.tsx | 6 +++--- web/app/components/plugins/card/index.spec.tsx | 2 +- web/app/components/plugins/card/index.tsx | 2 +- .../install-from-github/steps/loaded.spec.tsx | 2 +- .../install-from-marketplace/steps/install.spec.tsx | 2 +- web/app/components/plugins/marketplace/index.spec.tsx | 2 +- web/app/components/plugins/marketplace/list/index.spec.tsx | 2 +- .../plugins/plugin-detail-panel/detail-header.tsx | 4 ++-- .../subscription-list/edit/index.spec.tsx | 2 +- .../components/plugins/plugin-mutation-model/index.spec.tsx | 2 +- web/app/components/tools/provider/empty.tsx | 2 +- .../workflow/nodes/_base/components/editor/base.tsx | 4 ++-- .../components/workflow/nodes/_base/components/field.tsx | 6 +++--- .../workflow/nodes/_base/components/prompt/editor.tsx | 2 +- .../variable/variable-label/base/variable-label.tsx | 2 +- web/app/components/workflow/nodes/_base/node.tsx | 6 +++--- .../workflow/nodes/assigner/components/var-list/index.tsx | 2 +- web/app/components/workflow/nodes/assigner/node.tsx | 2 +- .../knowledge-base/components/chunk-structure/index.tsx | 2 +- .../nodes/knowledge-base/components/option-card.tsx | 4 ++-- web/app/components/workflow/nodes/knowledge-base/panel.tsx | 2 +- .../nodes/knowledge-retrieval/components/dataset-item.tsx | 2 +- .../components/metadata/condition-list/condition-date.tsx | 2 +- .../workflow/nodes/llm/components/config-prompt-item.tsx | 2 +- .../workflow/nodes/loop/components/condition-list/index.tsx | 2 +- .../panel/debug-and-preview/conversation-variable-modal.tsx | 2 +- .../components/workflow/run/agent-log/agent-log-item.tsx | 2 +- web/tsslint.config.ts | 2 +- 59 files changed, 80 insertions(+), 80 deletions(-) diff --git a/web/app/components/app-sidebar/dataset-info/index.tsx b/web/app/components/app-sidebar/dataset-info/index.tsx index 2d2eeefbb2..ba82099b6c 100644 --- a/web/app/components/app-sidebar/dataset-info/index.tsx +++ b/web/app/components/app-sidebar/dataset-info/index.tsx @@ -71,7 +71,7 @@ const DatasetInfo: FC = ({
{isExternalProvider && t('externalTag', { ns: 'dataset' })} - {!isExternalProvider && isPipelinePublished && dataset.doc_form && dataset.indexing_technique && ( + {!!(!isExternalProvider && isPipelinePublished && dataset.doc_form && dataset.indexing_technique) && (
{t(`chunkingMode.${DOC_FORM_TEXT[dataset.doc_form]}`, { ns: 'dataset' })} {formatIndexingTechniqueAndMethod(dataset.indexing_technique, dataset.retrieval_model_dict?.search_method)} diff --git a/web/app/components/app-sidebar/dataset-sidebar-dropdown.tsx b/web/app/components/app-sidebar/dataset-sidebar-dropdown.tsx index 4ba9814255..c81125e973 100644 --- a/web/app/components/app-sidebar/dataset-sidebar-dropdown.tsx +++ b/web/app/components/app-sidebar/dataset-sidebar-dropdown.tsx @@ -114,7 +114,7 @@ const DatasetSidebarDropdown = ({
{isExternalProvider && t('externalTag', { ns: 'dataset' })} - {!isExternalProvider && dataset.doc_form && dataset.indexing_technique && ( + {!!(!isExternalProvider && dataset.doc_form && dataset.indexing_technique) && (
{t(`chunkingMode.${DOC_FORM_TEXT[dataset.doc_form]}`, { ns: 'dataset' })} {formatIndexingTechniqueAndMethod(dataset.indexing_technique, dataset.retrieval_model_dict?.search_method)} diff --git a/web/app/components/app/annotation/edit-annotation-modal/index.tsx b/web/app/components/app/annotation/edit-annotation-modal/index.tsx index b7f7cd1600..2595ec38b2 100644 --- a/web/app/components/app/annotation/edit-annotation-modal/index.tsx +++ b/web/app/components/app/annotation/edit-annotation-modal/index.tsx @@ -144,7 +144,7 @@ const EditAnnotationModal: FC = ({
{t('editModal.removeThisCache', { ns: 'appAnnotation' })}
- {createdAt && ( + {!!createdAt && (
{t('editModal.createdAt', { ns: 'appAnnotation' })}   diff --git a/web/app/components/app/configuration/base/feature-panel/index.tsx b/web/app/components/app/configuration/base/feature-panel/index.tsx index 06ae2ab10a..7f337c1572 100644 --- a/web/app/components/app/configuration/base/feature-panel/index.tsx +++ b/web/app/components/app/configuration/base/feature-panel/index.tsx @@ -28,16 +28,16 @@ const FeaturePanel: FC = ({
- {headerIcon &&
{headerIcon}
} + {!!headerIcon &&
{headerIcon}
}
{title}
- {headerRight &&
{headerRight}
} + {!!headerRight &&
{headerRight}
}
{/* Body */} - {children && ( + {!!children && (
{children}
diff --git a/web/app/components/app/configuration/dataset-config/card-item/index.tsx b/web/app/components/app/configuration/dataset-config/card-item/index.tsx index 81c2b470ad..00d3f6d6ad 100644 --- a/web/app/components/app/configuration/dataset-config/card-item/index.tsx +++ b/web/app/components/app/configuration/dataset-config/card-item/index.tsx @@ -91,7 +91,7 @@ const Item: FC = ({
{ - config.indexing_technique && ( + !!config.indexing_technique && ( = ({
)} { - item.indexing_technique && ( + !!item.indexing_technique && ( = ({ />
- {currentDataset && currentDataset.indexing_technique && ( + {!!(currentDataset && currentDataset.indexing_technique) && (
{t('form.indexMethod', { ns: 'datasetSettings' })}
diff --git a/web/app/components/app/configuration/debug/debug-with-single-model/index.spec.tsx b/web/app/components/app/configuration/debug/debug-with-single-model/index.spec.tsx index b9a1c5ba8b..08bdd2bfcb 100644 --- a/web/app/components/app/configuration/debug/debug-with-single-model/index.spec.tsx +++ b/web/app/components/app/configuration/debug/debug-with-single-model/index.spec.tsx @@ -465,8 +465,8 @@ vi.mock('@/app/components/base/chat/chat', () => ({
))}
- {questionIcon &&
{questionIcon}
} - {answerIcon &&
{answerIcon}
} + {!!questionIcon &&
{questionIcon}
} + {!!answerIcon &&
{answerIcon}
}