From a420e2f8f2dd242544e1048f09c3a7fe56f0c753 Mon Sep 17 00:00:00 2001 From: Ashley Harrison Date: Wed, 9 Apr 2025 11:31:48 +0100 Subject: [PATCH] Internationalisation: More markup (#103634) * some manual markup * more markup * update count names --- .betterer.results | 119 +----------------- .../StandardAnnotationQueryEditor.tsx | 14 ++- public/app/features/api-keys/ApiKeysPage.tsx | 51 +++++--- .../api-keys/MigrateToServiceAccountsCard.tsx | 17 ++- .../app/features/auth-config/AuthDrawer.tsx | 13 +- .../auth-config/AuthProvidersListPage.tsx | 4 +- .../auth-config/ProviderConfigForm.tsx | 12 +- .../app/features/canvas/elements/notFound.tsx | 10 +- public/app/features/canvas/runtime/ables.tsx | 2 + .../features/commandPalette/ResultItem.tsx | 1 + .../ConnectionsRedirectNotice.tsx | 6 +- .../pages/DataSourceDetailsPage.tsx | 11 +- .../NoAccessModal/NoAccessModal.tsx | 6 +- .../embedding/EmbeddedDashboardTestPage.tsx | 2 + .../inspect/HelpWizard/HelpWizard.tsx | 38 +++--- .../inspect/PanelInspectDrawer.tsx | 6 +- .../PanelDataPane/NewAlertRuleButton.tsx | 4 +- .../PanelDataPane/PanelDataQueriesTab.tsx | 4 +- .../panel-edit/PanelEditorRenderer.tsx | 12 +- .../saving/SaveDashboardDrawer.tsx | 9 +- .../saving/SaveDashboardForm.tsx | 18 ++- .../dashboard-scene/saving/shared.tsx | 4 +- .../settings/JsonModelEditView.tsx | 6 +- .../annotations/AnnotationSettingsEdit.tsx | 5 +- .../annotations/AnnotationSettingsList.tsx | 6 +- .../settings/links/DashboardLinkList.tsx | 6 +- .../components/DataSourceVariableForm.tsx | 1 + .../components/IntervalVariableForm.tsx | 10 +- .../version-history/VersionHistoryTable.tsx | 8 +- .../ConfigPublicDashboard.tsx | 5 +- .../variables/VariableUsagesButton.tsx | 9 +- public/locales/en-US/grafana.json | 80 +++++++++++- 32 files changed, 295 insertions(+), 204 deletions(-) diff --git a/.betterer.results b/.betterer.results index c1f4b9f9ec8..27874e03865 100644 --- a/.betterer.results +++ b/.betterer.results @@ -1482,10 +1482,6 @@ exports[`better eslint`] = { [0, 0, 0, "Do not use any type assertions.", "2"], [0, 0, 0, "Unexpected any. Specify a different type.", "3"] ], - "public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] - ], "public/app/features/annotations/events_processing.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], @@ -1494,33 +1490,6 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "1"], [0, 0, 0, "Unexpected any. Specify a different type.", "2"] ], - "public/app/features/api-keys/ApiKeysPage.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "3"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "4"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "5"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "6"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "7"] - ], - "public/app/features/api-keys/MigrateToServiceAccountsCard.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] - ], - "public/app/features/auth-config/AuthDrawer.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] - ], - "public/app/features/auth-config/AuthProvidersListPage.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/auth-config/ProviderConfigForm.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] - ], "public/app/features/auth-config/fields.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], @@ -1542,28 +1511,12 @@ exports[`better eslint`] = { [0, 0, 0, "Do not use export all (\`export * from ...\`)", "1"], [0, 0, 0, "Do not use export all (\`export * from ...\`)", "2"] ], - "public/app/features/canvas/elements/notFound.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/canvas/runtime/ables.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] - ], "public/app/features/canvas/runtime/frame.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], - "public/app/features/commandPalette/ResultItem.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/connections/components/ConnectionsRedirectNotice/ConnectionsRedirectNotice.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/features/connections/components/ConnectionsRedirectNotice/index.ts:5381": [ [0, 0, 0, "Do not use export all (\`export * from ...\`)", "0"] ], - "public/app/features/connections/pages/DataSourceDetailsPage.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/features/connections/pages/index.tsx:5381": [ [0, 0, 0, "Do not re-export imported variable (\`./AddNewConnectionPage\`)", "0"], [0, 0, 0, "Do not re-export imported variable (\`./DataSourceDashboardsPage\`)", "1"], @@ -1583,8 +1536,7 @@ exports[`better eslint`] = { ], "public/app/features/connections/tabs/ConnectData/NoAccessModal/NoAccessModal.tsx:5381": [ [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] + [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] ], "public/app/features/connections/tabs/ConnectData/NoAccessModal/index.tsx:5381": [ [0, 0, 0, "Do not use export all (\`export * from ...\`)", "0"] @@ -1613,24 +1565,9 @@ exports[`better eslint`] = { "public/app/features/dashboard-scene/edit-pane/DashboardEditPane.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], - "public/app/features/dashboard-scene/embedding/EmbeddedDashboardTestPage.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/dashboard-scene/inspect/HelpWizard/HelpWizard.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "3"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "4"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "5"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "6"] - ], "public/app/features/dashboard-scene/inspect/HelpWizard/utils.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], - "public/app/features/dashboard-scene/inspect/PanelInspectDrawer.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/features/dashboard-scene/pages/DashboardScenePage.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], [0, 0, 0, "Do not use any type assertions.", "1"], @@ -1639,42 +1576,21 @@ exports[`better eslint`] = { "public/app/features/dashboard-scene/panel-edit/LibraryVizPanelInfo.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], - "public/app/features/dashboard-scene/panel-edit/PanelDataPane/NewAlertRuleButton.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/features/dashboard-scene/panel-edit/PanelDataPane/PanelDataAlertingTab.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], "public/app/features/dashboard-scene/panel-edit/PanelDataPane/PanelDataPane.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], - "public/app/features/dashboard-scene/panel-edit/PanelDataPane/PanelDataQueriesTab.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/features/dashboard-scene/panel-edit/PanelDataPane/TransformationsDrawer.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], - "public/app/features/dashboard-scene/panel-edit/PanelEditorRenderer.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "3"] - ], "public/app/features/dashboard-scene/panel-edit/PanelOptionsPane.test.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], "public/app/features/dashboard-scene/panel-edit/SaveLibraryVizPanelModal.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], - "public/app/features/dashboard-scene/saving/SaveDashboardDrawer.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"] - ], - "public/app/features/dashboard-scene/saving/SaveDashboardForm.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] - ], "public/app/features/dashboard-scene/saving/SaveProvisionedDashboardForm.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], @@ -1687,9 +1603,6 @@ exports[`better eslint`] = { [0, 0, 0, "Do not use any type assertions.", "5"], [0, 0, 0, "Unexpected any. Specify a different type.", "6"] ], - "public/app/features/dashboard-scene/saving/shared.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/features/dashboard-scene/scene/PanelMenuBehavior.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], @@ -1723,31 +1636,16 @@ exports[`better eslint`] = { [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] ], - "public/app/features/dashboard-scene/settings/JsonModelEditView.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/dashboard-scene/settings/annotations/AnnotationSettingsEdit.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/dashboard-scene/settings/annotations/AnnotationSettingsList.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] + [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], + [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] ], "public/app/features/dashboard-scene/settings/annotations/index.tsx:5381": [ [0, 0, 0, "Do not re-export imported variable (\`./AnnotationSettingsEdit\`)", "0"], [0, 0, 0, "Do not re-export imported variable (\`./AnnotationSettingsList\`)", "1"] ], - "public/app/features/dashboard-scene/settings/links/DashboardLinkList.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/dashboard-scene/settings/variables/components/DataSourceVariableForm.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] - ], - "public/app/features/dashboard-scene/settings/variables/components/IntervalVariableForm.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"] + [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], "public/app/features/dashboard-scene/settings/variables/components/QueryVariableForm.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] @@ -1769,9 +1667,6 @@ exports[`better eslint`] = { "public/app/features/dashboard-scene/settings/version-history/VersionHistoryHeader.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], - "public/app/features/dashboard-scene/settings/version-history/VersionHistoryTable.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/dashboard-scene/settings/version-history/index.ts:5381": [ [0, 0, 0, "Do not re-export imported variable (\`./HistorySrv\`)", "0"], [0, 0, 0, "Do not re-export imported variable (\`./VersionHistoryButtons\`)", "1"], @@ -1785,9 +1680,6 @@ exports[`better eslint`] = { "public/app/features/dashboard-scene/sharing/ShareButton/share-snapshot/UpsertSnapshot.tsx:5381": [ [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] ], - "public/app/features/dashboard-scene/sharing/public-dashboards/ConfigPublicDashboard.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/features/dashboard-scene/solo/SoloPanelPage.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], @@ -1802,9 +1694,6 @@ exports[`better eslint`] = { [0, 0, 0, "Do not use any type assertions.", "1"], [0, 0, 0, "Do not use any type assertions.", "2"] ], - "public/app/features/dashboard-scene/variables/VariableUsagesButton.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/dashboard/api/ResponseTransformers.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], [0, 0, 0, "Do not use any type assertions.", "1"], diff --git a/public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx b/public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx index bbb12454b7d..6fbc3ae45e8 100644 --- a/public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx +++ b/public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx @@ -156,9 +156,13 @@ export default class StandardAnnotationQueryEditor extends PureComponent - {events.length} events (from {frame?.fields.length} fields) + + {{ numEvents }} events (from {{ numFields }} fields) +

); } @@ -212,7 +216,13 @@ export default class StandardAnnotationQueryEditor extends PureComponentAnnotations are not supported. This datasource needs to export a QueryEditor; + return ( +
+ + Annotations are not supported. This datasource needs to export a QueryEditor + +
+ ); } const query = { diff --git a/public/app/features/api-keys/ApiKeysPage.tsx b/public/app/features/api-keys/ApiKeysPage.tsx index 28cc53bca23..b106aed29c8 100644 --- a/public/app/features/api-keys/ApiKeysPage.tsx +++ b/public/app/features/api-keys/ApiKeysPage.tsx @@ -190,41 +190,60 @@ export const MigrationSummary: React.FC = ({ visible, dat Migration Successful!

- Total: - {data.total} + + Total: + {'{{total}}'} +

- Migrated: - {data.migrated} + + Migrated: + {'{{migrated}}'} +

)} {data.failedApikeyIDs.length !== 0 && (

- Migration Complete! Please note, while there might be a few API keys flagged as `failed migrations`, rest - assured, all of your API keys are fully functional and operational. Please try again or contact support. + + Migration complete! Please note, while there might be a few API keys flagged as `failed migrations`, rest + assured, all of your API keys are fully functional and operational. Please try again or contact support. +


- Total: - {data.total} + + Total: + {'{{total}}'} +

- Migrated: - {data.migrated} + + Migrated: + {'{{migrated}}'} +

- Failed: - {data.failed} + + Failed: + {'{{failed}}'} +

- Failed Api Key IDs: - {data.failedApikeyIDs.join(', ')} + + Failed api key IDs: + {'{{ids}}'} +

- Failed Details: - {data.failedDetails.join(', ')} + + Failed details: + {'{{details}}'} +

)} diff --git a/public/app/features/api-keys/MigrateToServiceAccountsCard.tsx b/public/app/features/api-keys/MigrateToServiceAccountsCard.tsx index aa9f20fa292..aea3c771d69 100644 --- a/public/app/features/api-keys/MigrateToServiceAccountsCard.tsx +++ b/public/app/features/api-keys/MigrateToServiceAccountsCard.tsx @@ -46,9 +46,14 @@ export const MigrateToServiceAccountsCard = ({ onMigrate, apikeysCount, disabled severity="warning" >
- API keys are deprecated and will be removed from Grafana on Jan 31, 2025. Each API key will be migrated into - a service account with a token and will continue to work as they were. We encourage you to migrate your API - keys to service accounts now. {docsLink} + + API keys are deprecated and will be removed from Grafana on Jan 31, 2025. Each API key will be migrated + into a service account with a token and will continue to work as they were. We encourage you to migrate + your API keys to service accounts now. {''} +
- No API keys were found. If you reload the browser, this page will not be available anymore. + + No API keys were found. If you reload the browser, this page will not be available anymore. +
diff --git a/public/app/features/auth-config/AuthDrawer.tsx b/public/app/features/auth-config/AuthDrawer.tsx index b98e59855dd..f0bcfad5c14 100644 --- a/public/app/features/auth-config/AuthDrawer.tsx +++ b/public/app/features/auth-config/AuthDrawer.tsx @@ -70,7 +70,7 @@ export const AuthDrawerUnconnected = ({ }; const subtitle = ( - <> + Configure auth settings. Find out more in our{' '} . - + ); const styles = useStyles2(getStyles); @@ -101,7 +101,9 @@ export const AuthDrawerUnconnected = ({ - Allow users to use the same email address to log into Grafana with different identity providers. + + Allow users to use the same email address to log into Grafana with different identity providers. +
@@ -110,7 +112,10 @@ export const AuthDrawerUnconnected = ({ variant="secondary" className={styles.button} onClick={resetButtonOnClick} - tooltip="This action will disregard any saved changes and load the configuration from the configuration file." + tooltip={t( + 'auth-config.auth-drawer-unconnected.reset-tooltip', + 'This action will disregard any saved changes and load the configuration from the configuration file.' + )} > Reset diff --git a/public/app/features/auth-config/AuthProvidersListPage.tsx b/public/app/features/auth-config/AuthProvidersListPage.tsx index 7318db7441c..3dc0bc14018 100644 --- a/public/app/features/auth-config/AuthProvidersListPage.tsx +++ b/public/app/features/auth-config/AuthProvidersListPage.tsx @@ -82,7 +82,7 @@ export const AuthConfigPageUnconnected = ({ + Manage your auth settings and configure single sign-on. Find out more in our{' '} . - + } actions={ config.buildInfo.edition !== GrafanaEdition.OpenSource && ( diff --git a/public/app/features/auth-config/ProviderConfigForm.tsx b/public/app/features/auth-config/ProviderConfigForm.tsx index cc6372500b8..734557a266c 100644 --- a/public/app/features/auth-config/ProviderConfigForm.tsx +++ b/public/app/features/auth-config/ProviderConfigForm.tsx @@ -168,7 +168,11 @@ export const ProviderConfigForm = ({ config, provider, isLoading }: ProviderConf }} /> {sections @@ -244,8 +248,10 @@ export const ProviderConfigForm = ({ config, provider, isLoading }: ProviderConf
- After resetting these settings Grafana will use the provider configuration from the system (config - file/environment variables) if any. + + After resetting these settings Grafana will use the provider configuration from the system (config + file/environment variables) if any. + } diff --git a/public/app/features/canvas/elements/notFound.tsx b/public/app/features/canvas/elements/notFound.tsx index 8aafc4951c8..bacae7b145e 100644 --- a/public/app/features/canvas/elements/notFound.tsx +++ b/public/app/features/canvas/elements/notFound.tsx @@ -1,5 +1,6 @@ import { PureComponent } from 'react'; +import { Trans } from '../../../core/internationalization'; import { CanvasElementItem, CanvasElementProps } from '../element'; class NotFoundDisplay extends PureComponent { @@ -7,8 +8,13 @@ class NotFoundDisplay extends PureComponent { const { config } = this.props; return (
-

NOT FOUND:

-
{JSON.stringify(config, null, 2)}
+ {JSON.stringify(config, null, 2)} }} + > +

Not found:

+ {''} +
); } diff --git a/public/app/features/canvas/runtime/ables.tsx b/public/app/features/canvas/runtime/ables.tsx index c84a1a06a83..1dd610bdb78 100644 --- a/public/app/features/canvas/runtime/ables.tsx +++ b/public/app/features/canvas/runtime/ables.tsx @@ -34,6 +34,7 @@ export const settingsViewable = (scene: Scene) => ({ const rect = moveable.getRect(); return ( + // eslint-disable-next-line @grafana/no-untranslated-strings
, React: Renderer) { const rect = moveable.getRect(); return ( + // eslint-disable-next-line @grafana/no-untranslated-strings
{ancestor.name} + {/* eslint-disable-next-line @grafana/no-untranslated-strings */} › )} diff --git a/public/app/features/connections/components/ConnectionsRedirectNotice/ConnectionsRedirectNotice.tsx b/public/app/features/connections/components/ConnectionsRedirectNotice/ConnectionsRedirectNotice.tsx index d3c6e7c7109..6526ff76aa2 100644 --- a/public/app/features/connections/components/ConnectionsRedirectNotice/ConnectionsRedirectNotice.tsx +++ b/public/app/features/connections/components/ConnectionsRedirectNotice/ConnectionsRedirectNotice.tsx @@ -34,8 +34,10 @@ export function ConnectionsRedirectNotice() { setShowNotice(false)}>

- Data sources have a new home! You can discover new data sources or manage existing ones in the Connections - page, accessible from the main menu. + + Data sources have a new home! You can discover new data sources or manage existing ones in the Connections + page, accessible from the main menu. +

- Maybe you mistyped the URL or the plugin with the id is unavailable. -
- To see a list of available datasources please click here. + + Maybe you mistyped the URL or the plugin with the id is unavailable. +
+ To see a list of available datasources please click here. +
); } diff --git a/public/app/features/connections/tabs/ConnectData/NoAccessModal/NoAccessModal.tsx b/public/app/features/connections/tabs/ConnectData/NoAccessModal/NoAccessModal.tsx index 3eec720cc67..aed8edf1dc1 100644 --- a/public/app/features/connections/tabs/ConnectData/NoAccessModal/NoAccessModal.tsx +++ b/public/app/features/connections/tabs/ConnectData/NoAccessModal/NoAccessModal.tsx @@ -90,8 +90,10 @@ export function NoAccessModal({ item, isOpen, onDismiss }: NoAccessModalProps) {

- Editors cannot add new connections. You may check to see if it is already configured in{' '} - Data sources. + + Editors cannot add new connections. You may check to see if it is already configured in{' '} + Data sources. +

diff --git a/public/app/features/dashboard-scene/embedding/EmbeddedDashboardTestPage.tsx b/public/app/features/dashboard-scene/embedding/EmbeddedDashboardTestPage.tsx index 8be07e4a0bb..15fb71306e3 100644 --- a/public/app/features/dashboard-scene/embedding/EmbeddedDashboardTestPage.tsx +++ b/public/app/features/dashboard-scene/embedding/EmbeddedDashboardTestPage.tsx @@ -15,6 +15,8 @@ export function EmbeddedDashboardTestPage() { pageNav={{ text: 'Embedding dashboard', subTitle: 'Showing dashboard: Panel Tests - Pie chart' }} layout={PageLayoutType.Canvas} > + {/* this is a test page, no need to translate */} + {/* eslint-disable-next-line @grafana/no-untranslated-strings */} Internal url state: {state} diff --git a/public/app/features/dashboard-scene/inspect/HelpWizard/HelpWizard.tsx b/public/app/features/dashboard-scene/inspect/HelpWizard/HelpWizard.tsx index 743d115be80..0c9af8a01a4 100644 --- a/public/app/features/dashboard-scene/inspect/HelpWizard/HelpWizard.tsx +++ b/public/app/features/dashboard-scene/inspect/HelpWizard/HelpWizard.tsx @@ -19,8 +19,8 @@ import { FeatureBadge, Select, ClipboardButton, - Icon, Stack, + TextLink, } from '@grafana/ui'; import { t, Trans } from 'app/core/internationalization'; import { contextSrv } from 'app/core/services/context_srv'; @@ -77,23 +77,22 @@ export function HelpWizard({ panel, onClose }: Props) { - - Troubleshooting docs - + + Troubleshooting docs + - To request troubleshooting help, send a snapshot of this panel to Grafana Labs Technical Support. The - snapshot contains query response data and panel settings. + + To request troubleshooting help, send a snapshot of this panel to Grafana Labs Technical Support. The + snapshot contains query response data and panel settings. + {hasSupportBundleAccess && ( - You can also retrieve a support bundle containing information concerning your Grafana instance and - configured datasources in the support bundles section. + + You can also retrieve a support bundle containing information concerning your Grafana instance and + configured datasources in the support bundles section. + )} @@ -127,7 +126,7 @@ export function HelpWizard({ panel, onClose }: Props) { ) : ( )}

@@ -151,7 +150,10 @@ export function HelpWizard({ panel, onClose }: Props) { <> - Make sure the panel you want to inspect is visible and has been displayed before opening inspect. + + Make sure the panel you want to inspect is visible and has been displayed before opening inspect. + )} {currentTab && currentTab.Component && } diff --git a/public/app/features/dashboard-scene/panel-edit/PanelDataPane/NewAlertRuleButton.tsx b/public/app/features/dashboard-scene/panel-edit/PanelDataPane/NewAlertRuleButton.tsx index 3136d8d2a41..5ef1fe0df28 100644 --- a/public/app/features/dashboard-scene/panel-edit/PanelDataPane/NewAlertRuleButton.tsx +++ b/public/app/features/dashboard-scene/panel-edit/PanelDataPane/NewAlertRuleButton.tsx @@ -35,7 +35,9 @@ export const ScenesNewRuleFromPanelButton = ({ panel, className }: ScenesNewRule 'No alerting capable query found' )} > - Cannot create alerts from this panel because no query to an alerting capable datasource is found. + + Cannot create alerts from this panel because no query to an alerting capable datasource is found. +
); } diff --git a/public/app/features/dashboard-scene/panel-edit/PanelDataPane/PanelDataQueriesTab.tsx b/public/app/features/dashboard-scene/panel-edit/PanelDataPane/PanelDataQueriesTab.tsx index 0722b47d693..e71e246740b 100644 --- a/public/app/features/dashboard-scene/panel-edit/PanelDataPane/PanelDataQueriesTab.tsx +++ b/public/app/features/dashboard-scene/panel-edit/PanelDataPane/PanelDataQueriesTab.tsx @@ -400,7 +400,9 @@ export function PanelDataQueriesTabRendered({ model }: SceneComponentProps - Expression  + + Expression  + )} {model.renderExtraActions()} diff --git a/public/app/features/dashboard-scene/panel-edit/PanelEditorRenderer.tsx b/public/app/features/dashboard-scene/panel-edit/PanelEditorRenderer.tsx index 3bab0bc8abe..c5b58cecc65 100644 --- a/public/app/features/dashboard-scene/panel-edit/PanelEditorRenderer.tsx +++ b/public/app/features/dashboard-scene/panel-edit/PanelEditorRenderer.tsx @@ -5,6 +5,7 @@ import { GrafanaTheme2 } from '@grafana/data'; import { selectors } from '@grafana/e2e-selectors'; import { SceneComponentProps, VizPanel } from '@grafana/scenes'; import { Button, Spinner, ToolbarButton, useStyles2 } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { useEditPaneCollapsed } from '../edit-pane/shared'; import { NavToolbarActions } from '../scene/NavToolbarActions'; @@ -53,12 +54,15 @@ export function PanelEditorRenderer({ model }: SceneComponentProps) {splitterState.collapsed && (
)} @@ -127,13 +131,13 @@ function VizAndDataPane({ model }: SceneComponentProps) { {splitterState.collapsed && (
)} diff --git a/public/app/features/dashboard-scene/saving/SaveDashboardDrawer.tsx b/public/app/features/dashboard-scene/saving/SaveDashboardDrawer.tsx index 72e5dca3639..eb815c71eef 100644 --- a/public/app/features/dashboard-scene/saving/SaveDashboardDrawer.tsx +++ b/public/app/features/dashboard-scene/saving/SaveDashboardDrawer.tsx @@ -1,5 +1,6 @@ import { SceneComponentProps, SceneObjectBase, SceneObjectState, SceneObjectRef } from '@grafana/scenes'; import { Drawer, Tab, TabsBar } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { SaveDashboardDiff } from 'app/features/dashboard/components/SaveDashboard/SaveDashboardDiff'; import { useIsProvisionedNG } from 'app/features/provisioning/hooks/useIsProvisionedNG'; @@ -59,10 +60,14 @@ export class SaveDashboardDrawer extends SceneObjectBase - model.setState({ showDiff: false })} /> + model.setState({ showDiff: false })} + /> {changesCount > 0 && ( model.setState({ showDiff: true })} counter={changesCount} diff --git a/public/app/features/dashboard-scene/saving/SaveDashboardForm.tsx b/public/app/features/dashboard-scene/saving/SaveDashboardForm.tsx index a3a0b904819..1bc062d0519 100644 --- a/public/app/features/dashboard-scene/saving/SaveDashboardForm.tsx +++ b/public/app/features/dashboard-scene/saving/SaveDashboardForm.tsx @@ -110,7 +110,10 @@ export function SaveDashboardForm({ dashboard, drawer, changeInfo }: Props) { severity="error" >

- Your changes will be lost when you update the plugin. Use Save As to create custom version. + + Your changes will be lost when you update the plugin. Use Save as to create custom + version. +

@@ -162,9 +165,11 @@ export function SaveDashboardForm({ dashboard, drawer, changeInfo }: Props) { severity="warning" >

- Because you're using new dashboards features only supported on new Grafana dashboard schema format, the - dashboard will be saved in the new format. Please make sure you want to perform this action or you prefer to - save the dashboard as a new copy. + + Because you're using new dashboards features only supported on new Grafana dashboard schema format, the + dashboard will be saved in the new format. Please make sure you want to perform this action or you prefer + to save the dashboard as a new copy. +

)} @@ -211,7 +216,10 @@ export function SaveDashboardFormCommonOptions({ drawer, changeInfo }: SaveDashb 'dashboard-scene.save-dashboard-form-common-options.save-timerange-label-update-default-time-range', 'Update default time range' )} - description={'Will make current time range the new default'} + description={t( + 'dashboard-scene.save-dashboard-form-common-options.save-timerange-description-current-range-default', + 'Will make current time range the new default' + )} data-testid={selectors.pages.SaveDashboardModal.saveTimerange} /> )} diff --git a/public/app/features/dashboard-scene/saving/shared.tsx b/public/app/features/dashboard-scene/saving/shared.tsx index 978a2845abd..648846bc22d 100644 --- a/public/app/features/dashboard-scene/saving/shared.tsx +++ b/public/app/features/dashboard-scene/saving/shared.tsx @@ -61,7 +61,9 @@ export function NameAlreadyExistsError({ cancelButton, saveButton }: NameAlready severity="error" >

- A dashboard with the same name in selected folder already exists. Would you still like to save this dashboard? + + A dashboard with the same name in selected folder already exists. Would you still like to save this dashboard? +

diff --git a/public/app/features/dashboard-scene/settings/JsonModelEditView.tsx b/public/app/features/dashboard-scene/settings/JsonModelEditView.tsx index 9a1f5977628..5cadfcbf48f 100644 --- a/public/app/features/dashboard-scene/settings/JsonModelEditView.tsx +++ b/public/app/features/dashboard-scene/settings/JsonModelEditView.tsx @@ -183,8 +183,10 @@ export class JsonModelEditView extends SceneObjectBase i severity="error" >

- Your changes will be lost when you update the plugin. Use Save As to create custom - version. + + Your changes will be lost when you update the plugin. Use Save as to create custom + version. +

{saveButton(true)} diff --git a/public/app/features/dashboard-scene/settings/annotations/AnnotationSettingsEdit.tsx b/public/app/features/dashboard-scene/settings/annotations/AnnotationSettingsEdit.tsx index 7aba0f88636..ff2df5737d6 100644 --- a/public/app/features/dashboard-scene/settings/annotations/AnnotationSettingsEdit.tsx +++ b/public/app/features/dashboard-scene/settings/annotations/AnnotationSettingsEdit.tsx @@ -215,7 +215,10 @@ export const AnnotationSettingsEdit = ({ annotation, editIndex, panels, onUpdate onDelete(idx)} - aria-label={`Delete query with title "${annotation.name}"`} + aria-label={t( + 'dashboard-scene.annotation-settings-list.delete-aria-label', + 'Delete query with title "{{title}}"', + { title: annotation.name } + )} /> )} diff --git a/public/app/features/dashboard-scene/settings/links/DashboardLinkList.tsx b/public/app/features/dashboard-scene/settings/links/DashboardLinkList.tsx index d8efe046c05..1e574ee7762 100644 --- a/public/app/features/dashboard-scene/settings/links/DashboardLinkList.tsx +++ b/public/app/features/dashboard-scene/settings/links/DashboardLinkList.tsx @@ -106,7 +106,11 @@ export function DashboardLinkList({ onDelete(idx)} /> diff --git a/public/app/features/dashboard-scene/settings/variables/components/DataSourceVariableForm.tsx b/public/app/features/dashboard-scene/settings/variables/components/DataSourceVariableForm.tsx index 80d26b57764..a1b4e7ba5a8 100644 --- a/public/app/features/dashboard-scene/settings/variables/components/DataSourceVariableForm.tsx +++ b/public/app/features/dashboard-scene/settings/variables/components/DataSourceVariableForm.tsx @@ -60,6 +60,7 @@ export function DataSourceVariableForm({ @@ -67,7 +70,10 @@ export function IntervalVariableForm({
- Are you sure you want to revoke this URL? The dashboard will no longer be public. + + Are you sure you want to revoke this URL? The dashboard will no longer be public. +

), onDismiss: () => { diff --git a/public/app/features/dashboard-scene/variables/VariableUsagesButton.tsx b/public/app/features/dashboard-scene/variables/VariableUsagesButton.tsx index 9d9a9db9747..0956739e9a7 100644 --- a/public/app/features/dashboard-scene/variables/VariableUsagesButton.tsx +++ b/public/app/features/dashboard-scene/variables/VariableUsagesButton.tsx @@ -30,7 +30,14 @@ export const VariableUsagesButton = ({ id, usages, isAdhoc }: Props) => { }); return ( - + {({ showModal }) => { return ( ", "docs-link": { "about-migration": "Find out more about the migration here." }, @@ -2111,13 +2115,20 @@ "migration-box-desc": { "migrating": "Migrating all API keys will hide the API keys tab." }, + "modal-title": "Migrate API keys to service accounts", "title-no-api-keys-found": "No API keys found", "title-switch-service-accounts": "Switch from API keys to service accounts" }, "migration-summary": { "close": "Close", + "failed": "<0>Failed: {{failed}}", + "failed-details": "<0>Failed details: {{details}}", + "failed-ids": "<0>Failed api key IDs: {{ids}}", + "migrated": "<0>Migrated: {{migrated}}", + "migration-complete": "Migration complete! Please note, while there might be a few API keys flagged as `failed migrations`, rest assured, all of your API keys are fully functional and operational. Please try again or contact support.", "migration-successful": "Migration Successful!", - "title-migration-summary": "Migration summary" + "title-migration-summary": "Migration summary", + "total": "<0>Total: {{total}}" } }, "app-chrome": { @@ -2135,10 +2146,15 @@ "auth-config-page-unconnected": { "auth-settings": "Auth settings" }, + "auth-drawer-unconneced": { + "subtitle": "Configure auth settings. Find out more in our <2>documentation." + }, "auth-drawer-unconnected": { "advanced-auth": "Advanced Auth", "enable-insecure-email-lookup": "Enable insecure email lookup", + "enable-insecure-email-lookup-description": "Allow users to use the same email address to log into Grafana with different identity providers.", "reset": "Reset", + "reset-tooltip": "This action will disregard any saved changes and load the configuration from the configuration file.", "title-auth-settings": "Auth settings" }, "configure-auth-cta": { @@ -2151,8 +2167,10 @@ "label-reset-to-default-values": "Reset to default values" }, "discard": "Discard", + "enabled-label-enabled": "Enabled", "label-enabled": "Enabled", "reset-configuration": "Are you sure you want to reset this configuration?", + "reset-configuration-description": "After resetting these settings Grafana will use the provider configuration from the system (config file/environment variables) if any.", "title-more-actions": "More actions", "title-reset": "Reset", "tooltip-more-actions": "More actions" @@ -2162,6 +2180,9 @@ "title-open-id-connect-discovery-url": "OpenID Connect Discovery URL" } }, + "auth-config-auth-config-page-unconnected": { + "subtitle": "Manage your auth settings and configure single sign-on. Find out more in our <2>documentation." + }, "bookmarks-page": { "empty": { "message": "It looks like you haven’t created any bookmarks yet", @@ -2288,6 +2309,11 @@ }, "text-this-repository-is-read-only": "If you have direct access to the target, copy the JSON and paste it there." }, + "canvas": { + "not-found-display": { + "not-found": "<0>Not found: " + } + }, "carousel": { "close": "Close", "error": "Something went wrong loading images", @@ -2367,12 +2393,17 @@ }, "connections-redirect-notice": { "aria-label-link-to-connections": "Link to Connections", + "body": "Data sources have a new home! You can discover new data sources or manage existing ones in the Connections page, accessible from the main menu.", "go-to-connections": "Go to connections" }, "no-access-modal": { "connection-contact-grafana-admin": "To add a new connection, contact your Grafana admin.", + "editor-warning": "Editors cannot add new connections. You may check to see if it is already configured in <2>Data sources.", "okay": "Okay" }, + "not-found-datasource": { + "body": "Maybe you mistyped the URL or the plugin with the id <1> is unavailable.<3>To see a list of available datasources please <5>click here." + }, "search": { "aria-label-search-all": "Search all", "placeholder": "Search all" @@ -2508,6 +2539,11 @@ "type-tooltip": "The type of transformation that will be applied to the source data." } }, + "dashbaord-scene": { + "interval-variable-form": { + "description-auto-option": "Dynamically calculates interval by dividing time range by the count specified" + } + }, "dashboard": { "actions": { "open-settings": "Settings" @@ -3278,6 +3314,7 @@ "delete": "Delete", "description-color-annotation-event-markers": "Color to use for the annotation event markers", "description-enabled-annotation-query-issued-every-dashboard": "When enabled the annotation query is issued every dashboard refresh", + "description-hidden": "Annotation queries can be toggled on or off at the top of the dashboard. With this option checked this toggle will be hidden.", "label-color": "Color", "label-data-source": "Data source", "label-enabled": "Enabled", @@ -3290,6 +3327,7 @@ }, "annotation-settings-list": { "data-source": "Data source", + "delete-aria-label": "Delete query with title \"{{title}}\"", "new-query": "New query", "query-name": "Query name", "tooltip-move-down": "Move down", @@ -3329,6 +3367,7 @@ "placeholder-open-dashboard": "Open dashboard" }, "dashboard-link-list": { + "delete-aria-label": "Delete link with title \"{{title}}\"", "info": "Info", "new-link": "New link", "tooltip-copy-link": "Copy link", @@ -3369,6 +3408,10 @@ }, "help-wizard": { "copy-to-clipboard": "Copy to clipboard", + "description-randomize-data": "Modify the original data to hide sensitive information. Note the lengths will stay the same, and duplicate values will be equal.", + "description-support-snapshot": "Panel: {{panelTitle}}", + "download-dashboard": "Dashboard ({{snapshotSize}})", + "download-snapshot": "Download ({{snapshotSize}})", "label-randomize-data": "Randomize data", "label-support-snapshot": "Support snapshot", "label-template": "Template", @@ -3376,7 +3419,9 @@ "randomize-labels-label-labels": "Labels", "randomize-string-values-label-string-values": "String values", "title-complete-git-hub-comment-clipboard": "Copy a complete GitHub comment to the clipboard", - "title-get-help-with-this-panel": "Get help with this panel" + "title-get-help-with-this-panel": "Get help with this panel", + "troubleshooting-docs": "Troubleshooting docs", + "troubleshooting-request-help": "To request troubleshooting help, send a snapshot of this panel to Grafana Labs Technical Support. The snapshot contains query response data and panel settings." }, "inspect-data-tab": { "no-data-found": "No data found" @@ -3386,6 +3431,7 @@ }, "interval-variable-form": { "description-calculated-value-below-threshold": "The calculated value will not go below this threshold", + "description-step-count": "How many times the current time range should be divided to calculate the value", "interval-options": "Interval options" }, "json-model-edit-view": { @@ -3393,6 +3439,7 @@ "cancel": "Cancel" }, "render-save-button-and-error": { + "body-plugin-dashboard": "Your changes will be lost when you update the plugin. Use <1>Save as to create custom version.", "title-failed-to-save-dashboard": "Failed to save dashboard", "title-plugin-dashboard": "Plugin dashboard", "title-someone-else-has-updated-this-dashboard": "Someone else has updated this dashboard", @@ -3400,6 +3447,7 @@ } }, "name-already-exists-error": { + "body-name-already-exists": "A dashboard with the same name in selected folder already exists. Would you still like to save this dashboard?", "title-name-already-exists": "Name already exists" }, "panel-data-alerting-tab-rendered": { @@ -3410,7 +3458,8 @@ "title-dashboard-not-saved": "Dashboard not saved" }, "panel-data-queries-tab-rendered": { - "add-query": "Add query" + "add-query": "Add query", + "expression": "Expression " }, "panel-data-transformations-tab-rendered": { "add-another-transformation": "Add another transformation", @@ -3421,7 +3470,12 @@ "table-view-aria-label-toggletableview": "Toggle table view", "table-view-label-table-view": "Table view" }, + "panel-editor-renderer": { + "aria-label-open-options-pane": "Open options pane", + "tooltip-open-options-pane": "Open options pane" + }, "panel-inspect-renderer": { + "body-panel-plugin-not-loaded": "Make sure the panel you want to inspect is visible and has been displayed before opening inspect.", "title-panel-plugin-not-loaded": "Panel plugin not loaded" }, "panel-viz-type-picker": { @@ -3461,14 +3515,22 @@ "title-failed-to-save-dashboard": "Failed to save dashboard" } }, + "save-dashboard-drawer": { + "tabs": { + "label-changes": "Changes", + "label-details": "Details" + } + }, "save-dashboard-form": { "aria-label-message": "message", + "body-dashboard-drastically-changed": "Because you're using new dashboards features only supported on new Grafana dashboard schema format, the dashboard will be saved in the new format. Please make sure you want to perform this action or you prefer to save the dashboard as a new copy.", "cancel-button": { "cancel": "Cancel" }, "label-message": "Message", "placeholder-describe-changes-optional": "Add a note to describe your changes (optional).", "render-footer": { + "body-plugin-dashboard": "Your changes will be lost when you update the plugin. Use <1>Save as to create custom version.", "no-changes-to-save": "No changes to save", "title-failed-to-save-dashboard": "Failed to save dashboard", "title-plugin-dashboard": "Plugin dashboard", @@ -3480,6 +3542,7 @@ "save-dashboard-form-common-options": { "save-refresh-description-current-refresh-default": "Will make the current refresh the new default", "save-refresh-label-update-default-refresh-value": "Update default refresh value", + "save-timerange-description-current-range-default": "Will make current time range the new default", "save-timerange-label-update-default-time-range": "Update default time range", "save-variables-description-current-values-default": "Will make the current values the new default", "save-variables-label-update-default-variable-values": "Update default variable values" @@ -3517,6 +3580,7 @@ "title-validation-failed": "Dashboard title validation failed." }, "scenes-new-rule-from-panel-button": { + "body-no-alerting-capable-query-found": "Cannot create alerts from this panel because no query to an alerting capable datasource is found.", "new-alert-rule": "New alert rule", "title-no-alerting-capable-query-found": "No alerting capable query found" }, @@ -3580,6 +3644,7 @@ "label-show-on-dashboard": "Show on dashboard" }, "variable-usages-button": { + "title-show-usages": "Showing usages for: {{variableId}}", "tooltip-show-usages": "Show usages" }, "variable-values-preview": { @@ -3594,6 +3659,7 @@ "tooltip-reset-version": "Reset version" }, "version-history-table": { + "aria-label-toggle-selection": "Toggle selection of version {{version}}", "date": "Date", "notes": "Notes", "restore": "Restore", @@ -3608,10 +3674,17 @@ "aria-label-change-visualization": "Change visualization", "tooltip-click-to-change-visualization": "Click to change visualization" }, + "viz-and-data-pane": { + "aria-label-open-query-pane": "Open query pane", + "tooltip-open-query-pane": "Open query pane" + }, "viz-panel-links-renderer": { "aria-label-panel-links": "Panel links" } }, + "dashboard-scene-help-wizard": { + "support-bundle": "You can also retrieve a support bundle containing information concerning your Grafana instance and configured datasources in the <1>support bundles section." + }, "dashboard-settings": { "annotations": { "title": "Annotations" @@ -6652,6 +6725,7 @@ "email-share-type-option-label": "Only specified people", "pause-sharing-dashboard-label": "Pause sharing dashboard", "public-share-type-option-label": "Anyone with a link", + "revoke-body": "Are you sure you want to revoke this URL? The dashboard will no longer be public.", "revoke-public-URL-button": "Revoke public URL", "revoke-public-URL-button-title": "Revoke public URL", "settings-title": "Settings"