Localize strings in Rollup and ILM apps. (#29034)

* Add ILM to i18nrc.json. Fix validation errors.
* Localize CCR and Rollups checkLicense errors.
* Fix bug in Remote Clusters checkLicense error.
* Use rollupJobs namespace in checkLicense.
This commit is contained in:
CJ Cenizal 2019-01-23 16:36:48 -08:00 committed by GitHub
parent 10e52a0eae
commit bfa417c7d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 135 additions and 72 deletions

View file

@ -24,6 +24,7 @@
"xpack.graph": "x-pack/plugins/graph",
"xpack.grokDebugger": "x-pack/plugins/grokdebugger",
"xpack.idxMgmt": "x-pack/plugins/index_management",
"xpack.indexLifecycleMgmt": "x-pack/plugins/index_lifecycle_management",
"xpack.infra": "x-pack/plugins/infra",
"xpack.licenseMgmt": "x-pack/plugins/license_management",
"xpack.ml": "x-pack/plugins/ml",

View file

@ -4,6 +4,8 @@
* you may not use this file except in compliance with the Elastic License.
*/
import { i18n } from '@kbn/i18n';
export function checkLicense(xpackLicenseInfo) {
const pluginName = 'Cross Cluster Replication';
@ -14,7 +16,13 @@ export function checkLicense(xpackLicenseInfo) {
isAvailable: false,
showLinks: true,
enableLinks: false,
message: `You cannot use ${pluginName} because license information is not available at this time.`,
message: i18n.translate(
'xpack.crossClusterReplication.checkLicense.errorUnavailableMessage',
{
defaultMessage: 'You cannot use {pluginName} because license information is not available at this time.',
values: { pluginName },
},
),
};
}
@ -29,7 +37,13 @@ export function checkLicense(xpackLicenseInfo) {
return {
isAvailable: false,
showLinks: false,
message: `Your ${licenseType} license does not support ${pluginName}. Please upgrade your license.`,
message: i18n.translate(
'xpack.crossClusterReplication.checkLicense.errorUnsupportedMessage',
{
defaultMessage: 'Your {licenseType} license does not support {pluginName}. Please upgrade your license.',
values: { licenseType, pluginName },
},
),
};
}
@ -39,7 +53,13 @@ export function checkLicense(xpackLicenseInfo) {
isAvailable: false,
showLinks: true,
enableLinks: false,
message: `You cannot use ${pluginName} because your ${licenseType} license has expired.`,
message: i18n.translate(
'xpack.crossClusterReplication.checkLicense.errorExpiredMessage',
{
defaultMessage: 'You cannot use {pluginName} because your {licenseType} license has expired',
values: { licenseType, pluginName },
},
),
};
}

View file

@ -248,7 +248,7 @@ exports[`ilm summary extension should return extension when index has lifecycle
>
<FormattedMessage
defaultMessage="Index lifecycle management"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.summaryTitle"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.summaryTitle"
values={Object {}}
>
Index lifecycle management
@ -269,7 +269,7 @@ exports[`ilm summary extension should return extension when index has lifecycle
title={
<FormattedMessage
defaultMessage="Index lifecycle error"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.summaryErrorMessage"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.summaryErrorMessage"
values={Object {}}
/>
}
@ -317,7 +317,7 @@ exports[`ilm summary extension should return extension when index has lifecycle
>
<FormattedMessage
defaultMessage="Index lifecycle error"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.summaryErrorMessage"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.summaryErrorMessage"
values={Object {}}
>
Index lifecycle error
@ -521,7 +521,7 @@ exports[`ilm summary extension should return extension when index has lifecycle
>
<FormattedMessage
defaultMessage="Show phase definition"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.showPhaseDefinitionButton"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.showPhaseDefinitionButton"
values={Object {}}
/>
</EuiLink>
@ -559,7 +559,7 @@ exports[`ilm summary extension should return extension when index has lifecycle
>
<FormattedMessage
defaultMessage="Show phase definition"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.showPhaseDefinitionButton"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.showPhaseDefinitionButton"
values={Object {}}
>
Show phase definition
@ -720,7 +720,7 @@ exports[`ilm summary extension should return extension when index has lifecycle
>
<FormattedMessage
defaultMessage="Index lifecycle management"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.summaryTitle"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.summaryTitle"
values={Object {}}
>
Index lifecycle management

View file

@ -211,7 +211,7 @@ export class AddLifecyclePolicyConfirmModal extends Component {
const title = (
<FormattedMessage
id="xpack.indexLifecycleMgmt.indexManagementTable.addLifecyclePolicyConfirmModal.modalTitle"
defaultMessage={`Add lifecycle policy to "{indexName}"`}
defaultMessage="Add lifecycle policy to &quot;{indexName}&quot;"
values={{
indexName,
}}
@ -224,11 +224,11 @@ export class AddLifecyclePolicyConfirmModal extends Component {
onClose={closeModal}
>
<EuiModalHeader>
<EuiModalHeaderTitle >
<EuiModalHeaderTitle>
{title}
</EuiModalHeaderTitle >
</EuiModalHeaderTitle>
</EuiModalHeader>
<EuiModalBody>
<EuiCallOut
style={{ maxWidth: 400 }}

View file

@ -25,19 +25,19 @@ import { FormattedMessage } from '@kbn/i18n/react';
import { getPolicyPath } from '../../services/navigation';
const getHeaders = () => {
return {
policy: i18n.translate('xpack.idxMgmt.indexLifecycleMgmtSummary.headers.lifecyclePolicyHeader', {
policy: i18n.translate('xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.headers.lifecyclePolicyHeader', {
defaultMessage: 'Lifecycle policy',
}),
phase: i18n.translate('xpack.idxMgmt.indexLifecycleMgmtSummary.headers.currentPhaseHeader', {
phase: i18n.translate('xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.headers.currentPhaseHeader', {
defaultMessage: 'Current phase',
}),
action: i18n.translate('xpack.idxMgmt.indexLifecycleMgmtSummary.headers.currentActionHeader', {
action: i18n.translate('xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.headers.currentActionHeader', {
defaultMessage: 'Current action',
}),
action_time_millis: i18n.translate('xpack.idxMgmt.indexLifecycleMgmtSummary.headers.currentActionTimeHeader', {
action_time_millis: i18n.translate('xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.headers.currentActionTimeHeader', {
defaultMessage: 'Current action time',
}),
failed_step: i18n.translate('xpack.idxMgmt.indexLifecycleMgmtSummary.headers.failedStepHeader', {
failed_step: i18n.translate('xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.headers.failedStepHeader', {
defaultMessage: 'Failed step',
}),
};
@ -70,7 +70,7 @@ export class IndexLifecycleSummary extends Component {
<EuiButtonEmpty onClick={this.toggleStackPopover}>
<FormattedMessage
defaultMessage="Stack trace"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.stackTraceButton"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.stackTraceButton"
/>
</EuiButtonEmpty>
);
@ -95,7 +95,7 @@ export class IndexLifecycleSummary extends Component {
<EuiLink onClick={this.togglePhaseExecutionPopover}>
<FormattedMessage
defaultMessage="Show phase definition"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.showPhaseDefinitionButton"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.showPhaseDefinitionButton"
/>
</EuiLink>
);
@ -111,7 +111,7 @@ export class IndexLifecycleSummary extends Component {
<EuiPopoverTitle>
<FormattedMessage
defaultMessage="Phase definition"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.phaseDefinitionTitle"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.phaseDefinitionTitle"
/>
</EuiPopoverTitle>
<div style={{ maxHeight: '400px', width: '400px', overflowY: 'scroll' }}>
@ -168,7 +168,7 @@ export class IndexLifecycleSummary extends Component {
<h3>
<FormattedMessage
defaultMessage="Index lifecycle management"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.summaryTitle"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.summaryTitle"
/>
</h3>
</EuiTitle>
@ -180,7 +180,7 @@ export class IndexLifecycleSummary extends Component {
title={
<FormattedMessage
defaultMessage="Index lifecycle error"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.summaryErrorMessage"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.summaryErrorMessage"
/>
}
iconType="cross"
@ -199,7 +199,7 @@ export class IndexLifecycleSummary extends Component {
title={
<FormattedMessage
defaultMessage="Action status"
id="xpack.idxMgmt.indexLifecycleMgmtSummary.actionStatusTitle"
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.actionStatusTitle"
/>
}
>
@ -223,4 +223,4 @@ export class IndexLifecycleSummary extends Component {
</Fragment>
);
}
}
}

View file

@ -85,7 +85,7 @@ export class RemoveLifecyclePolicyConfirmModal extends Component {
title={
<FormattedMessage
id="xpack.indexLifecycleMgmt.indexManagementTable.removeLifecyclePolicyConfirmModal.modalTitle"
defaultMessage={`Remove lifecycle policy from "{target}"`}
defaultMessage="Remove lifecycle policy from &quot;{target}&quot;"
values={{
target
}}
@ -108,8 +108,8 @@ export class RemoveLifecyclePolicyConfirmModal extends Component {
>
<FormattedMessage
id="xpack.indexLifecycleMgmt.indexManagementTable.removeLifecyclePolicyConfirmModal.removeMessage"
defaultMessage={`You are about to remove the index lifecycle policy from "{target}".
This operation cannot be undone.`}
defaultMessage="You are about to remove the index lifecycle policy from &quot;{target}&quot;.
This operation cannot be undone."
values={{
target
}}

View file

@ -31,11 +31,11 @@ export const retryLifecycleActionExtension = indices => {
requestMethod: retryLifecycleForIndex,
icon: 'play',
indexNames: [indexNames],
buttonLabel: i18n.translate('xpack.idxMgmt.retryIndexLifecycleActionButtonLabel', {
buttonLabel: i18n.translate('xpack.indexLifecycleMgmt.retryIndexLifecycleActionButtonLabel', {
defaultMessage: 'Retry lifecycle step',
}),
successMessage: i18n.translate(
'xpack.idxMgmt.retryIndexLifecycleAction.retriedLifecycleMessage',
'xpack.indexLifecycleMgmt.retryIndexLifecycleAction.retriedLifecycleMessage',
{
defaultMessage: 'Called retry lifecycle step for: {indexNames}',
values: { indexNames: indexNames.map(indexName => `"${indexName}"`).join(', ') },
@ -65,7 +65,7 @@ export const removeLifecyclePolicyActionExtension = (indices, reloadIndices) =>
},
icon: 'stopFilled',
indexNames: [indexNames],
buttonLabel: i18n.translate('xpack.idxMgmt.removeIndexLifecycleActionButtonLabel', {
buttonLabel: i18n.translate('xpack.indexLifecycleMgmt.removeIndexLifecycleActionButtonLabel', {
defaultMessage: 'Remove lifecycle policy',
}),
};
@ -95,7 +95,7 @@ export const addLifecyclePolicyActionExtension = (indices, reloadIndices) => {
);
},
icon: 'plusInCircle',
buttonLabel: i18n.translate('xpack.idxMgmt.addLifecyclePolicyActionButtonLabel', {
buttonLabel: i18n.translate('xpack.indexLifecycleMgmt.addLifecyclePolicyActionButtonLabel', {
defaultMessage: 'Add lifecycle policy',
}),
};

View file

@ -83,8 +83,8 @@ class HotPhaseUi extends PureComponent {
<p>
<FormattedMessage
id="xpack.indexLifecycleMgmt.editPolicy.hotPhase.hotPhaseDescriptionMessage"
defaultMessage={`This phase is required. You are actively querying and
writing to your index. For faster updates, you can roll over the index when it gets too big or too old.`}
defaultMessage="This phase is required. You are actively querying and writing to your
index. For faster updates, you can roll over the index when it gets too big or too old."
/>
</p>
</Fragment>

View file

@ -166,8 +166,8 @@ class EditPolicyUi extends Component {
<p>
<FormattedMessage
id="xpack.indexLifecycleMgmt.editPolicy.lifecyclePolicyDescriptionText"
defaultMessage={`Use an index policy to automate the four phases of the index lifecycle,
from actively writing to the index to deleting it.`}
defaultMessage="Use an index policy to automate the four phases of the index lifecycle,
from actively writing to the index to deleting it."
/>
{' '}
<LearnMoreLink
@ -197,8 +197,9 @@ class EditPolicyUi extends Component {
.{' '}
<FormattedMessage
id="xpack.indexLifecycleMgmt.editPolicy.editingExistingPolicyExplanationMessage"
defaultMessage={`Any changes you make will affect the indices that are attached to this policy.
Alternatively, you can save these changes in a new policy.`}
defaultMessage="Any changes you make will affect the indices that are
attached to this policy. Alternatively, you can save these changes in
a new policy."
/>
</p>
</EuiText>

View file

@ -37,7 +37,7 @@ export class AddPolicyToTemplateConfirmModalUi extends Component {
const policyName = policy.name;
if (!templateName) {
this.setState({ templateError: i18n.translate(
'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.noTemplateSelectedErrorMessage',
'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.noTemplateSelectedErrorMessage',
{ defaultMessage: 'You must select an index template.' }) });
return;
}
@ -48,14 +48,14 @@ export class AddPolicyToTemplateConfirmModalUi extends Component {
aliasName
});
const message = intl.formatMessage({
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.successMessage',
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.successMessage',
defaultMessage: 'Added policy {policyName} to index template {templateName}',
}, { policyName, templateName });
toastNotifications.addSuccess(message);
onCancel();
} catch (e) {
const title = intl.formatMessage({
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.errorMessage',
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.errorMessage',
defaultMessage: 'Error adding policy "{policyName}" to index template {templateName}',
}, { policyName, templateName });
showApiError(e, title);
@ -76,14 +76,14 @@ export class AddPolicyToTemplateConfirmModalUi extends Component {
style={{ maxWidth: 400 }}
title={
<FormattedMessage
id="xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.templateHasPolicyWarningTitle"
id="xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.templateHasPolicyWarningTitle"
defaultMessage="Template already has policy"
/>
}
color="warning"
>
<FormattedMessage
id="xpack.indexLifecycleMgmt.indexManagementTable.addLifecyclePolicyConfirmModal.indexHasNoAliasesWarningMessage"
id="xpack.indexLifecycleMgmt.indexManagementTable.addLifecyclePolicyToTemplateConfirmModal.indexHasNoAliasesWarningMessage"
defaultMessage="This index template already has the policy {existingPolicyName} attached to it.
Adding this policy will overwrite that configuration."
values={{
@ -110,7 +110,7 @@ export class AddPolicyToTemplateConfirmModalUi extends Component {
options.unshift({
value: '',
text: i18n.translate(
'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.chooseTemplateMessage',
'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.chooseTemplateMessage',
{
defaultMessage: 'Select an index template',
}
@ -124,7 +124,7 @@ export class AddPolicyToTemplateConfirmModalUi extends Component {
error={templateError}
label={
<FormattedMessage
id="xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.chooseTemplateLabel"
id="xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.chooseTemplateLabel"
defaultMessage="Index template"
/>
}
@ -153,7 +153,7 @@ export class AddPolicyToTemplateConfirmModalUi extends Component {
<EuiFormRow
label={
<FormattedMessage
id="xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.rolloverAliasLabel"
id="xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.rolloverAliasLabel"
defaultMessage="Alias for rollover index"
/>
}
@ -170,7 +170,7 @@ export class AddPolicyToTemplateConfirmModalUi extends Component {
render() {
const { intl, policy, onCancel } = this.props;
const title = intl.formatMessage({
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.title',
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.title',
defaultMessage: 'Add policy "{name}" to index template',
}, { name: policy.name });
return (
@ -180,11 +180,11 @@ export class AddPolicyToTemplateConfirmModalUi extends Component {
onCancel={onCancel}
onConfirm={this.addPolicyToTemplate}
cancelButtonText={intl.formatMessage({
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.cancelButton',
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.cancelButton',
defaultMessage: 'Cancel',
})}
confirmButtonText={intl.formatMessage({
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.confirmButton',
id: 'xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.confirmButton',
defaultMessage: 'Add policy',
})}
onClose={onCancel}
@ -192,7 +192,7 @@ export class AddPolicyToTemplateConfirmModalUi extends Component {
<EuiText>
<p>
<FormattedMessage
id="xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyConfirmModal.explanationText"
id="xpack.indexLifecycleMgmt.policyTable.addLifecyclePolicyToTemplateConfirmModal.explanationText"
defaultMessage="This will apply the lifecycle policy to
all indices which match the index template."
/>{' '}<LearnMoreLink

View file

@ -314,7 +314,6 @@ export class PolicyTableUi extends Component {
const button = (
<EuiButtonEmpty
data-test-subj="policyActionsContextMenuButton"
aria-label="Policy options"
onClick={() => this.togglePolicyPopover(policy)}
color="primary"
>
@ -410,8 +409,11 @@ export class PolicyTableUi extends Component {
color="danger"
onClick={() => this.setState({ showDeleteConfirmation: true })}
>
Delete {numSelected} polic
{numSelected > 1 ? 'ies' : 'y'}
<FormattedMessage
id="xpack.indexLifecycleMgmt.policyTable.deletedPoliciesText"
defaultMessage="Deleted {numSelected} {numSelected, plural, one {policy} other {policies}}"
values={{ numSelected }}
/>
</EuiButton>
</EuiFlexItem>
) : null}
@ -427,7 +429,10 @@ export class PolicyTableUi extends Component {
id: 'xpack.indexLifecycleMgmt.policyTable.systempoliciesSearchInputPlaceholder',
defaultMessage: 'Search',
})}
aria-label="Search policies"
aria-label={intl.formatMessage({
id: 'xpack.indexLifecycleMgmt.policyTable.systempoliciesSearchInputAriaLabel',
defaultMessage: 'Search policies',
})}
/>
</EuiFlexItem>
</EuiFlexGroup>
@ -461,7 +466,12 @@ export class PolicyTableUi extends Component {
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiBetaBadge label="Beta" />
<EuiBetaBadge
label={intl.formatMessage({
id: 'xpack.indexLifecycleMgmt.policyTable.sectionHeadingBetaBadgeText',
defaultMessage: 'Beta',
})}
/>
</EuiFlexItem>
</EuiFlexGroup>
</EuiFlexItem>

View file

@ -14,10 +14,13 @@ export function checkLicense(xpackLicenseInfo) {
isAvailable: false,
showLinks: true,
enableLinks: false,
message: i18n.translate('xpack.idxMgmt.indexLifecycleMgmtSummary.headers.lifecyclePolicyHeader', {
defaultMessage: `You cannot use {pluginName} because license information is not available at this time.`,
values: { pluginName }
})
message: i18n.translate(
'xpack.indexLifecycleMgmt.checkLicense.errorUnavailableMessage',
{
defaultMessage: 'You cannot use {pluginName} because license information is not available at this time.',
values: { pluginName },
},
),
};
}
@ -38,10 +41,13 @@ export function checkLicense(xpackLicenseInfo) {
return {
isAvailable: false,
showLinks: false,
message: i18n.translate('xpack.idxMgmt.indexLifecycleMgmtSummary.headers.lifecyclePolicyHeader', {
defaultMessage: `Your {licenseType} license does not support ${pluginName}. Please upgrade your license.`,
values: { licenseType }
})
message: i18n.translate(
'xpack.indexLifecycleMgmt.checkLicense.errorUnsupportedMessage',
{
defaultMessage: 'Your {licenseType} license does not support {pluginName}. Please upgrade your license.',
values: { licenseType, pluginName },
},
),
};
}
@ -51,10 +57,13 @@ export function checkLicense(xpackLicenseInfo) {
isAvailable: false,
showLinks: true,
enableLinks: false,
message: i18n.translate('xpack.idxMgmt.indexLifecycleMgmtSummary.headers.lifecyclePolicyHeader', {
defaultMessage: `You cannot use {pluginName} because your {licenseType} license has expired.`,
values: { pluginName, licenseType }
})
message: i18n.translate(
'xpack.indexLifecycleMgmt.checkLicense.errorExpiredMessage',
{
defaultMessage: 'You cannot use {pluginName} because your {licenseType} license has expired.',
values: { pluginName, licenseType },
},
),
};
}

View file

@ -66,7 +66,6 @@ export function checkLicense(xpackLicenseInfo) {
values: { licenseType, pluginName },
},
),
message: `.`,
};
}

View file

@ -9,6 +9,7 @@ import { FeatureCatalogueRegistryProvider, FeatureCatalogueCategory } from 'ui/r
import { render, unmountComponentAtNode } from 'react-dom';
import { Provider } from 'react-redux';
import { HashRouter } from 'react-router-dom';
import { i18n } from '@kbn/i18n';
import { I18nProvider } from '@kbn/i18n/react';
import { management } from 'ui/management';
import routes from 'ui/routes';
@ -86,7 +87,9 @@ FeatureCatalogueRegistryProvider.register(() => {
return {
id: 'rollup_jobs',
title: 'Rollups',
description: 'Summarize and store historical data in a smaller index for future analysis.',
description: i18n.translate('xpack.rollupJobs.featureCatalogueDescription', {
defaultMessage: 'Summarize and store historical data in a smaller index for future analysis.',
}),
icon: 'indexRollupApp',
path: `#${CRUD_APP_BASE_PATH}/job_list`,
showOnHomePage: true,

View file

@ -4,6 +4,8 @@
* you may not use this file except in compliance with the Elastic License.
*/
import { i18n } from '@kbn/i18n';
export function checkLicense(xpackLicenseInfo) {
const pluginName = 'Rollups';
@ -14,7 +16,13 @@ export function checkLicense(xpackLicenseInfo) {
isAvailable: false,
showLinks: true,
enableLinks: false,
message: `You cannot use ${pluginName} because license information is not available at this time.`
message: i18n.translate(
'xpack.rollupJobs.checkLicense.errorUnavailableMessage',
{
defaultMessage: 'You cannot use {pluginName} because license information is not available at this time.',
values: { pluginName },
},
),
};
}
@ -35,7 +43,13 @@ export function checkLicense(xpackLicenseInfo) {
return {
isAvailable: false,
showLinks: false,
message: `Your ${licenseType} license does not support ${pluginName}. Please upgrade your license.`
message: i18n.translate(
'xpack.rollupJobs.checkLicense.errorUnsupportedMessage',
{
defaultMessage: 'Your {licenseType} license does not support {pluginName}. Please upgrade your license.',
values: { licenseType, pluginName },
},
),
};
}
@ -45,7 +59,13 @@ export function checkLicense(xpackLicenseInfo) {
isAvailable: false,
showLinks: true,
enableLinks: false,
message: `You cannot use ${pluginName} because your ${licenseType} license has expired.`
message: i18n.translate(
'xpack.rollupJobs.checkLicense.errorExpiredMessage',
{
defaultMessage: 'You cannot use {pluginName} because your {licenseType} license has expired',
values: { licenseType, pluginName },
},
),
};
}