diff --git a/frontend/__tests__/components/cluster-settings.spec.tsx b/frontend/__tests__/components/cluster-settings.spec.tsx index 7e2b2d10e8f..cd16900fdf5 100644 --- a/frontend/__tests__/components/cluster-settings.spec.tsx +++ b/frontend/__tests__/components/cluster-settings.spec.tsx @@ -52,7 +52,7 @@ jest.mock('react-redux', () => { }; }); -const i18nNS = 'cluster-settings'; +const i18nNS = 'public'; describe('Cluster Settings page', () => { let wrapper: ShallowWrapper; @@ -327,7 +327,7 @@ describe('Updates Graph', () => { .find(ChannelName) .at(1) .text(), - ).toBe('cluster-settings~{{newerChannel}} channel'); + ).toBe('public~{{newerChannel}} channel'); }); }); diff --git a/frontend/packages/ceph-storage-plugin/integration-tests-cypress/views/obcPage.ts b/frontend/packages/ceph-storage-plugin/integration-tests-cypress/views/obcPage.ts index efd268c7176..05c292d00b0 100644 --- a/frontend/packages/ceph-storage-plugin/integration-tests-cypress/views/obcPage.ts +++ b/frontend/packages/ceph-storage-plugin/integration-tests-cypress/views/obcPage.ts @@ -45,7 +45,7 @@ export class CreateOBCHandler { } deploymentReady(deploymentName: string) { - cy.byLegacyTestID('horizontal-link-details-page~Details').click(); + cy.byLegacyTestID('horizontal-link-public~Details').click(); cy.contains(DEPLOYMENT_REPLICAS_STATUS); cy.byTestSelector('details-item-value__Name') .should('be.visible') diff --git a/frontend/packages/ceph-storage-plugin/locales/en/dashboard.json b/frontend/packages/ceph-storage-plugin/locales/en/dashboard.json new file mode 100644 index 00000000000..ead4c050ba5 --- /dev/null +++ b/frontend/packages/ceph-storage-plugin/locales/en/dashboard.json @@ -0,0 +1,3 @@ +{ + "Not available": "Not available" +} \ No newline at end of file diff --git a/frontend/packages/console-shared/locales/en/console-shared.json b/frontend/packages/console-shared/locales/en/console-shared.json index 8bc3cee2806..e96f8fdb2c3 100644 --- a/frontend/packages/console-shared/locales/en/console-shared.json +++ b/frontend/packages/console-shared/locales/en/console-shared.json @@ -1,11 +1,49 @@ { "An error occurred": "An error occurred", "No resources found": "No resources found", + "Started": "Started", + "There are no recent events.": "There are no recent events.", + "View all events": "View all events", + "Resume": "Resume", + "Pause": "Pause", + "Recent events": "Recent events", + "There are no ongoing activities.": "There are no ongoing activities.", + "Ongoing": "Ongoing", + "Not available": "Not available", + "1 hour": "1 hour", + "6 hours": "6 hours", + "24 hours": "24 hours", + "No resource quotas": "No resource quotas", + "View details": "View details", + "Alerts could not be loaded.": "Alerts could not be loaded.", "({{operatorStatusLength}} installed)": "({{operatorStatusLength}} installed)", "Status": "Status", - "Not available": "Not available", "View all": "View all", "All {{status}}": "All {{status}}", + "Unknown": "Unknown", + "Pending": "Pending", + "Updating": "Updating", + "Degraded": "Degraded", + "Loading": "Loading", + "{{title}} breakdown": "{{title}} breakdown", + "Total capacity": "Total capacity", + "Total limit": "Total limit", + "Current utilization": "Current utilization", + "Current available capacity": "Current available capacity", + "Total requested": "Total requested", + "By {{label}}": "By {{label}}", + "Top consumer by {{label}}": "Top consumer by {{label}}", + "View more": "View more", + "Top {{label}} consumers": "Top {{label}} consumers", + "Top consumers": "Top consumers", + "Select consumer type": "Select consumer type", + "time axis": "time axis", + "Resource": "Resource", + "Usage": "Usage", + "View {{title}} metrics in query browser": "View {{title}} metrics in query browser", + "{{humanAvailable}} available of {{humanLimit}} total limit": "{{humanAvailable}} available of {{humanLimit}} total limit", + "{{humanAvailable}} available of {{humanMax}}": "{{humanAvailable}} available of {{humanMax}}", + "{{humanAvailable}} available": "{{humanAvailable}} available", "Error loading - {{placeholder}}": "Error loading - {{placeholder}}", "Value": "Value", "Resource requirements": "Resource requirements", diff --git a/frontend/packages/console-shared/src/components/dashboard/activity-card/ActivityBody.tsx b/frontend/packages/console-shared/src/components/dashboard/activity-card/ActivityBody.tsx index b1ab6d58307..7cc2076770b 100644 --- a/frontend/packages/console-shared/src/components/dashboard/activity-card/ActivityBody.tsx +++ b/frontend/packages/console-shared/src/components/dashboard/activity-card/ActivityBody.tsx @@ -21,7 +21,7 @@ export const Activity: React.FC = ({ timestamp, children }) => {
{timestamp && ( - {t('dashboard~Started')}{' '} + {t('console-shared~Started')}{' '} @@ -91,7 +91,7 @@ export const RecentEventsBodyContent: React.FC = ( if (sortedEvents.length === 0) { return ( -
{t('dashboard~There are no recent events.')}
+
{t('console-shared~There are no recent events.')}
); } @@ -112,7 +112,7 @@ export const RecentEventsBodyContent: React.FC = ( to={moreLink} data-test="events-view-all-link" > - {t('dashboard~View all events')} + {t('console-shared~View all events')} )} @@ -129,7 +129,7 @@ export const PauseButton: React.FC = ({ paused, togglePause }) data-test-id="events-pause-button" data-test="events-pause-button" > - {paused ? t('public~Resume') : t('public~Pause')} + {paused ? t('console-shared~Resume') : t('console-shared~Pause')} ); }; @@ -141,7 +141,7 @@ export const RecentEventsBody: React.FC = (props) => { return ( <>
- {t('dashboard~Recent events')} + {t('console-shared~Recent events')}
@@ -184,14 +184,14 @@ export const OngoingActivityBody: React.FC = ({ allActivities ) : ( -
{t('dashboard~There are no ongoing activities.')}
+
{t('console-shared~There are no ongoing activities.')}
); } return ( <>
- {t('dashboard~Ongoing')} + {t('console-shared~Ongoing')}
{body}
diff --git a/frontend/packages/console-shared/src/components/dashboard/details-card/DetailItem.tsx b/frontend/packages/console-shared/src/components/dashboard/details-card/DetailItem.tsx index f01b8b20f31..73eb00722ed 100644 --- a/frontend/packages/console-shared/src/components/dashboard/details-card/DetailItem.tsx +++ b/frontend/packages/console-shared/src/components/dashboard/details-card/DetailItem.tsx @@ -10,7 +10,7 @@ export const DetailItem: React.FC = React.memo( if (error) { status = ( - {errorMessage || t('dashboard~Not available')} + {errorMessage || t('console-shared~Not available')} ); } else if (isLoading) { status =
; diff --git a/frontend/packages/console-shared/src/components/dashboard/duration-hook.ts b/frontend/packages/console-shared/src/components/dashboard/duration-hook.ts index adf2718355a..3fb3d591494 100644 --- a/frontend/packages/console-shared/src/components/dashboard/duration-hook.ts +++ b/frontend/packages/console-shared/src/components/dashboard/duration-hook.ts @@ -3,20 +3,20 @@ import { TFunction } from 'i18next'; export const Duration = (t: TFunction) => { return { - ONE_HR: t('public~1 hour'), - SIX_HR: t('public~6 hours'), - TWENTY_FOUR_HR: t('public~24 hours'), + ONE_HR: t('console-shared~1 hour'), + SIX_HR: t('console-shared~6 hours'), + TWENTY_FOUR_HR: t('console-shared~24 hours'), }; }; export const TranslatedDuration = (duration, t: TFunction): string => { switch (duration) { case 'ONE_HR': - return t('public~1 hour'); + return t('console-shared~1 hour'); case 'SIX_HR': - return t('public~6 hours'); + return t('console-shared~6 hours'); default: - return t('public~24 hours'); + return t('console-shared~24 hours'); } }; diff --git a/frontend/packages/console-shared/src/components/dashboard/inventory-card/InventoryItem.tsx b/frontend/packages/console-shared/src/components/dashboard/inventory-card/InventoryItem.tsx index db46268b087..08abdac01ab 100644 --- a/frontend/packages/console-shared/src/components/dashboard/inventory-card/InventoryItem.tsx +++ b/frontend/packages/console-shared/src/components/dashboard/inventory-card/InventoryItem.tsx @@ -97,7 +97,7 @@ export const InventoryItem: React.FC = React.memo(
{error ? (
- {t('dashboard~Not available')} + {t('console-shared~Not available')}
) : ( children @@ -124,7 +124,7 @@ export const InventoryItem: React.FC = React.memo(
{error ? (
- {t('dashboard~Not available')} + {t('console-shared~Not available')}
) : ( children diff --git a/frontend/packages/console-shared/src/components/dashboard/resource-quota-card/ResourceQuotaBody.tsx b/frontend/packages/console-shared/src/components/dashboard/resource-quota-card/ResourceQuotaBody.tsx index bd926ed4708..6654128dc26 100644 --- a/frontend/packages/console-shared/src/components/dashboard/resource-quota-card/ResourceQuotaBody.tsx +++ b/frontend/packages/console-shared/src/components/dashboard/resource-quota-card/ResourceQuotaBody.tsx @@ -7,11 +7,11 @@ const ResourceQuotaBody: React.FC = ({ error, isLoading, let body: React.ReactNode; const { t } = useTranslation(); if (error) { - body =
{t('dashboard~Not available')}
; + body =
{t('console-shared~Not available')}
; } else if (isLoading) { body =
; } else if (!React.Children.count(children)) { - body =
{t('dashboard~No resource quotas')}
; + body =
{t('console-shared~No resource quotas')}
; } return
{body || children}
; diff --git a/frontend/packages/console-shared/src/components/dashboard/status-card/AlertItem.tsx b/frontend/packages/console-shared/src/components/dashboard/status-card/AlertItem.tsx index ac89419a95e..7a116e88035 100644 --- a/frontend/packages/console-shared/src/components/dashboard/status-card/AlertItem.tsx +++ b/frontend/packages/console-shared/src/components/dashboard/status-card/AlertItem.tsx @@ -70,7 +70,7 @@ const AlertItem: React.FC = ({ alert }) => { {text} ) : ( - {t('dashboard~View details')} + {t('console-shared~View details')} )} ); diff --git a/frontend/packages/console-shared/src/components/dashboard/status-card/AlertsBody.tsx b/frontend/packages/console-shared/src/components/dashboard/status-card/AlertsBody.tsx index 5f5e4fe9f83..0c7f660e3c8 100644 --- a/frontend/packages/console-shared/src/components/dashboard/status-card/AlertsBody.tsx +++ b/frontend/packages/console-shared/src/components/dashboard/status-card/AlertsBody.tsx @@ -16,7 +16,7 @@ const AlertsBody: React.FC = ({ error = false, children }) => { {error ? ( - {t('dashboard~Alerts could not be loaded.')} + {t('console-shared~Alerts could not be loaded.')} ) : ( children diff --git a/frontend/packages/console-shared/src/components/dashboard/status-card/states.tsx b/frontend/packages/console-shared/src/components/dashboard/status-card/states.tsx index 6b1f2758614..03a4afd36e4 100644 --- a/frontend/packages/console-shared/src/components/dashboard/status-card/states.tsx +++ b/frontend/packages/console-shared/src/components/dashboard/status-card/states.tsx @@ -25,21 +25,21 @@ export const healthStateMessage = (state: keyof typeof HealthState, t: TFunction case HealthState.OK: return ''; case HealthState.UNKNOWN: - return t('dashboard~Unknown'); + return t('console-shared~Unknown'); case HealthState.PROGRESS: - return t('dashboard~Pending'); + return t('console-shared~Pending'); case HealthState.UPDATING: - return t('dashboard~Updating'); + return t('console-shared~Updating'); case HealthState.WARNING: - return t('dashboard~Degraded'); + return t('console-shared~Degraded'); case HealthState.ERROR: - return t('dashboard~Degraded'); + return t('console-shared~Degraded'); case HealthState.LOADING: - return t('dashboard~Loading'); + return t('console-shared~Loading'); case HealthState.NOT_AVAILABLE: - return t('dashboard~Not available'); + return t('console-shared~Not available'); default: - return t('dashboard~Unknown'); + return t('console-shared~Unknown'); } }; diff --git a/frontend/packages/console-shared/src/components/dashboard/utilization-card/TopConsumerPopover.tsx b/frontend/packages/console-shared/src/components/dashboard/utilization-card/TopConsumerPopover.tsx index b0f5dd4b8e3..69548d2bc7a 100644 --- a/frontend/packages/console-shared/src/components/dashboard/utilization-card/TopConsumerPopover.tsx +++ b/frontend/packages/console-shared/src/components/dashboard/utilization-card/TopConsumerPopover.tsx @@ -34,7 +34,7 @@ const ConsumerPopover: React.FC = React.memo( const [isOpen, setOpen] = React.useState(false); return ( setOpen(false), [])} onShow={React.useCallback(() => setOpen(true), [])} @@ -88,14 +88,14 @@ export const LimitsBody: React.FC = ({ ((!!limitState && limitState !== LIMIT_STATE.OK) || (!!requestedState && requestedState !== LIMIT_STATE.OK)) && (
    - {t('dashboard~Total capacity')} + {t('console-shared~Total capacity')} - {t('dashboard~Total limit')} + {t('console-shared~Total limit')} - {t('dashboard~Current utilization')} - {t('dashboard~Current available capacity')} + {t('console-shared~Current utilization')} + {t('console-shared~Current available capacity')} - {t('dashboard~Total requested')} + {t('console-shared~Total requested')}
) @@ -171,7 +171,7 @@ export const PopoverBody = withDashboardResources consumers.reduce((items, curr) => { - items[referenceForModel(curr.model)] = t('dashboard~By {{label}}', { + items[referenceForModel(curr.model)] = t('console-shared~By {{label}}', { label: curr.model.label, }); return items; @@ -191,7 +191,7 @@ export const PopoverBody = withDashboardResources{t('public~Not available')}
; + body =
{t('console-shared~Not available')}
; } else if (!consumerLoaded || !data) { body = (
    @@ -207,7 +207,7 @@ export const PopoverBody = withDashboardResources
      {top5Data && top5Data.map((item) => { @@ -224,7 +224,7 @@ export const PopoverBody = withDashboardResources - {t('dashboard~View more')} + {t('console-shared~View more')} ); } @@ -237,17 +237,17 @@ export const PopoverBody = withDashboardResources {consumers.length === 1 - ? t('dashboard~Top {{label}} consumers', { + ? t('console-shared~Top {{label}} consumers', { label: currentConsumer.model.label.toLowerCase(), }) - : t('dashboard~Top consumers')} + : t('console-shared~Top consumers')}
{consumers.length > 1 && ( = ({ timestamps = [] }) =>
{!!timestamps.length && ( } + containerComponent={} scale={{ x: 'time' }} domain={{ x: [timestamps[0], timestamps[timestamps.length - 1]] }} tickFormat={timeFormatter.format} @@ -38,10 +38,10 @@ export const UtilizationBody: React.FC = ({ timestamps, ch
- {t('public~Resource')} + {t('console-shared~Resource')} - {t('dashboard~Usage')} + {t('console-shared~Usage')}
diff --git a/frontend/packages/console-shared/src/components/dashboard/utilization-card/UtilizationItem.tsx b/frontend/packages/console-shared/src/components/dashboard/utilization-card/UtilizationItem.tsx index d1ccc443fde..5dd7fc0eea0 100644 --- a/frontend/packages/console-shared/src/components/dashboard/utilization-card/UtilizationItem.tsx +++ b/frontend/packages/console-shared/src/components/dashboard/utilization-card/UtilizationItem.tsx @@ -67,7 +67,7 @@ export const MultilineUtilizationItem: React.FC = height={70} byteDataType={byteDataType} showAllTooltip - ariaChartLinkLabel={t('dashboard~View {{title}} metrics in query browser', { + ariaChartLinkLabel={t('console-shared~View {{title}} metrics in query browser', { title, })} ariaChartTitle={title} @@ -89,7 +89,7 @@ export const MultilineUtilizationItem: React.FC =

{title}

{error || (!isLoading && !(data.length && data.every((datum) => datum.length))) ? ( -
{t('public~Not available')}
+
{t('console-shared~Not available')}
) : (
{currentValue}
)} @@ -157,7 +157,7 @@ export const UtilizationItem: React.FC = React.memo( const chart = ( = React.memo(

{title}

{error || (!isLoading && !utilizationData?.length) ? ( -
{t('public~Not available')}
+
{t('console-shared~Not available')}
) : (
{LimitIcon && } @@ -245,15 +245,18 @@ export const UtilizationItem: React.FC = React.memo( > {humanLimit && ( - {t('dashboard~{{humanAvailable}} available of {{humanLimit}} total limit', { - humanAvailable, - humanLimit, - })} + {t( + 'console-shared~{{humanAvailable}} available of {{humanLimit}} total limit', + { + humanAvailable, + humanLimit, + }, + )} )} {!humanLimit && humanMax && ( - {t('dashboard~{{humanAvailable}} available of {{humanMax}}', { + {t('console-shared~{{humanAvailable}} available of {{humanMax}}', { humanAvailable, humanMax, })} @@ -261,7 +264,7 @@ export const UtilizationItem: React.FC = React.memo( )} {!humanLimit && !humanMax && ( - {t('dashboard~{{humanAvailable}} available', { + {t('console-shared~{{humanAvailable}} available', { humanAvailable, })} diff --git a/frontend/packages/dev-console/locales/en/devconsole.json b/frontend/packages/dev-console/locales/en/devconsole.json index 906e37bff45..3fcfbbb17f9 100644 --- a/frontend/packages/dev-console/locales/en/devconsole.json +++ b/frontend/packages/dev-console/locales/en/devconsole.json @@ -403,6 +403,7 @@ "Silence for": "Silence for", "Dashboard": "Dashboard", "Workload": "Workload", + "View metrics for {{title}}": "View metrics for {{title}}", "All workloads": "All workloads", "Filter by workload": "Filter by workload", "Select a query or enter your own to view metrics for this Project": "Select a query or enter your own to view metrics for this Project", diff --git a/frontend/packages/dev-console/src/components/monitoring/dashboard/MonitoringDashboardGraph.tsx b/frontend/packages/dev-console/src/components/monitoring/dashboard/MonitoringDashboardGraph.tsx index 62eff567b27..c2ce065a379 100644 --- a/frontend/packages/dev-console/src/components/monitoring/dashboard/MonitoringDashboardGraph.tsx +++ b/frontend/packages/dev-console/src/components/monitoring/dashboard/MonitoringDashboardGraph.tsx @@ -46,7 +46,7 @@ export const MonitoringDashboardGraph: React.FC = diff --git a/frontend/packages/operator-lifecycle-manager/src/components/catalog-source.spec.tsx b/frontend/packages/operator-lifecycle-manager/src/components/catalog-source.spec.tsx index 30a2035ea0b..b122d40db1e 100644 --- a/frontend/packages/operator-lifecycle-manager/src/components/catalog-source.spec.tsx +++ b/frontend/packages/operator-lifecycle-manager/src/components/catalog-source.spec.tsx @@ -32,7 +32,6 @@ jest.mock('react-i18next', () => { useTranslation: () => ({ t: (key) => key }), }; }); -const i18nNS = 'details-page'; jest.mock('@console/internal/components/utils/k8s-watch-hook', () => ({ useK8sWatchResource: jest.fn(), @@ -80,8 +79,8 @@ describe(CatalogSourceDetailsPage.displayName, () => { const detailsPage = wrapper.find(DetailsPage); const { pages } = detailsPage.props(); expect(pages.length).toEqual(3); - expect(pages[0].nameKey).toEqual(`${i18nNS}~Details`); - expect(pages[1].nameKey).toEqual(`${i18nNS}~YAML`); + expect(pages[0].nameKey).toEqual(`public~Details`); + expect(pages[1].nameKey).toEqual(`public~YAML`); expect(pages[2].nameKey).toEqual(`olm~Operators`); expect(pages[0].component).toEqual(CatalogSourceDetails); diff --git a/frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.spec.tsx b/frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.spec.tsx index 8438eebb0b2..d4eb56a77bc 100644 --- a/frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.spec.tsx +++ b/frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.spec.tsx @@ -538,14 +538,14 @@ describe(ClusterServiceVersionsDetailsPage.displayName, () => { it('renders a `DetailsPage` with the correct subpages', () => { const detailsPage = wrapper.find(DetailsPage); expect(detailsPage.props().pagesFor(testClusterServiceVersion)[0].nameKey).toEqual( - 'details-page~Details', + 'public~Details', ); expect(detailsPage.props().pagesFor(testClusterServiceVersion)[0].href).toEqual(''); expect(detailsPage.props().pagesFor(testClusterServiceVersion)[0].component).toEqual( ClusterServiceVersionDetails, ); expect(detailsPage.props().pagesFor(testClusterServiceVersion)[1].nameKey).toEqual( - `details-page~YAML`, + `public~YAML`, ); expect(detailsPage.props().pagesFor(testClusterServiceVersion)[1].href).toEqual('yaml'); expect(detailsPage.props().pagesFor(testClusterServiceVersion)[2].nameKey).toEqual( @@ -553,7 +553,7 @@ describe(ClusterServiceVersionsDetailsPage.displayName, () => { ); expect(detailsPage.props().pagesFor(testClusterServiceVersion)[2].href).toEqual('subscription'); expect(detailsPage.props().pagesFor(testClusterServiceVersion)[3].nameKey).toEqual( - `details-page~Events`, + `public~Events`, ); expect(detailsPage.props().pagesFor(testClusterServiceVersion)[3].href).toEqual('events'); }); diff --git a/frontend/packages/operator-lifecycle-manager/src/components/install-plan.spec.tsx b/frontend/packages/operator-lifecycle-manager/src/components/install-plan.spec.tsx index 0b81ee527a5..8ea7572c3f8 100644 --- a/frontend/packages/operator-lifecycle-manager/src/components/install-plan.spec.tsx +++ b/frontend/packages/operator-lifecycle-manager/src/components/install-plan.spec.tsx @@ -50,7 +50,7 @@ jest.mock('react-i18next', () => { }; }); -const i18nNS = 'details-page'; +const i18nNS = 'public'; describe('InstallPlanTableRow', () => { let obj: InstallPlanKind; diff --git a/frontend/packages/operator-lifecycle-manager/src/components/operand/index.spec.tsx b/frontend/packages/operator-lifecycle-manager/src/components/operand/index.spec.tsx index e3fe2d51a66..2d71f7966cc 100644 --- a/frontend/packages/operator-lifecycle-manager/src/components/operand/index.spec.tsx +++ b/frontend/packages/operator-lifecycle-manager/src/components/operand/index.spec.tsx @@ -86,7 +86,7 @@ jest.mock('@console/shared/src/hooks/useK8sModel', () => ({ ], })); -const i18nNS = 'details-page'; +const i18nNS = 'public'; describe(OperandTableRow.displayName, () => { let wrapper: ShallowWrapper; diff --git a/frontend/packages/pipelines-plugin/src/components/pipelineruns/__tests__/PipelineRunDetailsPage.spec.tsx b/frontend/packages/pipelines-plugin/src/components/pipelineruns/__tests__/PipelineRunDetailsPage.spec.tsx index 5bee3487ff9..372d00bc5f2 100644 --- a/frontend/packages/pipelines-plugin/src/components/pipelineruns/__tests__/PipelineRunDetailsPage.spec.tsx +++ b/frontend/packages/pipelines-plugin/src/components/pipelineruns/__tests__/PipelineRunDetailsPage.spec.tsx @@ -13,7 +13,7 @@ import TaskRuns from '../detail-page-tabs/TaskRuns'; const menuActions = jest.spyOn(utils, 'useMenuActionsWithUserAnnotation'); const breadCrumbs = jest.spyOn(hookUtils, 'usePipelinesBreadcrumbsFor'); type PipelineRunDetailsPageProps = React.ComponentProps; -const i18nNS = 'details-page'; +const i18nNS = 'public'; jest.mock('react-i18next', () => { const reactI18next = require.requireActual('react-i18next'); diff --git a/frontend/packages/pipelines-plugin/src/components/taskruns/events/__tests__/TaskRunDetailsPage.spec.tsx b/frontend/packages/pipelines-plugin/src/components/taskruns/events/__tests__/TaskRunDetailsPage.spec.tsx index 75ae57ed44f..452339a5954 100644 --- a/frontend/packages/pipelines-plugin/src/components/taskruns/events/__tests__/TaskRunDetailsPage.spec.tsx +++ b/frontend/packages/pipelines-plugin/src/components/taskruns/events/__tests__/TaskRunDetailsPage.spec.tsx @@ -9,7 +9,7 @@ import TaskRunEvents from '../TaskRunEvents'; const breadCrumbs = jest.spyOn(hookUtils, 'useTasksBreadcrumbsFor'); type TaskRunDetailsPageProps = React.ComponentProps; -const i18nNS = 'details-page'; +const i18nNS = 'public'; jest.mock('react-i18next', () => { const reactI18next = require.requireActual('react-i18next'); diff --git a/frontend/public/components/RBAC/bindings.jsx b/frontend/public/components/RBAC/bindings.jsx index b6f2793855e..2600d21205f 100644 --- a/frontend/public/components/RBAC/bindings.jsx +++ b/frontend/public/components/RBAC/bindings.jsx @@ -71,7 +71,7 @@ const menuActions = ({ subjectIndex, subjects }, startImpersonate) => { const actions = [ (kind, obj) => ({ - label: i18next.t('bindings~Duplicate {{label}}', kind), + label: i18next.t('public~Duplicate {{label}}', kind), href: `${resourceObjPath(obj, kind.kind)}/copy?subjectIndex=${subjectIndex}`, // Only perform access checks when duplicating cluster role bindings. // It's not practical to check namespace role bindings since we don't know what namespace the user will pick in the form. @@ -80,7 +80,7 @@ const menuActions = ({ subjectIndex, subjects }, startImpersonate) => { : { group: kind.apiGroup, resource: kind.plural, verb: 'create' }, }), (kind, obj) => ({ - label: i18next.t('bindings~Edit {{label}} subject', kind), + label: i18next.t('public~Edit {{label}} subject', kind), href: `${resourceObjPath(obj, kind.kind)}/edit?subjectIndex=${subjectIndex}`, accessReview: { group: kind.apiGroup, @@ -93,15 +93,15 @@ const menuActions = ({ subjectIndex, subjects }, startImpersonate) => { subjects.length === 1 ? Kebab.factory.Delete : (kind, binding) => ({ - label: i18next.t('bindings~Delete {{label}} subject', kind), + label: i18next.t('public~Delete {{label}} subject', kind), callback: () => confirmModal({ - title: i18next.t('bindings~Delete {{label}} subject', kind), + title: i18next.t('public~Delete {{label}} subject', kind), message: i18next.t( - 'bindings~Are you sure you want to delete subject {{name}} of type {{kind}}?', + 'public~Are you sure you want to delete subject {{name}} of type {{kind}}?', subject, ), - btnText: i18next.t('bindings~Delete subject'), + btnText: i18next.t('public~Delete subject'), executeFn: () => k8sPatch(kind, binding, [{ op: 'remove', path: `/subjects/${subjectIndex}` }]), }), @@ -117,7 +117,7 @@ const menuActions = ({ subjectIndex, subjects }, startImpersonate) => { if (subject.kind === 'User' || subject.kind === 'Group') { actions.unshift(() => ({ - label: i18next.t('bindings~Impersonate {{kind}} "{{name}}"', subject), + label: i18next.t('public~Impersonate {{kind}} "{{name}}"', subject), callback: () => startImpersonate(subject.kind, subject.name), })); } @@ -137,31 +137,31 @@ const tableColumnClasses = [ const RoleBindingsTableHeader = () => { return [ { - title: i18next.t('bindings~Name'), + title: i18next.t('public~Name'), sortField: 'metadata.name', transforms: [sortable], props: { className: tableColumnClasses[0] }, }, { - title: i18next.t('bindings~Role ref'), + title: i18next.t('public~Role ref'), sortField: 'roleRef.name', transforms: [sortable], props: { className: tableColumnClasses[1] }, }, { - title: i18next.t('bindings~Subject kind'), + title: i18next.t('public~Subject kind'), sortField: 'subject.kind', transforms: [sortable], props: { className: tableColumnClasses[2] }, }, { - title: i18next.t('bindings~Subject name'), + title: i18next.t('public~Subject name'), sortField: 'subject.name', transforms: [sortable], props: { className: tableColumnClasses[3] }, }, { - title: i18next.t('bindings~Namespace'), + title: i18next.t('public~Namespace'), sortField: 'metadata.namespace', transforms: [sortable], props: { className: tableColumnClasses[4] }, @@ -227,7 +227,7 @@ const RoleBindingsTableRow = ({ obj: binding, index, key, style }) => { {binding.metadata.namespace ? ( ) : ( - i18next.t('bindings~All namespaces') + i18next.t('public~All namespaces') )} @@ -241,9 +241,9 @@ const EmptyMsg = () => { const { t } = useTranslation(); return ( ); @@ -254,7 +254,7 @@ export const BindingsList = (props) => { return ( { const items = [ - { id: 'namespace', title: t('bindings~Namespace RoleBindings') }, - { id: 'system', title: t('bindings~System RoleBindings') }, + { id: 'namespace', title: t('public~Namespace RoleBindings') }, + { id: 'system', title: t('public~System RoleBindings') }, ]; if (data && data.loaded && !data.loadError) { items.unshift({ id: 'cluster', - title: t('bindings~Cluster-wide RoleBindings'), + title: t('public~Cluster-wide RoleBindings'), }); } return items; @@ -313,14 +313,14 @@ export const RoleBindingsPage = ({ return ( ); }; @@ -354,9 +354,9 @@ const NsRoleDropdown_ = (props) => { return ( ); }; @@ -368,9 +368,9 @@ const ClusterRoleDropdown = (props) => { return ( ); }; @@ -468,7 +468,7 @@ class BaseEditRoleBindingWithTranslation extends React.Component { (kind === 'RoleBinding' && !metadata.namespace) || (subject.kind === 'ServiceAccount' && !subject.namespace) ) { - this.setState({ error: t('bindings~Please complete all fields.') }); + this.setState({ error: t('public~Please complete all fields.') }); return; } @@ -502,23 +502,23 @@ class BaseEditRoleBindingWithTranslation extends React.Component { const bindingKinds = [ { value: 'RoleBinding', - title: t('bindings~Namespace role binding (RoleBinding)'), + title: t('public~Namespace role binding (RoleBinding)'), desc: t( - 'bindings~Grant the permissions to a user or set of users within the selected namespace.', + 'public~Grant the permissions to a user or set of users within the selected namespace.', ), }, { value: 'ClusterRoleBinding', - title: t('bindings~Cluster-wide role binding (ClusterRoleBinding)'), + title: t('public~Cluster-wide role binding (ClusterRoleBinding)'), desc: t( - 'bindings~Grant the permissions to a user or set of users at the cluster level and in all namespaces.', + 'public~Grant the permissions to a user or set of users at the cluster level and in all namespaces.', ), }, ]; const subjectKinds = [ - { value: 'User', title: t('bindings~User'), disabled: false }, - { value: 'Group', title: t('bindings~Group'), disabled: false }, - { value: 'ServiceAccount', title: t('bindings~ServiceAccount'), disabled: false }, + { value: 'User', title: t('public~User'), disabled: false }, + { value: 'Group', title: t('public~Group'), disabled: false }, + { value: 'ServiceAccount', title: t('public~ServiceAccount'), disabled: false }, ]; return ( @@ -532,22 +532,22 @@ class BaseEditRoleBindingWithTranslation extends React.Component {

{t( - 'bindings~Associate a user/group to the selected role to define the type of access and resources that are allowed.', + 'public~Associate a user/group to the selected role to define the type of access and resources that are allowed.', )}

{!_.get(fixed, 'kind') && ( -
+
)}
-
+
{_.get(fixed, 'metadata.name') ? ( @@ -556,7 +556,7 @@ class BaseEditRoleBindingWithTranslation extends React.Component { className="pf-c-form-control" type="text" onChange={this.changeName} - placeholder={t('bindings~RoleBinding name')} + placeholder={t('public~RoleBinding name')} value={metadata.name} required id="role-binding-name" @@ -567,7 +567,7 @@ class BaseEditRoleBindingWithTranslation extends React.Component { {kind === 'RoleBinding' && (
-
+
-
+
@@ -683,7 +683,7 @@ export const CreateRoleBinding = ({ match: { params }, location }) => { setActiveNamespace={setActiveNamespace} fixed={fixed} isCreate={true} - titleVerb={t('bindings~Create')} + titleVerb={t('public~Create')} /> ); }; @@ -718,8 +718,8 @@ export const EditRoleBinding = ({ match: { params }, kind }) => { ); @@ -735,7 +735,7 @@ export const CopyRoleBinding = ({ match: { params }, kind }) => { isCreate={true} fixedKeys={['kind']} subjectIndex={getSubjectIndex()} - titleVerb={t('bindings~Duplicate')} + titleVerb={t('public~Duplicate')} /> ); diff --git a/frontend/public/components/RBAC/role.jsx b/frontend/public/components/RBAC/role.jsx index 84cd16d99f1..e77f2949132 100644 --- a/frontend/public/components/RBAC/role.jsx +++ b/frontend/public/components/RBAC/role.jsx @@ -255,7 +255,7 @@ const getBreadcrumbs = (model, kindObj, match) => { ), }, { - name: i18next.t('details-page~{{kind}} details', { + name: i18next.t('public~{{kind}} details', { kind: kindObj.labelKey ? i18next.t(kindObj.labelKey) : kindObj.label, }), path: `${match.url}`, diff --git a/frontend/public/components/build.tsx b/frontend/public/components/build.tsx index c1df0b1ac7c..8336f5da544 100644 --- a/frontend/public/components/build.tsx +++ b/frontend/public/components/build.tsx @@ -48,8 +48,8 @@ import { timeFormatter, timeFormatterWithSeconds } from './utils/datetime'; const BuildsReference: K8sResourceKindReference = 'Build'; const CloneBuildAction: KebabAction = (kind: K8sKind, build: K8sResourceKind) => ({ - // t('build~Rebuild') - labelKey: 'build~Rebuild', + // t('public~Rebuild') + labelKey: 'public~Rebuild', callback: () => cloneBuild(build) .then((clone) => { @@ -70,22 +70,22 @@ const CloneBuildAction: KebabAction = (kind: K8sKind, build: K8sResourceKind) => }); const CancelAction: KebabAction = (kind: K8sKind, build: K8sResourceKind) => ({ - // t('build~Cancel build') - labelKey: 'build~Cancel build', + // t('public~Cancel build') + labelKey: 'public~Cancel build', hidden: build.status.phase !== 'Running' && build.status.phase !== 'Pending' && build.status.phase !== 'New', callback: () => confirmModal({ - // t('build~Cancel build'), - // t('build~Are you sure you want to cancel this build?'), - // t('build~Yes, cancel'), - // t("build~No, don't cancel"), - titleKey: 'build~Cancel build', - messageKey: 'build~Are you sure you want to cancel this build?', - btnTextKey: 'build~Yes, cancel', - cancelTextKey: "build~No, don't cancel", + // t('public~Cancel build'), + // t('public~Are you sure you want to cancel this build?'), + // t('public~Yes, cancel'), + // t("public~No, don't cancel"), + titleKey: 'public~Cancel build', + messageKey: 'public~Are you sure you want to cancel this build?', + btnTextKey: 'public~Yes, cancel', + cancelTextKey: "public~No, don't cancel", executeFn: () => k8sPatch(kind, build, [{ op: 'add', path: '/status/cancelled', value: true }]), }), @@ -122,7 +122,7 @@ export const BuildLogLink = ({ build }) => { return isPipeline ? ( ) : ( - {t('build~View logs')} + {t('public~View logs')} ); }; @@ -171,7 +171,7 @@ const BuildGraphs = requirePrometheus(({ build }) => { byteDataType={ByteDataTypes.BinaryBytes} humanize={humanizeBinaryBytes} query={`sum(container_memory_working_set_bytes{pod='${podName}',namespace='${namespace}',container=''}) BY (pod, namespace)`} - title={t('build~Memory usage')} + title={t('public~Memory usage')} {...areaProps} />
@@ -179,7 +179,7 @@ const BuildGraphs = requirePrometheus(({ build }) => {
@@ -188,7 +188,7 @@ const BuildGraphs = requirePrometheus(({ build }) => { byteDataType={ByteDataTypes.BinaryBytes} humanize={humanizeBinaryBytes} query={`pod:container_fs_usage_bytes:sum{pod='${podName}',container='',namespace='${namespace}'}`} - title={t('build~Filesystem')} + title={t('public~Filesystem')} {...areaProps} />
@@ -205,19 +205,19 @@ export const PipelineBuildStrategyAlert: React.FC = () => { isInline className="co-alert" variant="info" - title={t('build~Pipeline build strategy deprecation')} + title={t('public~Pipeline build strategy deprecation')} > - + With the release of{' '} , the pipelines build strategy has been deprecated. Users should either use Jenkins files directly on Jenkins or use cloud-native CI/CD with Openshift Pipelines. @@ -234,7 +234,7 @@ export const BuildsDetails: React.SFC = ({ obj: build }) => <>
{hasPipeline && } - + {hasPipeline && (
@@ -247,7 +247,7 @@ export const BuildsDetails: React.SFC = ({ obj: build }) =>
= ({ obj: build }) => {triggeredBy} = ({ obj: build }) =>
- + - + {message}
{logSnippet}
- + {duration}
@@ -339,7 +344,7 @@ export const BuildEnvironmentComponent = (props) => { return (
- {t('build~The environment variable editor does not support build strategy: {{ type }}', { + {t('public~The environment variable editor does not support build strategy: {{ type }}', { type: obj.spec.strategy.type, })} . @@ -404,26 +409,26 @@ export const BuildsList: React.SFC = (props) => { const BuildsTableHeader = () => { return [ { - title: t('build~Name'), + title: t('public~Name'), sortField: 'metadata.name', transforms: [sortable], props: { className: tableColumnClasses[0] }, }, { - title: t('build~Namespace'), + title: t('public~Namespace'), sortField: 'metadata.namespace', transforms: [sortable], props: { className: tableColumnClasses[1] }, id: 'namespace', }, { - title: t('build~Status'), + title: t('public~Status'), sortField: 'status.phase', transforms: [sortable], props: { className: tableColumnClasses[2] }, }, { - title: t('build~Created'), + title: t('public~Created'), sortField: 'metadata.creationTimestamp', transforms: [sortable], props: { className: tableColumnClasses[3] }, @@ -439,7 +444,7 @@ export const BuildsList: React.SFC = (props) => { return (
= (props) => { return ( { const ClusterOperatorTableHeader = () => { return [ { - title: t('cluster-operator~Name'), + title: t('public~Name'), sortField: 'metadata.name', transforms: [sortable], props: { className: tableColumnClasses[0] }, }, { - title: t('cluster-operator~Status'), + title: t('public~Status'), sortFunc: 'getClusterOperatorStatus', transforms: [sortable], props: { className: tableColumnClasses[1] }, }, { - title: t('cluster-operator~Version'), + title: t('public~Version'), sortFunc: 'getClusterOperatorVersion', transforms: [sortable], props: { className: tableColumnClasses[2] }, }, { - title: t('cluster-operator~Message'), + title: t('public~Message'), props: { className: tableColumnClasses[3] }, }, ]; @@ -163,7 +163,7 @@ export const ClusterOperatorPage: React.FC = (props) = const { t } = useTranslation(); const filters = [ { - filterGroupName: t('cluster-operator~Status'), + filterGroupName: t('public~Status'), type: 'cluster-operator-status', reducer: getClusterOperatorStatus, items: _.map(allStatuses, (phase) => ({ @@ -196,8 +196,8 @@ const OperandVersions: React.FC = ({ versions }) => {
- - + + @@ -225,7 +225,7 @@ const ClusterOperatorDetails: React.FC = ({ obj }) <>
@@ -237,26 +237,26 @@ const ClusterOperatorDetails: React.FC = ({ obj })
{operatorVersion && ( <> -
{t('cluster-operator~Version')}
+
{t('public~Version')}
{operatorVersion}
)} -
{t('cluster-operator~Status')}
+
{t('public~Status')}
-
{t('cluster-operator~Message')}
+
{t('public~Message')}
{message || '-'}
- +
- +
@@ -274,14 +274,14 @@ export const ClusterOperatorDetailsPage: React.FC [ { name: ClusterOperatorModel.labelPlural, path: '/settings/cluster/clusteroperators' }, { - name: t('cluster-operator~{{resource}} details', { + name: t('public~{{resource}} details', { resource: ClusterOperatorModel.label, }), path: props.match.url, diff --git a/frontend/public/components/cluster-settings/cluster-settings.tsx b/frontend/public/components/cluster-settings/cluster-settings.tsx index c70cd55d21d..108b26c61e0 100644 --- a/frontend/public/components/cluster-settings/cluster-settings.tsx +++ b/frontend/public/components/cluster-settings/cluster-settings.tsx @@ -142,7 +142,7 @@ const calculatePercentage = (numerator: number, denominator: number): number => export const CurrentChannel: React.FC = ({ cv, clusterVersionIsEditable }) => { const { t } = useTranslation(); - const label = cv.spec.channel || t('cluster-settings~Not configured'); + const label = cv.spec.channel || t('public~Not configured'); return clusterVersionIsEditable ? ( ); @@ -177,7 +177,7 @@ const UpdatesAvailableMessage: React.FC = () => { const { t } = useTranslation(); return (
- {t('cluster-settings~Available updates')} + {t('public~Available updates')}
); }; @@ -193,7 +193,7 @@ const FailingMessageText: React.FC = ({ cv }) => {
- {t('cluster-settings~Failing')} + {t('public~Failing')}
@@ -209,7 +209,7 @@ export const ClusterVersionConditionsLink: React.FC - {t('cluster-settings~View conditions')} + {t('public~View conditions')} ); }; @@ -217,7 +217,7 @@ export const ClusterVersionConditionsLink: React.FC = ({ cv }) => { const version = getDesiredClusterVersion(cv); const { t } = useTranslation(); - return <>{t('cluster-settings~Update to {{version}} in progress', { version })}; + return <>{t('public~Update to {{version}} in progress', { version })}; }; const UpdatingMessage: React.FC = ({ cv, isFailing }) => { @@ -242,16 +242,15 @@ const ErrorRetrievingMessage: React.FC = ({ cv }) => { const { t } = useTranslation(); return retrievedUpdatesCondition.reason === 'NoChannel' ? ( <> - {' '} - {t('cluster-settings~Not configured to request update recommedations.')} + {t('public~Not configured to request update recommedations.')} ) : ( {' '} {retrievedUpdatesCondition.reason === 'VersionNotFound' - ? t('cluster-settings~Version not found') - : t('cluster-settings~Error retrieving')} + ? t('public~Version not found') + : t('public~Error retrieving')} ); @@ -270,7 +269,7 @@ const UpToDateMessage: React.FC<{}> = () => { const { t } = useTranslation(); return ( - {t('cluster-settings~Up to date')} + {t('public~Up to date')} ); }; @@ -300,7 +299,7 @@ export const ReleaseNotesLink: React.FC = ({ version }) = const { t } = useTranslation(); return ( releaseNotesLink && ( - + ) ); }; @@ -324,7 +323,7 @@ export const CurrentVersion: React.FC = ({ cv }) => { ) : ( <> -  {t('cluster-settings~Unknown')} +  {t('public~Unknown')} ); } @@ -339,7 +338,7 @@ export const CurrentVersion: React.FC = ({ cv }) => { ) : ( - <>{t('cluster-settings~None')} + <>{t('public~None')} ); }; @@ -372,8 +371,8 @@ export const CurrentVersionHeader: React.FC = ({ cv }) => { return ( <> {status === ClusterUpdateStatus.UpToDate || status === ClusterUpdateStatus.UpdatesAvailable - ? t('cluster-settings~Current version') - : t('cluster-settings~Last completed version')} + ? t('public~Current version') + : t('public~Last completed version')} ); }; @@ -383,7 +382,7 @@ export const ChannelDocLink: React.FC<{}> = () => { return ( ); }; @@ -392,11 +391,11 @@ const ChannelHeader: React.FC<{}> = () => { const { t } = useTranslation(); return ( <> - {t('cluster-settings~Channel')} + {t('public~Channel')}

{t( - 'cluster-settings~Channels help to control the pace of updates and recommend the appropriate release versions. Update channels are tied to a minor version of OpenShift Container Platform, for example 4.5.', + 'public~Channels help to control the pace of updates and recommend the appropriate release versions. Update channels are tied to a minor version of OpenShift Container Platform, for example 4.5.', )}

@@ -467,7 +466,7 @@ const ChannelVersionDot: React.FC = ({ current, version - {t('cluster-settings~Version')} {version} + {t('public~Version')} {version} } bodyContent={} @@ -534,7 +533,7 @@ export const NodesUpdatesGroup: React.FC = ({ {name !== 'Master' && ( {t( - 'cluster-settings~{{name}} {{resource}} may continue to update after the update of Master {{resource}} and {{resource2}} are complete.', + 'public~{{name}} {{resource}} may continue to update after the update of Master {{resource}} and {{resource2}} are complete.', { name, resource: NodeModel.labelPlural, @@ -546,7 +545,7 @@ export const NodesUpdatesGroup: React.FC = ({ = ({ cv }) => { className="co-channel-more-versions" onClick={() => clusterMoreUpdatesModal({ cv })} > - {t('cluster-settings~+ More')} + {t('public~+ More')} )} @@ -631,7 +630,7 @@ export const UpdatesGraph: React.FC = ({ cv }) => { - {t('cluster-settings~{{currentChannel}} channel', { currentChannel })} + {t('public~{{currentChannel}} channel', { currentChannel })} {newerChannel && ( @@ -643,9 +642,7 @@ export const UpdatesGraph: React.FC = ({ cv }) => { - - {t('cluster-settings~{{newerChannel}} channel', { newerChannel })} - + {t('public~{{newerChannel}} channel', { newerChannel })} )} @@ -683,7 +680,7 @@ export const UpdateInProgress: React.FC = ({ @@ -769,7 +766,7 @@ export const ClusterVersionDetailsTable: React.FC
-
{t('cluster-settings~Update status')}
+
{t('public~Update status')}
@@ -852,21 +849,21 @@ export const ClusterVersionDetailsTable: React.FC {window.SERVER_FLAGS.branding !== 'okd' && window.SERVER_FLAGS.branding !== 'azure' && ( <> -
{t('cluster-settings~Subscription')}
+
{t('public~Subscription')}
.
)} -
{t('cluster-settings~Cluster ID')}
+
{t('public~Cluster ID')}
{clusterID}
-
{t('cluster-settings~Desired release image')}
+
{t('public~Desired release image')}
{imageParts.length === 2 ? ( <> @@ -877,18 +874,18 @@ export const ClusterVersionDetailsTable: React.FC -
{t('cluster-settings~Cluster version configuration')}
+
{t('public~Cluster version configuration')}
{autoscalers && ( <> -
{t('cluster-settings~Cluster autoscaler')}
+
{t('public~Cluster autoscaler')}
{_.isEmpty(autoscalers) ? ( - {t('cluster-settings~Create autoscaler')} + {t('public~Create autoscaler')} ) : ( autoscalers.map((autoscaler) => ( @@ -907,20 +904,20 @@ export const ClusterVersionDetailsTable: React.FC
- + {_.isEmpty(history) ? ( - + ) : (
{t('cluster-operator~Name')}{t('cluster-operator~Version')}{t('public~Name')}{t('public~Version')}
- - - - + + + + {releaseNotes && ( - + )} @@ -971,7 +968,7 @@ export const ClusterOperatorTabPage: React.FC = ({ export const ClusterSettingsPage: React.FC = ({ match }) => { const { t } = useTranslation(); const hasClusterAutoscaler = useFlag(FLAGS.CLUSTER_AUTOSCALER); - const title = t('cluster-settings~Cluster Settings'); + const title = t('public~Cluster Settings'); const resources: FirehoseResource[] = [ { kind: clusterVersionReference, name: 'version', isList: false, prop: 'obj' }, ]; @@ -987,7 +984,7 @@ export const ClusterSettingsPage: React.FC = ({ match const pages = [ { href: '', - name: t('cluster-settings~Details'), + name: t('public~Details'), component: ClusterVersionDetailsTable, }, { @@ -997,7 +994,7 @@ export const ClusterSettingsPage: React.FC = ({ match }, { href: 'globalconfig', - name: t('cluster-settings~Global configuration'), + name: t('public~Global configuration'), component: GlobalConfigPage, }, ]; diff --git a/frontend/public/components/cluster-settings/cluster-version.tsx b/frontend/public/components/cluster-settings/cluster-version.tsx index f7d6ad56e07..afe6a955a4a 100644 --- a/frontend/public/components/cluster-settings/cluster-version.tsx +++ b/frontend/public/components/cluster-settings/cluster-version.tsx @@ -18,12 +18,12 @@ const ClusterVersionDetails: React.FC = ({ obj }) => <>
- +
diff --git a/frontend/public/components/cluster-settings/global-config.tsx b/frontend/public/components/cluster-settings/global-config.tsx index 7149ccd4777..4212940b8ff 100644 --- a/frontend/public/components/cluster-settings/global-config.tsx +++ b/frontend/public/components/cluster-settings/global-config.tsx @@ -32,11 +32,11 @@ const stateToProps = (state: RootState) => ({ export const breadcrumbsForGlobalConfig = (detailsPageKind: string, detailsPagePath: string) => [ { - name: i18next.t('details-page~Global configuration'), + name: i18next.t('public~Global configuration'), path: '/settings/cluster/globalconfig', }, { - name: i18next.t('details-page~{{kind}} details', { kind: detailsPageKind }), + name: i18next.t('public~{{kind}} details', { kind: detailsPageKind }), path: detailsPagePath, }, ]; diff --git a/frontend/public/components/conditions.tsx b/frontend/public/components/conditions.tsx index 592a0fac7d7..27f729b8cf3 100644 --- a/frontend/public/components/conditions.tsx +++ b/frontend/public/components/conditions.tsx @@ -44,17 +44,17 @@ export const Conditions: React.FC = ({ conditions }) => { {conditions?.length ? (
-
{t('details-page~Type')}
-
{t('details-page~Status')}
-
{t('details-page~Updated')}
-
{t('details-page~Reason')}
-
{t('details-page~Message')}
+
{t('public~Type')}
+
{t('public~Status')}
+
{t('public~Updated')}
+
{t('public~Reason')}
+
{t('public~Message')}
{rows}
) : (
-
{t('details-page~No conditions found')}
+
{t('public~No conditions found')}
)} diff --git a/frontend/public/components/custom-resource-definition.tsx b/frontend/public/components/custom-resource-definition.tsx index 481a26c7371..bb68c99a0da 100644 --- a/frontend/public/components/custom-resource-definition.tsx +++ b/frontend/public/components/custom-resource-definition.tsx @@ -49,8 +49,8 @@ const crdInstancesPath = (crd: CustomResourceDefinitionKind) => : `/k8s/cluster/${referenceForCRD(crd)}`; const instances = (kind: K8sKind, obj: CustomResourceDefinitionKind) => ({ - // t('custom-resource-definition~View instances') - labelKey: 'custom-resource-definition~View instances', + // t('public~View instances') + labelKey: 'public~View instances', href: crdInstancesPath(obj), }); @@ -80,18 +80,18 @@ const Established: React.FC<{ crd: CustomResourceDefinitionKind }> = ({ crd }) = const { t } = useTranslation(); return crd.status && isEstablished(crd.status.conditions) ? ( - + ) : ( - + ); }; const EmptyVersionsMsg: React.FC<{}> = () => { const { t } = useTranslation(); - return ; + return ; }; const CRDVersionTable: React.FC = ({ versions }) => { @@ -120,15 +120,15 @@ const CRDVersionTable: React.FC = ({ versions }) => { const { t } = useTranslation(); const crdVersionTableHeaders = [ { - title: t('custom-resource-definition~Name'), + title: t('public~Name'), transforms: [sortable], }, { - title: t('custom-resource-definition~Served'), + title: t('public~Served'), transforms: [sortable], }, { - title: t('custom-resource-definition~Storage'), + title: t('public~Storage'), transforms: [sortable], }, ]; @@ -136,7 +136,7 @@ const CRDVersionTable: React.FC = ({ versions }) => { return versionRows.length > 0 ? ( = ({ obj: crd }) <>
@@ -167,33 +167,25 @@ const Details: React.FC<{ obj: CustomResourceDefinitionKind }> = ({ obj: crd })
-
{t('custom-resource-definition~Established')}
+
{t('public~Established')}
- -
{t('custom-resource-definition~Latest version')}
+ +
{t('public~Latest version')}
{getLatestVersionForCRD(crd)}
- +
- +
- +
@@ -224,31 +216,31 @@ export const CustomResourceDefinitionsList: React.FC { return [ { - title: t('custom-resource-definition~Name'), + title: t('public~Name'), sortField: 'spec.names.kind', transforms: [sortable], props: { className: tableColumnClasses[0] }, }, { - title: t('custom-resource-definition~Group'), + title: t('public~Group'), sortField: 'spec.group', transforms: [sortable], props: { className: tableColumnClasses[1] }, }, { - title: t('custom-resource-definition~Latest version'), + title: t('public~Latest version'), sortFunc: 'crdLatestVersion', transforms: [sortable], props: { className: tableColumnClasses[2] }, }, { - title: t('custom-resource-definition~Namespaced'), + title: t('public~Namespaced'), sortField: 'spec.scope', transforms: [sortable], props: { className: tableColumnClasses[3] }, }, { - title: t('custom-resource-definition~Established'), + title: t('public~Established'), props: { className: tableColumnClasses[4] }, }, { @@ -280,9 +272,7 @@ export const CustomResourceDefinitionsList: React.FC {getLatestVersionForCRD(crd)} - {namespaced(crd) - ? t('custom-resource-definition~Yes') - : t('custom-resource-definition~No')} + {namespaced(crd) ? t('public~Yes') : t('public~No')} @@ -331,7 +321,7 @@ export const CustomResourceDefinitionsDetailsPage: React.FC = React.memo(() => { return ( - {t('dashboard~Activity')} - {t('dashboard~View events')} + {t('public~Activity')} + {t('public~View events')} diff --git a/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/details-card.tsx b/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/details-card.tsx index 268f3e1b640..833bc9623f0 100644 --- a/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/details-card.tsx +++ b/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/details-card.tsx @@ -60,7 +60,7 @@ const ClusterVersion: React.FC = ({ cv }) => {
- {t('dashboard~Updating')} + {t('public~Updating')}
@@ -73,7 +73,7 @@ const ClusterVersion: React.FC = ({ cv }) => {
- {t('dashboard~Update cluster')} + {t('public~Update cluster')}
)} @@ -83,7 +83,7 @@ const ClusterVersion: React.FC = ({ cv }) => { return lastVersion ? ( {lastVersion} ) : ( - {t('dashboard~Not available')} + {t('public~Not available')} ); } }; @@ -138,17 +138,15 @@ export const DetailsCard_ = connect(mapStateToProps)( return ( - {t('dashboard~Details')} - - {t('dashboard~View settings')} - + {t('public~Details')} + {t('public~View settings')} {openshiftFlag ? ( <> @@ -164,13 +162,13 @@ export const DetailsCard_ = connect(mapStateToProps)( {window.SERVER_FLAGS.branding !== 'okd' && window.SERVER_FLAGS.branding !== 'azure' && ( )} {isSingleNode(infrastructure) && ( - {t('dashboard~No (single master)')} + {t('public~No (single master)')} )} ) : ( = ({ return ( <> {t( - 'dashboard~Operators create, configure, and manage applications by extending the Kubernetes API.', + 'public~Operators create, configure, and manage applications by extending the Kubernetes API.', )} {sections} @@ -100,10 +100,10 @@ export const OperatorHealthItem = withDashboardResources diff --git a/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/inventory-card.tsx b/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/inventory-card.tsx index f443cb02756..1a87e8e4fad 100644 --- a/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/inventory-card.tsx +++ b/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/inventory-card.tsx @@ -125,7 +125,7 @@ export const InventoryCard = () => { return ( - {t('dashboard~Cluster inventory')} + {t('public~Cluster inventory')} {mergedItems.map((item) => ( diff --git a/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/status-card.tsx b/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/status-card.tsx index ee8ee8f23b5..329dc4293cc 100644 --- a/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/status-card.tsx +++ b/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/status-card.tsx @@ -108,9 +108,9 @@ const ClusterAlerts = withDashboardResources( - {t('dashboard~Update cluster')} + {t('public~Update cluster')} , ); } @@ -183,8 +183,8 @@ export const StatusCard = connect(mapStateToProps)(({ k8sModels return ( - {t('dashboard~Status')} - {t('dashboard~View alerts')} + {t('public~Status')} + {t('public~View alerts')} diff --git a/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/utilization-card.tsx b/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/utilization-card.tsx index 02ef1dfd5fd..6e7fce9cffd 100644 --- a/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/utilization-card.tsx +++ b/frontend/public/components/dashboard/dashboards-page/cluster-dashboard/utilization-card.tsx @@ -376,7 +376,7 @@ export const UtilizationCard = () => { const cpuPopover = React.useCallback( React.memo(({ current }) => ( { const memPopover = React.useCallback( React.memo(({ current }) => ( { const storagePopover = React.useCallback( React.memo(({ current }) => ( { const podPopover = React.useCallback( React.memo(({ current }) => ( { const networkInPopover = React.useCallback( React.memo(({ current }) => ( { const networkOutPopover = React.useCallback( React.memo(({ current }) => ( { return ( - {t('dashboard~Cluster utilization')} + {t('public~Cluster utilization')} { { setTimestamps={setTimestamps} /> { byteDataType={ByteDataTypes.BinaryBytes} /> { byteDataType={ByteDataTypes.BinaryBytes} /> = ({ match, kindsInFlight, k8sModels }) => { const { t } = useTranslation(); - const title = t('dashboard~Overview'); + const title = t('public~Overview'); const tabExtensions = useExtensions(isDashboardsTab); const cardExtensions = useExtensions(isDashboardsCard); @@ -72,7 +72,7 @@ const DashboardsPage_: React.FC = ({ match, kindsInFlight, () => [ { href: '', - name: t('dashboard~Cluster'), + name: t('public~Cluster'), component: ClusterDashboard, }, ...pluginPages, diff --git a/frontend/public/components/deployment-config.tsx b/frontend/public/components/deployment-config.tsx index bd65c929d64..5bebeb2d5d0 100644 --- a/frontend/public/components/deployment-config.tsx +++ b/frontend/public/components/deployment-config.tsx @@ -273,13 +273,13 @@ const ReplicationControllersTab: React.FC = ({ o /> ); }; -// t('details-page~ReplicationControllers') +// t('public~ReplicationControllers') const pages = [ navFactory.details(DeploymentConfigsDetails), navFactory.editYaml(), { href: 'replicationcontrollers', - nameKey: 'details-page~ReplicationControllers', + nameKey: 'public~ReplicationControllers', component: ReplicationControllersTab, }, navFactory.pods(), diff --git a/frontend/public/components/deployment.tsx b/frontend/public/components/deployment.tsx index 79ed05264fe..61d338a31f5 100644 --- a/frontend/public/components/deployment.tsx +++ b/frontend/public/components/deployment.tsx @@ -225,7 +225,7 @@ export const DeploymentsDetailsPage: React.FC = (pr const ns = useSelector((state: RootState) => getActiveNamespace(state)); const { csvData } = useCsvWatchResource(ns); - // t('details-page~ReplicaSets') + // t('public~ReplicaSets') return ( = (pr editYaml(), { href: 'replicasets', - nameKey: 'details-page~ReplicaSets', + nameKey: 'public~ReplicaSets', component: ReplicaSetsTab, }, pods(), diff --git a/frontend/public/components/modals/add-users-modal.tsx b/frontend/public/components/modals/add-users-modal.tsx index 8b1021acd1c..8b2d1148993 100644 --- a/frontend/public/components/modals/add-users-modal.tsx +++ b/frontend/public/components/modals/add-users-modal.tsx @@ -28,20 +28,15 @@ export const AddUsersModal = withHandlePromise((props: AddUsersModalProps) => { return (
- {t('add-users-modal~Add users')} + {t('public~Add users')} -

{t('add-users-modal~Add new Users to Group {name}.', props.group.metadata)}

- +

{t('public~Add new Users to Group {name}.', props.group.metadata)}

+
diff --git a/frontend/public/components/modals/cluster-channel-modal.tsx b/frontend/public/components/modals/cluster-channel-modal.tsx index f0ebccfe015..a1187e8d309 100644 --- a/frontend/public/components/modals/cluster-channel-modal.tsx +++ b/frontend/public/components/modals/cluster-channel-modal.tsx @@ -40,25 +40,23 @@ const ClusterChannelModal = withHandlePromise((props: ClusterChannelModalProps) return (
- {channelsExist - ? t('cluster-channel-modal~Select channel') - : t('cluster-channel-modal~Input channel')} + {channelsExist ? t('public~Select channel') : t('public~Input channel')}

{channelsExist ? t( - 'cluster-channel-modal~The current version is available in the channels listed in the dropdown below. Select a channel that reflects the desired version. Critical security updates will be delivered to any vulnerable channels.', + 'public~The current version is available in the channels listed in the dropdown below. Select a channel that reflects the desired version. Critical security updates will be delivered to any vulnerable channels.', ) : t( - 'cluster-channel-modal~Input a channel that reflects the desired version. To verify if the version exists in a channel, save and check the update status. Critical security updates will be delivered to any vulnerable channels.', + 'public~Input a channel that reflects the desired version. To verify if the version exists in a channel, save and check the update status. Critical security updates will be delivered to any vulnerable channels.', )}

- + {channelsExist ? ( setChannel(newChannel)} selectedKey={channel} - title={t('cluster-channel-modal~Channel')} + title={t('public~Channel')} /> ) : ( <> @@ -74,19 +72,16 @@ const ClusterChannelModal = withHandlePromise((props: ClusterChannelModalProps) id="channel" onChange={(newChannel) => setChannel(newChannel)} value={channel} - placeholder={t(`cluster-channel-modal~e.g., {{version}}`, { + placeholder={t(`public~e.g., {{version}}`, { version: `stable-${version.major}.${version.minor}`, })} />

- {t( - `cluster-channel-modal~Potential channels are {{stable}}, {{fast}}, or {{candidate}}.`, - { - stable: `stable-${version.major}.${version.minor}`, - fast: `fast-${version.major}.${version.minor}`, - candidate: `candidate-${version.major}.${version.minor}`, - }, - )} + {t(`public~Potential channels are {{stable}}, {{fast}}, or {{candidate}}.`, { + stable: `stable-${version.major}.${version.minor}`, + fast: `fast-${version.major}.${version.minor}`, + candidate: `candidate-${version.major}.${version.minor}`, + })}

)} diff --git a/frontend/public/components/modals/cluster-update-modal.tsx b/frontend/public/components/modals/cluster-update-modal.tsx index e5856e98edd..46c3e965eea 100644 --- a/frontend/public/components/modals/cluster-update-modal.tsx +++ b/frontend/public/components/modals/cluster-update-modal.tsx @@ -58,21 +58,21 @@ const ClusterUpdateModal = withHandlePromise((props: ClusterUpdateModalProps) => return ( - {t('cluster-update-modal~Update cluster')} + {t('public~Update cluster')}
- +

{currentVersion}

- + setDesiredVersion(newDesiredVersion)} selectedKey={desiredVersion} - title={t('cluster-update-modal~Select version')} + title={t('public~Select version')} />
diff --git a/frontend/public/components/namespace.jsx b/frontend/public/components/namespace.jsx index 31b55ed7b18..db4b728db54 100644 --- a/frontend/public/components/namespace.jsx +++ b/frontend/public/components/namespace.jsx @@ -1067,7 +1067,7 @@ class NamespaceBarDropdowns_ extends React.Component { const { loaded, data } = this.props.namespace; const model = getModel(useProjects); const allNamespacesTitle = - model.label === 'Project' ? t('dropdown~All Projects') : t('dropdown~All Namespaces'); + model.label === 'Project' ? t('public~All Projects') : t('public~All Namespaces'); const items = {}; if (canListNS) { items[ALL_NAMESPACES_KEY] = allNamespacesTitle; @@ -1120,15 +1120,15 @@ class NamespaceBarDropdowns_ extends React.Component { canFavorite items={items} actionItems={defaultActionItem} - titlePrefix={model.label === 'Project' ? t('dropdown~Project') : t('dropdown~Namespace')} + titlePrefix={model.label === 'Project' ? t('public~Project') : t('public~Namespace')} title={title} onChange={onChange} selectedKey={activeNamespace || ALL_NAMESPACES_KEY} autocompleteFilter={autocompleteFilter} autocompletePlaceholder={ model.label === 'Project' - ? t('dropdown~Select Project...') - : t('dropdown~Select Namespace...') + ? t('public~Select Project...') + : t('public~Select Namespace...') } userSettingsPrefix={NAMESPACE_USERSETTINGS_PREFIX} storageKey={NAMESPACE_LOCAL_STORAGE_KEY} diff --git a/frontend/public/components/persistent-volume-claim.jsx b/frontend/public/components/persistent-volume-claim.jsx index 15313c9f183..c4f1c30a483 100644 --- a/frontend/public/components/persistent-volume-claim.jsx +++ b/frontend/public/components/persistent-volume-claim.jsx @@ -55,7 +55,7 @@ const menuActions = [ ModifyAnnotations, Edit, (kind, obj) => ({ - label: i18next.t('details-page~Delete PersistentVolumeClaim'), + label: i18next.t('public~Delete PersistentVolumeClaim'), callback: () => deletePVCModal({ pvc: obj, diff --git a/frontend/public/components/pod.tsx b/frontend/public/components/pod.tsx index 936c479910d..9f363602498 100644 --- a/frontend/public/components/pod.tsx +++ b/frontend/public/components/pod.tsx @@ -772,7 +772,7 @@ export const PodExecLoader: React.FC = ({ obj, message }) => ); export const PodsDetailsPage: React.FC = (props) => { - // t('details-page~Terminal') + // t('public~Terminal') return ( = (props) => { navFactory.events(ResourceEventStream), { href: 'terminal', - nameKey: 'details-page~Terminal', + nameKey: 'public~Terminal', component: PodExecLoader, }, ]} diff --git a/frontend/public/components/utils/breadcrumbs.ts b/frontend/public/components/utils/breadcrumbs.ts index 1d48be0fc0a..eed12bcf0d0 100644 --- a/frontend/public/components/utils/breadcrumbs.ts +++ b/frontend/public/components/utils/breadcrumbs.ts @@ -24,7 +24,7 @@ export const breadcrumbsForDetailsPage = (kindObj: K8sKind, match: any) => () => path: getBreadcrumbPath(match), }, { - name: i18next.t('details-page~{{kind}} details', { + name: i18next.t('public~{{kind}} details', { kind: i18next.t(kindObj.labelKey) || kindObj.label, }), path: `${match.url}`, diff --git a/frontend/public/components/utils/build-strategy.tsx b/frontend/public/components/utils/build-strategy.tsx index 937058519ee..b4a5fe55a7d 100644 --- a/frontend/public/components/utils/build-strategy.tsx +++ b/frontend/public/components/utils/build-strategy.tsx @@ -28,25 +28,21 @@ export const BuildStrategy: React.SFC = ({ resource, childre return (
{children} - + {commitMessage && ( - + {commitMessage}
{commitHash && {commitHash.substring(0, 7)}}{' '} @@ -54,23 +50,19 @@ export const BuildStrategy: React.SFC = ({ resource, childre
)} {dockerfile && ( - +
{dockerfile}
)} @@ -81,7 +73,7 @@ export const BuildStrategy: React.SFC = ({ resource, childre )} {jenkinsfile && ( @@ -89,13 +81,13 @@ export const BuildStrategy: React.SFC = ({ resource, childre )} {buildFrom && buildFrom.kind === 'ImageStreamTag' && ( - + = ({ resource, childre )} {buildFrom && buildFrom.kind === 'DockerImage' && ( - + {buildFrom.name} )} {outputTo && outputTo.kind === 'ImageStreamTag' && ( - + = ({ resource, childre )} {outputTo && outputTo.kind === 'DockerImage' && ( - + {outputTo.name} )} {pushSecret && ( - + = ({ resource, childre /> )} - + {resourceLimits && ( @@ -154,7 +137,7 @@ export const BuildStrategy: React.SFC = ({ resource, childre )} {triggers && ( - + {triggers} )} diff --git a/frontend/public/components/utils/details-page.tsx b/frontend/public/components/utils/details-page.tsx index 6be222288bf..37041724db2 100644 --- a/frontend/public/components/utils/details-page.tsx +++ b/frontend/public/components/utils/details-page.tsx @@ -77,12 +77,12 @@ export const ResourceSummary: React.FC = ({ return (
{metadata.namespace && ( - + = ({ )} = ({ {showPodSelector && ( - + = ({ )} {showNodeSelector && ( - - + + )} {showTolerations && ( - + {canUpdate ? ( ) : ( - t('details-page~{{count}} toleration', { count: _.size(tolerations) }) + t('public~{{count}} toleration', { count: _.size(tolerations) }) )} )} {showAnnotations && ( - + {canUpdate ? ( ) : ( - t('details-page~{{count}} annotation', { count: _.size(metadata.annotations) }) + t('public~{{count}} annotation', { count: _.size(metadata.annotations) }) )} )} {children} - + - +
@@ -174,13 +166,13 @@ export const ResourcePodCount: React.SFC = ({ resource }) return ( <> {isBookmarked ? : } @@ -177,8 +177,8 @@ class DropDownRowWithTranslation extends React.PureComponent { }} aria-label={ isFavorite - ? t('dropdown~Remove favorite {{content}}', { content: contentString }) - : t('dropdown~Add favorite {{content}}', { content: contentString }) + ? t('public~Remove favorite {{content}}', { content: contentString }) + : t('public~Add favorite {{content}}', { content: contentString }) } > @@ -658,13 +658,13 @@ class ActionsMenuDropdown_ extends DropdownMixin { {this.state.active && } @@ -733,8 +733,8 @@ export const ContainerDropdown = (props) => { const getHeaders = (container, initContainer) => { return initContainer ? { - [container.name]: t('dropdown~Containers'), - [initContainer.name]: t('dropdown~Init containers'), + [container.name]: t('public~Containers'), + [initContainer.name]: t('public~Init containers'), } : {}; }; diff --git a/frontend/public/components/utils/horizontal-nav.tsx b/frontend/public/components/utils/horizontal-nav.tsx index 0008213bf08..c6fcd6d634a 100644 --- a/frontend/public/components/utils/horizontal-nav.tsx +++ b/frontend/public/components/utils/horizontal-nav.tsx @@ -62,104 +62,104 @@ type NavFactory = { [name: string]: (c?: React.ComponentType) => Page }; export const navFactory: NavFactory = { details: (component) => ({ href: '', - // t('details-page~Details') - nameKey: 'details-page~Details', + // t('public~Details') + nameKey: 'public~Details', component, }), events: (component) => ({ href: 'events', - // t('details-page~Events') - nameKey: 'details-page~Events', + // t('public~Events') + nameKey: 'public~Events', component, }), logs: (component) => ({ href: 'logs', - // t('details-page~Logs') - nameKey: 'details-page~Logs', + // t('public~Logs') + nameKey: 'public~Logs', component, }), editYaml: (component) => ({ href: 'yaml', - // t('details-page~YAML') - nameKey: 'details-page~YAML', + // t('public~YAML') + nameKey: 'public~YAML', component: component || editYamlComponent, }), pods: (component) => ({ href: 'pods', - // t('details-page~Pods') - nameKey: 'details-page~Pods', + // t('public~Pods') + nameKey: 'public~Pods', component: component || PodsComponent, }), jobs: (component) => ({ href: 'jobs', - // t('details-page~Jobs') - nameKey: 'details-page~Jobs', + // t('public~Jobs') + nameKey: 'public~Jobs', component, }), roles: (component) => ({ href: 'roles', - // t('details-page~RoleBindings') - nameKey: 'details-page~RoleBindings', + // t('public~RoleBindings') + nameKey: 'public~RoleBindings', component, }), builds: (component) => ({ href: 'builds', - // t('details-page~Builds') - nameKey: 'details-page~Builds', + // t('public~Builds') + nameKey: 'public~Builds', component, }), envEditor: (component) => ({ href: 'environment', - // t('details-page~Environment') - nameKey: 'details-page~Environment', + // t('public~Environment') + nameKey: 'public~Environment', component, }), clusterServiceClasses: (component) => ({ href: 'serviceclasses', - // t('details-page~ServiceClasses') - nameKey: 'details-page~ServiceClasses', + // t('public~ServiceClasses') + nameKey: 'public~ServiceClasses', component, }), clusterServicePlans: (component) => ({ href: 'serviceplans', - // t('details-page~ServicePlans') - nameKey: 'details-page~ServicePlans', + // t('public~ServicePlans') + nameKey: 'public~ServicePlans', component, }), serviceBindings: (component) => ({ href: 'servicebindings', - // t('details-page~ServiceBindings') - nameKey: 'details-page~ServiceBindings', + // t('public~ServiceBindings') + nameKey: 'public~ServiceBindings', component, }), clusterOperators: (component) => ({ href: 'clusteroperators', - // t('details-page~Cluster Operators') - nameKey: 'details-page~Cluster Operators', + // t('public~Cluster Operators') + nameKey: 'public~Cluster Operators', component, }), machineConfigs: (component) => ({ href: 'machineconfigs', - // t('details-page~MachineConfigs') - nameKey: 'details-page~MachineConfigs', + // t('public~MachineConfigs') + nameKey: 'public~MachineConfigs', component, }), machines: (component) => ({ href: 'machines', - // t('details-page~Machines') - nameKey: 'details-page~Machines', + // t('public~Machines') + nameKey: 'public~Machines', component, }), workloads: (component) => ({ href: 'workloads', - // t('details-page~Workloads') - nameKey: 'details-page~Workloads', + // t('public~Workloads') + nameKey: 'public~Workloads', component, }), history: (component) => ({ href: 'history', - // t('details-page~History') - nameKey: 'details-page~History', + // t('public~History') + nameKey: 'public~History', component, }), }; diff --git a/frontend/public/components/utils/kebab.tsx b/frontend/public/components/utils/kebab.tsx index a0a29036cac..38884f9c628 100644 --- a/frontend/public/components/utils/kebab.tsx +++ b/frontend/public/components/utils/kebab.tsx @@ -255,8 +255,8 @@ export const KebabItems: React.FC = ({ options, ...props }) => const kebabFactory: KebabFactory = { Delete: (kind, obj) => ({ - // t('details-page~Delete {{kind}}', {kind: kind.label}) - labelKey: 'details-page~Delete {{kind}}', + // t('public~Delete {{kind}}', {kind: kind.label}) + labelKey: 'public~Delete {{kind}}', labelKind: { kind: kind.labelKey ? i18next.t(kind.labelKey) : kind.label }, callback: () => deleteModal({ @@ -266,8 +266,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'delete'), }), Edit: (kind, obj) => ({ - // t('details-page~Edit {{kind}}', {kind: kind.label}) - labelKey: 'details-page~Edit {{kind}}', + // t('public~Edit {{kind}}', {kind: kind.label}) + labelKey: 'public~Edit {{kind}}', labelKind: { kind: kind.labelKey ? i18next.t(kind.labelKey) : kind.label }, dataTest: `Edit ${kind.label}`, href: `${resourceObjPath(obj, kind.crd ? referenceForModel(kind) : kind.kind)}/yaml`, @@ -275,8 +275,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'update'), }), ModifyLabels: (kind, obj) => ({ - // t('details-page~Edit labels') - labelKey: 'details-page~Edit labels', + // t('public~Edit labels') + labelKey: 'public~Edit labels', callback: () => labelsModal({ kind, @@ -286,8 +286,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'patch'), }), ModifyPodSelector: (kind, obj) => ({ - // t('details-page~Edit Pod selector') - labelKey: 'details-page~Edit Pod selector', + // t('public~Edit Pod selector') + labelKey: 'public~Edit Pod selector', callback: () => podSelectorModal({ kind, @@ -297,8 +297,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'patch'), }), ModifyAnnotations: (kind, obj) => ({ - // t('details-page~Edit annotations') - labelKey: 'details-page~Edit annotations', + // t('public~Edit annotations') + labelKey: 'public~Edit annotations', callback: () => annotationsModal({ kind, @@ -308,8 +308,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'patch'), }), ModifyCount: (kind, obj) => ({ - // t('details-page~Edit Pod count') - labelKey: 'details-page~Edit Pod count', + // t('public~Edit Pod count') + labelKey: 'public~Edit Pod count', callback: () => configureReplicaCountModal({ resourceKind: kind, @@ -318,8 +318,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'patch', 'scale'), }), ModifyTaints: (kind, obj) => ({ - // t('details-page~Edit taints') - labelKey: 'details-page~Edit taints', + // t('public~Edit taints') + labelKey: 'public~Edit taints', callback: () => taintsModal({ resourceKind: kind, @@ -329,8 +329,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'patch'), }), ModifyTolerations: (kind, obj) => ({ - // t('details-page~Edit tolerations') - labelKey: 'details-page~Edit tolerations', + // t('public~Edit tolerations') + labelKey: 'public~Edit tolerations', callback: () => tolerationsModal({ resourceKind: kind, @@ -340,14 +340,14 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'patch'), }), AddStorage: (kind, obj) => ({ - // t('details-page~Add storage') - labelKey: 'details-page~Add storage', + // t('public~Add storage') + labelKey: 'public~Add storage', href: `${resourceObjPath(obj, kind.crd ? referenceForModel(kind) : kind.kind)}/attach-storage`, accessReview: asAccessReview(kind, obj, 'patch'), }), ExpandPVC: (kind, obj) => ({ - // t('details-page~Expand PVC') - labelKey: 'details-page~Expand PVC', + // t('public~Expand PVC') + labelKey: 'public~Expand PVC', callback: () => expandPVCModal({ kind, @@ -356,8 +356,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'patch'), }), PVCSnapshot: (kind, obj) => ({ - // t('details-page~Create snapshot') - labelKey: 'details-page~Create snapshot', + // t('public~Create snapshot') + labelKey: 'public~Create snapshot', isDisabled: obj?.status?.phase !== 'Bound', tooltip: obj?.status?.phase !== 'Bound' ? 'PVC is not Bound' : '', href: `${resourceObjPath(obj, kind.crd ? referenceForModel(kind) : kind.kind)}/${ @@ -366,8 +366,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'create'), }), ClonePVC: (kind, obj) => ({ - // t('details-page~Clone PVC') - labelKey: 'details-page~Clone PVC', + // t('public~Clone PVC') + labelKey: 'public~Clone PVC', isDisabled: obj?.status?.phase !== 'Bound', tooltip: obj?.status?.phase !== 'Bound' ? 'PVC is not Bound' : '', callback: () => @@ -378,8 +378,8 @@ const kebabFactory: KebabFactory = { accessReview: asAccessReview(kind, obj, 'create'), }), RestorePVC: (kind, obj: VolumeSnapshotKind) => ({ - // t('details-page~Restore as new PVC') - labelKey: 'details-page~Restore as new PVC', + // t('public~Restore as new PVC') + labelKey: 'public~Restore as new PVC', isDisabled: !obj?.status?.readyToUse, tooltip: !obj?.status?.readyToUse ? 'Volume Snapshot is not Ready' : '', callback: () => diff --git a/frontend/public/components/utils/label-list.tsx b/frontend/public/components/utils/label-list.tsx index e0ff3a735bd..052656f8a7c 100644 --- a/frontend/public/components/utils/label-list.tsx +++ b/frontend/public/components/utils/label-list.tsx @@ -38,7 +38,7 @@ class TranslatedLabelList extends React.Component { if (_.isEmpty(list)) { list = [
- {t('details-page~No labels')} + {t('public~No labels')}
, ]; } diff --git a/frontend/public/components/utils/managed-by.tsx b/frontend/public/components/utils/managed-by.tsx index 32c2a6954b7..faa82a3312b 100644 --- a/frontend/public/components/utils/managed-by.tsx +++ b/frontend/public/components/utils/managed-by.tsx @@ -70,7 +70,7 @@ export const ManagedByOperatorLink: React.SFC = (props) => { if (owner && csv) { return (
- {t('details-page~Managed by')}{' '} + {t('public~Managed by')}{' '} = ({ resource }) => namespace={resource.metadata.namespace} /> )); - return owners.length ? ( - <>{owners} - ) : ( - {t('details-page~No owner')} - ); + return owners.length ? <>{owners} : {t('public~No owner')}; }; type OwnerReferencesProps = { diff --git a/frontend/public/locales/en/add-users-modal.json b/frontend/public/locales/en/add-users-modal.json deleted file mode 100644 index 4ffdf72b71e..00000000000 --- a/frontend/public/locales/en/add-users-modal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Add users": "Add users", - "Add new Users to Group {name}.": "Add new Users to Group {name}.", - "Users": "Users", - "Save": "Save" -} \ No newline at end of file diff --git a/frontend/public/locales/en/bindings.json b/frontend/public/locales/en/bindings.json deleted file mode 100644 index c8b324eb4c0..00000000000 --- a/frontend/public/locales/en/bindings.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "Duplicate {{label}}": "Duplicate {{label}}", - "Edit {{label}} subject": "Edit {{label}} subject", - "Delete {{label}} subject": "Delete {{label}} subject", - "Are you sure you want to delete subject {{name}} of type {{kind}}?": "Are you sure you want to delete subject {{name}} of type {{kind}}?", - "Delete subject": "Delete subject", - "Impersonate {{kind}} \"{{name}}\"": "Impersonate {{kind}} \"{{name}}\"", - "Name": "Name", - "Role ref": "Role ref", - "Subject kind": "Subject kind", - "Subject name": "Subject name", - "Namespace": "Namespace", - "All namespaces": "All namespaces", - "No RoleBindings found": "No RoleBindings found", - "Roles grant access to types of objects in the cluster. Roles are applied to a group or user via a RoleBinding.": "Roles grant access to types of objects in the cluster. Roles are applied to a group or user via a RoleBinding.", - "RoleBindings": "RoleBindings", - "Kind": "Kind", - "Namespace RoleBindings": "Namespace RoleBindings", - "System RoleBindings": "System RoleBindings", - "Cluster-wide RoleBindings": "Cluster-wide RoleBindings", - "Create binding": "Create binding", - "by role or subject": "by role or subject", - "Namespace roles (Role)": "Namespace roles (Role)", - "Select role name": "Select role name", - "Cluster-wide roles (ClusterRole)": "Cluster-wide roles (ClusterRole)", - "Please complete all fields.": "Please complete all fields.", - "Namespace role binding (RoleBinding)": "Namespace role binding (RoleBinding)", - "Grant the permissions to a user or set of users within the selected namespace.": "Grant the permissions to a user or set of users within the selected namespace.", - "Cluster-wide role binding (ClusterRoleBinding)": "Cluster-wide role binding (ClusterRoleBinding)", - "Grant the permissions to a user or set of users at the cluster level and in all namespaces.": "Grant the permissions to a user or set of users at the cluster level and in all namespaces.", - "User": "User", - "Group": "Group", - "ServiceAccount": "ServiceAccount", - "Associate a user/group to the selected role to define the type of access and resources that are allowed.": "Associate a user/group to the selected role to define the type of access and resources that are allowed.", - "Binding type": "Binding type", - "RoleBinding": "RoleBinding", - "RoleBinding name": "RoleBinding name", - "Role": "Role", - "Role name": "Role name", - "Subject": "Subject", - "Subject namespace": "Subject namespace", - "Create": "Create", - "Cancel": "Cancel", - "Edit": "Edit", - "Save": "Save", - "Duplicate": "Duplicate" -} \ No newline at end of file diff --git a/frontend/public/locales/en/build-strategy.json b/frontend/public/locales/en/build-strategy.json deleted file mode 100644 index c1276fdab7a..00000000000 --- a/frontend/public/locales/en/build-strategy.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Type": "Type", - "Git repository": "Git repository", - "Git ref": "Git ref", - "Git commit": "Git commit", - "Binary file": "Binary file", - "Context dir": "Context dir", - "Dockerfile": "Dockerfile", - "JenskinsFile path": "JenskinsFile path", - "Build from": "Build from", - "Output to": "Output to", - "Push secret": "Push secret", - "Run policy": "Run policy", - "Resource limits": "Resource limits", - "Triggers": "Triggers" -} \ No newline at end of file diff --git a/frontend/public/locales/en/build.json b/frontend/public/locales/en/build.json deleted file mode 100644 index d8f00d18fd3..00000000000 --- a/frontend/public/locales/en/build.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "Rebuild": "Rebuild", - "Cancel build": "Cancel build", - "Are you sure you want to cancel this build?": "Are you sure you want to cancel this build?", - "Yes, cancel": "Yes, cancel", - "No, don't cancel": "No, don't cancel", - "View logs": "View logs", - "Memory usage": "Memory usage", - "CPU usage": "CPU usage", - "Filesystem": "Filesystem", - "Pipeline build strategy deprecation": "Pipeline build strategy deprecation", - "pipelineBuildStrategyAlert": "With the release of <2>, the pipelines build strategy has been deprecated. Users should either use Jenkins files directly on Jenkins or use cloud-native CI/CD with Openshift Pipelines.<4>", - "OpenShift Pipelines based on Tekton": "OpenShift Pipelines based on Tekton", - "Try the OpenShift Pipelines tutorial": "Try the OpenShift Pipelines tutorial", - "Build details": "Build details", - "Triggered by": "Triggered by", - "Started": "Started", - "Status": "Status", - "Message": "Message", - "Log snippet": "Log snippet", - "Duration": "Duration", - "The environment variable editor does not support build strategy: {{ type }}": "The environment variable editor does not support build strategy: {{ type }}", - "Name": "Name", - "Namespace": "Namespace", - "Created": "Created", - "Builds": "Builds" -} \ No newline at end of file diff --git a/frontend/public/locales/en/cluster-channel-modal.json b/frontend/public/locales/en/cluster-channel-modal.json deleted file mode 100644 index b526dad40d8..00000000000 --- a/frontend/public/locales/en/cluster-channel-modal.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Select channel": "Select channel", - "Input channel": "Input channel", - "The current version is available in the channels listed in the dropdown below. Select a channel that reflects the desired version. Critical security updates will be delivered to any vulnerable channels.": "The current version is available in the channels listed in the dropdown below. Select a channel that reflects the desired version. Critical security updates will be delivered to any vulnerable channels.", - "Input a channel that reflects the desired version. To verify if the version exists in a channel, save and check the update status. Critical security updates will be delivered to any vulnerable channels.": "Input a channel that reflects the desired version. To verify if the version exists in a channel, save and check the update status. Critical security updates will be delivered to any vulnerable channels.", - "Channel": "Channel", - "e.g., {{version}}": "e.g., {{version}}", - "Potential channels are {{stable}}, {{fast}}, or {{candidate}}.": "Potential channels are {{stable}}, {{fast}}, or {{candidate}}." -} \ No newline at end of file diff --git a/frontend/public/locales/en/cluster-operator.json b/frontend/public/locales/en/cluster-operator.json deleted file mode 100644 index f6dbb52ef49..00000000000 --- a/frontend/public/locales/en/cluster-operator.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Name": "Name", - "Status": "Status", - "Version": "Version", - "Message": "Message", - "{{resource}} details": "{{resource}} details", - "Conditions": "Conditions", - "Operand versions": "Operand versions", - "Related objects": "Related objects" -} \ No newline at end of file diff --git a/frontend/public/locales/en/cluster-settings.json b/frontend/public/locales/en/cluster-settings.json deleted file mode 100644 index 32d3501494b..00000000000 --- a/frontend/public/locales/en/cluster-settings.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "Not configured": "Not configured", - "Invalid cluster version": "Invalid cluster version", - "Cancel update": "Cancel update", - "Available updates": "Available updates", - "Failing": "Failing", - "View conditions": "View conditions", - "Update to {{version}} in progress": "Update to {{version}} in progress", - "Not configured to request update recommedations.": "Not configured to request update recommedations.", - "Version not found": "Version not found", - "Error retrieving": "Error retrieving", - "Up to date": "Up to date", - "View release notes": "View release notes", - "Unknown": "Unknown", - "None": "None", - "Current version": "Current version", - "Last completed version": "Last completed version", - "Learn more about OpenShift update channels": "Learn more about OpenShift update channels", - "Channel": "Channel", - "Channels help to control the pace of updates and recommend the appropriate release versions. Update channels are tied to a minor version of OpenShift Container Platform, for example 4.5.": "Channels help to control the pace of updates and recommend the appropriate release versions. Update channels are tied to a minor version of OpenShift Container Platform, for example 4.5.", - "Version": "Version", - "{{name}} {{resource}} may continue to update after the update of Master {{resource}} and {{resource2}} are complete.": "{{name}} {{resource}} may continue to update after the update of Master {{resource}} and {{resource2}} are complete.", - "{{updatedMCPNodes}} of {{totalMCPNodes}}": "{{updatedMCPNodes}} of {{totalMCPNodes}}", - "+ More": "+ More", - "{{currentChannel}} channel": "{{currentChannel}} channel", - "{{newerChannel}} channel": "{{newerChannel}} channel", - "{{updatedOperatorsCount}} of {{totalOperatorsCount}}": "{{updatedOperatorsCount}} of {{totalOperatorsCount}}", - "This cluster is not currently requesting update notifications. To request update recommendations, configure a channel.": "This cluster is not currently requesting update notifications. To request update recommendations, configure a channel.", - "Version {{version}} not found in channel {{channel}}. To request update recommendations, configure a channel that supports your version.": "Version {{version}} not found in channel {{channel}}. To request update recommendations, configure a channel that supports your version.", - "Update status": "Update status", - "Subscription": "Subscription", - "OpenShift Cluster Manager": "OpenShift Cluster Manager", - "Cluster ID": "Cluster ID", - "Desired release image": "Desired release image", - "Cluster version configuration": "Cluster version configuration", - "Cluster autoscaler": "Cluster autoscaler", - "Create autoscaler": "Create autoscaler", - "Update history": "Update history", - "History": "History", - "State": "State", - "Started": "Started", - "Completed": "Completed", - "Release notes": "Release notes", - "Cluster Settings": "Cluster Settings", - "Details": "Details", - "Global configuration": "Global configuration" -} \ No newline at end of file diff --git a/frontend/public/locales/en/cluster-update-modal.json b/frontend/public/locales/en/cluster-update-modal.json deleted file mode 100644 index 92f424b6d6a..00000000000 --- a/frontend/public/locales/en/cluster-update-modal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Update cluster": "Update cluster", - "Current version": "Current version", - "Select new version": "Select new version", - "Select version": "Select version" -} \ No newline at end of file diff --git a/frontend/public/locales/en/cluster-version.json b/frontend/public/locales/en/cluster-version.json deleted file mode 100644 index d10856d616e..00000000000 --- a/frontend/public/locales/en/cluster-version.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "{{resource}} details": "{{resource}} details", - "Conditions": "Conditions" -} \ No newline at end of file diff --git a/frontend/public/locales/en/custom-resource-definition.json b/frontend/public/locales/en/custom-resource-definition.json deleted file mode 100644 index 60969c737fc..00000000000 --- a/frontend/public/locales/en/custom-resource-definition.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "View instances": "View instances", - "true": "true", - "false": "false", - "CRD versions": "CRD versions", - "Name": "Name", - "Served": "Served", - "Storage": "Storage", - "{{resource}} details": "{{resource}} details", - "Established": "Established", - "Group": "Group", - "Latest version": "Latest version", - "Scope": "Scope", - "Conditions": "Conditions", - "Versions": "Versions", - "Namespaced": "Namespaced", - "Yes": "Yes", - "No": "No", - "Instances": "Instances" -} \ No newline at end of file diff --git a/frontend/public/locales/en/dashboard.json b/frontend/public/locales/en/dashboard.json deleted file mode 100644 index af85ea1ec36..00000000000 --- a/frontend/public/locales/en/dashboard.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "Activity": "Activity", - "View events": "View events", - "Updating": "Updating", - "Update cluster": "Update cluster", - "Not available": "Not available", - "Details": "Details", - "View settings": "View settings", - "Cluster API address": "Cluster API address", - "Cluster ID": "Cluster ID", - "OpenShift Cluster Manager": "OpenShift Cluster Manager", - "Provider": "Provider", - "OpenShift version": "OpenShift version", - "Update channel": "Update channel", - "Control plane high availability": "Control plane high availability", - "No (single master)": "No (single master)", - "Kubernetes version": "Kubernetes version", - "Operators create, configure, and manage applications by extending the Kubernetes API.": "Operators create, configure, and manage applications by extending the Kubernetes API.", - "Operators": "Operators", - "Operator status": "Operator status", - "Cluster inventory": "Cluster inventory", - "A cluster version update is available": "A cluster version update is available", - "Status": "Status", - "View alerts": "View alerts", - "CPU": "CPU", - "Memory": "Memory", - "Filesystem": "Filesystem", - "Pod count": "Pod count", - "Network in": "Network in", - "Network out": "Network out", - "Cluster utilization": "Cluster utilization", - "Network transfer": "Network transfer", - "Overview": "Overview", - "Cluster": "Cluster", - "Started": "Started", - "There are no recent events.": "There are no recent events.", - "View all events": "View all events", - "Recent events": "Recent events", - "There are no ongoing activities.": "There are no ongoing activities.", - "Ongoing": "Ongoing", - "No resource quotas": "No resource quotas", - "View details": "View details", - "Alerts could not be loaded.": "Alerts could not be loaded.", - "Unknown": "Unknown", - "Pending": "Pending", - "Degraded": "Degraded", - "Loading": "Loading", - "{{title}} breakdown": "{{title}} breakdown", - "Total capacity": "Total capacity", - "Total limit": "Total limit", - "Current utilization": "Current utilization", - "Current available capacity": "Current available capacity", - "Total requested": "Total requested", - "By {{label}}": "By {{label}}", - "Top consumer by {{label}}": "Top consumer by {{label}}", - "View more": "View more", - "Top {{label}} consumers": "Top {{label}} consumers", - "Top consumers": "Top consumers", - "Select consumer type": "Select consumer type", - "time axis": "time axis", - "Usage": "Usage", - "View {{title}} metrics in query browser": "View {{title}} metrics in query browser", - "{{humanAvailable}} available of {{humanLimit}} total limit": "{{humanAvailable}} available of {{humanLimit}} total limit", - "{{humanAvailable}} available of {{humanMax}}": "{{humanAvailable}} available of {{humanMax}}", - "{{humanAvailable}} available": "{{humanAvailable}} available", - "View metrics for {{title}}": "View metrics for {{title}}" -} \ No newline at end of file diff --git a/frontend/public/locales/en/details-page.json b/frontend/public/locales/en/details-page.json deleted file mode 100644 index 1d63d03e052..00000000000 --- a/frontend/public/locales/en/details-page.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "Global configuration": "Global configuration", - "{{kind}} details": "{{kind}} details", - "Type": "Type", - "Status": "Status", - "Updated": "Updated", - "Reason": "Reason", - "Message": "Message", - "No conditions found": "No conditions found", - "ReplicationControllers": "ReplicationControllers", - "ReplicaSets": "ReplicaSets", - "Delete PersistentVolumeClaim": "Delete PersistentVolumeClaim", - "Terminal": "Terminal", - "Name": "Name", - "Namespace": "Namespace", - "Labels": "Labels", - "Pod selector": "Pod selector", - "Node selector": "Node selector", - "Node": "Node", - "Tolerations": "Tolerations", - "{{count}} toleration": "{{count}} toleration", - "{{count}} toleration_plural": "{{count}} tolerations", - "Annotations": "Annotations", - "{{count}} annotation": "{{count}} annotation", - "{{count}} annotation_plural": "{{count}} annotations", - "Created at": "Created at", - "Owner": "Owner", - "Current count": "Current count", - "Desired count": "Desired count", - "Details": "Details", - "Events": "Events", - "Logs": "Logs", - "YAML": "YAML", - "Pods": "Pods", - "Jobs": "Jobs", - "RoleBindings": "RoleBindings", - "Builds": "Builds", - "Environment": "Environment", - "ServiceClasses": "ServiceClasses", - "ServicePlans": "ServicePlans", - "ServiceBindings": "ServiceBindings", - "Cluster Operators": "Cluster Operators", - "MachineConfigs": "MachineConfigs", - "Machines": "Machines", - "Workloads": "Workloads", - "History": "History", - "Delete {{kind}}": "Delete {{kind}}", - "Edit {{kind}}": "Edit {{kind}}", - "Edit labels": "Edit labels", - "Edit Pod selector": "Edit Pod selector", - "Edit annotations": "Edit annotations", - "Edit Pod count": "Edit Pod count", - "Edit taints": "Edit taints", - "Edit tolerations": "Edit tolerations", - "Add storage": "Add storage", - "Expand PVC": "Expand PVC", - "Create snapshot": "Create snapshot", - "Clone PVC": "Clone PVC", - "Restore as new PVC": "Restore as new PVC", - "No labels": "No labels", - "Managed by": "Managed by", - "No owner": "No owner" -} \ No newline at end of file diff --git a/frontend/public/locales/en/dropdown.json b/frontend/public/locales/en/dropdown.json deleted file mode 100644 index 5a5892fb18c..00000000000 --- a/frontend/public/locales/en/dropdown.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "All Projects": "All Projects", - "All Namespaces": "All Namespaces", - "Project": "Project", - "Namespace": "Namespace", - "Select Project...": "Select Project...", - "Select Namespace...": "Select Namespace...", - "Remove bookmark {{content}}": "Remove bookmark {{content}}", - "Add bookmark {{content}}": "Add bookmark {{content}}", - "Remove favorite {{content}}": "Remove favorite {{content}}", - "Add favorite {{content}}": "Add favorite {{content}}", - "Actions": "Actions", - "Containers": "Containers", - "Init containers": "Init containers" -} \ No newline at end of file diff --git a/frontend/public/locales/en/public.json b/frontend/public/locales/en/public.json index b7897cac81a..f72b6839dd8 100644 --- a/frontend/public/locales/en/public.json +++ b/frontend/public/locales/en/public.json @@ -49,7 +49,28 @@ "Source": "Source", "Custom": "Custom", "Build strategy": "Build strategy", + "Rebuild": "Rebuild", + "Cancel build": "Cancel build", + "Are you sure you want to cancel this build?": "Are you sure you want to cancel this build?", + "Yes, cancel": "Yes, cancel", + "No, don't cancel": "No, don't cancel", + "View logs": "View logs", + "Memory usage": "Memory usage", + "CPU usage": "CPU usage", + "Filesystem": "Filesystem", + "Pipeline build strategy deprecation": "Pipeline build strategy deprecation", + "pipelineBuildStrategyAlert": "With the release of <2>, the pipelines build strategy has been deprecated. Users should either use Jenkins files directly on Jenkins or use cloud-native CI/CD with Openshift Pipelines.<4>", + "OpenShift Pipelines based on Tekton": "OpenShift Pipelines based on Tekton", + "Try the OpenShift Pipelines tutorial": "Try the OpenShift Pipelines tutorial", + "Build details": "Build details", + "Triggered by": "Triggered by", + "Started": "Started", "Status": "Status", + "Message": "Message", + "Log snippet": "Log snippet", + "Duration": "Duration", + "The environment variable editor does not support build strategy: {{ type }}": "The environment variable editor does not support build strategy: {{ type }}", + "Builds": "Builds", "Values for certificate and key should both be either excluded or provided.": "Values for certificate and key should both be either excluded or provided.", "Add Identity Provider: Basic Authentication": "Add Identity Provider: Basic Authentication", "Basic authentication is a generic backend integration mechanism that allows users to authenticate with credentials validated against a remote identity provider.": "Basic authentication is a generic backend integration mechanism that allows users to authenticate with credentials validated against a remote identity provider.", @@ -61,7 +82,54 @@ "PEM-encoded TLS private key for the client certificate. Required if certificate is specified.": "PEM-encoded TLS private key for the client certificate. Required if certificate is specified.", "Add": "Add", "Cancel": "Cancel", + "{{resource}} details": "{{resource}} details", + "Conditions": "Conditions", + "Operand versions": "Operand versions", + "Related objects": "Related objects", + "Not configured": "Not configured", + "Invalid cluster version": "Invalid cluster version", + "Cancel update": "Cancel update", + "Available updates": "Available updates", + "Failing": "Failing", + "View conditions": "View conditions", + "Update to {{version}} in progress": "Update to {{version}} in progress", + "Not configured to request update recommedations.": "Not configured to request update recommedations.", + "Version not found": "Version not found", + "Error retrieving": "Error retrieving", + "Up to date": "Up to date", + "View release notes": "View release notes", + "Unknown": "Unknown", + "None": "None", "Update": "Update", + "Current version": "Current version", + "Last completed version": "Last completed version", + "Learn more about OpenShift update channels": "Learn more about OpenShift update channels", + "Channel": "Channel", + "Channels help to control the pace of updates and recommend the appropriate release versions. Update channels are tied to a minor version of OpenShift Container Platform, for example 4.5.": "Channels help to control the pace of updates and recommend the appropriate release versions. Update channels are tied to a minor version of OpenShift Container Platform, for example 4.5.", + "{{name}} {{resource}} may continue to update after the update of Master {{resource}} and {{resource2}} are complete.": "{{name}} {{resource}} may continue to update after the update of Master {{resource}} and {{resource2}} are complete.", + "{{updatedMCPNodes}} of {{totalMCPNodes}}": "{{updatedMCPNodes}} of {{totalMCPNodes}}", + "+ More": "+ More", + "{{currentChannel}} channel": "{{currentChannel}} channel", + "{{newerChannel}} channel": "{{newerChannel}} channel", + "{{updatedOperatorsCount}} of {{totalOperatorsCount}}": "{{updatedOperatorsCount}} of {{totalOperatorsCount}}", + "This cluster is not currently requesting update notifications. To request update recommendations, configure a channel.": "This cluster is not currently requesting update notifications. To request update recommendations, configure a channel.", + "Version {{version}} not found in channel {{channel}}. To request update recommendations, configure a channel that supports your version.": "Version {{version}} not found in channel {{channel}}. To request update recommendations, configure a channel that supports your version.", + "Update status": "Update status", + "Subscription": "Subscription", + "OpenShift Cluster Manager": "OpenShift Cluster Manager", + "Cluster ID": "Cluster ID", + "Desired release image": "Desired release image", + "Cluster version configuration": "Cluster version configuration", + "Cluster autoscaler": "Cluster autoscaler", + "Create autoscaler": "Create autoscaler", + "Update history": "Update history", + "History": "History", + "State": "State", + "Completed": "Completed", + "Release notes": "Release notes", + "Cluster Settings": "Cluster Settings", + "Global configuration": "Global configuration", + "{{kind}} details": "{{kind}} details", "{{label}}": "{{label}}", "Identity providers": "Identity providers", "Mapping method": "Mapping method", @@ -74,11 +142,13 @@ "LDAP": "LDAP", "OpenID Connect": "OpenID Connect", "Request Header": "Request Header", - "{{resource}} details": "{{resource}} details", "Access token max age": "Access token max age", "Identity providers determine how users log into the cluster.": "Identity providers determine how users log into the cluster.", "True": "True", "False": "False", + "Updated": "Updated", + "Reason": "Reason", + "No conditions found": "No conditions found", "Value hidden": "Value hidden", "Save file": "Save file", "binary data": "binary data", @@ -96,13 +166,22 @@ "Starting deadline seconds": "Starting deadline seconds", "{{count}} second": "{{count}} second", "{{count}} second_plural": "{{count}} seconds", - "Not configured": "Not configured", "Last schedule time": "Last schedule time", "Job details": "Job details", "Desired completions": "Desired completions", "Parallelism": "Parallelism", "Active deadline seconds": "Active deadline seconds", "Containers": "Containers", + "View instances": "View instances", + "CRD versions": "CRD versions", + "Served": "Served", + "Storage": "Storage", + "Established": "Established", + "Latest version": "Latest version", + "Scope": "Scope", + "Versions": "Versions", + "Yes": "Yes", + "No": "No", "Current count": "Current count", "Desired count": "Desired count", "DaemonSet details": "DaemonSet details", @@ -112,6 +191,31 @@ "DaemonSets": "DaemonSets", "Activity": "Activity", "View events": "View events", + "Updating": "Updating", + "Update cluster": "Update cluster", + "Not available": "Not available", + "View settings": "View settings", + "Cluster API address": "Cluster API address", + "Provider": "Provider", + "OpenShift version": "OpenShift version", + "Update channel": "Update channel", + "Control plane high availability": "Control plane high availability", + "No (single master)": "No (single master)", + "Kubernetes version": "Kubernetes version", + "Operators create, configure, and manage applications by extending the Kubernetes API.": "Operators create, configure, and manage applications by extending the Kubernetes API.", + "Operators": "Operators", + "Operator status": "Operator status", + "Cluster inventory": "Cluster inventory", + "A cluster version update is available": "A cluster version update is available", + "View alerts": "View alerts", + "CPU": "CPU", + "Memory": "Memory", + "Pod count": "Pod count", + "Network in": "Network in", + "Network out": "Network out", + "Cluster utilization": "Cluster utilization", + "Network transfer": "Network transfer", + "Overview": "Overview", "View all": "View all", "Requester": "Requester", "No requester": "No requester", @@ -121,22 +225,11 @@ "Inventory": "Inventory", "Launcher": "Launcher", "ResourceQuotas": "ResourceQuotas", - "CPU": "CPU", - "Memory": "Memory", - "Filesystem": "Filesystem", - "Network in": "Network in", - "Network out": "Network out", "Utilization": "Utilization", - "Network transfer": "Network transfer", - "Pod count": "Pod count", "{{kindLabel}} details": "{{kindLabel}} details", - "Conditions": "Conditions", - "None": "None", "Start rollout": "Start rollout", "Resume rollouts": "Resume rollouts", "Pause rollouts": "Pause rollouts", - "Latest version": "Latest version", - "Message": "Message", "Update strategy": "Update strategy", "Timeout": "Timeout", "Update period": "Update period", @@ -150,10 +243,12 @@ "Min ready seconds": "Min ready seconds", "Triggers": "Triggers", "DeploymentConfig details": "DeploymentConfig details", + "ReplicationControllers": "ReplicationControllers", "DeploymentConfigs": "DeploymentConfigs", "Edit update strategy": "Edit update strategy", "Progress deadline seconds": "Progress deadline seconds", "Deployment details": "Deployment details", + "ReplicaSets": "ReplicaSets", "Deployments": "Deployments", "Filter {{label}}...": "Filter {{label}}...", "Create": "Create", @@ -184,14 +279,24 @@ "Failed pods": "Failed pods", "Completions": "Completions", "You are logged in as a temporary administrative user. Update the <2>cluster OAuth configuration to allow others to log in.": "You are logged in as a temporary administrative user. Update the <2>cluster OAuth configuration to allow others to log in.", - "Not available": "Not available", + "Add users": "Add users", + "Add new Users to Group {name}.": "Add new Users to Group {name}.", + "Users": "Users", + "Save": "Save", "Edit routing configuration": "Edit routing configuration", "Group by": "Group by", "Group wait": "Group wait", "Group interval": "Group interval", "Repeat interval": "Repeat interval", - "Save": "Save", + "Select channel": "Select channel", + "Input channel": "Input channel", + "The current version is available in the channels listed in the dropdown below. Select a channel that reflects the desired version. Critical security updates will be delivered to any vulnerable channels.": "The current version is available in the channels listed in the dropdown below. Select a channel that reflects the desired version. Critical security updates will be delivered to any vulnerable channels.", + "Input a channel that reflects the desired version. To verify if the version exists in a channel, save and check the update status. Critical security updates will be delivered to any vulnerable channels.": "Input a channel that reflects the desired version. To verify if the version exists in a channel, save and check the update status. Critical security updates will be delivered to any vulnerable channels.", + "e.g., {{version}}": "e.g., {{version}}", + "Potential channels are {{stable}}, {{fast}}, or {{candidate}}.": "Potential channels are {{stable}}, {{fast}}, or {{candidate}}.", "Close": "Close", + "Select new version": "Select new version", + "Select version": "Select version", "Default pull Secret": "Default pull Secret", "Specify default credentials to be used to authenticate and download containers within this namespace. These credentials will be the default unless a pod references a specific pull Secret.": "Specify default credentials to be used to authenticate and download containers within this namespace. These credentials will be the default unless a pod references a specific pull Secret.", "Overwriting default pull Secret": "Overwriting default pull Secret", @@ -292,7 +397,6 @@ "View in Metrics": "View in Metrics", "Starts": "Starts", "Firing alerts": "Firing alerts", - "State": "State", "Creator": "Creator", "Platform": "Platform", "{{alertName}} details": "{{alertName}} details", @@ -390,7 +494,6 @@ "Invalid date / time": "Invalid date / time", "Datetime": "Datetime", "Silences temporarily mute alerts based on a set of label selectors that you define. Notifications will not be sent for alerts that match all the listed values or regular expressions.": "Silences temporarily mute alerts based on a set of label selectors that you define. Notifications will not be sent for alerts that match all the listed values or regular expressions.", - "Duration": "Duration", "Silence alert from...": "Silence alert from...", "Now": "Now", "For...": "For...", @@ -416,19 +519,18 @@ "No projects found": "No projects found", "by name or display name": "by name or display name", "Project": "Project", - "CPU usage": "CPU usage", - "Memory usage": "Memory usage", "Memory usage by pod (top 10)": "Memory usage by pod (top 10)", "Resource usage": "Resource usage", "Default pull secret": "Default pull secret", "NetworkPolicies": "NetworkPolicies", - "{{kind}} details": "{{kind}} details", - "Overview": "Overview", + "All Projects": "All Projects", + "All Namespaces": "All Namespaces", + "Select Project...": "Select Project...", + "Select Namespace...": "Select Namespace...", "Monitoring": "Monitoring", "Home": "Home", "Search": "Search", "Events": "Events", - "Operators": "Operators", "Workloads": "Workloads", "Pods": "Pods", "StatefulSets": "StatefulSets", @@ -437,21 +539,17 @@ "WorkloadsSeparator": "WorkloadsSeparator", "CronJobs": "CronJobs", "Jobs": "Jobs", - "ReplicaSets": "ReplicaSets", - "ReplicationControllers": "ReplicationControllers", "HorizontalPodAutoscalers": "HorizontalPodAutoscalers", "Serverless": "Serverless", "Networking": "Networking", "Services": "Services", "Routes": "Routes", "Ingresses": "Ingresses", - "Storage": "Storage", "PersistentVolumes": "PersistentVolumes", "PersistentVolumeClaims": "PersistentVolumeClaims", "StorageClasses": "StorageClasses", "VolumeSnapshots": "VolumeSnapshots", "VolumeSnapshotClasses": "VolumeSnapshotClasses", - "Builds": "Builds", "ImageStreams": "ImageStreams", "Pipelines": "Pipelines", "Service Catalog": "Service Catalog", @@ -467,13 +565,11 @@ "MachineConfigs": "MachineConfigs", "MachineConfigPools": "MachineConfigPools", "User Management": "User Management", - "Users": "Users", "Groups": "Groups", "ServiceAccounts": "ServiceAccounts", "Roles": "Roles", "RoleBindings": "RoleBindings", "Administration": "Administration", - "Cluster Settings": "Cluster Settings", "LimitRanges": "LimitRanges", "Chargeback": "Chargeback", "CustomResourceDefinitions": "CustomResourceDefinitions", @@ -488,13 +584,11 @@ "Start Build": "Start Build", "No Builds found for this Build Config.": "No Builds found for this Build Config.", "Resources": "Resources", - "Updating": "Updating", "Service port:": "Service port:", "Pod Port:": "Pod Port:", "Location:": "Location:", "No Services found for this resource.": "No Services found for this resource.", "No Routes found for this resource.": "No Routes found for this resource.", - "View logs": "View logs", "No Pods found for this resource.": "No Pods found for this resource.", "Waiting for the build": "Waiting for the build", "Hide waiting pods with errors": "Hide waiting pods with errors", @@ -522,7 +616,6 @@ "Node": "Node", "IP address": "IP address", "Image": "Image", - "Started": "Started", "Finished": "Finished", "Exit code": "Exit code", "View {{title}} metrics in query browser": "View {{title}} metrics in query browser", @@ -531,15 +624,47 @@ "Pod IP": "Pod IP", "Pod details": "Pod details", "Init containers": "Init containers", + "Terminal": "Terminal", "Pod": "Pod", + "Duplicate {{label}}": "Duplicate {{label}}", + "Edit {{label}} subject": "Edit {{label}} subject", + "Delete {{label}} subject": "Delete {{label}} subject", + "Are you sure you want to delete subject {{name}} of type {{kind}}?": "Are you sure you want to delete subject {{name}} of type {{kind}}?", + "Delete subject": "Delete subject", + "Impersonate {{kind}} \"{{name}}\"": "Impersonate {{kind}} \"{{name}}\"", + "Role ref": "Role ref", + "Subject kind": "Subject kind", + "Subject name": "Subject name", + "All namespaces": "All namespaces", + "No RoleBindings found": "No RoleBindings found", + "Roles grant access to types of objects in the cluster. Roles are applied to a group or user via a RoleBinding.": "Roles grant access to types of objects in the cluster. Roles are applied to a group or user via a RoleBinding.", + "Namespace RoleBindings": "Namespace RoleBindings", + "System RoleBindings": "System RoleBindings", + "Cluster-wide RoleBindings": "Cluster-wide RoleBindings", + "Create binding": "Create binding", + "by role or subject": "by role or subject", + "Namespace roles (Role)": "Namespace roles (Role)", + "Select role name": "Select role name", + "Cluster-wide roles (ClusterRole)": "Cluster-wide roles (ClusterRole)", + "Please complete all fields.": "Please complete all fields.", + "Namespace role binding (RoleBinding)": "Namespace role binding (RoleBinding)", + "Grant the permissions to a user or set of users within the selected namespace.": "Grant the permissions to a user or set of users within the selected namespace.", + "Cluster-wide role binding (ClusterRoleBinding)": "Cluster-wide role binding (ClusterRoleBinding)", + "Grant the permissions to a user or set of users at the cluster level and in all namespaces.": "Grant the permissions to a user or set of users at the cluster level and in all namespaces.", + "Associate a user/group to the selected role to define the type of access and resources that are allowed.": "Associate a user/group to the selected role to define the type of access and resources that are allowed.", + "Binding type": "Binding type", + "RoleBinding": "RoleBinding", + "RoleBinding name": "RoleBinding name", + "Role": "Role", + "Role name": "Role name", + "Subject namespace": "Subject namespace", + "Duplicate": "Duplicate", "Rollback": "Rollback", "ReplicaSet details": "ReplicaSet details", "Deployment revision": "Deployment revision", "{{count1}} of {{count2}} pods": "{{count1}} of {{count2}} pods", "Cancel rollout": "Cancel rollout", "Are you sure you want to cancel this rollout?": "Are you sure you want to cancel this rollout?", - "Yes, cancel": "Yes, cancel", - "No, don't cancel": "No, don't cancel", "ReplicationController details": "ReplicationController details", "Phase": "Phase", "{{statusReplicas}} of {{specReplicas}} pods": "{{statusReplicas}} of {{specReplicas}} pods", @@ -635,12 +760,36 @@ "Command": "Command", "Script": "Script", "Args": "Args", + "Git repository": "Git repository", + "Git ref": "Git ref", + "Git commit": "Git commit", + "Binary file": "Binary file", + "Context dir": "Context dir", + "Dockerfile": "Dockerfile", + "JenskinsFile path": "JenskinsFile path", + "Build from": "Build from", + "Output to": "Output to", + "Push secret": "Push secret", + "Run policy": "Run policy", "Resource limits": "Resource limits", "Ports": "Ports", "Copied": "Copied", "Copy to clipboard": "Copy to clipboard", "Just now": "Just now", + "Node selector": "Node selector", + "Tolerations": "Tolerations", + "{{count}} toleration": "{{count}} toleration", + "{{count}} toleration_plural": "{{count}} tolerations", + "Annotations": "Annotations", + "{{count}} annotation": "{{count}} annotation", + "{{count}} annotation_plural": "{{count}} annotations", + "Created at": "Created at", "Runtime class": "Runtime class", + "Remove bookmark {{content}}": "Remove bookmark {{content}}", + "Add bookmark {{content}}": "Add bookmark {{content}}", + "Remove favorite {{content}}": "Remove favorite {{content}}", + "Add favorite {{content}}": "Add favorite {{content}}", + "Actions": "Actions", "Help": "Help", "Maximum file size exceeded. File limit is 4MB.": "Maximum file size exceeded. File limit is 4MB.", "Drop file here": "Drop file here", @@ -648,6 +797,25 @@ "Non-printable file detected.": "Non-printable file detected.", "File contains non-printable characters. Preview is not available.": "File contains non-printable characters. Preview is not available.", "Deleting": "Deleting", + "Logs": "Logs", + "Environment": "Environment", + "ServiceClasses": "ServiceClasses", + "ServicePlans": "ServicePlans", + "ServiceBindings": "ServiceBindings", + "Cluster Operators": "Cluster Operators", + "Delete {{kind}}": "Delete {{kind}}", + "Edit {{kind}}": "Edit {{kind}}", + "Edit labels": "Edit labels", + "Edit Pod selector": "Edit Pod selector", + "Edit annotations": "Edit annotations", + "Edit Pod count": "Edit Pod count", + "Edit taints": "Edit taints", + "Edit tolerations": "Edit tolerations", + "Add storage": "Add storage", + "Expand PVC": "Expand PVC", + "Create snapshot": "Create snapshot", + "Clone PVC": "Clone PVC", + "Restore as new PVC": "Restore as new PVC", "Select {{item}}": "Select {{item}}", "Add more": "Add more", "last {{count}} line": "last {{count}} line", @@ -657,9 +825,11 @@ "Resume stream and show {{count}} new line": "Resume stream and show {{count}} new line", "Resume stream and show {{count}} new line_plural": "Resume stream and show {{count}} new lines", "Resume stream": "Resume stream", + "Managed by": "Managed by", "Decrement": "Decrement", "Increment": "Increment", "Managed by:": "Managed by:", + "No owner": "No owner", "An error occurred. Please try again.": "An error occurred. Please try again.", "Select claim": "Select claim", "Number of {{sizeUnit}}": "Number of {{sizeUnit}}", @@ -729,8 +899,6 @@ "ClusterRoleBindings": "ClusterRoleBindings", "ClusterRole": "ClusterRole", "ClusterRoles": "ClusterRoles", - "RoleBinding": "RoleBinding", - "Role": "Role", "SelfSubjectAccessReview": "SelfSubjectAccessReview", "SelfSubjectAccessReviews": "SelfSubjectAccessReviews", "ResourceAccessReview": "ResourceAccessReview", @@ -754,7 +922,6 @@ "ServiceInstance": "ServiceInstance", "ServiceInstances": "ServiceInstances", "ServiceBinding": "ServiceBinding", - "ServiceBindings": "ServiceBindings", "LimitRange": "LimitRange", "APIService": "APIService", "APIServices": "APIServices", @@ -792,13 +959,7 @@ "VolumeSnapshotClass": "VolumeSnapshotClass", "VolumeSnapshotContent": "VolumeSnapshotContent", "VolumeSnapshotContents": "VolumeSnapshotContents", - "Resume": "Resume", - "Pause": "Pause", - "1 hour": "1 hour", - "6 hours": "6 hours", - "24 hours": "24 hours", "Loading {{title}} status": "Loading {{title}} status", - "Resource": "Resource", "Unsupported": "Unsupported", "Disable": "Disable", "default": "default",
{t('cluster-settings~Version')}{t('cluster-settings~State')}{t('cluster-settings~Started')}{t('cluster-settings~Completed')}{t('public~Version')}{t('public~State')}{t('public~Started')}{t('public~Completed')}{t('cluster-settings~Release notes')}{t('public~Release notes')}