diff --git a/public/app/features/datasources/components/picker/AddNewDataSourceButton.tsx b/public/app/features/datasources/components/picker/AddNewDataSourceButton.tsx index d7da861e361..bc7bf9508c5 100644 --- a/public/app/features/datasources/components/picker/AddNewDataSourceButton.tsx +++ b/public/app/features/datasources/components/picker/AddNewDataSourceButton.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { LinkButton, ButtonVariant } from '@grafana/ui'; import { contextSrv } from 'app/core/core'; +import { Trans } from 'app/core/internationalization'; import { ROUTES as CONNECTIONS_ROUTES } from 'app/features/connections/constants'; import { AccessControlAction } from 'app/types'; @@ -23,7 +24,7 @@ export function AddNewDataSourceButton({ variant, onClick }: AddNewDataSourceBut onClick={onClick} target="_blank" > - Configure a new data source + Configure a new data source ); } diff --git a/public/app/features/datasources/components/picker/BuiltInDataSourceList.tsx b/public/app/features/datasources/components/picker/BuiltInDataSourceList.tsx index a65c9827885..ee08899e4a2 100644 --- a/public/app/features/datasources/components/picker/BuiltInDataSourceList.tsx +++ b/public/app/features/datasources/components/picker/BuiltInDataSourceList.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { DataSourceInstanceSettings } from '@grafana/data'; import { DataSourceRef } from '@grafana/schema'; +import { t } from 'app/core/internationalization'; import { useDatasources } from '../../hooks'; @@ -9,9 +10,12 @@ import { DataSourceCard } from './DataSourceCard'; import { isDataSourceMatch } from './utils'; const CUSTOM_DESCRIPTIONS_BY_UID: Record = { - grafana: 'Discover visualizations using mock data', - '-- Mixed --': 'Use multiple data sources', - '-- Dashboard --': 'Reuse query results from other visualizations', + grafana: t('data-source-picker.built-in-list.description-grafana', 'Discover visualizations using mock data'), + '-- Mixed --': t('data-source-picker.built-in-list.description-mixed', 'Use multiple data sources'), + '-- Dashboard --': t( + 'data-source-picker.built-in-list.description-dashboard', + 'Reuse query results from other visualizations' + ), }; interface BuiltInDataSourceListProps { diff --git a/public/app/features/datasources/components/picker/DataSourceList.tsx b/public/app/features/datasources/components/picker/DataSourceList.tsx index a9cbb96f56e..df286934acb 100644 --- a/public/app/features/datasources/components/picker/DataSourceList.tsx +++ b/public/app/features/datasources/components/picker/DataSourceList.tsx @@ -5,6 +5,7 @@ import { Observable } from 'rxjs'; import { DataSourceInstanceSettings, DataSourceRef, GrafanaTheme2 } from '@grafana/data'; import { getTemplateSrv } from '@grafana/runtime'; import { useStyles2, useTheme2 } from '@grafana/ui'; +import { Trans } from 'app/core/internationalization'; import { useDatasources, useKeyboardNavigatableList, useRecentlyUsedDataSources } from '../../hooks'; @@ -98,7 +99,9 @@ function EmptyState({ className, onClickCTA }: { className?: string; onClickCTA? const styles = useStyles2(getEmptyStateStyles); return (
-

No data sources found

+

+ No data sources found +

); diff --git a/public/app/features/datasources/components/picker/DataSourceModal.tsx b/public/app/features/datasources/components/picker/DataSourceModal.tsx index b1caf35835d..6c416042cce 100644 --- a/public/app/features/datasources/components/picker/DataSourceModal.tsx +++ b/public/app/features/datasources/components/picker/DataSourceModal.tsx @@ -14,6 +14,7 @@ import { Input, Icon, } from '@grafana/ui'; +import { t, Trans } from 'app/core/internationalization'; import * as DFImport from 'app/features/dataframe-import'; import { GrafanaQuery } from 'app/plugins/datasource/grafana/types'; import { getFileDropToQueryHandler } from 'app/plugins/datasource/grafana/utils'; @@ -143,7 +144,7 @@ export function DataSourceModal({ return ( } - placeholder="Search data source" + placeholder={t('data-source-picker.modal.input-placeholder', 'Select data source')} onChange={(e) => { setSearch(e.currentTarget.value); reportSearchUsageOnce(); @@ -211,7 +212,11 @@ export function DataSourceModal({ )}
- Open a new tab and configure a data source + + + Open a new tab and configure a data source + + { diff --git a/public/locales/de-DE/grafana.json b/public/locales/de-DE/grafana.json index 2769f2a1910..a3a351ff484 100644 --- a/public/locales/de-DE/grafana.json +++ b/public/locales/de-DE/grafana.json @@ -314,6 +314,20 @@ } }, "data-source-picker": { + "add-new-data-source": "", + "built-in-list": { + "description-dashboard": "", + "description-grafana": "", + "description-mixed": "" + }, + "list": { + "no-data-source-message": "" + }, + "modal": { + "configure-new-data-source": "", + "input-placeholder": "", + "title": "" + }, "open-advanced-button": "" }, "data-sources": { diff --git a/public/locales/en-US/grafana.json b/public/locales/en-US/grafana.json index 0af0836f839..2a273dbcb54 100644 --- a/public/locales/en-US/grafana.json +++ b/public/locales/en-US/grafana.json @@ -314,6 +314,20 @@ } }, "data-source-picker": { + "add-new-data-source": "Configure a new data source", + "built-in-list": { + "description-dashboard": "Reuse query results from other visualizations", + "description-grafana": "Discover visualizations using mock data", + "description-mixed": "Use multiple data sources" + }, + "list": { + "no-data-source-message": "No data sources found" + }, + "modal": { + "configure-new-data-source": "Open a new tab and configure a data source", + "input-placeholder": "Select data source", + "title": "Select data source" + }, "open-advanced-button": "Open advanced data source picker" }, "data-sources": { diff --git a/public/locales/es-ES/grafana.json b/public/locales/es-ES/grafana.json index 3e3b900771f..3e400ed2f3a 100644 --- a/public/locales/es-ES/grafana.json +++ b/public/locales/es-ES/grafana.json @@ -319,6 +319,20 @@ } }, "data-source-picker": { + "add-new-data-source": "", + "built-in-list": { + "description-dashboard": "", + "description-grafana": "", + "description-mixed": "" + }, + "list": { + "no-data-source-message": "" + }, + "modal": { + "configure-new-data-source": "", + "input-placeholder": "", + "title": "" + }, "open-advanced-button": "" }, "data-sources": { diff --git a/public/locales/fr-FR/grafana.json b/public/locales/fr-FR/grafana.json index bbd91cf05b7..3f536aec4df 100644 --- a/public/locales/fr-FR/grafana.json +++ b/public/locales/fr-FR/grafana.json @@ -319,6 +319,20 @@ } }, "data-source-picker": { + "add-new-data-source": "", + "built-in-list": { + "description-dashboard": "", + "description-grafana": "", + "description-mixed": "" + }, + "list": { + "no-data-source-message": "" + }, + "modal": { + "configure-new-data-source": "", + "input-placeholder": "", + "title": "" + }, "open-advanced-button": "" }, "data-sources": { diff --git a/public/locales/pseudo-LOCALE/grafana.json b/public/locales/pseudo-LOCALE/grafana.json index f41df9e3968..8188fe6aedd 100644 --- a/public/locales/pseudo-LOCALE/grafana.json +++ b/public/locales/pseudo-LOCALE/grafana.json @@ -314,6 +314,20 @@ } }, "data-source-picker": { + "add-new-data-source": "Cőʼnƒįģūřę ä ʼnęŵ đäŧä şőūřčę", + "built-in-list": { + "description-dashboard": "Ŗęūşę qūęřy řęşūľŧş ƒřőm őŧĥęř vįşūäľįžäŧįőʼnş", + "description-grafana": "Đįşčővęř vįşūäľįžäŧįőʼnş ūşįʼnģ mőčĸ đäŧä", + "description-mixed": "Ůşę mūľŧįpľę đäŧä şőūřčęş" + }, + "list": { + "no-data-source-message": "Ńő đäŧä şőūřčęş ƒőūʼnđ" + }, + "modal": { + "configure-new-data-source": "Øpęʼn ä ʼnęŵ ŧäþ äʼnđ čőʼnƒįģūřę ä đäŧä şőūřčę", + "input-placeholder": "Ŝęľęčŧ đäŧä şőūřčę", + "title": "Ŝęľęčŧ đäŧä şőūřčę" + }, "open-advanced-button": "Øpęʼn äđväʼnčęđ đäŧä şőūřčę pįčĸęř" }, "data-sources": { diff --git a/public/locales/zh-Hans/grafana.json b/public/locales/zh-Hans/grafana.json index 62dd47f8d02..ab3e400cdcb 100644 --- a/public/locales/zh-Hans/grafana.json +++ b/public/locales/zh-Hans/grafana.json @@ -309,6 +309,20 @@ } }, "data-source-picker": { + "add-new-data-source": "", + "built-in-list": { + "description-dashboard": "", + "description-grafana": "", + "description-mixed": "" + }, + "list": { + "no-data-source-message": "" + }, + "modal": { + "configure-new-data-source": "", + "input-placeholder": "", + "title": "" + }, "open-advanced-button": "" }, "data-sources": {