diff --git a/src/legacy/core_plugins/kibana/public/visualize/editor/editor.html b/src/legacy/core_plugins/kibana/public/visualize/editor/editor.html
index 06c058d37da5a..5a31a97c56966 100644
--- a/src/legacy/core_plugins/kibana/public/visualize/editor/editor.html
+++ b/src/legacy/core_plugins/kibana/public/visualize/editor/editor.html
@@ -19,7 +19,7 @@
class="fullWidth"
>
- Linked to Saved Search
+ {{ ::'kbn.visualize.linkedToSearchInfoText' | i18n: { defaultMessage: 'Linked to Saved Search' } }}
@@ -30,7 +30,7 @@
data-test-subj="unlinkSavedSearch"
href=""
ng-dblclick="unlink()"
- tooltip="Double click to unlink from Saved Search"
+ tooltip="{{ ::'kbn.visualize.linkedToSearch.unlinkButtonTooltip' | i18n: { defaultMessage: 'Double click to unlink from Saved Search' } }}"
>
diff --git a/src/legacy/core_plugins/kibana/public/visualize/editor/editor.js b/src/legacy/core_plugins/kibana/public/visualize/editor/editor.js
index 5f1de5cd29558..f63596151c0c7 100644
--- a/src/legacy/core_plugins/kibana/public/visualize/editor/editor.js
+++ b/src/legacy/core_plugins/kibana/public/visualize/editor/editor.js
@@ -52,13 +52,17 @@ uiRoutes
.when(VisualizeConstants.CREATE_PATH, {
template: editorTemplate,
resolve: {
- savedVis: function (savedVisualizations, redirectWhenMissing, $route, Private) {
+ savedVis: function (savedVisualizations, redirectWhenMissing, $route, Private, i18n) {
const visTypes = Private(VisTypesRegistryProvider);
const visType = _.find(visTypes, { name: $route.current.params.type });
const shouldHaveIndex = visType.requiresSearch && visType.options.showIndexSelection;
const hasIndex = $route.current.params.indexPattern || $route.current.params.savedSearchId;
if (shouldHaveIndex && !hasIndex) {
- throw new Error('You must provide either an indexPattern or a savedSearchId');
+ throw new Error(
+ i18n('kbn.visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage', {
+ defaultMessage: 'You must provide either an indexPattern or a savedSearchId',
+ })
+ );
}
return savedVisualizations.get($route.current.params)
@@ -115,7 +119,8 @@ function VisEditor(
Promise,
config,
kbnBaseUrl,
- localStorage
+ localStorage,
+ i18n
) {
const docTitle = Private(DocTitleProvider);
const queryFilter = Private(FilterBarQueryFilterProvider);
@@ -135,15 +140,19 @@ function VisEditor(
};
$scope.topNavMenu = [{
- key: 'save',
- description: 'Save Visualization',
+ key: i18n('kbn.topNavMenu.saveVisualizationButtonLabel', { defaultMessage: 'save' }),
+ description: i18n('kbn.visualize.topNavMenu.saveVisualizationButtonAriaLabel', {
+ defaultMessage: 'Save Visualization',
+ }),
testId: 'visualizeSaveButton',
disableButton() {
return Boolean(vis.dirty);
},
tooltip() {
if (vis.dirty) {
- return 'Apply or Discard your changes before saving';
+ return i18n('kbn.visualize.topNavMenu.saveVisualizationDisabledButtonTooltip', {
+ defaultMessage: 'Apply or Discard your changes before saving'
+ });
}
},
run: async () => {
@@ -176,8 +185,10 @@ function VisEditor(
showSaveModal(saveModal);
}
}, {
- key: 'share',
- description: 'Share Visualization',
+ key: i18n('kbn.topNavMenu.shareVisualizationButtonLabel', { defaultMessage: 'share' }),
+ description: i18n('kbn.visualize.topNavMenu.shareVisualizationButtonAriaLabel', {
+ defaultMessage: 'Share Visualization',
+ }),
testId: 'shareTopNavButton',
run: (menuItem, navController, anchorElement) => {
const hasUnappliedChanges = vis.dirty;
@@ -196,8 +207,10 @@ function VisEditor(
});
}
}, {
- key: 'inspect',
- description: 'Open Inspector for visualization',
+ key: i18n('kbn.topNavMenu.openInspectorButtonLabel', { defaultMessage: 'inspect' }),
+ description: i18n('kbn.visualize.topNavMenu.openInspectorButtonAriaLabel', {
+ defaultMessage: 'Open Inspector for visualization',
+ }),
testId: 'openInspectorButton',
disableButton() {
return !vis.hasInspector || !vis.hasInspector();
@@ -207,12 +220,16 @@ function VisEditor(
},
tooltip() {
if (!vis.hasInspector || !vis.hasInspector()) {
- return 'This visualization doesn\'t support any inspectors.';
+ return i18n('kbn.visualize.topNavMenu.openInspectorDisabledButtonTooltip', {
+ defaultMessage: `This visualization doesn't support any inspectors.`,
+ });
}
}
}, {
- key: 'refresh',
- description: 'Refresh',
+ key: i18n('kbn.topNavMenu.refreshButtonLabel', { defaultMessage: 'refresh' }),
+ description: i18n('kbn.visualize.topNavMenu.refreshButtonAriaLabel', {
+ defaultMessage: 'Refresh',
+ }),
run: function () {
vis.forceReload();
},
@@ -288,7 +305,12 @@ function VisEditor(
$state.replace();
$scope.getVisualizationTitle = function getVisualizationTitle() {
- return savedVis.lastSavedTitle || `${savedVis.title} (unsaved)`;
+ return savedVis.lastSavedTitle || i18n('kbn.visualize.topNavMenu.unsavedVisualizationTitle', {
+ defaultMessage: '{visTitle} (unsaved)',
+ values: {
+ visTitle: savedVis.title,
+ },
+ });
};
$scope.$watchMulti([
@@ -374,7 +396,12 @@ function VisEditor(
if (id) {
toastNotifications.addSuccess({
- title: `Saved '${savedVis.title}'`,
+ title: i18n('kbn.visualize.topNavMenu.saveVisualization.successNotificationText', {
+ defaultMessage: `Saved '{visTitle}'`,
+ values: {
+ visTitle: savedVis.title,
+ },
+ }),
'data-test-subj': 'saveVisualizationSuccess',
});
@@ -407,7 +434,12 @@ function VisEditor(
// eslint-disable-next-line
console.error(error);
toastNotifications.addDanger({
- title: `Error on saving '${savedVis.title}'`,
+ title: i18n('kbn.visualize.topNavMenu.saveVisualization.failureNotificationText', {
+ defaultMessage: `Error on saving '{visTitle}'`,
+ values: {
+ visTitle: savedVis.title,
+ },
+ }),
text: error.message,
'data-test-subj': 'saveVisualizationError',
});
@@ -431,14 +463,26 @@ function VisEditor(
searchSource.setField('index', searchSourceParent.getField('index'));
searchSource.setParent(searchSourceGrandparent);
- toastNotifications.addSuccess(`Unlinked from saved search '${savedVis.savedSearch.title}'`);
+ toastNotifications.addSuccess(
+ i18n('kbn.visualize.linkedToSearch.unlinkSuccessNotificationText', {
+ defaultMessage: `Unlinked from saved search '{searchTitle}'`,
+ values: {
+ searchTitle: savedVis.savedSearch.title
+ }
+ })
+ );
$scope.fetch();
};
$scope.getAdditionalMessage = () => {
- return `
This visualization is marked as experimental. ${vis.type.feedbackMessage}`;
+ return (
+ '
' +
+ i18n('kbn.visualize.experimentalVisInfoText', { defaultMessage: 'This visualization is marked as experimental.' }) +
+ ' ' +
+ vis.type.feedbackMessage
+ );
};
init();
diff --git a/src/legacy/core_plugins/kibana/public/visualize/embeddable/visualize_lab_disabled.html b/src/legacy/core_plugins/kibana/public/visualize/embeddable/visualize_lab_disabled.html
index 790c2710ada13..00c77dc06bd19 100644
--- a/src/legacy/core_plugins/kibana/public/visualize/embeddable/visualize_lab_disabled.html
+++ b/src/legacy/core_plugins/kibana/public/visualize/embeddable/visualize_lab_disabled.html
@@ -1,5 +1,15 @@
-
is a lab visualization.
-
Please turn on lab-mode in the advanced settings to see lab visualizations.
+
+ {{ ::'kbn.visualize.embeddableVisualization.labVisualizationInfoText' | i18n: {
+ defaultMessage: 'is a lab visualization.',
+ description: 'Part of "{visTitle} is a lab visualization."' } }}
+
+
diff --git a/src/legacy/core_plugins/kibana/public/visualize/index.js b/src/legacy/core_plugins/kibana/public/visualize/index.js
index 274e1bbf33837..ee9db96b1f59f 100644
--- a/src/legacy/core_plugins/kibana/public/visualize/index.js
+++ b/src/legacy/core_plugins/kibana/public/visualize/index.js
@@ -57,11 +57,16 @@ uiRoutes
redirectTo: VisualizeConstants.WIZARD_STEP_1_PAGE_PATH,
});
-FeatureCatalogueRegistryProvider.register(() => {
+FeatureCatalogueRegistryProvider.register(i18n => {
return {
id: 'visualize',
title: 'Visualize',
- description: 'Create visualizations and aggregate data stores in your Elasticsearch indices.',
+ description: i18n(
+ 'kbn.visualize.visualizeDescription',
+ {
+ defaultMessage: 'Create visualizations and aggregate data stores in your Elasticsearch indices.',
+ }
+ ),
icon: 'visualizeApp',
path: `/app/kibana#${VisualizeConstants.LANDING_PAGE_PATH}`,
showOnHomePage: true,
diff --git a/src/legacy/core_plugins/kibana/public/visualize/listing/no_visualizations_prompt.js b/src/legacy/core_plugins/kibana/public/visualize/listing/no_visualizations_prompt.js
index a710e582120ef..54a6048a22daf 100644
--- a/src/legacy/core_plugins/kibana/public/visualize/listing/no_visualizations_prompt.js
+++ b/src/legacy/core_plugins/kibana/public/visualize/listing/no_visualizations_prompt.js
@@ -18,6 +18,7 @@
*/
import React from 'react';
+import { injectI18n, FormattedMessage } from '@kbn/i18n/react';
import {
KuiEmptyTablePrompt,
@@ -26,7 +27,7 @@ import {
KuiButtonIcon,
} from '@kbn/ui-framework/components';
-export function NoVisualizationsPrompt({ onCreateVis }) {
+function NoVisualizationsPromptUi({ onCreateVis, intl }) {
return (
}
>
- Create a visualization
+
}
- message="Looks like you don't have any visualizations. Let's create some!"
+ message={intl.formatMessage({
+ id: 'kbn.visualize.listing.noVisualizationsText',
+ defaultMessage: `Looks like you don't have any visualizations. Let's create some!`,
+ })}
/>
);
}
+
+export const NoVisualizationsPrompt = injectI18n(NoVisualizationsPromptUi);
diff --git a/src/legacy/core_plugins/kibana/public/visualize/listing/visualize_listing.html b/src/legacy/core_plugins/kibana/public/visualize/listing/visualize_listing.html
index a81f6036b401c..e03c957e2bc91 100644
--- a/src/legacy/core_plugins/kibana/public/visualize/listing/visualize_listing.html
+++ b/src/legacy/core_plugins/kibana/public/visualize/listing/visualize_listing.html
@@ -10,9 +10,10 @@
class="kuiLocalTitle"
role="heading"
aria-level="1"
- ng-if="listingController.showPluginBreadcrumbs">
- Visualize
-
+ ng-if="listingController.showPluginBreadcrumbs"
+ i18n-id="kbn.visualize.listing.topLeftCornerTitle"
+ i18n-default-message="Visualize"
+ >
@@ -24,7 +25,26 @@
-
- From a New Search, Select Index
-
+
-
- Or, From a Saved Search
-
+