diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SearchExport.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SearchExport.spec.ts index 4e4be3a6c330..d4a7cdf2d413 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SearchExport.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SearchExport.spec.ts @@ -13,6 +13,12 @@ import { expect, Page } from '@playwright/test'; import { redirectToHomePage } from '../../utils/common'; +import { + countCsvResponseRows, + getExportCount, + getExportModalContent, + openExportScopeModal, +} from '../../utils/explore'; import { test } from '../fixtures/pages'; const navigateToExplorePage = async (page: Page) => { @@ -21,22 +27,11 @@ const navigateToExplorePage = async (page: Page) => { await expect(page.getByTestId('explore-page')).toBeVisible(); }; -const getExportModalContent = (page: Page) => - page.getByTestId('export-scope-modal').locator('.ant-modal-content'); - -const openExportScopeModal = async (page: Page) => { - await page.getByTestId('export-search-results-button').click(); - await expect(getExportModalContent(page)).toBeVisible(); - // Wait for count fetch to complete and OK button to be enabled - await expect( - getExportModalContent(page).getByRole('button', { name: 'Export' }) - ).toBeEnabled(); -}; - test.describe('Search Export', { tag: ['@Features', '@Discovery'] }, () => { test.beforeEach(async ({ page }) => { await navigateToExplorePage(page); }); + test('Export button opens scope modal with correct options', async ({ page, }) => { @@ -58,23 +53,27 @@ test.describe('Search Export', { tag: ['@Features', '@Discovery'] }, () => { await expect(modalContent.getByText('Export Scope')).toBeVisible(); }); - await test.step('Modal shows Visible results and All matching assets options', async () => { + await test.step('Modal shows tab-specific scope and All assets options', async () => { const modalContent = getExportModalContent(page); - await expect(modalContent.getByText('Visible results')).toBeVisible(); - await expect(modalContent.getByText('All matching assets')).toBeVisible(); + await expect( + modalContent.getByTestId('export-scope-visible-card') + ).toBeVisible(); + await expect( + modalContent.getByTestId('export-scope-all-card') + ).toBeVisible(); }); - await test.step('All matching assets is selected by default', async () => { + await test.step('All assets is selected by default', async () => { await expect( getExportModalContent(page).locator('input[value="all"]') ).toBeChecked(); }); - await test.step('Selecting Visible results checks the visible radio', async () => { + await test.step('Selecting the tab-scope card checks the visible radio', async () => { const modalContent = getExportModalContent(page); - await modalContent.getByText('Visible results').click(); + await modalContent.locator('input[value="visible"]').click(); await expect( modalContent.locator('input[value="visible"]') ).toBeChecked(); @@ -89,12 +88,10 @@ test.describe('Search Export', { tag: ['@Features', '@Discovery'] }, () => { }); }); - test('All matching assets export calls API with dataAsset index', async ({ - page, - }) => { + test('All assets export calls API with dataAsset index', async ({ page }) => { await openExportScopeModal(page); - await test.step('All matching assets radio is pre-selected', async () => { + await test.step('All assets radio is pre-selected', async () => { await expect( getExportModalContent(page).locator('input[value="all"]') ).toBeChecked(); @@ -116,64 +113,80 @@ test.describe('Search Export', { tag: ['@Features', '@Discovery'] }, () => { }); }); - test('Visible results export calls API with size param', async ({ page }) => { + test('Search mode visible export downloads CSV with tab-specific row count', async ({ + page, + }) => { + test.slow(); + + await page.goto('/explore/tables?search=sample_data'); + await expect(page.getByTestId('explore-page')).toBeVisible(); + + const countApiPromise = page.waitForResponse( + (response) => + response.url().includes('/api/v1/search/query') && + response.status() === 200 + ); + await openExportScopeModal(page); + await countApiPromise; - await test.step('Select Visible results scope', async () => { - const modalContent = getExportModalContent(page); + const modalContent = getExportModalContent(page); - await modalContent.getByText('Visible results').click(); - await expect( - modalContent.locator('input[value="visible"]') - ).toBeChecked(); - }); + await modalContent.locator('input[value="visible"]').click(); - await test.step('Clicking Export calls /search/export with size param', async () => { - const exportApiPromise = page.waitForRequest( - (req) => - req.url().includes('/api/v1/search/export') && req.method() === 'GET' - ); + const expectedCount = + await test.step('Read displayed count from Visible Results card', () => + getExportCount(page, 'export-scope-visible-count')); - await getExportModalContent(page) - .getByRole('button', { name: 'Export' }) - .click(); + const exportResponsePromise = page.waitForResponse( + (response) => + response.url().includes('/api/v1/search/export') && + response.status() === 200 + ); - const request = await exportApiPromise; - const url = request.url(); + await modalContent.getByRole('button', { name: 'Export' }).click(); + + await test.step('CSV row count matches the displayed tab count', async () => { + const csvText = await (await exportResponsePromise).text(); - expect(url).toContain('index='); - expect(url).toContain('size='); + expect(countCsvResponseRows(csvText)).toBe(expectedCount); }); }); - test('Visible results export on page 2 sends correct from offset', async ({ + test('Browse mode visible export downloads CSV with current page row count', async ({ page, }) => { test.slow(); - // Navigate to page 2 via URL so parsedSearch.page = 2 - await page.goto(`${page.url().replace(/\?.*/, '')}?page=2&size=15`); - await expect(page.getByTestId('explore-page')).toBeVisible(); + const countApiPromise = page.waitForResponse( + (response) => + response.url().includes('/api/v1/search/query') && + response.status() === 200 + ); await openExportScopeModal(page); - await getExportModalContent(page).getByText('Visible results').click(); + await countApiPromise; - await test.step('Export request includes from= offset matching page 2', async () => { - const exportApiPromise = page.waitForRequest( - (req) => - req.url().includes('/api/v1/search/export') && req.method() === 'GET' - ); + const modalContent = getExportModalContent(page); - await getExportModalContent(page) - .getByRole('button', { name: 'Export' }) - .click(); + await modalContent.locator('input[value="visible"]').click(); - const request = await exportApiPromise; - const url = request.url(); + const expectedCount = + await test.step('Read displayed count from Visible Results card', () => + getExportCount(page, 'export-scope-visible-count')); + + const exportResponsePromise = page.waitForResponse( + (response) => + response.url().includes('/api/v1/search/export') && + response.status() === 200 + ); + + await modalContent.getByRole('button', { name: 'Export' }).click(); - // page=2, size=15 → from=15 - expect(url).toContain('from=15'); - expect(url).toContain('size='); + await test.step('CSV row count matches the displayed page count', async () => { + const csvText = await (await exportResponsePromise).text(); + + expect(countCsvResponseRows(csvText)).toBe(expectedCount); }); }); @@ -191,10 +204,19 @@ test.describe('Search Export', { tag: ['@Features', '@Discovery'] }, () => { }); }); + const countApiPromise = page.waitForResponse( + (response) => + response.url().includes('/api/v1/search/query') && + response.status() === 200 + ); + await openExportScopeModal(page); + await countApiPromise; + + const modalContent = getExportModalContent(page); await test.step('Export button becomes disabled and shows loading after click', async () => { - const exportButton = getExportModalContent(page).getByRole('button', { + const exportButton = modalContent.getByRole('button', { name: 'Export', }); @@ -233,41 +255,47 @@ test.describe('Search Export', { tag: ['@Features', '@Discovery'] }, () => { }); }); - test('Export downloads CSV and closes modal', async ({ page }) => { - test.slow(); - - await page.route('**/api/v1/search/export?*', async (route) => { + test('Export is disabled when all matching assets exceed limit', async ({ + page, + }) => { + await page.route('**/api/v1/search/query?*', async (route) => { await route.fulfill({ status: 200, - contentType: 'text/csv', - headers: { - 'Content-Disposition': 'attachment; filename="search_export.csv"', - }, - body: 'Entity Type,Service Name,Service Type,FQN,Name,Display Name,Description,Owners,Tags,Glossary Terms,Domains,Tier\ntable,mysql,Mysql,sample_data.ecommerce_db.shopify.dim_address,dim_address,dim_address,,,,,,', + contentType: 'application/json', + body: JSON.stringify({ + took: 1, + hits: { + total: { value: 200001, relation: 'eq' }, + hits: [], + }, + aggregations: {}, + }), }); }); - await openExportScopeModal(page); + await page.getByTestId('export-search-results-button').click(); - await test.step('Export button shows loading state while downloading', async () => { - await page.route('**/api/v1/search/export?*', async (route) => { - await new Promise((resolve) => setTimeout(resolve, 1500)); - await route.fulfill({ - status: 200, - contentType: 'text/csv', - body: 'Entity Type\ntable', - }); - }); + const modalContent = getExportModalContent(page); + const exportButton = modalContent.getByRole('button', { name: 'Export' }); - const exportButton = getExportModalContent(page).getByRole('button', { - name: 'Export', - }); + await test.step('Limit alert is shown in modal', async () => { + await expect( + modalContent.getByText( + 'Export is limited to 200,000 assets. Please refine your filters or choose visible results.' + ) + ).toBeVisible(); + }); - await exportButton.click(); - await expect(exportButton).toHaveClass(/ant-btn-loading/); + await test.step('Export button remains disabled', async () => { + await expect(exportButton).toBeDisabled(); }); + }); + + test('Export downloads CSV with correct filename and closes modal', async ({ + page, + }) => { + test.slow(); - // Re-open modal for download verification after loading state test await openExportScopeModal(page); await test.step('Clicking Export triggers CSV download with correct filename', async () => { diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/explore.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/explore.ts index bd17f96b5400..67f3df67c795 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/explore.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/explore.ts @@ -306,3 +306,29 @@ export const navigateToExploreAndSelectEntity = async ( await openEntitySummaryPanel(page, entityName, endpoint, fullyQualifiedName); }; + +export const getExportModalContent = (page: Page) => + page.getByTestId('export-scope-modal').locator('.ant-modal-content'); + +export const openExportScopeModal = async (page: Page) => { + await page.getByTestId('export-search-results-button').click(); + const modalContent = getExportModalContent(page); + await expect(modalContent).toBeVisible(); + await expect( + modalContent.getByRole('button', { name: 'Export' }) + ).toBeEnabled(); +}; + +export const countCsvResponseRows = (csvText: string): number => + csvText.split('\n').filter((line: string) => line.trim().length > 0).length - + 1; + +export const getExportCount = async ( + page: Page, + testId: string +): Promise => { + const text = await page.getByTestId(testId).textContent(); + const match = text?.match(/(\d[\d,]*)/); + + return match ? parseInt(match[1].replace(/,/g, ''), 10) : 0; +}; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ExploreV1/ExploreV1.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ExploreV1/ExploreV1.component.tsx index 73ca8db155d9..5bfd3f40099a 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ExploreV1/ExploreV1.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/ExploreV1/ExploreV1.component.tsx @@ -26,7 +26,7 @@ import { Modal, Radio, Row, - Spin, + Skeleton, Switch, Typography, } from 'antd'; @@ -49,6 +49,7 @@ import { TAG_FQN_KEY, } from '../../constants/explore.constants'; import { SIZE, SORT_ORDER } from '../../enums/common.enum'; +import { EntityType } from '../../enums/entity.enum'; import { SearchIndex } from '../../enums/search.enum'; import { useApplicationStore } from '../../hooks/useApplicationStore'; import { QueryFilterInterface } from '../../pages/ExplorePage/ExplorePage.interface'; @@ -120,6 +121,8 @@ const IndexNotFoundBanner = () => { ); }; +const EXPORT_ALL_ASSETS_LIMIT = 200_000; + const ExploreV1: React.FC = ({ aggregations, activeTabKey, @@ -173,14 +176,62 @@ const ExploreV1: React.FC = ({ const [exportScope, setExportScope] = useState<'visible' | 'all'>('all'); const [isExporting, setIsExporting] = useState(false); const [allAssetsCount, setAllAssetsCount] = useState(); + const [tabAssetsCount, setTabAssetsCount] = useState(); const [exportError, setExportError] = useState(); const [isCountLoading, setIsCountLoading] = useState(false); - const visibleResultCount = searchResults?.hits?.hits?.length ?? 0; + const isSearchMode = useMemo( + () => Boolean(searchQueryParam), + [searchQueryParam] + ); + + const pageResultCount = useMemo( + () => searchResults?.hits?.hits?.length ?? 0, + [searchResults] + ); + + const visibleResultCount = useMemo( + () => (isSearchMode ? tabAssetsCount ?? 0 : pageResultCount), + [isSearchMode, tabAssetsCount, pageResultCount] + ); + + const activeTabLabel = useMemo( + () => + tabsInfo[searchIndex as ExploreSearchIndex]?.label ?? + t('label.visible-result-plural'), + [tabsInfo, searchIndex, t] + ); + + const isAllAssetsLimitExceeded = useMemo( + () => + exportScope === 'all' && + allAssetsCount !== undefined && + allAssetsCount > EXPORT_ALL_ASSETS_LIMIT, + [exportScope, allAssetsCount] + ); + + const isVisibleScopeLimitExceeded = useMemo( + () => + isSearchMode && + exportScope === 'visible' && + tabAssetsCount !== undefined && + tabAssetsCount > EXPORT_ALL_ASSETS_LIMIT, + [isSearchMode, exportScope, tabAssetsCount] + ); + + const isTabScopeDisabled = useMemo( + () => + isSearchMode && + exportScope === 'visible' && + !isCountLoading && + !tabAssetsCount, + [isSearchMode, exportScope, isCountLoading, tabAssetsCount] + ); const handleOpenExportScopeModal = useCallback(async () => { setExportScope('all'); setAllAssetsCount(undefined); + setTabAssetsCount(undefined); setExportError(undefined); setShowExportScopeModal(true); setIsCountLoading(true); @@ -190,7 +241,7 @@ const ExploreV1: React.FC = ({ quickFilters, queryFilter as QueryFilterInterface | undefined ); - const response = await searchQuery({ + const allResponse = await searchQuery({ query: searchQueryParam || '*', searchIndex: SearchIndex.DATA_ASSET, pageSize: 0, @@ -198,13 +249,32 @@ const ExploreV1: React.FC = ({ includeDeleted: showDeleted, queryFilter: combinedQueryFilter ?? undefined, }); - setAllAssetsCount(response.hits.total.value); + setAllAssetsCount(allResponse.hits.total.value); + + if (isSearchMode) { + const entityTypeSearchIndexMapping = + searchClassBase.getEntityTypeSearchIndexMapping(); + const tabBucket = ( + allResponse.aggregations?.['entityType']?.buckets ?? [] + ).find( + (b: { key: string; doc_count: number }) => + entityTypeSearchIndexMapping[b.key as EntityType] === searchIndex + ); + setTabAssetsCount(tabBucket?.doc_count ?? 0); + } } catch { // Count fetch failed — modal still usable without count } finally { setIsCountLoading(false); } - }, [searchQueryParam, showDeleted, quickFilters, queryFilter]); + }, [ + searchQueryParam, + showDeleted, + quickFilters, + queryFilter, + isSearchMode, + searchIndex, + ]); const handleExportScopeConfirm = useCallback(async () => { const isVisibleScope = exportScope === 'visible'; @@ -229,15 +299,19 @@ const ExploreV1: React.FC = ({ } if (isVisibleScope) { - const currentPage = isString(parsedSearch.page) - ? Number.parseInt(parsedSearch.page, 10) || 1 - : 1; - const pageSize = isString(parsedSearch.size) - ? Number.parseInt(parsedSearch.size, 10) || visibleResultCount - : visibleResultCount; - - params.size = visibleResultCount; - params.from = (currentPage - 1) * pageSize; + if (isSearchMode) { + params.size = visibleResultCount; + } else { + const currentPage = isString(parsedSearch.page) + ? Number.parseInt(parsedSearch.page, 10) || 1 + : 1; + const pageSize = isString(parsedSearch.size) + ? Number.parseInt(parsedSearch.size, 10) || pageResultCount + : pageResultCount; + + params.size = pageResultCount; + params.from = (currentPage - 1) * pageSize; + } } setExportError(undefined); @@ -274,7 +348,9 @@ const ExploreV1: React.FC = ({ }, [ exportScope, searchIndex, + isSearchMode, visibleResultCount, + pageResultCount, parsedSearch, searchQueryParam, sortValue, @@ -654,13 +730,18 @@ const ExploreV1: React.FC = ({ className="search-export-modal" data-testid="export-scope-modal" okButtonProps={{ - disabled: isExporting || isCountLoading, + disabled: + isExporting || + isCountLoading || + isTabScopeDisabled || + isAllAssetsLimitExceeded || + isVisibleScopeLimitExceeded, loading: isExporting, }} okText={t('label.export')} open={showExportScopeModal} title={exportModalTitle()} - width={610} + width={680} onCancel={() => { setShowExportScopeModal(false); setExportError(undefined); @@ -674,6 +755,16 @@ const ExploreV1: React.FC = ({ type="error" /> )} + {(isAllAssetsLimitExceeded || isVisibleScopeLimitExceeded) && ( + + )} {t('label.export-scope')} @@ -685,20 +776,44 @@ const ExploreV1: React.FC = ({ className={`export-scope-option-card${ exportScope === 'visible' ? ' selected' : '' }`} + data-testid="export-scope-visible-card" onClick={() => setExportScope('visible')}>
- - {t('label.visible-result-plural')} - - - {` (${visibleResultCount} ${t('label.result-plural')})`} - +
+ + {isSearchMode + ? activeTabLabel + : t('label.visible-result-plural')} + + {isSearchMode && isCountLoading ? ( + + ) : ( + + {`(${ + isSearchMode ? tabAssetsCount ?? '—' : pageResultCount + } ${t('label.result-plural')})`} + + )} +
- {t('message.export-visible-results-description')} + {isSearchMode + ? t('message.export-visible-results-description', { + dataAssetType: activeTabLabel, + }) + : t( + 'message.export-visible-results-description-explore-mode' + )}
@@ -707,22 +822,32 @@ const ExploreV1: React.FC = ({ className={`export-scope-option-card${ exportScope === 'all' ? ' selected' : '' }`} + data-testid="export-scope-all-card" onClick={() => setExportScope('all')}>
- - {t('label.all-matching-asset-plural')} - - {isCountLoading ? ( - - ) : ( - allAssetsCount !== undefined && ( - - {` (${allAssetsCount} ${t('label.result-plural')})`} - - ) - )} +
+ + {t('label.all-asset-plural')} + + {isCountLoading ? ( + + ) : ( + allAssetsCount !== undefined && ( + + {` (${allAssetsCount} ${t('label.result-plural')})`} + + ) + )} +
diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ar-sa.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ar-sa.json index 1079af707e22..202709a3b393 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ar-sa.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ar-sa.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "الكل", "all-activity": "كل النشاط", + "all-asset-plural": "جميع الأصول", "all-data-asset-plural": "جميع أصول البيانات", "all-domain-plural": "جميع النطاقات", "all-entity": "جميع {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "بنية المخطط المتوقعة لهذا الأصل", "explore-our-guide-here": "استكشف دليلنا هنا.", "export-all-matching-assets-description": "تصدير جميع الأصول المطابقة لهذا البحث عبر أنواع الأصول", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "تصدير سجلات التدقيق. حدد نطاق تاريخ لتصفية الأحداث. سيكون ملف التصدير محدودًا بـ 100,000 إدخال.", "export-entity-help": "قم بتنزيل جميع {{entity}} كملف CSV، وشاركه مع فريقك.", "export-successful": "Export completed successfully!", "export-visible-results-description": "تصدير الأصول المرئية في التبويب الحالي", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "جاري التصدير...", "external-destination-selection": "يمكن اختبار الوجهات الخارجية فقط.", "external-test-cannot-be-toggled": "تتم إدارة تعريفات الاختبار الخارجية خارج OpenMetadata ولا يمكن تمكينها أو تعطيلها هنا. يتم تنفيذ هذه الاختبارات بواسطة منصاتها المعنية (على سبيل المثال، dbt، Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json index c8fb333f3a45..6fd503576e52 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json @@ -102,6 +102,7 @@ "alias-plural": "Aliase", "all": "Alle", "all-activity": "Alle Aktivitäten", + "all-asset-plural": "All assets", "all-data-asset-plural": "Alle Datenassets", "all-domain-plural": "Alle Domänen", "all-entity": "Alle {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "Erwartete Schemastruktur dieses Assets", "explore-our-guide-here": "Erkunden Sie unseren Leitfaden hier.", "export-all-matching-assets-description": "Alle übereinstimmenden Assets in allen Asset-Typen exportieren", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Audit-Logs exportieren. Wählen Sie einen Datumsbereich aus, um Ereignisse zu filtern. Die Exportdatei ist auf 100.000 Einträge begrenzt.", "export-entity-help": "Laden Sie alle Ihre {{entity}} als CSV-Datei herunter und teilen Sie sie mit Ihrem Team.", "export-successful": "Export erfolgreich abgeschlossen!", "export-visible-results-description": "Assets exportieren, die in der aktuellen Registerkarte angezeigt werden", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "Exportieren...", "external-destination-selection": "Es können nur externe Ziele getestet werden.", "external-test-cannot-be-toggled": "Externe Testdefinitionen werden außerhalb von OpenMetadata verwaltet und können hier nicht aktiviert oder deaktiviert werden. Diese Tests werden von ihren jeweiligen Plattformen ausgeführt (z. B. dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json index a339e4937ebe..e0a27fd6826d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "All", "all-activity": "All Activity", + "all-asset-plural": "All assets", "all-data-asset-plural": "All Data Assets", "all-domain-plural": "All Domains", "all-entity": "All {{entity}}", @@ -2434,11 +2435,13 @@ "existing-contract-detected": "This entity already has an existing contract.", "expected-schema-structure-of-this-asset": "Expected schema structure of this asset", "explore-our-guide-here": "explore our guide here.", - "export-all-matching-assets-description": "Export all assets matching this search across asset types", + "export-all-matching-assets-description": "Export assets across asset types", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Export audit logs. Select a date range to filter events. The export file will be limited to 100,000 entries.", "export-entity-help": "Download all your {{entity}} as a CSV file, and share with your team.", "export-successful": "Export completed successfully!", - "export-visible-results-description": "Export assets that are shown in the current tab", + "export-visible-results-description": "Export all assets of type {{dataAssetType}}", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "Exporting...", "external-destination-selection": "Only external destinations can be tested.", "external-test-cannot-be-toggled": "External test definitions are managed outside OpenMetadata and cannot be enabled or disabled here. These tests are executed by their respective platforms (e.g., dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json index de5d757acaf1..8b8534408632 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json @@ -102,6 +102,7 @@ "alias-plural": "Alias", "all": "Todo", "all-activity": "Toda la actividad", + "all-asset-plural": "All assets", "all-data-asset-plural": "Todos los activos de datos", "all-domain-plural": "Todos los dominios", "all-entity": "Todas las {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "Estructura de esquema esperada de este activo", "explore-our-guide-here": "explore nuestra guía aquí.", "export-all-matching-assets-description": "Exportar todos los activos coincidentes con esta búsqueda a través de tipos de activos", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Exportar registros de auditoría. Seleccione un rango de fechas para filtrar eventos. El archivo de exportación estará limitado a 100.000 entradas.", "export-entity-help": "Descargue todos sus {{entity}} como un archivo CSV y compártalo con su equipo.", "export-successful": "¡Exportación completada exitosamente!", "export-visible-results-description": "Exportar activos que se muestran en la pestaña actual", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "Exportando...", "external-destination-selection": "Sólo se puede comprobar los destinos externos.", "external-test-cannot-be-toggled": "Las definiciones de prueba externas se gestionan fuera de OpenMetadata y no se pueden habilitar o deshabilitar aquí. Estas pruebas son ejecutadas por sus respectivas plataformas (por ejemplo, dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json index cfb13f856359..db500104d8c8 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json @@ -102,6 +102,7 @@ "alias-plural": "Alias", "all": "Tout", "all-activity": "Toute l'Activité", + "all-asset-plural": "All assets", "all-data-asset-plural": "Tous les Actifs de Données", "all-domain-plural": "Tous les Domaines", "all-entity": "Tous les {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "Structure de schéma attendue de cet actif", "explore-our-guide-here": "consultez notre guide ici.", "export-all-matching-assets-description": "Export all assets matching this search across asset types", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Exporter les journaux d'audit. Sélectionnez une plage de dates pour filtrer les événements. Le fichier d'exportation sera limité à 100 000 entrées.", "export-entity-help": "Téléchargez vos {{entityPlural}} en tant que fichier CSV, et partagez le avec votre équipe.", "export-successful": "Exportation terminée avec succès !", "export-visible-results-description": "Exportez les actifs qui sont affichés dans l'onglet actuel", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "Exportation...", "external-destination-selection": "Seules les destinations externes peuvent être testées.", "external-test-cannot-be-toggled": "Les définitions de test externes sont gérées en dehors d'OpenMetadata et ne peuvent pas être activées ou désactivées ici. Ces tests sont exécutés par leurs plateformes respectives (par exemple, dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/gl-es.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/gl-es.json index f560fdcb68d3..e5a4d9f0f19c 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/gl-es.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/gl-es.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "Todo", "all-activity": "Toda a actividade", + "all-asset-plural": "All assets", "all-data-asset-plural": "Todos os activos de datos", "all-domain-plural": "Todos os dominios", "all-entity": "Todo {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "Estrutura de esquema esperada deste activo", "explore-our-guide-here": "explora a nosa guía aquí.", "export-all-matching-assets-description": "Exportar todos os activos coincidentes con esta busca a través de tipos de activos", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Exportar rexistros de auditoría. Seleccione un rango de dates para filtrar eventos. O ficheiro de exportación estará limitado a 100.000 entradas.", "export-entity-help": "Descarga todos os teus {{entity}} como ficheiro CSV e compárteo co teu equipo.", "export-successful": "Export completed successfully!", "export-visible-results-description": "Exportar activos que se amosan na lapela actual", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "Exportando...", "external-destination-selection": "Só se poden probar destinos externos.", "external-test-cannot-be-toggled": "As definicións de proba externas adminístranse fóra de OpenMetadata e non se poden activar nin desactivar aquí. Estas probas son executadas polas súas respectivas plataformas (por exemplo, dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json index 00de7b54e937..0c83848c13f7 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json @@ -102,6 +102,7 @@ "alias-plural": "כינויים", "all": "הכל", "all-activity": "כל הפעילות", + "all-asset-plural": "All assets", "all-data-asset-plural": "כל הנכסים נתונים", "all-domain-plural": "כל הדומיינים", "all-entity": "כל {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "מבנה סchema צפוי של נכס זה", "explore-our-guide-here": "חקור את המדריך שלנו כאן.", "export-all-matching-assets-description": "ייצא את כל הנכסים המתאימים לחיפוש זה בכל סוגי הנכסים", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "ייצא יומני ביקורת. בחר טווח תאריכים לסינון אירועים. קובץ הייצוא יוגבל ל-100,000 רשומות.", "export-entity-help": "הורד את כל הישויות שלך בפורמט קובץ CSV ושתף עם הצוות שלך.", "export-successful": "היצוא הושלם בהצלחה!", "export-visible-results-description": "ייצא את הנכסים שמוצגים בלשונית הנוכחית", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "מייצא...", "external-destination-selection": "רק יעדים חיצוניים ניתנים לבדיקה.", "external-test-cannot-be-toggled": "הגדרות בדיקה חיצוניות מנוהלות מחוץ ל-OpenMetadata ולא ניתן להפעיל או להשבית אותן כאן. בדיקות אלה מבוצעות על ידי הפלטפורמות המתאימות שלהן (למשל, dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json index 158e30401efb..df18c2e3417d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json @@ -102,6 +102,7 @@ "alias-plural": "別名", "all": "すべて", "all-activity": "すべてのアクティビティ", + "all-asset-plural": "All assets", "all-data-asset-plural": "すべてのデータアセット", "all-domain-plural": "すべてのドメイン", "all-entity": "すべての{{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "このアセットの予想されるスキーマ構造", "explore-our-guide-here": "ガイドを見る", "export-all-matching-assets-description": "Export all assets matching this search across asset types", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "監査ログをエクスポートします。日付範囲を選択してイベントをフィルタリングしてください。エクスポートファイルは100,000件に制限されます。", "export-entity-help": "{{entity}} をすべて CSV ファイルとしてダウンロードし、チームと共有できます。", "export-successful": "エクスポートは正常に完了しました。", "export-visible-results-description": "現在のタブに表示されているアセットをエクスポートします", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "エクスポート中...", "external-destination-selection": "外部の宛先のみテストできます。", "external-test-cannot-be-toggled": "外部テスト定義はOpenMetadata外で管理されており、ここで有効化・無効化することはできません。これらのテストはそれぞれのプラットフォーム (dbt、Great Expectationsなど)によって実行されます。", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ko-kr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ko-kr.json index 5092bff3dd4d..2dca81747a86 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ko-kr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ko-kr.json @@ -102,6 +102,7 @@ "alias-plural": "별칭", "all": "모두", "all-activity": "모든 활동", + "all-asset-plural": "All assets", "all-data-asset-plural": "모든 데이터 자산", "all-domain-plural": "모든 도메인", "all-entity": "모든 {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "이 자산의 예상 스키마 구조", "explore-our-guide-here": "여기에서 우리의 가이드를 탐색하세요.", "export-all-matching-assets-description": "모든 자산을 자산 유형별로 이 검색과 일치하는 것을 내보냅니다", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "감사 로그를 내보냅니다. 날짜 범위를 선택하여 이벤트를 필터링하세요. 내보내기 파일은 100,000개 항목으로 제한됩니다.", "export-entity-help": "모든 {{entity}}을(를) CSV 파일로 다운로드하여 팀과 공유하세요.", "export-successful": "Export completed successfully!", "export-visible-results-description": "현재 탭에 표시된 자산을 내보냅니다", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "내보내는 중...", "external-destination-selection": "외부 대상만 테스트할 수 있습니다.", "external-test-cannot-be-toggled": "외부 테스트 정의는 OpenMetadata 외부에서 관리되며 여기에서 활성화하거나 비활성화할 수 없습니다. 이러한 테스트는 각 플랫폼(예: dbt, Great Expectations)에서 실행됩니다.", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/mr-in.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/mr-in.json index e4ddb6615e82..46599f0f2cb1 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/mr-in.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/mr-in.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "सर्व", "all-activity": "सर्व उपक्रम", + "all-asset-plural": "All assets", "all-data-asset-plural": "सर्व डेटा ॲसेट", "all-domain-plural": "सर्व डोमेन", "all-entity": "सर्व {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "या मालमत्तेची अपेक्षित स्कीमा रचना", "explore-our-guide-here": "आमचा मार्गदर्शक येथे एक्सप्लोर करा.", "export-all-matching-assets-description": "या शोधासाठी या शोधासाठी सर्व मिळणारे ॲसेट्स निर्यात करा", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "ऑडिट लॉग एक्सपोर्ट करा. इव्हेंट फिल्टर करण्यासाठी तारीख श्रेणी निवडा. एक्सपोर्ट फाइल 100,000 एंट्रीपर्यंत मर्यादित असेल.", "export-entity-help": "तुमच्या सर्व {{entity}} CSV फाइल म्हणून डाउनलोड करा आणि तुमच्या टीमसह शेअर करा.", "export-successful": "Export completed successfully!", "export-visible-results-description": "ही टॅबवर दिसणारे ॲसेट्स निर्यात करा", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "एक्सपोर्ट करत आहे...", "external-destination-selection": "फक्त बाह्य गंतव्ये चाचणी केली जाऊ शकतात.", "external-test-cannot-be-toggled": "बाह्य चाचणी व्याख्या OpenMetadata च्या बाहेर व्यवस्थापित केल्या जातात आणि येथे सक्षम किंवा अक्षम केल्या जाऊ शकत नाहीत. या चाचण्या त्यांच्या संबंधित प्लॅटफॉर्मद्वारे (उदा., dbt, Great Expectations) कार्यान्वित केल्या जातात.", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json index 3d8d966ddcfa..276417047543 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json @@ -102,6 +102,7 @@ "alias-plural": "Aliassen", "all": "Alle", "all-activity": "Alle activiteiten", + "all-asset-plural": "All assets", "all-data-asset-plural": "Alle data-assets", "all-domain-plural": "Alle domeinen", "all-entity": "Alle {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "Verwachte schemastructuur van dit asset", "explore-our-guide-here": "bekijk onze handleiding hier.", "export-all-matching-assets-description": "Exporteer alle activa die overeenkomen met deze zoekopdracht over activa typen", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Exporteer auditlogs. Selecteer een datumbereik om gebeurtenissen te filteren. Het exportbestand is beperkt tot 100.000 items.", "export-entity-help": "Download al je {{entity}} als een CSV-bestand en deel het met je team.", "export-successful": "Export succesvol afgerond!", "export-visible-results-description": "Exporteer activa die in de huidige tab worden weergegeven", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "Exporteren...", "external-destination-selection": "Alleen externe bestemmingen kunnen worden getest.", "external-test-cannot-be-toggled": "Externe testdefinities worden buiten OpenMetadata beheerd en kunnen hier niet worden in- of uitgeschakeld. Deze tests worden uitgevoerd door hun respectievelijke platforms (bijv. dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pr-pr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pr-pr.json index f4cd22c903a1..b849318ce77f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pr-pr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pr-pr.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "همه", "all-activity": "همه فعالیت‌ها", + "all-asset-plural": "All assets", "all-data-asset-plural": "همه دارایی‌های داده", "all-domain-plural": "همه دامنه‌ها", "all-entity": "همه {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "ساختار طرح مورد انتظار این دارایی", "explore-our-guide-here": "راهنمای ما را اینجا ببینید.", "export-all-matching-assets-description": "صادرات همه ی دارایی‌های مطابق با این جستجو در طرح‌های دارایی", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "صدور گزارش‌های حسابرسی. یک بازه تاریخ برای فیلتر کردن رویدادها انتخاب کنید. فایل صادر شده به 100,000 ورودی محدود خواهد بود.", "export-entity-help": "تمام {{entity}} خود را به صورت فایل CSV دانلود کنید و با تیم خود به اشتراک بگذارید.", "export-successful": "Export completed successfully!", "export-visible-results-description": "صادرات دارایی‌هایی که در تب فعلی نمایش داده می‌شوند", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "در حال صدور...", "external-destination-selection": "Only external destinations can be tested.", "external-test-cannot-be-toggled": "تعاریف تست خارجی خارج از OpenMetadata مدیریت می‌شوند و در اینجا نمی‌توان آنها را فعال یا غیرفعال کرد. این تست‌ها توسط پلتفرم‌های مربوطه (مثلاً dbt، Great Expectations) اجرا می‌شوند.", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json index a0b3f4221694..dcd0fffabea5 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "Todos", "all-activity": "Toda Atividade", + "all-asset-plural": "All assets", "all-data-asset-plural": "Todos os Ativos de Dados", "all-domain-plural": "Todos os Domínios", "all-entity": "Todos os {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "Estrutura de esquema esperada deste ativo", "explore-our-guide-here": "explore nosso guia aqui.", "export-all-matching-assets-description": "Exportar todos os ativos correspondentes a esta pesquisa em tipos de ativos", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Exportar logs de auditoria. Selecione um intervalo de datas para filtrar eventos. O arquivo de exportação será limitado a 100.000 entradas.", "export-entity-help": "Baixe todos os seus {{entity}} como um arquivo CSV e compartilhe com sua equipe.", "export-successful": "Exportação concluída com sucesso!", "export-visible-results-description": "Exportar ativos que são mostrados na aba atual", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "Exportando...", "external-destination-selection": "Somente destinos externos podem ser testados.", "external-test-cannot-be-toggled": "Definições de teste externas são gerenciadas fora do OpenMetadata e não podem ser ativadas ou desativadas aqui. Esses testes são executados por suas respectivas plataformas (por exemplo, dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-pt.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-pt.json index 0ef52d4d228c..24c4b2505731 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-pt.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-pt.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "Todos", "all-activity": "Toda Atividade", + "all-asset-plural": "All assets", "all-data-asset-plural": "Todos os Ativos de Dados", "all-domain-plural": "Todos os Domínios", "all-entity": "Todos os {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "Estrutura de esquema esperada deste ativo", "explore-our-guide-here": "explore o nosso guia aqui.", "export-all-matching-assets-description": "Exportar todos os ativos correspondentes a esta pesquisa em tipos de ativos", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Exportar registos de auditoria. Selecione um intervalo de datas para filtrar eventos. O ficheiro de exportação será limitado a 100.000 entradas.", "export-entity-help": "Baixe todos os seus {{entity}} como um arquivo CSV e compartilhe com sua equipa.", "export-successful": "Export completed successfully!", "export-visible-results-description": "Exportar ativos que são mostrados na aba atual", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "A exportar...", "external-destination-selection": "Apenas destinos externos podem ser testados.", "external-test-cannot-be-toggled": "Definições de teste externas são geridas fora do OpenMetadata e não podem ser ativadas ou desativadas aqui. Estes testes são executados pelas respetivas plataformas (por exemplo, dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json index 05bab7873b2a..2e3b38191231 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json @@ -102,6 +102,7 @@ "alias-plural": "Псевдонимы", "all": "Все", "all-activity": "Вся активность", + "all-asset-plural": "All assets", "all-data-asset-plural": "Все объекты данных", "all-domain-plural": "Все домены", "all-entity": "Все объекты типа «{{entity}}»", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "Ожидаемая структура схемы этого актива", "explore-our-guide-here": "изучите наши руководства здесь.", "export-all-matching-assets-description": "Экспортируйте все активы, соответствующие этому поиску, по типам активов", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Экспорт журналов аудита. Выберите диапазон дат для фильтрации событий. Файл экспорта ограничен 100 000 записей.", "export-entity-help": "Загрузите объекты типа «{{entity}}» в виде CSV-файла и поделитесь ими с командой.", "export-successful": "Экспорт успешно завершен!", "export-visible-results-description": "Экспортируйте активы, которые отображаются в текущей вкладке", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "Экспорт...", "external-destination-selection": "Можно тестировать только внешние назначения.", "external-test-cannot-be-toggled": "Внешние определения тестов управляются вне OpenMetadata и не могут быть включены или выключены здесь. Эти тесты выполняются соответствующими платформами (например, dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/th-th.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/th-th.json index 1de4c8c70f6c..57a1978bfd9f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/th-th.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/th-th.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "ทั้งหมด", "all-activity": "กิจกรรมทั้งหมด", + "all-asset-plural": "All assets", "all-data-asset-plural": "สินทรัพย์ข้อมูลทั้งหมด", "all-domain-plural": "โดเมนทั้งหมด", "all-entity": "ทั้งหมด {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "โครงสร้างสคีมาที่คาดหวังของทรัพย์สินนี้", "explore-our-guide-here": "สำรวจกับคู่มือนี้ที่นี่", "export-all-matching-assets-description": "ส่งออกทั้งหมดของทรัพย์สินที่ตรงกับคำค้นหาในประเภททรัพย์สิน", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "ส่งออกบันทึกการตรวจสอบ เลือกช่วงวันที่เพื่อกรองเหตุการณ์ ไฟล์ส่งออกจะถูกจำกัดไว้ที่ 100,000 รายการ", "export-entity-help": "ดาวน์โหลด {{entity}} ทั้งหมดของคุณเป็นไฟล์ CSV และแชร์กับทีมของคุณ", "export-successful": "Export completed successfully!", "export-visible-results-description": "ส่งออกทรัพย์สินที่กำลังแสดงผลในแท็บปัจจุบัน", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "กำลังส่งออก...", "external-destination-selection": "สามารถทดสอบได้เฉพาะปลายทางภายนอกเท่านั้น", "external-test-cannot-be-toggled": "คำจำกัดความการทดสอบภายนอกได้รับการจัดการนอก OpenMetadata และไม่สามารถเปิดหรือปิดใช้งานที่นี่ได้ การทดสอบเหล่านี้ดำเนินการโดยแพลตฟอร์มที่เกี่ยวข้อง (เช่น dbt, Great Expectations)", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/tr-tr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/tr-tr.json index af3bf8b7d4a9..1d2ed46869e5 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/tr-tr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/tr-tr.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "Tümü", "all-activity": "Tüm Aktiviteler", + "all-asset-plural": "All assets", "all-data-asset-plural": "Tüm Veri Varlıkları", "all-domain-plural": "Tüm Alan Adları", "all-entity": "Tüm {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "Bu varlığın beklenen şema yapısı", "explore-our-guide-here": "kılavuzumuzu buradan keşfedin.", "export-all-matching-assets-description": "Bu aramayla eşleşen tüm varlıkları varlık türleri arasında dışa aktarın", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "Denetim günlüklerini dışa aktar. Olayları filtrelemek için bir tarih aralığı seçin. Dışa aktarma dosyası 100.000 girişle sınırlı olacaktır.", "export-entity-help": "Tüm {{entity}} öğelerinizi bir CSV dosyası olarak indirin ve ekibinizle paylaşın.", "export-successful": "Export completed successfully!", "export-visible-results-description": "Şu anda görünen varlıkları dışa aktarın", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "Dışa aktarılıyor...", "external-destination-selection": "Yalnızca harici hedefler test edilebilir.", "external-test-cannot-be-toggled": "Harici test tanımları OpenMetadata dışında yönetilir ve burada etkinleştirilemez veya devre dışı bırakılamaz. Bu testler ilgili platformlar tarafından yürütülür (örneğin, dbt, Great Expectations).", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json index 4023169f53f5..08d103fdd97b 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json @@ -102,6 +102,7 @@ "alias-plural": "别名", "all": "全部", "all-activity": "全部活动", + "all-asset-plural": "All assets", "all-data-asset-plural": "全部数据资产", "all-domain-plural": "全部域", "all-entity": "所有{{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "此资产的预期模式结构", "explore-our-guide-here": "点击此处查看我们的指南", "export-all-matching-assets-description": "跨资产类型导出与此搜索匹配的所有资产", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "导出审计日志。选择日期范围以筛选事件。导出文件将限制为 100,000 条记录。", "export-entity-help": "以 CSV 文件格式导出下载所有{{entity}}, 并可与团队共享。", "export-successful": "导出成功!", "export-visible-results-description": "导出当前标签页中显示的资产", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "正在导出...", "external-destination-selection": "只能测试外部目标。", "external-test-cannot-be-toggled": "外部测试定义在OpenMetadata外部管理,无法在此处启用或禁用。这些测试由各自的平台执行(例如 dbt、Great Expectations)。", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-tw.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-tw.json index f64855a03e26..f7728648bbba 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-tw.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-tw.json @@ -102,6 +102,7 @@ "alias-plural": "Aliases", "all": "全部", "all-activity": "所有活動", + "all-asset-plural": "All assets", "all-data-asset-plural": "所有資料資產", "all-domain-plural": "所有領域", "all-entity": "所有 {{entity}}", @@ -2435,10 +2436,12 @@ "expected-schema-structure-of-this-asset": "此資產的預期結構", "explore-our-guide-here": "在此處探索我們的指南。", "export-all-matching-assets-description": "跨資產類型導出與此搜索匹配的所有資產", + "export-assets-limit-exceeded": "Export is limited to {{limit}} assets. Please refine your filters or choose visible results.", "export-audit-logs-description": "匯出稽核日誌。選擇日期範圍以篩選事件。匯出檔案將限制為 100,000 筆記錄。", "export-entity-help": "將您所有的 {{entity}} 下載為 CSV 檔案,並與您的團隊分享。", "export-successful": "Export completed successfully!", "export-visible-results-description": "導出當前標籤頁中顯示的資產", + "export-visible-results-description-explore-mode": "Export visible results on this page", "exporting": "正在匯出...", "external-destination-selection": "只能測試外部目的地。", "external-test-cannot-be-toggled": "外部測試定義在OpenMetadata外部管理,無法在此處啟用或停用。這些測試由各自的平台執行(例如 dbt、Great Expectations)。",