diff --git a/.betterer.results b/.betterer.results index b56e99b02a0..b593c39ca68 100644 --- a/.betterer.results +++ b/.betterer.results @@ -518,120 +518,30 @@ exports[`better eslint`] = { "packages/grafana-sql/src/components/visual-query-builder/AwesomeQueryBuilder.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], - "packages/grafana-ui/src/components/Alert/Alert.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"] - ], - "packages/grafana-ui/src/components/Card/Card.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], - "packages/grafana-ui/src/components/Cascader/Cascader.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "packages/grafana-ui/src/components/ColorPicker/ColorPicker.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], [0, 0, 0, "Unexpected any. Specify a different type.", "1"] ], - "packages/grafana-ui/src/components/ColorPicker/NamedColorsPalette.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"] - ], - "packages/grafana-ui/src/components/ColorPicker/SeriesColorPickerPopover.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"] - ], "packages/grafana-ui/src/components/Combobox/MultiCombobox.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], - "packages/grafana-ui/src/components/Combobox/ValuePill.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "packages/grafana-ui/src/components/Combobox/useOptions.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], - "packages/grafana-ui/src/components/ConfirmModal/ConfirmContent.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], - "packages/grafana-ui/src/components/DataLinks/DataLinkEditor.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"] - ], "packages/grafana-ui/src/components/DataLinks/DataLinkInput.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], "packages/grafana-ui/src/components/DataLinks/DataLinkSuggestions.tsx:5381": [ [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] ], - "packages/grafana-ui/src/components/DataSourceSettings/AlertingSettings.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"] - ], - "packages/grafana-ui/src/components/DataSourceSettings/BasicAuthSettings.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"] - ], "packages/grafana-ui/src/components/DataSourceSettings/CustomHeadersSettings.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"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "5"], - [0, 0, 0, "Unexpected any. Specify a different type.", "6"], - [0, 0, 0, "Unexpected any. Specify a different type.", "7"] - ], - "packages/grafana-ui/src/components/DataSourceSettings/DataSourceHttpSettings.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"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "5"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "6"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "7"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "8"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "9"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "10"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "11"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "12"] - ], - "packages/grafana-ui/src/components/DataSourceSettings/HttpProxySettings.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"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "5"] - ], - "packages/grafana-ui/src/components/DataSourceSettings/SecureSocksProxySettings.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"] - ], - "packages/grafana-ui/src/components/DataSourceSettings/TLSAuthSettings.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"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "5"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "6"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "7"] + [0, 0, 0, "Unexpected any. Specify a different type.", "0"], + [0, 0, 0, "Unexpected any. Specify a different type.", "1"] ], "packages/grafana-ui/src/components/DataSourceSettings/types.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], [0, 0, 0, "Unexpected any. Specify a different type.", "1"] ], - "packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.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"] - ], - "packages/grafana-ui/src/components/DateTimePickers/RelativeTimeRangePicker/RelativeTimeRangePicker.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"] - ], "packages/grafana-ui/src/components/FileDropzone/FileDropzone.tsx:5381": [ [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] ], diff --git a/packages/grafana-ui/src/components/Alert/Alert.tsx b/packages/grafana-ui/src/components/Alert/Alert.tsx index 2789879c8f2..f1f0efe7329 100644 --- a/packages/grafana-ui/src/components/Alert/Alert.tsx +++ b/packages/grafana-ui/src/components/Alert/Alert.tsx @@ -7,6 +7,7 @@ import { selectors } from '@grafana/e2e-selectors'; import { useTheme2 } from '../../themes'; import { IconName } from '../../types/icon'; +import { t } from '../../utils/i18n'; import { Button } from '../Button/Button'; import { Icon } from '../Icon/Icon'; import { Box } from '../Layout/Box/Box'; @@ -53,6 +54,8 @@ export const Alert = React.forwardRef( const role = restProps['role'] || rolesBySeverity[severity]; const ariaLabel = restProps['aria-label'] || title; + const closeLabel = t('grafana-ui.alert.close-button', 'Close alert'); + return (
( {onRemove && !buttonContent && (
diff --git a/packages/grafana-ui/src/components/Card/Card.tsx b/packages/grafana-ui/src/components/Card/Card.tsx index 7171b78b08a..49637c5a695 100644 --- a/packages/grafana-ui/src/components/Card/Card.tsx +++ b/packages/grafana-ui/src/components/Card/Card.tsx @@ -6,6 +6,7 @@ import { GrafanaTheme2 } from '@grafana/data'; import { useStyles2 } from '../../themes'; import { getFocusStyles } from '../../themes/mixins'; +import { t } from '../../utils/i18n'; import { CardContainer, CardContainerProps, getCardContainerStyles } from './CardContainer'; @@ -102,6 +103,7 @@ const Heading = ({ children, className, 'aria-label': ariaLabel }: ChildProps & onClick: undefined, isSelected: undefined, }; + const optionLabel = t('grafana-ui.card.option', 'option'); return (

@@ -117,7 +119,7 @@ const Heading = ({ children, className, 'aria-label': ariaLabel }: ChildProps & <>{children} )} {/* Input must be readonly because we are providing a value for the checked prop with no onChange handler */} - {isSelected !== undefined && } + {isSelected !== undefined && }

); }; diff --git a/packages/grafana-ui/src/components/Cascader/Cascader.tsx b/packages/grafana-ui/src/components/Cascader/Cascader.tsx index f3b2114b613..b142aaa2fad 100644 --- a/packages/grafana-ui/src/components/Cascader/Cascader.tsx +++ b/packages/grafana-ui/src/components/Cascader/Cascader.tsx @@ -8,6 +8,7 @@ import { SelectableValue } from '@grafana/data'; import { withTheme2 } from '../../themes'; import { Themeable2 } from '../../types'; +import { t } from '../../utils/i18n'; import { Icon } from '../Icon/Icon'; import { IconButton } from '../IconButton/IconButton'; import { Input } from '../Input/Input'; @@ -286,7 +287,7 @@ class UnthemedCascader extends PureComponent { {isClearable && activeLabel !== '' && ( { e.preventDefault(); e.stopPropagation(); diff --git a/packages/grafana-ui/src/components/ColorPicker/NamedColorsPalette.tsx b/packages/grafana-ui/src/components/ColorPicker/NamedColorsPalette.tsx index 521500db77d..d4cfbe381c5 100644 --- a/packages/grafana-ui/src/components/ColorPicker/NamedColorsPalette.tsx +++ b/packages/grafana-ui/src/components/ColorPicker/NamedColorsPalette.tsx @@ -3,6 +3,7 @@ import { css } from '@emotion/css'; import { GrafanaTheme2 } from '@grafana/data'; import { useStyles2, useTheme2 } from '../../themes/ThemeContext'; +import { t } from '../../utils/i18n'; import { ColorSwatch } from './ColorSwatch'; import NamedColorsGroup from './NamedColorsGroup'; @@ -28,13 +29,13 @@ export const NamedColorsPalette = ({ color, onChange }: NamedColorsPaletteProps) onChange('transparent')} /> onChange('text')} />
diff --git a/packages/grafana-ui/src/components/ColorPicker/SeriesColorPickerPopover.tsx b/packages/grafana-ui/src/components/ColorPicker/SeriesColorPickerPopover.tsx index 542d8a67d26..f7258cd3ed9 100644 --- a/packages/grafana-ui/src/components/ColorPicker/SeriesColorPickerPopover.tsx +++ b/packages/grafana-ui/src/components/ColorPicker/SeriesColorPickerPopover.tsx @@ -1,4 +1,5 @@ import { withTheme2 } from '../../themes'; +import { t } from '../../utils/i18n'; import { InlineField } from '../Forms/InlineField'; import { InlineSwitch } from '../Switch/Switch'; import { PopoverContentProps } from '../Tooltip'; @@ -12,15 +13,15 @@ export interface SeriesColorPickerPopoverProps extends ColorPickerProps, Popover export const SeriesColorPickerPopover = (props: SeriesColorPickerPopoverProps) => { const { yaxis, onToggleAxis, color, ...colorPickerProps } = props; - + const yAxisLabel = t('grafana-ui.series-color-picker-popover.y-axis-usage', 'Use right y-axis'); const customPickers = onToggleAxis ? { yaxis: { name: 'Y-Axis', tabComponent() { return ( - - + + ); }, diff --git a/packages/grafana-ui/src/components/Combobox/ValuePill.tsx b/packages/grafana-ui/src/components/Combobox/ValuePill.tsx index caeb3578df4..5205767a1db 100644 --- a/packages/grafana-ui/src/components/Combobox/ValuePill.tsx +++ b/packages/grafana-ui/src/components/Combobox/ValuePill.tsx @@ -4,6 +4,7 @@ import { forwardRef } from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { useStyles2 } from '../../themes'; +import { t } from '../../utils/i18n'; import { IconButton } from '../IconButton/IconButton'; interface ValuePillProps { @@ -15,6 +16,7 @@ interface ValuePillProps { export const ValuePill = forwardRef( ({ children, onRemove, disabled, ...rest }, ref) => { const styles = useStyles2(getValuePillStyles, disabled); + const removeButtonLabel = t('grafana-ui.value-pill.remove-button', 'Remove {{children}}', { children }); return ( {children} @@ -24,7 +26,7 @@ export const ValuePill = forwardRef( { e.stopPropagation(); onRemove(); diff --git a/packages/grafana-ui/src/components/ConfirmModal/ConfirmContent.tsx b/packages/grafana-ui/src/components/ConfirmModal/ConfirmContent.tsx index 27b94d395c0..48065ea44be 100644 --- a/packages/grafana-ui/src/components/ConfirmModal/ConfirmContent.tsx +++ b/packages/grafana-ui/src/components/ConfirmModal/ConfirmContent.tsx @@ -7,6 +7,7 @@ import { GrafanaTheme2 } from '@grafana/data'; import { selectors } from '@grafana/e2e-selectors'; import { useStyles2 } from '../../themes'; +import { t } from '../../utils/i18n'; import { Button, ButtonVariant } from '../Button'; import { Field } from '../Forms/Field'; import { Input } from '../Input/Input'; @@ -90,7 +91,9 @@ export const ConfirmContent = ({ }; const { handleSubmit } = useForm(); - + const placeholder = t('grafana-ui.confirm-content.placeholder', 'Type "{{confirmPromptText}}" to confirm', { + confirmPromptText, + }); return (
@@ -100,7 +103,7 @@ export const ConfirmContent = ({
- +
diff --git a/packages/grafana-ui/src/components/DataLinks/DataLinkEditor.tsx b/packages/grafana-ui/src/components/DataLinks/DataLinkEditor.tsx index 8ff7535790c..159161af151 100644 --- a/packages/grafana-ui/src/components/DataLinks/DataLinkEditor.tsx +++ b/packages/grafana-ui/src/components/DataLinks/DataLinkEditor.tsx @@ -53,15 +53,19 @@ export const DataLinkEditor = memo( return (
- - + + - + - + diff --git a/packages/grafana-ui/src/components/DataSourceSettings/AlertingSettings.tsx b/packages/grafana-ui/src/components/DataSourceSettings/AlertingSettings.tsx index 328ebd7c7fd..7a36fe63e49 100644 --- a/packages/grafana-ui/src/components/DataSourceSettings/AlertingSettings.tsx +++ b/packages/grafana-ui/src/components/DataSourceSettings/AlertingSettings.tsx @@ -1,7 +1,7 @@ import { DataSourceJsonData, DataSourcePluginOptionsEditorProps } from '@grafana/data'; import { InlineSwitch } from '../../components/Switch/Switch'; -import { Trans } from '../../utils/i18n'; +import { t, Trans } from '../../utils/i18n'; import { InlineField } from '../Forms/InlineField'; export interface Props @@ -22,9 +22,12 @@ export function AlertingSettings({ options, onOptionsC
onChange({ ...dataSourceConfig, basicAuthUser: event.currentTarget.value })} /> diff --git a/packages/grafana-ui/src/components/DataSourceSettings/CustomHeadersSettings.tsx b/packages/grafana-ui/src/components/DataSourceSettings/CustomHeadersSettings.tsx index 953e14c88e7..c61cc97621a 100644 --- a/packages/grafana-ui/src/components/DataSourceSettings/CustomHeadersSettings.tsx +++ b/packages/grafana-ui/src/components/DataSourceSettings/CustomHeadersSettings.tsx @@ -5,7 +5,7 @@ import { PureComponent } from 'react'; import { DataSourceSettings } from '@grafana/data'; import { useStyles2 } from '../../themes'; -import { Trans } from '../../utils/i18n'; +import { t, Trans } from '../../utils/i18n'; import { Button } from '../Button'; import { FormField } from '../FormField/FormField'; import { Icon } from '../Icon/Icon'; @@ -59,8 +59,9 @@ const CustomHeaderRow = ({ header, onBlur, onChange, onRemove, onReset }: Custom return (
onReset(header.id)} onChange={(e) => onChange({ ...header, value: e.target.value })} onBlur={onBlur} />
- + event.stopPropagation()} onBlur={() => setFrom({ ...from, validation: isRangeValid(from.value) })} @@ -187,7 +191,11 @@ export function RelativeTimeRangePicker(props: RelativeTimeRangePickerProps) { value={from.value} /> - + event.stopPropagation()} onBlur={() => setTo({ ...to, validation: isRangeValid(to.value) })} @@ -195,7 +203,10 @@ export function RelativeTimeRangePicker(props: RelativeTimeRangePickerProps) { value={to.value} /> -
diff --git a/public/locales/en-US/grafana.json b/public/locales/en-US/grafana.json index a96d829d80d..366b60a9da0 100644 --- a/public/locales/en-US/grafana.json +++ b/public/locales/en-US/grafana.json @@ -1706,10 +1706,19 @@ "one-click-description": "Only one link {{ action }} can have one click enabled at a time" } }, + "alert": { + "close-button": "Close alert" + }, "auto-save-field": { "saved": "Saved!", "saving": "Saving <1>" }, + "card": { + "option": "option" + }, + "cascader": { + "clear-button": "Clear selection" + }, "color-picker-popover": { "palette-tab": "Colors", "spectrum-tab": "Custom" @@ -1717,8 +1726,15 @@ "confirm-button": { "cancel": "Cancel" }, + "confirm-content": { + "placeholder": "Type \"{{confirmPromptText}}\" to confirm" + }, "data-link-editor": { - "info": "With data links you can reference data variables like series name, labels and values. Type CMD+Space, CTRL+Space, or $ to open variable suggestions." + "info": "With data links you can reference data variables like series name, labels and values. Type CMD+Space, CTRL+Space, or $ to open variable suggestions.", + "new-tab-label": "Open in new tab", + "title-label": "Title", + "title-placeholder": "Show details", + "url-label": "URL" }, "data-link-editor-modal": { "cancel": "Cancel", @@ -1738,32 +1754,77 @@ "tooltip-remove": "Remove", "url-not-provided": "Data link url not provided" }, + "data-source-basic-auth-settings": { + "user-label": "User", + "user-placeholder": "user" + }, + "data-source-http-proxy-settings": { + "oauth-identity-label": "Forward OAuth Identity", + "oauth-identity-tooltip": "Forward the user's upstream OAuth identity to the data source (Their access token gets passed along).", + "skip-tls-verify-label": "Skip TLS Verify", + "ts-client-auth-label": "TLS Client Auth", + "with-ca-cert-label": "With CA Cert", + "with-ca-cert-tooltip": "Needed for verifying self-signed TLS Certs" + }, "data-source-http-settings": { "access-help": "Help <1>", "access-help-details": "Access mode controls how requests to the data source will be handled.<1> <1>Server should be the preferred way if nothing else is stated.", + "access-label": "Access", + "access-options-browser": "Browser", + "access-options-proxy": "Server (default)", "allowed-cookies": "Allowed cookies", + "allowed-cookies-tooltip": "Grafana proxy deletes forwarded cookies by default. Specify cookies by name that should be forwarded to the data source.", "auth": "Auth", + "azure-auth-label": "Azure Authentication", + "azure-auth-tooltip": "Use Azure authentication for Azure endpoint.", "basic-auth": "Basic Auth Details", + "basic-auth-label": "Basic auth", "browser-mode-description": "All requests will be made from the browser directly to the data source and may be subject to Cross-Origin Resource Sharing (CORS) requirements. The URL needs to be accessible from the browser if you select this access mode.", "browser-mode-title": "<0>Browser access mode:", + "default-url-access-select": "Access", "default-url-tooltip": "Specify a complete HTTP URL (for example http://your_server:8080)", "direct-url-tooltip": "Your access method is <1>Browser, this means the URL needs to be accessible from the browser.", "heading": "HTTP", "proxy-url-tooltip": "Your access method is <1>Server, this means the URL needs to be accessible from the grafana backend/server.", "server-mode-description": "All requests will be made from the browser to Grafana backend/server which in turn will forward the requests to the data source and by that circumvent possible Cross-Origin Resource Sharing (CORS) requirements. The URL needs to be accessible from the grafana backend/server if you select this access mode.", - "server-mode-title": "<0>Server access mode (Default):" + "server-mode-title": "<0>Server access mode (Default):", + "timeout-form-label": "Timeout", + "timeout-label": "Timeout in seconds", + "timeout-tooltip": "HTTP request timeout in seconds", + "url-label": "URL", + "with-credential-label": "With Credentials", + "with-credential-tooltip": "Whether credentials such as cookies or auth headers should be sent with cross-site requests." }, "data-source-settings": { "alerting-settings-heading": "Alerting", + "alerting-settings-label": "Manage alert rules in Alerting UI", + "alerting-settings-tooltip": "Manage alert rules for this data source. To manage other alerting resources, add an Alertmanager data source.", "cert-key-reset": "Reset", "custom-headers-add": "Add header", + "custom-headers-header": "Header", + "custom-headers-header-placeholder": "Header Value", + "custom-headers-header-remove": "Remove header", + "custom-headers-header-value": "Value", "custom-headers-title": "Custom HTTP Headers", "secure-socks-heading": "Secure Socks Proxy", - "tls-heading": "TLS/SSL Auth Details" + "secure-socks-label": "Enabled", + "secure-socks-tooltip": "Connect to this datasource via the secure socks proxy.", + "tls-certification-label": "CA Cert", + "tls-certification-placeholder": "Begins with {{certificateBeginsWith}}", + "tls-client-certification-label": "Client Cert", + "tls-client-key-label": "Client Key", + "tls-client-key-placeholder": "Begins with {{privateKeyBeginsWith}}", + "tls-heading": "TLS/SSL Auth Details", + "tls-server-name-label": "ServerName", + "tls-tooltip": "TLS/SSL Certs are encrypted and stored in the Grafana database." }, "date-time-picker": { "apply": "Apply", - "cancel": "Cancel" + "calendar-icon-label": "Time picker", + "cancel": "Cancel", + "next-label": "Next month", + "previous-label": "Previous month", + "select-placeholder": "Select date/time" }, "drawer": { "close": "Close" @@ -1787,6 +1848,10 @@ "modal": { "close-tooltip": "Close" }, + "named-colors-palette": { + "text-color-swatch": "Text color", + "transparent-swatch": "Transparent" + }, "secret-form-field": { "reset": "Reset" }, @@ -1800,6 +1865,9 @@ "no-options-label": "No options found", "placeholder": "Choose" }, + "series-color-picker-popover": { + "y-axis-usage": "Use right y-axis" + }, "spinner": { "aria-label": "Loading" }, @@ -1819,6 +1887,9 @@ "user-icon": { "active-text": "Active last 15m" }, + "value-pill": { + "remove-button": "Remove {{children}}" + }, "viz-legend": { "right-axis-indicator": "(right y-axis)" }, @@ -3721,10 +3792,13 @@ "example": "Example: to select a time range from 10 minutes ago to now", "example-details": "From: now-10m To: now", "example-title": "Example time ranges", + "from-label": "From", "from-to": "{{timeOptionFrom}} to {{timeOptionTo}}", "more-info": "For more information see <2>docs <1>.", "specify": "Specify time range <1>", - "supported-formats": "Supported formats: <1>now-[digit]s/m/h/d/w" + "submit-button-label": "TimePicker submit button", + "supported-formats": "Supported formats: <1>now-[digit]s/m/h/d/w", + "to-label": "To" }, "zone": { "select-aria-label": "Time zone picker", diff --git a/public/locales/pseudo-LOCALE/grafana.json b/public/locales/pseudo-LOCALE/grafana.json index 27833122c61..23e1bebb722 100644 --- a/public/locales/pseudo-LOCALE/grafana.json +++ b/public/locales/pseudo-LOCALE/grafana.json @@ -1706,10 +1706,19 @@ "one-click-description": "Øʼnľy őʼnę ľįʼnĸ {{ action }} čäʼn ĥävę őʼnę čľįčĸ ęʼnäþľęđ äŧ ä ŧįmę" } }, + "alert": { + "close-button": "Cľőşę äľęřŧ" + }, "auto-save-field": { "saved": "Ŝävęđ!", "saving": "Ŝävįʼnģ <1>" }, + "card": { + "option": "őpŧįőʼn" + }, + "cascader": { + "clear-button": "Cľęäř şęľęčŧįőʼn" + }, "color-picker-popover": { "palette-tab": "Cőľőřş", "spectrum-tab": "Cūşŧőm" @@ -1717,8 +1726,15 @@ "confirm-button": { "cancel": "Cäʼnčęľ" }, + "confirm-content": { + "placeholder": "Ŧypę \"{{confirmPromptText}}\" ŧő čőʼnƒįřm" + }, "data-link-editor": { - "info": "Ŵįŧĥ đäŧä ľįʼnĸş yőū čäʼn řęƒęřęʼnčę đäŧä väřįäþľęş ľįĸę şęřįęş ʼnämę, ľäþęľş äʼnđ väľūęş. Ŧypę CMĐ+Ŝpäčę, CŦŖĿ+Ŝpäčę, őř $ ŧő őpęʼn väřįäþľę şūģģęşŧįőʼnş." + "info": "Ŵįŧĥ đäŧä ľįʼnĸş yőū čäʼn řęƒęřęʼnčę đäŧä väřįäþľęş ľįĸę şęřįęş ʼnämę, ľäþęľş äʼnđ väľūęş. Ŧypę CMĐ+Ŝpäčę, CŦŖĿ+Ŝpäčę, őř $ ŧő őpęʼn väřįäþľę şūģģęşŧįőʼnş.", + "new-tab-label": "Øpęʼn įʼn ʼnęŵ ŧäþ", + "title-label": "Ŧįŧľę", + "title-placeholder": "Ŝĥőŵ đęŧäįľş", + "url-label": "ŮŖĿ" }, "data-link-editor-modal": { "cancel": "Cäʼnčęľ", @@ -1738,32 +1754,77 @@ "tooltip-remove": "Ŗęmővę", "url-not-provided": "Đäŧä ľįʼnĸ ūřľ ʼnőŧ přővįđęđ" }, + "data-source-basic-auth-settings": { + "user-label": "Ůşęř", + "user-placeholder": "ūşęř" + }, + "data-source-http-proxy-settings": { + "oauth-identity-label": "Főřŵäřđ ØÅūŧĥ Ĩđęʼnŧįŧy", + "oauth-identity-tooltip": "Főřŵäřđ ŧĥę ūşęř'ş ūpşŧřęäm ØÅūŧĥ įđęʼnŧįŧy ŧő ŧĥę đäŧä şőūřčę (Ŧĥęįř äččęşş ŧőĸęʼn ģęŧş päşşęđ äľőʼnģ).", + "skip-tls-verify-label": "Ŝĸįp ŦĿŜ Vęřįƒy", + "ts-client-auth-label": "ŦĿŜ Cľįęʼnŧ Åūŧĥ", + "with-ca-cert-label": "Ŵįŧĥ CÅ Cęřŧ", + "with-ca-cert-tooltip": "Ńęęđęđ ƒőř vęřįƒyįʼnģ şęľƒ-şįģʼnęđ ŦĿŜ Cęřŧş" + }, "data-source-http-settings": { "access-help": "Ħęľp <1>", "access-help-details": "Åččęşş mőđę čőʼnŧřőľş ĥőŵ řęqūęşŧş ŧő ŧĥę đäŧä şőūřčę ŵįľľ þę ĥäʼnđľęđ.<1> <1>Ŝęřvęř şĥőūľđ þę ŧĥę přęƒęřřęđ ŵäy įƒ ʼnőŧĥįʼnģ ęľşę įş şŧäŧęđ.", + "access-label": "Åččęşş", + "access-options-browser": "ßřőŵşęř", + "access-options-proxy": "Ŝęřvęř (đęƒäūľŧ)", "allowed-cookies": "Åľľőŵęđ čőőĸįęş", + "allowed-cookies-tooltip": "Ğřäƒäʼnä přőχy đęľęŧęş ƒőřŵäřđęđ čőőĸįęş þy đęƒäūľŧ. Ŝpęčįƒy čőőĸįęş þy ʼnämę ŧĥäŧ şĥőūľđ þę ƒőřŵäřđęđ ŧő ŧĥę đäŧä şőūřčę.", "auth": "Åūŧĥ", + "azure-auth-label": "Åžūřę Åūŧĥęʼnŧįčäŧįőʼn", + "azure-auth-tooltip": "Ůşę Åžūřę äūŧĥęʼnŧįčäŧįőʼn ƒőř Åžūřę ęʼnđpőįʼnŧ.", "basic-auth": "ßäşįč Åūŧĥ Đęŧäįľş", + "basic-auth-label": "ßäşįč äūŧĥ", "browser-mode-description": "Åľľ řęqūęşŧş ŵįľľ þę mäđę ƒřőm ŧĥę þřőŵşęř đįřęčŧľy ŧő ŧĥę đäŧä şőūřčę äʼnđ mäy þę şūþĵęčŧ ŧő Cřőşş-Øřįģįʼn Ŗęşőūřčę Ŝĥäřįʼnģ (CØŖŜ) řęqūįřęmęʼnŧş. Ŧĥę ŮŖĿ ʼnęęđş ŧő þę äččęşşįþľę ƒřőm ŧĥę þřőŵşęř įƒ yőū şęľęčŧ ŧĥįş äččęşş mőđę.", "browser-mode-title": "<0>ßřőŵşęř äččęşş mőđę:", + "default-url-access-select": "Åččęşş", "default-url-tooltip": "Ŝpęčįƒy ä čőmpľęŧę ĦŦŦP ŮŖĿ (ƒőř ęχämpľę ĥŧŧp://yőūř_şęřvęř:8080)", "direct-url-tooltip": "Ÿőūř äččęşş męŧĥőđ įş <1>ßřőŵşęř, ŧĥįş męäʼnş ŧĥę ŮŖĿ ʼnęęđş ŧő þę äččęşşįþľę ƒřőm ŧĥę þřőŵşęř.", "heading": "ĦŦŦP", "proxy-url-tooltip": "Ÿőūř äččęşş męŧĥőđ įş <1>Ŝęřvęř, ŧĥįş męäʼnş ŧĥę ŮŖĿ ʼnęęđş ŧő þę äččęşşįþľę ƒřőm ŧĥę ģřäƒäʼnä þäčĸęʼnđ/şęřvęř.", "server-mode-description": "Åľľ řęqūęşŧş ŵįľľ þę mäđę ƒřőm ŧĥę þřőŵşęř ŧő Ğřäƒäʼnä þäčĸęʼnđ/şęřvęř ŵĥįčĥ įʼn ŧūřʼn ŵįľľ ƒőřŵäřđ ŧĥę řęqūęşŧş ŧő ŧĥę đäŧä şőūřčę äʼnđ þy ŧĥäŧ čįřčūmvęʼnŧ pőşşįþľę Cřőşş-Øřįģįʼn Ŗęşőūřčę Ŝĥäřįʼnģ (CØŖŜ) řęqūįřęmęʼnŧş. Ŧĥę ŮŖĿ ʼnęęđş ŧő þę äččęşşįþľę ƒřőm ŧĥę ģřäƒäʼnä þäčĸęʼnđ/şęřvęř įƒ yőū şęľęčŧ ŧĥįş äččęşş mőđę.", - "server-mode-title": "<0>Ŝęřvęř äččęşş mőđę (Đęƒäūľŧ):" + "server-mode-title": "<0>Ŝęřvęř äččęşş mőđę (Đęƒäūľŧ):", + "timeout-form-label": "Ŧįmęőūŧ", + "timeout-label": "Ŧįmęőūŧ įʼn şęčőʼnđş", + "timeout-tooltip": "ĦŦŦP řęqūęşŧ ŧįmęőūŧ įʼn şęčőʼnđş", + "url-label": "ŮŖĿ", + "with-credential-label": "Ŵįŧĥ Cřęđęʼnŧįäľş", + "with-credential-tooltip": "Ŵĥęŧĥęř čřęđęʼnŧįäľş şūčĥ äş čőőĸįęş őř äūŧĥ ĥęäđęřş şĥőūľđ þę şęʼnŧ ŵįŧĥ čřőşş-şįŧę řęqūęşŧş." }, "data-source-settings": { "alerting-settings-heading": "Åľęřŧįʼnģ", + "alerting-settings-label": "Mäʼnäģę äľęřŧ řūľęş įʼn Åľęřŧįʼnģ ŮĨ", + "alerting-settings-tooltip": "Mäʼnäģę äľęřŧ řūľęş ƒőř ŧĥįş đäŧä şőūřčę. Ŧő mäʼnäģę őŧĥęř äľęřŧįʼnģ řęşőūřčęş, äđđ äʼn Åľęřŧmäʼnäģęř đäŧä şőūřčę.", "cert-key-reset": "Ŗęşęŧ", "custom-headers-add": "Åđđ ĥęäđęř", + "custom-headers-header": "Ħęäđęř", + "custom-headers-header-placeholder": "Ħęäđęř Väľūę", + "custom-headers-header-remove": "Ŗęmővę ĥęäđęř", + "custom-headers-header-value": "Väľūę", "custom-headers-title": "Cūşŧőm ĦŦŦP Ħęäđęřş", "secure-socks-heading": "Ŝęčūřę Ŝőčĸş Přőχy", - "tls-heading": "ŦĿŜ/ŜŜĿ Åūŧĥ Đęŧäįľş" + "secure-socks-label": "Ēʼnäþľęđ", + "secure-socks-tooltip": "Cőʼnʼnęčŧ ŧő ŧĥįş đäŧäşőūřčę vįä ŧĥę şęčūřę şőčĸş přőχy.", + "tls-certification-label": "CÅ Cęřŧ", + "tls-certification-placeholder": "ßęģįʼnş ŵįŧĥ {{certificateBeginsWith}}", + "tls-client-certification-label": "Cľįęʼnŧ Cęřŧ", + "tls-client-key-label": "Cľįęʼnŧ Ķęy", + "tls-client-key-placeholder": "ßęģįʼnş ŵįŧĥ {{privateKeyBeginsWith}}", + "tls-heading": "ŦĿŜ/ŜŜĿ Åūŧĥ Đęŧäįľş", + "tls-server-name-label": "ŜęřvęřŃämę", + "tls-tooltip": "ŦĿŜ/ŜŜĿ Cęřŧş äřę ęʼnčřypŧęđ äʼnđ şŧőřęđ įʼn ŧĥę Ğřäƒäʼnä đäŧäþäşę." }, "date-time-picker": { "apply": "Åppľy", - "cancel": "Cäʼnčęľ" + "calendar-icon-label": "Ŧįmę pįčĸęř", + "cancel": "Cäʼnčęľ", + "next-label": "Ńęχŧ mőʼnŧĥ", + "previous-label": "Přęvįőūş mőʼnŧĥ", + "select-placeholder": "Ŝęľęčŧ đäŧę/ŧįmę" }, "drawer": { "close": "Cľőşę" @@ -1787,6 +1848,10 @@ "modal": { "close-tooltip": "Cľőşę" }, + "named-colors-palette": { + "text-color-swatch": "Ŧęχŧ čőľőř", + "transparent-swatch": "Ŧřäʼnşpäřęʼnŧ" + }, "secret-form-field": { "reset": "Ŗęşęŧ" }, @@ -1800,6 +1865,9 @@ "no-options-label": "Ńő őpŧįőʼnş ƒőūʼnđ", "placeholder": "Cĥőőşę" }, + "series-color-picker-popover": { + "y-axis-usage": "Ůşę řįģĥŧ y-äχįş" + }, "spinner": { "aria-label": "Ŀőäđįʼnģ" }, @@ -1819,6 +1887,9 @@ "user-icon": { "active-text": "Åčŧįvę ľäşŧ 15m" }, + "value-pill": { + "remove-button": "Ŗęmővę {{children}}" + }, "viz-legend": { "right-axis-indicator": "(řįģĥŧ y-äχįş)" }, @@ -3721,10 +3792,13 @@ "example": "Ēχämpľę: ŧő şęľęčŧ ä ŧįmę řäʼnģę ƒřőm 10 mįʼnūŧęş äģő ŧő ʼnőŵ", "example-details": "Fřőm: ʼnőŵ-10m Ŧő: ʼnőŵ", "example-title": "Ēχämpľę ŧįmę řäʼnģęş", + "from-label": "Fřőm", "from-to": "{{timeOptionFrom}} ŧő {{timeOptionTo}}", "more-info": "Főř mőřę įʼnƒőřmäŧįőʼn şęę <2>đőčş <1>.", "specify": "Ŝpęčįƒy ŧįmę řäʼnģę <1>", - "supported-formats": "Ŝūppőřŧęđ ƒőřmäŧş: <1>ʼnőŵ-[đįģįŧ]ş/m/ĥ/đ/ŵ" + "submit-button-label": "ŦįmęPįčĸęř şūþmįŧ þūŧŧőʼn", + "supported-formats": "Ŝūppőřŧęđ ƒőřmäŧş: <1>ʼnőŵ-[đįģįŧ]ş/m/ĥ/đ/ŵ", + "to-label": "Ŧő" }, "zone": { "select-aria-label": "Ŧįmę žőʼnę pįčĸęř",