mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
[i18n] Fix broken i18n messages (#185011)
This commit is contained in:
parent
817842b73a
commit
ae1d883327
30 changed files with 142 additions and 169 deletions
|
@ -134,7 +134,7 @@ const AppLoadingPlaceholder: FC<{ showPlainSpinner: boolean }> = ({ showPlainSpi
|
|||
size={'xxl'}
|
||||
className="appContainer__loading"
|
||||
data-test-subj="appContainer-loadingSpinner"
|
||||
aria-label={i18n.translate('core.application.appContainer.loadingAriaLabel', {
|
||||
aria-label={i18n.translate('core.application.appContainer.plainSpinner.loadingAriaLabel', {
|
||||
defaultMessage: 'Loading application',
|
||||
})}
|
||||
/>
|
||||
|
|
|
@ -106,7 +106,7 @@ const STATUS_LEVEL_LEGACY_ATTRS = deepFreeze<Record<string, LegacyStateAttr>>({
|
|||
[ServiceStatusLevels.critical.toString()]: {
|
||||
id: 'red',
|
||||
state: 'red',
|
||||
title: i18n.translate('core.status.redTitle', {
|
||||
title: i18n.translate('core.status.critical.redTitle', {
|
||||
defaultMessage: 'Red',
|
||||
}),
|
||||
icon: 'danger',
|
||||
|
@ -116,7 +116,7 @@ const STATUS_LEVEL_LEGACY_ATTRS = deepFreeze<Record<string, LegacyStateAttr>>({
|
|||
[ServiceStatusLevels.unavailable.toString()]: {
|
||||
id: 'red',
|
||||
state: 'red',
|
||||
title: i18n.translate('core.status.redTitle', {
|
||||
title: i18n.translate('core.status.unavailable.redTitle', {
|
||||
defaultMessage: 'Red',
|
||||
}),
|
||||
icon: 'danger',
|
||||
|
@ -126,7 +126,7 @@ const STATUS_LEVEL_LEGACY_ATTRS = deepFreeze<Record<string, LegacyStateAttr>>({
|
|||
[ServiceStatusLevels.degraded.toString()]: {
|
||||
id: 'yellow',
|
||||
state: 'yellow',
|
||||
title: i18n.translate('core.status.yellowTitle', {
|
||||
title: i18n.translate('core.status.degraded.yellowTitle', {
|
||||
defaultMessage: 'Yellow',
|
||||
}),
|
||||
icon: 'warning',
|
||||
|
@ -136,7 +136,7 @@ const STATUS_LEVEL_LEGACY_ATTRS = deepFreeze<Record<string, LegacyStateAttr>>({
|
|||
[ServiceStatusLevels.available.toString()]: {
|
||||
id: 'green',
|
||||
state: 'green',
|
||||
title: i18n.translate('core.status.greenTitle', {
|
||||
title: i18n.translate('core.status.available.greenTitle', {
|
||||
defaultMessage: 'Green',
|
||||
}),
|
||||
icon: 'success',
|
||||
|
|
|
@ -75,7 +75,7 @@ export function AiAssistantSelectionPage() {
|
|||
<EuiCallOut
|
||||
iconType="warning"
|
||||
title={i18n.translate(
|
||||
'aiAssistantManagementSelection.aiAssistantSelectionPage.thisFeatureIsDisabledCallOutLabel',
|
||||
'aiAssistantManagementSelection.aiAssistantSelectionPage.observabilityAi.thisFeatureIsDisabledCallOutLabel',
|
||||
{
|
||||
defaultMessage:
|
||||
'This feature is disabled. It can be enabled from Spaces > Features.',
|
||||
|
@ -124,7 +124,7 @@ export function AiAssistantSelectionPage() {
|
|||
<EuiCallOut
|
||||
iconType="warning"
|
||||
title={i18n.translate(
|
||||
'aiAssistantManagementSelection.aiAssistantSelectionPage.thisFeatureIsDisabledCallOutLabel',
|
||||
'aiAssistantManagementSelection.aiAssistantSelectionPage.securityAi.thisFeatureIsDisabledCallOutLabel',
|
||||
{
|
||||
defaultMessage:
|
||||
'This feature is disabled. It can be enabled from Spaces > Features.',
|
||||
|
|
|
@ -289,7 +289,7 @@ function EditorUI({ initialTextValue, setEditorInstance }: EditorProps) {
|
|||
>
|
||||
<EuiFlexItem>
|
||||
<EuiToolTip
|
||||
content={i18n.translate('console.sendRequestButtonTooltip', {
|
||||
content={i18n.translate('console.sendRequestButtonTooltipContent', {
|
||||
defaultMessage: 'Click to send request',
|
||||
})}
|
||||
>
|
||||
|
@ -297,7 +297,7 @@ function EditorUI({ initialTextValue, setEditorInstance }: EditorProps) {
|
|||
color="primary"
|
||||
onClick={sendCurrentRequest}
|
||||
data-test-subj="sendRequestButton"
|
||||
aria-label={i18n.translate('console.sendRequestButtonTooltip', {
|
||||
aria-label={i18n.translate('console.sendRequestButtonTooltipAriaLabel', {
|
||||
defaultMessage: 'Click to send request',
|
||||
})}
|
||||
>
|
||||
|
|
|
@ -125,7 +125,7 @@ export const MonacoEditor = ({ initialTextValue }: EditorProps) => {
|
|||
>
|
||||
<EuiFlexItem>
|
||||
<EuiToolTip
|
||||
content={i18n.translate('console.sendRequestButtonTooltip', {
|
||||
content={i18n.translate('console.sendRequestButtonTooltipContent', {
|
||||
defaultMessage: 'Click to send request',
|
||||
})}
|
||||
>
|
||||
|
@ -133,7 +133,7 @@ export const MonacoEditor = ({ initialTextValue }: EditorProps) => {
|
|||
color="primary"
|
||||
onClick={sendRequestsCallback}
|
||||
data-test-subj="sendRequestButton"
|
||||
aria-label={i18n.translate('console.sendRequestButtonTooltip', {
|
||||
aria-label={i18n.translate('console.sendRequestButtonTooltipAriaLabel', {
|
||||
defaultMessage: 'Click to send request',
|
||||
})}
|
||||
>
|
||||
|
|
|
@ -6,197 +6,115 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import moment from 'moment';
|
||||
|
||||
import {
|
||||
dayLabel,
|
||||
hourLabel,
|
||||
yearLabel,
|
||||
minuteLabel,
|
||||
secondLabel,
|
||||
millisecondLabel,
|
||||
infinityLabel,
|
||||
monthLabel,
|
||||
} from './i18n_messages';
|
||||
|
||||
export const boundsDescendingRaw = [
|
||||
{
|
||||
bound: Infinity,
|
||||
interval: moment.duration(1, 'year'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.infinityLabel', {
|
||||
defaultMessage: 'More than a year',
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.yearLabel', {
|
||||
defaultMessage: 'a year',
|
||||
}),
|
||||
boundLabel: infinityLabel(),
|
||||
intervalLabel: yearLabel(),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(1, 'year'),
|
||||
interval: moment.duration(1, 'month'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.yearLabel', {
|
||||
defaultMessage: 'a year',
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.monthLabel', {
|
||||
defaultMessage: 'a month',
|
||||
}),
|
||||
boundLabel: yearLabel(),
|
||||
intervalLabel: monthLabel(),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(3, 'week'),
|
||||
interval: moment.duration(1, 'week'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.dayLabel', {
|
||||
defaultMessage: '{amount, plural, one {a day} other {# days}}',
|
||||
values: { amount: 21 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.dayLabel', {
|
||||
defaultMessage: '{amount, plural, one {a day} other {# days}}',
|
||||
values: { amount: 7 },
|
||||
}),
|
||||
boundLabel: dayLabel(21),
|
||||
intervalLabel: dayLabel(7),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(1, 'week'),
|
||||
interval: moment.duration(1, 'd'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.dayLabel', {
|
||||
defaultMessage: '{amount, plural, one {a day} other {# days}}',
|
||||
values: { amount: 7 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.dayLabel', {
|
||||
defaultMessage: '{amount, plural, one {a day} other {# days}}',
|
||||
values: { amount: 1 },
|
||||
}),
|
||||
boundLabel: dayLabel(7),
|
||||
intervalLabel: dayLabel(1),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(24, 'hour'),
|
||||
interval: moment.duration(12, 'hour'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.dayLabel', {
|
||||
defaultMessage: '{amount, plural, one {a day} other {# days}}',
|
||||
values: { amount: 1 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.hourLabel', {
|
||||
defaultMessage: '{amount, plural, one {an hour} other {# hours}}',
|
||||
values: { amount: 12 },
|
||||
}),
|
||||
boundLabel: dayLabel(1),
|
||||
intervalLabel: hourLabel(12),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(6, 'hour'),
|
||||
interval: moment.duration(3, 'hour'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.hourLabel', {
|
||||
defaultMessage: '{amount, plural, one {an hour} other {# hours}}',
|
||||
values: { amount: 6 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.hourLabel', {
|
||||
defaultMessage: '{amount, plural, one {an hour} other {# hours}}',
|
||||
values: { amount: 3 },
|
||||
}),
|
||||
boundLabel: hourLabel(6),
|
||||
intervalLabel: hourLabel(3),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(2, 'hour'),
|
||||
interval: moment.duration(1, 'hour'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.hourLabel', {
|
||||
defaultMessage: '{amount, plural, one {an hour} other {# hours}}',
|
||||
values: { amount: 2 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.hourLabel', {
|
||||
defaultMessage: '{amount, plural, one {an hour} other {# hours}}',
|
||||
values: { amount: 1 },
|
||||
}),
|
||||
boundLabel: hourLabel(2),
|
||||
intervalLabel: hourLabel(1),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(45, 'minute'),
|
||||
interval: moment.duration(30, 'minute'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.minuteLabel', {
|
||||
defaultMessage: '{amount, plural, one {a minute} other {# minutes}}',
|
||||
values: { amount: 45 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.minuteLabel', {
|
||||
defaultMessage: '{amount, plural, one {a minute} other {# minutes}}',
|
||||
values: { amount: 30 },
|
||||
}),
|
||||
boundLabel: minuteLabel(45),
|
||||
intervalLabel: minuteLabel(30),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(20, 'minute'),
|
||||
interval: moment.duration(10, 'minute'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.minuteLabel', {
|
||||
defaultMessage: '{amount, plural, one {a minute} other {# minutes}}',
|
||||
values: { amount: 20 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.minuteLabel', {
|
||||
defaultMessage: '{amount, plural, one {a minute} other {# minutes}}',
|
||||
values: { amount: 10 },
|
||||
}),
|
||||
boundLabel: minuteLabel(20),
|
||||
intervalLabel: minuteLabel(10),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(9, 'minute'),
|
||||
interval: moment.duration(5, 'minute'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.minuteLabel', {
|
||||
defaultMessage: '{amount, plural, one {a minute} other {# minutes}}',
|
||||
values: { amount: 9 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.minuteLabel', {
|
||||
defaultMessage: '{amount, plural, one {a minute} other {# minutes}}',
|
||||
values: { amount: 5 },
|
||||
}),
|
||||
boundLabel: minuteLabel(9),
|
||||
intervalLabel: minuteLabel(5),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(3, 'minute'),
|
||||
interval: moment.duration(1, 'minute'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.minuteLabel', {
|
||||
defaultMessage: '{amount, plural, one {a minute} other {# minutes}}',
|
||||
values: { amount: 3 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.minuteLabel', {
|
||||
defaultMessage: '{amount, plural, one {a minute} other {# minutes}}',
|
||||
values: { amount: 1 },
|
||||
}),
|
||||
boundLabel: minuteLabel(3),
|
||||
intervalLabel: minuteLabel(1),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(45, 'second'),
|
||||
interval: moment.duration(30, 'second'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.secondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a second} other {# seconds}}',
|
||||
values: { amount: 45 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.secondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a second} other {# seconds}}',
|
||||
values: { amount: 30 },
|
||||
}),
|
||||
boundLabel: secondLabel(45),
|
||||
intervalLabel: secondLabel(30),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(15, 'second'),
|
||||
interval: moment.duration(10, 'second'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.secondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a second} other {# seconds}}',
|
||||
values: { amount: 15 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.secondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a second} other {# seconds}}',
|
||||
values: { amount: 10 },
|
||||
}),
|
||||
boundLabel: secondLabel(15),
|
||||
intervalLabel: secondLabel(10),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(7.5, 'second'),
|
||||
interval: moment.duration(5, 'second'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.secondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a second} other {# seconds}}',
|
||||
values: { amount: 7.5 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.secondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a second} other {# seconds}}',
|
||||
values: { amount: 5 },
|
||||
}),
|
||||
boundLabel: secondLabel(7.5),
|
||||
intervalLabel: secondLabel(5),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(5, 'second'),
|
||||
interval: moment.duration(1, 'second'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.secondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a second} other {# seconds}}',
|
||||
values: { amount: 5 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.secondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a second} other {# seconds}}',
|
||||
values: { amount: 1 },
|
||||
}),
|
||||
boundLabel: secondLabel(5),
|
||||
intervalLabel: secondLabel(1),
|
||||
},
|
||||
{
|
||||
bound: moment.duration(500, 'ms'),
|
||||
interval: moment.duration(100, 'ms'),
|
||||
boundLabel: i18n.translate('data.search.timeBuckets.millisecondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a millisecond} other {# milliseconds}}',
|
||||
values: { amount: 500 },
|
||||
}),
|
||||
intervalLabel: i18n.translate('data.search.timeBuckets.millisecondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a millisecond} other {# milliseconds}}',
|
||||
values: { amount: 100 },
|
||||
}),
|
||||
boundLabel: millisecondLabel(500),
|
||||
intervalLabel: millisecondLabel(100),
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
export const dayLabel = (amount: number) =>
|
||||
i18n.translate('data.search.timeBuckets.dayLabel', {
|
||||
defaultMessage: '{amount, plural, one {a day} other {# days}}',
|
||||
values: { amount },
|
||||
});
|
||||
|
||||
export const hourLabel = (amount: number) =>
|
||||
i18n.translate('data.search.timeBuckets.hourLabel', {
|
||||
defaultMessage: '{amount, plural, one {an hour} other {# hours}}',
|
||||
values: { amount },
|
||||
});
|
||||
|
||||
export const yearLabel = () =>
|
||||
i18n.translate('data.search.timeBuckets.yearLabel', {
|
||||
defaultMessage: 'a year',
|
||||
});
|
||||
|
||||
export const minuteLabel = (amount: number) =>
|
||||
i18n.translate('data.search.timeBuckets.minuteLabel', {
|
||||
defaultMessage: '{amount, plural, one {a minute} other {# minutes}}',
|
||||
values: { amount },
|
||||
});
|
||||
|
||||
export const secondLabel = (amount: number) =>
|
||||
i18n.translate('data.search.timeBuckets.secondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a second} other {# seconds}}',
|
||||
values: { amount },
|
||||
});
|
||||
|
||||
export const millisecondLabel = (amount: number) =>
|
||||
i18n.translate('data.search.timeBuckets.millisecondLabel', {
|
||||
defaultMessage: '{amount, plural, one {a millisecond} other {# milliseconds}}',
|
||||
values: { amount },
|
||||
});
|
||||
|
||||
export const infinityLabel = () =>
|
||||
i18n.translate('data.search.timeBuckets.infinityLabel', {
|
||||
defaultMessage: 'More than a year',
|
||||
});
|
||||
|
||||
export const monthLabel = () =>
|
||||
i18n.translate('data.search.timeBuckets.monthLabel', {
|
||||
defaultMessage: 'a month',
|
||||
});
|
|
@ -96,7 +96,7 @@ export class TableSelector extends Component<TableSelectorProps, TableSelectorSt
|
|||
data-test-subj="inspectorTableChooser"
|
||||
>
|
||||
<FormattedMessage
|
||||
id="data.inspector.table.tableLabel"
|
||||
id="data.inspector.table.inspectorTableChooserButton"
|
||||
defaultMessage="Table {index}"
|
||||
values={{ index: currentIndex + 1 }}
|
||||
/>
|
||||
|
|
|
@ -204,7 +204,7 @@ export function getUiSettings(
|
|||
<li><strong>{sessionId}:</strong> restricts operations to execute all search requests on the same shards.
|
||||
This has the benefit of reusing shard caches across requests.</li>
|
||||
<li><strong>{custom}:</strong> allows you to define a your own preference.
|
||||
Use <strong>\''courier:customRequestPreference\''</strong> to customize your preference value.</li>
|
||||
Use <strong>courier:customRequestPreference</strong> to customize your preference value.</li>
|
||||
<li><strong>{none}:</strong> means do not set a preference.
|
||||
This might provide better performance because requests can be spread across all shard copies.
|
||||
However, results might be inconsistent because different shards might be in different refresh states.</li>
|
||||
|
|
|
@ -39,6 +39,12 @@ import { DuplicateDataViewError, DataViewInsufficientAccessError } from '../erro
|
|||
|
||||
const MAX_ATTEMPTS_TO_RESOLVE_CONFLICTS = 3;
|
||||
|
||||
const createFetchFieldErrorTitle = ({ id, title }: { id?: string; title?: string }) =>
|
||||
i18n.translate('dataViews.fetchFieldErrorTitle', {
|
||||
defaultMessage: 'Error fetching fields for data view {title} (ID: {id})',
|
||||
values: { id, title },
|
||||
});
|
||||
|
||||
/*
|
||||
* Attributes of the data view saved object
|
||||
* @public
|
||||
|
@ -661,9 +667,9 @@ export class DataViewsService {
|
|||
this.onError(
|
||||
err,
|
||||
{
|
||||
title: i18n.translate('dataViews.fetchFieldErrorTitle', {
|
||||
defaultMessage: 'Error fetching fields for data view {title} (ID: {id})',
|
||||
values: { id: dataView.id, title: dataView.getIndexPattern() },
|
||||
title: createFetchFieldErrorTitle({
|
||||
id: dataView.id,
|
||||
title: dataView.getIndexPattern(),
|
||||
}),
|
||||
},
|
||||
dataView.getIndexPattern()
|
||||
|
@ -722,10 +728,7 @@ export class DataViewsService {
|
|||
this.onError(
|
||||
err,
|
||||
{
|
||||
title: i18n.translate('dataViews.fetchFieldErrorTitle', {
|
||||
defaultMessage: 'Error fetching fields for data view {title} (ID: {id})',
|
||||
values: { id, title },
|
||||
}),
|
||||
title: createFetchFieldErrorTitle({ id, title }),
|
||||
},
|
||||
title
|
||||
);
|
||||
|
@ -884,10 +887,7 @@ export class DataViewsService {
|
|||
this.onError(
|
||||
err,
|
||||
{
|
||||
title: i18n.translate('dataViews.fetchFieldErrorTitle', {
|
||||
defaultMessage: 'Error fetching fields for data view {title} (ID: {id})',
|
||||
values: { id: savedObject.id, title: spec.title },
|
||||
}),
|
||||
title: createFetchFieldErrorTitle({ id: savedObject.id, title: spec.title }),
|
||||
},
|
||||
spec.title || ''
|
||||
);
|
||||
|
|
|
@ -66,6 +66,7 @@ export const createScriptedFieldsDeprecationsConfig: (
|
|||
allTitles: indexPatternTitles.join('; '),
|
||||
numberOfIndexPatternsWithScriptedFields: indexPatternsWithScriptedFields.length,
|
||||
},
|
||||
ignoreTag: true,
|
||||
}),
|
||||
],
|
||||
},
|
||||
|
|
|
@ -71,7 +71,7 @@ export const createHeartbeatInstructions = (context: TutorialContext) => {
|
|||
'sudo rpm -vi heartbeat-{config.kibana.version}-x86_64.rpm',
|
||||
],
|
||||
textPost: i18n.translate(
|
||||
'home.tutorials.common.heartbeatInstructions.install.debTextPost',
|
||||
'home.tutorials.common.heartbeatInstructions.install.rpmTextPost',
|
||||
{
|
||||
defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).',
|
||||
values: { link: 'https://www.elastic.co/downloads/beats/heartbeat' },
|
||||
|
|
|
@ -82,7 +82,7 @@ export const createMetricbeatInstructions = memoize(
|
|||
'sudo rpm -vi metricbeat-{config.kibana.version}-x86_64.rpm',
|
||||
],
|
||||
textPost: i18n.translate(
|
||||
'home.tutorials.common.metricbeatInstructions.install.debTextPost',
|
||||
'home.tutorials.common.metricbeatInstructions.install.rpmTextPost',
|
||||
{
|
||||
defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({link}).',
|
||||
values: { link: 'https://www.elastic.co/downloads/beats/metricbeat' },
|
||||
|
|
|
@ -26,7 +26,7 @@ const strings = {
|
|||
getShareableZipErrorTitle: (workpadName: string) =>
|
||||
i18n.translate('xpack.canvas.workpadHeaderShareMenu.shareWebsiteErrorTitle', {
|
||||
defaultMessage:
|
||||
"Failed to create {ZIP} file for '{workpadName}'. The workpad may be too large. You'll need to download the files separately.",
|
||||
"Failed to create {ZIP} file for ''{workpadName}''. The workpad may be too large. You'll need to download the files separately.",
|
||||
values: {
|
||||
ZIP,
|
||||
workpadName,
|
||||
|
|
|
@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n';
|
|||
export const txtDestinationDashboardNotFound = (dashboardId?: string) =>
|
||||
i18n.translate('xpack.dashboard.drilldown.errorDestinationDashboardIsMissing', {
|
||||
defaultMessage:
|
||||
"Destination dashboard ('{dashboardId}') no longer exists. Choose another dashboard.",
|
||||
"Destination dashboard (''{dashboardId}'') no longer exists. Choose another dashboard.",
|
||||
values: {
|
||||
dashboardId,
|
||||
},
|
||||
|
|
|
@ -43,6 +43,7 @@ export const ColumnHeaders: React.FC = () => {
|
|||
{
|
||||
defaultMessage:
|
||||
'A snippet is an escaped representaiton of a field value. Query matches are encapsulated in <em> tags for highlighting. Fallback will look for a snippet match, but fallback to an escaped raw value if none is found. Range is between 20-1000. Defaults to 100.',
|
||||
ignoreTag: true,
|
||||
}
|
||||
)}
|
||||
/>
|
||||
|
|
|
@ -378,7 +378,7 @@ export function useOnSubmit({
|
|||
|
||||
notifications.toasts.addSuccess({
|
||||
title: i18n.translate('xpack.fleet.createPackagePolicy.addedNotificationTitle', {
|
||||
defaultMessage: `'{packagePolicyName}' integration added.`,
|
||||
defaultMessage: `''{packagePolicyName}'' integration added.`,
|
||||
values: {
|
||||
packagePolicyName: packagePolicy.name,
|
||||
},
|
||||
|
|
|
@ -402,6 +402,7 @@ export const AdvancedStepForm: FC<CreateAnalyticsStepProps> = ({
|
|||
{
|
||||
defaultMessage:
|
||||
'Define the name of the prediction field in the results. The default is <dependent_variable>_prediction.',
|
||||
ignoreTag: true,
|
||||
}
|
||||
)}
|
||||
>
|
||||
|
|
|
@ -269,6 +269,7 @@ export const MetricExpression = ({
|
|||
helpText={i18n.translate('xpack.infra.waffle.alerting.customMetrics.helpText', {
|
||||
defaultMessage:
|
||||
'Choose a name to help identify your custom metric. Defaults to "<function> of <field name>".',
|
||||
ignoreTag: true,
|
||||
})}
|
||||
>
|
||||
<EuiFieldText
|
||||
|
|
|
@ -68,7 +68,7 @@ export const IndexSetupDatasetFilter: React.FC<{
|
|||
>
|
||||
<FormattedMessage
|
||||
id="xpack.infra.analysisSetup.indexDatasetFilterIncludeAllButtonLabel"
|
||||
defaultMessage="{includeType, select, includeAll {All datasets} includeSome {{includedDatasetCount, plural, one {# dataset} other {# datasets}}}}"
|
||||
defaultMessage="{includeType, select, includeAll {All datasets} other {{includedDatasetCount, plural, one {# dataset} other {# datasets}}}}"
|
||||
values={{
|
||||
includeType: datasetFilter.type,
|
||||
includedDatasetCount:
|
||||
|
|
|
@ -230,7 +230,7 @@ const AnomalyMessage = ({ anomaly }: { anomaly: TableItem }) => {
|
|||
'xpack.infra.logs.analysis.anomaliesTableMoreThanExpectedAnomalyMessage',
|
||||
{
|
||||
defaultMessage:
|
||||
'more log messages in this {type, select, logRate {dataset} logCategory {category}} than expected',
|
||||
'more log messages in this {type, select, logRate {dataset} logCategory {category} other{#}} than expected',
|
||||
values: { type },
|
||||
}
|
||||
);
|
||||
|
@ -239,7 +239,7 @@ const AnomalyMessage = ({ anomaly }: { anomaly: TableItem }) => {
|
|||
'xpack.infra.logs.analysis.anomaliesTableFewerThanExpectedAnomalyMessage',
|
||||
{
|
||||
defaultMessage:
|
||||
'fewer log messages in this {type, select, logRate {dataset} logCategory {category}} than expected',
|
||||
'fewer log messages in this {type, select, logRate {dataset} logCategory {category} other{#}} than expected',
|
||||
values: { type },
|
||||
}
|
||||
);
|
||||
|
|
|
@ -50,6 +50,7 @@ export function SettingsTab() {
|
|||
{
|
||||
defaultMessage:
|
||||
'Toggle the AI Assistant button and Contextual Insights on or off in Observability apps by checking or unchecking the AI Assistant feature in Spaces > <your space> > Features.',
|
||||
ignoreTag: true,
|
||||
}
|
||||
)}
|
||||
</p>
|
||||
|
|
|
@ -122,6 +122,7 @@ export const securityConfigDeprecationProvider: ConfigDeprecationProvider = ({
|
|||
title: i18n.translate('xpack.security.deprecations.maxRedirectURLSizeTitle', {
|
||||
defaultMessage:
|
||||
'"xpack.security.authc.providers.saml.<provider-name>.maxRedirectURLSize" has no effect',
|
||||
ignoreTag: true,
|
||||
}),
|
||||
message: i18n.translate('xpack.security.deprecations.maxRedirectURLSizeMessage', {
|
||||
defaultMessage: 'This setting is no longer used.',
|
||||
|
@ -133,6 +134,7 @@ export const securityConfigDeprecationProvider: ConfigDeprecationProvider = ({
|
|||
i18n.translate('xpack.security.deprecations.maxRedirectURLSize.manualSteps1', {
|
||||
defaultMessage:
|
||||
'Remove "xpack.security.authc.providers.saml.<provider-name>.maxRedirectURLSize" from kibana.yml.',
|
||||
ignoreTag: true,
|
||||
}),
|
||||
],
|
||||
},
|
||||
|
|
|
@ -18,5 +18,5 @@ export const CHECKBOX_FOR_ROW = ({
|
|||
i18n.translate('xpack.securitySolution.controlColumns.checkboxForRowAriaLabel', {
|
||||
values: { ariaRowindex, checked, columnValues },
|
||||
defaultMessage:
|
||||
'{checked, select, false {unchecked} true {checked}} checkbox for the alert or event in row {ariaRowindex}, with columns {columnValues}',
|
||||
'{checked, select, true {checked} other {unchecked}} checkbox for the alert or event in row {ariaRowindex}, with columns {columnValues}',
|
||||
});
|
||||
|
|
|
@ -223,7 +223,6 @@ export const ThresholdVisualization: React.FunctionComponent<Props> = ({
|
|||
<FormattedMessage
|
||||
id="xpack.stackAlerts.threshold.ui.visualization.errorLoadingAlertVisualizationTitle"
|
||||
defaultMessage="Cannot load alert visualization"
|
||||
values={{}}
|
||||
/>
|
||||
}
|
||||
color="danger"
|
||||
|
|
|
@ -324,7 +324,6 @@
|
|||
"console.requestOptions.openDocumentationButtonLabel": "Ouvrir la documentation",
|
||||
"console.requestOptionsButtonAriaLabel": "Options de requête",
|
||||
"console.requestTimeElapasedBadgeTooltipContent": "Temps écoulé",
|
||||
"console.sendRequestButtonTooltip": "Cliquer pour envoyer la requête",
|
||||
"console.settingsPage.accessibilityOverlayLabel": "Superposition d’accessibilité",
|
||||
"console.settingsPage.autocompleteLabel": "Saisie semi-automatique",
|
||||
"console.settingsPage.cancelButtonLabel": "Annuler",
|
||||
|
@ -44139,7 +44138,6 @@
|
|||
"advancedSettings.advancedSettingsLabel": "Paramètres avancés",
|
||||
"advancedSettings.featureCatalogueTitle": "Personnalisez votre expérience Kibana : modifiez le format de date, activez le mode sombre, et bien plus encore.",
|
||||
"aiAssistantManagementSelection.aiAssistantSelectionPage.observabilityLabel": "Assistant d'IA Elastic pour Observability",
|
||||
"aiAssistantManagementSelection.aiAssistantSelectionPage.thisFeatureIsDisabledCallOutLabel": "Cette fonctionnalité est désactivée. Elle peut être activée dans Espaces > Fonctionnalités.",
|
||||
"aiAssistantManagementSelection.aiAssistantSettingsPage.descriptionTextLabel": "L'Assistant d'IA utilise l'IA générative pour aider votre équipe en expliquant les erreurs, en suggérant une résolution et en vous aidant à demander, analyser et visualiser vos données.",
|
||||
"aiAssistantManagementSelection.aiAssistantSettingsPage.h2.aIAssistantLabel": "Assistant d'intelligence artificielle",
|
||||
"aiAssistantManagementSelection.aiAssistantSettingsPage.obsAssistant.documentationLinkLabel": "Documentation",
|
||||
|
@ -44857,4 +44855,4 @@
|
|||
"xpack.serverlessObservability.nav.projectSettings": "Paramètres de projet",
|
||||
"xpack.serverlessObservability.nav.synthetics": "Synthetics"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -324,7 +324,6 @@
|
|||
"console.requestOptions.openDocumentationButtonLabel": "ドキュメントを開く",
|
||||
"console.requestOptionsButtonAriaLabel": "リクエストオプション",
|
||||
"console.requestTimeElapasedBadgeTooltipContent": "経過時間",
|
||||
"console.sendRequestButtonTooltip": "クリックしてリクエストを送信",
|
||||
"console.settingsPage.accessibilityOverlayLabel": "アクセシビリティオーバーレイ",
|
||||
"console.settingsPage.autocompleteLabel": "自動入力",
|
||||
"console.settingsPage.cancelButtonLabel": "キャンセル",
|
||||
|
@ -44111,7 +44110,6 @@
|
|||
"advancedSettings.advancedSettingsLabel": "高度な設定",
|
||||
"advancedSettings.featureCatalogueTitle": "日付形式の変更、ダークモードの有効化など、Kibanaエクスペリエンスをカスタマイズします。",
|
||||
"aiAssistantManagementSelection.aiAssistantSelectionPage.observabilityLabel": "Elastic AI Assistant for Observability",
|
||||
"aiAssistantManagementSelection.aiAssistantSelectionPage.thisFeatureIsDisabledCallOutLabel": "この機能は無効です。[スペース]>[機能]から有効化できます。",
|
||||
"aiAssistantManagementSelection.aiAssistantSettingsPage.descriptionTextLabel": "AI Assistantは、生成AIを使用して、エラーを説明したり、改善策を提案したり、データのリクエスト、分析、可視化を支援したりすることで、チームを支援します。",
|
||||
"aiAssistantManagementSelection.aiAssistantSettingsPage.h2.aIAssistantLabel": "AI Assistant",
|
||||
"aiAssistantManagementSelection.aiAssistantSettingsPage.obsAssistant.documentationLinkLabel": "ドキュメント",
|
||||
|
@ -44829,4 +44827,4 @@
|
|||
"xpack.serverlessObservability.nav.projectSettings": "プロジェクト設定",
|
||||
"xpack.serverlessObservability.nav.synthetics": "Synthetics"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -324,7 +324,6 @@
|
|||
"console.requestOptions.openDocumentationButtonLabel": "打开文档",
|
||||
"console.requestOptionsButtonAriaLabel": "请求选项",
|
||||
"console.requestTimeElapasedBadgeTooltipContent": "已用时间",
|
||||
"console.sendRequestButtonTooltip": "单击以发送请求",
|
||||
"console.settingsPage.accessibilityOverlayLabel": "辅助功能覆盖",
|
||||
"console.settingsPage.autocompleteLabel": "自动完成",
|
||||
"console.settingsPage.cancelButtonLabel": "取消",
|
||||
|
@ -44159,7 +44158,6 @@
|
|||
"advancedSettings.advancedSettingsLabel": "高级设置",
|
||||
"advancedSettings.featureCatalogueTitle": "定制您的 Kibana 体验 — 更改日期格式、打开深色模式,等等。",
|
||||
"aiAssistantManagementSelection.aiAssistantSelectionPage.observabilityLabel": "适用于 Observability 的 Elastic AI 助手",
|
||||
"aiAssistantManagementSelection.aiAssistantSelectionPage.thisFeatureIsDisabledCallOutLabel": "此功能处于禁用状态。可以从“工作区 > 功能”中启用该功能。",
|
||||
"aiAssistantManagementSelection.aiAssistantSettingsPage.descriptionTextLabel": "通过解释错误,建议补救措施并帮助您请求、分析和可视化数据,AI 助手使用生成式 AI 来为您的团队提供帮助。",
|
||||
"aiAssistantManagementSelection.aiAssistantSettingsPage.h2.aIAssistantLabel": "AI 助手",
|
||||
"aiAssistantManagementSelection.aiAssistantSettingsPage.obsAssistant.documentationLinkLabel": "文档",
|
||||
|
@ -44877,4 +44875,4 @@
|
|||
"xpack.serverlessObservability.nav.projectSettings": "项目设置",
|
||||
"xpack.serverlessObservability.nav.synthetics": "Synthetics"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -187,7 +187,6 @@ const SuccessfulExecution = () => (
|
|||
'xpack.triggersActionsUI.sections.testConnectorForm.executionSuccessfulTitle',
|
||||
{
|
||||
defaultMessage: 'Test was successful',
|
||||
values: {},
|
||||
}
|
||||
)}
|
||||
color="success"
|
||||
|
|
|
@ -42,6 +42,7 @@ export function getShardCapacityDeprecationInfo({
|
|||
{
|
||||
defaultMessage:
|
||||
'The number of nodes that are running low on disk and it is likely that they will run out of space. Their disk usage has tripped the <<cluster-routing-watermark-high, high watermark threshold>>.',
|
||||
ignoreTag: true,
|
||||
}
|
||||
)
|
||||
);
|
||||
|
@ -54,6 +55,7 @@ export function getShardCapacityDeprecationInfo({
|
|||
{
|
||||
defaultMessage:
|
||||
'The number of nodes that have run out of disk. Their disk usage has tripped the <<cluster-routing-flood-stage, flood stagewatermark threshold>>.',
|
||||
ignoreTag: true,
|
||||
}
|
||||
)
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue